commandmate 0.28.0 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (516) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +411 -404
  3. package/.next/app-path-routes-manifest.json +24 -23
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +12 -12
  6. package/.next/react-loadable-manifest.json +0 -6
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  10. package/.next/server/app/api/app/update-check/route.js +1 -1
  11. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/auth/login/route.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.js +1 -1
  22. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/auth/status/route.js +1 -1
  24. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/capabilities/route.js +1 -1
  26. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/remote/pair/route.js +2 -0
  43. package/.next/server/app/api/remote/pair/route.js.nft.json +1 -0
  44. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -0
  45. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/worktrees/route.js +1 -1
  149. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  151. package/.next/server/app/login/page.js +2 -2
  152. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  153. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  155. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  156. package/.next/server/app/page_client-reference-manifest.js +1 -1
  157. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  159. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  160. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  161. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  162. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  163. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  164. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  165. package/.next/server/app/worktrees/[id]/page.js +1 -1
  166. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  167. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  168. package/.next/server/app-paths-manifest.json +24 -23
  169. package/.next/server/chunks/1162.js +1 -1
  170. package/.next/server/chunks/2759.js +1 -1
  171. package/.next/server/chunks/3440.js +1 -1
  172. package/.next/server/chunks/3543.js +1 -1
  173. package/.next/server/chunks/3945.js +1 -1
  174. package/.next/server/chunks/4393.js +1 -1
  175. package/.next/server/chunks/6130.js +1 -1
  176. package/.next/server/chunks/880.js +6 -6
  177. package/.next/server/chunks/9123.js +2 -2
  178. package/.next/server/chunks/9938.js +1 -1
  179. package/.next/server/functions-config-manifest.json +3 -1
  180. package/.next/server/middleware-build-manifest.js +1 -1
  181. package/.next/server/middleware-manifest.json +5 -5
  182. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  183. package/.next/server/pages/500.html +1 -1
  184. package/.next/server/server-reference-manifest.json +1 -1
  185. package/.next/server/src/middleware.js +1 -1
  186. package/.next/server/src/middleware.js.map +1 -1
  187. package/.next/static/chunks/5229-580b581fce5aeb52.js +1 -0
  188. package/.next/static/chunks/6381-c8d93ec301dbc380.js +1 -0
  189. package/.next/static/chunks/app/api/app/update/route-e3626364434d521b.js +1 -0
  190. package/.next/static/chunks/app/api/app/update-check/route-e3626364434d521b.js +1 -0
  191. package/.next/static/chunks/app/api/assistant/conversation/route-e3626364434d521b.js +1 -0
  192. package/.next/static/chunks/app/api/assistant/current-output/route-e3626364434d521b.js +1 -0
  193. package/.next/static/chunks/app/api/assistant/messages/route-e3626364434d521b.js +1 -0
  194. package/.next/static/chunks/app/api/assistant/session/route-e3626364434d521b.js +1 -0
  195. package/.next/static/chunks/app/api/assistant/start/route-e3626364434d521b.js +1 -0
  196. package/.next/static/chunks/app/api/assistant/terminal/route-e3626364434d521b.js +1 -0
  197. package/.next/static/chunks/app/api/assistant/tools/route-e3626364434d521b.js +1 -0
  198. package/.next/static/chunks/app/api/auth/login/route-e3626364434d521b.js +1 -0
  199. package/.next/static/chunks/app/api/auth/logout/route-e3626364434d521b.js +1 -0
  200. package/.next/static/chunks/app/api/auth/status/route-e3626364434d521b.js +1 -0
  201. package/.next/static/chunks/app/api/capabilities/route-e3626364434d521b.js +1 -0
  202. package/.next/static/chunks/app/api/daily-summary/route-e3626364434d521b.js +1 -0
  203. package/.next/static/chunks/app/api/daily-summary/status/route-e3626364434d521b.js +1 -0
  204. package/.next/static/chunks/app/api/external-apps/[id]/health/route-e3626364434d521b.js +1 -0
  205. package/.next/static/chunks/app/api/external-apps/[id]/route-e3626364434d521b.js +1 -0
  206. package/.next/static/chunks/app/api/external-apps/route-e3626364434d521b.js +1 -0
  207. package/.next/static/chunks/app/api/fs/browse/route-e3626364434d521b.js +1 -0
  208. package/.next/static/chunks/app/api/fs/recent-paths/route-e3626364434d521b.js +1 -0
  209. package/.next/static/chunks/app/api/hooks/agent-event/route-e3626364434d521b.js +1 -0
  210. package/.next/static/chunks/app/api/hooks/claude-done/route-e3626364434d521b.js +1 -0
  211. package/.next/static/chunks/app/api/hooks/permission-request/route-e3626364434d521b.js +1 -0
  212. package/.next/static/chunks/app/api/metrics/vibe/route-e3626364434d521b.js +1 -0
  213. package/.next/static/chunks/app/api/ollama/models/route-e3626364434d521b.js +1 -0
  214. package/.next/static/chunks/app/api/push/escalation/route-e3626364434d521b.js +1 -0
  215. package/.next/static/chunks/app/api/push/subscriptions/route-e3626364434d521b.js +1 -0
  216. package/.next/static/chunks/app/api/push/vapid/route-e3626364434d521b.js +1 -0
  217. package/.next/static/chunks/app/api/remote/pair/route-e3626364434d521b.js +1 -0
  218. package/.next/static/chunks/app/api/repositories/[id]/route-e3626364434d521b.js +1 -0
  219. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-e3626364434d521b.js +1 -0
  220. package/.next/static/chunks/app/api/repositories/[id]/todos/route-e3626364434d521b.js +1 -0
  221. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-e3626364434d521b.js +1 -0
  222. package/.next/static/chunks/app/api/repositories/clone/route-e3626364434d521b.js +1 -0
  223. package/.next/static/chunks/app/api/repositories/excluded/route-e3626364434d521b.js +1 -0
  224. package/.next/static/chunks/app/api/repositories/restore/route-e3626364434d521b.js +1 -0
  225. package/.next/static/chunks/app/api/repositories/route-e3626364434d521b.js +1 -0
  226. package/.next/static/chunks/app/api/repositories/scan/route-e3626364434d521b.js +1 -0
  227. package/.next/static/chunks/app/api/repositories/sync/route-e3626364434d521b.js +1 -0
  228. package/.next/static/chunks/app/api/repositories/validate-path/route-e3626364434d521b.js +1 -0
  229. package/.next/static/chunks/app/api/sidebar/group-order/route-e3626364434d521b.js +1 -0
  230. package/.next/static/chunks/app/api/skills/[id]/route-e3626364434d521b.js +1 -0
  231. package/.next/static/chunks/app/api/skills/installations/route-e3626364434d521b.js +1 -0
  232. package/.next/static/chunks/app/api/skills/operations/route-e3626364434d521b.js +1 -0
  233. package/.next/static/chunks/app/api/skills/reindex/route-e3626364434d521b.js +1 -0
  234. package/.next/static/chunks/app/api/skills/route-e3626364434d521b.js +1 -0
  235. package/.next/static/chunks/app/api/slash-commands/route-e3626364434d521b.js +1 -0
  236. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-e3626364434d521b.js +1 -0
  237. package/.next/static/chunks/app/api/tasks/[taskId]/route-e3626364434d521b.js +1 -0
  238. package/.next/static/chunks/app/api/templates/[id]/route-e3626364434d521b.js +1 -0
  239. package/.next/static/chunks/app/api/templates/route-e3626364434d521b.js +1 -0
  240. package/.next/static/chunks/app/api/todos/route-e3626364434d521b.js +1 -0
  241. package/.next/static/chunks/app/api/verification/runs/[runId]/route-e3626364434d521b.js +1 -0
  242. package/.next/static/chunks/app/api/verification/runs/route-e3626364434d521b.js +1 -0
  243. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-e3626364434d521b.js +1 -0
  244. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-e3626364434d521b.js +1 -0
  245. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-e3626364434d521b.js +1 -0
  246. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-e3626364434d521b.js +1 -0
  247. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-e3626364434d521b.js +1 -0
  248. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-e3626364434d521b.js +1 -0
  249. package/.next/static/chunks/app/api/worktrees/[id]/env/route-e3626364434d521b.js +1 -0
  250. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-e3626364434d521b.js +1 -0
  251. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-e3626364434d521b.js +1 -0
  252. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-e3626364434d521b.js +1 -0
  253. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-e3626364434d521b.js +1 -0
  254. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-e3626364434d521b.js +1 -0
  255. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-e3626364434d521b.js +1 -0
  256. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-e3626364434d521b.js +1 -0
  257. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-e3626364434d521b.js +1 -0
  258. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-e3626364434d521b.js +1 -0
  259. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-e3626364434d521b.js +1 -0
  260. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-e3626364434d521b.js +1 -0
  261. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-e3626364434d521b.js +1 -0
  262. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-e3626364434d521b.js +1 -0
  263. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-e3626364434d521b.js +1 -0
  264. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-e3626364434d521b.js +1 -0
  265. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-e3626364434d521b.js +1 -0
  266. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-e3626364434d521b.js +1 -0
  267. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-e3626364434d521b.js +1 -0
  268. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-e3626364434d521b.js +1 -0
  269. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-e3626364434d521b.js +1 -0
  270. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-e3626364434d521b.js +1 -0
  271. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-e3626364434d521b.js +1 -0
  272. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-e3626364434d521b.js +1 -0
  273. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-e3626364434d521b.js +1 -0
  274. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-e3626364434d521b.js +1 -0
  275. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-e3626364434d521b.js +1 -0
  276. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-e3626364434d521b.js +1 -0
  277. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-e3626364434d521b.js +1 -0
  278. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-e3626364434d521b.js +1 -0
  279. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-e3626364434d521b.js +1 -0
  280. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-e3626364434d521b.js +1 -0
  281. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-e3626364434d521b.js +1 -0
  282. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-e3626364434d521b.js +1 -0
  283. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-e3626364434d521b.js +1 -0
  284. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-e3626364434d521b.js +1 -0
  285. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-e3626364434d521b.js +1 -0
  286. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-e3626364434d521b.js +1 -0
  287. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-e3626364434d521b.js +1 -0
  288. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-e3626364434d521b.js +1 -0
  289. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-e3626364434d521b.js +1 -0
  290. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-e3626364434d521b.js +1 -0
  291. package/.next/static/chunks/app/api/worktrees/[id]/route-e3626364434d521b.js +1 -0
  292. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-e3626364434d521b.js +1 -0
  293. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-e3626364434d521b.js +1 -0
  294. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-e3626364434d521b.js +1 -0
  295. package/.next/static/chunks/app/api/worktrees/[id]/search/route-e3626364434d521b.js +1 -0
  296. package/.next/static/chunks/app/api/worktrees/[id]/send/route-e3626364434d521b.js +1 -0
  297. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-e3626364434d521b.js +1 -0
  298. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-e3626364434d521b.js +1 -0
  299. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-e3626364434d521b.js +1 -0
  300. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-e3626364434d521b.js +1 -0
  301. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-e3626364434d521b.js +1 -0
  302. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-e3626364434d521b.js +1 -0
  303. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-e3626364434d521b.js +1 -0
  304. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-e3626364434d521b.js +1 -0
  305. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-e3626364434d521b.js +1 -0
  306. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-e3626364434d521b.js +1 -0
  307. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-e3626364434d521b.js +1 -0
  308. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-e3626364434d521b.js +1 -0
  309. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-e3626364434d521b.js +1 -0
  310. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-e3626364434d521b.js +1 -0
  311. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-e3626364434d521b.js +1 -0
  312. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-e3626364434d521b.js +1 -0
  313. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-e3626364434d521b.js +1 -0
  314. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-e3626364434d521b.js +1 -0
  315. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-e3626364434d521b.js +1 -0
  316. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-e3626364434d521b.js +1 -0
  317. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-e3626364434d521b.js +1 -0
  318. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-e3626364434d521b.js +1 -0
  319. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-e3626364434d521b.js +1 -0
  320. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-e3626364434d521b.js +1 -0
  321. package/.next/static/chunks/app/api/worktrees/route-e3626364434d521b.js +1 -0
  322. package/.next/static/chunks/app/login/page-03659dded846ef1d.js +1 -0
  323. package/.next/static/chunks/app/manifest.webmanifest/route-e3626364434d521b.js +1 -0
  324. package/.next/static/chunks/app/proxy/[...path]/route-e3626364434d521b.js +1 -0
  325. package/.next/static/chunks/app/worktrees/[id]/layout-e3626364434d521b.js +1 -0
  326. package/.next/static/chunks/app/worktrees/[id]/{page-27b7cb2e77099eec.js → page-c07b23b6ca58091c.js} +1 -1
  327. package/.next/static/chunks/webpack-7e79064bfce988d7.js +1 -0
  328. package/.next/static/css/b6990f889f4f9515.css +1 -0
  329. package/.next/static/uulKcSOgyxChTo4SipUSF/_buildManifest.js +1 -0
  330. package/.next/trace +13 -13
  331. package/.next/types/app/api/remote/pair/route.ts +347 -0
  332. package/.next/types/routes.d.ts +2 -1
  333. package/.next/types/validator.ts +9 -0
  334. package/README.md +15 -3
  335. package/dist/cli/commands/remote.d.ts +248 -0
  336. package/dist/cli/commands/remote.d.ts.map +1 -0
  337. package/dist/cli/commands/remote.js +849 -0
  338. package/dist/cli/config/security-messages.d.ts +25 -0
  339. package/dist/cli/config/security-messages.d.ts.map +1 -1
  340. package/dist/cli/config/security-messages.js +43 -1
  341. package/dist/cli/program.d.ts.map +1 -1
  342. package/dist/cli/program.js +6 -0
  343. package/dist/cli/types/index.d.ts +20 -0
  344. package/dist/cli/types/index.d.ts.map +1 -1
  345. package/dist/cli/utils/qr-terminal.d.ts +54 -0
  346. package/dist/cli/utils/qr-terminal.d.ts.map +1 -0
  347. package/dist/cli/utils/qr-terminal.js +181 -0
  348. package/dist/cli/utils/remote-state.d.ts +123 -0
  349. package/dist/cli/utils/remote-state.d.ts.map +1 -0
  350. package/dist/cli/utils/remote-state.js +193 -0
  351. package/dist/config/auth-config.d.ts +1 -1
  352. package/dist/config/auth-config.d.ts.map +1 -1
  353. package/dist/config/auth-config.js +5 -0
  354. package/dist/lib/remote/cloudflare.d.ts +285 -0
  355. package/dist/lib/remote/cloudflare.d.ts.map +1 -0
  356. package/dist/lib/remote/cloudflare.js +619 -0
  357. package/dist/lib/remote/index.d.ts +17 -0
  358. package/dist/lib/remote/index.d.ts.map +1 -0
  359. package/dist/lib/remote/index.js +64 -0
  360. package/dist/lib/remote/provider-registry.d.ts +29 -0
  361. package/dist/lib/remote/provider-registry.d.ts.map +1 -0
  362. package/dist/lib/remote/provider-registry.js +73 -0
  363. package/dist/lib/remote/tailscale.d.ts +268 -0
  364. package/dist/lib/remote/tailscale.d.ts.map +1 -0
  365. package/dist/lib/remote/tailscale.js +546 -0
  366. package/dist/lib/remote/types.d.ts +127 -0
  367. package/dist/lib/remote/types.d.ts.map +1 -0
  368. package/dist/lib/remote/types.js +53 -0
  369. package/dist/lib/security/pairing-code.d.ts +182 -0
  370. package/dist/lib/security/pairing-code.d.ts.map +1 -0
  371. package/dist/lib/security/pairing-code.js +265 -0
  372. package/dist/server/src/config/auth-config.js +5 -0
  373. package/package.json +2 -1
  374. package/.next/static/0GHE2JGlFzqvSBZAcBFSt/_buildManifest.js +0 -1
  375. package/.next/static/chunks/5229-1f5f19740a8d6c11.js +0 -1
  376. package/.next/static/chunks/6271.295ced91b6335f18.js +0 -1
  377. package/.next/static/chunks/6381-d921ab728eda1191.js +0 -1
  378. package/.next/static/chunks/app/api/app/update/route-9247d6b9d647f750.js +0 -1
  379. package/.next/static/chunks/app/api/app/update-check/route-9247d6b9d647f750.js +0 -1
  380. package/.next/static/chunks/app/api/assistant/conversation/route-9247d6b9d647f750.js +0 -1
  381. package/.next/static/chunks/app/api/assistant/current-output/route-9247d6b9d647f750.js +0 -1
  382. package/.next/static/chunks/app/api/assistant/messages/route-9247d6b9d647f750.js +0 -1
  383. package/.next/static/chunks/app/api/assistant/session/route-9247d6b9d647f750.js +0 -1
  384. package/.next/static/chunks/app/api/assistant/start/route-9247d6b9d647f750.js +0 -1
  385. package/.next/static/chunks/app/api/assistant/terminal/route-9247d6b9d647f750.js +0 -1
  386. package/.next/static/chunks/app/api/assistant/tools/route-9247d6b9d647f750.js +0 -1
  387. package/.next/static/chunks/app/api/auth/login/route-9247d6b9d647f750.js +0 -1
  388. package/.next/static/chunks/app/api/auth/logout/route-9247d6b9d647f750.js +0 -1
  389. package/.next/static/chunks/app/api/auth/status/route-9247d6b9d647f750.js +0 -1
  390. package/.next/static/chunks/app/api/capabilities/route-9247d6b9d647f750.js +0 -1
  391. package/.next/static/chunks/app/api/daily-summary/route-9247d6b9d647f750.js +0 -1
  392. package/.next/static/chunks/app/api/daily-summary/status/route-9247d6b9d647f750.js +0 -1
  393. package/.next/static/chunks/app/api/external-apps/[id]/health/route-9247d6b9d647f750.js +0 -1
  394. package/.next/static/chunks/app/api/external-apps/[id]/route-9247d6b9d647f750.js +0 -1
  395. package/.next/static/chunks/app/api/external-apps/route-9247d6b9d647f750.js +0 -1
  396. package/.next/static/chunks/app/api/fs/browse/route-9247d6b9d647f750.js +0 -1
  397. package/.next/static/chunks/app/api/fs/recent-paths/route-9247d6b9d647f750.js +0 -1
  398. package/.next/static/chunks/app/api/hooks/agent-event/route-9247d6b9d647f750.js +0 -1
  399. package/.next/static/chunks/app/api/hooks/claude-done/route-9247d6b9d647f750.js +0 -1
  400. package/.next/static/chunks/app/api/hooks/permission-request/route-9247d6b9d647f750.js +0 -1
  401. package/.next/static/chunks/app/api/metrics/vibe/route-9247d6b9d647f750.js +0 -1
  402. package/.next/static/chunks/app/api/ollama/models/route-9247d6b9d647f750.js +0 -1
  403. package/.next/static/chunks/app/api/push/escalation/route-9247d6b9d647f750.js +0 -1
  404. package/.next/static/chunks/app/api/push/subscriptions/route-9247d6b9d647f750.js +0 -1
  405. package/.next/static/chunks/app/api/push/vapid/route-9247d6b9d647f750.js +0 -1
  406. package/.next/static/chunks/app/api/repositories/[id]/route-9247d6b9d647f750.js +0 -1
  407. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-9247d6b9d647f750.js +0 -1
  408. package/.next/static/chunks/app/api/repositories/[id]/todos/route-9247d6b9d647f750.js +0 -1
  409. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-9247d6b9d647f750.js +0 -1
  410. package/.next/static/chunks/app/api/repositories/clone/route-9247d6b9d647f750.js +0 -1
  411. package/.next/static/chunks/app/api/repositories/excluded/route-9247d6b9d647f750.js +0 -1
  412. package/.next/static/chunks/app/api/repositories/restore/route-9247d6b9d647f750.js +0 -1
  413. package/.next/static/chunks/app/api/repositories/route-9247d6b9d647f750.js +0 -1
  414. package/.next/static/chunks/app/api/repositories/scan/route-9247d6b9d647f750.js +0 -1
  415. package/.next/static/chunks/app/api/repositories/sync/route-9247d6b9d647f750.js +0 -1
  416. package/.next/static/chunks/app/api/repositories/validate-path/route-9247d6b9d647f750.js +0 -1
  417. package/.next/static/chunks/app/api/sidebar/group-order/route-9247d6b9d647f750.js +0 -1
  418. package/.next/static/chunks/app/api/skills/[id]/route-9247d6b9d647f750.js +0 -1
  419. package/.next/static/chunks/app/api/skills/installations/route-9247d6b9d647f750.js +0 -1
  420. package/.next/static/chunks/app/api/skills/operations/route-9247d6b9d647f750.js +0 -1
  421. package/.next/static/chunks/app/api/skills/reindex/route-9247d6b9d647f750.js +0 -1
  422. package/.next/static/chunks/app/api/skills/route-9247d6b9d647f750.js +0 -1
  423. package/.next/static/chunks/app/api/slash-commands/route-9247d6b9d647f750.js +0 -1
  424. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-9247d6b9d647f750.js +0 -1
  425. package/.next/static/chunks/app/api/tasks/[taskId]/route-9247d6b9d647f750.js +0 -1
  426. package/.next/static/chunks/app/api/templates/[id]/route-9247d6b9d647f750.js +0 -1
  427. package/.next/static/chunks/app/api/templates/route-9247d6b9d647f750.js +0 -1
  428. package/.next/static/chunks/app/api/todos/route-9247d6b9d647f750.js +0 -1
  429. package/.next/static/chunks/app/api/verification/runs/[runId]/route-9247d6b9d647f750.js +0 -1
  430. package/.next/static/chunks/app/api/verification/runs/route-9247d6b9d647f750.js +0 -1
  431. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-9247d6b9d647f750.js +0 -1
  432. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-9247d6b9d647f750.js +0 -1
  433. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-9247d6b9d647f750.js +0 -1
  434. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-9247d6b9d647f750.js +0 -1
  435. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-9247d6b9d647f750.js +0 -1
  436. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-9247d6b9d647f750.js +0 -1
  437. package/.next/static/chunks/app/api/worktrees/[id]/env/route-9247d6b9d647f750.js +0 -1
  438. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-9247d6b9d647f750.js +0 -1
  439. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-9247d6b9d647f750.js +0 -1
  440. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-9247d6b9d647f750.js +0 -1
  441. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-9247d6b9d647f750.js +0 -1
  442. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-9247d6b9d647f750.js +0 -1
  443. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-9247d6b9d647f750.js +0 -1
  444. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-9247d6b9d647f750.js +0 -1
  445. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-9247d6b9d647f750.js +0 -1
  446. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-9247d6b9d647f750.js +0 -1
  447. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-9247d6b9d647f750.js +0 -1
  448. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-9247d6b9d647f750.js +0 -1
  449. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-9247d6b9d647f750.js +0 -1
  450. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-9247d6b9d647f750.js +0 -1
  451. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-9247d6b9d647f750.js +0 -1
  452. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-9247d6b9d647f750.js +0 -1
  453. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-9247d6b9d647f750.js +0 -1
  454. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-9247d6b9d647f750.js +0 -1
  455. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-9247d6b9d647f750.js +0 -1
  456. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-9247d6b9d647f750.js +0 -1
  457. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-9247d6b9d647f750.js +0 -1
  458. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-9247d6b9d647f750.js +0 -1
  459. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-9247d6b9d647f750.js +0 -1
  460. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-9247d6b9d647f750.js +0 -1
  461. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-9247d6b9d647f750.js +0 -1
  462. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-9247d6b9d647f750.js +0 -1
  463. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-9247d6b9d647f750.js +0 -1
  464. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-9247d6b9d647f750.js +0 -1
  465. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-9247d6b9d647f750.js +0 -1
  466. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-9247d6b9d647f750.js +0 -1
  467. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-9247d6b9d647f750.js +0 -1
  468. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-9247d6b9d647f750.js +0 -1
  469. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-9247d6b9d647f750.js +0 -1
  470. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-9247d6b9d647f750.js +0 -1
  471. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-9247d6b9d647f750.js +0 -1
  472. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-9247d6b9d647f750.js +0 -1
  473. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-9247d6b9d647f750.js +0 -1
  474. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-9247d6b9d647f750.js +0 -1
  475. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-9247d6b9d647f750.js +0 -1
  476. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-9247d6b9d647f750.js +0 -1
  477. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-9247d6b9d647f750.js +0 -1
  478. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-9247d6b9d647f750.js +0 -1
  479. package/.next/static/chunks/app/api/worktrees/[id]/route-9247d6b9d647f750.js +0 -1
  480. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-9247d6b9d647f750.js +0 -1
  481. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-9247d6b9d647f750.js +0 -1
  482. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-9247d6b9d647f750.js +0 -1
  483. package/.next/static/chunks/app/api/worktrees/[id]/search/route-9247d6b9d647f750.js +0 -1
  484. package/.next/static/chunks/app/api/worktrees/[id]/send/route-9247d6b9d647f750.js +0 -1
  485. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-9247d6b9d647f750.js +0 -1
  486. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-9247d6b9d647f750.js +0 -1
  487. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-9247d6b9d647f750.js +0 -1
  488. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-9247d6b9d647f750.js +0 -1
  489. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-9247d6b9d647f750.js +0 -1
  490. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-9247d6b9d647f750.js +0 -1
  491. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-9247d6b9d647f750.js +0 -1
  492. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-9247d6b9d647f750.js +0 -1
  493. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-9247d6b9d647f750.js +0 -1
  494. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-9247d6b9d647f750.js +0 -1
  495. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-9247d6b9d647f750.js +0 -1
  496. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-9247d6b9d647f750.js +0 -1
  497. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-9247d6b9d647f750.js +0 -1
  498. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-9247d6b9d647f750.js +0 -1
  499. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-9247d6b9d647f750.js +0 -1
  500. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-9247d6b9d647f750.js +0 -1
  501. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-9247d6b9d647f750.js +0 -1
  502. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-9247d6b9d647f750.js +0 -1
  503. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-9247d6b9d647f750.js +0 -1
  504. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-9247d6b9d647f750.js +0 -1
  505. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-9247d6b9d647f750.js +0 -1
  506. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-9247d6b9d647f750.js +0 -1
  507. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-9247d6b9d647f750.js +0 -1
  508. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-9247d6b9d647f750.js +0 -1
  509. package/.next/static/chunks/app/api/worktrees/route-9247d6b9d647f750.js +0 -1
  510. package/.next/static/chunks/app/login/page-adc51f0f7cbb7ac6.js +0 -1
  511. package/.next/static/chunks/app/manifest.webmanifest/route-9247d6b9d647f750.js +0 -1
  512. package/.next/static/chunks/app/proxy/[...path]/route-9247d6b9d647f750.js +0 -1
  513. package/.next/static/chunks/app/worktrees/[id]/layout-9247d6b9d647f750.js +0 -1
  514. package/.next/static/chunks/webpack-6a9668cf54a26eba.js +0 -1
  515. package/.next/static/css/98722bc4152cedcc.css +0 -1
  516. /package/.next/static/{0GHE2JGlFzqvSBZAcBFSt → uulKcSOgyxChTo4SipUSF}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=3945,exports.ids=[3945],exports.modules={53945:a=>{a.exports=JSON.parse('{"sessions":{"idleAgents":"アイドル {count} 件","activeAgents":"稼働 {count} 件","title":"セッション","description":"全リポジトリの worktree セッション。","filterPlaceholder":"名前またはリポジトリで絞り込み...","filterAriaLabel":"名前またはリポジトリでセッションを絞り込む","sortByAriaLabel":"並び替え","sortAscending":"昇順に並び替え","sortDescending":"降順に並び替え","loadingAriaLabel":"セッションを読み込み中","refreshError":"セッションの更新に失敗しました: {message}","loadError":"セッションの読み込みに失敗しました: {message}","noMatching":"一致するセッションがありません。","empty":"セッションがまだありません。"},"nav":{"home":"ホーム","chat":"チャット","sessions":"セッション","repositories":"リポジトリ","repositoriesShort":"リポジトリ","review":"レビュー","reviewReport":"レビュー/レポート","more":"その他","skills":"スキル"},"repositories":{"empty":"リポジトリが登録されていません。","add":"リポジトリを追加","syncAll":"すべて同期","syncing":"同期中...","addNewTitle":"リポジトリを新規追加","localPathTab":"ローカルパス","cloneUrlTab":"クローン URL","localPathDescription":"worktree を含む git リポジトリの絶対パスを入力してください。","localPathLabel":"リポジトリパス","localPathExample":"例: {example}","localPathAllowedRoots":"許可ルート: {roots}","browse":"参照…","pickerTitle":"リポジトリのフォルダを選択","pickerRootsLabel":"許可ルート","pickerRecentLabel":"最近使ったパス","pickerSelectHere":"このフォルダを選択","pickerUp":"1 階層上へ","pickerEmpty":"サブフォルダがありません。","pickerTruncated":"先頭 {limit} 件のみ表示しています。","pickerLoading":"読み込み中…","pickerWorktreeCount":"worktree {count} 件","validationGitRepo":"git リポジトリです(worktree {count} 件検出)","validationNotGitRepo":"このフォルダは git リポジトリではありません。","validationNotFound":"このフォルダは存在しません。","validationOutsideRoots":"許可ルート外です({roots})。","scan":"スキャンして追加","scanning":"スキャン中...","cloneUrlDescription":"リモートリポジトリをクローンする git の URL を入力してください。","cloneUrlLabel":"クローン URL","cloneUrlHelp":"HTTPS と SSH の URL に対応しています","clone":"クローン","forkAndClone":"Fork して追加","forkOptionLabel":"追加前に fork する(gh repo fork)","forkOptionHelp":"自分の GitHub アカウントに fork を作成し、それをクローンします(origin=自分の fork、upstream=元リポジトリ)。認証済みの GitHub CLI(gh)が必要です。","cloning":"クローン中...","cloneSuccess":"リポジトリをクローンしました","cloneFailed":"クローンに失敗しました","pathRequired":"リポジトリパスを入力してください","urlRequired":"クローン URL を入力してください","urlInvalid":"URL の形式が正しくありません","loading":"リポジトリを読み込み中","filterAll":"すべて ({count})","filterDisabled":"無効化中 ({count})","emptyDisabled":"走査対象から外したリポジトリはありません。","disableConfirmTitle":"走査対象から外しますか?","disableConfirmBody":"「{name}」は今後 worktree の走査対象から外れます。\\n\\n削除は行いません: {count} 件の worktree と、そのチャット履歴・タスク・検証実行はデータベースに残り、稼働中の tmux セッションもそのまま動き続けます。\\n\\nworktree はサイドバーにも残ります。非表示にする場合は Visibility トグルを使ってください。","disableConfirmAction":"走査対象から外す","disableSuccess":"「{name}」を走査対象から外しました。","enableSuccess":"「{name}」を走査対象に戻しました (worktree {count} 件)。","duplicateScanRootWarning":"既存の scan root と同じ git リポジトリです: {paths}。両方が走査され、共有している worktree はすべて二重に登録されます。","duplicateConfirmTitle":"同じリポジトリの scan root をもう 1 つ登録しますか?","duplicateConfirmBody":"「{path}」は次と同じ git リポジトリです:\\n{paths}\\n\\nどちらの root も同じ worktree を列挙するため、同期のたびに各 worktree が二重に登録され、「リポジトリパス」が実行ごとに入れ替わります。\\n\\nこの登録自体は可能です。これらの worktree を別々の root として管理したい場合はそのまま続行してください。そうでなければキャンセルするか、後から Repositories 一覧の Scan トグルで片方を走査対象から外してください。","duplicateConfirmAction":"このまま追加","duplicateRowBadge":"scan root 重複","duplicateRowDetail":"{paths} と同じ git リポジトリです。どちらかの行の Scan トグルで走査対象から外せます。"},"cancel":"キャンセル","send":"送信","sending":"送信中...","sendMessagePlaceholder":"メッセージを送信...","end":"終了する","ending":"終了中...","retry":"再試行","reload":"再読み込み","reconnect":"再接続","close":"閉じる","back":"戻る","menu":"メニュー","sidebar":{"open":"サイドバーを開く","close":"サイドバーを閉じる","branchNavigation":"ブランチナビゲーション","branches":"ブランチ","searchBranches":"ブランチを検索...","noBranchesFound":"ブランチが見つかりません","noBranchesAvailable":"ブランチがありません","dragToReorderGroup":"ドラッグでグループを並べ替え","switchToFlatView":"フラット表示に切り替え","switchToGroupedView":"グループ表示に切り替え"},"confirmDelete":"「{name}」を削除しますか?","favorites":{"add":"お気に入りに追加","remove":"お気に入りを解除"},"syncSuccess":"{count}件のworktreeを同期しました","syncError":"同期に失敗しました","syncAuthError":"認証エラー","syncButtonLabel":"ブランチを同期","tooltips":{"viewMode":"表示モード切替(グループ / フラット)","sort":"ブランチの並び替え","sync":"worktree を同期","repositories":"リポジトリを管理(追加・同期)"},"displaySize":{"ariaLabel":"表示サイズ","large":"大","medium":"中","small":"小","xsmall":"極小"},"confirmDialog":{"title":"確認","confirm":"OK"},"language":"言語","loadingPage":"ページを読み込み中","closeNotification":"通知を閉じる","status":{"idle":"アイドル","ready":"準備完了","running":"実行中","generating":"生成中","waiting":"応答待ち","error":"エラー","unknown":"不明"},"sort":{"options":"並び替えオプション","updatedAt":"更新日時","repositoryName":"リポジトリ","branchName":"ブランチ","status":"ステータス","lastSent":"最終送信"},"branchItem":{"cliToolStatus":"CLI ツールのステータス","hasUnread":"未読メッセージあり"},"connection":{"reconnecting":"再接続中","offline":"オフライン","reconnectingTooltip":"ライブ接続を再確立しています(ポーリングで動作中)","offlineTooltip":"ライブ接続なし(ポーリングで動作中)"},"versionMismatch":{"title":"新しいバージョンが起動しています","description":"サーバーは {serverVersion} になりましたが、このタブは {clientVersion} のままです。最新の状態にするには再読み込みしてください。","reload":"再読み込み","dismiss":"閉じる"},"meta":{"description":"Claude CLI と tmux セッションによる Git worktree 管理"},"attention":{"label":"要対応","badgeLabel":"要対応のワークツリーが {count} 件あります"}}')}};
1
+ "use strict";exports.id=3945,exports.ids=[3945],exports.modules={53945:a=>{a.exports=JSON.parse('{"sessions":{"idleAgents":"アイドル {count} 件","activeAgents":"稼働 {count} 件","title":"セッション","description":"全リポジトリの worktree セッション。","filterPlaceholder":"名前またはリポジトリで絞り込み...","filterAriaLabel":"名前またはリポジトリでセッションを絞り込む","sortByAriaLabel":"並び替え","sortAscending":"昇順に並び替え","sortDescending":"降順に並び替え","loadingAriaLabel":"セッションを読み込み中","refreshError":"セッションの更新に失敗しました: {message}","loadError":"セッションの読み込みに失敗しました: {message}","noMatching":"一致するセッションがありません。","empty":"セッションがまだありません。"},"nav":{"home":"ホーム","chat":"チャット","sessions":"セッション","repositories":"リポジトリ","repositoriesShort":"リポジトリ","review":"レビュー","reviewReport":"レビュー/レポート","more":"その他","skills":"スキル"},"repositories":{"empty":"リポジトリが登録されていません。","add":"リポジトリを追加","syncAll":"すべて同期","syncing":"同期中...","addNewTitle":"リポジトリを新規追加","localPathTab":"ローカルパス","cloneUrlTab":"クローン URL","localPathDescription":"worktree を含む git リポジトリの絶対パスを入力してください。","localPathLabel":"リポジトリパス","localPathExample":"例: {example}","localPathAllowedRoots":"許可ルート: {roots}","browse":"参照…","pickerTitle":"リポジトリのフォルダを選択","pickerRootsLabel":"許可ルート","pickerRecentLabel":"最近使ったパス","pickerSelectHere":"このフォルダを選択","pickerUp":"1 階層上へ","pickerEmpty":"サブフォルダがありません。","pickerTruncated":"先頭 {limit} 件のみ表示しています。","pickerLoading":"読み込み中…","pickerWorktreeCount":"worktree {count} 件","validationGitRepo":"git リポジトリです(worktree {count} 件検出)","validationNotGitRepo":"このフォルダは git リポジトリではありません。","validationNotFound":"このフォルダは存在しません。","validationOutsideRoots":"許可ルート外です({roots})。","scan":"スキャンして追加","scanning":"スキャン中...","cloneUrlDescription":"リモートリポジトリをクローンする git の URL を入力してください。","cloneUrlLabel":"クローン URL","cloneUrlHelp":"HTTPS と SSH の URL に対応しています","clone":"クローン","forkAndClone":"Fork して追加","forkOptionLabel":"追加前に fork する(gh repo fork)","forkOptionHelp":"自分の GitHub アカウントに fork を作成し、それをクローンします(origin=自分の fork、upstream=元リポジトリ)。認証済みの GitHub CLI(gh)が必要です。","cloning":"クローン中...","cloneSuccess":"リポジトリをクローンしました","cloneFailed":"クローンに失敗しました","pathRequired":"リポジトリパスを入力してください","urlRequired":"クローン URL を入力してください","urlInvalid":"URL の形式が正しくありません","loading":"リポジトリを読み込み中","filterAll":"すべて ({count})","filterDisabled":"無効化中 ({count})","emptyDisabled":"走査対象から外したリポジトリはありません。","disableConfirmTitle":"走査対象から外しますか?","disableConfirmBody":"「{name}」は今後 worktree の走査対象から外れます。\\n\\n削除は行いません: {count} 件の worktree と、そのチャット履歴・タスク・検証実行はデータベースに残り、稼働中の tmux セッションもそのまま動き続けます。\\n\\nworktree はサイドバーにも残ります。非表示にする場合は Visibility トグルを使ってください。","disableConfirmAction":"走査対象から外す","disableSuccess":"「{name}」を走査対象から外しました。","enableSuccess":"「{name}」を走査対象に戻しました (worktree {count} 件)。","duplicateScanRootWarning":"既存の scan root と同じ git リポジトリです: {paths}。両方が走査され、共有している worktree はすべて二重に登録されます。","duplicateConfirmTitle":"同じリポジトリの scan root をもう 1 つ登録しますか?","duplicateConfirmBody":"「{path}」は次と同じ git リポジトリです:\\n{paths}\\n\\nどちらの root も同じ worktree を列挙するため、同期のたびに各 worktree が二重に登録され、「リポジトリパス」が実行ごとに入れ替わります。\\n\\nこの登録自体は可能です。これらの worktree を別々の root として管理したい場合はそのまま続行してください。そうでなければキャンセルするか、後から Repositories 一覧の Scan トグルで片方を走査対象から外してください。","duplicateConfirmAction":"このまま追加","duplicateRowBadge":"scan root 重複","duplicateRowDetail":"{paths} と同じ git リポジトリです。どちらかの行の Scan トグルで走査対象から外せます。"},"cancel":"キャンセル","send":"送信","sending":"送信中...","sendMessagePlaceholder":"メッセージを送信...","end":"終了する","ending":"終了中...","retry":"再試行","reload":"再読み込み","reconnect":"再接続","close":"閉じる","back":"戻る","menu":"メニュー","sidebar":{"open":"サイドバーを開く","close":"サイドバーを閉じる","branchNavigation":"ブランチナビゲーション","branches":"ブランチ","searchBranches":"ブランチを検索...","noBranchesFound":"ブランチが見つかりません","noBranchesAvailable":"ブランチがありません","loadingBranches":"ブランチを読み込み中...","branchesLoadFailed":"ブランチを取得できませんでした","retryLoadBranches":"再試行","dragToReorderGroup":"ドラッグでグループを並べ替え","switchToFlatView":"フラット表示に切り替え","switchToGroupedView":"グループ表示に切り替え"},"confirmDelete":"「{name}」を削除しますか?","favorites":{"add":"お気に入りに追加","remove":"お気に入りを解除"},"syncSuccess":"{count}件のworktreeを同期しました","syncError":"同期に失敗しました","syncAuthError":"認証エラー","syncButtonLabel":"ブランチを同期","tooltips":{"viewMode":"表示モード切替(グループ / フラット)","sort":"ブランチの並び替え","sync":"worktree を同期","repositories":"リポジトリを管理(追加・同期)"},"displaySize":{"ariaLabel":"表示サイズ","large":"大","medium":"中","small":"小","xsmall":"極小"},"confirmDialog":{"title":"確認","confirm":"OK"},"language":"言語","loadingPage":"ページを読み込み中","closeNotification":"通知を閉じる","status":{"idle":"アイドル","ready":"準備完了","running":"実行中","generating":"生成中","waiting":"応答待ち","error":"エラー","unknown":"不明"},"sort":{"options":"並び替えオプション","updatedAt":"更新日時","repositoryName":"リポジトリ","branchName":"ブランチ","status":"ステータス","lastSent":"最終送信"},"branchItem":{"cliToolStatus":"CLI ツールのステータス","hasUnread":"未読メッセージあり"},"connection":{"reconnecting":"再接続中","offline":"オフライン","reconnectingTooltip":"ライブ接続を再確立しています(ポーリングで動作中)","offlineTooltip":"ライブ接続なし(ポーリングで動作中)"},"versionMismatch":{"title":"新しいバージョンが起動しています","description":"サーバーは {serverVersion} になりましたが、このタブは {clientVersion} のままです。最新の状態にするには再読み込みしてください。","reload":"再読み込み","dismiss":"閉じる"},"meta":{"description":"Claude CLI と tmux セッションによる Git worktree 管理"},"attention":{"label":"要対応","badgeLabel":"要対応のワークツリーが {count} 件あります"}}')}};
@@ -1 +1 @@
1
- "use strict";exports.id=4393,exports.ids=[4393],exports.modules={23197:(a,b,c)=>{c.d(b,{$M:()=>e,H1:()=>d,q5:()=>f});let d="__global__",e=2e3,f=900},32002:(a,b,c)=>{c.d(b,{e:()=>f});var d=c(56791),e=c(15194);function f(a,b,c){let f=(0,d.getAgentInstances)(a,b);return f.length>0?f:(0,e.lu)(c??[])}},57836:(a,b,c)=>{c.d(b,{Jp:()=>k,Te:()=>l,hd:()=>j,wN:()=>h});var d=c(24455);let e=(0,c(72626).h)("waiting-episode-state"),f=globalThis.__sessionWaitingEpisodes??(globalThis.__sessionWaitingEpisodes=new Map),g=globalThis.__sessionWaitingTransitionListeners??(globalThis.__sessionWaitingTransitionListeners=new Set);function h(a){return g.add(a),()=>{g.delete(a)}}function i(a){for(let b of g)try{b(a)}catch(b){e.error("waiting-transition-listener-failed",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,waiting:a.waiting,error:b instanceof Error?b.message:String(b)})}}function j({worktreeId:a,cliToolId:b,instanceId:c,waiting:e,kind:g=null,structuredSince:h=null,now:j=Date.now()}){let k=(0,d.v7)(a,b,c),l=f.get(k);if(!e)return void 0===l||(f.delete(k),i({worktreeId:a,cliToolId:b,instanceId:c,waiting:!1,since:null,kind:null,at:j})),null;if(void 0!==l)return l.kind=g,l.since;let m=h??j;return f.set(k,{since:m,kind:g}),i({worktreeId:a,cliToolId:b,instanceId:c,waiting:!0,since:m,kind:g,at:j}),m}function k(a,b,c){return f.get((0,d.v7)(a,b,c))??null}function l(a){let b=`${a}${d.CS}`;for(let a of f.keys())if(a.startsWith(b))return!0;return!1}},89398:(a,b,c)=>{c.d(b,{B:()=>v});var d=c(59701),e=c(15194),f=c(31766),g=c(95595),h=c(67882),i=c(23365),j=c(57905),k=c(45017),l=c(23197),m=c(30008),n=c(40043),o=c(57836),p=c(48083),q=c(26547),r=c(97709),s=c(66101);let t={prompt:3,menu:2,unclassified:1};async function u(a,b,c,d,e,l,t,u){let v=e.has(d);v&&"claude"===b&&((await (0,j.oV)(d)).healthy||(v=!1));let w=!1,x=!1,y=null,z=null,A=null,B=null;if(v)try{var C;let d=(0,i.y)(b).statusLines,e=await (0,f.Wh)(a,b,d,c),j=(0,k.v7)(a,b,c),o=(0,k.xU)(j),r=o?new Date(o):void 0,s=(0,g.WC)(e,b,r);(0,p.vm)(a,b,c,(0,q.jw)(b,e)),({isWaitingForResponse:w,isProcessing:x}=(0,h.O_)(s.status)),B=s.reason,A=s.evidence,(0,n.ox)(j,{status:s.status,reason:s.reason,evidence:A});let v=(0,m.xF)({worktreeId:a,cliToolId:b,instanceId:c,scraper:{status:s.status,reason:s.reason,hasActivePrompt:s.hasActivePrompt}});w=w||v.waiting,z=v.structured?.at??null,y=(C={waiting:w,hasActivePrompt:s.hasActivePrompt,scraperStatus:s.status,scraperReason:s.reason}).waiting?C.hasActivePrompt?"prompt":"waiting"===C.scraperStatus&&g.ug.has(C.scraperReason)?"menu":"unclassified":null,!s.hasActivePrompt&&t(l,a,{limit:10,cliToolId:b,instanceId:c}).some(a=>"prompt"===a.messageType&&a.promptData?.status!=="answered")&&u(l,a,b,c)}catch{x=!0}let D=(0,o.hd)({worktreeId:a,cliToolId:b,instanceId:c,waiting:w,kind:y,structuredSince:z}),{model:E,effort:F}=(0,p.jl)(a,b,c),G=(0,k.v7)(a,b,c);v||(0,n.xG)(G);let H=v?(0,n.AD)(G):null,I=v?function(a,b,c){try{let d=(0,r.VM)(b),e=(0,s.Kf)(d,d.liveness({worktreeId:a,cliToolId:b,instanceId:c}),Date.now());if(void 0===e.degradedReason&&void 0===e.liveness)return null;return e}catch{return null}}(a,b,c):null;return{isRunning:v,isWaitingForResponse:w,isProcessing:x,waitingKind:y,waitingSince:D,awaitingInstruction:v&&(0,p.pI)(a,b,c),...null!==E?{model:E}:{},...null!==F?{reasoningEffort:F}:{},...null!==A?{statusEvidence:A}:{},...null!==B?{sessionStatusReason:B}:{},...null!==H?{lastKnownStatus:H.status,lastKnownStatusAt:H.at}:{},...null!==I?{eventSource:I}:{}}}async function v(a,b,c,f,g,h){if(a===l.H1)return{sessionStatusByCli:{},sessionStatusByInstance:{},isSessionRunning:!1,isWaitingForResponse:!1,isProcessing:!1};let i=d.CLIToolManager.getInstance(),j=e.XH,k=h(c,a).filter(a=>a.id!==a.cliTool),m=j.map(b=>({cliToolId:b,instanceId:b,sessionName:i.getTool(b).getSessionName(a,b)}));for(let b of k)m.push({cliToolId:b.cliTool,instanceId:b.id,sessionName:i.getTool(b.cliTool).getSessionName(a,b.id)});let n=await Promise.all(m.map(async d=>{let e=await u(a,d.cliToolId,d.instanceId,d.sessionName,b,c,f,g);return{...d,status:e}})),o={},p={};for(let{cliToolId:a,instanceId:b,status:c}of n){p[b]=c;let d=o[a];o[a]=d?function(a,b){var c,d,e,f;return{isRunning:a.isRunning||b.isRunning,isWaitingForResponse:a.isWaitingForResponse||b.isWaitingForResponse,isProcessing:a.isProcessing||b.isProcessing,waitingKind:(c=a.waitingKind,d=b.waitingKind,null===c?d:null===d||t[c]>=t[d]?c:d),waitingSince:(e=a.waitingSince,f=b.waitingSince,null===e?f:null===f?e:Math.min(e,f)),awaitingInstruction:a.awaitingInstruction||b.awaitingInstruction}}(d,c):c}let q=!1,r=!1,s=!1;for(let a of Object.values(o))a&&(a.isRunning&&(q=!0),a.isWaitingForResponse&&(r=!0),a.isProcessing&&(s=!0));return{sessionStatusByCli:o,sessionStatusByInstance:p,isSessionRunning:q,isWaitingForResponse:r,isProcessing:s}}}};
1
+ "use strict";exports.id=4393,exports.ids=[4393],exports.modules={23197:(a,b,c)=>{c.d(b,{$M:()=>e,H1:()=>d,q5:()=>f});let d="__global__",e=2e3,f=900},32002:(a,b,c)=>{c.d(b,{e:()=>f});var d=c(56791),e=c(15194);function f(a,b,c){let f=(0,d.getAgentInstances)(a,b);return f.length>0?f:(0,e.lu)(c??[])}},57836:(a,b,c)=>{c.d(b,{Jp:()=>k,Te:()=>l,hd:()=>j,wN:()=>h});var d=c(24455);let e=(0,c(72626).h)("waiting-episode-state"),f=globalThis.__sessionWaitingEpisodes??(globalThis.__sessionWaitingEpisodes=new Map),g=globalThis.__sessionWaitingTransitionListeners??(globalThis.__sessionWaitingTransitionListeners=new Set);function h(a){return g.add(a),()=>{g.delete(a)}}function i(a){for(let b of g)try{b(a)}catch(b){e.error("waiting-transition-listener-failed",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,waiting:a.waiting,error:b instanceof Error?b.message:String(b)})}}function j({worktreeId:a,cliToolId:b,instanceId:c,waiting:e,kind:g=null,structuredSince:h=null,now:j=Date.now()}){let k=(0,d.v7)(a,b,c),l=f.get(k);if(!e)return void 0===l||(f.delete(k),i({worktreeId:a,cliToolId:b,instanceId:c,waiting:!1,since:null,kind:null,at:j})),null;if(void 0!==l)return l.kind=g,l.since;let m=h??j;return f.set(k,{since:m,kind:g}),i({worktreeId:a,cliToolId:b,instanceId:c,waiting:!0,since:m,kind:g,at:j}),m}function k(a,b,c){return f.get((0,d.v7)(a,b,c))??null}function l(a){let b=`${a}${d.CS}`;for(let a of f.keys())if(a.startsWith(b))return!0;return!1}},89398:(a,b,c)=>{c.d(b,{z:()=>t,B:()=>w});var d=c(59701),e=c(15194),f=c(31766),g=c(95595),h=c(67882),i=c(23365),j=c(57905),k=c(45017),l=c(23197),m=c(30008),n=c(40043),o=c(57836),p=c(48083),q=c(26547),r=c(97709),s=c(66101);function t(){return{probeCount:0,captureCount:0,healthCheckCount:0}}let u={prompt:3,menu:2,unclassified:1};async function v(a,b,c,d,e,l,t,u,v){let w=e.has(d);w&&"claude"===b&&(v&&v.healthCheckCount++,(await (0,j.oV)(d)).healthy||(w=!1));let x=!1,y=!1,z=null,A=null,B=null,C=null;if(w)try{var D;let d=(0,i.y)(b).statusLines;v&&v.captureCount++;let e=await (0,f.Wh)(a,b,d,c),j=(0,k.v7)(a,b,c),o=(0,k.xU)(j),r=o?new Date(o):void 0,s=(0,g.WC)(e,b,r);(0,p.vm)(a,b,c,(0,q.jw)(b,e)),({isWaitingForResponse:x,isProcessing:y}=(0,h.O_)(s.status)),C=s.reason,B=s.evidence,(0,n.ox)(j,{status:s.status,reason:s.reason,evidence:B});let w=(0,m.xF)({worktreeId:a,cliToolId:b,instanceId:c,scraper:{status:s.status,reason:s.reason,hasActivePrompt:s.hasActivePrompt}});x=x||w.waiting,A=w.structured?.at??null,z=(D={waiting:x,hasActivePrompt:s.hasActivePrompt,scraperStatus:s.status,scraperReason:s.reason}).waiting?D.hasActivePrompt?"prompt":"waiting"===D.scraperStatus&&g.ug.has(D.scraperReason)?"menu":"unclassified":null,!s.hasActivePrompt&&t(l,a,{limit:10,cliToolId:b,instanceId:c}).some(a=>"prompt"===a.messageType&&a.promptData?.status!=="answered")&&u(l,a,b,c)}catch{y=!0}let E=(0,o.hd)({worktreeId:a,cliToolId:b,instanceId:c,waiting:x,kind:z,structuredSince:A}),{model:F,effort:G}=(0,p.jl)(a,b,c),H=(0,k.v7)(a,b,c);w||(0,n.xG)(H);let I=w?(0,n.AD)(H):null,J=w?function(a,b,c){try{let d=(0,r.VM)(b),e=(0,s.Kf)(d,d.liveness({worktreeId:a,cliToolId:b,instanceId:c}),Date.now());if(void 0===e.degradedReason&&void 0===e.liveness)return null;return e}catch{return null}}(a,b,c):null;return{isRunning:w,isWaitingForResponse:x,isProcessing:y,waitingKind:z,waitingSince:E,awaitingInstruction:w&&(0,p.pI)(a,b,c),...null!==F?{model:F}:{},...null!==G?{reasoningEffort:G}:{},...null!==B?{statusEvidence:B}:{},...null!==C?{sessionStatusReason:C}:{},...null!==I?{lastKnownStatus:I.status,lastKnownStatusAt:I.at}:{},...null!==J?{eventSource:J}:{}}}async function w(a,b,c,f,g,h,i){if(a===l.H1)return{sessionStatusByCli:{},sessionStatusByInstance:{},isSessionRunning:!1,isWaitingForResponse:!1,isProcessing:!1};let j=d.CLIToolManager.getInstance(),k=e.XH,m=h(c,a).filter(a=>a.id!==a.cliTool),n=k.map(b=>({cliToolId:b,instanceId:b,sessionName:j.getTool(b).getSessionName(a,b)}));for(let b of m)n.push({cliToolId:b.cliTool,instanceId:b.id,sessionName:j.getTool(b.cliTool).getSessionName(a,b.id)});i&&(i.probeCount+=n.length);let o=await Promise.all(n.map(async d=>{let e=await v(a,d.cliToolId,d.instanceId,d.sessionName,b,c,f,g,i);return{...d,status:e}})),p={},q={};for(let{cliToolId:a,instanceId:b,status:c}of o){q[b]=c;let d=p[a];p[a]=d?function(a,b){var c,d,e,f;return{isRunning:a.isRunning||b.isRunning,isWaitingForResponse:a.isWaitingForResponse||b.isWaitingForResponse,isProcessing:a.isProcessing||b.isProcessing,waitingKind:(c=a.waitingKind,d=b.waitingKind,null===c?d:null===d||u[c]>=u[d]?c:d),waitingSince:(e=a.waitingSince,f=b.waitingSince,null===e?f:null===f?e:Math.min(e,f)),awaitingInstruction:a.awaitingInstruction||b.awaitingInstruction}}(d,c):c}let r=!1,s=!1,t=!1;for(let a of Object.values(p))a&&(a.isRunning&&(r=!0),a.isWaitingForResponse&&(s=!0),a.isProcessing&&(t=!0));return{sessionStatusByCli:p,sessionStatusByInstance:q,isSessionRunning:r,isWaitingForResponse:s,isProcessing:t}}}};
@@ -1 +1 @@
1
- "use strict";exports.id=6130,exports.ids=[6130],exports.modules={26838:(a,b,c)=>{c.d(b,{Mj:()=>k,Sw:()=>j,lX:()=>l});var d=c(29021),e=c(33873),f=c(90164);let g=/^v?\d+\.\d+\.\d+$/,h=/^[a-zA-Z0-9.\-\s_v]+$/,i=globalThis.__versionCheckCache??(globalThis.__versionCheckCache={result:null,fetchedAt:0,rateLimitResetAt:null});function j(){return function(){try{let a=(0,d.readFileSync)((0,e.join)(process.cwd(),"package.json"),"utf-8"),b=JSON.parse(a);if("commandmate"===b.name&&"string"==typeof b.version&&b.version.length>0)return b.version;return null}catch{return null}}()??"0.28.0"}function k(){return j()}async function l(){try{var a,b,c;if(null!==i.result&&Date.now()-i.fetchedAt<36e5||i.rateLimitResetAt&&(!(Date.now()>=i.rateLimitResetAt)||(i.rateLimitResetAt=null,0)))return i.result;let d=await fetch("https://api.github.com/repos/Kewton/CommandMate/releases/latest",{headers:{Accept:"application/vnd.github+json","User-Agent":`CommandMate/${k()}`},cache:"no-store",signal:AbortSignal.timeout(5e3)});if(403===d.status)return function(a){let b=a.headers.get("X-RateLimit-Reset");b?i.rateLimitResetAt=1e3*parseInt(b,10):i.rateLimitResetAt=Date.now()+36e5}(d),i.result;if(!d.ok)return i.result;let e=await d.json(),j=k(),l=e.tag_name.replace(/^v/,""),m={hasUpdate:function(a,b){if(!g.test(a)||!g.test(b))return!1;let c=a=>a.replace(/^v/,"").split(".").map(Number),[d,e,f]=c(a),[h,i,j]=c(b);return h!==d?h>d:i!==e?i>e:j>f}(j,e.tag_name),currentVersion:j,latestVersion:l,releaseUrl:(a=e.html_url).startsWith(f.Dk)?a:null,releaseName:(b=e.name,c=e.tag_name,h.test(b)&&b.length<=128?b:c),publishedAt:e.published_at};return i.result=m,i.fetchedAt=Date.now(),m}catch{return i.result}}},88573:(a,b,c)=>{c.d(b,{Lw:()=>s});let d="https://raw.githubusercontent.com/Kewton/commandmate-skills/main/catalog/v1/catalog.json",e=[d],f=/^[A-Za-z0-9/+=_."-]{1,128}$/;var g=c(72626),h=c(13075);let i=(0,g.h)("lib/skills/catalog-client"),j={FETCH_FAILED:"SKILL_CATALOG_FETCH_FAILED",RATE_LIMITED:"SKILL_CATALOG_RATE_LIMITED",OVERSIZED:"SKILL_CATALOG_OVERSIZED",MALFORMED:"SKILL_CATALOG_MALFORMED",INVALID_SCHEMA:"SKILL_CATALOG_INVALID_SCHEMA"},k=globalThis.__skillCatalogCache??={catalog:null,validatedAt:0,confirmedAt:0,etag:null,revision:null,rateLimitResetAt:null,inflight:null};class l extends Error{}let m={[j.FETCH_FAILED]:"The Skill Catalog could not be retrieved.",[j.RATE_LIMITED]:"The Skill Catalog origin is rate limiting requests.",[j.OVERSIZED]:"The Skill Catalog response exceeded the allowed size.",[j.MALFORMED]:"The Skill Catalog response was not valid JSON.",[j.INVALID_SCHEMA]:"The Skill Catalog response did not match the supported Catalog schema."};function n(a){return new Date(a).toISOString()}function o(a,b,c){return{catalog:a,fetchedAt:n(k.validatedAt),revalidatedAt:n(k.confirmedAt),state:b,stale:"stale"===b,offline:"stale"===b,staleReason:c,source:{repository:"Kewton/commandmate-skills",ref:"main",revision:k.revision}}}function p(a,b=[]){return k.catalog?{ok:!0,snapshot:o(k.catalog,"stale",a)}:{ok:!1,failure:{code:a,message:m[a],errors:b}}}async function q(a,b){let c=a.headers.get("Content-Length");if(null!==c){let a=Number(c);if(!Number.isFinite(a)||a<0||a>b)throw new l("content-length out of bounds")}let d=a.body;if(!d||"function"!=typeof d.getReader){let c=await a.text();if(new TextEncoder().encode(c).length>b)throw new l("body exceeded size cap");return c}let e=d.getReader(),f=[],g=0;for(;;){let{done:a,value:c}=await e.read();if(a)break;if(c){if((g+=c.byteLength)>b)throw await e.cancel(),new l("body exceeded size cap");f.push(c)}}let h=new Uint8Array(g),i=0;for(let a of f)h.set(a,i),i+=a.byteLength;return new TextDecoder("utf-8").decode(h)}async function r(a){let b,c,g;if(!e.includes(d))return p(j.FETCH_FAILED);let m={Accept:"application/json","User-Agent":`CommandMate/${a}`};null!==k.catalog&&null!==k.etag&&(m["If-None-Match"]=k.etag);try{b=await fetch(d,{headers:m,cache:"no-store",signal:AbortSignal.timeout(5e3)})}catch{return i.warn("catalog-fetch-failed",{reason:j.FETCH_FAILED}),p(j.FETCH_FAILED)}if(304===b.status&&null!==k.catalog)return k.confirmedAt=Date.now(),{ok:!0,snapshot:o(k.catalog,"revalidated",null)};if(403===b.status||429===b.status)return!function(a){let b=Date.now(),c=b+864e5,d=a.headers.get("X-RateLimit-Reset");if(null!==d){let a=Number(d);if(Number.isFinite(a)&&a>0){k.rateLimitResetAt=Math.min(1e3*a,c);return}}let e=a.headers.get("Retry-After");if(null!==e){let a=Number(e);if(Number.isFinite(a)&&a>0){k.rateLimitResetAt=Math.min(b+1e3*a,c);return}}k.rateLimitResetAt=b+36e5}(b),i.warn("catalog-rate-limited",{status:b.status}),p(j.RATE_LIMITED);if(!b.ok)return i.warn("catalog-fetch-failed",{status:b.status}),p(j.FETCH_FAILED);try{c=await q(b,1048576)}catch(b){let a=b instanceof l?j.OVERSIZED:j.FETCH_FAILED;return i.warn("catalog-body-rejected",{reason:a}),p(a)}try{g=JSON.parse(c)}catch{return i.warn("catalog-malformed",{reason:j.MALFORMED}),p(j.MALFORMED)}let n=(0,h.JJ)(g);if(!n.ok)return i.warn("catalog-invalid-schema",{errorCount:n.errors.length}),p(j.INVALID_SCHEMA,n.errors);let r=Date.now();return k.catalog=n.value,k.validatedAt=r,k.confirmedAt=r,k.etag=b.headers.get("ETag"),k.revision=function(a){if(null===a)return null;let b=a.trim();return f.test(b)?b:null}(k.etag),{ok:!0,snapshot:o(n.value,"fresh",null)}}async function s(a={}){let{hostVersion:b="0.0.0",forceRevalidate:c=!1}=a;return!c&&null!==k.catalog&&Date.now()-k.confirmedAt<9e5&&null!==k.catalog?{ok:!0,snapshot:o(k.catalog,"cached",null)}:null!==k.rateLimitResetAt&&(!(Date.now()>=k.rateLimitResetAt)||(k.rateLimitResetAt=null,0))?p(j.RATE_LIMITED):(null===k.inflight&&(k.inflight=r(b).finally(()=>{k.inflight=null})),k.inflight)}},90164:(a,b,c)=>{c.d(b,{Dk:()=>e,kD:()=>f});let d="https://github.com/Kewton/CommandMate",e=`${d}/releases/`,f=`${d}/blob/main/docs/security-guide.md`}};
1
+ "use strict";exports.id=6130,exports.ids=[6130],exports.modules={26838:(a,b,c)=>{c.d(b,{Mj:()=>k,Sw:()=>j,lX:()=>l});var d=c(29021),e=c(33873),f=c(90164);let g=/^v?\d+\.\d+\.\d+$/,h=/^[a-zA-Z0-9.\-\s_v]+$/,i=globalThis.__versionCheckCache??(globalThis.__versionCheckCache={result:null,fetchedAt:0,rateLimitResetAt:null});function j(){return function(){try{let a=(0,d.readFileSync)((0,e.join)(process.cwd(),"package.json"),"utf-8"),b=JSON.parse(a);if("commandmate"===b.name&&"string"==typeof b.version&&b.version.length>0)return b.version;return null}catch{return null}}()??"0.29.0"}function k(){return j()}async function l(){try{var a,b,c;if(null!==i.result&&Date.now()-i.fetchedAt<36e5||i.rateLimitResetAt&&(!(Date.now()>=i.rateLimitResetAt)||(i.rateLimitResetAt=null,0)))return i.result;let d=await fetch("https://api.github.com/repos/Kewton/CommandMate/releases/latest",{headers:{Accept:"application/vnd.github+json","User-Agent":`CommandMate/${k()}`},cache:"no-store",signal:AbortSignal.timeout(5e3)});if(403===d.status)return function(a){let b=a.headers.get("X-RateLimit-Reset");b?i.rateLimitResetAt=1e3*parseInt(b,10):i.rateLimitResetAt=Date.now()+36e5}(d),i.result;if(!d.ok)return i.result;let e=await d.json(),j=k(),l=e.tag_name.replace(/^v/,""),m={hasUpdate:function(a,b){if(!g.test(a)||!g.test(b))return!1;let c=a=>a.replace(/^v/,"").split(".").map(Number),[d,e,f]=c(a),[h,i,j]=c(b);return h!==d?h>d:i!==e?i>e:j>f}(j,e.tag_name),currentVersion:j,latestVersion:l,releaseUrl:(a=e.html_url).startsWith(f.Dk)?a:null,releaseName:(b=e.name,c=e.tag_name,h.test(b)&&b.length<=128?b:c),publishedAt:e.published_at};return i.result=m,i.fetchedAt=Date.now(),m}catch{return i.result}}},88573:(a,b,c)=>{c.d(b,{Lw:()=>s});let d="https://raw.githubusercontent.com/Kewton/commandmate-skills/main/catalog/v1/catalog.json",e=[d],f=/^[A-Za-z0-9/+=_."-]{1,128}$/;var g=c(72626),h=c(13075);let i=(0,g.h)("lib/skills/catalog-client"),j={FETCH_FAILED:"SKILL_CATALOG_FETCH_FAILED",RATE_LIMITED:"SKILL_CATALOG_RATE_LIMITED",OVERSIZED:"SKILL_CATALOG_OVERSIZED",MALFORMED:"SKILL_CATALOG_MALFORMED",INVALID_SCHEMA:"SKILL_CATALOG_INVALID_SCHEMA"},k=globalThis.__skillCatalogCache??={catalog:null,validatedAt:0,confirmedAt:0,etag:null,revision:null,rateLimitResetAt:null,inflight:null};class l extends Error{}let m={[j.FETCH_FAILED]:"The Skill Catalog could not be retrieved.",[j.RATE_LIMITED]:"The Skill Catalog origin is rate limiting requests.",[j.OVERSIZED]:"The Skill Catalog response exceeded the allowed size.",[j.MALFORMED]:"The Skill Catalog response was not valid JSON.",[j.INVALID_SCHEMA]:"The Skill Catalog response did not match the supported Catalog schema."};function n(a){return new Date(a).toISOString()}function o(a,b,c){return{catalog:a,fetchedAt:n(k.validatedAt),revalidatedAt:n(k.confirmedAt),state:b,stale:"stale"===b,offline:"stale"===b,staleReason:c,source:{repository:"Kewton/commandmate-skills",ref:"main",revision:k.revision}}}function p(a,b=[]){return k.catalog?{ok:!0,snapshot:o(k.catalog,"stale",a)}:{ok:!1,failure:{code:a,message:m[a],errors:b}}}async function q(a,b){let c=a.headers.get("Content-Length");if(null!==c){let a=Number(c);if(!Number.isFinite(a)||a<0||a>b)throw new l("content-length out of bounds")}let d=a.body;if(!d||"function"!=typeof d.getReader){let c=await a.text();if(new TextEncoder().encode(c).length>b)throw new l("body exceeded size cap");return c}let e=d.getReader(),f=[],g=0;for(;;){let{done:a,value:c}=await e.read();if(a)break;if(c){if((g+=c.byteLength)>b)throw await e.cancel(),new l("body exceeded size cap");f.push(c)}}let h=new Uint8Array(g),i=0;for(let a of f)h.set(a,i),i+=a.byteLength;return new TextDecoder("utf-8").decode(h)}async function r(a){let b,c,g;if(!e.includes(d))return p(j.FETCH_FAILED);let m={Accept:"application/json","User-Agent":`CommandMate/${a}`};null!==k.catalog&&null!==k.etag&&(m["If-None-Match"]=k.etag);try{b=await fetch(d,{headers:m,cache:"no-store",signal:AbortSignal.timeout(5e3)})}catch{return i.warn("catalog-fetch-failed",{reason:j.FETCH_FAILED}),p(j.FETCH_FAILED)}if(304===b.status&&null!==k.catalog)return k.confirmedAt=Date.now(),{ok:!0,snapshot:o(k.catalog,"revalidated",null)};if(403===b.status||429===b.status)return!function(a){let b=Date.now(),c=b+864e5,d=a.headers.get("X-RateLimit-Reset");if(null!==d){let a=Number(d);if(Number.isFinite(a)&&a>0){k.rateLimitResetAt=Math.min(1e3*a,c);return}}let e=a.headers.get("Retry-After");if(null!==e){let a=Number(e);if(Number.isFinite(a)&&a>0){k.rateLimitResetAt=Math.min(b+1e3*a,c);return}}k.rateLimitResetAt=b+36e5}(b),i.warn("catalog-rate-limited",{status:b.status}),p(j.RATE_LIMITED);if(!b.ok)return i.warn("catalog-fetch-failed",{status:b.status}),p(j.FETCH_FAILED);try{c=await q(b,1048576)}catch(b){let a=b instanceof l?j.OVERSIZED:j.FETCH_FAILED;return i.warn("catalog-body-rejected",{reason:a}),p(a)}try{g=JSON.parse(c)}catch{return i.warn("catalog-malformed",{reason:j.MALFORMED}),p(j.MALFORMED)}let n=(0,h.JJ)(g);if(!n.ok)return i.warn("catalog-invalid-schema",{errorCount:n.errors.length}),p(j.INVALID_SCHEMA,n.errors);let r=Date.now();return k.catalog=n.value,k.validatedAt=r,k.confirmedAt=r,k.etag=b.headers.get("ETag"),k.revision=function(a){if(null===a)return null;let b=a.trim();return f.test(b)?b:null}(k.etag),{ok:!0,snapshot:o(n.value,"fresh",null)}}async function s(a={}){let{hostVersion:b="0.0.0",forceRevalidate:c=!1}=a;return!c&&null!==k.catalog&&Date.now()-k.confirmedAt<9e5&&null!==k.catalog?{ok:!0,snapshot:o(k.catalog,"cached",null)}:null!==k.rateLimitResetAt&&(!(Date.now()>=k.rateLimitResetAt)||(k.rateLimitResetAt=null,0))?p(j.RATE_LIMITED):(null===k.inflight&&(k.inflight=r(b).finally(()=>{k.inflight=null})),k.inflight)}},90164:(a,b,c)=>{c.d(b,{Dk:()=>e,kD:()=>f});let d="https://github.com/Kewton/CommandMate",e=`${d}/releases/`,f=`${d}/blob/main/docs/security-guide.md`}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=880,exports.ids=[880],exports.modules={1102:(a,b,c)=>{c.d(b,{m_:()=>i});var d=c(21124),e=c(38301),f=c(23312);function g(a,b,c){return Math.min(Math.max(a,4),Math.max(4,c-b-4))}let h={top:-9999,left:-9999};function i({content:a,placement:b="right",delay:c=100,children:i}){let[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)(null),n=(0,e.useRef)(null),o=(0,e.useRef)(null),p=(0,e.useRef)(null),q=(0,e.useCallback)(()=>{null!==p.current&&(clearTimeout(p.current),p.current=null)},[]),r=(0,e.useCallback)(()=>{q(),p.current=setTimeout(()=>{k(!0),p.current=null},c)},[c,q]),s=(0,e.useCallback)(()=>{q(),k(!1),m(null)},[q]);return(0,e.useCallback)(()=>{let a=n.current,c=o.current;if(!a||!c)return;let d=a.getBoundingClientRect(),e=c.getBoundingClientRect();m(function(a,b,c,d){let e,f,h=b.left+b.width/2-c.width/2,i=b.top+b.height/2-c.height/2;switch(a){case"top":e=b.top-c.height-8,f=h;break;case"bottom":e=b.top+b.height+8,f=h;break;case"left":e=i,f=b.left-c.width-8;break;default:e=i,f=b.left+b.width+8}return{top:g(e,c.height,d.height),left:g(f,c.width,d.width)}}(b,{top:d.top,left:d.left,width:d.width,height:d.height},{width:e.width,height:e.height},{width:window.innerWidth,height:window.innerHeight}))},[b]),(0,d.jsxs)("span",{ref:n,"data-testid":"tooltip-wrapper",className:"relative inline-flex",tabIndex:-1,onMouseEnter:r,onMouseLeave:s,children:[i,j&&"undefined"!=typeof document&&(0,f.createPortal)((0,d.jsx)("span",{ref:o,role:"tooltip","aria-hidden":"true","data-placement":b,className:"fixed z-40 whitespace-nowrap px-2 py-1 text-xs font-medium rounded bg-foreground text-background shadow-lg pointer-events-none",style:l??h,children:a}),document.body)]})}},8509:(a,b,c)=>{c.d(b,{g:()=>h});var d=c(21124);c(38301);var e=c(20481),f=c(5772),g=c(12480);function h(){let{size:a,setSize:b,isMobile:c}=(0,f.Ps)(),h=(0,e.c)("common");if(c)return null;let i=h("displaySize.ariaLabel");return(0,d.jsxs)("div",{className:"flex items-center",children:[(0,d.jsx)("label",{htmlFor:"pc-display-size",className:"sr-only",children:i}),(0,d.jsx)("select",{id:"pc-display-size","data-testid":"pc-display-size-select","aria-label":i,value:a,onChange:a=>{let c=a.target.value;(0,g.fM)(c)&&b(c)},className:"text-sm bg-transparent text-foreground border border-input rounded-md px-2 py-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:g.Uf.map(a=>(0,d.jsx)("option",{value:a,children:h(`displaySize.${a}`)},a))})]})}},77560:(a,b,c)=>{c.d(b,{$h:()=>l,DR:()=>e,IH:()=>j,Iu:()=>d,Nb:()=>m,SD:()=>f,_d:()=>i,bm:()=>n,ks:()=>h,t7:()=>k,z7:()=>g});let d=7e3,e=["in_review","approval","stalled"],f="in_review",g="filter",h=`/review?${g}=approval`;function i(a){return a&&e.includes(a)?a:null}let j=["claude","codex","copilot","antigravity","opencode"],k=1e3,l=5,m=100,n=1e3},80880:(a,b,c)=>{c.d(b,{GV:()=>ba});var d=c(21124),e=c(38301),f=c.n(e),g=c(42378),h=c(3991),i=c.n(h),j=c(52761);let k=(0,e.forwardRef)(function({href:a,onClick:b,target:c,...e},f){let h=(0,g.usePathname)(),k=(0,j.Hq)();return(0,d.jsx)(i(),{ref:f,href:a,target:c,onClick:d=>{var e;b?.(d),d.defaultPrevented||0!==(e=d).button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||void 0!==c&&"_self"!==c||/^([a-z][a-z0-9+.-]*:)?\/\//i.test(a)||/^(mailto:|tel:)/i.test(a)||(d.preventDefault(),a!==h&&k.push(a))},...e})});var l=c(20481),m=c(15917),n=c(88285),o=c(97950),p=c(8509),q=c(45523),r=c(70175),s=c(60988);function t(){let{theme:a,setTheme:b}=(0,q.D)(),[c,f]=(0,e.useState)(!1);if(!c)return(0,d.jsx)("div",{"data-testid":"theme-toggle-placeholder",className:"w-8 h-8","aria-hidden":"true"});let g="dark"===a;return(0,d.jsx)("button",{"data-testid":"theme-toggle",onClick:()=>b(g?"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":g?"Switch to light mode":"Switch to dark mode",title:g?"Switch to light mode":"Switch to dark mode",children:g?(0,d.jsx)(r.A,{className:"w-5 h-5","data-testid":"theme-icon-sun"}):(0,d.jsx)(s.A,{className:"w-5 h-5","data-testid":"theme-icon-moon"})})}var u=c(67619);function v(){let{status:a}=(0,u.xM)(),b=(0,l.c)("common");if("connected"===a)return null;let c="connecting"===a,e=b(c?"connection.reconnecting":"connection.offline");return(0,d.jsxs)("span",{"data-testid":"connection-status-indicator",role:"status","aria-live":"polite",title:b(c?"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,d.jsx)("span",{"aria-hidden":"true",className:["w-1.5 h-1.5 rounded-full",c?"bg-warning motion-safe:animate-pulse":"bg-muted-foreground"].join(" ")}),e]})}var w=c(85647),x=c(64632);let y=[{labelKey:"nav.home",href:"/",isActive:a=>"/"===a},{labelKey:"nav.chat",href:"/chat",isActive:a=>a.startsWith("/chat")},{labelKey:"nav.sessions",href:"/sessions",isActive:a=>a.startsWith("/sessions")},{labelKey:"nav.repositoriesShort",href:"/repositories",isActive:a=>a.startsWith("/repositories")},{labelKey:"nav.reviewReport",href:"/review",isActive:a=>a.startsWith("/review")},{labelKey:"nav.more",href:"/more",isActive:a=>a.startsWith("/more")}];function z({title:a="CommandMate"}){let b=(0,g.usePathname)(),c=(0,l.c)("commandPalette"),e=(0,l.c)("common"),{setOpen:h}=(0,x.C)(),[i,j]=f().useState(null);return(0,d.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,d.jsx)("div",{className:"container-custom",children:(0,d.jsxs)("div",{className:"flex items-center justify-between h-16",children:[(0,d.jsx)("div",{className:"flex items-center space-x-4",children:(0,d.jsxs)(k,{href:"/",className:"flex items-center space-x-2 hover:opacity-80 transition-opacity",children:[(0,d.jsx)("div",{className:"w-8 h-8 bg-accent-600 rounded-lg flex items-center justify-center",children:(0,d.jsx)(m.A,{size:20,strokeWidth:2,className:"text-white","aria-hidden":"true"})}),(0,d.jsx)("h1",{className:"text-xl font-bold text-foreground",children:a})]})}),(0,d.jsxs)("nav",{className:"flex items-center space-x-6",role:"navigation",children:[y.map(a=>{let c=a.isActive(b);return(0,d.jsx)(k,{href:a.href,"aria-current":c?"page":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)] ${c?"text-accent-600 dark:text-accent-400 after:scale-x-100":"text-muted-foreground hover:text-foreground after:scale-x-0"}`,children:e(a.labelKey)},a.href)}),(0,d.jsxs)("button",{type:"button","data-testid":"header-command-palette-trigger",onClick:()=>h(!0),"aria-label":c("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,d.jsx)(n.A,{size:16,strokeWidth:2,"aria-hidden":"true",className:"shrink-0"}),(0,d.jsx)("span",{children:c("searchAction")}),i&&(0,d.jsxs)("span",{className:"flex items-center gap-0.5",children:[(0,d.jsx)(w.u,{children:i}),(0,d.jsx)(w.u,{children:"K"})]})]}),(0,d.jsx)(v,{}),(0,d.jsx)(p.g,{}),(0,d.jsx)(t,{}),(0,d.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,d.jsx)(o.A,{size:20,strokeWidth:2,"aria-hidden":"true"}),(0,d.jsx)("span",{children:"GitHub"})]})]})]})})})}var A=c(81092),B=c(90076);let C={showSidebar:!0,showGlobalNav:!0,showLocalNav:!1,autoCollapseSidebar:!1},D=[{prefix:"/worktrees/",config:{showGlobalNav:!1,showLocalNav:!0}},{prefix:"/sessions",config:{autoCollapseSidebar:!0}}];var E=c(5772),F=c(65828),G=c(10366),H=c(99615),I=c(22023),J=c(47817),K=c(23312),L=c.n(K),M=c(89877),N=c(22317);let O=(0,e.memo)(function({status:a,label:b,waitingKind:c}){return(0,d.jsx)(N.m,{"data-testid":"status-indicator",status:a,label:b,waitingKind:c,size:"lg"})});function P({id:a,branch:b,isVisible:c,anchorRef:f,nextActionLabel:g}){let[h,i]=(0,e.useState)({top:-9999,left:-9999}),j=(0,e.useRef)(null);if("undefined"==typeof document||!c)return null;let k=Math.min(384,Math.max(0,window.innerWidth-16));return L().createPortal((0,d.jsxs)("div",{ref:j,id:a,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:h.top,left:h.left,maxWidth:k},children:[(0,d.jsx)("p",{className:"font-medium text-sidebar-foreground whitespace-nowrap",children:b.name}),(0,d.jsx)("p",{className:"text-sidebar-muted whitespace-nowrap",children:b.repositoryName}),(0,d.jsxs)("p",{className:"text-sidebar-muted whitespace-nowrap",children:["Status: ",b.status]}),b.worktreePath&&(0,d.jsx)("p",{className:"text-sidebar-muted truncate",children:b.worktreePath}),g&&(0,d.jsxs)("p",{className:"text-sidebar-muted whitespace-nowrap",children:["Next: ",g]}),b.description&&(0,d.jsx)("p",{className:"text-sidebar-muted mt-1 border-t border-sidebar-border pt-1 whitespace-pre-wrap break-words",children:b.description})]}),document.body)}let Q=0,R=(0,e.memo)(function({branch:a,isSelected:b,onClick:c,showRepositoryName:f=!0}){let g=(0,l.c)("common"),h=(0,l.c)("worktree"),i=`tooltip-${a.id}`,j=(0,e.useRef)(null),[k,m]=(0,e.useState)(!1),n=(0,e.useRef)(null),o=(0,e.useCallback)(()=>{null!==n.current&&(clearTimeout(n.current),n.current=null)},[]);(0,e.useEffect)(()=>()=>o(),[o]);let p=(0,M.A7)(a.cliStatus),q="waiting"===p,r=!0===a.awaitingInstruction,s=a.nextActionKey?h(a.nextActionKey):null,t=(q||r)&&null!==s,u=k&&!b;return(0,e.useEffect)(()=>{b&&m(!1)},[b]),(0,e.useEffect)(()=>{if(!k)return;let a=()=>m(!1);return document.addEventListener("click",a),()=>document.removeEventListener("click",a)},[k]),(0,d.jsxs)("button",{ref:j,"data-testid":"branch-list-item",onClick:()=>{o(),Q=Date.now()+400,m(!1),c()},onMouseEnter:()=>{o(),Date.now()>=Q&&(n.current=setTimeout(()=>{m(!0)},150))},onMouseLeave:()=>{o(),m(!1)},onFocus:a=>{o(),a.target.matches(":focus-visible")&&(n.current=setTimeout(()=>{m(!0)},150))},onBlur:()=>{o(),m(!1)},"aria-current":b?"true":void 0,"aria-describedby":u?i:void 0,"aria-label":f?void 0:`${a.name} - ${a.repositoryName}`,className:`
1
+ "use strict";exports.id=880,exports.ids=[880],exports.modules={1102:(a,b,c)=>{c.d(b,{m_:()=>i});var d=c(21124),e=c(38301),f=c(23312);function g(a,b,c){return Math.min(Math.max(a,4),Math.max(4,c-b-4))}let h={top:-9999,left:-9999};function i({content:a,placement:b="right",delay:c=100,children:i}){let[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)(null),n=(0,e.useRef)(null),o=(0,e.useRef)(null),p=(0,e.useRef)(null),q=(0,e.useCallback)(()=>{null!==p.current&&(clearTimeout(p.current),p.current=null)},[]),r=(0,e.useCallback)(()=>{q(),p.current=setTimeout(()=>{k(!0),p.current=null},c)},[c,q]),s=(0,e.useCallback)(()=>{q(),k(!1),m(null)},[q]);return(0,e.useCallback)(()=>{let a=n.current,c=o.current;if(!a||!c)return;let d=a.getBoundingClientRect(),e=c.getBoundingClientRect();m(function(a,b,c,d){let e,f,h=b.left+b.width/2-c.width/2,i=b.top+b.height/2-c.height/2;switch(a){case"top":e=b.top-c.height-8,f=h;break;case"bottom":e=b.top+b.height+8,f=h;break;case"left":e=i,f=b.left-c.width-8;break;default:e=i,f=b.left+b.width+8}return{top:g(e,c.height,d.height),left:g(f,c.width,d.width)}}(b,{top:d.top,left:d.left,width:d.width,height:d.height},{width:e.width,height:e.height},{width:window.innerWidth,height:window.innerHeight}))},[b]),(0,d.jsxs)("span",{ref:n,"data-testid":"tooltip-wrapper",className:"relative inline-flex",tabIndex:-1,onMouseEnter:r,onMouseLeave:s,children:[i,j&&"undefined"!=typeof document&&(0,f.createPortal)((0,d.jsx)("span",{ref:o,role:"tooltip","aria-hidden":"true","data-placement":b,className:"fixed z-40 whitespace-nowrap px-2 py-1 text-xs font-medium rounded bg-foreground text-background shadow-lg pointer-events-none",style:l??h,children:a}),document.body)]})}},8509:(a,b,c)=>{c.d(b,{g:()=>h});var d=c(21124);c(38301);var e=c(20481),f=c(5772),g=c(12480);function h(){let{size:a,setSize:b,isMobile:c}=(0,f.Ps)(),h=(0,e.c)("common");if(c)return null;let i=h("displaySize.ariaLabel");return(0,d.jsxs)("div",{className:"flex items-center",children:[(0,d.jsx)("label",{htmlFor:"pc-display-size",className:"sr-only",children:i}),(0,d.jsx)("select",{id:"pc-display-size","data-testid":"pc-display-size-select","aria-label":i,value:a,onChange:a=>{let c=a.target.value;(0,g.fM)(c)&&b(c)},className:"text-sm bg-transparent text-foreground border border-input rounded-md px-2 py-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:g.Uf.map(a=>(0,d.jsx)("option",{value:a,children:h(`displaySize.${a}`)},a))})]})}},77560:(a,b,c)=>{c.d(b,{$h:()=>l,DR:()=>e,IH:()=>j,Iu:()=>d,Nb:()=>m,SD:()=>f,_d:()=>i,bm:()=>n,ks:()=>h,t7:()=>k,z7:()=>g});let d=7e3,e=["in_review","approval","stalled"],f="in_review",g="filter",h=`/review?${g}=approval`;function i(a){return a&&e.includes(a)?a:null}let j=["claude","codex","copilot","antigravity","opencode"],k=1e3,l=5,m=100,n=1e3},80880:(a,b,c)=>{c.d(b,{GV:()=>bb});var d=c(21124),e=c(38301),f=c.n(e),g=c(42378),h=c(3991),i=c.n(h),j=c(52761);let k=(0,e.forwardRef)(function({href:a,onClick:b,target:c,...e},f){let h=(0,g.usePathname)(),k=(0,j.Hq)();return(0,d.jsx)(i(),{ref:f,href:a,target:c,onClick:d=>{var e;b?.(d),d.defaultPrevented||0!==(e=d).button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||void 0!==c&&"_self"!==c||/^([a-z][a-z0-9+.-]*:)?\/\//i.test(a)||/^(mailto:|tel:)/i.test(a)||(d.preventDefault(),a!==h&&k.push(a))},...e})});var l=c(20481),m=c(15917),n=c(88285),o=c(97950),p=c(8509),q=c(45523),r=c(70175),s=c(60988);function t(){let{theme:a,setTheme:b}=(0,q.D)(),[c,f]=(0,e.useState)(!1);if(!c)return(0,d.jsx)("div",{"data-testid":"theme-toggle-placeholder",className:"w-8 h-8","aria-hidden":"true"});let g="dark"===a;return(0,d.jsx)("button",{"data-testid":"theme-toggle",onClick:()=>b(g?"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":g?"Switch to light mode":"Switch to dark mode",title:g?"Switch to light mode":"Switch to dark mode",children:g?(0,d.jsx)(r.A,{className:"w-5 h-5","data-testid":"theme-icon-sun"}):(0,d.jsx)(s.A,{className:"w-5 h-5","data-testid":"theme-icon-moon"})})}var u=c(67619);function v(){let{status:a}=(0,u.xM)(),b=(0,l.c)("common");if("connected"===a)return null;let c="connecting"===a,e=b(c?"connection.reconnecting":"connection.offline");return(0,d.jsxs)("span",{"data-testid":"connection-status-indicator",role:"status","aria-live":"polite",title:b(c?"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,d.jsx)("span",{"aria-hidden":"true",className:["w-1.5 h-1.5 rounded-full",c?"bg-warning motion-safe:animate-pulse":"bg-muted-foreground"].join(" ")}),e]})}var w=c(85647),x=c(64632);let y=[{labelKey:"nav.home",href:"/",isActive:a=>"/"===a},{labelKey:"nav.chat",href:"/chat",isActive:a=>a.startsWith("/chat")},{labelKey:"nav.sessions",href:"/sessions",isActive:a=>a.startsWith("/sessions")},{labelKey:"nav.repositoriesShort",href:"/repositories",isActive:a=>a.startsWith("/repositories")},{labelKey:"nav.reviewReport",href:"/review",isActive:a=>a.startsWith("/review")},{labelKey:"nav.more",href:"/more",isActive:a=>a.startsWith("/more")}];function z({title:a="CommandMate"}){let b=(0,g.usePathname)(),c=(0,l.c)("commandPalette"),e=(0,l.c)("common"),{setOpen:h}=(0,x.C)(),[i,j]=f().useState(null);return(0,d.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,d.jsx)("div",{className:"container-custom",children:(0,d.jsxs)("div",{className:"flex items-center justify-between h-16",children:[(0,d.jsx)("div",{className:"flex items-center space-x-4",children:(0,d.jsxs)(k,{href:"/",className:"flex items-center space-x-2 hover:opacity-80 transition-opacity",children:[(0,d.jsx)("div",{className:"w-8 h-8 bg-accent-600 rounded-lg flex items-center justify-center",children:(0,d.jsx)(m.A,{size:20,strokeWidth:2,className:"text-white","aria-hidden":"true"})}),(0,d.jsx)("h1",{className:"text-xl font-bold text-foreground",children:a})]})}),(0,d.jsxs)("nav",{className:"flex items-center space-x-6",role:"navigation",children:[y.map(a=>{let c=a.isActive(b);return(0,d.jsx)(k,{href:a.href,"aria-current":c?"page":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)] ${c?"text-accent-600 dark:text-accent-400 after:scale-x-100":"text-muted-foreground hover:text-foreground after:scale-x-0"}`,children:e(a.labelKey)},a.href)}),(0,d.jsxs)("button",{type:"button","data-testid":"header-command-palette-trigger",onClick:()=>h(!0),"aria-label":c("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,d.jsx)(n.A,{size:16,strokeWidth:2,"aria-hidden":"true",className:"shrink-0"}),(0,d.jsx)("span",{children:c("searchAction")}),i&&(0,d.jsxs)("span",{className:"flex items-center gap-0.5",children:[(0,d.jsx)(w.u,{children:i}),(0,d.jsx)(w.u,{children:"K"})]})]}),(0,d.jsx)(v,{}),(0,d.jsx)(p.g,{}),(0,d.jsx)(t,{}),(0,d.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,d.jsx)(o.A,{size:20,strokeWidth:2,"aria-hidden":"true"}),(0,d.jsx)("span",{children:"GitHub"})]})]})]})})})}var A=c(81092),B=c(90076);let C={showSidebar:!0,showGlobalNav:!0,showLocalNav:!1,autoCollapseSidebar:!1},D=[{prefix:"/worktrees/",config:{showGlobalNav:!1,showLocalNav:!0}},{prefix:"/sessions",config:{autoCollapseSidebar:!0}}];var E=c(5772),F=c(65828),G=c(10366),H=c(99615),I=c(22023),J=c(47817),K=c(23312),L=c.n(K),M=c(89877),N=c(22317);let O=(0,e.memo)(function({status:a,label:b,waitingKind:c}){return(0,d.jsx)(N.m,{"data-testid":"status-indicator",status:a,label:b,waitingKind:c,size:"lg"})});function P({id:a,branch:b,isVisible:c,anchorRef:f,nextActionLabel:g}){let[h,i]=(0,e.useState)({top:-9999,left:-9999}),j=(0,e.useRef)(null);if("undefined"==typeof document||!c)return null;let k=Math.min(384,Math.max(0,window.innerWidth-16));return L().createPortal((0,d.jsxs)("div",{ref:j,id:a,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:h.top,left:h.left,maxWidth:k},children:[(0,d.jsx)("p",{className:"font-medium text-sidebar-foreground whitespace-nowrap",children:b.name}),(0,d.jsx)("p",{className:"text-sidebar-muted whitespace-nowrap",children:b.repositoryName}),(0,d.jsxs)("p",{className:"text-sidebar-muted whitespace-nowrap",children:["Status: ",b.status]}),b.worktreePath&&(0,d.jsx)("p",{className:"text-sidebar-muted truncate",children:b.worktreePath}),g&&(0,d.jsxs)("p",{className:"text-sidebar-muted whitespace-nowrap",children:["Next: ",g]}),b.description&&(0,d.jsx)("p",{className:"text-sidebar-muted mt-1 border-t border-sidebar-border pt-1 whitespace-pre-wrap break-words",children:b.description})]}),document.body)}let Q=0,R=(0,e.memo)(function({branch:a,isSelected:b,onClick:c,showRepositoryName:f=!0}){let g=(0,l.c)("common"),h=(0,l.c)("worktree"),i=`tooltip-${a.id}`,j=(0,e.useRef)(null),[k,m]=(0,e.useState)(!1),n=(0,e.useRef)(null),o=(0,e.useCallback)(()=>{null!==n.current&&(clearTimeout(n.current),n.current=null)},[]);(0,e.useEffect)(()=>()=>o(),[o]);let p=(0,M.A7)(a.cliStatus),q="waiting"===p,r=!0===a.awaitingInstruction,s=a.nextActionKey?h(a.nextActionKey):null,t=(q||r)&&null!==s,u=k&&!b;return(0,e.useEffect)(()=>{b&&m(!1)},[b]),(0,e.useEffect)(()=>{if(!k)return;let a=()=>m(!1);return document.addEventListener("click",a),()=>document.removeEventListener("click",a)},[k]),(0,d.jsxs)("button",{ref:j,"data-testid":"branch-list-item",onClick:()=>{o(),Q=Date.now()+400,m(!1),c()},onMouseEnter:()=>{o(),Date.now()>=Q&&(n.current=setTimeout(()=>{m(!0)},150))},onMouseLeave:()=>{o(),m(!1)},onFocus:a=>{o(),a.target.matches(":focus-visible")&&(n.current=setTimeout(()=>{m(!0)},150))},onBlur:()=>{o(),m(!1)},"aria-current":b?"true":void 0,"aria-describedby":u?i:void 0,"aria-label":f?void 0:`${a.name} - ${a.repositoryName}`,className:`
2
2
  group relative w-full px-4 py-3 flex flex-col gap-1
3
3
  hover:bg-sidebar-hover transition-colors
4
4
  focus:outline-none focus:ring-2 focus:ring-inset focus:ring-ring
@@ -8,14 +8,14 @@
8
8
  flex items-center justify-between
9
9
  hover:bg-sidebar-hover transition-colors
10
10
  ${a===c.key?"text-accent-700 dark:text-accent-400":"text-sidebar-muted"}
11
- `,children:[(0,d.jsx)("span",{children:c.label}),a===c.key&&(0,d.jsx)("span",{className:"text-xs",children:"asc"===b?"ASC":"DESC"})]},c.key))})]})});function V({className:a}){return(0,d.jsx)("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"})})}function W({className:a}){return(0,d.jsx)("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"})})}function X({className:a}){return(0,d.jsx)("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"})})}let Y=[{key:"updatedAt",labelKey:"sort.updatedAt"},{key:"repositoryName",labelKey:"sort.repositoryName"},{key:"branchName",labelKey:"sort.branchName"},{key:"status",labelKey:"sort.status"}],Z={updatedAt:"desc"},$=(0,e.memo)(function(){let{sortKey:a,sortDirection:b,setSortKey:c,setSortDirection:f}=(0,A.VF)(),g=(0,l.c)("common"),h=(0,e.useMemo)(()=>Y.map(({key:a,labelKey:b})=>({key:a,label:g(b)})),[g]);return(0,d.jsx)(U,{sortKey:a,sortDirection:b,onSortKeyChange:c,onSortDirectionChange:f,options:h,defaultDirections:Z,compact:!0,tooltip:g("tooltips.sort"),iconClassName:"w-4 h-4"})});var _=c(35089),aa=c(81497),ab=c(55992);let ac=["en","ja"],ad={en:"English",ja:"日本語"};function ae(){return{currentLocale:(0,ab.Ym)(),switchLocale:a=>{if(ac.includes(a)){let b="https:"===window.location.protocol;document.cookie=`locale=${a};path=/;max-age=31536000;SameSite=Lax${b?";Secure":""}`,localStorage.setItem("locale",a),window.location.reload()}}}}function af(){let{currentLocale:a,switchLocale:b}=ae(),c=(0,l.c)("common");return(0,d.jsx)("select",{value:a,onChange:a=>b(a.target.value),"data-testid":"locale-switcher","aria-label":c("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:ac.map(a=>(0,d.jsx)("option",{value:a,children:ad[a]},a))})}var ag=c(84342);function ah(){let a=(0,l.c)("auth"),b=(0,ag.H)(),[c,f]=(0,e.useState)(!1);if(!b)return null;async function g(){f(!0);try{await fetch("/api/auth/logout",{method:"POST"}),window.location.href="/login"}catch{window.location.href="/login"}}return(0,d.jsx)("button",{type:"button",onClick:g,disabled:c,"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:c?"...":a("logout.button")})}var ai=c(63474),aj=c(77560),ak=c(19463);function al(){let a=(0,l.c)("common"),{count:b}=(0,ak.Lv)();return 0===b?null:(0,d.jsxs)(i(),{href:aj.ks,"data-testid":"attention-badge","aria-label":a("attention.badgeLabel",{count:b}),className:"mt-2 inline-flex w-full items-center justify-between gap-2 rounded-md border border-warning-border bg-warning-subtle px-2 py-1 text-xs font-medium text-warning-foreground transition-colors hover:brightness-105 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,d.jsx)("span",{className:"min-w-0 truncate",children:a("attention.label")}),(0,d.jsx)("span",{"data-testid":"attention-badge-count",className:"tabular-nums font-semibold",children:b})]})}function am({count:a}){let b=(0,l.c)("common");return 0===a?null:(0,d.jsx)("span",{"data-testid":"attention-badge-bubble",role:"status","aria-label":b("attention.badgeLabel",{count:a}),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:a>99?"99+":a})}var an=c(78352),ao=c(32482);let ap="w-4 h-4",aq=0,ar=null;function as(){return ar??[]}let at=(0,e.memo)(function(){let a=(0,j.Hq)(),{worktrees:b,repositories:c,selectedWorktreeId:f,selectWorktree:g,refreshWorktrees:h}=(0,J.$f)(),{closeMobileDrawer:k,sortKey:m,sortDirection:n,viewMode:o,setViewMode:p}=(0,A.VF)(),q=(0,l.c)("common"),[r,s]=(0,e.useState)(""),u=(0,e.useRef)(null),[v,w]=(0,e.useState)(()=>({})),[x,y]=(0,e.useState)(as),z=(0,e.useRef)(!1);(0,e.useEffect)(()=>{z.current||(z.current=!0,fetch("/api/sidebar/group-order").then(a=>a.json()).then(a=>{a.success&&Array.isArray(a.order)&&(y(a.order),ar=a.order)}).catch(()=>{}))},[]);let B=(0,e.useMemo)(()=>(0,ao.UZ)(c),[c]),C=(0,e.useMemo)(()=>(0,ao.s6)(b,B),[b,B]),D=(0,e.useMemo)(()=>C.map(M.XK),[C]),E=(0,e.useDeferredValue)(D),I=(0,e.useRef)(null),K=(0,e.useRef)(null);(0,e.useEffect)(()=>()=>{null!==K.current&&clearTimeout(K.current)},[]);let L=(0,e.useMemo)(()=>{let a=I.current;return!a||Date.now()>=a.expiresAt?E:a.items},[E]),N=(0,e.useRef)(L);(0,e.useLayoutEffect)(()=>{N.current=L});let O=(0,e.useCallback)(()=>{null!==K.current&&(clearTimeout(K.current),K.current=null);let a=I.current;if(a&&Date.now()<a.expiresAt){I.current={...a,expiresAt:1/0};return}I.current={items:N.current,expiresAt:1/0}},[]),P=(0,e.useCallback)(()=>{I.current&&(I.current={...I.current,expiresAt:Date.now()+1e3},null!==K.current&&clearTimeout(K.current),K.current=setTimeout(()=>{I.current=null},1e3))},[]),{sortedItems:Q,groupedItems:T}=function(a){let{items:b,sortKey:c,sortDirection:d,viewMode:f,filterText:g}=a,h=(0,e.useMemo)(()=>{if(!g)return b;let a=g.toLowerCase();return b.filter(b=>b.name.toLowerCase().includes(a)||b.repositoryName.toLowerCase().includes(a))},[b,g]);return{sortedItems:(0,e.useMemo)(()=>(0,ao.Xn)(h,c,d),[h,c,d]),groupedItems:(0,e.useMemo)(()=>"grouped"===f?(0,ao._s)(h,c,d):[],[h,c,d,f])}}({items:L,sortKey:m,sortDirection:n,viewMode:o,filterText:r}),U=(0,e.useMemo)(()=>{if("grouped"!==o||!T)return null;if(r.trim()||0===x.length)return T;let a=new Map(x.map((a,b)=>[a,b]));return[...T].sort((b,c)=>{let d=a.has(b.repositoryName)?a.get(b.repositoryName):1/0,e=a.has(c.repositoryName)?a.get(c.repositoryName):1/0;return d===e?b.repositoryName.localeCompare(c.repositoryName):d-e})},[o,T,x,r]),V="grouped"===o?U:null;(0,e.useEffect)(()=>{},[v]);let W=(0,e.useCallback)(a=>{w(b=>({...b,[a]:!b[a]}))},[]),X=(0,e.useCallback)(()=>{var a;aq=Number.isFinite(a=u.current?.scrollTop??0)&&a>0?a:0},[]),Y=Q.length>0||(V?.length??0)>0;(0,e.useEffect)(()=>{let a=u.current;if(!a)return;let b=window.requestAnimationFrame(()=>{a.scrollTop=aq});return()=>{window.cancelAnimationFrame(b)}},[Y,o]);let Z=(0,e.useCallback)(b=>{X(),g(b),a.push(`/worktrees/${b}`),k()},[X,g,a,k]),aa=(0,G.FR)((0,G.MS)(G.AN,{activationConstraint:{distance:8}})),ab=(0,e.useCallback)(a=>{let{active:b,over:c}=a;if(!c||b.id===c.id||!V)return;let d=V.map(a=>a.repositoryName),e=d.indexOf(String(b.id)),f=d.indexOf(String(c.id));if(-1===e||-1===f)return;let g=(0,H.be)(d,e,f);y(g),ar=g,fetch("/api/sidebar/group-order",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({order:g})}).catch(()=>{y(d),ar=d})},[V]),ac="flat"===o?0===Q.length:(V?.length??0)===0;return(0,d.jsxs)("nav",{"data-testid":"sidebar","aria-label":q("sidebar.branchNavigation"),className:"h-full flex flex-col bg-sidebar text-sidebar-foreground",role:"navigation",children:[(0,d.jsxs)("div",{"data-testid":"sidebar-header",className:"flex-shrink-0 px-4 py-4 border-b border-sidebar-border",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-y-2",children:[(0,d.jsx)("h2",{className:"min-w-0 truncate text-lg font-semibold text-sidebar-foreground",children:q("sidebar.branches")}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1",children:[(0,d.jsx)(aw,{viewMode:o,onToggle:p}),(0,d.jsx)($,{}),(0,d.jsx)(aC,{refreshWorktrees:h}),(0,d.jsx)(S.m_,{content:q("tooltips.repositories"),placement:"bottom",children:(0,d.jsx)(i(),{href:"/repositories","aria-label":q("nav.repositories"),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 transition-colors inline-flex items-center",children:(0,d.jsx)(F.A,{className:ap,"aria-hidden":"true"})})})]})]}),(0,d.jsx)(al,{})]}),(0,d.jsx)("div",{className:"flex-shrink-0 px-4 py-3 border-b border-sidebar-border",children:(0,d.jsx)(_.pd,{type:"text",placeholder:q("sidebar.searchBranches"),value:r,onChange:a=>s(a.target.value),className:"bg-background shadow-none"})}),(0,d.jsx)("div",{ref:u,"data-testid":"branch-list",onScroll:X,onMouseEnter:O,onMouseLeave:P,className:"flex-1 overflow-y-auto overflow-x-hidden",children:ac?(0,d.jsx)("div",{className:"px-4 py-8 text-center text-sidebar-muted",children:q(r?"sidebar.noBranchesFound":"sidebar.noBranchesAvailable")}):"grouped"===o&&V?(0,d.jsx)(G.Mp,{sensors:aa,collisionDetection:G.fp,onDragEnd:ab,children:(0,d.jsx)(H.gB,{items:V.map(a=>a.repositoryName),strategy:H._G,children:V.map(a=>{let b=!v[a.repositoryName]||!!r.trim();return(0,d.jsx)(au,{group:a,isExpanded:b,selectedWorktreeId:f,onToggle:()=>W(a.repositoryName),onBranchClick:Z,isDragDisabled:!!r.trim()},a.repositoryName)})})}):Q.map(a=>(0,d.jsx)(R,{branch:a,isSelected:a.id===f,onClick:()=>Z(a.id)},a.id))}),(0,d.jsxs)("div",{className:"flex-shrink-0 px-4 py-3 border-t border-sidebar-border space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(af,{})}),(0,d.jsx)(t,{})]}),(0,d.jsx)(ah,{})]})]})});function au({group:a,isExpanded:b,selectedWorktreeId:c,onToggle:e,onBranchClick:f,isDragDisabled:g}){let{attributes:h,listeners:i,setNodeRef:j,setActivatorNodeRef:k,transform:l,transition:m,isDragging:n}=(0,H.gl)({id:a.repositoryName,disabled:g}),o={transform:I.Ks.Transform.toString(l),transition:m,opacity:n?.5:1};return(0,d.jsxs)("div",{ref:j,style:o,className:"w-full min-w-0",children:[(0,d.jsx)(av,{repositoryName:a.repositoryName,branchCount:a.branches.length,isExpanded:b,onClick:e,dragHandleRef:k,dragHandleListeners:g?void 0:i,dragHandleAttributes:g?void 0:h}),b&&a.branches.map(a=>(0,d.jsx)(R,{branch:a,isSelected:a.id===c,onClick:()=>f(a.id),showRepositoryName:!1},a.id))]})}function av({repositoryName:a,branchCount:b,isExpanded:c,onClick:e,dragHandleRef:f,dragHandleListeners:g,dragHandleAttributes:h}){let i=(0,l.c)("common");return(0,d.jsxs)("div",{className:"flex items-center w-full",children:[g&&(0,d.jsx)("div",{ref:f,...g,...h,"aria-label":i("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,d.jsx)(aA,{})}),(0,d.jsxs)("button",{"data-testid":"group-header",type:"button",onClick:e,"aria-expanded":c,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,d.jsx)(ax,{isExpanded:c}),(0,d.jsx)(ay,{color:(0,ao.LV)(a)}),(0,d.jsx)(aa.nR,{content:a,className:"flex-1 min-w-0 text-left truncate",children:a}),(0,d.jsx)("span",{className:"text-sidebar-muted font-normal tabular-nums pr-2",children:b})]})]})}function aw({viewMode:a,onToggle:b}){let c=(0,l.c)("common");return(0,d.jsx)(S.m_,{content:c("tooltips.viewMode"),placement:"bottom",children:(0,d.jsx)("button",{"data-testid":"view-mode-toggle",type:"button",onClick:()=>{b("grouped"===a?"flat":"grouped")},"aria-label":c("grouped"===a?"sidebar.switchToFlatView":"sidebar.switchToGroupedView"),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 transition-colors ",children:"grouped"===a?(0,d.jsx)(az,{className:ap}):(0,d.jsx)(ay,{className:ap})})})}function ax({isExpanded:a}){return(0,d.jsx)("svg",{className:`w-3 h-3 flex-shrink-0 transition-transform ${a?"rotate-90":""}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"})})}function ay({className:a="w-3.5 h-3.5",color:b}){return(0,d.jsx)("svg",{className:`${a} flex-shrink-0`,viewBox:"0 0 24 24",fill:b??"none",stroke:b?"none":"currentColor",strokeWidth:2*!b,"aria-hidden":"true",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"})})}function az({className:a="w-3 h-3"}){return(0,d.jsx)("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 6h16M4 12h16M4 18h16"})})}function aA(){return(0,d.jsxs)("svg",{className:"w-3 h-3",fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"9",cy:"5",r:"1.5"}),(0,d.jsx)("circle",{cx:"15",cy:"5",r:"1.5"}),(0,d.jsx)("circle",{cx:"9",cy:"12",r:"1.5"}),(0,d.jsx)("circle",{cx:"15",cy:"12",r:"1.5"}),(0,d.jsx)("circle",{cx:"9",cy:"19",r:"1.5"}),(0,d.jsx)("circle",{cx:"15",cy:"19",r:"1.5"})]})}function aB({className:a=""}){return(0,d.jsx)("svg",{className:`${ap} ${a}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.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 aC=(0,e.memo)(function({refreshWorktrees:a}){let[b,c]=(0,e.useState)(!1),f=(0,e.useRef)(!1),{showToast:g}=(0,ai.dj)(),h=(0,l.c)("common"),i=(0,e.useCallback)(async()=>{if(!f.current){f.current=!0,c(!0);try{let b=await an.Rx.sync();await a(),g(h("syncSuccess",{count:b.worktreeCount}),"success",3e3)}catch(a){a instanceof an.hD&&401===a.status?g(h("syncAuthError"),"error",5e3):g(h("syncError"),"error",5e3)}finally{f.current=!1,c(!1)}}},[a,g,h]);return(0,d.jsx)(d.Fragment,{children:(0,d.jsx)(S.m_,{content:h("tooltips.sync"),placement:"bottom",children:(0,d.jsx)("button",{type:"button",onClick:i,disabled:b,"aria-label":h("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,d.jsx)(aB,{className:b?"animate-spin":""})})})})});var aD=c(78733),aE=c(44688),aF=c(75903),aG=c(59268),aH=c(38882);let aI=[{labelKey:"nav.home",href:"/",isActive:a=>"/"===a,icon:(0,d.jsx)(aD.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.chat",href:"/chat",isActive:a=>a.startsWith("/chat"),icon:(0,d.jsx)(aE.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.sessions",href:"/sessions",isActive:a=>a.startsWith("/sessions"),icon:(0,d.jsx)(aF.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.review",href:"/review",isActive:a=>a.startsWith("/review"),icon:(0,d.jsx)(aG.A,{size:20,"aria-hidden":"true"}),showsAttentionBadge:!0},{labelKey:"nav.more",href:"/more",isActive:a=>a.startsWith("/more"),icon:(0,d.jsx)(aH.A,{size:20,"aria-hidden":"true"})}];function aJ(){let a=(0,g.usePathname)(),{setOpen:b}=(0,x.C)(),c=(0,l.c)("commandPalette"),e=(0,l.c)("common"),{count:f}=(0,ak.Lv)();return(0,d.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,d.jsxs)("div",{className:"flex items-center justify-around h-14",children:[aI.map(b=>{let c=b.isActive(a),g=!0===b.showsAttentionBadge&&f>0;return(0,d.jsxs)(k,{href:g?aj.ks:b.href,className:`flex flex-col items-center justify-center flex-1 h-full text-xs transition-colors ${c?"text-accent-600 dark:text-accent-400":"text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsxs)("span",{className:"relative inline-flex",children:[b.icon,!0===b.showsAttentionBadge&&(0,d.jsx)(am,{count:f})]}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:e(b.labelKey)})]},b.href)}),(0,d.jsxs)("button",{type:"button","data-testid":"mobile-command-palette-trigger",onClick:()=>b(!0),"aria-label":c("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,d.jsx)(n.A,{size:20,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:c("mobileLabel")})]})]})})}var aK=c(67565),aL=c(50987),aM=c(75234),aN=c(34487),aO=c(25345),aP=c(96558),aQ=c(75692),aR=c(57898),aS=c(35595),aT=c(11010),aU=c(89184),aV=c(63157),aW=c(12480);let aX=[{key:"home",href:"/"},{key:"chat",href:"/chat"},{key:"sessions",href:"/sessions"},{key:"repositories",href:"/repositories"},{key:"review",href:"/review"},{key:"skills",href:"/skills"},{key:"more",href:"/more"}],aY={home:aD.A,chat:aE.A,sessions:aF.A,repositories:aL.A,review:aG.A,skills:aM.A,more:aH.A};function aZ(a){return a.isWaitingForResponse?"waiting":a.isProcessing?"running":a.isSessionRunning?"ready":"idle"}let a$=(0,aS.cn)("flex cursor-pointer items-center gap-2 rounded-md px-2 py-2 text-sm","text-foreground","data-[selected=true]:bg-accent-500/15 data-[selected=true]:text-accent-700","dark:data-[selected=true]:text-accent-300"),a_="shrink-0 text-muted-foreground";function a0(){let{open:a,setOpen:b}=(0,x.C)(),{setOpen:c}=(0,aU.K)(),f=(0,g.useRouter)(),h=(0,l.c)("commandPalette"),i=(0,l.c)("common"),{theme:j,setTheme:k}=(0,q.D)(),{setSize:m,isMobile:p}=(0,E.Ps)(),{currentLocale:t,switchLocale:u}=ae(),v=(0,aV.rC)(),{showToast:y}=(0,ai.dj)(),[z,A]=(0,e.useState)(!1),[B,C]=(0,e.useState)(""),[D,F]=(0,e.useState)([]),G=(0,e.useRef)(null);(0,e.useRef)(null),(0,e.useRef)(a);let H=(0,e.useCallback)((a,c)=>{c&&F(a=>(function(a,b){let c=a.filter(a=>a.kind!==b.kind||a.id!==b.id),d=[b,...c].slice(0,8);try{localStorage.setItem("cm.palette.recents",JSON.stringify(d))}catch{}return d})(a,c)),b(!1),a()},[b]),I=(0,e.useCallback)(async()=>{try{await an.Rx.sync(),await v?.refresh?.(),y(h("actions.syncSuccess"),"success")}catch{y(h("actions.syncError"),"error")}},[v,y,h]),J="dark"===j,L=""===B.trim(),M=v?.error??null,O=v?.isLoading??!1,P=M?[]:v?.worktrees??[],Q=P.length>0,R=!M&&O&&0===P.length,S=[...P].sort((a,b)=>{let c=+!!a.isSessionRunning,d=+!!b.isSessionRunning;if(c!==d)return d-c;let e=a.updatedAt?new Date(a.updatedAt).getTime():0;return(b.updatedAt?new Date(b.updatedAt).getTime():0)-e}),T=L?S.slice(0,8):S,U=[{id:"theme",label:J?h("actions.toLight"):h("actions.toDark"),icon:J?r.A:s.A,run:()=>k(J?"light":"dark")},...p?[]:aW.Uf.map(a=>({id:`displaysize:${a}`,label:`${h("actions.displaySizePrefix")}: ${i(`displaySize.${a}`)}`,icon:aN.A,run:()=>m(a)})),{id:"sync",label:h("actions.syncRepositories"),icon:aO.A,run:()=>{I()}},{id:"locale",label:h("actions.switchLanguage"),icon:aP.A,run:()=>u("ja"===t?"en":"ja")},{id:"github",label:h("actions.openGitHub"),icon:o.A,run:()=>window.open("https://github.com/kewton/MyCodeBranchDesk","_blank","noopener,noreferrer")},{id:"keyboardShortcuts",label:h("actions.keyboardShortcuts"),icon:aQ.A,run:()=>c(!0)}],V=L?D.map(a=>{if("nav"===a.kind){let b=aX.find(b=>b.key===a.id);if(!b)return null;let c=aY[b.key],e=i(`nav.${b.key}`);return{id:`nav-${b.key}`,value:`recent nav ${b.key}`,node:(0,d.jsxs)(d.Fragment,{children:[c&&(0,d.jsx)(c,{size:16,className:a_,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:e})]}),onSelect:()=>H(()=>f.push(b.href),{kind:"nav",id:b.key})}}if("worktree"===a.kind){let b=P.find(b=>b.id===a.id);if(!b)return null;let c=b.repositoryDisplayName||b.repositoryName||"",e=b.branch||b.name;return{id:`worktree-${b.id}`,value:`recent worktree ${b.id}`,node:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(aR.A,{size:16,className:a_,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:e}),c&&(0,d.jsx)("span",{className:"ml-auto truncate pl-2 text-xs text-muted-foreground",children:c}),(0,d.jsx)(N.m,{status:aZ(b),size:"sm",className:c?"ml-2":"ml-auto"})]}),onSelect:()=>H(()=>f.push(`/worktrees/${b.id}`),{kind:"worktree",id:b.id})}}let b=U.find(b=>b.id===a.id);if(!b)return null;let c=b.icon;return{id:`action-${b.id}`,value:`recent action ${b.id}`,node:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(c,{size:16,className:a_,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:b.label})]}),onSelect:()=>H(b.run,{kind:"action",id:b.id})}}).filter(a=>null!==a):[];return z?(0,K.createPortal)((0,d.jsx)(d.Fragment,{children:a&&(0,d.jsxs)("div",{className:"fixed inset-0 overflow-y-auto",style:{zIndex:aT.M.MODAL},"data-testid":"command-palette",children:[(0,d.jsx)("div",{"data-state":"open","aria-hidden":"true",className:"fixed inset-0 bg-black/40 backdrop-blur-sm transition-opacity data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-200",onClick:()=>b(!1)}),(0,d.jsx)("div",{className:"relative flex min-h-full items-start justify-center p-4 pt-[15vh]",children:(0,d.jsx)("div",{"data-state":"open","data-testid":"command-palette-panel",className:(0,aS.cn)("relative w-full max-w-lg overflow-hidden rounded-xl bg-surface/95 shadow-2xl ring-1 ring-border backdrop-blur-xl","data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-200"),children:(0,d.jsxs)(aK.uB,{label:h("title"),className:(0,aS.cn)("flex flex-col","[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:pb-1 [&_[cmdk-group-heading]]:pt-2","[&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground"),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 border-b border-border px-3",children:[(0,d.jsx)(n.A,{size:16,strokeWidth:2,"aria-hidden":"true",className:"shrink-0 text-muted-foreground"}),(0,d.jsx)(aK.uB.Input,{ref:G,value:B,onValueChange:C,placeholder:h("placeholder"),"data-testid":"command-palette-input",className:"flex-1 bg-transparent py-3 text-sm text-foreground outline-none placeholder:text-muted-foreground"})]}),(0,d.jsxs)(aK.uB.List,{className:"max-h-[min(60vh,360px)] overflow-y-auto p-2",children:[(0,d.jsx)(aK.uB.Empty,{"data-testid":"command-palette-empty",className:"py-6 text-center text-sm text-muted-foreground",children:h("empty")}),R&&(0,d.jsx)(aK.uB.Loading,{"data-testid":"command-palette-loading",className:"py-6 text-center text-sm text-muted-foreground",children:h("loading")}),V.length>0&&(0,d.jsx)(aK.uB.Group,{heading:h("groups.recent"),children:V.map(a=>(0,d.jsx)(aK.uB.Item,{value:a.value,onSelect:a.onSelect,className:a$,children:a.node},a.id))}),(0,d.jsx)(aK.uB.Group,{heading:h("groups.navigation"),children:aX.map(a=>{let b=i(`nav.${a.key}`),c=aY[a.key];return(0,d.jsxs)(aK.uB.Item,{value:`nav ${b} ${a.href}`,onSelect:()=>H(()=>f.push(a.href),{kind:"nav",id:a.key}),className:a$,children:[c&&(0,d.jsx)(c,{size:16,className:a_,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:b})]},a.key)})}),Q&&(0,d.jsx)(aK.uB.Group,{heading:h("groups.worktrees"),children:T.map(a=>{let b=a.repositoryDisplayName||a.repositoryName||"",c=a.branch||a.name;return(0,d.jsxs)(aK.uB.Item,{value:`worktree ${b} ${c} ${a.name} ${a.id}`,onSelect:()=>H(()=>f.push(`/worktrees/${a.id}`),{kind:"worktree",id:a.id}),className:a$,children:[(0,d.jsx)(aR.A,{size:16,className:a_,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:c}),b&&(0,d.jsx)("span",{className:"ml-auto truncate pl-2 text-xs text-muted-foreground",children:b}),(0,d.jsx)(N.m,{status:aZ(a),size:"sm",className:b?"ml-2":"ml-auto"})]},a.id)})}),(0,d.jsx)(aK.uB.Group,{heading:h("groups.actions"),children:U.map(a=>{let b=a.icon;return(0,d.jsxs)(aK.uB.Item,{value:`action ${a.id} ${a.label}`,onSelect:()=>H(a.run,{kind:"action",id:a.id}),className:a$,children:[(0,d.jsx)(b,{size:16,className:a_,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:a.label})]},a.id)})})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3 border-t border-border bg-surface-2 px-3 py-2 text-[11px] text-muted-foreground",children:[(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(w.u,{children:"↑"}),(0,d.jsx)(w.u,{children:"↓"}),h("footer.navigate")]}),(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(w.u,{children:"↵"}),h("footer.select")]}),(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(w.u,{children:"esc"}),h("footer.close")]})]})]})})})]})}),document.body):null}var a1=c(98033);let a2=["global","terminal","composer","editor"],a3=[{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:"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 a4(){let{open:a,setOpen:b}=(0,aU.K)(),{open:c}=(0,x.C)(),f=(0,l.c)("keyboardShortcuts"),[g,h]=(0,e.useState)(!1);(0,e.useRef)(a),(0,e.useRef)(c);let i=function(a=a3){return a2.map(b=>({scope:b,shortcuts:a.filter(a=>a.scope===b)})).filter(a=>a.shortcuts.length>0)}();return(0,d.jsx)(a1.a,{isOpen:a,onClose:()=>b(!1),title:f("title"),size:"md",children:(0,d.jsx)("div",{"data-testid":"keyboard-shortcuts-overlay",className:"space-y-6",children:i.map(({scope:a,shortcuts:b})=>(0,d.jsxs)("section",{"data-testid":`keyboard-shortcuts-scope-${a}`,children:[(0,d.jsx)("h4",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:f(`scopes.${a}`)}),(0,d.jsx)("ul",{className:"divide-y divide-border",children:b.map(a=>(0,d.jsxs)("li",{"data-testid":`keyboard-shortcut-${a.id}`,className:"flex items-center justify-between gap-4 py-2",children:[(0,d.jsx)("span",{className:"text-sm text-foreground",children:f(`shortcuts.${a.id}`)}),(0,d.jsx)("span",{className:"flex flex-shrink-0 items-center gap-1",children:a.keys.map((a,b)=>(0,d.jsx)(w.u,{children:"MOD"===a?g?"⌘":"Ctrl":a},b))})]},a.id))})]},a))})})}var a5=c(16945),a6=c(47089),a7=c(12055);function a8(){let a=(0,l.c)("common"),[b,c]=(0,e.useState)(null),[f,g]=(0,e.useState)(null),h=(0,e.useCallback)(a=>{if(a.type!==a7.Oo)return;let{serverVersion:b,clientVersion:d}=a;"string"==typeof b&&"string"==typeof d&&b&&d&&b!==f&&c({serverVersion:b,clientVersion:d})},[f]);(0,u.T3)(h);let i=(0,e.useCallback)(()=>{window.location.reload()},[]),j=(0,e.useCallback)(()=>{c(a=>(a&&g(a.serverVersion),null))},[]);return b?(0,d.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:aT.M.TOAST},children:[(0,d.jsx)(a5.A,{className:"h-5 w-5 shrink-0 mt-0.5","aria-hidden":"true"}),(0,d.jsxs)("div",{className:"flex flex-col gap-0.5 text-sm",children:[(0,d.jsx)("span",{className:"font-semibold",children:a("versionMismatch.title")}),(0,d.jsx)("span",{children:a("versionMismatch.description",{serverVersion:b.serverVersion,clientVersion:b.clientVersion})})]}),(0,d.jsxs)("button",{type:"button","data-testid":"version-mismatch-reload",onClick:i,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,d.jsx)(aO.A,{className:"h-4 w-4","aria-hidden":"true"}),a("versionMismatch.reload")]}),(0,d.jsx)("button",{type:"button","data-testid":"version-mismatch-dismiss",onClick:j,"aria-label":a("versionMismatch.dismiss"),className:"shrink-0 hover:opacity-70 focus:outline-none focus:ring-2 focus:ring-offset-2",children:(0,d.jsx)(a6.A,{className:"h-4 w-4","aria-hidden":"true"})})]}):null}let a9="transform transition-transform duration-300 ease-out",ba=(0,e.memo)(function({children:a}){let{isOpen:b,isMobileDrawerOpen:c,closeMobileDrawer:f,width:h,setWidth:i}=(0,A.VF)(),j=(0,B.a)(),{showSidebar:k,showGlobalNav:l}=function(){var a=(0,g.usePathname)();for(let b of D)if(a.startsWith(b.prefix))return{...C,...b.config};return{...C}}(),{factor:m}=(0,E.Ps)(),n=Math.round(160*m),o=Math.round(480*m),p=Math.round(Math.min(o,Math.max(n,h*m))),q=(0,e.useRef)(null),r=(0,e.useRef)(null),s=(0,e.useCallback)(a=>{i(Math.round(a/m))},[i,m]);return j?(0,d.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex flex-col",children:[c&&(0,d.jsx)("div",{"data-testid":"drawer-overlay",className:"fixed inset-0 bg-black/50 z-40",onClick:f,"aria-hidden":"true"}),k&&(0,d.jsx)("aside",{"data-testid":"sidebar-container",className:`
11
+ `,children:[(0,d.jsx)("span",{children:c.label}),a===c.key&&(0,d.jsx)("span",{className:"text-xs",children:"asc"===b?"ASC":"DESC"})]},c.key))})]})});function V({className:a}){return(0,d.jsx)("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"})})}function W({className:a}){return(0,d.jsx)("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"})})}function X({className:a}){return(0,d.jsx)("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"})})}let Y=[{key:"updatedAt",labelKey:"sort.updatedAt"},{key:"repositoryName",labelKey:"sort.repositoryName"},{key:"branchName",labelKey:"sort.branchName"},{key:"status",labelKey:"sort.status"}],Z={updatedAt:"desc"},$=(0,e.memo)(function(){let{sortKey:a,sortDirection:b,setSortKey:c,setSortDirection:f}=(0,A.VF)(),g=(0,l.c)("common"),h=(0,e.useMemo)(()=>Y.map(({key:a,labelKey:b})=>({key:a,label:g(b)})),[g]);return(0,d.jsx)(U,{sortKey:a,sortDirection:b,onSortKeyChange:c,onSortDirectionChange:f,options:h,defaultDirections:Z,compact:!0,tooltip:g("tooltips.sort"),iconClassName:"w-4 h-4"})});var _=c(35089),aa=c(81497),ab=c(55992);let ac=["en","ja"],ad={en:"English",ja:"日本語"};function ae(){return{currentLocale:(0,ab.Ym)(),switchLocale:a=>{if(ac.includes(a)){let b="https:"===window.location.protocol;document.cookie=`locale=${a};path=/;max-age=31536000;SameSite=Lax${b?";Secure":""}`,localStorage.setItem("locale",a),window.location.reload()}}}}function af(){let{currentLocale:a,switchLocale:b}=ae(),c=(0,l.c)("common");return(0,d.jsx)("select",{value:a,onChange:a=>b(a.target.value),"data-testid":"locale-switcher","aria-label":c("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:ac.map(a=>(0,d.jsx)("option",{value:a,children:ad[a]},a))})}var ag=c(84342);function ah(){let a=(0,l.c)("auth"),b=(0,ag.H)(),[c,f]=(0,e.useState)(!1);if(!b)return null;async function g(){f(!0);try{await fetch("/api/auth/logout",{method:"POST"}),window.location.href="/login"}catch{window.location.href="/login"}}return(0,d.jsx)("button",{type:"button",onClick:g,disabled:c,"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:c?"...":a("logout.button")})}var ai=c(63474),aj=c(77560),ak=c(19463);function al(){let a=(0,l.c)("common"),{count:b}=(0,ak.Lv)();return 0===b?null:(0,d.jsxs)(i(),{href:aj.ks,"data-testid":"attention-badge","aria-label":a("attention.badgeLabel",{count:b}),className:"mt-2 inline-flex w-full items-center justify-between gap-2 rounded-md border border-warning-border bg-warning-subtle px-2 py-1 text-xs font-medium text-warning-foreground transition-colors hover:brightness-105 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,d.jsx)("span",{className:"min-w-0 truncate",children:a("attention.label")}),(0,d.jsx)("span",{"data-testid":"attention-badge-count",className:"tabular-nums font-semibold",children:b})]})}function am({count:a}){let b=(0,l.c)("common");return 0===a?null:(0,d.jsx)("span",{"data-testid":"attention-badge-bubble",role:"status","aria-label":b("attention.badgeLabel",{count:a}),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:a>99?"99+":a})}var an=c(78352),ao=c(32482);let ap="w-4 h-4",aq=0,ar=null;function as(){return ar??[]}let at=(0,e.memo)(function(){let a=(0,j.Hq)(),{worktrees:b,repositories:c,selectedWorktreeId:f,selectWorktree:g,refreshWorktrees:h,isLoading:k,error:m}=(0,J.$f)(),{closeMobileDrawer:n,sortKey:o,sortDirection:p,viewMode:q,setViewMode:r}=(0,A.VF)(),s=(0,l.c)("common"),[u,v]=(0,e.useState)(""),w=(0,e.useRef)(null),[x,y]=(0,e.useState)(()=>({})),[z,B]=(0,e.useState)(as),C=(0,e.useRef)(!1);(0,e.useEffect)(()=>{C.current||(C.current=!0,fetch("/api/sidebar/group-order").then(a=>a.json()).then(a=>{a.success&&Array.isArray(a.order)&&(B(a.order),ar=a.order)}).catch(()=>{}))},[]);let D=(0,e.useMemo)(()=>(0,ao.UZ)(c),[c]),E=(0,e.useMemo)(()=>(0,ao.s6)(b,D),[b,D]),I=(0,e.useMemo)(()=>E.map(M.XK),[E]),K=(0,e.useDeferredValue)(I),L=(0,e.useRef)(null),N=(0,e.useRef)(null),[O,P]=(0,e.useState)(0);(0,e.useEffect)(()=>()=>{null!==N.current&&clearTimeout(N.current)},[]);let Q=(0,e.useCallback)(()=>{null!==N.current&&(clearTimeout(N.current),N.current=null),L.current=null},[]),T=(0,e.useMemo)(()=>{let a=L.current;return!a||0===a.items.length||Date.now()>=a.expiresAt?K:a.items},[K,O]),U=(0,e.useRef)(T);(0,e.useLayoutEffect)(()=>{U.current=T;let a=L.current;a&&0===a.items.length&&K.length>0&&Q()});let V=(0,e.useCallback)(()=>{if(0===U.current.length)return;null!==N.current&&(clearTimeout(N.current),N.current=null);let a=L.current;if(a&&Date.now()<a.expiresAt){L.current={...a,expiresAt:1/0};return}L.current={items:U.current,expiresAt:1/0}},[]),W=(0,e.useCallback)(()=>{L.current&&(L.current={...L.current,expiresAt:Date.now()+1e3},null!==N.current&&clearTimeout(N.current),N.current=setTimeout(()=>{Q(),P(a=>a+1)},1e3))},[Q]),{sortedItems:X,groupedItems:Y}=function(a){let{items:b,sortKey:c,sortDirection:d,viewMode:f,filterText:g}=a,h=(0,e.useMemo)(()=>{if(!g)return b;let a=g.toLowerCase();return b.filter(b=>b.name.toLowerCase().includes(a)||b.repositoryName.toLowerCase().includes(a))},[b,g]);return{sortedItems:(0,e.useMemo)(()=>(0,ao.Xn)(h,c,d),[h,c,d]),groupedItems:(0,e.useMemo)(()=>"grouped"===f?(0,ao._s)(h,c,d):[],[h,c,d,f])}}({items:T,sortKey:o,sortDirection:p,viewMode:q,filterText:u}),Z=(0,e.useMemo)(()=>{if("grouped"!==q||!Y)return null;if(u.trim()||0===z.length)return Y;let a=new Map(z.map((a,b)=>[a,b]));return[...Y].sort((b,c)=>{let d=a.has(b.repositoryName)?a.get(b.repositoryName):1/0,e=a.has(c.repositoryName)?a.get(c.repositoryName):1/0;return d===e?b.repositoryName.localeCompare(c.repositoryName):d-e})},[q,Y,z,u]),aa="grouped"===q?Z:null;(0,e.useEffect)(()=>{},[x]);let ab=(0,e.useCallback)(a=>{y(b=>({...b,[a]:!b[a]}))},[]),ac=(0,e.useCallback)(()=>{var a;aq=Number.isFinite(a=w.current?.scrollTop??0)&&a>0?a:0},[]),ad=X.length>0||(aa?.length??0)>0;(0,e.useEffect)(()=>{let a=w.current;if(!a)return;let b=window.requestAnimationFrame(()=>{a.scrollTop=aq});return()=>{window.cancelAnimationFrame(b)}},[ad,q]);let ae=(0,e.useCallback)(b=>{ac(),g(b),a.push(`/worktrees/${b}`),n()},[ac,g,a,n]),ag=(0,G.FR)((0,G.MS)(G.AN,{activationConstraint:{distance:8}})),ai=(0,e.useCallback)(a=>{let{active:b,over:c}=a;if(!c||b.id===c.id||!aa)return;let d=aa.map(a=>a.repositoryName),e=d.indexOf(String(b.id)),f=d.indexOf(String(c.id));if(-1===e||-1===f)return;let g=(0,H.be)(d,e,f);B(g),ar=g,fetch("/api/sidebar/group-order",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({order:g})}).catch(()=>{B(d),ar=d})},[aa]),aj="flat"===q?0===X.length:(aa?.length??0)===0,ak=k&&0===b.length,am=!ak&&!!m&&0===b.length,an=(0,e.useCallback)(()=>{h()},[h]);return(0,d.jsxs)("nav",{"data-testid":"sidebar","aria-label":s("sidebar.branchNavigation"),className:"h-full flex flex-col bg-sidebar text-sidebar-foreground",role:"navigation",children:[(0,d.jsxs)("div",{"data-testid":"sidebar-header",className:"flex-shrink-0 px-4 py-4 border-b border-sidebar-border",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-y-2",children:[(0,d.jsx)("h2",{className:"min-w-0 truncate text-lg font-semibold text-sidebar-foreground",children:s("sidebar.branches")}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1",children:[(0,d.jsx)(ax,{viewMode:q,onToggle:r}),(0,d.jsx)($,{}),(0,d.jsx)(aD,{refreshWorktrees:h}),(0,d.jsx)(S.m_,{content:s("tooltips.repositories"),placement:"bottom",children:(0,d.jsx)(i(),{href:"/repositories","aria-label":s("nav.repositories"),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 transition-colors inline-flex items-center",children:(0,d.jsx)(F.A,{className:ap,"aria-hidden":"true"})})})]})]}),(0,d.jsx)(al,{})]}),(0,d.jsx)("div",{className:"flex-shrink-0 px-4 py-3 border-b border-sidebar-border",children:(0,d.jsx)(_.pd,{type:"text",placeholder:s("sidebar.searchBranches"),value:u,onChange:a=>v(a.target.value),className:"bg-background shadow-none"})}),(0,d.jsx)("div",{ref:w,"data-testid":"branch-list",onScroll:ac,onMouseEnter:V,onMouseLeave:W,className:"flex-1 overflow-y-auto overflow-x-hidden",children:ak?(0,d.jsx)(au,{label:s("sidebar.loadingBranches")}):am?(0,d.jsxs)("div",{"data-testid":"branch-list-error",role:"alert",className:"px-4 py-8 text-center text-sidebar-muted",children:[(0,d.jsx)("p",{className:"text-sm",children:s("sidebar.branchesLoadFailed")}),(0,d.jsx)(_.$n,{type:"button",variant:"secondary",size:"sm",className:"mt-3","data-testid":"branch-list-retry",onClick:an,children:s("sidebar.retryLoadBranches")})]}):aj?(0,d.jsx)("div",{className:"px-4 py-8 text-center text-sidebar-muted",children:s(u?"sidebar.noBranchesFound":"sidebar.noBranchesAvailable")}):"grouped"===q&&aa?(0,d.jsx)(G.Mp,{sensors:ag,collisionDetection:G.fp,onDragEnd:ai,children:(0,d.jsx)(H.gB,{items:aa.map(a=>a.repositoryName),strategy:H._G,children:aa.map(a=>{let b=!x[a.repositoryName]||!!u.trim();return(0,d.jsx)(av,{group:a,isExpanded:b,selectedWorktreeId:f,onToggle:()=>ab(a.repositoryName),onBranchClick:ae,isDragDisabled:!!u.trim()},a.repositoryName)})})}):X.map(a=>(0,d.jsx)(R,{branch:a,isSelected:a.id===f,onClick:()=>ae(a.id)},a.id))}),(0,d.jsxs)("div",{className:"flex-shrink-0 px-4 py-3 border-t border-sidebar-border space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(af,{})}),(0,d.jsx)(t,{})]}),(0,d.jsx)(ah,{})]})]})}),au=(0,e.memo)(function({label:a}){return(0,d.jsxs)("div",{"data-testid":"branch-list-skeleton",role:"status","aria-live":"polite",className:"px-4 py-3 space-y-3",children:[(0,d.jsx)("span",{className:"sr-only",children:a}),[0,1,2,3,4].map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(_.EA,{className:"h-2 w-2 rounded-full"}),(0,d.jsx)(_.EA,{className:"h-3 flex-1"})]},a))]})});function av({group:a,isExpanded:b,selectedWorktreeId:c,onToggle:e,onBranchClick:f,isDragDisabled:g}){let{attributes:h,listeners:i,setNodeRef:j,setActivatorNodeRef:k,transform:l,transition:m,isDragging:n}=(0,H.gl)({id:a.repositoryName,disabled:g}),o={transform:I.Ks.Transform.toString(l),transition:m,opacity:n?.5:1};return(0,d.jsxs)("div",{ref:j,style:o,className:"w-full min-w-0",children:[(0,d.jsx)(aw,{repositoryName:a.repositoryName,branchCount:a.branches.length,isExpanded:b,onClick:e,dragHandleRef:k,dragHandleListeners:g?void 0:i,dragHandleAttributes:g?void 0:h}),b&&a.branches.map(a=>(0,d.jsx)(R,{branch:a,isSelected:a.id===c,onClick:()=>f(a.id),showRepositoryName:!1},a.id))]})}function aw({repositoryName:a,branchCount:b,isExpanded:c,onClick:e,dragHandleRef:f,dragHandleListeners:g,dragHandleAttributes:h}){let i=(0,l.c)("common");return(0,d.jsxs)("div",{className:"flex items-center w-full",children:[g&&(0,d.jsx)("div",{ref:f,...g,...h,"aria-label":i("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,d.jsx)(aB,{})}),(0,d.jsxs)("button",{"data-testid":"group-header",type:"button",onClick:e,"aria-expanded":c,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,d.jsx)(ay,{isExpanded:c}),(0,d.jsx)(az,{color:(0,ao.LV)(a)}),(0,d.jsx)(aa.nR,{content:a,className:"flex-1 min-w-0 text-left truncate",children:a}),(0,d.jsx)("span",{className:"text-sidebar-muted font-normal tabular-nums pr-2",children:b})]})]})}function ax({viewMode:a,onToggle:b}){let c=(0,l.c)("common");return(0,d.jsx)(S.m_,{content:c("tooltips.viewMode"),placement:"bottom",children:(0,d.jsx)("button",{"data-testid":"view-mode-toggle",type:"button",onClick:()=>{b("grouped"===a?"flat":"grouped")},"aria-label":c("grouped"===a?"sidebar.switchToFlatView":"sidebar.switchToGroupedView"),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 transition-colors ",children:"grouped"===a?(0,d.jsx)(aA,{className:ap}):(0,d.jsx)(az,{className:ap})})})}function ay({isExpanded:a}){return(0,d.jsx)("svg",{className:`w-3 h-3 flex-shrink-0 transition-transform ${a?"rotate-90":""}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"})})}function az({className:a="w-3.5 h-3.5",color:b}){return(0,d.jsx)("svg",{className:`${a} flex-shrink-0`,viewBox:"0 0 24 24",fill:b??"none",stroke:b?"none":"currentColor",strokeWidth:2*!b,"aria-hidden":"true",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"})})}function aA({className:a="w-3 h-3"}){return(0,d.jsx)("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 6h16M4 12h16M4 18h16"})})}function aB(){return(0,d.jsxs)("svg",{className:"w-3 h-3",fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"9",cy:"5",r:"1.5"}),(0,d.jsx)("circle",{cx:"15",cy:"5",r:"1.5"}),(0,d.jsx)("circle",{cx:"9",cy:"12",r:"1.5"}),(0,d.jsx)("circle",{cx:"15",cy:"12",r:"1.5"}),(0,d.jsx)("circle",{cx:"9",cy:"19",r:"1.5"}),(0,d.jsx)("circle",{cx:"15",cy:"19",r:"1.5"})]})}function aC({className:a=""}){return(0,d.jsx)("svg",{className:`${ap} ${a}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.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 aD=(0,e.memo)(function({refreshWorktrees:a}){let[b,c]=(0,e.useState)(!1),f=(0,e.useRef)(!1),{showToast:g}=(0,ai.dj)(),h=(0,l.c)("common"),i=(0,e.useCallback)(async()=>{if(!f.current){f.current=!0,c(!0);try{let b=await an.Rx.sync();await a(),g(h("syncSuccess",{count:b.worktreeCount}),"success",3e3)}catch(a){a instanceof an.hD&&401===a.status?g(h("syncAuthError"),"error",5e3):g(h("syncError"),"error",5e3)}finally{f.current=!1,c(!1)}}},[a,g,h]);return(0,d.jsx)(d.Fragment,{children:(0,d.jsx)(S.m_,{content:h("tooltips.sync"),placement:"bottom",children:(0,d.jsx)("button",{type:"button",onClick:i,disabled:b,"aria-label":h("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,d.jsx)(aC,{className:b?"animate-spin":""})})})})});var aE=c(78733),aF=c(44688),aG=c(75903),aH=c(59268),aI=c(38882);let aJ=[{labelKey:"nav.home",href:"/",isActive:a=>"/"===a,icon:(0,d.jsx)(aE.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.chat",href:"/chat",isActive:a=>a.startsWith("/chat"),icon:(0,d.jsx)(aF.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.sessions",href:"/sessions",isActive:a=>a.startsWith("/sessions"),icon:(0,d.jsx)(aG.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.review",href:"/review",isActive:a=>a.startsWith("/review"),icon:(0,d.jsx)(aH.A,{size:20,"aria-hidden":"true"}),showsAttentionBadge:!0},{labelKey:"nav.more",href:"/more",isActive:a=>a.startsWith("/more"),icon:(0,d.jsx)(aI.A,{size:20,"aria-hidden":"true"})}];function aK(){let a=(0,g.usePathname)(),{setOpen:b}=(0,x.C)(),c=(0,l.c)("commandPalette"),e=(0,l.c)("common"),{count:f}=(0,ak.Lv)();return(0,d.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,d.jsxs)("div",{className:"flex items-center justify-around h-14",children:[aJ.map(b=>{let c=b.isActive(a),g=!0===b.showsAttentionBadge&&f>0;return(0,d.jsxs)(k,{href:g?aj.ks:b.href,className:`flex flex-col items-center justify-center flex-1 h-full text-xs transition-colors ${c?"text-accent-600 dark:text-accent-400":"text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsxs)("span",{className:"relative inline-flex",children:[b.icon,!0===b.showsAttentionBadge&&(0,d.jsx)(am,{count:f})]}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:e(b.labelKey)})]},b.href)}),(0,d.jsxs)("button",{type:"button","data-testid":"mobile-command-palette-trigger",onClick:()=>b(!0),"aria-label":c("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,d.jsx)(n.A,{size:20,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:c("mobileLabel")})]})]})})}var aL=c(67565),aM=c(50987),aN=c(75234),aO=c(34487),aP=c(25345),aQ=c(96558),aR=c(75692),aS=c(57898),aT=c(35595),aU=c(11010),aV=c(89184),aW=c(63157),aX=c(12480);let aY=[{key:"home",href:"/"},{key:"chat",href:"/chat"},{key:"sessions",href:"/sessions"},{key:"repositories",href:"/repositories"},{key:"review",href:"/review"},{key:"skills",href:"/skills"},{key:"more",href:"/more"}],aZ={home:aE.A,chat:aF.A,sessions:aG.A,repositories:aM.A,review:aH.A,skills:aN.A,more:aI.A};function a$(a){return a.isWaitingForResponse?"waiting":a.isProcessing?"running":a.isSessionRunning?"ready":"idle"}let a_=(0,aT.cn)("flex cursor-pointer items-center gap-2 rounded-md px-2 py-2 text-sm","text-foreground","data-[selected=true]:bg-accent-500/15 data-[selected=true]:text-accent-700","dark:data-[selected=true]:text-accent-300"),a0="shrink-0 text-muted-foreground";function a1(){let{open:a,setOpen:b}=(0,x.C)(),{setOpen:c}=(0,aV.K)(),f=(0,g.useRouter)(),h=(0,l.c)("commandPalette"),i=(0,l.c)("common"),{theme:j,setTheme:k}=(0,q.D)(),{setSize:m,isMobile:p}=(0,E.Ps)(),{currentLocale:t,switchLocale:u}=ae(),v=(0,aW.rC)(),{showToast:y}=(0,ai.dj)(),[z,A]=(0,e.useState)(!1),[B,C]=(0,e.useState)(""),[D,F]=(0,e.useState)([]),G=(0,e.useRef)(null);(0,e.useRef)(null),(0,e.useRef)(a);let H=(0,e.useCallback)((a,c)=>{c&&F(a=>(function(a,b){let c=a.filter(a=>a.kind!==b.kind||a.id!==b.id),d=[b,...c].slice(0,8);try{localStorage.setItem("cm.palette.recents",JSON.stringify(d))}catch{}return d})(a,c)),b(!1),a()},[b]),I=(0,e.useCallback)(async()=>{try{await an.Rx.sync(),await v?.refresh?.(),y(h("actions.syncSuccess"),"success")}catch{y(h("actions.syncError"),"error")}},[v,y,h]),J="dark"===j,L=""===B.trim(),M=v?.error??null,O=v?.isLoading??!1,P=M?[]:v?.worktrees??[],Q=P.length>0,R=!M&&O&&0===P.length,S=[...P].sort((a,b)=>{let c=+!!a.isSessionRunning,d=+!!b.isSessionRunning;if(c!==d)return d-c;let e=a.updatedAt?new Date(a.updatedAt).getTime():0;return(b.updatedAt?new Date(b.updatedAt).getTime():0)-e}),T=L?S.slice(0,8):S,U=[{id:"theme",label:J?h("actions.toLight"):h("actions.toDark"),icon:J?r.A:s.A,run:()=>k(J?"light":"dark")},...p?[]:aX.Uf.map(a=>({id:`displaysize:${a}`,label:`${h("actions.displaySizePrefix")}: ${i(`displaySize.${a}`)}`,icon:aO.A,run:()=>m(a)})),{id:"sync",label:h("actions.syncRepositories"),icon:aP.A,run:()=>{I()}},{id:"locale",label:h("actions.switchLanguage"),icon:aQ.A,run:()=>u("ja"===t?"en":"ja")},{id:"github",label:h("actions.openGitHub"),icon:o.A,run:()=>window.open("https://github.com/kewton/MyCodeBranchDesk","_blank","noopener,noreferrer")},{id:"keyboardShortcuts",label:h("actions.keyboardShortcuts"),icon:aR.A,run:()=>c(!0)}],V=L?D.map(a=>{if("nav"===a.kind){let b=aY.find(b=>b.key===a.id);if(!b)return null;let c=aZ[b.key],e=i(`nav.${b.key}`);return{id:`nav-${b.key}`,value:`recent nav ${b.key}`,node:(0,d.jsxs)(d.Fragment,{children:[c&&(0,d.jsx)(c,{size:16,className:a0,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:e})]}),onSelect:()=>H(()=>f.push(b.href),{kind:"nav",id:b.key})}}if("worktree"===a.kind){let b=P.find(b=>b.id===a.id);if(!b)return null;let c=b.repositoryDisplayName||b.repositoryName||"",e=b.branch||b.name;return{id:`worktree-${b.id}`,value:`recent worktree ${b.id}`,node:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(aS.A,{size:16,className:a0,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:e}),c&&(0,d.jsx)("span",{className:"ml-auto truncate pl-2 text-xs text-muted-foreground",children:c}),(0,d.jsx)(N.m,{status:a$(b),size:"sm",className:c?"ml-2":"ml-auto"})]}),onSelect:()=>H(()=>f.push(`/worktrees/${b.id}`),{kind:"worktree",id:b.id})}}let b=U.find(b=>b.id===a.id);if(!b)return null;let c=b.icon;return{id:`action-${b.id}`,value:`recent action ${b.id}`,node:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(c,{size:16,className:a0,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:b.label})]}),onSelect:()=>H(b.run,{kind:"action",id:b.id})}}).filter(a=>null!==a):[];return z?(0,K.createPortal)((0,d.jsx)(d.Fragment,{children:a&&(0,d.jsxs)("div",{className:"fixed inset-0 overflow-y-auto",style:{zIndex:aU.M.MODAL},"data-testid":"command-palette",children:[(0,d.jsx)("div",{"data-state":"open","aria-hidden":"true",className:"fixed inset-0 bg-black/40 backdrop-blur-sm transition-opacity data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-200",onClick:()=>b(!1)}),(0,d.jsx)("div",{className:"relative flex min-h-full items-start justify-center p-4 pt-[15vh]",children:(0,d.jsx)("div",{"data-state":"open","data-testid":"command-palette-panel",className:(0,aT.cn)("relative w-full max-w-lg overflow-hidden rounded-xl bg-surface/95 shadow-2xl ring-1 ring-border backdrop-blur-xl","data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-200"),children:(0,d.jsxs)(aL.uB,{label:h("title"),className:(0,aT.cn)("flex flex-col","[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:pb-1 [&_[cmdk-group-heading]]:pt-2","[&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground"),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 border-b border-border px-3",children:[(0,d.jsx)(n.A,{size:16,strokeWidth:2,"aria-hidden":"true",className:"shrink-0 text-muted-foreground"}),(0,d.jsx)(aL.uB.Input,{ref:G,value:B,onValueChange:C,placeholder:h("placeholder"),"data-testid":"command-palette-input",className:"flex-1 bg-transparent py-3 text-sm text-foreground outline-none placeholder:text-muted-foreground"})]}),(0,d.jsxs)(aL.uB.List,{className:"max-h-[min(60vh,360px)] overflow-y-auto p-2",children:[(0,d.jsx)(aL.uB.Empty,{"data-testid":"command-palette-empty",className:"py-6 text-center text-sm text-muted-foreground",children:h("empty")}),R&&(0,d.jsx)(aL.uB.Loading,{"data-testid":"command-palette-loading",className:"py-6 text-center text-sm text-muted-foreground",children:h("loading")}),V.length>0&&(0,d.jsx)(aL.uB.Group,{heading:h("groups.recent"),children:V.map(a=>(0,d.jsx)(aL.uB.Item,{value:a.value,onSelect:a.onSelect,className:a_,children:a.node},a.id))}),(0,d.jsx)(aL.uB.Group,{heading:h("groups.navigation"),children:aY.map(a=>{let b=i(`nav.${a.key}`),c=aZ[a.key];return(0,d.jsxs)(aL.uB.Item,{value:`nav ${b} ${a.href}`,onSelect:()=>H(()=>f.push(a.href),{kind:"nav",id:a.key}),className:a_,children:[c&&(0,d.jsx)(c,{size:16,className:a0,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:b})]},a.key)})}),Q&&(0,d.jsx)(aL.uB.Group,{heading:h("groups.worktrees"),children:T.map(a=>{let b=a.repositoryDisplayName||a.repositoryName||"",c=a.branch||a.name;return(0,d.jsxs)(aL.uB.Item,{value:`worktree ${b} ${c} ${a.name} ${a.id}`,onSelect:()=>H(()=>f.push(`/worktrees/${a.id}`),{kind:"worktree",id:a.id}),className:a_,children:[(0,d.jsx)(aS.A,{size:16,className:a0,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:c}),b&&(0,d.jsx)("span",{className:"ml-auto truncate pl-2 text-xs text-muted-foreground",children:b}),(0,d.jsx)(N.m,{status:a$(a),size:"sm",className:b?"ml-2":"ml-auto"})]},a.id)})}),(0,d.jsx)(aL.uB.Group,{heading:h("groups.actions"),children:U.map(a=>{let b=a.icon;return(0,d.jsxs)(aL.uB.Item,{value:`action ${a.id} ${a.label}`,onSelect:()=>H(a.run,{kind:"action",id:a.id}),className:a_,children:[(0,d.jsx)(b,{size:16,className:a0,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:a.label})]},a.id)})})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3 border-t border-border bg-surface-2 px-3 py-2 text-[11px] text-muted-foreground",children:[(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(w.u,{children:"↑"}),(0,d.jsx)(w.u,{children:"↓"}),h("footer.navigate")]}),(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(w.u,{children:"↵"}),h("footer.select")]}),(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(w.u,{children:"esc"}),h("footer.close")]})]})]})})})]})}),document.body):null}var a2=c(98033);let a3=["global","terminal","composer","editor"],a4=[{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:"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 a5(){let{open:a,setOpen:b}=(0,aV.K)(),{open:c}=(0,x.C)(),f=(0,l.c)("keyboardShortcuts"),[g,h]=(0,e.useState)(!1);(0,e.useRef)(a),(0,e.useRef)(c);let i=function(a=a4){return a3.map(b=>({scope:b,shortcuts:a.filter(a=>a.scope===b)})).filter(a=>a.shortcuts.length>0)}();return(0,d.jsx)(a2.a,{isOpen:a,onClose:()=>b(!1),title:f("title"),size:"md",children:(0,d.jsx)("div",{"data-testid":"keyboard-shortcuts-overlay",className:"space-y-6",children:i.map(({scope:a,shortcuts:b})=>(0,d.jsxs)("section",{"data-testid":`keyboard-shortcuts-scope-${a}`,children:[(0,d.jsx)("h4",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:f(`scopes.${a}`)}),(0,d.jsx)("ul",{className:"divide-y divide-border",children:b.map(a=>(0,d.jsxs)("li",{"data-testid":`keyboard-shortcut-${a.id}`,className:"flex items-center justify-between gap-4 py-2",children:[(0,d.jsx)("span",{className:"text-sm text-foreground",children:f(`shortcuts.${a.id}`)}),(0,d.jsx)("span",{className:"flex flex-shrink-0 items-center gap-1",children:a.keys.map((a,b)=>(0,d.jsx)(w.u,{children:"MOD"===a?g?"⌘":"Ctrl":a},b))})]},a.id))})]},a))})})}var a6=c(16945),a7=c(47089),a8=c(12055);function a9(){let a=(0,l.c)("common"),[b,c]=(0,e.useState)(null),[f,g]=(0,e.useState)(null),h=(0,e.useCallback)(a=>{if(a.type!==a8.Oo)return;let{serverVersion:b,clientVersion:d}=a;"string"==typeof b&&"string"==typeof d&&b&&d&&b!==f&&c({serverVersion:b,clientVersion:d})},[f]);(0,u.T3)(h);let i=(0,e.useCallback)(()=>{window.location.reload()},[]),j=(0,e.useCallback)(()=>{c(a=>(a&&g(a.serverVersion),null))},[]);return b?(0,d.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:aU.M.TOAST},children:[(0,d.jsx)(a6.A,{className:"h-5 w-5 shrink-0 mt-0.5","aria-hidden":"true"}),(0,d.jsxs)("div",{className:"flex flex-col gap-0.5 text-sm",children:[(0,d.jsx)("span",{className:"font-semibold",children:a("versionMismatch.title")}),(0,d.jsx)("span",{children:a("versionMismatch.description",{serverVersion:b.serverVersion,clientVersion:b.clientVersion})})]}),(0,d.jsxs)("button",{type:"button","data-testid":"version-mismatch-reload",onClick:i,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,d.jsx)(aP.A,{className:"h-4 w-4","aria-hidden":"true"}),a("versionMismatch.reload")]}),(0,d.jsx)("button",{type:"button","data-testid":"version-mismatch-dismiss",onClick:j,"aria-label":a("versionMismatch.dismiss"),className:"shrink-0 hover:opacity-70 focus:outline-none focus:ring-2 focus:ring-offset-2",children:(0,d.jsx)(a7.A,{className:"h-4 w-4","aria-hidden":"true"})})]}):null}let ba="transform transition-transform duration-300 ease-out",bb=(0,e.memo)(function({children:a}){let{isOpen:b,isMobileDrawerOpen:c,closeMobileDrawer:f,width:h,setWidth:i}=(0,A.VF)(),j=(0,B.a)(),{showSidebar:k,showGlobalNav:l}=function(){var a=(0,g.usePathname)();for(let b of D)if(a.startsWith(b.prefix))return{...C,...b.config};return{...C}}(),{factor:m}=(0,E.Ps)(),n=Math.round(160*m),o=Math.round(480*m),p=Math.round(Math.min(o,Math.max(n,h*m))),q=(0,e.useRef)(null),r=(0,e.useRef)(null),s=(0,e.useCallback)(a=>{i(Math.round(a/m))},[i,m]);return j?(0,d.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex flex-col",children:[c&&(0,d.jsx)("div",{"data-testid":"drawer-overlay",className:"fixed inset-0 bg-black/50 z-40",onClick:f,"aria-hidden":"true"}),k&&(0,d.jsx)("aside",{"data-testid":"sidebar-container",className:`
12
12
  fixed left-0 top-0 h-full w-72 z-50
13
- ${a9}
13
+ ${ba}
14
14
  ${c?"translate-x-0":"-translate-x-full"}
15
- `,role:"complementary",children:(0,d.jsx)(at,{})}),(0,d.jsx)("main",{className:`flex-1 min-h-0 overflow-hidden ${l?"pb-14":""}`,role:"main","data-view-transition":"content",children:a}),l&&(0,d.jsx)(aJ,{}),(0,d.jsx)(a0,{}),(0,d.jsx)(a4,{}),(0,d.jsx)(a8,{})]}):(0,d.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex flex-col",children:[l&&(0,d.jsx)(z,{}),(0,d.jsxs)("div",{className:"flex flex-1 min-h-0",children:[k&&(0,d.jsxs)("aside",{ref:q,"data-testid":"sidebar-container",className:`
15
+ `,role:"complementary",children:(0,d.jsx)(at,{})}),(0,d.jsx)("main",{className:`flex-1 min-h-0 overflow-hidden ${l?"pb-14":""}`,role:"main","data-view-transition":"content",children:a}),l&&(0,d.jsx)(aK,{}),(0,d.jsx)(a1,{}),(0,d.jsx)(a5,{}),(0,d.jsx)(a9,{})]}):(0,d.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex flex-col",children:[l&&(0,d.jsx)(z,{}),(0,d.jsxs)("div",{className:"flex flex-1 min-h-0",children:[k&&(0,d.jsxs)("aside",{ref:q,"data-testid":"sidebar-container",className:`
16
16
  fixed left-0
17
17
  ${l?"top-16 h-[calc(100vh-4rem)]":"top-0 h-full"}
18
18
  border-r border-border
19
- ${a9}
19
+ ${ba}
20
20
  ${b?"translate-x-0":"-translate-x-full"}
21
- `,style:{width:`${p}px`,zIndex:aT.M.SIDEBAR},role:"complementary","aria-hidden":!b,children:[(0,d.jsx)(at,{}),(0,d.jsx)(bb,{currentWidth:p,minWidth:n,maxWidth:o,sidebarRef:q,mainRef:r,onWidthChange:s})]}),(0,d.jsx)("main",{ref:r,className:"flex-1 min-w-0 h-full overflow-hidden transition-[padding] duration-300 ease-out",style:{paddingLeft:k&&b?`${p}px`:0},role:"main","data-view-transition":"content",children:a})]}),(0,d.jsx)(a0,{}),(0,d.jsx)(a4,{}),(0,d.jsx)(a8,{})]})});function bb({currentWidth:a,minWidth:b,maxWidth:c,sidebarRef:e,mainRef:f,onWidthChange:g}){return(0,d.jsx)("div",{"data-testid":"sidebar-resize-handle","aria-hidden":"true",onMouseDown:d=>{d.preventDefault();let h=d.clientX,i=a;f.current&&(f.current.style.transition="none");let j=d=>{i=Math.max(b,Math.min(c,a+(d.clientX-h))),e.current&&(e.current.style.width=`${i}px`),f.current&&(f.current.style.paddingLeft=`${i}px`)},k=()=>{document.body.style.cursor="",document.body.style.userSelect="",f.current&&(f.current.style.transition=""),document.removeEventListener("mousemove",j),document.removeEventListener("mouseup",k),g(i)};document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",j),document.addEventListener("mouseup",k)},className:"absolute top-0 right-0 w-1 h-full cursor-col-resize hover:bg-accent-500/40 transition-colors"})}},81497:(a,b,c)=>{c.d(b,{nR:()=>g});var d=c(21124),e=c(38301),f=c(23312);function g({content:a,delay:b=200,className:c,children:g,metadata:h}){let i=(0,e.useRef)(null),j=(0,e.useRef)(null),k=(0,e.useRef)(null),l=(0,e.useRef)(null),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)({top:-9999,left:-9999}),q=(0,e.useCallback)(()=>{null!==k.current&&(clearTimeout(k.current),k.current=null)},[]),r=(0,e.useCallback)(()=>{let a=i.current;a&&(a.scrollWidth>a.clientWidth||h)&&(q(),k.current=setTimeout(()=>{let b=a.getBoundingClientRect(),c=b.left;l.current={top:b.top,bottom:b.bottom},p({top:b.bottom+4,left:Math.min(b.left,c)}),n(!0),k.current=null},b))},[q,b,h]),s=(0,e.useCallback)(()=>{q(),n(!1)},[q]);return(0,d.jsxs)("span",{ref:i,className:c,onMouseEnter:r,onMouseLeave:s,children:[g??a,m&&"undefined"!=typeof document&&(0,f.createPortal)((0,d.jsxs)("span",{ref:j,role:"tooltip","aria-hidden":"true",className:"fixed z-[9999] max-w-md px-2 py-1 text-xs font-medium rounded bg-foreground text-background shadow-lg pointer-events-none",style:{top:o.top,left:o.left},children:[(0,d.jsx)("span",{className:"block break-all",children:a}),h&&(0,d.jsx)("span",{className:"mt-0.5 block whitespace-pre-line font-normal text-background/70",children:h})]}),document.body)]})}}};
21
+ `,style:{width:`${p}px`,zIndex:aU.M.SIDEBAR},role:"complementary","aria-hidden":!b,children:[(0,d.jsx)(at,{}),(0,d.jsx)(bc,{currentWidth:p,minWidth:n,maxWidth:o,sidebarRef:q,mainRef:r,onWidthChange:s})]}),(0,d.jsx)("main",{ref:r,className:"flex-1 min-w-0 h-full overflow-hidden transition-[padding] duration-300 ease-out",style:{paddingLeft:k&&b?`${p}px`:0},role:"main","data-view-transition":"content",children:a})]}),(0,d.jsx)(a1,{}),(0,d.jsx)(a5,{}),(0,d.jsx)(a9,{})]})});function bc({currentWidth:a,minWidth:b,maxWidth:c,sidebarRef:e,mainRef:f,onWidthChange:g}){return(0,d.jsx)("div",{"data-testid":"sidebar-resize-handle","aria-hidden":"true",onMouseDown:d=>{d.preventDefault();let h=d.clientX,i=a;f.current&&(f.current.style.transition="none");let j=d=>{i=Math.max(b,Math.min(c,a+(d.clientX-h))),e.current&&(e.current.style.width=`${i}px`),f.current&&(f.current.style.paddingLeft=`${i}px`)},k=()=>{document.body.style.cursor="",document.body.style.userSelect="",f.current&&(f.current.style.transition=""),document.removeEventListener("mousemove",j),document.removeEventListener("mouseup",k),g(i)};document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",j),document.addEventListener("mouseup",k)},className:"absolute top-0 right-0 w-1 h-full cursor-col-resize hover:bg-accent-500/40 transition-colors"})}},81497:(a,b,c)=>{c.d(b,{nR:()=>g});var d=c(21124),e=c(38301),f=c(23312);function g({content:a,delay:b=200,className:c,children:g,metadata:h}){let i=(0,e.useRef)(null),j=(0,e.useRef)(null),k=(0,e.useRef)(null),l=(0,e.useRef)(null),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)({top:-9999,left:-9999}),q=(0,e.useCallback)(()=>{null!==k.current&&(clearTimeout(k.current),k.current=null)},[]),r=(0,e.useCallback)(()=>{let a=i.current;a&&(a.scrollWidth>a.clientWidth||h)&&(q(),k.current=setTimeout(()=>{let b=a.getBoundingClientRect(),c=b.left;l.current={top:b.top,bottom:b.bottom},p({top:b.bottom+4,left:Math.min(b.left,c)}),n(!0),k.current=null},b))},[q,b,h]),s=(0,e.useCallback)(()=>{q(),n(!1)},[q]);return(0,d.jsxs)("span",{ref:i,className:c,onMouseEnter:r,onMouseLeave:s,children:[g??a,m&&"undefined"!=typeof document&&(0,f.createPortal)((0,d.jsxs)("span",{ref:j,role:"tooltip","aria-hidden":"true",className:"fixed z-[9999] max-w-md px-2 py-1 text-xs font-medium rounded bg-foreground text-background shadow-lg pointer-events-none",style:{top:o.top,left:o.left},children:[(0,d.jsx)("span",{className:"block break-all",children:a}),h&&(0,d.jsx)("span",{className:"mt-0.5 block whitespace-pre-line font-normal text-background/70",children:h})]}),document.body)]})}}};