commandmate 0.47.0 → 0.47.2

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 (589) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +501 -501
  3. package/.next/app-path-routes-manifest.json +36 -36
  4. package/.next/build-manifest.json +8 -8
  5. package/.next/diagnostics/framework.json +1 -1
  6. package/.next/next-minimal-server.js.nft.json +1 -1
  7. package/.next/next-server.js.nft.json +1 -1
  8. package/.next/prerender-manifest.json +15 -15
  9. package/.next/react-loadable-manifest.json +1 -1
  10. package/.next/required-server-files.json +1 -1
  11. package/.next/server/app/_not-found/page.js +2 -2
  12. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  13. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/agents/update/route.js +2 -2
  15. package/.next/server/app/api/agents/update/route.js.nft.json +1 -1
  16. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/agents/versions/route.js +1 -1
  18. package/.next/server/app/api/agents/versions/route.js.nft.json +1 -1
  19. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/app/release-notes/route.js +1 -1
  21. package/.next/server/app/api/app/release-notes/route.js.nft.json +1 -1
  22. package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/app/update/route.js +5 -5
  24. package/.next/server/app/api/app/update/route.js.nft.json +1 -1
  25. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/app/update-check/route.js +1 -1
  27. package/.next/server/app/api/app/update-check/route.js.nft.json +1 -1
  28. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/auth/login/route.js +1 -1
  30. package/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  31. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/auth/logout/route.js +1 -1
  33. package/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  34. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/auth/status/route.js +1 -1
  36. package/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  37. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/capabilities/route.js +1 -1
  39. package/.next/server/app/api/capabilities/route.js.nft.json +1 -1
  40. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/daily-summary/route.js +1 -1
  42. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  43. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  45. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  46. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/external-apps/[id]/health/route.js +1 -1
  48. package/.next/server/app/api/external-apps/[id]/health/route.js.nft.json +1 -1
  49. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/external-apps/[id]/route.js +1 -1
  51. package/.next/server/app/api/external-apps/[id]/route.js.nft.json +1 -1
  52. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/external-apps/route.js +1 -1
  54. package/.next/server/app/api/external-apps/route.js.nft.json +1 -1
  55. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/fs/browse/route.js +1 -1
  57. package/.next/server/app/api/fs/browse/route.js.nft.json +1 -1
  58. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/fs/recent-paths/route.js +1 -1
  60. package/.next/server/app/api/fs/recent-paths/route.js.nft.json +1 -1
  61. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/hooks/agent-event/route.js +2 -2
  63. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  64. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  66. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  67. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  69. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  70. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/metrics/vibe/route.js +2 -2
  72. package/.next/server/app/api/metrics/vibe/route.js.nft.json +1 -1
  73. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/ollama/models/route.js +1 -1
  75. package/.next/server/app/api/ollama/models/route.js.nft.json +1 -1
  76. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/push/escalation/route.js +1 -1
  78. package/.next/server/app/api/push/escalation/route.js.nft.json +1 -1
  79. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/push/subscriptions/route.js +1 -1
  81. package/.next/server/app/api/push/subscriptions/route.js.nft.json +1 -1
  82. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/push/vapid/route.js +1 -1
  84. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  85. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -1
  87. package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
  88. package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/relays/route.js +1 -1
  90. package/.next/server/app/api/relays/route.js.nft.json +1 -1
  91. package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/remote/pair/route.js +2 -2
  93. package/.next/server/app/api/remote/pair/route.js.nft.json +1 -1
  94. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/repositories/[id]/route.js +1 -1
  96. package/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
  97. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  99. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  100. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/repositories/clone/route.js +1 -1
  102. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  103. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/repositories/excluded/route.js +1 -1
  105. package/.next/server/app/api/repositories/excluded/route.js.nft.json +1 -1
  106. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/repositories/restore/route.js +1 -1
  108. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  109. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/repositories/route.js +1 -1
  111. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  112. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/repositories/scan/route.js +1 -1
  114. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  115. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/repositories/sync/route.js +1 -1
  117. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  118. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/repositories/validate-path/route.js +1 -1
  120. package/.next/server/app/api/repositories/validate-path/route.js.nft.json +1 -1
  121. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/settings/default-agents/route.js +1 -1
  123. package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
  124. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/settings/default-surface-mode/route.js +1 -1
  126. package/.next/server/app/api/settings/default-surface-mode/route.js.nft.json +1 -1
  127. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/sidebar/group-order/route.js +1 -1
  129. package/.next/server/app/api/sidebar/group-order/route.js.nft.json +1 -1
  130. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/skills/[id]/route.js +1 -1
  132. package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
  133. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/skills/installations/route.js +1 -1
  135. package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
  136. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/skills/operations/route.js +2 -2
  138. package/.next/server/app/api/skills/operations/route.js.nft.json +1 -1
  139. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/skills/reindex/route.js +1 -1
  141. package/.next/server/app/api/skills/reindex/route.js.nft.json +1 -1
  142. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/skills/route.js +1 -1
  144. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  145. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/slash-commands/route.js +1 -1
  147. package/.next/server/app/api/slash-commands/route.js.nft.json +1 -1
  148. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/tasks/[taskId]/cancel/route.js +1 -1
  150. package/.next/server/app/api/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  151. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
  153. package/.next/server/app/api/tasks/[taskId]/route.js.nft.json +1 -1
  154. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/templates/[id]/route.js +1 -1
  156. package/.next/server/app/api/templates/[id]/route.js.nft.json +1 -1
  157. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/templates/route.js +1 -1
  159. package/.next/server/app/api/templates/route.js.nft.json +1 -1
  160. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  161. package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
  162. package/.next/server/app/api/verification/runs/[runId]/route.js.nft.json +1 -1
  163. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/verification/runs/route.js +1 -1
  165. package/.next/server/app/api/verification/runs/route.js.nft.json +1 -1
  166. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  169. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  172. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  175. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  176. package/.next/server/app/api/worktrees/[id]/cli-reference/route.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/cli-reference/route.js.nft.json +1 -1
  178. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  179. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +1 -1
  181. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  182. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +7 -7
  183. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  184. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  185. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  187. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  188. package/.next/server/app/api/worktrees/[id]/direct-input/route.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/direct-input/route.js.nft.json +1 -1
  190. package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/env/route.js +2 -2
  192. package/.next/server/app/api/worktrees/[id]/env/route.js.nft.json +1 -1
  193. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js.nft.json +1 -1
  196. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +3 -3
  198. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  199. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -1
  202. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
  205. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  206. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
  208. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
  211. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  212. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
  214. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  215. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
  217. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  218. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
  220. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  221. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
  223. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  224. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
  226. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  227. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
  229. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  230. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
  232. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  233. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
  235. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  236. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
  238. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  239. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
  241. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  242. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  243. package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
  244. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  245. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
  247. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  248. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
  249. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
  250. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  251. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  252. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
  253. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  254. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  255. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
  256. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  257. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  258. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
  259. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  260. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  261. package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
  262. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  263. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  264. package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
  265. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  266. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  267. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
  268. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  269. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  270. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
  271. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  272. package/.next/server/app/api/worktrees/[id]/instances/notes/route.js +1 -1
  273. package/.next/server/app/api/worktrees/[id]/instances/notes/route.js.nft.json +1 -1
  274. package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
  275. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
  276. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  277. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  278. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  279. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  280. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  281. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  282. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  283. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  284. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  285. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -1
  286. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  287. package/.next/server/app/api/worktrees/[id]/logs/route.js +1 -1
  288. package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
  289. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  290. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +3 -3
  291. package/.next/server/app/api/worktrees/[id]/marp-render/route.js.nft.json +1 -1
  292. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  293. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  294. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js.nft.json +1 -1
  295. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  296. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  297. package/.next/server/app/api/worktrees/[id]/memos/route.js.nft.json +1 -1
  298. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  299. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  300. package/.next/server/app/api/worktrees/[id]/messages/route.js.nft.json +1 -1
  301. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  302. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js +1 -1
  303. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js.nft.json +1 -1
  304. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  305. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -1
  306. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -1
  307. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  308. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -1
  309. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
  310. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  311. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  312. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  313. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  314. package/.next/server/app/api/worktrees/[id]/prompt-response/strict/route.js +1 -1
  315. package/.next/server/app/api/worktrees/[id]/prompt-response/strict/route.js.nft.json +1 -1
  316. package/.next/server/app/api/worktrees/[id]/prompt-response/strict/route_client-reference-manifest.js +1 -1
  317. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +1 -1
  318. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js.nft.json +1 -1
  319. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  320. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  321. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  322. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  323. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  324. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  325. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  326. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +2 -2
  327. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  328. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  329. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  330. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  331. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  332. package/.next/server/app/api/worktrees/[id]/schedules/route.js +3 -3
  333. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  334. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  335. package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
  336. package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
  337. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  338. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  339. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  340. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  341. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +5 -5
  342. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  343. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  344. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -1
  345. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -1
  346. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  347. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  348. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  349. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  350. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -1
  351. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -1
  352. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  353. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -1
  354. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -1
  355. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  356. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js +1 -1
  357. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js.nft.json +1 -1
  358. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  359. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
  360. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
  361. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  362. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  363. package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -1
  364. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  365. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  366. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
  367. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  368. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  369. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  370. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  371. package/.next/server/app/api/worktrees/[id]/tasks/route.js +2 -2
  372. package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +1 -1
  373. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  374. package/.next/server/app/api/worktrees/[id]/terminal/route.js +2 -2
  375. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  376. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  377. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  378. package/.next/server/app/api/worktrees/[id]/timers/history/route.js.nft.json +1 -1
  379. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  380. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  381. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  382. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  383. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  384. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js.nft.json +1 -1
  385. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  386. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  387. package/.next/server/app/api/worktrees/[id]/todos/route.js.nft.json +1 -1
  388. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  389. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  390. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -1
  391. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  392. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  393. package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -1
  394. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  395. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
  396. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -1
  397. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  398. package/.next/server/app/api/worktrees/[id]/verify/config/route.js +2 -2
  399. package/.next/server/app/api/worktrees/[id]/verify/config/route.js.nft.json +1 -1
  400. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  401. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  402. package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
  403. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  404. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
  405. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js.nft.json +1 -1
  406. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  407. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
  408. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js.nft.json +1 -1
  409. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  410. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
  411. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js.nft.json +1 -1
  412. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  413. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  414. package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -1
  415. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  416. package/.next/server/app/api/worktrees/apply-default-agents/route.js +1 -1
  417. package/.next/server/app/api/worktrees/apply-default-agents/route.js.nft.json +1 -1
  418. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  419. package/.next/server/app/api/worktrees/route.js +1 -1
  420. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  421. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  422. package/.next/server/app/apple-icon.png/route.js +1 -1
  423. package/.next/server/app/apple-icon.png/route.js.nft.json +1 -1
  424. package/.next/server/app/apple-icon.png.meta +1 -1
  425. package/.next/server/app/icon.png/route.js +1 -1
  426. package/.next/server/app/icon.png/route.js.nft.json +1 -1
  427. package/.next/server/app/icon.png.meta +1 -1
  428. package/.next/server/app/icon1.png/route.js +1 -1
  429. package/.next/server/app/icon1.png/route.js.nft.json +1 -1
  430. package/.next/server/app/icon1.png.meta +1 -1
  431. package/.next/server/app/icon2.png/route.js +1 -1
  432. package/.next/server/app/icon2.png/route.js.nft.json +1 -1
  433. package/.next/server/app/icon2.png.meta +1 -1
  434. package/.next/server/app/login/page.js +2 -2
  435. package/.next/server/app/login/page.js.nft.json +1 -1
  436. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  437. package/.next/server/app/manifest.webmanifest/route.js +2 -2
  438. package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  439. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  440. package/.next/server/app/manifest.webmanifest.meta +1 -1
  441. package/.next/server/app/more/page.js +2 -2
  442. package/.next/server/app/more/page.js.nft.json +1 -1
  443. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  444. package/.next/server/app/offline/page.js +2 -2
  445. package/.next/server/app/offline/page.js.nft.json +1 -1
  446. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  447. package/.next/server/app/page.js +2 -2
  448. package/.next/server/app/page.js.nft.json +1 -1
  449. package/.next/server/app/page_client-reference-manifest.js +1 -1
  450. package/.next/server/app/proxy/[...path]/route.js +1 -1
  451. package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -1
  452. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  453. package/.next/server/app/repositories/page.js +2 -2
  454. package/.next/server/app/repositories/page.js.nft.json +1 -1
  455. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  456. package/.next/server/app/review/page.js +2 -2
  457. package/.next/server/app/review/page.js.nft.json +1 -1
  458. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  459. package/.next/server/app/sessions/page.js +2 -2
  460. package/.next/server/app/sessions/page.js.nft.json +1 -1
  461. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  462. package/.next/server/app/skills/[skillId]/page.js +2 -2
  463. package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
  464. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  465. package/.next/server/app/skills/installed/page.js +2 -2
  466. package/.next/server/app/skills/installed/page.js.nft.json +1 -1
  467. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  468. package/.next/server/app/skills/page.js +2 -2
  469. package/.next/server/app/skills/page.js.nft.json +1 -1
  470. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  471. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +2 -2
  472. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  473. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  474. package/.next/server/app/worktrees/[id]/page.js +4 -4
  475. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  476. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  477. package/.next/server/app/worktrees/[id]/terminal/page.js +3 -3
  478. package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
  479. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  480. package/.next/server/app-paths-manifest.json +36 -36
  481. package/.next/server/chunks/{5048.js → 1185.js} +1 -1
  482. package/.next/server/chunks/1656.js +19 -0
  483. package/.next/server/chunks/2460.js +1 -1
  484. package/.next/server/chunks/255.js +1 -0
  485. package/.next/server/chunks/3241.js +1 -1
  486. package/.next/server/chunks/3505.js +7 -0
  487. package/.next/server/chunks/3897.js +22 -0
  488. package/.next/server/chunks/4072.js +5 -5
  489. package/.next/server/chunks/463.js +1 -0
  490. package/.next/server/chunks/5209.js +1 -1
  491. package/.next/server/chunks/5595.js +1 -1
  492. package/.next/server/chunks/5611.js +1 -1
  493. package/.next/server/chunks/610.js +1 -0
  494. package/.next/server/chunks/6119.js +1 -0
  495. package/.next/server/chunks/6130.js +1 -1
  496. package/.next/server/chunks/6345.js +1 -1
  497. package/.next/server/chunks/6401.js +1 -1
  498. package/.next/server/chunks/6781.js +1 -1
  499. package/.next/server/chunks/6784.js +1 -0
  500. package/.next/server/chunks/8581.js +1 -1
  501. package/.next/server/chunks/8728.js +2 -2
  502. package/.next/server/chunks/8918.js +1 -1
  503. package/.next/server/chunks/9130.js +1 -1
  504. package/.next/server/chunks/936.js +1 -1
  505. package/.next/server/chunks/9390.js +1 -1
  506. package/.next/server/chunks/9540.js +1 -1
  507. package/.next/server/chunks/9627.js +1 -1
  508. package/.next/server/chunks/9731.js +3 -3
  509. package/.next/server/middleware-build-manifest.js +1 -1
  510. package/.next/server/middleware-manifest.json +5 -5
  511. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  512. package/.next/server/pages/500.html +1 -1
  513. package/.next/server/pages/_document.js.nft.json +1 -1
  514. package/.next/server/pages/_error.js +3 -3
  515. package/.next/server/pages/_error.js.nft.json +1 -1
  516. package/.next/server/server-reference-manifest.json +1 -1
  517. package/.next/server/src/middleware.js.map +1 -1
  518. package/.next/static/chunks/{1111.5ab4f0ffb0d944e5.js → 1111.1b653d4a9816a0a7.js} +8 -8
  519. package/.next/static/chunks/{1255-7e5873f06b25e129.js → 1255-a85690d352f4f8fd.js} +1 -1
  520. package/.next/static/chunks/{2407-b2f524f99f7fc353.js → 2407-a6533805a86d05bd.js} +1 -1
  521. package/.next/static/chunks/9465-b59bb255b376c813.js +1 -0
  522. package/.next/static/chunks/app/{layout-419eaf7de340f4ab.js → layout-538d8d2746ad1588.js} +1 -1
  523. package/.next/static/chunks/app/worktrees/[id]/page-46aced20b2b1c010.js +1 -0
  524. package/.next/static/chunks/main-37ca13e38030fe8b.js +1 -0
  525. package/.next/static/chunks/{webpack-468b7b33030234b3.js → webpack-838df0273b03af19.js} +1 -1
  526. package/.next/trace +13 -13
  527. package/dist/cli/commands/prompt.d.ts.map +1 -1
  528. package/dist/cli/commands/prompt.js +23 -11
  529. package/dist/cli/commands/wait.d.ts.map +1 -1
  530. package/dist/cli/commands/wait.js +7 -1
  531. package/dist/cli/types/api-responses.d.ts +15 -2
  532. package/dist/cli/types/api-responses.d.ts.map +1 -1
  533. package/dist/lib/polling/auto-yes-suppression-reason.d.ts +11 -0
  534. package/dist/lib/polling/auto-yes-suppression-reason.d.ts.map +1 -1
  535. package/dist/lib/polling/auto-yes-suppression-reason.js +4 -1
  536. package/dist/server/src/lib/auto-yes-poller.js +269 -554
  537. package/dist/server/src/lib/detection/prompt-detect-multiple-choice.js +88 -6
  538. package/dist/server/src/lib/detection/prompt-detector.js +1 -1
  539. package/dist/server/src/lib/detection/tools/antigravity/dialog.js +1 -1
  540. package/dist/server/src/lib/hooks/permission-adjudication.js +26 -0
  541. package/dist/server/src/lib/hooks/permission-decision-service.js +42 -4
  542. package/dist/server/src/lib/hooks/permission-request-payload.js +20 -0
  543. package/dist/server/src/lib/hooks/sources/antigravity/source.js +21 -0
  544. package/dist/server/src/lib/hooks/sources/claude/source.js +3 -0
  545. package/dist/server/src/lib/hooks/sources/codex/source.js +2 -0
  546. package/dist/server/src/lib/hooks/sources/command-code/source.js +2 -0
  547. package/dist/server/src/lib/hooks/sources/copilot/source.js +2 -0
  548. package/dist/server/src/lib/hooks/sources/gemini/source.js +2 -0
  549. package/dist/server/src/lib/hooks/sources/legacy-relay.js +2 -0
  550. package/dist/server/src/lib/hooks/sources/opencode/ingest.js +6 -0
  551. package/dist/server/src/lib/hooks/sources/opencode/source.js +2 -0
  552. package/dist/server/src/lib/hooks/sources/opencode-v2/ingest.js +6 -0
  553. package/dist/server/src/lib/hooks/sources/opencode-v2/source.js +2 -0
  554. package/dist/server/src/lib/hooks/sources/pending-decisions.js +14 -2
  555. package/dist/server/src/lib/polling/antigravity-permission-receipts.js +14 -3
  556. package/dist/server/src/lib/polling/antigravity-receipt-episodes.js +21 -1
  557. package/dist/server/src/lib/polling/auto-yes-confirmation-ledger-types.js +114 -0
  558. package/dist/server/src/lib/polling/auto-yes-confirmation-ledger.js +1060 -0
  559. package/dist/server/src/lib/polling/auto-yes-ledger-records.js +143 -0
  560. package/dist/server/src/lib/polling/auto-yes-policy.js +36 -7
  561. package/dist/server/src/lib/polling/auto-yes-poller-capture.js +50 -0
  562. package/dist/server/src/lib/polling/auto-yes-poller-enter-fallback.js +37 -0
  563. package/dist/server/src/lib/polling/auto-yes-poller-generation.js +151 -0
  564. package/dist/server/src/lib/polling/auto-yes-poller-receipt-log.js +287 -0
  565. package/dist/server/src/lib/polling/auto-yes-poller-state.js +75 -6
  566. package/dist/server/src/lib/polling/auto-yes-poller-steps.js +109 -0
  567. package/dist/server/src/lib/polling/auto-yes-prompt-suppression.js +11 -0
  568. package/dist/server/src/lib/polling/auto-yes-resolver.js +21 -1
  569. package/dist/server/src/lib/polling/auto-yes-suppression-reason.js +4 -1
  570. package/dist/server/src/lib/polling/response-checker-blank-response.js +30 -0
  571. package/dist/server/src/lib/polling/response-checker.js +5 -10
  572. package/dist/server/src/lib/prompt-observation/appearance.js +165 -0
  573. package/package.json +2 -2
  574. package/release-notes/0.47.1.json +20 -0
  575. package/release-notes/0.47.2.json +20 -0
  576. package/scripts/hooks/cmate-agent-event.sh +22 -0
  577. package/.next/server/chunks/1331.js +0 -22
  578. package/.next/server/chunks/1836.js +0 -1
  579. package/.next/server/chunks/1944.js +0 -1
  580. package/.next/server/chunks/2328.js +0 -1
  581. package/.next/server/chunks/5292.js +0 -7
  582. package/.next/server/chunks/7166.js +0 -19
  583. package/.next/server/chunks/9051.js +0 -1
  584. package/.next/server/chunks/9199.js +0 -1
  585. package/.next/static/chunks/9465-e5a351baa941f31b.js +0 -1
  586. package/.next/static/chunks/app/worktrees/[id]/page-45294052ee3032f1.js +0 -1
  587. package/.next/static/chunks/main-ac91ed6e71380841.js +0 -1
  588. /package/.next/static/{b5BiQC9F6r_XFPdA9cuSj → etorRtpxbQqqOzdUeXdw2}/_buildManifest.js +0 -0
  589. /package/.next/static/{b5BiQC9F6r_XFPdA9cuSj → etorRtpxbQqqOzdUeXdw2}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- exports.id=6401,exports.ids=[6401],exports.modules={3421:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},26838:(a,b,c)=>{"use strict";c.d(b,{E2:()=>q,MQ:()=>m,Mj:()=>o,Sw:()=>n,lX:()=>r});var d=c(29021),e=c(33873),f=c(54325),g=c(90164),h=c(36925);let i=/^v?\d+\.\d+\.\d+$/,j=/^[a-zA-Z0-9.\-\s_v]+$/,k=[".next","required-server-files.json"],l=(0,h.v)("__versionCheckCache",()=>({result:null,fetchedAt:0,rateLimitResetAt:null}));function m(a,b){if(!i.test(a)||!i.test(b))return!1;let c=a=>a.replace(/^v/,"").split(".").map(Number),[d,e,f]=c(a),[g,h,j]=c(b);return g!==d?g>d:h!==e?h>e:j>f}function n(){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.47.0"}function o(){return n()}let p=null;function q(a){let b=p??=function(){{let a=function(){try{let a=(0,d.readFileSync)((0,e.join)(process.cwd(),...k),"utf-8"),b=JSON.parse(a),c=b.config?.env?.NEXT_PUBLIC_APP_VERSION;if("string"==typeof c&&c.length>0)return c;return null}catch{return null}}();if(a)return a}return"0.47.0"}();return(0,f.LE)(b,a)?{serverVersion:b,clientVersion:a}:null}async function r(){try{var a,b,c;if(null!==l.result&&Date.now()-l.fetchedAt<36e5||l.rateLimitResetAt&&(!(Date.now()>=l.rateLimitResetAt)||(l.rateLimitResetAt=null,0)))return l.result;let d=await fetch("https://api.github.com/repos/Kewton/CommandMate/releases/latest",{headers:{Accept:"application/vnd.github+json","User-Agent":`CommandMate/${o()}`},cache:"no-store",signal:AbortSignal.timeout(5e3)});if(403===d.status)return function(a){let b=a.headers.get("X-RateLimit-Reset");b?l.rateLimitResetAt=1e3*parseInt(b,10):l.rateLimitResetAt=Date.now()+36e5}(d),l.result;if(!d.ok)return l.result;let e=await d.json(),f=o(),h=e.tag_name.replace(/^v/,""),i={hasUpdate:m(f,e.tag_name),currentVersion:f,latestVersion:h,releaseUrl:(a=e.html_url).startsWith(g.Dk)?a:null,releaseName:(b=e.name,c=e.tag_name,j.test(b)&&b.length<=128?b:c),publishedAt:e.published_at};return l.result=i,l.fetchedAt=Date.now(),i}catch{return l.result}}},36925:(a,b,c)=>{"use strict";function d(a,b){return globalThis[a]??=b()}c.d(b,{v:()=>d})},48870:(a,b,c)=>{"use strict";c.d(b,{GQ:()=>j,TJ:()=>g,Tf:()=>h,WI:()=>i});var d=c(29021),e=c(33873),f=c(21820);function g(){let a=(0,e.dirname)(__dirname);return a.includes("/lib/node_modules/")||a.includes("\\node_modules\\")||a.includes("/node_modules/commandmate")}function h(){let a=(0,e.dirname)(__dirname);return a.includes("/_npx/")||a.includes("\\_npx\\")}function i(){if(g()){let a=(0,e.join)((0,f.homedir)(),".commandmate");if((0,d.existsSync)(a)){let b=(0,d.realpathSync)(a),c=(0,d.realpathSync)((0,f.homedir)());if(!b.startsWith(c))throw Error(`Security error: Config directory ${a} is outside home directory`);return b}return a}let a=process.cwd();return(0,d.realpathSync)(a)}function j(){let a=g()?(0,e.join)((0,f.homedir)(),".commandmate"):process.cwd();return(0,d.existsSync)(a)||(0,d.mkdirSync)(a,{recursive:!0,mode:448}),i()}},53515:(a,b,c)=>{"use strict";c.d(b,{n8:()=>n,KC:()=>m});var d=c(79646);function e(a){return"string"==typeof a?a.trim():""}c(29021),c(33873);var f=c(26838);let g=/^\d+\.\d+\.\d+$/,h=/^v?\d+\.\d+\.\d+$/,i=globalThis,j=i.__npmPublishCheckCache??(i.__npmPublishCheckCache={targetVersion:null,npmVersion:null,checkedAt:0,inFlight:null});async function k(){let a=await new Promise(a=>{(0,d.execFile)("npm",["view","commandmate","version"],{encoding:"utf-8",timeout:1e4},(b,c,d)=>{if(b)return"ENOENT"===b.code?void a({success:!1,error:"npm command not found. Install Node.js/npm and try again."}):void a({success:!1,error:e(d)||b.message});let f=e(c);if(!f)return void a({success:!1,error:"npm view returned no version"});a({success:!0,version:f})})});return a.success&&a.version&&g.test(a.version)?a.version:null}async function l(a,b,c){var d,e,g,h;if(j.targetVersion===a){if(null!==j.npmVersion&&(d=j.npmVersion,!(0,f.MQ)(d,a))||c()-j.checkedAt<3e5)return j.npmVersion}j.inFlight||(j.inFlight=(async()=>{try{return await b()}catch{return null}})());let i=j.inFlight,k=await i;return j.inFlight===i&&(j.inFlight=null,e=a,g=k,h=c(),j.targetVersion=e,j.npmVersion=g,j.checkedAt=h),k}async function m(a,b={}){var c;if(!a.hasUpdate)return{hasUpdate:!1,pendingVersion:null};let d=await l(a.latestVersion,b.fetchNpmLatest??k,b.now??Date.now);return null!==d&&(c=a.latestVersion,(0,f.MQ)(d,c))?{hasUpdate:!1,pendingVersion:a.latestVersion}:{hasUpdate:!0,pendingVersion:null}}async function n(a,b={}){let c;if(!h.test(a))return null;try{c=await (b.fetchNpmLatest??k)()}catch{return null}return null===c?null:(0,f.MQ)(a,c)}},54325:(a,b,c)=>{"use strict";c.d(b,{LE:()=>f,Oo:()=>e,ST:()=>d,T4:()=>k,dz:()=>j,r9:()=>h,rx:()=>i,rz:()=>g});let d="client_version",e="version_mismatch";function f(a,b){return!!a&&!!b&&"0.0.0"!==a&&"0.0.0"!==b&&a!==b}let g="chat_turn_progress",h=1e3;function i(a,b=65536){return b<=0?{body:"",truncated:a.length>0}:a.length<=b?{body:a,truncated:!1}:{body:a.slice(a.length-b),truncated:!0}}let j="messages_invalidated",k="model_changed"},78335:()=>{},90164:(a,b,c)=>{"use strict";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`},95736:(a,b,c)=>{"use strict";a.exports=c(44870)},96487:()=>{}};
1
+ exports.id=6401,exports.ids=[6401],exports.modules={3421:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},26838:(a,b,c)=>{"use strict";c.d(b,{E2:()=>q,MQ:()=>m,Mj:()=>o,Sw:()=>n,lX:()=>r});var d=c(29021),e=c(33873),f=c(54325),g=c(90164),h=c(36925);let i=/^v?\d+\.\d+\.\d+$/,j=/^[a-zA-Z0-9.\-\s_v]+$/,k=[".next","required-server-files.json"],l=(0,h.v)("__versionCheckCache",()=>({result:null,fetchedAt:0,rateLimitResetAt:null}));function m(a,b){if(!i.test(a)||!i.test(b))return!1;let c=a=>a.replace(/^v/,"").split(".").map(Number),[d,e,f]=c(a),[g,h,j]=c(b);return g!==d?g>d:h!==e?h>e:j>f}function n(){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.47.2"}function o(){return n()}let p=null;function q(a){let b=p??=function(){{let a=function(){try{let a=(0,d.readFileSync)((0,e.join)(process.cwd(),...k),"utf-8"),b=JSON.parse(a),c=b.config?.env?.NEXT_PUBLIC_APP_VERSION;if("string"==typeof c&&c.length>0)return c;return null}catch{return null}}();if(a)return a}return"0.47.2"}();return(0,f.LE)(b,a)?{serverVersion:b,clientVersion:a}:null}async function r(){try{var a,b,c;if(null!==l.result&&Date.now()-l.fetchedAt<36e5||l.rateLimitResetAt&&(!(Date.now()>=l.rateLimitResetAt)||(l.rateLimitResetAt=null,0)))return l.result;let d=await fetch("https://api.github.com/repos/Kewton/CommandMate/releases/latest",{headers:{Accept:"application/vnd.github+json","User-Agent":`CommandMate/${o()}`},cache:"no-store",signal:AbortSignal.timeout(5e3)});if(403===d.status)return function(a){let b=a.headers.get("X-RateLimit-Reset");b?l.rateLimitResetAt=1e3*parseInt(b,10):l.rateLimitResetAt=Date.now()+36e5}(d),l.result;if(!d.ok)return l.result;let e=await d.json(),f=o(),h=e.tag_name.replace(/^v/,""),i={hasUpdate:m(f,e.tag_name),currentVersion:f,latestVersion:h,releaseUrl:(a=e.html_url).startsWith(g.Dk)?a:null,releaseName:(b=e.name,c=e.tag_name,j.test(b)&&b.length<=128?b:c),publishedAt:e.published_at};return l.result=i,l.fetchedAt=Date.now(),i}catch{return l.result}}},36925:(a,b,c)=>{"use strict";function d(a,b){return globalThis[a]??=b()}c.d(b,{v:()=>d})},48870:(a,b,c)=>{"use strict";c.d(b,{GQ:()=>j,TJ:()=>g,Tf:()=>h,WI:()=>i});var d=c(29021),e=c(33873),f=c(21820);function g(){let a=(0,e.dirname)(__dirname);return a.includes("/lib/node_modules/")||a.includes("\\node_modules\\")||a.includes("/node_modules/commandmate")}function h(){let a=(0,e.dirname)(__dirname);return a.includes("/_npx/")||a.includes("\\_npx\\")}function i(){if(g()){let a=(0,e.join)((0,f.homedir)(),".commandmate");if((0,d.existsSync)(a)){let b=(0,d.realpathSync)(a),c=(0,d.realpathSync)((0,f.homedir)());if(!b.startsWith(c))throw Error(`Security error: Config directory ${a} is outside home directory`);return b}return a}let a=process.cwd();return(0,d.realpathSync)(a)}function j(){let a=g()?(0,e.join)((0,f.homedir)(),".commandmate"):process.cwd();return(0,d.existsSync)(a)||(0,d.mkdirSync)(a,{recursive:!0,mode:448}),i()}},53515:(a,b,c)=>{"use strict";c.d(b,{n8:()=>n,KC:()=>m});var d=c(79646);function e(a){return"string"==typeof a?a.trim():""}c(29021),c(33873);var f=c(26838);let g=/^\d+\.\d+\.\d+$/,h=/^v?\d+\.\d+\.\d+$/,i=globalThis,j=i.__npmPublishCheckCache??(i.__npmPublishCheckCache={targetVersion:null,npmVersion:null,checkedAt:0,inFlight:null});async function k(){let a=await new Promise(a=>{(0,d.execFile)("npm",["view","commandmate","version"],{encoding:"utf-8",timeout:1e4},(b,c,d)=>{if(b)return"ENOENT"===b.code?void a({success:!1,error:"npm command not found. Install Node.js/npm and try again."}):void a({success:!1,error:e(d)||b.message});let f=e(c);if(!f)return void a({success:!1,error:"npm view returned no version"});a({success:!0,version:f})})});return a.success&&a.version&&g.test(a.version)?a.version:null}async function l(a,b,c){var d,e,g,h;if(j.targetVersion===a){if(null!==j.npmVersion&&(d=j.npmVersion,!(0,f.MQ)(d,a))||c()-j.checkedAt<3e5)return j.npmVersion}j.inFlight||(j.inFlight=(async()=>{try{return await b()}catch{return null}})());let i=j.inFlight,k=await i;return j.inFlight===i&&(j.inFlight=null,e=a,g=k,h=c(),j.targetVersion=e,j.npmVersion=g,j.checkedAt=h),k}async function m(a,b={}){var c;if(!a.hasUpdate)return{hasUpdate:!1,pendingVersion:null};let d=await l(a.latestVersion,b.fetchNpmLatest??k,b.now??Date.now);return null!==d&&(c=a.latestVersion,(0,f.MQ)(d,c))?{hasUpdate:!1,pendingVersion:a.latestVersion}:{hasUpdate:!0,pendingVersion:null}}async function n(a,b={}){let c;if(!h.test(a))return null;try{c=await (b.fetchNpmLatest??k)()}catch{return null}return null===c?null:(0,f.MQ)(a,c)}},54325:(a,b,c)=>{"use strict";c.d(b,{LE:()=>f,Oo:()=>e,ST:()=>d,T4:()=>k,dz:()=>j,r9:()=>h,rx:()=>i,rz:()=>g});let d="client_version",e="version_mismatch";function f(a,b){return!!a&&!!b&&"0.0.0"!==a&&"0.0.0"!==b&&a!==b}let g="chat_turn_progress",h=1e3;function i(a,b=65536){return b<=0?{body:"",truncated:a.length>0}:a.length<=b?{body:a,truncated:!1}:{body:a.slice(a.length-b),truncated:!0}}let j="messages_invalidated",k="model_changed"},78335:()=>{},90164:(a,b,c)=>{"use strict";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`},95736:(a,b,c)=>{"use strict";a.exports=c(44870)},96487:()=>{}};
@@ -1 +1 @@
1
- "use strict";exports.id=6781,exports.ids=[6781],exports.modules={16781:(a,b,c)=>{c.r(b),c.d(b,{AGENT_EVENT_TYPES:()=>n.b0,MAX_CWD_LENGTH:()=>p,applyAgentStopEvent:()=>u,isAgentEventType:()=>n.o0,resolveWorktreeByCwd:()=>s,validateHookCwd:()=>q});var d=c(29021),e=c(33873),f=c(56791),g=c(48524),h=c(66007),i=c(52767),j=c(36486),k=c(33294),l=c(31517),m=c(72626),n=c(62887);let o=(0,m.h)("lib/hooks/agent-event-service"),p=4096;function q(a){if("string"!=typeof a||""===a.trim())return{ok:!1,reason:"empty"};if(a.length>p)return{ok:!1,reason:"too_long"};let b=a;try{b=decodeURIComponent(a)}catch{b=a}return a.includes("\0")||b.includes("\0")?{ok:!1,reason:"nul_byte"}:(0,e.isAbsolute)(a)?r(a)||r(b)?{ok:!1,reason:"traversal"}:{ok:!0,cwd:a}:{ok:!1,reason:"not_absolute"}}function r(a){return a.split("\\"===e.sep?/[\\/]/:"/").some(a=>".."===a)}function s(a,b){let c=t(b);if(null===c)return null;let d=null,e=-1;for(let b of(0,f.getWorktrees)(a)){let a=t(b.path);null!==a&&(0,h.Uc)(c,a)&&a.length>e&&(d=b,e=a.length)}return d}function t(a){try{return(0,d.realpathSync)(a)}catch{return null}}async function u(a,b,c,d){let e;(0,k.recordAgentStopEvent)(b.id,c,d);let{status:f}=await (0,l.DL)(b,c,d),h="captured"===f;try{e=(0,g.MH)(a,b.id,c,d)}catch(a){return o.warn("agent-stop-task-lookup-failed",{worktreeId:b.id,error:a instanceof Error?a.message:String(a)}),{taskId:null,taskEventApplied:!1,verificationRunId:null,structuredHistoryCaptured:h,structuredHistoryOutcome:f}}if(!e)return{taskId:null,taskEventApplied:!1,verificationRunId:null,structuredHistoryCaptured:h,structuredHistoryOutcome:f};let m=!1;try{let b=(0,i.g)(a,e.id,"agent_idle",{source:"hook"});m=null!==b&&null!==b.toStatus}catch(a){o.warn("agent-stop-event-failed",{taskId:e.id,error:a instanceof Error?a.message:String(a)})}if(!e.contract.success.autoVerifyOnStop)return{taskId:e.id,taskEventApplied:m,verificationRunId:null,structuredHistoryCaptured:h,structuredHistoryOutcome:f};let n=null;try{let{runId:a}=await (0,j.AT)({worktreeId:b.id,worktreePath:b.path,instanceId:d,taskId:e.id,trigger:"task"});n=a}catch(a){a instanceof j.Wb||o.error("agent-stop-auto-verify-failed",{taskId:e.id,error:a instanceof Error?a.message:String(a)})}return{taskId:e.id,taskEventApplied:m,verificationRunId:n,structuredHistoryCaptured:h,structuredHistoryOutcome:f}}},31517:(a,b,c)=>{c.d(b,{DL:()=>j,sD:()=>f});var d=c(2734);let e=(0,c(72626).h)("lib/hooks/stop-history-capture"),f=[150,500,2e3,5e3],g=new Set([d.c]);function h(a){return new Promise(b=>{setTimeout(b,a)})}async function i(a,b,c,d,f,g){let i=Date.now();try{for(let[j,k]of g.entries()){await h(k);let l={};if(await a.captureStructuredHistoryTurn(b.id,c,d,f,l))return e.info("stop-history-capture-deferred-captured",{worktreeId:b.id,cliToolId:c,instanceId:d,attempt:j+1,attempts:g.length,elapsedMs:Date.now()-i}),!0;e.debug("stop-history-capture-deferred-open",{worktreeId:b.id,cliToolId:c,instanceId:d,attempt:j+1,attempts:g.length,outcome:l.outcome??"unavailable",elapsedMs:Date.now()-i})}return e.info("stop-history-capture-deferred-exhausted",{worktreeId:b.id,cliToolId:c,instanceId:d,attempts:g.length,elapsedMs:Date.now()-i}),!1}catch(a){return e.warn("stop-history-capture-deferred-failed",{worktreeId:b.id,cliToolId:c,instanceId:d,error:a instanceof Error?a.message:String(a)}),!1}}async function j(a,b,d,k={}){try{let j=await Promise.all([c.e(1503),c.e(8791),c.e(1719),c.e(2119),c.e(2445),c.e(252),c.e(8800),c.e(7905),c.e(9731),c.e(8728),c.e(8918)]).then(c.bind(c,28918));if(!j.isPullTranscriptHistory(b))return{status:"unavailable"};let l={worktreePath:a.path,transcriptPathHint:null},m={};if(await j.captureStructuredHistoryTurn(a.id,b,d,l,m))return{status:"captured"};let n=()=>"not_yet_closed"===m.outcome?Promise.resolve(!0):j.hasStructuredHistoryTranscript(a.id,b,d,l);if(g.has(b)){let c=k.deferredDelaysMs??f;if(0===c.length||!await n())return{status:"unavailable"};let g=i(j,a,b,d,l,c);return e.info("stop-history-capture-deferred",{worktreeId:a.id,cliToolId:b,instanceId:d,delaysMs:c}),{status:"deferred",deferred:g}}let o=k.retryDelayMs??500;if(o<=0||!await n())return{status:"unavailable"};let p=Math.max(1,k.maxAttempts??3);for(let c=2;c<=p;c+=1){await h(o);let f={},g=await j.captureStructuredHistoryTurn(a.id,b,d,l,f);if(e.debug("stop-history-capture-retried",{worktreeId:a.id,cliToolId:b,instanceId:d,attempt:c,maxAttempts:p,captured:g,outcome:f.outcome??"unavailable"}),g)return{status:"captured"}}return{status:"unavailable"}}catch(c){return e.warn("stop-history-capture-failed",{worktreeId:a.id,cliToolId:b,instanceId:d,error:c instanceof Error?c.message:String(c)}),{status:"unavailable"}}}},52767:(a,b,c)=>{c.d(b,{r:()=>i,g:()=>h});var d=c(48524),e=c(87009),f=c(72626);let g=(0,f.h)("lib/tasks/task-transition-service");function h(a,b,c,f){let h=a.transaction(()=>{let g=(0,d.gg)(a,b);if(!g)return null;let h=g.status,i=function(a,b){switch(a){case"pending":switch(b){case"message_sent":return"running";case"send_failed":case"cancel":return"cancelled";default:return null}case"running":switch(b){case"prompt_detected":return"waiting_input";case"agent_idle":return"running";case"verify_started":return"verifying";case"send_failed":return"failed";case"cancel":return"cancelled";default:return null}case"waiting_input":switch(b){case"prompt_answered_auto":case"prompt_answered_human":case"agent_idle":return"running";case"verify_started":return"verifying";case"cancel":return"cancelled";default:return null}case"verifying":switch(b){case"verify_passed":return"succeeded";case"verify_failed":return"failed";case"verify_not_started":return"not_started";case"cancel":return"cancelled";default:return null}case"failed":case"not_started":switch(b){case"message_sent":return"running";case"verify_started":return"verifying";case"cancel":return"cancelled";default:return null}default:return null}}(h,c),j=Date.now(),k=(0,e.P)(a,{taskId:b,event:c,fromStatus:h,toStatus:i,payload:f,createdAt:j});return null===i?{task:g,fromStatus:h,toStatus:null,eventId:k}:{task:(0,d.xZ)(a,b,i,f?.runId===void 0?{}:{lastVerificationRunId:f.runId}),fromStatus:h,toStatus:i,eventId:k}})();return null===h?g.warn("task-event-unknown-task",{taskId:b,event:c}):null===h.toStatus&&g.warn("task-event-rejected",{taskId:b,event:c,fromStatus:h.fromStatus}),h}function i(a,b,c,e,f,i){try{let g=(0,d.MH)(a,b,c,e);if(!g)return null;return h(a,g.id,f,i)}catch(a){return g.warn("task-event-failed",{worktreeId:b,cliToolId:c,instanceId:e,event:f,error:a instanceof Error?a.message:String(a)}),null}}}};
1
+ "use strict";exports.id=6781,exports.ids=[6781],exports.modules={16781:(a,b,c)=>{c.r(b),c.d(b,{AGENT_EVENT_TYPES:()=>n.b0,MAX_CWD_LENGTH:()=>p,applyAgentStopEvent:()=>u,isAgentEventType:()=>n.o0,resolveWorktreeByCwd:()=>s,validateHookCwd:()=>q});var d=c(29021),e=c(33873),f=c(56791),g=c(48524),h=c(66007),i=c(52767),j=c(36486),k=c(33294),l=c(31517),m=c(72626),n=c(62887);let o=(0,m.h)("lib/hooks/agent-event-service"),p=4096;function q(a){if("string"!=typeof a||""===a.trim())return{ok:!1,reason:"empty"};if(a.length>p)return{ok:!1,reason:"too_long"};let b=a;try{b=decodeURIComponent(a)}catch{b=a}return a.includes("\0")||b.includes("\0")?{ok:!1,reason:"nul_byte"}:(0,e.isAbsolute)(a)?r(a)||r(b)?{ok:!1,reason:"traversal"}:{ok:!0,cwd:a}:{ok:!1,reason:"not_absolute"}}function r(a){return a.split("\\"===e.sep?/[\\/]/:"/").some(a=>".."===a)}function s(a,b){let c=t(b);if(null===c)return null;let d=null,e=-1;for(let b of(0,f.getWorktrees)(a)){let a=t(b.path);null!==a&&(0,h.Uc)(c,a)&&a.length>e&&(d=b,e=a.length)}return d}function t(a){try{return(0,d.realpathSync)(a)}catch{return null}}async function u(a,b,c,d){let e;(0,k.recordAgentStopEvent)(b.id,c,d);let{status:f}=await (0,l.DL)(b,c,d),h="captured"===f;try{e=(0,g.MH)(a,b.id,c,d)}catch(a){return o.warn("agent-stop-task-lookup-failed",{worktreeId:b.id,error:a instanceof Error?a.message:String(a)}),{taskId:null,taskEventApplied:!1,verificationRunId:null,structuredHistoryCaptured:h,structuredHistoryOutcome:f}}if(!e)return{taskId:null,taskEventApplied:!1,verificationRunId:null,structuredHistoryCaptured:h,structuredHistoryOutcome:f};let m=!1;try{let b=(0,i.g)(a,e.id,"agent_idle",{source:"hook"});m=null!==b&&null!==b.toStatus}catch(a){o.warn("agent-stop-event-failed",{taskId:e.id,error:a instanceof Error?a.message:String(a)})}if(!e.contract.success.autoVerifyOnStop)return{taskId:e.id,taskEventApplied:m,verificationRunId:null,structuredHistoryCaptured:h,structuredHistoryOutcome:f};let n=null;try{let{runId:a}=await (0,j.AT)({worktreeId:b.id,worktreePath:b.path,instanceId:d,taskId:e.id,trigger:"task"});n=a}catch(a){a instanceof j.Wb||o.error("agent-stop-auto-verify-failed",{taskId:e.id,error:a instanceof Error?a.message:String(a)})}return{taskId:e.id,taskEventApplied:m,verificationRunId:n,structuredHistoryCaptured:h,structuredHistoryOutcome:f}}},31517:(a,b,c)=>{c.d(b,{DL:()=>j,sD:()=>f});var d=c(2734);let e=(0,c(72626).h)("lib/hooks/stop-history-capture"),f=[150,500,2e3,5e3],g=new Set([d.c]);function h(a){return new Promise(b=>{setTimeout(b,a)})}async function i(a,b,c,d,f,g){let i=Date.now();try{for(let[j,k]of g.entries()){await h(k);let l={};if(await a.captureStructuredHistoryTurn(b.id,c,d,f,l))return e.info("stop-history-capture-deferred-captured",{worktreeId:b.id,cliToolId:c,instanceId:d,attempt:j+1,attempts:g.length,elapsedMs:Date.now()-i}),!0;e.debug("stop-history-capture-deferred-open",{worktreeId:b.id,cliToolId:c,instanceId:d,attempt:j+1,attempts:g.length,outcome:l.outcome??"unavailable",elapsedMs:Date.now()-i})}return e.info("stop-history-capture-deferred-exhausted",{worktreeId:b.id,cliToolId:c,instanceId:d,attempts:g.length,elapsedMs:Date.now()-i}),!1}catch(a){return e.warn("stop-history-capture-deferred-failed",{worktreeId:b.id,cliToolId:c,instanceId:d,error:a instanceof Error?a.message:String(a)}),!1}}async function j(a,b,d,k={}){try{let j=await Promise.all([c.e(1503),c.e(8791),c.e(1719),c.e(2119),c.e(2445),c.e(252),c.e(8800),c.e(7905),c.e(255),c.e(9731),c.e(8728),c.e(8918)]).then(c.bind(c,28918));if(!j.isPullTranscriptHistory(b))return{status:"unavailable"};let l={worktreePath:a.path,transcriptPathHint:null},m={};if(await j.captureStructuredHistoryTurn(a.id,b,d,l,m))return{status:"captured"};let n=()=>"not_yet_closed"===m.outcome?Promise.resolve(!0):j.hasStructuredHistoryTranscript(a.id,b,d,l);if(g.has(b)){let c=k.deferredDelaysMs??f;if(0===c.length||!await n())return{status:"unavailable"};let g=i(j,a,b,d,l,c);return e.info("stop-history-capture-deferred",{worktreeId:a.id,cliToolId:b,instanceId:d,delaysMs:c}),{status:"deferred",deferred:g}}let o=k.retryDelayMs??500;if(o<=0||!await n())return{status:"unavailable"};let p=Math.max(1,k.maxAttempts??3);for(let c=2;c<=p;c+=1){await h(o);let f={},g=await j.captureStructuredHistoryTurn(a.id,b,d,l,f);if(e.debug("stop-history-capture-retried",{worktreeId:a.id,cliToolId:b,instanceId:d,attempt:c,maxAttempts:p,captured:g,outcome:f.outcome??"unavailable"}),g)return{status:"captured"}}return{status:"unavailable"}}catch(c){return e.warn("stop-history-capture-failed",{worktreeId:a.id,cliToolId:b,instanceId:d,error:c instanceof Error?c.message:String(c)}),{status:"unavailable"}}}},52767:(a,b,c)=>{c.d(b,{r:()=>i,g:()=>h});var d=c(48524),e=c(87009),f=c(72626);let g=(0,f.h)("lib/tasks/task-transition-service");function h(a,b,c,f){let h=a.transaction(()=>{let g=(0,d.gg)(a,b);if(!g)return null;let h=g.status,i=function(a,b){switch(a){case"pending":switch(b){case"message_sent":return"running";case"send_failed":case"cancel":return"cancelled";default:return null}case"running":switch(b){case"prompt_detected":return"waiting_input";case"agent_idle":return"running";case"verify_started":return"verifying";case"send_failed":return"failed";case"cancel":return"cancelled";default:return null}case"waiting_input":switch(b){case"prompt_answered_auto":case"prompt_answered_human":case"agent_idle":return"running";case"verify_started":return"verifying";case"cancel":return"cancelled";default:return null}case"verifying":switch(b){case"verify_passed":return"succeeded";case"verify_failed":return"failed";case"verify_not_started":return"not_started";case"cancel":return"cancelled";default:return null}case"failed":case"not_started":switch(b){case"message_sent":return"running";case"verify_started":return"verifying";case"cancel":return"cancelled";default:return null}default:return null}}(h,c),j=Date.now(),k=(0,e.P)(a,{taskId:b,event:c,fromStatus:h,toStatus:i,payload:f,createdAt:j});return null===i?{task:g,fromStatus:h,toStatus:null,eventId:k}:{task:(0,d.xZ)(a,b,i,f?.runId===void 0?{}:{lastVerificationRunId:f.runId}),fromStatus:h,toStatus:i,eventId:k}})();return null===h?g.warn("task-event-unknown-task",{taskId:b,event:c}):null===h.toStatus&&g.warn("task-event-rejected",{taskId:b,event:c,fromStatus:h.fromStatus}),h}function i(a,b,c,e,f,i){try{let g=(0,d.MH)(a,b,c,e);if(!g)return null;return h(a,g.id,f,i)}catch(a){return g.warn("task-event-failed",{worktreeId:b,cliToolId:c,instanceId:e,event:f,error:a instanceof Error?a.message:String(a)}),null}}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=6784,exports.ids=[6784],exports.modules={2412:(a,b,c)=>{c.d(b,{Qb:()=>f,tR:()=>g});var d=c(46065);let e=Symbol("default-branch-unresolved");async function f(a){let b=await (0,d.Bc)(["symbolic-ref","refs/remotes/origin/HEAD","--short"],a);if(null===b)return e;let c=b.trim();return c.startsWith("origin/")?c.slice(7):null}async function g(a){let b=await f(a);return"string"==typeof b?b:null}},3421:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},26833:(a,b,c)=>{c.d(b,{Iz:()=>g,X0:()=>h,om:()=>i});var d=c(65417),e=c(46065),f=c(63271);async function g(a,b){await (0,e.dX)(a,async()=>{await (0,e.rS)(["add","--",...b],a,d.Ev)})}async function h(a,b){await (0,e.dX)(a,async()=>{await (0,e.rS)(["restore","--staged","--",...b],a,d.Ev)})}async function i(a,b,c){await (0,e.dX)(a,async()=>{let g=["commit","-m",b];c&&g.push("--amend"),g.push("--");try{await (0,e.rS)(g,a,d.Ev)}catch(b){let a=b instanceof Error?b.message:"";if(/nothing to commit|no changes added to commit|nothing added to commit/i.test(a))throw new f.mZ("Nothing to commit");throw b}})}},39988:(a,b,c)=>{c.d(b,{SN:()=>n,jr:()=>i,lY:()=>m,nX:()=>l});var d=c(65417),e=c(46065),f=c(2412),g=c(63271);function h(a){let b=new Map;if(!a)return b;let c=null;for(let d of a.split("\n")){let a=d.trimEnd();if(a.startsWith("worktree "))c=a.slice(9).trim();else if(a.startsWith("branch ")&&c){let d=a.slice(7).trim(),e=d.startsWith("refs/heads/")?d.slice(11):d;e&&b.set(e,c)}else""===a&&(c=null)}return b}async function i(a,b="local"){let c="local"===b||"all"===b,d="remote"===b||"all"===b,[f,g,j,k,l]=await Promise.all([c?(0,e.Bc)(["branch","--list"],a):Promise.resolve(""),d?(0,e.Bc)(["branch","-r"],a):Promise.resolve(""),(0,e.Bc)(["symbolic-ref","refs/remotes/origin/HEAD","--short"],a),(0,e.Bc)(["worktree","list","--porcelain"],a),(0,e.Bc)(["for-each-ref","--format=%(refname:short)%09%(upstream:short)%09%(upstream:track)","refs/heads"],a)]),m=j?j.trim():null,n=h(k??""),o=function(a){let b=new Map;if(!a)return b;for(let c of a.split("\n")){if(!c.trim())continue;let[a,d="",e=""]=c.split(" ");if(!a)continue;let f=d.trim()||null,g=null;if(f){let a=e.match(/ahead (\d+)/),b=e.match(/behind (\d+)/);a||b?g={ahead:a?parseInt(a[1],10):0,behind:b?parseInt(b[1],10):0}:/gone/.test(e)||(g={ahead:0,behind:0})}b.set(a,{upstream:f,aheadBehind:g})}return b}(l??""),p=[];if(c)for(let{name:a,isCurrent:b}of function(a){let b=[];if(!a)return b;for(let c of a.split("\n")){let a=c.trimEnd();if(!a.trim())continue;let d=a.startsWith("* "),e=a.replace(/^[*+]?\s+/,"").trim();!e||e.startsWith("(")||b.push({name:e,isCurrent:d})}return b}(f??"")){let c=o.get(a);p.push({name:a,isCurrent:b,isRemote:!1,isDefault:null!==m&&m===`origin/${a}`,upstream:c?.upstream??null,aheadBehind:c?.aheadBehind??null,checkedOutWorktreePath:n.get(a)??null})}if(d)for(let a of function(a){let b=[];if(!a)return b;for(let c of a.split("\n")){let a=c.trim();a&&(a.includes("->")||b.push(a))}return b}(g??""))p.push({name:a,isCurrent:!1,isRemote:!0,isDefault:null!==m&&m===a,upstream:null,aheadBehind:null,checkedOutWorktreePath:null});return p}async function j(a,b){let c=await (0,e.Bc)(["worktree","list","--porcelain"],a);if(null===c)return null;let d=h(c).get(b);return d&&d!==a?d:null}function k(a){if(a instanceof g.y0||a instanceof g.wo||a instanceof g.rI)throw a;let b=a instanceof Error?a.message:String(a),c=a?.stderr??"",d=`${c} ${b}`;if(/did not match|not a valid ref|not found|unknown revision|invalid reference|couldn't find remote ref/i.test(d))throw new g.ur("Branch not found");throw a}async function l(a,b){let{branch:c,createIfMissing:f=!1,from:h,force:i=!1}=b,l=await j(a,c);if(l)throw new g.oK("Branch is checked out in another worktree",l);if(!i){let b=await (0,e.Bc)(["status","--porcelain"],a);if(null===b)throw new g.y0("Could not verify working tree state");if(b.length>0)throw new g.d_("Working tree has uncommitted changes")}await (0,e.dX)(a,async()=>{let b;f?(b=["switch","-c",c],h&&b.push(h),b.push("--")):b=c.startsWith("origin/")?["switch","-c",c.slice(7),"--track",c,"--"]:i?["checkout","-f",c,"--"]:["switch",c,"--"];try{await (0,e.rS)(b,a,d.Ev)}catch(a){k(a)}})}async function m(a,b){let{name:c,from:f}=b;await (0,e.dX)(a,async()=>{let b=["branch",c];f&&b.push(f),b.push("--");try{await (0,e.rS)(b,a,d.Ev)}catch(a){k(a)}})}async function n(a,b){let{name:c,force:h=!1}=b,i=await (0,e.Bc)(["rev-parse","--abbrev-ref","HEAD"],a);if(null!==i&&i.trim()===c)throw new g.MC("Cannot delete the current branch");let j=await (0,f.tR)(a);if(null!==j&&j===c)throw new g.qb("Cannot delete the default branch");await (0,e.dX)(a,async()=>{try{await (0,e.rS)(["branch",h?"-D":"-d",c,"--"],a,d.Ev)}catch(d){let a=d instanceof Error?d.message:String(d),b=d?.stderr??"",c=`${b} ${a}`;if(/not fully merged/i.test(c))throw new g.A6("Branch is not fully merged");k(d)}})}},59082:(a,b,c)=>{c.d(b,{C4:()=>l,FW:()=>j,Iz:()=>k,Z3:()=>m});var d=c(65417),e=c(72626),f=c(46065),g=c(2412),h=c(63271);let i=(0,e.h)("git-remote");async function j(a,b){let{remote:c="origin",prune:e}=b,g=["fetch"];e&&g.push("--prune"),g.push(c,"--"),await (0,f.sl)(g,a,d.dw)}async function k(a,b,c){await (0,f.rS)(["remote","add",b,c],a,5e3)}async function l(a,b){let{remote:c="origin",branch:e,rebase:g,ffOnly:h}=b;return(0,f.dX)(a,async()=>{let b=["pull"];return g&&b.push("--rebase"),h&&b.push("--ff-only"),b.push(c),e&&b.push(e),b.push("--"),(0,f.mY)(b,a,d.A$,!0)})}async function m(a,b){let{remote:c="origin",branch:e,force:j,forceWithLease:k,setUpstream:l}=b;if(j||k){let b=await (0,g.tR)(a);if(null!==b&&b===e)throw new h.rm;i.warn("git:danger:force-push",{operation:"push",worktreePath:a,branch:e,forceWithLease:!0===k,timestamp:new Date().toISOString()})}await (0,f.dX)(a,async()=>{let b=["push"];k?b.push("--force-with-lease"):j&&b.push("--force"),l&&b.push("-u"),b.push(c,`${e}:refs/heads/${e}`,"--"),await (0,f.sl)(b,a,d.fL)})}},79051:(a,b,c)=>{c.d(b,{nX:()=>G.nX,z0:()=>z,lY:()=>G.lY,SN:()=>G.SN,Pt:()=>B,ID:()=>n,Wz:()=>D,NM:()=>w,ac:()=>x,$G:()=>m,$Z:()=>o,t$:()=>s,mk:()=>J,Lz:()=>E,om:()=>F.om,FW:()=>S.FW,C4:()=>S.C4,Z3:()=>S.Z3,S7:()=>Q,lw:()=>R,x7:()=>d.x7,jr:()=>G.jr,pc:()=>F.Iz,Ey:()=>M,X_:()=>N,VM:()=>L,oC:()=>K,X0:()=>F.X0});var d=c(63271),e=c(46065),f=c(2412),g=c(33873),h=c.n(g),i=c(79748),j=c(65417),k=c(72626);let l=(0,k.h)("git-status");async function m(a,b){let c,[d,f,g]=await Promise.all([(0,e.Bc)(["rev-parse","--abbrev-ref","HEAD"],a),(0,e.Bc)(["rev-parse","--short","HEAD"],a),(0,e.Bc)(["status","--porcelain"],a)]);c=null===d?"(unknown)":"HEAD"===d?"(detached HEAD)":d;let h=null===g;return{currentBranch:c,initialBranch:b,isBranchMismatch:null!==b&&"(unknown)"!==c&&"(detached HEAD)"!==c&&c!==b,commitHash:f??"(unknown)",isDirty:!h&&g.length>0,...h?{statusUnknown:!0}:{}}}async function n(a){let b=await (0,e.TT)(["rev-list","--left-right","--count","@{upstream}...HEAD"],a);if(!b.ok){var c;let a=b.timedOut?"error":(c=b.stderr,/no upstream/i.test(c)?"no_upstream":/HEAD does not point to a branch|not point to a branch/i.test(c)?"detached":/unknown revision|ambiguous argument|bad revision/i.test(c)?"upstream_gone":"error");return l.debug("git:ahead-behind-unavailable",{reason:a}),{aheadBehind:null,reason:a}}let d=b.stdout.split(" ");if(2!==d.length)return{aheadBehind:null,reason:"error"};let f=parseInt(d[0],10),g=parseInt(d[1],10);return Number.isInteger(f)&&Number.isInteger(g)?{aheadBehind:{ahead:g,behind:f},reason:null}:{aheadBehind:null,reason:"error"}}async function o(a){let b=await (0,e.Bc)(["rev-parse","--git-path","FETCH_HEAD","--git-common-dir"],a);if(null===b)return null;let c=b.split("\n").map(a=>a.trim()).filter(a=>a.length>0);if(0===c.length)return null;let d=new Set([h().resolve(a,c[0])]);c[1]&&d.add(h().resolve(a,c[1],"FETCH_HEAD"));let f=null;for(let a of d)try{let{mtimeMs:b}=await (0,i.stat)(a);(null===f||b>f)&&(f=b)}catch{}return null===f?null:Math.round(f)}function p(a){switch(a){case"A":return"added";case"D":return"deleted";case"R":case"C":return"renamed";default:return"modified"}}let q=new Set(["DD","AU","UD","UA","DU","AA","UU"]);function r(a){let b=a.indexOf(" -> ");return -1!==b?a.slice(b+4):a}async function s(a){return function(a){let b=[],c=[],d=[];if(!a)return{staged:b,unstaged:c,untracked:d};for(let e of a.split("\n")){if(e.length<4)continue;let a=e[0],f=e[1],g=e.slice(3);if(!g)continue;if("?"===a&&"?"===f){d.push({path:r(g),status:"untracked"});continue}let h=r(g);if("U"===a||"U"===f||q.has(`${a}${f}`)){c.push({path:h,status:"unmerged"});continue}" "!==a&&"?"!==a&&b.push({path:h,status:p(a)})," "!==f&&"?"!==f&&c.push({path:h,status:p(f)})}return{staged:b,unstaged:c,untracked:d}}(await (0,e.rS)(["status","--porcelain"],a,j.Ev))}var t=c(29021),u=c.n(t);let v=(0,k.h)("git-log");async function w(a,b=50,c=0){let d=(await (0,e.rS)(["log",`--max-count=${b}`,`--skip=${c}`,"--format=%H%n%h%n%s%n%an%n%aI","--"],a,e.t1)).trim();if(!d)return[];let f=d.split("\n"),g=[];for(let a=0;a+4<f.length;a+=5)g.push({hash:f[a],shortHash:f[a+1],message:f[a+2],author:f[a+3],date:f[a+4]});return g}async function x(a,b){try{let c=(await (0,e.rS)(["log","-1","--format=%H%n%h%n%s%n%an%n%aI",b,"--"],a,e.t1)).trim().split("\n");if(c.length<5)return null;let d={hash:c[0],shortHash:c[1],message:c[2],author:c[3],date:c[4]},f=await (0,e.rS)(["diff-tree","--no-commit-id","-r","--name-status",b,"--"],a,e.t1),g=function(a){let b=[];for(let c of a.trim().split("\n")){if(!c.trim())continue;let a=c.split(" ");if(a.length<2)continue;let d=a[0].trim(),e=a[a.length-1].trim();d.startsWith("R")?b.push({path:e,status:"renamed"}):"A"===d?b.push({path:e,status:"added"}):"D"===d?b.push({path:e,status:"deleted"}):b.push({path:e,status:"modified"})}return b}(f);return{commit:d,files:g}}catch(b){if(b instanceof d.y0||b instanceof d.wo)throw b;let a=b instanceof Error?b.message:"";if(a.includes("unknown revision")||a.includes("bad object"))return null;throw b}}async function y(a,b,c){if(!u().existsSync(a))return[];try{let{stdout:d}=await (0,e.mf)("git",["log","--all",`--since=${b}`,`--until=${c}`,`--format=%h\x1f%s\x1f%an`,"--"],{cwd:a,timeout:5e3}),f=d.trim();if(!f)return[];let g=[];for(let a of f.split("\n")){let b=a.split("\x1f");3===b.length&&g.push({shortHash:b[0],message:b[1],author:b[2]})}return g}catch(b){return v.error("git:commit-log-failed",{repoPath:a,error:b instanceof Error?b.message:"Unknown error"}),[]}}async function z(a,b,c){let d=await Promise.allSettled(a.map(async a=>({id:a.id,name:a.name,commits:await y(a.path,b,c)}))),e=new Map;for(let a of d)"fulfilled"===a.status&&a.value.commits.length>0&&e.set(a.value.id,{name:a.value.name,commits:a.value.commits});return e}let A=/(?:(?:closes|fixes|resolves)\s+)?#(\d+)/gi;function B(a){let b=new Set;for(let c of a){let a;for(A.lastIndex=0;null!==(a=A.exec(c));)b.add(parseInt(a[1],10))}return Array.from(b).sort((a,b)=>a-b)}let C=(0,k.h)("git-diff");async function D(a,b,c){try{return(await (0,e.rS)(["show",b,"--",c],a,e.t1)).trim()||null}catch(a){if(a instanceof d.y0||a instanceof d.wo)throw a;return null}}async function E(a,b,c){let f=function(a,b){switch(b){case"staged":return["diff","--cached","--",a];case"untracked":return["diff","--no-index","--","/dev/null",a];default:return["diff","--",a]}}(b,c);try{let{stdout:b}=await (0,e.mf)("git",f,{cwd:a,timeout:e.t1});return b.trim()||null}catch(a){if(a.killed||"ERR_CHILD_PROCESS_EXEC_TIMEOUT"===a.code||"ETIMEDOUT"===a.code)throw new d.y0(`Git command timed out after ${e.t1}ms`);if((a.stderr||a.message||"").includes("not a git repository"))throw new d.wo("Not a git repository");if("string"==typeof a.stdout)return a.stdout.trim()||null;throw C.error("git:working-diff-failed",{args:f.join(" "),error:a.message}),Error("Failed to execute git command")}}var F=c(26833),G=c(39988);let H=(0,k.h)("git-stash"),I=/^stash@\{(\d+)\}$/;async function J(a){let b=await (0,e.Bc)(["stash","list","--format=%gd%x09%s%x09%cI%x09%H"],a);if(null===b)return[];let c=[];if(!b||!b.trim())return c;for(let a of b.split("\n")){if(!a.trim())continue;let[b="",d="",e="",f=""]=a.split(" "),g=b.match(I);g&&c.push({index:parseInt(g[1],10),message:d,branch:function(a){let b=a.match(/^WIP on ([^:]+):/);if(b)return b[1].trim()||null;let c=a.match(/^On ([^:]+):/);return c&&c[1].trim()||null}(d),date:e,sha:f})}return c}async function K(a,b){let{message:c,includeUntracked:f}=b;await (0,e.dX)(a,async()=>{let b=["stash","push"];f&&b.push("--include-untracked"),c&&b.push("-m",c),b.push("--");try{await (0,e.rS)(b,a,j.Ev)}catch(c){let a=c instanceof Error?c.message:"",b=c?.stderr??"";if(/No local changes to save|No stash entries|No local changes/i.test(`${b} ${a}`))throw new d.s$("No local changes to stash");throw c}})}async function L(a,b){return(0,e.dX)(a,async()=>{let c=await (0,e.mY)(["stash","pop","--",`stash@{${b}}`],a);return c.conflict?{...c,stashRetained:!0}:c})}async function M(a,b){return(0,e.dX)(a,async()=>(0,e.mY)(["stash","apply","--",`stash@{${b}}`],a))}async function N(a,b){H.warn("git:danger:stash-drop",{operation:"stash-drop",worktreePath:a,index:b,timestamp:new Date().toISOString()}),await (0,e.dX)(a,async()=>{await (0,e.rS)(["stash","drop","--",`stash@{${b}}`],a,j.Ev)})}let O=(0,k.h)("git-reset");async function P(a){let b=await (0,e.Bc)(["rev-parse","--abbrev-ref","HEAD"],a);if(null===b)throw new d.y0("Could not verify current branch");let c=b.trim(),g=await (0,f.Qb)(a);return"string"==typeof g?g===c:null!==g&&("main"===c||"master"===c)}async function Q(a,b){let{target:c,mode:f}=b;if("hard"===f){if(await P(a))throw O.warn("git:danger:hard-reset-blocked",{operation:"reset",worktreePath:a,target:c,mode:f,timestamp:new Date().toISOString()}),new d.BN("Cannot hard-reset the default branch");O.warn("git:danger:hard-reset",{operation:"reset",worktreePath:a,target:c,mode:f,timestamp:new Date().toISOString()})}await (0,e.dX)(a,async()=>{await (0,e.rS)(["reset",`--${f}`,c,"--"],a,j.Ev)})}async function R(a,b){let{commitHash:c,noCommit:d}=b;return O.warn("git:danger:revert",{operation:"revert",worktreePath:a,commitHash:c,noCommit:!0===d,timestamp:new Date().toISOString()}),(0,e.dX)(a,async()=>{let b=["revert"];return d&&b.push("--no-commit"),b.push(c,"--"),(0,e.mY)(b,a)})}var S=c(59082)},95736:(a,b,c)=>{a.exports=c(44870)}};
@@ -1,7 +1,7 @@
1
1
  exports.id=8581,exports.ids=[8581],exports.modules={762:(a,b,c)=>{Promise.resolve().then(c.bind(c,96908))},1102:(a,b,c)=>{"use strict";c.d(b,{m_:()=>n});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))}function h(a,b,c,d){switch(a){case"top":return b.top-c.height-8<4;case"bottom":return b.top+b.height+8+c.height>d.height-4;case"left":return b.left-c.width-8<4;default:return b.left+b.width+8+c.width>d.width-4}}function i(a,b,c){switch(a){case"top":return Math.max(0,b.top-8-4);case"bottom":return Math.max(0,c.height-4-(b.top+b.height+8));case"left":return Math.max(0,b.left-8-4);default:return Math.max(0,c.width-4-(b.left+b.width+8))}}function j(a){return{maxWidth:`${a}px`,whiteSpace:"normal",overflowWrap:"anywhere"}}c(72957);let k={maxWidth:"max-width",whiteSpace:"white-space",overflowWrap:"overflow-wrap"};function l(a,b){let c=null===b?null:j(b);for(let[b,d]of Object.entries(k))null===c?a.style.removeProperty(d):a.style.setProperty(d,c[b])}let m={top:-9999,left:-9999};function n({content:a,placement:b="right",delay:c=100,children:k,className:n,zIndex:o,fallbackPlacement:p}){let[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(null),y=(0,e.useRef)(null),z=(0,e.useRef)(null),A=(0,e.useRef)(null),B=(0,e.useCallback)(()=>{null!==A.current&&(clearTimeout(A.current),A.current=null)},[]),C=(0,e.useCallback)(()=>{B(),A.current=setTimeout(()=>{r(!0),A.current=null},c)},[c,B]),D=(0,e.useCallback)(()=>{B(),r(!1)},[B]),E=(0,e.useCallback)(()=>{t(!0)},[]),F=(0,e.useCallback)(()=>{t(!1)},[]);return(0,e.useCallback)(()=>{B(),r(!1),t(!1)},[B]),(0,e.useCallback)(()=>{let a=y.current,c=z.current;if(!a||!c)return;let d=a.getBoundingClientRect(),e={top:d.top,left:d.left,width:d.width,height:d.height},f={width:window.innerWidth,height:window.innerHeight};l(c,null);let j=c.getBoundingClientRect(),k=function(a,b,c,d,e){let f=a=>"left"===a||"right"===a;if(void 0===e||e===a||!f(a)||!f(e)||!h(a,b,c,d)||!h(e,b,c,d))return null;let g=i(a,b,d),j=i(e,b,d),k=j>g?e:a,l=Math.floor(Math.max(g,j));return l>=80?{placement:k,maxWidth:l}:null}(b,e,{width:j.width,height:j.height},f,p);k&&(l(c,k.maxWidth),j=c.getBoundingClientRect()),x(k?k.maxWidth:null),v(function a(b,c,d,e,f){let i,j;if(void 0!==f&&f!==b&&h(b,c,d,e)&&!h(f,c,d,e))return a(f,c,d,e);let k=c.left+c.width/2-d.width/2,l=c.top+c.height/2-d.height/2;switch(b){case"top":i=c.top-d.height-8,j=k;break;case"bottom":i=c.top+c.height+8,j=k;break;case"left":i=l,j=c.left-d.width-8;break;default:i=l,j=c.left+c.width+8}return{top:g(i,d.height,e.height),left:g(j,d.width,e.width)}}(k?k.placement:b,e,{width:j.width,height:j.height},f,k?void 0:p))},[b,p]),(0,d.jsxs)("span",{ref:y,"data-testid":"tooltip-wrapper",className:n?`relative inline-flex ${n}`:"relative inline-flex",tabIndex:-1,onMouseEnter:C,onMouseLeave:D,onFocus:E,onBlur:F,children:[k,(q||s)&&"undefined"!=typeof document&&(0,f.createPortal)((0,d.jsx)("span",{ref:z,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:{...u??m,...void 0===o?{}:{zIndex:o},...null===w?{}:j(w)},children:a}),document.body)]})}},1483:(a,b,c)=>{var d={"./en/keyboardShortcuts.json":[53722,1341],"./ja/keyboardShortcuts.json":[88356,8356]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=1483,a.exports=e},1637:(a,b,c)=>{"use strict";c.d(b,{Ej:()=>k,Jd:()=>h,Mq:()=>j,rH:()=>i});var d=c(21124),e=c(38301),f=c(20481),g=c(22317);let h="bg-transparent border-2 border-muted-foreground",i="status.unknown";function j(a,b){return!0===b&&"ready"===a}let k=(0,e.memo)(function({status:a,label:b,waitingKind:c,unclassified:e}){let k=(0,f.c)("common"),l=j(a,e);return(0,d.jsx)(g.m,{"data-testid":"status-indicator",status:a,label:l?b??k(i):b,waitingKind:c,size:"sm",className:l?h:void 0,"data-unclassified":l?"true":void 0})})},3839:(a,b,c)=>{"use strict";c.d(b,{K:()=>o,m:()=>p});var d=c(21124),e=c(38301),f=c(20481),g=c(38882),h=c(59405),i=c(12927),j=c(10290),k=c(63474),l=c(63156),m=c(11010),n=c(20316);let o="data-branch-row-actions",p=(0,e.memo)(function({branch:a,isSelected:b,onOpenChange:c,worktreeStatus:p=null,onWorktreeStatusChange:q}){let r=(0,f.c)("common"),s=(0,f.c)("worktree"),{showToast:t}=(0,k.dj)(),u=(0,e.useCallback)(async a=>{try{await (0,l.l)(a),t(r("branchItem.copied"),"success")}catch{t(r("branchItem.copyFailed"),"error")}},[t,r]);return(0,d.jsxs)(j.rI,{onOpenChange:c,children:[(0,d.jsx)(j.ty,{asChild:!0,children:(0,d.jsx)("button",{type:"button","data-testid":"branch-row-actions","aria-label":r("branchItem.actions",{name:a.name}),title:r("branchItem.actions",{name:a.name}),className:`absolute right-3 top-[5px] flex h-6 w-6 items-center justify-center rounded-md
2
2
  text-sidebar-muted transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground
3
3
  focus:outline-none focus-visible:ring-2 focus-visible:ring-ring
4
- data-[state=open]:text-sidebar-foreground ${b?"":"[@media(hover:none)]:hidden"}`,children:(0,d.jsx)(g.A,{className:"h-4 w-4","aria-hidden":"true"})})}),(0,d.jsxs)(j.SQ,{align:"end",[o]:"",onEscapeKeyDown:a=>a.stopPropagation(),children:[(0,d.jsx)(j._2,{asChild:!0,children:(0,d.jsx)("a",{href:`/worktrees/${a.id}`,target:"_blank",rel:"noopener noreferrer",children:r("branchItem.openInNewTab")})}),(0,d.jsx)(j._2,{onSelect:()=>void u(a.name),children:r("branchItem.copyBranchName")}),a.worktreePath&&(0,d.jsx)(j._2,{onSelect:()=>void u(a.worktreePath??""),children:r("branchItem.copyPath")}),q&&(0,d.jsxs)(i.Pb,{children:[(0,d.jsxs)(i.ZP,{"data-testid":"branch-row-status",className:"relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-muted data-[state=open]:bg-muted",children:[(0,d.jsx)("span",{className:"flex-1",children:r("branchItem.status")}),(0,d.jsx)("span",{"data-testid":"branch-row-status-current",className:"text-xs text-muted-foreground",children:s((0,n.Zh)(p))}),(0,d.jsx)(h.A,{className:"h-3.5 w-3.5 text-muted-foreground","aria-hidden":"true"})]}),(0,d.jsx)(i.ZL,{children:(0,d.jsx)(i.G5,{[o]:"",sideOffset:4,collisionPadding:8,style:{zIndex:m.M.POPOVER},className:"min-w-[9rem] overflow-hidden rounded-md border border-border bg-surface p-1 text-surface-foreground shadow-lg",onEscapeKeyDown:a=>a.stopPropagation(),children:(0,d.jsx)(j.Hr,{value:p??"",onValueChange:a=>{let b=""===a?null:a;b!==p&&q(b)},children:n.m9.map(a=>(0,d.jsx)(j.Ht,{value:a.value??"",children:s(a.labelKey)},a.labelKey))})})})]})]})]})})},3890:(a,b,c)=>{"use strict";c.d(b,{AppProviders:()=>E});var d=c(21124),e=c(42378);let f=["/login","/api/auth/login","/api/auth/logout","/api/auth/status","/api/remote/pair","/manifest.webmanifest","/sw.js","/offline"];var g=c(37397),h=c(45523),i=c(81092),j=c(84342),k=c(5772),l=c(64632),m=c(89184),n=c(63157),o=c(52761),p=c(74930),q=c(79782),r=c(23910),s=c(62197),t=c(73060),u=c(63474),v=c(74132),w=c(67693),x=c(90102),y=c(38301),z=c(20481),A=c(25345),B=c(11010),C=c(18608);function D(){let a=(0,z.c)("pwa"),[b,c]=(0,y.useState)(null);(0,y.useRef)(!1);let e=(0,C.W)();return!b||e?null:(0,d.jsx)("div",{"data-testid":"pwa-update-toast",role:"status","aria-live":"polite",className:"pointer-events-none fixed bottom-0 right-0 flex max-w-full justify-end px-4 pb-safe",style:{zIndex:B.M.TOAST},children:(0,d.jsxs)("div",{"data-testid":"pwa-update-toast-card",className:"pointer-events-auto mb-4 flex items-center gap-3 rounded-lg border border-border bg-surface px-4 py-3 shadow-lg",children:[(0,d.jsx)("span",{className:"text-sm font-medium text-foreground",children:a("update.available")}),(0,d.jsxs)("button",{type:"button",onClick:()=>{b.postMessage({type:"SKIP_WAITING"})},className:"inline-flex items-center gap-1.5 rounded-md bg-accent-600 px-3 py-1.5 text-sm font-medium text-white transition-colors hover:bg-accent-700 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background dark:bg-accent-500 dark:hover:bg-accent-600",children:[(0,d.jsx)(A.A,{className:"h-4 w-4"}),a("update.reload")]})]})})}function E({children:a,locale:b,messages:c,timeZone:y,authEnabled:z=!1}){var A;let B=(A=(0,e.usePathname)(),!z||!f.includes(A??""));return(0,d.jsx)(g.default,{locale:b,messages:c,timeZone:y,children:(0,d.jsx)(u.tE,{children:(0,d.jsx)(h.N,{attribute:"class",defaultTheme:"system",enableSystem:!0,children:(0,d.jsx)(j.O,{authEnabled:z,children:(0,d.jsx)(k.W5,{children:(0,d.jsx)(i.GB,{children:(0,d.jsx)(p.tS,{enabled:B,children:(0,d.jsxs)(n.g7,{enabled:B,children:[(0,d.jsx)(v.rM,{}),(0,d.jsx)(x.o,{}),(0,d.jsx)(w.H,{}),(0,d.jsx)(l.E,{children:(0,d.jsx)(m.S,{children:(0,d.jsx)(q.aF,{children:(0,d.jsx)(r.y2,{enabled:B,children:(0,d.jsxs)(s.NS,{children:[(0,d.jsx)(o.Bo,{children:a}),(0,d.jsx)(D,{}),(0,d.jsx)(t.gZ,{})]})})})})})]})})})})})})})})}},4267:(a,b,c)=>{"use strict";c.d(b,{Lt:()=>h,Wj:()=>f,eu:()=>e,fJ:()=>g});var d=c(17252);let e=2,f=6,g=["claude","codex","antigravity"];function h(a){return a.length<e||a.length>f?{valid:!1,error:`Must be ${e}-${f} elements`}:a.every(a=>"string"==typeof a&&d.XH.includes(a))?new Set(a).size!==a.length?{valid:!1,error:"Duplicate tool IDs not allowed"}:{valid:!0,value:a}:{valid:!1,error:"Invalid CLI tool ID"}}},4558:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(43692),e=c(86802),f=c(25754);let g=(0,d.A)(async({requestLocale:a})=>{let b=await a;if(!(0,f.d9)(b)){let a=await (0,e.UL)(),c=await (0,e.b3)();b=(0,f.rv)(a.get(f.gB)?.value,c.get("accept-language"))}let[d,g,h,i,j,k,l,m,n,o,p,q,r,s,t]=await Promise.all([c(61118)(`./${b}/common.json`),c(90338)(`./${b}/worktree.json`),c(62081)(`./${b}/autoYes.json`),c(66125)(`./${b}/error.json`),c(72637)(`./${b}/prompt.json`),c(51877)(`./${b}/auth.json`),c(38898)(`./${b}/schedule.json`),c(80407)(`./${b}/commandPalette.json`),c(70288)(`./${b}/home.json`),c(60887)(`./${b}/review.json`),c(75567)(`./${b}/pwa.json`),c(99127)(`./${b}/notifications.json`),c(1483)(`./${b}/keyboardShortcuts.json`),c(80812)(`./${b}/externalApps.json`),c(18913)(`./${b}/skills.json`)]);return{locale:b,timeZone:"UTC",messages:{common:d.default,worktree:g.default,autoYes:h.default,error:i.default,prompt:j.default,auth:k.default,schedule:l.default,commandPalette:m.default,home:n.default,review:o.default,pwa:p.default,notifications:q.default,keyboardShortcuts:r.default,externalApps:s.default,skills:t.default}}})},5682:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/CommandMate/CommandMate/src/app/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/app/error.tsx","default")},5772:(a,b,c)=>{"use strict";c.d(b,{Ps:()=>k,W5:()=>j});var d=c(21124),e=c(38301),f=c(90076),g=c(12480);let h={size:g.r5,setSize:()=>{},isMobile:!1,factor:g.d8[g.r5].factor,isAvailable:!1},i=(0,e.createContext)(h);function j({children:a}){let{size:b,setSize:c,isAvailable:h}=(0,g.of)(),j=(0,f.a)(),k=(0,e.useMemo)(()=>({size:b,setSize:c,isMobile:j,factor:g.d8[b].factor,isAvailable:h}),[b,c,j,h]);return(0,d.jsx)(i.Provider,{value:k,children:a})}function k(){return(0,e.useContext)(i)}},6074:(a,b,c)=>{"use strict";c.d(b,{O:()=>e});var d=c(38301);function e(a,b){let[c,e]=(0,d.useState)(a?"open":"closed");return a&&"open"!==c?e("open"):a||"open"!==c||e("exiting"),{shouldRender:a||"closed"!==c,isExiting:!a&&"exiting"===c}}},9042:(a,b,c)=>{"use strict";c.d(b,{AppShellGate:()=>bE});var d=c(21124),e=c(42378),f=c(38301),g=c.n(f),h=c(81092),i=c(90076);let j={showSidebar:!0,showGlobalNav:!0,showLocalNav:!1,autoCollapseSidebar:!1},k=[{prefix:"/worktrees/",config:{showGlobalNav:!1,showLocalNav:!0}},{prefix:"/sessions",config:{autoCollapseSidebar:!0}}];var l=c(5772),m=c(3991),n=c.n(m),o=c(52761);let p=(0,f.forwardRef)(function({href:a,onClick:b,target:c,...f},g){let h=(0,e.usePathname)(),i=(0,o.Hq)();return(0,d.jsx)(n(),{ref:g,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&&i.push(a))},...f})});var q=c(20481),r=c(75903),s=c(65828),t=c(59268),u=c(94684),v=c(10366),w=c(99615),x=c(22023),y=c(47817),z=c(38812),A=c(1637),B=c(72380),C=c(77560),D=c(89877);let E=(0,f.memo)(function({worktrees:a,visibleWorktreeIds:b,selectedWorktreeId:c,onSelect:e,onNavigate:f}){let g=(0,q.c)("common"),h=a.length;if(0===h)return null;let i=a.slice(0,3),j=h-i.length;return(0,d.jsxs)("section",{"data-testid":"sidebar-needs-attention","aria-label":g("sidebar.needsAttention"),className:"flex-shrink-0 px-2 pt-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 px-2 pb-1 text-xs text-sidebar-muted",children:[(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",children:g("sidebar.needsAttention")}),(0,d.jsx)("span",{"data-testid":"sidebar-needs-attention-count","aria-label":g("attention.badgeLabel",{count:h}),className:"flex-shrink-0 rounded-full bg-warning-subtle px-1.5 font-semibold leading-5 tabular-nums text-warning-foreground",children:h>99?"99+":h})]}),(0,d.jsx)("ul",{className:"space-y-0.5",children:i.map(a=>{let f=(0,D.XK)(a),h=!b.has(a.id),i=a.id===c;return(0,d.jsx)("li",{children:(0,d.jsxs)("button",{type:"button","data-testid":"sidebar-attention-item","data-hidden-repository":h?"true":void 0,onClick:()=>e(a.id),"aria-current":i?"true":void 0,title:`${f.name} \xb7 ${f.repositoryName}`,className:`flex h-[34px] w-full min-w-0 items-center gap-2 rounded-md px-2 text-left transition-colors hover:bg-sidebar-hover focus:outline-none focus-visible:ring-2 focus-visible:ring-ring ${i?"bg-sidebar-hover":""}`,children:[(0,d.jsx)("span",{className:"flex w-4 flex-shrink-0 items-center justify-center",children:(0,d.jsx)(A.Ej,{status:"waiting",waitingKind:f.waitingKind})}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate text-sm text-sidebar-foreground",children:f.name}),(0,d.jsx)("span",{className:"min-w-0 max-w-[40%] flex-shrink truncate text-xs text-sidebar-muted",children:f.repositoryName}),h&&(0,d.jsx)(B.A,{"data-testid":"sidebar-attention-hidden-repository",className:"h-3.5 w-3.5 flex-shrink-0 text-sidebar-muted","aria-label":g("sidebar.hiddenRepository"),role:"img"})]})},a.id)})}),(0,d.jsx)(p,{href:C.ks,"data-testid":"sidebar-needs-attention-review-link",onClick:f,className:"mt-0.5 flex min-w-0 items-center rounded-md px-2 py-1 text-xs text-sidebar-muted transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:(0,d.jsx)("span",{className:"min-w-0 truncate",children:j>0?g("sidebar.attentionMoreInReview",{count:j}):g("sidebar.openInReview")})})]})}),F=(0,f.memo)(function({branches:a,selectedWorktreeId:b,onBranchClick:c,forceExpanded:e}){let g=(0,q.c)("common"),[h,i]=(0,f.useState)(!1),j=e||h;return(0,d.jsxs)("div",{"data-testid":"branch-group-other",children:[(0,d.jsx)("div",{className:z.R8,children:(0,d.jsxs)("button",{type:"button","data-testid":"branch-group-other-toggle","aria-expanded":j,disabled:e,onClick:()=>i(a=>!a),className:"flex h-[30px] w-full min-w-0 items-center gap-2 rounded-[10px] px-3 text-left text-xs text-sidebar-muted transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:cursor-default disabled:hover:bg-transparent",children:[(0,d.jsx)("svg",{className:`h-3 w-3 flex-shrink-0 transition-transform ${j?"rotate-90":""}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,"aria-hidden":"true",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"})}),(0,d.jsx)("span",{className:"min-w-0 truncate",children:g("sidebar.otherBranches",{count:a.length})})]})}),j&&a.map(a=>(0,d.jsx)(z.yP,{branch:a,isSelected:a.id===b,onClick:()=>c(a.id),showRepositoryName:!1},a.id))]})});var G=c(85866),H=c(64936),I=c(10290),J=c(32482),K=c(35595);let L=[{mode:"grouped",labelKey:"sidebar.viewMode.grouped"},{mode:"flat",labelKey:"sidebar.viewMode.flat"},{mode:"sessions",labelKey:"sidebar.viewMode.sessions"}],M=[{key:"updatedAt",labelKey:"sort.updatedAt"},{key:"repositoryName",labelKey:"sort.repositoryName"},{key:"branchName",labelKey:"sort.branchName"},{key:"status",labelKey:"sort.status"}],N={updatedAt:"desc"},O={updatedAt:{asc:"sort.direction.oldestFirst",desc:"sort.direction.newestFirst"},repositoryName:{asc:"sort.direction.aToZ",desc:"sort.direction.zToA"},branchName:{asc:"sort.direction.aToZ",desc:"sort.direction.zToA"},status:{asc:"sort.direction.attentionFirst",desc:"sort.direction.attentionLast"}},P={asc:"sort.ascending",desc:"sort.descending"};function Q(a){a.preventDefault()}let R=(0,f.memo)(function({viewMode:a,onViewModeChange:b}){let c=(0,q.c)("common"),{sortKey:e,sortDirection:g,setSortKey:i,setSortDirection:j}=(0,h.VF)(),k=(0,f.useId)(),l=(0,f.useId)(),m=(0,f.useMemo)(()=>{let a=O[e]??P;return b=>c(a[b])},[e,c]),n=c(L.find(b=>b.mode===a)?.labelKey??"sidebar.viewMode.grouped"),o=c(M.find(a=>a.key===e)?.labelKey??`sort.${e}`),p=c("sidebar.listOptionsSummary",{view:n,sort:o,direction:m(g)}),r=a===h.e8&&e===h.P0&&g===h.RA,s=N[e]??"asc";return(0,d.jsxs)(I.rI,{children:[(0,d.jsx)(I.ty,{asChild:!0,children:(0,d.jsxs)("button",{type:"button","data-testid":"sidebar-list-options","data-view-mode":a,"data-sort-key":e,"data-sort-direction":g,"aria-label":c("sidebar.listOptionsLabel",{summary:p}),title:p,className:"relative flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-md text-sidebar-muted transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring data-[state=open]:bg-sidebar-hover data-[state=open]:text-sidebar-foreground",children:[(0,d.jsx)(H.A,{className:"h-4 w-4","aria-hidden":"true"}),!r&&(0,d.jsx)("span",{"data-testid":"sidebar-list-options-indicator","aria-hidden":"true",className:"absolute right-1 top-1 h-1.5 w-1.5 rounded-full bg-accent-500"})]})}),(0,d.jsxs)(I.SQ,{"data-testid":"sidebar-list-options-menu",align:"end",collisionPadding:8,className:(0,K.cn)("w-52 max-w-[calc(100vw-16px)]","max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto"),children:[(0,d.jsx)(I.lp,{id:k,children:c("sidebar.viewLabel")}),(0,d.jsx)(I.Hr,{"data-testid":"view-mode-options","aria-labelledby":k,value:a,onValueChange:c=>{(0,J.$m)(c)&&c!==a&&b(c)},children:L.map(({mode:a,labelKey:b})=>(0,d.jsx)(I.Ht,{value:a,onSelect:Q,children:c(b)},a))}),(0,d.jsx)(I.mB,{}),(0,d.jsx)(I.lp,{id:l,children:c("sort.label")}),(0,d.jsx)(I.Hr,{"data-testid":"sort-key-options","aria-labelledby":l,value:e,onValueChange:a=>{let b=M.find(b=>b.key===a);b&&b.key!==e&&(i(b.key),j(N[b.key]??"asc"))},children:M.map(({key:a,labelKey:b})=>(0,d.jsx)(I.Ht,{value:a,onSelect:Q,children:c(b)},a))}),(0,d.jsx)(I.mB,{}),(0,d.jsx)(I.Hr,{"data-testid":"sort-direction-options","aria-label":c("sort.directionLabel"),value:g,onValueChange:a=>{("asc"===a||"desc"===a)&&j(a)},children:("asc"===s?["asc","desc"]:["desc","asc"]).map(a=>(0,d.jsx)(I.Ht,{value:a,onSelect:Q,children:m(a)},a))})]})]})}),S=(0,f.memo)(function({searchQuery:a,onSearchChange:b,viewMode:c,onViewModeChange:e}){let f=(0,q.c)("common");return(0,d.jsxs)("div",{"data-testid":"sidebar-list-toolbar",className:"flex flex-shrink-0 items-center gap-1 px-3 pt-2 pb-1.5",children:[(0,d.jsx)(G.pd,{type:"text",inputSize:"sm",placeholder:f("sidebar.searchBranches"),"aria-label":f("sidebar.searchBranches"),value:a,onChange:a=>b(a.target.value),className:"min-w-0 flex-1 border-sidebar-border bg-background shadow-none"}),(0,d.jsx)(R,{viewMode:c,onViewModeChange:e})]})});var T=c(1102),U=c(81497),V=c(45523),W=c(84342),X=c(85744),Y=c(62197),Z=c(12480),$=c(68232);async function _(){try{await fetch("/api/auth/logout",{method:"POST"}),window.location.href="/login"}catch{window.location.href="/login"}}let aa=I.ty;function ab(){let a=(0,q.c)("common"),{size:b,setSize:c}=(0,l.Ps)(),e=(0,h.pT)();return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(I.mB,{}),(0,d.jsx)(I.lp,{children:a("displaySize.ariaLabel")}),(0,d.jsx)(I.Hr,{value:b,onValueChange:a=>{(0,Z.fM)(a)&&c(a)},children:Z.Uf.map(b=>(0,d.jsx)(I.Ht,{value:b,children:a(`displaySize.${b}`)},b))}),e&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(I.lp,{children:a("repoTabBar.settingLabel")}),(0,d.jsx)(I.Hr,{value:e.repoTabBarMode,onValueChange:a=>{(0,J.m3)(a)&&e.setRepoTabBarMode(a)},children:J.EN.map(b=>(0,d.jsx)(I.Ht,{value:b,children:a(`repoTabBar.mode.${b}`)},b))})]})]})}function ac({children:a,testIdPrefix:b,side:c="top",align:e="end",showDisplayPreferences:g=!1,onNavigate:h}){let j=(0,q.c)("worktree"),k=(0,o.Hq)(),{theme:l,setTheme:m}=(0,V.D)(),{currentLocale:n,switchLocale:p}=(0,X.g)(),r=(0,W.H)(),s=(0,i.a)(),{open:t}=(0,Y.V0)(),u=(0,f.useRef)(!1),v=(0,f.useRef)(null),w="0.47.0",x=a=>{h?.(),k.push(a)};return(0,d.jsxs)(I.rI,{children:[a,(0,d.jsxs)(I.SQ,{side:c,align:e,collisionPadding:8,className:"w-56 max-w-[calc(100vw-16px)] max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto",onCloseAutoFocus:()=>{u.current&&(u.current=!1,queueMicrotask(t))},children:[(0,d.jsx)(I.lp,{"data-testid":`${b}-version`,children:j("activityBar.settingsMenu.version",{version:w?`v${w}`:"-"})}),(0,d.jsx)(I._2,{asChild:!0,onSelect:()=>{let a=v.current;if(v.current=null,!(a&&(0!==a.button||a.metaKey||a.ctrlKey||a.shiftKey||a.altKey))){if(a?.preventDefault(),s)return void x("/more");u.current=!0}},children:(0,d.jsx)("a",{href:"/more","data-testid":`${b}-settings`,onClick:a=>{v.current=a},children:j("activityBar.settingsMenu.settings")})}),(0,d.jsx)(I._2,{onSelect:()=>x("/skills"),children:j("activityBar.settingsMenu.skills")}),(0,d.jsx)(I.mB,{}),(0,d.jsx)(I.lp,{children:j("activityBar.settingsMenu.theme")}),(0,d.jsxs)(I.Hr,{value:l??"system",onValueChange:a=>m(a),children:[(0,d.jsx)(I.Ht,{value:"light",children:j("activityBar.settingsMenu.themeLight")}),(0,d.jsx)(I.Ht,{value:"dark",children:j("activityBar.settingsMenu.themeDark")}),(0,d.jsx)(I.Ht,{value:"system",children:j("activityBar.settingsMenu.themeSystem")})]}),(0,d.jsx)(I.lp,{children:j("activityBar.settingsMenu.language")}),(0,d.jsx)(I.Hr,{value:n,onValueChange:a=>p(a),children:$.dI.map(a=>(0,d.jsx)(I.Ht,{value:a,children:$.vK[a]},a))}),g&&!s&&(0,d.jsx)(ab,{}),(0,d.jsx)(I.mB,{}),(0,d.jsx)(I._2,{asChild:!0,children:(0,d.jsx)("a",{href:"https://github.com/kewton/MyCodeBranchDesk",target:"_blank",rel:"noopener noreferrer",children:j("activityBar.settingsMenu.github")})}),r&&(0,d.jsx)(I._2,{onSelect:()=>{_()},children:j("activityBar.settingsMenu.logout")})]})]})}var ad=c(15917),ae=c(76180),af=c(88285),ag=c(85647),ah=c(64632),ai=c(21787);let aj=["global","terminal","composer","editor"],ak=[{id:"commandPalette",keys:["MOD","K"],scope:"global"},{id:"toggleSidebar",keys:["MOD","B"],scope:"global"},{id:"keyboardHelp",keys:["?"],scope:"global"},{id:"closeOverlay",keys:["Esc"],scope:"global"},{id:"navigateList",keys:["↑","↓"],scope:"global"},{id:"terminalSearch",keys:["MOD","F"],scope:"terminal"},{id:"toggleSurfaceMode",keys:["MOD","Shift","M"],scope:"terminal"},{id:"sendMessage",keys:["↵"],scope:"composer"},{id:"composerNewline",keys:["Shift","↵"],scope:"composer"},{id:"editorIndent",keys:["Tab"],scope:"editor"},{id:"editorOutdent",keys:["Shift","Tab"],scope:"editor"},{id:"editorTabFocus",keys:["Ctrl","M"],scope:"editor"},{id:"editorSave",keys:["MOD","S"],scope:"editor"},{id:"editorFullscreen",keys:["MOD","Shift","F"],scope:"editor"}];function al(a,b){return"MOD"===a?b?"⌘":"Ctrl":a}var am=c(77028),an=c(14346),ao=c(47089);let ap="flex items-center justify-center rounded-md text-sidebar-muted transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",aq={width:`${J.KI}px`,height:`${J.KI}px`};function ar({testId:a,onClose:b}){let c=(0,q.c)("common"),{isOpen:e,toggle:f}=(0,h.VF)(),g=c(e?"sidebar.close":"sidebar.open"),i=e?am.A:an.A;return(0,d.jsx)("div",{"data-sidebar-toggle-cell":"",className:"flex flex-shrink-0",style:{padding:`${J.df}px`},children:b?(0,d.jsx)("button",{type:"button","data-testid":a,onClick:b,"aria-label":c("sidebar.close"),style:aq,className:ap,children:(0,d.jsx)(ao.A,{size:20,"aria-hidden":"true"})}):(0,d.jsx)(T.m_,{content:g,placement:e?"bottom":"right",children:(0,d.jsx)("button",{type:"button","data-testid":a,onClick:f,"aria-label":g,"aria-expanded":e,style:aq,className:ap,children:(0,d.jsx)(i,{size:20,"aria-hidden":"true"})})})})}let as="flex w-full min-w-0 items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm text-sidebar-muted transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring";function at({drawer:a=!1}){let b=(0,q.c)("common"),c=(0,q.c)("commandPalette"),{setOpen:e}=(0,ah.C)(),{openNewTask:f}=(0,ai.hX)(),{closeMobileDrawer:i}=(0,h.VF)(),j=function(){let[a,b]=g().useState(null);return a}(),k=a?i:void 0;return(0,d.jsxs)("div",{"data-testid":a?"sidebar-drawer-top-controls":"sidebar-top-controls",className:"flex-shrink-0",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center",children:[a?(0,d.jsx)(ar,{testId:"sidebar-drawer-close",onClose:i}):(0,d.jsx)(ar,{testId:"sidebar-panel-toggle"}),(0,d.jsxs)(p,{href:"/",onClick:k,"data-testid":"sidebar-logo",className:"flex min-w-0 items-center gap-2 rounded-md px-1 py-1 transition-opacity hover:opacity-80 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,d.jsx)("span",{className:"flex h-6 w-6 flex-shrink-0 items-center justify-center rounded-md bg-accent-600",children:(0,d.jsx)(ad.A,{size:14,strokeWidth:2,className:"text-white","aria-hidden":"true"})}),(0,d.jsx)("span",{className:"truncate text-sm font-bold text-sidebar-foreground",children:"CommandMate"})]})]}),(0,d.jsxs)("div",{className:"space-y-0.5 px-2",children:[(0,d.jsxs)("button",{type:"button","data-testid":"sidebar-new-task",onClick:()=>{k?.(),f()},"aria-haspopup":"dialog",className:as,children:[(0,d.jsx)(ae.A,{className:"h-4 w-4 flex-shrink-0","aria-hidden":"true"}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",children:b("newTask.title")})]}),(0,d.jsxs)("button",{type:"button","data-testid":"sidebar-search",onClick:()=>{k?.(),e(!0)},"aria-label":c("mobileTrigger"),className:as,children:[(0,d.jsx)(af.A,{className:"h-4 w-4 flex-shrink-0","aria-hidden":"true"}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",children:c("searchAction")}),!a&&null!==j&&(0,d.jsxs)("span",{className:"flex flex-shrink-0 items-center gap-0.5","aria-hidden":"true",children:[(0,d.jsx)(ag.u,{children:j}),(0,d.jsx)(ag.u,{children:"K"})]})]})]})]})}var au=c(63474),av=c(19463),aw=c(78352),ax=c(95239);let ay=0,az=(0,f.memo)(function(){let a=(0,o.Hq)(),{worktrees:b,repositories:c,selectedWorktreeId:j,selectWorktree:k,refreshWorktrees:l,isLoading:m,error:n}=(0,y.$f)(),{closeMobileDrawer:p,sortKey:u,sortDirection:x,viewMode:A,setViewMode:B,repositoryOrder:F,setRepositoryOrder:H}=(0,h.VF)(),I=(0,q.c)("common"),K=(0,e.usePathname)()??"",L=(0,J.jn)(K,j),M=(0,i.a)(),{count:N}=(0,av.Lv)(),[O,P]=(0,f.useState)(""),Q=(0,f.useRef)(null),[R,T]=(0,f.useState)(()=>({})),U=(0,f.useRef)(!1);(0,f.useEffect)(()=>{U.current||(U.current=!0,fetch("/api/sidebar/group-order").then(a=>a.json()).then(a=>{a.success&&Array.isArray(a.order)&&H(a.order)}).catch(()=>{}))},[H]);let V=(0,f.useMemo)(()=>(0,J.UZ)(c),[c]),W=(0,f.useMemo)(()=>(0,J.s6)(b,V),[b,V]),X=(0,f.useMemo)(()=>(0,av.Rc)(b),[b]),Y=(0,f.useMemo)(()=>new Set(W.map(a=>a.id)),[W]),Z=(0,f.useMemo)(()=>W.map(D.XK),[W]),$=(0,f.useMemo)(()=>new Map(Z.map(a=>[a.id,a])),[Z]),_=(0,f.useDeferredValue)(Z),aa=(0,f.useRef)(null),ab=(0,f.useRef)(null),ac=(0,f.useRef)(null),ad=(0,f.useRef)(new Set),[ae,af]=(0,f.useState)(0);(0,f.useEffect)(()=>()=>{null!==ab.current&&clearTimeout(ab.current)},[]);let ag=(0,f.useCallback)(()=>{null!==ab.current&&(clearTimeout(ab.current),ab.current=null),aa.current=null,ac.current=null},[]),ah=(0,f.useMemo)(()=>{let a=aa.current;return!a||0===a.items.length||Date.now()>=a.expiresAt?_:a.items},[_,ae]),ai=(0,f.useRef)(ah),aj=ac.current,ak=new Set(ah.filter(a=>aj?.has(a.id)===!0||(0,J.rL)(a,L,$)).map(a=>a.id));(0,f.useLayoutEffect)(()=>{if(ai.current=ah,ad.current=ak,ac.current)for(let a of ak)ac.current.add(a);let a=aa.current;a&&0===a.items.length&&_.length>0&&ag()});let al=(0,f.useCallback)(()=>{if(0===ai.current.length)return;null!==ab.current&&(clearTimeout(ab.current),ab.current=null);let a=aa.current;if(a&&Date.now()<a.expiresAt){aa.current={...a,expiresAt:1/0};return}aa.current={items:ai.current,expiresAt:1/0},ac.current=new Set(ad.current)},[]),am=(0,f.useCallback)(()=>{aa.current&&(aa.current={...aa.current,expiresAt:Date.now()+1e3},null!==ab.current&&clearTimeout(ab.current),ab.current=setTimeout(()=>{ag(),af(a=>a+1)},1e3))},[ag]),{sortedItems:an,groupedItems:ao}=(0,ax.D)({items:ah,sortKey:u,sortDirection:x,viewMode:A,filterText:O}),ap=(0,f.useMemo)(()=>"grouped"===A&&ao?O.trim()?ao:(0,J.Ew)(ao,F):null,[A,ao,F,O]),aq="grouped"===A?ap:null,ar=(0,f.useMemo)(()=>"sessions"===A?(0,J.EY)((0,J.UB)(an),u,x):[],[A,an,u,x]);(0,f.useEffect)(()=>{},[R]);let as=(0,f.useCallback)(a=>{T(b=>({...b,[a]:!b[a]}))},[]),au=(0,f.useCallback)(()=>{var a;ay=Number.isFinite(a=Q.current?.scrollTop??0)&&a>0?a:0},[]),aw=an.length>0||(aq?.length??0)>0||ar.length>0;(0,f.useEffect)(()=>{let a=Q.current;if(!a)return;let b=window.requestAnimationFrame(()=>{a.scrollTop=ay});return()=>{window.cancelAnimationFrame(b)}},[aw,A]);let az=(0,f.useCallback)(b=>{au(),k(b),a.push(`/worktrees/${b}`),p()},[au,k,a,p]),aC=(0,f.useCallback)(b=>{au(),k(b.worktreeId),a.push((0,J.Ii)(b)),p()},[au,k,a,p]),aF=(0,v.FR)((0,v.MS)(v.AN,{activationConstraint:{distance:8}})),aG=(0,f.useCallback)(a=>{let{active:b,over:c}=a;if(!c||b.id===c.id||!aq)return;let d=aq.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,w.be)(d,e,f);H(g),fetch("/api/sidebar/group-order",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({order:g})}).catch(()=>{H(d)})},[aq,H]),aH="grouped"===A?(aq?.length??0)===0:"sessions"===A?0===ar.length:0===an.length,aK=m&&0===b.length,aL=!aK&&!!n&&0===b.length,aM=(0,f.useCallback)(()=>{l()},[l]),aN={sessions:(0,d.jsx)("li",{className:"flex min-w-0",children:(0,d.jsx)(aD,{href:"/sessions",icon:r.A,label:I("nav.sessions"),testId:"sidebar-nav-sessions",isActive:K.startsWith("/sessions"),onNavigate:p})}),repositories:(0,d.jsxs)("li",{className:"flex min-w-0 items-center gap-1",children:[(0,d.jsx)(aD,{href:"/repositories",icon:s.A,label:I("nav.repositories"),testId:"sidebar-nav-repositories",isActive:K.startsWith("/repositories"),onNavigate:p}),(0,d.jsx)(aI,{refreshWorktrees:l})]}),review:(0,d.jsx)("li",{className:"flex min-w-0",children:(0,d.jsx)(aD,{href:N>0?C.ks:"/review",icon:t.A,label:I("nav.review"),testId:"sidebar-nav-review",isActive:K.startsWith("/review"),onNavigate:p,trailing:N>0?(0,d.jsx)("span",{"data-testid":"sidebar-nav-review-count",role:"status","aria-label":I("attention.badgeLabel",{count:N}),className:"flex-shrink-0 rounded-full bg-warning-subtle px-1.5 text-xs font-semibold leading-5 tabular-nums text-warning-foreground",children:N>99?"99+":N}):null})})};return(0,d.jsx)(z.Fy.Provider,{value:!M,children:(0,d.jsxs)("nav",{"data-testid":"sidebar","aria-label":I("sidebar.branchNavigation"),className:"h-full flex flex-col bg-sidebar text-sidebar-foreground",role:"navigation",children:[(0,d.jsx)(at,{drawer:M}),(0,d.jsx)("div",{"data-testid":"sidebar-header",className:"flex-shrink-0 space-y-2 border-b border-sidebar-border px-2 py-2",children:(0,d.jsx)("ul",{"data-testid":"sidebar-nav",className:"space-y-0.5",children:J.go.map(a=>(0,d.jsx)(g().Fragment,{children:aN[a]},a))})}),(0,d.jsx)(E,{worktrees:X,visibleWorktreeIds:Y,selectedWorktreeId:L,onSelect:az,onNavigate:p}),(0,d.jsx)(S,{searchQuery:O,onSearchChange:P,viewMode:A,onViewModeChange:B}),(0,d.jsx)("div",{ref:Q,"data-testid":"branch-list",onScroll:au,onMouseEnter:al,onMouseLeave:am,className:"flex-1 overflow-y-auto overflow-x-hidden",children:aK?(0,d.jsx)(aA,{label:I("sidebar.loadingBranches")}):aL?(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:I("sidebar.branchesLoadFailed")}),(0,d.jsx)(G.$n,{type:"button",variant:"secondary",size:"sm",className:"mt-3","data-testid":"branch-list-retry",onClick:aM,children:I("sidebar.retryLoadBranches")})]}):aH?(0,d.jsx)("div",{className:"px-4 py-8 text-center text-sidebar-muted",children:I(O?"sidebar.noBranchesFound":"sidebar.noBranchesAvailable")}):"sessions"===A?ar.map(a=>(0,d.jsx)(aE,{row:a,isSelected:a.worktreeId===L,onClick:aC},a.key)):"grouped"===A&&aq?(0,d.jsx)(v.Mp,{sensors:aF,collisionDetection:v.fp,onDragEnd:aG,children:(0,d.jsx)(w.gB,{items:aq.map(a=>a.repositoryName),strategy:w._G,children:aq.map(a=>{let b=!R[a.repositoryName]||!!O.trim();return(0,d.jsx)(aB,{group:a,isExpanded:b,selectedWorktreeId:L,onToggle:()=>as(a.repositoryName),onBranchClick:az,isDragDisabled:!!O.trim(),isFiltering:!!O.trim(),liveBranchById:$,stickyShownIds:aj},a.repositoryName)})})}):an.map(a=>(0,d.jsx)(z.yP,{branch:a,isSelected:a.id===L,onClick:()=>az(a.id)},a.id))}),(0,d.jsx)("div",{"data-testid":"sidebar-footer",className:"flex-shrink-0 px-4 py-3 border-t border-sidebar-border",children:(0,d.jsx)(aJ,{onNavigate:p})})]})})}),aA=(0,f.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)(G.EA,{className:"h-2 w-2 rounded-full"}),(0,d.jsx)(G.EA,{className:"h-3 flex-1"})]},a))]})});function aB({group:a,isExpanded:b,selectedWorktreeId:c,onToggle:e,onBranchClick:f,isDragDisabled:g,isFiltering:h,liveBranchById:i,stickyShownIds:j}){let{attributes:k,listeners:l,setNodeRef:m,setActivatorNodeRef:n,transform:o,transition:p,isDragging:q}=(0,w.gl)({id:a.repositoryName,disabled:g}),r={transform:x.Ks.Transform.toString(o),transition:p,opacity:q?.5:1},{shown:s,other:t}=(0,J.FS)(a.branches,c,i,j??void 0);return(0,d.jsxs)("div",{ref:m,style:r,className:"w-full min-w-0 pt-2",children:[(0,d.jsx)(aC,{repositoryName:a.repositoryName,branchCount:a.branches.length,isExpanded:b,onClick:e,dragHandleRef:n,dragHandleListeners:g?void 0:l,dragHandleAttributes:g?void 0:k}),b&&s.map(a=>(0,d.jsx)(z.yP,{branch:a,isSelected:a.id===c,onClick:()=>f(a.id),showRepositoryName:!1},a.id)),b&&t.length>0&&(0,d.jsx)(F,{branches:t,selectedWorktreeId:c,onBranchClick:f,forceExpanded:h})]})}function aC({repositoryName:a,branchCount:b,isExpanded:c,onClick:e,dragHandleRef:f,dragHandleListeners:g,dragHandleAttributes:h}){let i=(0,q.c)("common");return(0,d.jsxs)("div",{className:"group/header flex items-center w-full",children:[g&&(0,d.jsx)("div",{ref:f,...g,...h,"data-testid":"group-drag-handle","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-[color,opacity] opacity-0 group-hover/header:opacity-100 group-focus-within/header:opacity-100 [@media(hover:none)]:opacity-100 rounded focus:outline-none focus-visible:ring-2 focus-visible:ring-ring ",children:(0,d.jsx)(aG,{})}),(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-1 text-xs font-normal text-sidebar-muted focus:outline-none focus:ring-2 focus:ring-inset focus:ring-ring transition-colors ",children:[(0,d.jsx)(aF,{isExpanded:c}),(0,d.jsx)(G.nF,{color:(0,J.LV)(a)}),(0,d.jsx)(U.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 aD({href:a,icon:b,label:c,testId:e,isActive:f,onNavigate:g,trailing:h}){return(0,d.jsxs)(p,{href:a,"data-testid":e,"aria-current":f?"page":void 0,onClick:g,className:`flex min-w-0 flex-1 items-center gap-2 rounded-md px-2 py-1.5 text-sm transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring ${f?"bg-sidebar-hover font-medium text-sidebar-foreground":"text-sidebar-muted"}`,children:[(0,d.jsx)(b,{className:"h-4 w-4 flex-shrink-0","aria-hidden":"true"}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",children:c}),h]})}let aE=(0,f.memo)(function({row:a,isSelected:b,onClick:c}){let e=(0,q.c)("common"),f=(0,A.Mq)(a.status,a.unclassified),g=e(f?A.rH:`status.${a.status}`);return(0,d.jsx)("div",{className:`w-full min-w-0 ${z.R8}`,children:(0,d.jsxs)("button",{type:"button","data-testid":"session-list-item","data-session-key":a.key,onClick:()=>c(a),"aria-current":b?"true":void 0,className:`w-full min-w-0 min-h-[34px] px-3 py-1.5 flex items-center gap-2 text-left ${(0,z.Xd)(b)}`,children:[(0,d.jsx)(G.md,{status:a.status,size:"sm",label:a.exited?`${g} (${e("branchItem.agentExited")})`:g,className:f?A.Jd:void 0}),(0,d.jsx)("span",{className:"flex-shrink-0 max-w-[45%] truncate text-sm font-semibold text-sidebar-foreground",children:a.label}),(0,d.jsxs)("span",{className:"min-w-0 flex-1 truncate text-xs text-sidebar-muted",children:[a.branchName," \xb7 ",a.repositoryName]})]})})});function aF({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 aG(){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 aH({className:a=""}){return(0,d.jsx)("svg",{className:`w-4 h-4 ${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 aI=(0,f.memo)(function({refreshWorktrees:a}){let[b,c]=(0,f.useState)(!1),e=(0,f.useRef)(!1),{showToast:g}=(0,au.dj)(),h=(0,q.c)("common"),i=(0,f.useCallback)(async()=>{if(!e.current){e.current=!0,c(!0);try{let b=await aw.Rx.sync();await a(),g(h("syncSuccess",{count:b.worktreeCount}),"success",3e3)}catch(a){a instanceof aw.hD&&401===a.status?g(h("syncAuthError"),"error",5e3):g(h("syncError"),"error",5e3)}finally{e.current=!1,c(!1)}}},[a,g,h]);return(0,d.jsx)(d.Fragment,{children:(0,d.jsx)(T.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)(aH,{className:b?"animate-spin":""})})})})});function aJ({onNavigate:a}){let b=(0,q.c)("common")("settings.title");return(0,d.jsx)(ac,{testIdPrefix:"sidebar-settings-menu",side:"top",align:"start",showDisplayPreferences:!0,onNavigate:a,children:(0,d.jsx)(aa,{asChild:!0,children:(0,d.jsxs)("button",{type:"button","data-testid":"sidebar-settings-menu",className:"flex w-full items-center gap-2 px-2 py-1.5 rounded-md text-sm text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors",children:[(0,d.jsx)(u.A,{size:20,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:b})]})})})}var aK=c(38557);function aL(){let{shouldSurface:a,isReconnecting:b}=(0,aK.Fx)(),c=(0,q.c)("common");if(!a)return null;let e=c(b?"connection.reconnecting":"connection.offline");return(0,d.jsxs)("span",{"data-testid":"connection-status-indicator","data-connection-state":b?"reconnecting":"offline",role:"status","aria-live":"polite",title:c(b?"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",b?"bg-warning motion-safe:animate-pulse":"bg-muted-foreground"].join(" ")}),e]})}var aM=c(60957);let aN=[{prefix:"/sessions",labelKey:"nav.sessions"},{prefix:"/repositories",labelKey:"nav.repositories"},{prefix:"/review",labelKey:"nav.review"},{prefix:"/skills",labelKey:"nav.skills"},{prefix:"/more",labelKey:"nav.more"}];function aO({title:a="CommandMate"}){var b;let c=null!==(b=(0,e.usePathname)()??"",aN.find(a=>b.startsWith(a.prefix))?.labelKey??null);return(0,d.jsxs)("header",{"data-testid":"screen-status-row",className:"flex flex-shrink-0 items-center justify-end gap-4 px-4 py-1.5 border-b border-border bg-background supports-[backdrop-filter]:bg-background/80 backdrop-blur-md empty:hidden",children:[!c&&(0,d.jsx)("h1",{"data-testid":"header-screen-title",className:"mr-auto min-w-0 truncate text-lg font-bold text-foreground",children:a}),(0,d.jsx)(aL,{}),(0,d.jsx)(aM.H,{})]})}function aP({count:a}){let b=(0,q.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})}let aQ="relative flex h-10 w-10 items-center justify-center rounded-md transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",aR="text-sidebar-muted hover:bg-sidebar-hover hover:text-sidebar-foreground";function aS({href:a,icon:b,label:c,testId:e,isActive:f,badge:g}){return(0,d.jsx)(T.m_,{content:c,placement:"right",children:(0,d.jsx)(p,{href:a,"data-testid":e,"aria-label":c,"aria-current":f?"page":void 0,className:`${aQ} ${f?"bg-sidebar-hover text-sidebar-foreground":aR}`,children:(0,d.jsxs)("span",{className:"relative flex",children:[(0,d.jsx)(b,{size:20,"aria-hidden":"true"}),g]})})})}function aT({icon:a,label:b,testId:c,onClick:e,hasPopup:f}){return(0,d.jsx)(T.m_,{content:b,placement:"right",children:(0,d.jsx)("button",{type:"button","data-testid":c,"aria-label":b,"aria-haspopup":f,onClick:e,className:`${aQ} ${aR}`,children:(0,d.jsx)(a,{size:20,"aria-hidden":"true"})})})}function aU(){let a=(0,q.c)("common"),b=(0,q.c)("commandPalette"),c=(0,e.usePathname)()??"",{setOpen:f}=(0,ah.C)(),{openNewTask:h}=(0,ai.hX)(),{count:i}=(0,av.Lv)(),j=a("settings.title"),k={sessions:(0,d.jsx)(aS,{href:"/sessions",icon:r.A,label:a("nav.sessions"),testId:"sidebar-rail-sessions",isActive:c.startsWith("/sessions")}),repositories:(0,d.jsx)(aS,{href:"/repositories",icon:s.A,label:a("nav.repositories"),testId:"sidebar-rail-repositories",isActive:c.startsWith("/repositories")}),review:(0,d.jsx)(aS,{href:i>0?C.ks:"/review",icon:t.A,label:a("nav.review"),testId:"sidebar-rail-review",isActive:c.startsWith("/review"),badge:(0,d.jsx)(aP,{count:i})})};return(0,d.jsxs)("nav",{"data-testid":"sidebar-rail","aria-label":a("sidebar.railLabel"),className:"flex h-full flex-col items-center gap-1 bg-sidebar pb-2 text-sidebar-foreground",style:{width:`${J.BN}px`},children:[(0,d.jsx)(ar,{testId:"sidebar-rail-toggle"}),(0,d.jsx)(aT,{icon:ae.A,label:a("newTask.title"),testId:"sidebar-rail-new-task",onClick:()=>h(),hasPopup:"dialog"}),(0,d.jsx)(aT,{icon:af.A,label:b("mobileTrigger"),testId:"sidebar-rail-search",onClick:()=>f(!0)}),(0,d.jsx)("div",{className:"my-1 w-8 border-b border-sidebar-border","aria-hidden":"true"}),J.go.map(a=>(0,d.jsx)(g().Fragment,{children:k[a]},a)),(0,d.jsx)("div",{className:"mt-auto",children:(0,d.jsx)(ac,{testIdPrefix:"sidebar-rail-settings",side:"right",align:"end",showDisplayPreferences:!0,children:(0,d.jsx)(T.m_,{content:j,placement:"right",children:(0,d.jsx)(aa,{asChild:!0,children:(0,d.jsx)("button",{type:"button","data-testid":"sidebar-rail-settings","aria-label":j,className:`${aQ} ${aR}`,children:(0,d.jsx)(u.A,{size:20,"aria-hidden":"true"})})})})})})]})}c(68643);var aV=c(47684),aW=c(38882),aX=c(6130),aY=c(13860);let aZ=[{labelKey:"nav.sessions",href:"/sessions",isActive:a=>a.startsWith("/sessions"),icon:(0,d.jsx)(r.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.review",href:"/review",isActive:a=>a.startsWith("/review"),icon:(0,d.jsx)(t.A,{size:20,"aria-hidden":"true"}),showsAttentionBadge:!0},{labelKey:"nav.more",href:"/more",isActive:a=>a.startsWith("/more"),icon:(0,d.jsx)(aW.A,{size:20,"aria-hidden":"true"})}];function a$(){let a=(0,e.usePathname)(),{setOpen:b}=(0,ah.C)(),c=(0,q.c)("commandPalette"),f=(0,q.c)("common"),{count:g}=(0,av.Lv)(),i=(0,h.pT)();return i?.isMobileDrawerOpen?null:(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:[i&&(0,d.jsxs)("button",{type:"button","data-testid":"mobile-nav-open-sidebar",...aY.cv,onClick:i.openMobileDrawer,className:"flex flex-col items-center justify-center flex-1 h-full text-xs text-muted-foreground hover:text-foreground transition-colors",children:[(0,d.jsx)(aX.A,{size:20,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:f("sidebar.branches")})]}),aZ.map(b=>{let c=b.isActive(a),e=!0===b.showsAttentionBadge&&g>0;return(0,d.jsxs)(p,{href:e?C.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)(aP,{count:g})]}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:f(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)(af.A,{size:20,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:c("mobileLabel")})]})]})})}function a_(){let{shouldSurface:a,isReconnecting:b}=(0,aK.Fx)(),c=(0,q.c)("common");if(!a)return null;let e=c(b?"connection.reconnecting":"connection.offline"),f=c(b?"connection.reconnectingTooltip":"connection.offlineTooltip");return(0,d.jsx)("div",{"data-testid":"mobile-connection-banner","data-connection-state":b?"reconnecting":"offline",role:"status","aria-live":"polite",title:f,className:`shrink-0 pt-safe border-b ${b?"bg-warning-subtle border-warning-border text-warning-foreground":"bg-danger-subtle border-danger-border text-danger-foreground"}`,children:(0,d.jsxs)("div",{className:"flex items-center justify-center gap-1.5 px-3 py-1 text-xs",children:[(0,d.jsx)("span",{"aria-hidden":"true",className:`w-1.5 h-1.5 rounded-full ${b?"bg-warning motion-safe:animate-pulse":"bg-danger"}`}),e]})})}var a0=c(76047),a1=c(98033),a2=c(89184);let a3=[...ak,{id:"newTask",keys:["MOD","Shift","O"],scope:"global"},{id:"newTaskSend",keys:["MOD","↵"],scope:"global"}];function a4(){let{open:a,setOpen:b}=(0,a2.K)(),{open:c}=(0,ah.C)(),{isOpen:e}=(0,ai.hX)(),g=(0,q.c)("keyboardShortcuts"),[h,i]=(0,f.useState)(!1);(0,f.useRef)(a),(0,f.useRef)(c),(0,f.useRef)(e);let j=function(a=ak){return aj.map(b=>({scope:b,shortcuts:a.filter(a=>a.scope===b)})).filter(a=>a.shortcuts.length>0)}(a3);return(0,d.jsx)(a1.a,{isOpen:a,onClose:()=>b(!1),title:g("title"),size:"md",children:(0,d.jsx)("div",{"data-testid":"keyboard-shortcuts-overlay",className:"space-y-6",children:j.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:g(`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:g(`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)(ag.u,{children:al(a,h)},b))})]},a.id))})]},a))})})}var a5=c(18608),a6=c(55992),a7=c(94260);let a8=[{key:"added",labelKey:"whatsNew.added"},{key:"improved",labelKey:"whatsNew.improved"},{key:"fixed",labelKey:"whatsNew.fixed"}];function a9(){let a=(0,q.c)("common"),b=(0,a6.Ym)(),[c,e]=(0,f.useState)(null),[g,h]=(0,f.useState)(!1),i=(0,f.useCallback)(()=>{c&&function(a){try{window.localStorage.setItem("commandmate.lastSeenAppVersion",a)}catch{}}(c.to),h(!1)},[c]);if(!c)return null;let j="ja"===b?"ja":"en";return(0,d.jsx)(a1.a,{isOpen:g,onClose:i,title:a("whatsNew.title",{from:c.from,to:c.to}),size:"md",children:(0,d.jsxs)("div",{className:"space-y-4","data-testid":"whats-new-dialog",children:[0===c.notes.length?(0,d.jsx)("p",{className:"text-sm text-foreground","data-testid":"whats-new-empty",children:a("whatsNew.empty")}):c.notes.map(b=>(0,d.jsxs)("section",{className:"space-y-3","data-testid":`whats-new-version-${b.version}`,children:[(0,d.jsxs)("h4",{className:"text-sm font-semibold text-foreground",children:["v",b.version,(0,d.jsx)("span",{className:"ml-2 text-xs font-normal text-muted-foreground",children:b.date})]}),b.highlight&&(0,d.jsxs)("div",{"data-testid":"whats-new-highlight",children:[(0,d.jsx)("h5",{className:"text-xs font-medium text-muted-foreground",children:a("whatsNew.highlight")}),(0,d.jsx)("p",{className:"mt-1 text-sm text-foreground",children:b.highlight[j]})]}),a8.map(({key:c,labelKey:e})=>b[c].length>0?(0,d.jsxs)("div",{"data-testid":`whats-new-${c}`,children:[(0,d.jsx)("h5",{className:"text-xs font-medium text-muted-foreground",children:a(e)}),(0,d.jsx)("ul",{className:"mt-1 list-disc space-y-1 pl-5 text-sm text-foreground",children:b[c].map((a,b)=>(0,d.jsx)("li",{children:a[j]},b))})]},c):null)]},b.version)),(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 border-t border-border pt-3",children:[(0,d.jsx)("a",{href:`https://github.com/Kewton/CommandMate/releases/tag/v${c.to}`,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-accent-600 dark:text-accent-400 hover:underline","data-testid":"whats-new-release-link",children:a("whatsNew.releaseLink")}),(0,d.jsx)(a7.$,{type:"button",variant:"primary",size:"sm",onClick:i,"data-testid":"whats-new-close",children:a("whatsNew.close")})]})]})})}var ba=c(10063);function bb(a,b){return a.worktreeId===b.worktreeId&&a.instanceId===b.instanceId}var bc=c(17252);function bd(a){return a.agentInstances&&a.agentInstances.length>0?a.agentInstances.slice().sort((a,b)=>a.order-b.order):a.selectedAgents&&a.selectedAgents.length>0?(0,bc.lu)(a.selectedAgents):a.cliToolId?(0,bc.lu)([a.cliToolId]):[]}function be(a,b){let c=a.sessionStatusByInstance?.[b.id]??(b.id===b.cliTool?a.sessionStatusByCli?.[b.cliTool]:void 0),d=c?.startingSince,e=a.autoYesByInstance?.[b.id];return{instance:b,label:(0,bc.sw)(b),running:c?.isRunning===!0,starting:"number"==typeof d,autoYes:e?.enabled&&"number"==typeof e.expiresAt?e:null}}var bf=c(16730);let bg={promptWaiting:"PROMPT_WAITING",sessionStarting:"SESSION_STARTING",instanceToolConflict:"instance_tool_conflict"};async function bh(a){try{let b=await a.json(),c=b&&"object"==typeof b?b.expiresAt:null;if("number"==typeof c)return{enabled:!0,expiresAt:c}}catch{}return null}async function bi(a){try{let b=await a.json();if(b&&"object"==typeof b){let{error:a,code:c}=b;return{error:"string"==typeof a&&""!==a?a:null,code:"string"==typeof c?c:null}}}catch{}return{error:null,code:null}}async function bj(a,{modelRequested:b}){if(a.ok&&!a.redirected)return{ok:!0};let{status:c}=a,{error:d,code:e}=await bi(a);return{ok:!1,kind:409===c?e===bg.promptWaiting?"prompt_waiting":"conflict":503===c?e===bg.sessionStarting?"starting":"start_failed":400===c?b&&e!==bg.instanceToolConflict?"model_rejected":"invalid":"failed",status:a.ok?0:c,detail:d}}function bk(a){return{ok:!1,kind:"failed",status:0,detail:a instanceof aw.hD||a instanceof Error?a.message:null}}function bl(a,b){return new Promise((c,d)=>{let e=setTimeout(()=>{d(new aw.hD(`Request timed out after ${b}ms`,0,void 0,"timeout"))},b);a().then(a=>{clearTimeout(e),c(a)},a=>{clearTimeout(e),d(a)})})}async function bm(a,b=aw.E){let c,{target:d,cliToolId:e}=a,f=`/api/worktrees/${encodeURIComponent(d.worktreeId)}`,g={"Content-Type":"application/json"},h=!1,i=a.autoYesDuration;if(null!==i){let a,j=!1;try{a=await bl(async()=>{let a=await b(`${f}/auto-yes`,{method:"POST",headers:g,body:JSON.stringify({enabled:!0,cliToolId:e,instanceId:d.instanceId,duration:i})});if(!a.ok){let{error:b}=await bi(a);return{ok:!1,kind:"auto_yes_failed",status:a.status,detail:b}}return j=!0,c=await bh(a)??void 0,h=void 0===c,null},(0,bf.Z3)("POST"))}catch(a){if(!j){let b=bk(a);return b.ok?b:{...b,kind:"auto_yes_failed"}}return{...bk(a),autoYesStateUnknown:!0}}if(a)return a}let j=a=>c?{...a,armedAutoYes:c}:h?{...a,autoYesStateUnknown:!0}:a,k=a.model?.trim()||void 0,l=(0,bf.SE)();try{return j(await bl(async()=>{let c=await b(`${f}/send`,{method:"POST",headers:g,body:JSON.stringify({content:a.content,cliToolId:e,instanceId:d.instanceId,...k?{model:k}:{}}),timeoutMs:l});return bj(c,{modelRequested:void 0!==k})},l))}catch(a){return j(bk(a))}}let bn="w-full px-3 py-2 border border-input rounded-lg bg-surface text-foreground text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent disabled:opacity-60",bo="block text-xs font-medium text-muted-foreground mb-1";function bp({status:a,isEmpty:b,onRetry:c}){let e=(0,q.c)("common");return(0,d.jsxs)(d.Fragment,{children:["loading"===a&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"new-task-loading",children:e("newTask.loading")}),"error"===a&&(0,d.jsxs)("div",{className:"space-y-2",role:"alert","data-testid":"new-task-load-error",children:[(0,d.jsx)("p",{className:"text-sm text-danger",children:e("newTask.loadError")}),(0,d.jsx)("button",{type:"button",onClick:c,className:"px-3 py-1.5 text-sm font-medium text-foreground bg-muted hover:bg-muted/80 rounded-lg",children:e("retry")})]}),"ready"===a&&b&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"new-task-empty",children:e("newTask.noTargets")})]})}function bq({recentOptions:a,targetState:b,worktreeId:c,onSelect:e}){let f=(0,q.c)("common");return 0===a.length?null:(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:bo,children:f("newTask.recentLabel")}),(0,d.jsx)("div",{className:"flex flex-wrap gap-2","data-testid":"new-task-recents",children:a.map(({target:a,label:f})=>{let g=!!b&&bb(a,{worktreeId:c,instanceId:b.instance.id});return(0,d.jsx)("button",{type:"button","aria-pressed":g,"data-testid":"new-task-recent",onClick:()=>e(a),className:`max-w-full truncate rounded-full border px-3 py-1 text-xs transition-colors ${g?"border-accent-500 bg-accent-500/15 text-foreground":"border-border text-muted-foreground hover:text-foreground"}`,children:f},`${a.worktreeId}:${a.instanceId}`)})})]})}function br({repositoryOptions:a,repository:b,worktreeId:c,worktree:e,instances:f,instance:g,onRepositoryChange:h,onBranchChange:i,onAgentChange:j}){let k=(0,q.c)("common");return(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{htmlFor:"new-task-repository",className:bo,children:k("newTask.repositoryLabel")}),(0,d.jsx)("select",{id:"new-task-repository","data-testid":"new-task-repository",value:b?.path??"",onChange:a=>h(a.target.value),className:bn,children:a.map(a=>(0,d.jsx)("option",{value:a.path,children:a.name},a.path))})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{htmlFor:"new-task-branch",className:bo,children:k("newTask.branchLabel")}),(0,d.jsx)("select",{id:"new-task-branch","data-testid":"new-task-branch",value:c,onChange:a=>i(a.target.value),className:bn,children:(b?.worktrees??[]).map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{htmlFor:"new-task-agent",className:bo,children:k("newTask.agentLabel")}),(0,d.jsx)("select",{id:"new-task-agent","data-testid":"new-task-agent",value:g?.id??"",onChange:a=>j(a.target.value),className:bn,disabled:0===f.length,children:f.map(a=>{let b=e?be(e,a):null,c=b?.starting?"starting":b?.running?"running":"stopped";return(0,d.jsx)("option",{value:a.id,children:`${b?.label??a.id} — ${k(`newTask.agentStatus.${c}`)}`},a.id)})})]})]})}function bs({statusKey:a,agentLabel:b}){let c=(0,q.c)("common");return(0,d.jsxs)(d.Fragment,{children:["stopped"===a&&(0,d.jsx)("p",{className:"text-xs text-foreground","data-testid":"new-task-will-start",children:c("newTask.willStart",{agent:b})}),"starting"===a&&(0,d.jsx)("p",{className:"text-xs text-warning-foreground","data-testid":"new-task-starting",children:c("newTask.startingNotice",{agent:b})})]})}function bt({modelAvailability:a,model:b,cliTool:c,agentLabel:e,onChange:f}){let g=(0,q.c)("common");return(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{htmlFor:"new-task-model",className:bo,children:g("newTask.modelLabel")}),(0,d.jsx)("input",{id:"new-task-model","data-testid":"new-task-model",type:"text",value:a?.selectable?b:"",onChange:a=>f(a.target.value),placeholder:g("newTask.modelPlaceholder"),disabled:!a?.selectable,className:bn}),a&&(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground","data-testid":"new-task-model-note",children:a.selectable?g("copilot"===c?"newTask.modelHintSwitch":"newTask.modelHintLaunch"):g(`newTask.modelUnavailable.${a.reason}`,{agent:e})})]})}function bu({armedAutoYes:a,autoYesChoice:b,autoYesUnknown:c,onChoiceChange:e}){let f=(0,q.c)("common"),g=(0,q.c)("autoYes");return(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{htmlFor:"new-task-auto-yes",className:bo,children:f("newTask.autoYesLabel")}),a?(0,d.jsx)("p",{className:"text-sm text-foreground","data-testid":"new-task-auto-yes-active",children:f("newTask.autoYesActive",{remaining:(0,ba.$B)(a.expiresAt)})}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("select",{id:"new-task-auto-yes","data-testid":"new-task-auto-yes",value:b??"",onChange:a=>{let b=Number(a.target.value);e(""!==a.target.value&&(0,ba.dR)(b)?b:null)},className:bn,children:[(0,d.jsx)("option",{value:"",children:f(c?"newTask.autoYesKeepUnknown":"newTask.autoYesKeep")}),ba.z9.map(a=>(0,d.jsx)("option",{value:a,children:f("newTask.autoYesEnableFor",{duration:g(ba.Ni[a].replace("autoYes.",""))})},a))]}),c&&(0,d.jsx)("p",{className:"mt-1 text-xs text-warning-foreground","data-testid":"new-task-auto-yes-unknown",children:f("newTask.autoYesUnknown")}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:f("newTask.autoYesScope")}),null!==b&&(0,d.jsx)("p",{className:"mt-1 text-xs text-warning-foreground","data-testid":"new-task-auto-yes-risk",children:g("riskWarning")})]})]})}function bv({failure:a,agentLabel:b}){let c=(0,q.c)("common");return a?(0,d.jsxs)("div",{role:"alert","data-testid":"new-task-error","data-kind":a.kind,className:"rounded-lg border border-danger-border bg-danger-subtle px-3 py-2 text-sm text-danger-foreground",children:[(0,d.jsx)("p",{children:c(`newTask.errors.${a.kind}`,{agent:b})}),a.detail&&(0,d.jsx)("p",{className:"mt-1 break-words text-xs text-muted-foreground","data-testid":"new-task-error-detail",children:a.detail})]}):null}function bw(){var a;let{requestedTarget:b,screenTarget:c,closeNewTask:g,setCloseLocked:h}=(0,ai.hX)(),i=(0,e.useRouter)(),{showToast:j}=(0,au.dj)(),k=(0,q.c)("common"),[l,m]=(0,f.useState)({status:"loading"}),[n,o]=(0,f.useState)(0),[p]=(0,f.useState)(()=>[]),[r,s]=(0,f.useState)(""),[t,u]=(0,f.useState)(""),[v,w]=(0,f.useState)(""),[x,y]=(0,f.useState)(""),[z,A]=(0,f.useState)(null),[B,C]=(0,f.useState)(!1),[D,E]=(0,f.useState)(null),[F,G]=(0,f.useState)(!1),H=(0,f.useRef)(null),I=(0,f.useRef)(!0),K=(0,f.useRef)(!1),[L,M]=(0,f.useState)({}),[N,O]=(0,f.useState)({}),P=(0,f.useCallback)(()=>{K.current||g()},[g]);(0,f.useRef)([b,c,p[0]??null]),(0,f.useRef)(!1);let Q=(0,f.useMemo)(()=>"ready"===l.status?l.worktrees:[],[l]),R=(0,f.useMemo)(()=>"ready"===l.status?function(a,b=[]){let c=new Map;for(let d of a){let a=c.get(d.repositoryPath);if(!a){let e=b.find(a=>a.path===d.repositoryPath);a={path:d.repositoryPath,name:e?.displayName||e?.name||d.repositoryName,worktrees:[]},c.set(d.repositoryPath,a)}a.worktrees.push(d)}let d=Array.from(c.values());for(let a of d)a.worktrees.sort((a,b)=>a.name.localeCompare(b.name));return d.sort((a,b)=>a.name.localeCompare(b.name))}(l.worktrees,l.repositories):[],[l]),S=Q.find(a=>a.id===r)??null,T=(0,f.useMemo)(()=>S?bd(S):[],[S]),U=T.find(a=>a.id===t)??null,V=S&&U?be(S,U):null,W=S?R.find(a=>a.path===S.repositoryPath)??null:null,X=V?(a=V.instance.cliTool,"copilot"===a?{selectable:!0}:"claude"===a||"antigravity"===a?V.running||V.starting?{selectable:!1,reason:"running"}:{selectable:!0}:{selectable:!1,reason:"unsupported"}):null,Y=V?N[`${r}:${V.instance.id}`]??V.autoYes:null,Z=!function(a,b=Date.now()){return!!a&&a.enabled&&"number"==typeof a.expiresAt&&a.expiresAt-b>0}(Y)?null:Y,$=!!V&&!0===L[`${r}:${V.instance.id}`],[,_]=(0,f.useState)(0),aa=(0,f.useMemo)(()=>p.flatMap(a=>{let b=function(a,b){let c=a.find(a=>a.id===b.worktreeId);if(!c)return null;let d=bd(c).find(a=>a.id===b.instanceId);return d?{worktree:c,instance:d}:null}(Q,a);if(!b)return[];let c=R.find(a=>a.path===b.worktree.repositoryPath),d=be(b.worktree,b.instance).label;return[{target:a,label:`${c?.name??b.worktree.repositoryName} / ${b.worktree.name} / ${d}`}]}),[p,Q,R]),ab=(0,f.useCallback)(a=>{s(a.worktreeId),u(a.instanceId),E(null)},[]),ac=(0,f.useCallback)(a=>{let b=R.find(b=>b.path===a),c=b?.worktrees.find(a=>bd(a).length>0)??b?.worktrees[0];c&&ab({worktreeId:c.id,instanceId:bd(c)[0]?.id??""})},[R,ab]),ad=(0,f.useCallback)(a=>{let b=Q.find(b=>b.id===a);if(!b)return;let c=bd(b),d=c.find(a=>a.id===t);ab({worktreeId:b.id,instanceId:d?.id??c[0]?.id??""})},[Q,t,ab]),ae=!!V&&""!==v.trim()&&!B,af=(0,f.useCallback)(async()=>{var a;if(!ae||!S||!V)return;let b={worktreeId:S.id,instanceId:V.instance.id};K.current=!0,h(!0),C(!0),E(null);let c=await bm({target:b,cliToolId:V.instance.cliTool,content:v.trim(),model:X?.selectable?x:void 0,autoYesDuration:Z?null:z});if(K.current=!1,h(!1),!I.current)return;let{armedAutoYes:d}=c,e=`${b.worktreeId}:${b.instanceId}`;if(c.autoYesStateUnknown&&M(a=>({...a,[e]:!0})),d&&(M(a=>{let{[e]:b,...c}=a;return c}),O(a=>({...a,[e]:d})),A(null)),!c.ok){E(c),C(!1);return}[{worktreeId:(a=b).worktreeId,instanceId:a.instanceId},...[].filter(b=>!bb(b,a))].slice(0,3);let f=`${window.location.pathname}${window.location.search}`,l=`${S.name} / ${V.label}`;g(),i.push((0,J.Ii)(b)),j(k("newTask.sentToast",{target:l}),"success",6e3,{onClick:()=>i.push(f)})},[ae,S,V,v,X,x,Z,z,g,h,i,j,k]),ah=(0,f.useCallback)(a=>{var b,c;!0!==(c=b=a.nativeEvent).isComposing&&229!==c.keyCode&&"Enter"===b.key&&!b.shiftKey&&!b.altKey&&(b.metaKey||b.ctrlKey)&&(a.preventDefault(),af())},[af]),aj=V?.label??"",ak=V?V.starting?"starting":V.running?"running":"stopped":null;return(0,d.jsx)(a1.a,{isOpen:!0,onClose:P,title:k("newTask.title"),size:"md",disableClose:B,children:(0,d.jsxs)("div",{"data-testid":"new-task-dialog",className:"space-y-4",onKeyDown:ah,children:[(0,d.jsx)(bp,{status:l.status,isEmpty:0===R.length,onRetry:()=>o(a=>a+1)}),"ready"===l.status&&R.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(bq,{recentOptions:aa,targetState:V,worktreeId:r,onSelect:ab}),(0,d.jsx)(br,{repositoryOptions:R,repository:W,worktreeId:r,worktree:S,instances:T,instance:U,onRepositoryChange:ac,onBranchChange:ad,onAgentChange:a=>ab({worktreeId:r,instanceId:a})}),(0,d.jsx)(bs,{statusKey:ak,agentLabel:aj}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{htmlFor:"new-task-message",className:bo,children:k("newTask.messageLabel")}),(0,d.jsx)("textarea",{ref:H,id:"new-task-message","data-testid":"new-task-message",value:v,onChange:a=>w(a.target.value),placeholder:k("newTask.messagePlaceholder"),rows:5,className:`${bn} resize-y`})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,d.jsx)(bt,{modelAvailability:X,model:x,cliTool:V?.instance.cliTool,agentLabel:aj,onChange:y}),(0,d.jsx)(bu,{armedAutoYes:Z,autoYesChoice:z,autoYesUnknown:$,onChoiceChange:A})]})]}),(0,d.jsx)(bv,{failure:D,agentLabel:aj}),(0,d.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,d.jsxs)("span",{className:"mr-auto hidden items-center gap-1 text-xs text-muted-foreground sm:flex",children:[(0,d.jsx)(ag.u,{children:al("MOD",F)}),(0,d.jsx)(ag.u,{children:"↵"}),(0,d.jsx)("span",{children:k("newTask.sendHint")})]}),(0,d.jsx)("button",{type:"button","data-testid":"new-task-cancel",onClick:P,disabled:B,className:"px-4 py-2 text-sm font-medium text-foreground bg-muted hover:bg-muted/80 rounded-lg transition-colors disabled:opacity-50",children:k("cancel")}),(0,d.jsx)("button",{type:"button","data-testid":"new-task-send",onClick:()=>void af(),disabled:!ae,className:"px-4 py-2 text-sm font-medium text-white bg-accent-600 hover:bg-accent-700 disabled:opacity-50 disabled:cursor-not-allowed rounded-lg transition-colors",children:B?k("newTask.sending"):k("newTask.send")})]})]})})}function bx(){let{isOpen:a,openNewTask:b}=(0,ai.hX)(),{open:c}=(0,ah.C)();return(0,f.useRef)(c),a?(0,d.jsx)(bw,{}):null}var by=c(11010);let bz="transform transition-transform duration-300 ease-out",bA=(0,f.memo)(function({children:a}){let{isOpen:b,isMobileDrawerOpen:c,closeMobileDrawer:g,width:m,setWidth:n,repoTabBarMode:o,toggle:p}=(0,h.VF)(),q=(0,i.a)(),{showSidebar:r,showGlobalNav:s}=function(){var a=(0,e.usePathname)();for(let b of k)if(a.startsWith(b.prefix))return{...j,...b.config};return{...j}}(),{open:t}=(0,ah.C)();(0,f.useRef)(t),(0,f.useRef)(p);let{factor:u}=(0,l.Ps)(),v=Math.round(160*u),w=Math.round(480*u),x=Math.round(Math.min(w,Math.max(v,m*u))),y=(0,J.fs)(o??J.PB,b),z=(0,f.useRef)(null),A=(0,f.useRef)(null),B=(0,f.useRef)(null),C=(0,f.useRef)(c);(0,f.useLayoutEffect)(()=>{let a=C.current;if(C.current=c,!q||!a||c)return;let b=document.activeElement,d=b instanceof HTMLElement&&B.current?.contains(b)===!0;(d||null===b||b===document.body)&&!(0,aY.Bl)()&&d&&b.blur()},[q,c]);let D=(0,f.useCallback)(a=>{n(Math.round(a/u))},[n,u]);return q?(0,d.jsx)(ai.Zg,{children:(0,d.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex flex-col",children:[(0,d.jsx)(a_,{}),c&&(0,d.jsx)("div",{"data-testid":"drawer-overlay",className:"fixed inset-0 bg-black/50 z-40",onClick:g,"aria-hidden":"true"}),r&&(0,d.jsx)("aside",{ref:B,"data-testid":"sidebar-container",className:`
4
+ data-[state=open]:text-sidebar-foreground ${b?"":"[@media(hover:none)]:hidden"}`,children:(0,d.jsx)(g.A,{className:"h-4 w-4","aria-hidden":"true"})})}),(0,d.jsxs)(j.SQ,{align:"end",[o]:"",onEscapeKeyDown:a=>a.stopPropagation(),children:[(0,d.jsx)(j._2,{asChild:!0,children:(0,d.jsx)("a",{href:`/worktrees/${a.id}`,target:"_blank",rel:"noopener noreferrer",children:r("branchItem.openInNewTab")})}),(0,d.jsx)(j._2,{onSelect:()=>void u(a.name),children:r("branchItem.copyBranchName")}),a.worktreePath&&(0,d.jsx)(j._2,{onSelect:()=>void u(a.worktreePath??""),children:r("branchItem.copyPath")}),q&&(0,d.jsxs)(i.Pb,{children:[(0,d.jsxs)(i.ZP,{"data-testid":"branch-row-status",className:"relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-muted data-[state=open]:bg-muted",children:[(0,d.jsx)("span",{className:"flex-1",children:r("branchItem.status")}),(0,d.jsx)("span",{"data-testid":"branch-row-status-current",className:"text-xs text-muted-foreground",children:s((0,n.Zh)(p))}),(0,d.jsx)(h.A,{className:"h-3.5 w-3.5 text-muted-foreground","aria-hidden":"true"})]}),(0,d.jsx)(i.ZL,{children:(0,d.jsx)(i.G5,{[o]:"",sideOffset:4,collisionPadding:8,style:{zIndex:m.M.POPOVER},className:"min-w-[9rem] overflow-hidden rounded-md border border-border bg-surface p-1 text-surface-foreground shadow-lg",onEscapeKeyDown:a=>a.stopPropagation(),children:(0,d.jsx)(j.Hr,{value:p??"",onValueChange:a=>{let b=""===a?null:a;b!==p&&q(b)},children:n.m9.map(a=>(0,d.jsx)(j.Ht,{value:a.value??"",children:s(a.labelKey)},a.labelKey))})})})]})]})]})})},3890:(a,b,c)=>{"use strict";c.d(b,{AppProviders:()=>E});var d=c(21124),e=c(42378);let f=["/login","/api/auth/login","/api/auth/logout","/api/auth/status","/api/remote/pair","/manifest.webmanifest","/sw.js","/offline"];var g=c(37397),h=c(45523),i=c(81092),j=c(84342),k=c(5772),l=c(64632),m=c(89184),n=c(63157),o=c(52761),p=c(74930),q=c(79782),r=c(23910),s=c(62197),t=c(73060),u=c(63474),v=c(74132),w=c(67693),x=c(90102),y=c(38301),z=c(20481),A=c(25345),B=c(11010),C=c(18608);function D(){let a=(0,z.c)("pwa"),[b,c]=(0,y.useState)(null);(0,y.useRef)(!1);let e=(0,C.W)();return!b||e?null:(0,d.jsx)("div",{"data-testid":"pwa-update-toast",role:"status","aria-live":"polite",className:"pointer-events-none fixed bottom-0 right-0 flex max-w-full justify-end px-4 pb-safe",style:{zIndex:B.M.TOAST},children:(0,d.jsxs)("div",{"data-testid":"pwa-update-toast-card",className:"pointer-events-auto mb-4 flex items-center gap-3 rounded-lg border border-border bg-surface px-4 py-3 shadow-lg",children:[(0,d.jsx)("span",{className:"text-sm font-medium text-foreground",children:a("update.available")}),(0,d.jsxs)("button",{type:"button",onClick:()=>{b.postMessage({type:"SKIP_WAITING"})},className:"inline-flex items-center gap-1.5 rounded-md bg-accent-600 px-3 py-1.5 text-sm font-medium text-white transition-colors hover:bg-accent-700 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background dark:bg-accent-500 dark:hover:bg-accent-600",children:[(0,d.jsx)(A.A,{className:"h-4 w-4"}),a("update.reload")]})]})})}function E({children:a,locale:b,messages:c,timeZone:y,authEnabled:z=!1}){var A;let B=(A=(0,e.usePathname)(),!z||!f.includes(A??""));return(0,d.jsx)(g.default,{locale:b,messages:c,timeZone:y,children:(0,d.jsx)(u.tE,{children:(0,d.jsx)(h.N,{attribute:"class",defaultTheme:"system",enableSystem:!0,children:(0,d.jsx)(j.O,{authEnabled:z,children:(0,d.jsx)(k.W5,{children:(0,d.jsx)(i.GB,{children:(0,d.jsx)(p.tS,{enabled:B,children:(0,d.jsxs)(n.g7,{enabled:B,children:[(0,d.jsx)(v.rM,{}),(0,d.jsx)(x.o,{}),(0,d.jsx)(w.H,{}),(0,d.jsx)(l.E,{children:(0,d.jsx)(m.S,{children:(0,d.jsx)(q.aF,{children:(0,d.jsx)(r.y2,{enabled:B,children:(0,d.jsxs)(s.NS,{children:[(0,d.jsx)(o.Bo,{children:a}),(0,d.jsx)(D,{}),(0,d.jsx)(t.gZ,{})]})})})})})]})})})})})})})})}},4267:(a,b,c)=>{"use strict";c.d(b,{Lt:()=>h,Wj:()=>f,eu:()=>e,fJ:()=>g});var d=c(17252);let e=2,f=6,g=["claude","codex","antigravity"];function h(a){return a.length<e||a.length>f?{valid:!1,error:`Must be ${e}-${f} elements`}:a.every(a=>"string"==typeof a&&d.XH.includes(a))?new Set(a).size!==a.length?{valid:!1,error:"Duplicate tool IDs not allowed"}:{valid:!0,value:a}:{valid:!1,error:"Invalid CLI tool ID"}}},4558:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(43692),e=c(86802),f=c(25754);let g=(0,d.A)(async({requestLocale:a})=>{let b=await a;if(!(0,f.d9)(b)){let a=await (0,e.UL)(),c=await (0,e.b3)();b=(0,f.rv)(a.get(f.gB)?.value,c.get("accept-language"))}let[d,g,h,i,j,k,l,m,n,o,p,q,r,s,t]=await Promise.all([c(61118)(`./${b}/common.json`),c(90338)(`./${b}/worktree.json`),c(62081)(`./${b}/autoYes.json`),c(66125)(`./${b}/error.json`),c(72637)(`./${b}/prompt.json`),c(51877)(`./${b}/auth.json`),c(38898)(`./${b}/schedule.json`),c(80407)(`./${b}/commandPalette.json`),c(70288)(`./${b}/home.json`),c(60887)(`./${b}/review.json`),c(75567)(`./${b}/pwa.json`),c(99127)(`./${b}/notifications.json`),c(1483)(`./${b}/keyboardShortcuts.json`),c(80812)(`./${b}/externalApps.json`),c(18913)(`./${b}/skills.json`)]);return{locale:b,timeZone:"UTC",messages:{common:d.default,worktree:g.default,autoYes:h.default,error:i.default,prompt:j.default,auth:k.default,schedule:l.default,commandPalette:m.default,home:n.default,review:o.default,pwa:p.default,notifications:q.default,keyboardShortcuts:r.default,externalApps:s.default,skills:t.default}}})},5682:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/CommandMate/CommandMate/src/app/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/app/error.tsx","default")},5772:(a,b,c)=>{"use strict";c.d(b,{Ps:()=>k,W5:()=>j});var d=c(21124),e=c(38301),f=c(90076),g=c(12480);let h={size:g.r5,setSize:()=>{},isMobile:!1,factor:g.d8[g.r5].factor,isAvailable:!1},i=(0,e.createContext)(h);function j({children:a}){let{size:b,setSize:c,isAvailable:h}=(0,g.of)(),j=(0,f.a)(),k=(0,e.useMemo)(()=>({size:b,setSize:c,isMobile:j,factor:g.d8[b].factor,isAvailable:h}),[b,c,j,h]);return(0,d.jsx)(i.Provider,{value:k,children:a})}function k(){return(0,e.useContext)(i)}},6074:(a,b,c)=>{"use strict";c.d(b,{O:()=>e});var d=c(38301);function e(a,b){let[c,e]=(0,d.useState)(a?"open":"closed");return a&&"open"!==c?e("open"):a||"open"!==c||e("exiting"),{shouldRender:a||"closed"!==c,isExiting:!a&&"exiting"===c}}},9042:(a,b,c)=>{"use strict";c.d(b,{AppShellGate:()=>bE});var d=c(21124),e=c(42378),f=c(38301),g=c.n(f),h=c(81092),i=c(90076);let j={showSidebar:!0,showGlobalNav:!0,showLocalNav:!1,autoCollapseSidebar:!1},k=[{prefix:"/worktrees/",config:{showGlobalNav:!1,showLocalNav:!0}},{prefix:"/sessions",config:{autoCollapseSidebar:!0}}];var l=c(5772),m=c(3991),n=c.n(m),o=c(52761);let p=(0,f.forwardRef)(function({href:a,onClick:b,target:c,...f},g){let h=(0,e.usePathname)(),i=(0,o.Hq)();return(0,d.jsx)(n(),{ref:g,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&&i.push(a))},...f})});var q=c(20481),r=c(75903),s=c(65828),t=c(59268),u=c(94684),v=c(10366),w=c(99615),x=c(22023),y=c(47817),z=c(38812),A=c(1637),B=c(72380),C=c(77560),D=c(89877);let E=(0,f.memo)(function({worktrees:a,visibleWorktreeIds:b,selectedWorktreeId:c,onSelect:e,onNavigate:f}){let g=(0,q.c)("common"),h=a.length;if(0===h)return null;let i=a.slice(0,3),j=h-i.length;return(0,d.jsxs)("section",{"data-testid":"sidebar-needs-attention","aria-label":g("sidebar.needsAttention"),className:"flex-shrink-0 px-2 pt-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 px-2 pb-1 text-xs text-sidebar-muted",children:[(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",children:g("sidebar.needsAttention")}),(0,d.jsx)("span",{"data-testid":"sidebar-needs-attention-count","aria-label":g("attention.badgeLabel",{count:h}),className:"flex-shrink-0 rounded-full bg-warning-subtle px-1.5 font-semibold leading-5 tabular-nums text-warning-foreground",children:h>99?"99+":h})]}),(0,d.jsx)("ul",{className:"space-y-0.5",children:i.map(a=>{let f=(0,D.XK)(a),h=!b.has(a.id),i=a.id===c;return(0,d.jsx)("li",{children:(0,d.jsxs)("button",{type:"button","data-testid":"sidebar-attention-item","data-hidden-repository":h?"true":void 0,onClick:()=>e(a.id),"aria-current":i?"true":void 0,title:`${f.name} \xb7 ${f.repositoryName}`,className:`flex h-[34px] w-full min-w-0 items-center gap-2 rounded-md px-2 text-left transition-colors hover:bg-sidebar-hover focus:outline-none focus-visible:ring-2 focus-visible:ring-ring ${i?"bg-sidebar-hover":""}`,children:[(0,d.jsx)("span",{className:"flex w-4 flex-shrink-0 items-center justify-center",children:(0,d.jsx)(A.Ej,{status:"waiting",waitingKind:f.waitingKind})}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate text-sm text-sidebar-foreground",children:f.name}),(0,d.jsx)("span",{className:"min-w-0 max-w-[40%] flex-shrink truncate text-xs text-sidebar-muted",children:f.repositoryName}),h&&(0,d.jsx)(B.A,{"data-testid":"sidebar-attention-hidden-repository",className:"h-3.5 w-3.5 flex-shrink-0 text-sidebar-muted","aria-label":g("sidebar.hiddenRepository"),role:"img"})]})},a.id)})}),(0,d.jsx)(p,{href:C.ks,"data-testid":"sidebar-needs-attention-review-link",onClick:f,className:"mt-0.5 flex min-w-0 items-center rounded-md px-2 py-1 text-xs text-sidebar-muted transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:(0,d.jsx)("span",{className:"min-w-0 truncate",children:j>0?g("sidebar.attentionMoreInReview",{count:j}):g("sidebar.openInReview")})})]})}),F=(0,f.memo)(function({branches:a,selectedWorktreeId:b,onBranchClick:c,forceExpanded:e}){let g=(0,q.c)("common"),[h,i]=(0,f.useState)(!1),j=e||h;return(0,d.jsxs)("div",{"data-testid":"branch-group-other",children:[(0,d.jsx)("div",{className:z.R8,children:(0,d.jsxs)("button",{type:"button","data-testid":"branch-group-other-toggle","aria-expanded":j,disabled:e,onClick:()=>i(a=>!a),className:"flex h-[30px] w-full min-w-0 items-center gap-2 rounded-[10px] px-3 text-left text-xs text-sidebar-muted transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:cursor-default disabled:hover:bg-transparent",children:[(0,d.jsx)("svg",{className:`h-3 w-3 flex-shrink-0 transition-transform ${j?"rotate-90":""}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,"aria-hidden":"true",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"})}),(0,d.jsx)("span",{className:"min-w-0 truncate",children:g("sidebar.otherBranches",{count:a.length})})]})}),j&&a.map(a=>(0,d.jsx)(z.yP,{branch:a,isSelected:a.id===b,onClick:()=>c(a.id),showRepositoryName:!1},a.id))]})});var G=c(85866),H=c(64936),I=c(10290),J=c(32482),K=c(35595);let L=[{mode:"grouped",labelKey:"sidebar.viewMode.grouped"},{mode:"flat",labelKey:"sidebar.viewMode.flat"},{mode:"sessions",labelKey:"sidebar.viewMode.sessions"}],M=[{key:"updatedAt",labelKey:"sort.updatedAt"},{key:"repositoryName",labelKey:"sort.repositoryName"},{key:"branchName",labelKey:"sort.branchName"},{key:"status",labelKey:"sort.status"}],N={updatedAt:"desc"},O={updatedAt:{asc:"sort.direction.oldestFirst",desc:"sort.direction.newestFirst"},repositoryName:{asc:"sort.direction.aToZ",desc:"sort.direction.zToA"},branchName:{asc:"sort.direction.aToZ",desc:"sort.direction.zToA"},status:{asc:"sort.direction.attentionFirst",desc:"sort.direction.attentionLast"}},P={asc:"sort.ascending",desc:"sort.descending"};function Q(a){a.preventDefault()}let R=(0,f.memo)(function({viewMode:a,onViewModeChange:b}){let c=(0,q.c)("common"),{sortKey:e,sortDirection:g,setSortKey:i,setSortDirection:j}=(0,h.VF)(),k=(0,f.useId)(),l=(0,f.useId)(),m=(0,f.useMemo)(()=>{let a=O[e]??P;return b=>c(a[b])},[e,c]),n=c(L.find(b=>b.mode===a)?.labelKey??"sidebar.viewMode.grouped"),o=c(M.find(a=>a.key===e)?.labelKey??`sort.${e}`),p=c("sidebar.listOptionsSummary",{view:n,sort:o,direction:m(g)}),r=a===h.e8&&e===h.P0&&g===h.RA,s=N[e]??"asc";return(0,d.jsxs)(I.rI,{children:[(0,d.jsx)(I.ty,{asChild:!0,children:(0,d.jsxs)("button",{type:"button","data-testid":"sidebar-list-options","data-view-mode":a,"data-sort-key":e,"data-sort-direction":g,"aria-label":c("sidebar.listOptionsLabel",{summary:p}),title:p,className:"relative flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-md text-sidebar-muted transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring data-[state=open]:bg-sidebar-hover data-[state=open]:text-sidebar-foreground",children:[(0,d.jsx)(H.A,{className:"h-4 w-4","aria-hidden":"true"}),!r&&(0,d.jsx)("span",{"data-testid":"sidebar-list-options-indicator","aria-hidden":"true",className:"absolute right-1 top-1 h-1.5 w-1.5 rounded-full bg-accent-500"})]})}),(0,d.jsxs)(I.SQ,{"data-testid":"sidebar-list-options-menu",align:"end",collisionPadding:8,className:(0,K.cn)("w-52 max-w-[calc(100vw-16px)]","max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto"),children:[(0,d.jsx)(I.lp,{id:k,children:c("sidebar.viewLabel")}),(0,d.jsx)(I.Hr,{"data-testid":"view-mode-options","aria-labelledby":k,value:a,onValueChange:c=>{(0,J.$m)(c)&&c!==a&&b(c)},children:L.map(({mode:a,labelKey:b})=>(0,d.jsx)(I.Ht,{value:a,onSelect:Q,children:c(b)},a))}),(0,d.jsx)(I.mB,{}),(0,d.jsx)(I.lp,{id:l,children:c("sort.label")}),(0,d.jsx)(I.Hr,{"data-testid":"sort-key-options","aria-labelledby":l,value:e,onValueChange:a=>{let b=M.find(b=>b.key===a);b&&b.key!==e&&(i(b.key),j(N[b.key]??"asc"))},children:M.map(({key:a,labelKey:b})=>(0,d.jsx)(I.Ht,{value:a,onSelect:Q,children:c(b)},a))}),(0,d.jsx)(I.mB,{}),(0,d.jsx)(I.Hr,{"data-testid":"sort-direction-options","aria-label":c("sort.directionLabel"),value:g,onValueChange:a=>{("asc"===a||"desc"===a)&&j(a)},children:("asc"===s?["asc","desc"]:["desc","asc"]).map(a=>(0,d.jsx)(I.Ht,{value:a,onSelect:Q,children:m(a)},a))})]})]})}),S=(0,f.memo)(function({searchQuery:a,onSearchChange:b,viewMode:c,onViewModeChange:e}){let f=(0,q.c)("common");return(0,d.jsxs)("div",{"data-testid":"sidebar-list-toolbar",className:"flex flex-shrink-0 items-center gap-1 px-3 pt-2 pb-1.5",children:[(0,d.jsx)(G.pd,{type:"text",inputSize:"sm",placeholder:f("sidebar.searchBranches"),"aria-label":f("sidebar.searchBranches"),value:a,onChange:a=>b(a.target.value),className:"min-w-0 flex-1 border-sidebar-border bg-background shadow-none"}),(0,d.jsx)(R,{viewMode:c,onViewModeChange:e})]})});var T=c(1102),U=c(81497),V=c(45523),W=c(84342),X=c(85744),Y=c(62197),Z=c(12480),$=c(68232);async function _(){try{await fetch("/api/auth/logout",{method:"POST"}),window.location.href="/login"}catch{window.location.href="/login"}}let aa=I.ty;function ab(){let a=(0,q.c)("common"),{size:b,setSize:c}=(0,l.Ps)(),e=(0,h.pT)();return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(I.mB,{}),(0,d.jsx)(I.lp,{children:a("displaySize.ariaLabel")}),(0,d.jsx)(I.Hr,{value:b,onValueChange:a=>{(0,Z.fM)(a)&&c(a)},children:Z.Uf.map(b=>(0,d.jsx)(I.Ht,{value:b,children:a(`displaySize.${b}`)},b))}),e&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(I.lp,{children:a("repoTabBar.settingLabel")}),(0,d.jsx)(I.Hr,{value:e.repoTabBarMode,onValueChange:a=>{(0,J.m3)(a)&&e.setRepoTabBarMode(a)},children:J.EN.map(b=>(0,d.jsx)(I.Ht,{value:b,children:a(`repoTabBar.mode.${b}`)},b))})]})]})}function ac({children:a,testIdPrefix:b,side:c="top",align:e="end",showDisplayPreferences:g=!1,onNavigate:h}){let j=(0,q.c)("worktree"),k=(0,o.Hq)(),{theme:l,setTheme:m}=(0,V.D)(),{currentLocale:n,switchLocale:p}=(0,X.g)(),r=(0,W.H)(),s=(0,i.a)(),{open:t}=(0,Y.V0)(),u=(0,f.useRef)(!1),v=(0,f.useRef)(null),w="0.47.2",x=a=>{h?.(),k.push(a)};return(0,d.jsxs)(I.rI,{children:[a,(0,d.jsxs)(I.SQ,{side:c,align:e,collisionPadding:8,className:"w-56 max-w-[calc(100vw-16px)] max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto",onCloseAutoFocus:()=>{u.current&&(u.current=!1,queueMicrotask(t))},children:[(0,d.jsx)(I.lp,{"data-testid":`${b}-version`,children:j("activityBar.settingsMenu.version",{version:w?`v${w}`:"-"})}),(0,d.jsx)(I._2,{asChild:!0,onSelect:()=>{let a=v.current;if(v.current=null,!(a&&(0!==a.button||a.metaKey||a.ctrlKey||a.shiftKey||a.altKey))){if(a?.preventDefault(),s)return void x("/more");u.current=!0}},children:(0,d.jsx)("a",{href:"/more","data-testid":`${b}-settings`,onClick:a=>{v.current=a},children:j("activityBar.settingsMenu.settings")})}),(0,d.jsx)(I._2,{onSelect:()=>x("/skills"),children:j("activityBar.settingsMenu.skills")}),(0,d.jsx)(I.mB,{}),(0,d.jsx)(I.lp,{children:j("activityBar.settingsMenu.theme")}),(0,d.jsxs)(I.Hr,{value:l??"system",onValueChange:a=>m(a),children:[(0,d.jsx)(I.Ht,{value:"light",children:j("activityBar.settingsMenu.themeLight")}),(0,d.jsx)(I.Ht,{value:"dark",children:j("activityBar.settingsMenu.themeDark")}),(0,d.jsx)(I.Ht,{value:"system",children:j("activityBar.settingsMenu.themeSystem")})]}),(0,d.jsx)(I.lp,{children:j("activityBar.settingsMenu.language")}),(0,d.jsx)(I.Hr,{value:n,onValueChange:a=>p(a),children:$.dI.map(a=>(0,d.jsx)(I.Ht,{value:a,children:$.vK[a]},a))}),g&&!s&&(0,d.jsx)(ab,{}),(0,d.jsx)(I.mB,{}),(0,d.jsx)(I._2,{asChild:!0,children:(0,d.jsx)("a",{href:"https://github.com/kewton/MyCodeBranchDesk",target:"_blank",rel:"noopener noreferrer",children:j("activityBar.settingsMenu.github")})}),r&&(0,d.jsx)(I._2,{onSelect:()=>{_()},children:j("activityBar.settingsMenu.logout")})]})]})}var ad=c(15917),ae=c(76180),af=c(88285),ag=c(85647),ah=c(64632),ai=c(21787);let aj=["global","terminal","composer","editor"],ak=[{id:"commandPalette",keys:["MOD","K"],scope:"global"},{id:"toggleSidebar",keys:["MOD","B"],scope:"global"},{id:"keyboardHelp",keys:["?"],scope:"global"},{id:"closeOverlay",keys:["Esc"],scope:"global"},{id:"navigateList",keys:["↑","↓"],scope:"global"},{id:"terminalSearch",keys:["MOD","F"],scope:"terminal"},{id:"toggleSurfaceMode",keys:["MOD","Shift","M"],scope:"terminal"},{id:"sendMessage",keys:["↵"],scope:"composer"},{id:"composerNewline",keys:["Shift","↵"],scope:"composer"},{id:"editorIndent",keys:["Tab"],scope:"editor"},{id:"editorOutdent",keys:["Shift","Tab"],scope:"editor"},{id:"editorTabFocus",keys:["Ctrl","M"],scope:"editor"},{id:"editorSave",keys:["MOD","S"],scope:"editor"},{id:"editorFullscreen",keys:["MOD","Shift","F"],scope:"editor"}];function al(a,b){return"MOD"===a?b?"⌘":"Ctrl":a}var am=c(77028),an=c(14346),ao=c(47089);let ap="flex items-center justify-center rounded-md text-sidebar-muted transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",aq={width:`${J.KI}px`,height:`${J.KI}px`};function ar({testId:a,onClose:b}){let c=(0,q.c)("common"),{isOpen:e,toggle:f}=(0,h.VF)(),g=c(e?"sidebar.close":"sidebar.open"),i=e?am.A:an.A;return(0,d.jsx)("div",{"data-sidebar-toggle-cell":"",className:"flex flex-shrink-0",style:{padding:`${J.df}px`},children:b?(0,d.jsx)("button",{type:"button","data-testid":a,onClick:b,"aria-label":c("sidebar.close"),style:aq,className:ap,children:(0,d.jsx)(ao.A,{size:20,"aria-hidden":"true"})}):(0,d.jsx)(T.m_,{content:g,placement:e?"bottom":"right",children:(0,d.jsx)("button",{type:"button","data-testid":a,onClick:f,"aria-label":g,"aria-expanded":e,style:aq,className:ap,children:(0,d.jsx)(i,{size:20,"aria-hidden":"true"})})})})}let as="flex w-full min-w-0 items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm text-sidebar-muted transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring";function at({drawer:a=!1}){let b=(0,q.c)("common"),c=(0,q.c)("commandPalette"),{setOpen:e}=(0,ah.C)(),{openNewTask:f}=(0,ai.hX)(),{closeMobileDrawer:i}=(0,h.VF)(),j=function(){let[a,b]=g().useState(null);return a}(),k=a?i:void 0;return(0,d.jsxs)("div",{"data-testid":a?"sidebar-drawer-top-controls":"sidebar-top-controls",className:"flex-shrink-0",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center",children:[a?(0,d.jsx)(ar,{testId:"sidebar-drawer-close",onClose:i}):(0,d.jsx)(ar,{testId:"sidebar-panel-toggle"}),(0,d.jsxs)(p,{href:"/",onClick:k,"data-testid":"sidebar-logo",className:"flex min-w-0 items-center gap-2 rounded-md px-1 py-1 transition-opacity hover:opacity-80 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,d.jsx)("span",{className:"flex h-6 w-6 flex-shrink-0 items-center justify-center rounded-md bg-accent-600",children:(0,d.jsx)(ad.A,{size:14,strokeWidth:2,className:"text-white","aria-hidden":"true"})}),(0,d.jsx)("span",{className:"truncate text-sm font-bold text-sidebar-foreground",children:"CommandMate"})]})]}),(0,d.jsxs)("div",{className:"space-y-0.5 px-2",children:[(0,d.jsxs)("button",{type:"button","data-testid":"sidebar-new-task",onClick:()=>{k?.(),f()},"aria-haspopup":"dialog",className:as,children:[(0,d.jsx)(ae.A,{className:"h-4 w-4 flex-shrink-0","aria-hidden":"true"}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",children:b("newTask.title")})]}),(0,d.jsxs)("button",{type:"button","data-testid":"sidebar-search",onClick:()=>{k?.(),e(!0)},"aria-label":c("mobileTrigger"),className:as,children:[(0,d.jsx)(af.A,{className:"h-4 w-4 flex-shrink-0","aria-hidden":"true"}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",children:c("searchAction")}),!a&&null!==j&&(0,d.jsxs)("span",{className:"flex flex-shrink-0 items-center gap-0.5","aria-hidden":"true",children:[(0,d.jsx)(ag.u,{children:j}),(0,d.jsx)(ag.u,{children:"K"})]})]})]})]})}var au=c(63474),av=c(19463),aw=c(78352),ax=c(95239);let ay=0,az=(0,f.memo)(function(){let a=(0,o.Hq)(),{worktrees:b,repositories:c,selectedWorktreeId:j,selectWorktree:k,refreshWorktrees:l,isLoading:m,error:n}=(0,y.$f)(),{closeMobileDrawer:p,sortKey:u,sortDirection:x,viewMode:A,setViewMode:B,repositoryOrder:F,setRepositoryOrder:H}=(0,h.VF)(),I=(0,q.c)("common"),K=(0,e.usePathname)()??"",L=(0,J.jn)(K,j),M=(0,i.a)(),{count:N}=(0,av.Lv)(),[O,P]=(0,f.useState)(""),Q=(0,f.useRef)(null),[R,T]=(0,f.useState)(()=>({})),U=(0,f.useRef)(!1);(0,f.useEffect)(()=>{U.current||(U.current=!0,fetch("/api/sidebar/group-order").then(a=>a.json()).then(a=>{a.success&&Array.isArray(a.order)&&H(a.order)}).catch(()=>{}))},[H]);let V=(0,f.useMemo)(()=>(0,J.UZ)(c),[c]),W=(0,f.useMemo)(()=>(0,J.s6)(b,V),[b,V]),X=(0,f.useMemo)(()=>(0,av.Rc)(b),[b]),Y=(0,f.useMemo)(()=>new Set(W.map(a=>a.id)),[W]),Z=(0,f.useMemo)(()=>W.map(D.XK),[W]),$=(0,f.useMemo)(()=>new Map(Z.map(a=>[a.id,a])),[Z]),_=(0,f.useDeferredValue)(Z),aa=(0,f.useRef)(null),ab=(0,f.useRef)(null),ac=(0,f.useRef)(null),ad=(0,f.useRef)(new Set),[ae,af]=(0,f.useState)(0);(0,f.useEffect)(()=>()=>{null!==ab.current&&clearTimeout(ab.current)},[]);let ag=(0,f.useCallback)(()=>{null!==ab.current&&(clearTimeout(ab.current),ab.current=null),aa.current=null,ac.current=null},[]),ah=(0,f.useMemo)(()=>{let a=aa.current;return!a||0===a.items.length||Date.now()>=a.expiresAt?_:a.items},[_,ae]),ai=(0,f.useRef)(ah),aj=ac.current,ak=new Set(ah.filter(a=>aj?.has(a.id)===!0||(0,J.rL)(a,L,$)).map(a=>a.id));(0,f.useLayoutEffect)(()=>{if(ai.current=ah,ad.current=ak,ac.current)for(let a of ak)ac.current.add(a);let a=aa.current;a&&0===a.items.length&&_.length>0&&ag()});let al=(0,f.useCallback)(()=>{if(0===ai.current.length)return;null!==ab.current&&(clearTimeout(ab.current),ab.current=null);let a=aa.current;if(a&&Date.now()<a.expiresAt){aa.current={...a,expiresAt:1/0};return}aa.current={items:ai.current,expiresAt:1/0},ac.current=new Set(ad.current)},[]),am=(0,f.useCallback)(()=>{aa.current&&(aa.current={...aa.current,expiresAt:Date.now()+1e3},null!==ab.current&&clearTimeout(ab.current),ab.current=setTimeout(()=>{ag(),af(a=>a+1)},1e3))},[ag]),{sortedItems:an,groupedItems:ao}=(0,ax.D)({items:ah,sortKey:u,sortDirection:x,viewMode:A,filterText:O}),ap=(0,f.useMemo)(()=>"grouped"===A&&ao?O.trim()?ao:(0,J.Ew)(ao,F):null,[A,ao,F,O]),aq="grouped"===A?ap:null,ar=(0,f.useMemo)(()=>"sessions"===A?(0,J.EY)((0,J.UB)(an),u,x):[],[A,an,u,x]);(0,f.useEffect)(()=>{},[R]);let as=(0,f.useCallback)(a=>{T(b=>({...b,[a]:!b[a]}))},[]),au=(0,f.useCallback)(()=>{var a;ay=Number.isFinite(a=Q.current?.scrollTop??0)&&a>0?a:0},[]),aw=an.length>0||(aq?.length??0)>0||ar.length>0;(0,f.useEffect)(()=>{let a=Q.current;if(!a)return;let b=window.requestAnimationFrame(()=>{a.scrollTop=ay});return()=>{window.cancelAnimationFrame(b)}},[aw,A]);let az=(0,f.useCallback)(b=>{au(),k(b),a.push(`/worktrees/${b}`),p()},[au,k,a,p]),aC=(0,f.useCallback)(b=>{au(),k(b.worktreeId),a.push((0,J.Ii)(b)),p()},[au,k,a,p]),aF=(0,v.FR)((0,v.MS)(v.AN,{activationConstraint:{distance:8}})),aG=(0,f.useCallback)(a=>{let{active:b,over:c}=a;if(!c||b.id===c.id||!aq)return;let d=aq.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,w.be)(d,e,f);H(g),fetch("/api/sidebar/group-order",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({order:g})}).catch(()=>{H(d)})},[aq,H]),aH="grouped"===A?(aq?.length??0)===0:"sessions"===A?0===ar.length:0===an.length,aK=m&&0===b.length,aL=!aK&&!!n&&0===b.length,aM=(0,f.useCallback)(()=>{l()},[l]),aN={sessions:(0,d.jsx)("li",{className:"flex min-w-0",children:(0,d.jsx)(aD,{href:"/sessions",icon:r.A,label:I("nav.sessions"),testId:"sidebar-nav-sessions",isActive:K.startsWith("/sessions"),onNavigate:p})}),repositories:(0,d.jsxs)("li",{className:"flex min-w-0 items-center gap-1",children:[(0,d.jsx)(aD,{href:"/repositories",icon:s.A,label:I("nav.repositories"),testId:"sidebar-nav-repositories",isActive:K.startsWith("/repositories"),onNavigate:p}),(0,d.jsx)(aI,{refreshWorktrees:l})]}),review:(0,d.jsx)("li",{className:"flex min-w-0",children:(0,d.jsx)(aD,{href:N>0?C.ks:"/review",icon:t.A,label:I("nav.review"),testId:"sidebar-nav-review",isActive:K.startsWith("/review"),onNavigate:p,trailing:N>0?(0,d.jsx)("span",{"data-testid":"sidebar-nav-review-count",role:"status","aria-label":I("attention.badgeLabel",{count:N}),className:"flex-shrink-0 rounded-full bg-warning-subtle px-1.5 text-xs font-semibold leading-5 tabular-nums text-warning-foreground",children:N>99?"99+":N}):null})})};return(0,d.jsx)(z.Fy.Provider,{value:!M,children:(0,d.jsxs)("nav",{"data-testid":"sidebar","aria-label":I("sidebar.branchNavigation"),className:"h-full flex flex-col bg-sidebar text-sidebar-foreground",role:"navigation",children:[(0,d.jsx)(at,{drawer:M}),(0,d.jsx)("div",{"data-testid":"sidebar-header",className:"flex-shrink-0 space-y-2 border-b border-sidebar-border px-2 py-2",children:(0,d.jsx)("ul",{"data-testid":"sidebar-nav",className:"space-y-0.5",children:J.go.map(a=>(0,d.jsx)(g().Fragment,{children:aN[a]},a))})}),(0,d.jsx)(E,{worktrees:X,visibleWorktreeIds:Y,selectedWorktreeId:L,onSelect:az,onNavigate:p}),(0,d.jsx)(S,{searchQuery:O,onSearchChange:P,viewMode:A,onViewModeChange:B}),(0,d.jsx)("div",{ref:Q,"data-testid":"branch-list",onScroll:au,onMouseEnter:al,onMouseLeave:am,className:"flex-1 overflow-y-auto overflow-x-hidden",children:aK?(0,d.jsx)(aA,{label:I("sidebar.loadingBranches")}):aL?(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:I("sidebar.branchesLoadFailed")}),(0,d.jsx)(G.$n,{type:"button",variant:"secondary",size:"sm",className:"mt-3","data-testid":"branch-list-retry",onClick:aM,children:I("sidebar.retryLoadBranches")})]}):aH?(0,d.jsx)("div",{className:"px-4 py-8 text-center text-sidebar-muted",children:I(O?"sidebar.noBranchesFound":"sidebar.noBranchesAvailable")}):"sessions"===A?ar.map(a=>(0,d.jsx)(aE,{row:a,isSelected:a.worktreeId===L,onClick:aC},a.key)):"grouped"===A&&aq?(0,d.jsx)(v.Mp,{sensors:aF,collisionDetection:v.fp,onDragEnd:aG,children:(0,d.jsx)(w.gB,{items:aq.map(a=>a.repositoryName),strategy:w._G,children:aq.map(a=>{let b=!R[a.repositoryName]||!!O.trim();return(0,d.jsx)(aB,{group:a,isExpanded:b,selectedWorktreeId:L,onToggle:()=>as(a.repositoryName),onBranchClick:az,isDragDisabled:!!O.trim(),isFiltering:!!O.trim(),liveBranchById:$,stickyShownIds:aj},a.repositoryName)})})}):an.map(a=>(0,d.jsx)(z.yP,{branch:a,isSelected:a.id===L,onClick:()=>az(a.id)},a.id))}),(0,d.jsx)("div",{"data-testid":"sidebar-footer",className:"flex-shrink-0 px-4 py-3 border-t border-sidebar-border",children:(0,d.jsx)(aJ,{onNavigate:p})})]})})}),aA=(0,f.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)(G.EA,{className:"h-2 w-2 rounded-full"}),(0,d.jsx)(G.EA,{className:"h-3 flex-1"})]},a))]})});function aB({group:a,isExpanded:b,selectedWorktreeId:c,onToggle:e,onBranchClick:f,isDragDisabled:g,isFiltering:h,liveBranchById:i,stickyShownIds:j}){let{attributes:k,listeners:l,setNodeRef:m,setActivatorNodeRef:n,transform:o,transition:p,isDragging:q}=(0,w.gl)({id:a.repositoryName,disabled:g}),r={transform:x.Ks.Transform.toString(o),transition:p,opacity:q?.5:1},{shown:s,other:t}=(0,J.FS)(a.branches,c,i,j??void 0);return(0,d.jsxs)("div",{ref:m,style:r,className:"w-full min-w-0 pt-2",children:[(0,d.jsx)(aC,{repositoryName:a.repositoryName,branchCount:a.branches.length,isExpanded:b,onClick:e,dragHandleRef:n,dragHandleListeners:g?void 0:l,dragHandleAttributes:g?void 0:k}),b&&s.map(a=>(0,d.jsx)(z.yP,{branch:a,isSelected:a.id===c,onClick:()=>f(a.id),showRepositoryName:!1},a.id)),b&&t.length>0&&(0,d.jsx)(F,{branches:t,selectedWorktreeId:c,onBranchClick:f,forceExpanded:h})]})}function aC({repositoryName:a,branchCount:b,isExpanded:c,onClick:e,dragHandleRef:f,dragHandleListeners:g,dragHandleAttributes:h}){let i=(0,q.c)("common");return(0,d.jsxs)("div",{className:"group/header flex items-center w-full",children:[g&&(0,d.jsx)("div",{ref:f,...g,...h,"data-testid":"group-drag-handle","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-[color,opacity] opacity-0 group-hover/header:opacity-100 group-focus-within/header:opacity-100 [@media(hover:none)]:opacity-100 rounded focus:outline-none focus-visible:ring-2 focus-visible:ring-ring ",children:(0,d.jsx)(aG,{})}),(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-1 text-xs font-normal text-sidebar-muted focus:outline-none focus:ring-2 focus:ring-inset focus:ring-ring transition-colors ",children:[(0,d.jsx)(aF,{isExpanded:c}),(0,d.jsx)(G.nF,{color:(0,J.LV)(a)}),(0,d.jsx)(U.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 aD({href:a,icon:b,label:c,testId:e,isActive:f,onNavigate:g,trailing:h}){return(0,d.jsxs)(p,{href:a,"data-testid":e,"aria-current":f?"page":void 0,onClick:g,className:`flex min-w-0 flex-1 items-center gap-2 rounded-md px-2 py-1.5 text-sm transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring ${f?"bg-sidebar-hover font-medium text-sidebar-foreground":"text-sidebar-muted"}`,children:[(0,d.jsx)(b,{className:"h-4 w-4 flex-shrink-0","aria-hidden":"true"}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",children:c}),h]})}let aE=(0,f.memo)(function({row:a,isSelected:b,onClick:c}){let e=(0,q.c)("common"),f=(0,A.Mq)(a.status,a.unclassified),g=e(f?A.rH:`status.${a.status}`);return(0,d.jsx)("div",{className:`w-full min-w-0 ${z.R8}`,children:(0,d.jsxs)("button",{type:"button","data-testid":"session-list-item","data-session-key":a.key,onClick:()=>c(a),"aria-current":b?"true":void 0,className:`w-full min-w-0 min-h-[34px] px-3 py-1.5 flex items-center gap-2 text-left ${(0,z.Xd)(b)}`,children:[(0,d.jsx)(G.md,{status:a.status,size:"sm",label:a.exited?`${g} (${e("branchItem.agentExited")})`:g,className:f?A.Jd:void 0}),(0,d.jsx)("span",{className:"flex-shrink-0 max-w-[45%] truncate text-sm font-semibold text-sidebar-foreground",children:a.label}),(0,d.jsxs)("span",{className:"min-w-0 flex-1 truncate text-xs text-sidebar-muted",children:[a.branchName," \xb7 ",a.repositoryName]})]})})});function aF({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 aG(){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 aH({className:a=""}){return(0,d.jsx)("svg",{className:`w-4 h-4 ${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 aI=(0,f.memo)(function({refreshWorktrees:a}){let[b,c]=(0,f.useState)(!1),e=(0,f.useRef)(!1),{showToast:g}=(0,au.dj)(),h=(0,q.c)("common"),i=(0,f.useCallback)(async()=>{if(!e.current){e.current=!0,c(!0);try{let b=await aw.Rx.sync();await a(),g(h("syncSuccess",{count:b.worktreeCount}),"success",3e3)}catch(a){a instanceof aw.hD&&401===a.status?g(h("syncAuthError"),"error",5e3):g(h("syncError"),"error",5e3)}finally{e.current=!1,c(!1)}}},[a,g,h]);return(0,d.jsx)(d.Fragment,{children:(0,d.jsx)(T.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)(aH,{className:b?"animate-spin":""})})})})});function aJ({onNavigate:a}){let b=(0,q.c)("common")("settings.title");return(0,d.jsx)(ac,{testIdPrefix:"sidebar-settings-menu",side:"top",align:"start",showDisplayPreferences:!0,onNavigate:a,children:(0,d.jsx)(aa,{asChild:!0,children:(0,d.jsxs)("button",{type:"button","data-testid":"sidebar-settings-menu",className:"flex w-full items-center gap-2 px-2 py-1.5 rounded-md text-sm text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors",children:[(0,d.jsx)(u.A,{size:20,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:b})]})})})}var aK=c(38557);function aL(){let{shouldSurface:a,isReconnecting:b}=(0,aK.Fx)(),c=(0,q.c)("common");if(!a)return null;let e=c(b?"connection.reconnecting":"connection.offline");return(0,d.jsxs)("span",{"data-testid":"connection-status-indicator","data-connection-state":b?"reconnecting":"offline",role:"status","aria-live":"polite",title:c(b?"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",b?"bg-warning motion-safe:animate-pulse":"bg-muted-foreground"].join(" ")}),e]})}var aM=c(60957);let aN=[{prefix:"/sessions",labelKey:"nav.sessions"},{prefix:"/repositories",labelKey:"nav.repositories"},{prefix:"/review",labelKey:"nav.review"},{prefix:"/skills",labelKey:"nav.skills"},{prefix:"/more",labelKey:"nav.more"}];function aO({title:a="CommandMate"}){var b;let c=null!==(b=(0,e.usePathname)()??"",aN.find(a=>b.startsWith(a.prefix))?.labelKey??null);return(0,d.jsxs)("header",{"data-testid":"screen-status-row",className:"flex flex-shrink-0 items-center justify-end gap-4 px-4 py-1.5 border-b border-border bg-background supports-[backdrop-filter]:bg-background/80 backdrop-blur-md empty:hidden",children:[!c&&(0,d.jsx)("h1",{"data-testid":"header-screen-title",className:"mr-auto min-w-0 truncate text-lg font-bold text-foreground",children:a}),(0,d.jsx)(aL,{}),(0,d.jsx)(aM.H,{})]})}function aP({count:a}){let b=(0,q.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})}let aQ="relative flex h-10 w-10 items-center justify-center rounded-md transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",aR="text-sidebar-muted hover:bg-sidebar-hover hover:text-sidebar-foreground";function aS({href:a,icon:b,label:c,testId:e,isActive:f,badge:g}){return(0,d.jsx)(T.m_,{content:c,placement:"right",children:(0,d.jsx)(p,{href:a,"data-testid":e,"aria-label":c,"aria-current":f?"page":void 0,className:`${aQ} ${f?"bg-sidebar-hover text-sidebar-foreground":aR}`,children:(0,d.jsxs)("span",{className:"relative flex",children:[(0,d.jsx)(b,{size:20,"aria-hidden":"true"}),g]})})})}function aT({icon:a,label:b,testId:c,onClick:e,hasPopup:f}){return(0,d.jsx)(T.m_,{content:b,placement:"right",children:(0,d.jsx)("button",{type:"button","data-testid":c,"aria-label":b,"aria-haspopup":f,onClick:e,className:`${aQ} ${aR}`,children:(0,d.jsx)(a,{size:20,"aria-hidden":"true"})})})}function aU(){let a=(0,q.c)("common"),b=(0,q.c)("commandPalette"),c=(0,e.usePathname)()??"",{setOpen:f}=(0,ah.C)(),{openNewTask:h}=(0,ai.hX)(),{count:i}=(0,av.Lv)(),j=a("settings.title"),k={sessions:(0,d.jsx)(aS,{href:"/sessions",icon:r.A,label:a("nav.sessions"),testId:"sidebar-rail-sessions",isActive:c.startsWith("/sessions")}),repositories:(0,d.jsx)(aS,{href:"/repositories",icon:s.A,label:a("nav.repositories"),testId:"sidebar-rail-repositories",isActive:c.startsWith("/repositories")}),review:(0,d.jsx)(aS,{href:i>0?C.ks:"/review",icon:t.A,label:a("nav.review"),testId:"sidebar-rail-review",isActive:c.startsWith("/review"),badge:(0,d.jsx)(aP,{count:i})})};return(0,d.jsxs)("nav",{"data-testid":"sidebar-rail","aria-label":a("sidebar.railLabel"),className:"flex h-full flex-col items-center gap-1 bg-sidebar pb-2 text-sidebar-foreground",style:{width:`${J.BN}px`},children:[(0,d.jsx)(ar,{testId:"sidebar-rail-toggle"}),(0,d.jsx)(aT,{icon:ae.A,label:a("newTask.title"),testId:"sidebar-rail-new-task",onClick:()=>h(),hasPopup:"dialog"}),(0,d.jsx)(aT,{icon:af.A,label:b("mobileTrigger"),testId:"sidebar-rail-search",onClick:()=>f(!0)}),(0,d.jsx)("div",{className:"my-1 w-8 border-b border-sidebar-border","aria-hidden":"true"}),J.go.map(a=>(0,d.jsx)(g().Fragment,{children:k[a]},a)),(0,d.jsx)("div",{className:"mt-auto",children:(0,d.jsx)(ac,{testIdPrefix:"sidebar-rail-settings",side:"right",align:"end",showDisplayPreferences:!0,children:(0,d.jsx)(T.m_,{content:j,placement:"right",children:(0,d.jsx)(aa,{asChild:!0,children:(0,d.jsx)("button",{type:"button","data-testid":"sidebar-rail-settings","aria-label":j,className:`${aQ} ${aR}`,children:(0,d.jsx)(u.A,{size:20,"aria-hidden":"true"})})})})})})]})}c(68643);var aV=c(47684),aW=c(38882),aX=c(6130),aY=c(13860);let aZ=[{labelKey:"nav.sessions",href:"/sessions",isActive:a=>a.startsWith("/sessions"),icon:(0,d.jsx)(r.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.review",href:"/review",isActive:a=>a.startsWith("/review"),icon:(0,d.jsx)(t.A,{size:20,"aria-hidden":"true"}),showsAttentionBadge:!0},{labelKey:"nav.more",href:"/more",isActive:a=>a.startsWith("/more"),icon:(0,d.jsx)(aW.A,{size:20,"aria-hidden":"true"})}];function a$(){let a=(0,e.usePathname)(),{setOpen:b}=(0,ah.C)(),c=(0,q.c)("commandPalette"),f=(0,q.c)("common"),{count:g}=(0,av.Lv)(),i=(0,h.pT)();return i?.isMobileDrawerOpen?null:(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:[i&&(0,d.jsxs)("button",{type:"button","data-testid":"mobile-nav-open-sidebar",...aY.cv,onClick:i.openMobileDrawer,className:"flex flex-col items-center justify-center flex-1 h-full text-xs text-muted-foreground hover:text-foreground transition-colors",children:[(0,d.jsx)(aX.A,{size:20,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:f("sidebar.branches")})]}),aZ.map(b=>{let c=b.isActive(a),e=!0===b.showsAttentionBadge&&g>0;return(0,d.jsxs)(p,{href:e?C.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)(aP,{count:g})]}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:f(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)(af.A,{size:20,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:c("mobileLabel")})]})]})})}function a_(){let{shouldSurface:a,isReconnecting:b}=(0,aK.Fx)(),c=(0,q.c)("common");if(!a)return null;let e=c(b?"connection.reconnecting":"connection.offline"),f=c(b?"connection.reconnectingTooltip":"connection.offlineTooltip");return(0,d.jsx)("div",{"data-testid":"mobile-connection-banner","data-connection-state":b?"reconnecting":"offline",role:"status","aria-live":"polite",title:f,className:`shrink-0 pt-safe border-b ${b?"bg-warning-subtle border-warning-border text-warning-foreground":"bg-danger-subtle border-danger-border text-danger-foreground"}`,children:(0,d.jsxs)("div",{className:"flex items-center justify-center gap-1.5 px-3 py-1 text-xs",children:[(0,d.jsx)("span",{"aria-hidden":"true",className:`w-1.5 h-1.5 rounded-full ${b?"bg-warning motion-safe:animate-pulse":"bg-danger"}`}),e]})})}var a0=c(76047),a1=c(98033),a2=c(89184);let a3=[...ak,{id:"newTask",keys:["MOD","Shift","O"],scope:"global"},{id:"newTaskSend",keys:["MOD","↵"],scope:"global"}];function a4(){let{open:a,setOpen:b}=(0,a2.K)(),{open:c}=(0,ah.C)(),{isOpen:e}=(0,ai.hX)(),g=(0,q.c)("keyboardShortcuts"),[h,i]=(0,f.useState)(!1);(0,f.useRef)(a),(0,f.useRef)(c),(0,f.useRef)(e);let j=function(a=ak){return aj.map(b=>({scope:b,shortcuts:a.filter(a=>a.scope===b)})).filter(a=>a.shortcuts.length>0)}(a3);return(0,d.jsx)(a1.a,{isOpen:a,onClose:()=>b(!1),title:g("title"),size:"md",children:(0,d.jsx)("div",{"data-testid":"keyboard-shortcuts-overlay",className:"space-y-6",children:j.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:g(`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:g(`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)(ag.u,{children:al(a,h)},b))})]},a.id))})]},a))})})}var a5=c(18608),a6=c(55992),a7=c(94260);let a8=[{key:"added",labelKey:"whatsNew.added"},{key:"improved",labelKey:"whatsNew.improved"},{key:"fixed",labelKey:"whatsNew.fixed"}];function a9(){let a=(0,q.c)("common"),b=(0,a6.Ym)(),[c,e]=(0,f.useState)(null),[g,h]=(0,f.useState)(!1),i=(0,f.useCallback)(()=>{c&&function(a){try{window.localStorage.setItem("commandmate.lastSeenAppVersion",a)}catch{}}(c.to),h(!1)},[c]);if(!c)return null;let j="ja"===b?"ja":"en";return(0,d.jsx)(a1.a,{isOpen:g,onClose:i,title:a("whatsNew.title",{from:c.from,to:c.to}),size:"md",children:(0,d.jsxs)("div",{className:"space-y-4","data-testid":"whats-new-dialog",children:[0===c.notes.length?(0,d.jsx)("p",{className:"text-sm text-foreground","data-testid":"whats-new-empty",children:a("whatsNew.empty")}):c.notes.map(b=>(0,d.jsxs)("section",{className:"space-y-3","data-testid":`whats-new-version-${b.version}`,children:[(0,d.jsxs)("h4",{className:"text-sm font-semibold text-foreground",children:["v",b.version,(0,d.jsx)("span",{className:"ml-2 text-xs font-normal text-muted-foreground",children:b.date})]}),b.highlight&&(0,d.jsxs)("div",{"data-testid":"whats-new-highlight",children:[(0,d.jsx)("h5",{className:"text-xs font-medium text-muted-foreground",children:a("whatsNew.highlight")}),(0,d.jsx)("p",{className:"mt-1 text-sm text-foreground",children:b.highlight[j]})]}),a8.map(({key:c,labelKey:e})=>b[c].length>0?(0,d.jsxs)("div",{"data-testid":`whats-new-${c}`,children:[(0,d.jsx)("h5",{className:"text-xs font-medium text-muted-foreground",children:a(e)}),(0,d.jsx)("ul",{className:"mt-1 list-disc space-y-1 pl-5 text-sm text-foreground",children:b[c].map((a,b)=>(0,d.jsx)("li",{children:a[j]},b))})]},c):null)]},b.version)),(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 border-t border-border pt-3",children:[(0,d.jsx)("a",{href:`https://github.com/Kewton/CommandMate/releases/tag/v${c.to}`,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-accent-600 dark:text-accent-400 hover:underline","data-testid":"whats-new-release-link",children:a("whatsNew.releaseLink")}),(0,d.jsx)(a7.$,{type:"button",variant:"primary",size:"sm",onClick:i,"data-testid":"whats-new-close",children:a("whatsNew.close")})]})]})})}var ba=c(10063);function bb(a,b){return a.worktreeId===b.worktreeId&&a.instanceId===b.instanceId}var bc=c(17252);function bd(a){return a.agentInstances&&a.agentInstances.length>0?a.agentInstances.slice().sort((a,b)=>a.order-b.order):a.selectedAgents&&a.selectedAgents.length>0?(0,bc.lu)(a.selectedAgents):a.cliToolId?(0,bc.lu)([a.cliToolId]):[]}function be(a,b){let c=a.sessionStatusByInstance?.[b.id]??(b.id===b.cliTool?a.sessionStatusByCli?.[b.cliTool]:void 0),d=c?.startingSince,e=a.autoYesByInstance?.[b.id];return{instance:b,label:(0,bc.sw)(b),running:c?.isRunning===!0,starting:"number"==typeof d,autoYes:e?.enabled&&"number"==typeof e.expiresAt?e:null}}var bf=c(16730);let bg={promptWaiting:"PROMPT_WAITING",sessionStarting:"SESSION_STARTING",instanceToolConflict:"instance_tool_conflict"};async function bh(a){try{let b=await a.json(),c=b&&"object"==typeof b?b.expiresAt:null;if("number"==typeof c)return{enabled:!0,expiresAt:c}}catch{}return null}async function bi(a){try{let b=await a.json();if(b&&"object"==typeof b){let{error:a,code:c}=b;return{error:"string"==typeof a&&""!==a?a:null,code:"string"==typeof c?c:null}}}catch{}return{error:null,code:null}}async function bj(a,{modelRequested:b}){if(a.ok&&!a.redirected)return{ok:!0};let{status:c}=a,{error:d,code:e}=await bi(a);return{ok:!1,kind:409===c?e===bg.promptWaiting?"prompt_waiting":"conflict":503===c?e===bg.sessionStarting?"starting":"start_failed":400===c?b&&e!==bg.instanceToolConflict?"model_rejected":"invalid":"failed",status:a.ok?0:c,detail:d}}function bk(a){return{ok:!1,kind:"failed",status:0,detail:a instanceof aw.hD||a instanceof Error?a.message:null}}function bl(a,b){return new Promise((c,d)=>{let e=setTimeout(()=>{d(new aw.hD(`Request timed out after ${b}ms`,0,void 0,"timeout"))},b);a().then(a=>{clearTimeout(e),c(a)},a=>{clearTimeout(e),d(a)})})}async function bm(a,b=aw.E){let c,{target:d,cliToolId:e}=a,f=`/api/worktrees/${encodeURIComponent(d.worktreeId)}`,g={"Content-Type":"application/json"},h=!1,i=a.autoYesDuration;if(null!==i){let a,j=!1;try{a=await bl(async()=>{let a=await b(`${f}/auto-yes`,{method:"POST",headers:g,body:JSON.stringify({enabled:!0,cliToolId:e,instanceId:d.instanceId,duration:i})});if(!a.ok){let{error:b}=await bi(a);return{ok:!1,kind:"auto_yes_failed",status:a.status,detail:b}}return j=!0,c=await bh(a)??void 0,h=void 0===c,null},(0,bf.Z3)("POST"))}catch(a){if(!j){let b=bk(a);return b.ok?b:{...b,kind:"auto_yes_failed"}}return{...bk(a),autoYesStateUnknown:!0}}if(a)return a}let j=a=>c?{...a,armedAutoYes:c}:h?{...a,autoYesStateUnknown:!0}:a,k=a.model?.trim()||void 0,l=(0,bf.SE)();try{return j(await bl(async()=>{let c=await b(`${f}/send`,{method:"POST",headers:g,body:JSON.stringify({content:a.content,cliToolId:e,instanceId:d.instanceId,...k?{model:k}:{}}),timeoutMs:l});return bj(c,{modelRequested:void 0!==k})},l))}catch(a){return j(bk(a))}}let bn="w-full px-3 py-2 border border-input rounded-lg bg-surface text-foreground text-sm focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent disabled:opacity-60",bo="block text-xs font-medium text-muted-foreground mb-1";function bp({status:a,isEmpty:b,onRetry:c}){let e=(0,q.c)("common");return(0,d.jsxs)(d.Fragment,{children:["loading"===a&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"new-task-loading",children:e("newTask.loading")}),"error"===a&&(0,d.jsxs)("div",{className:"space-y-2",role:"alert","data-testid":"new-task-load-error",children:[(0,d.jsx)("p",{className:"text-sm text-danger",children:e("newTask.loadError")}),(0,d.jsx)("button",{type:"button",onClick:c,className:"px-3 py-1.5 text-sm font-medium text-foreground bg-muted hover:bg-muted/80 rounded-lg",children:e("retry")})]}),"ready"===a&&b&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"new-task-empty",children:e("newTask.noTargets")})]})}function bq({recentOptions:a,targetState:b,worktreeId:c,onSelect:e}){let f=(0,q.c)("common");return 0===a.length?null:(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:bo,children:f("newTask.recentLabel")}),(0,d.jsx)("div",{className:"flex flex-wrap gap-2","data-testid":"new-task-recents",children:a.map(({target:a,label:f})=>{let g=!!b&&bb(a,{worktreeId:c,instanceId:b.instance.id});return(0,d.jsx)("button",{type:"button","aria-pressed":g,"data-testid":"new-task-recent",onClick:()=>e(a),className:`max-w-full truncate rounded-full border px-3 py-1 text-xs transition-colors ${g?"border-accent-500 bg-accent-500/15 text-foreground":"border-border text-muted-foreground hover:text-foreground"}`,children:f},`${a.worktreeId}:${a.instanceId}`)})})]})}function br({repositoryOptions:a,repository:b,worktreeId:c,worktree:e,instances:f,instance:g,onRepositoryChange:h,onBranchChange:i,onAgentChange:j}){let k=(0,q.c)("common");return(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{htmlFor:"new-task-repository",className:bo,children:k("newTask.repositoryLabel")}),(0,d.jsx)("select",{id:"new-task-repository","data-testid":"new-task-repository",value:b?.path??"",onChange:a=>h(a.target.value),className:bn,children:a.map(a=>(0,d.jsx)("option",{value:a.path,children:a.name},a.path))})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{htmlFor:"new-task-branch",className:bo,children:k("newTask.branchLabel")}),(0,d.jsx)("select",{id:"new-task-branch","data-testid":"new-task-branch",value:c,onChange:a=>i(a.target.value),className:bn,children:(b?.worktrees??[]).map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{htmlFor:"new-task-agent",className:bo,children:k("newTask.agentLabel")}),(0,d.jsx)("select",{id:"new-task-agent","data-testid":"new-task-agent",value:g?.id??"",onChange:a=>j(a.target.value),className:bn,disabled:0===f.length,children:f.map(a=>{let b=e?be(e,a):null,c=b?.starting?"starting":b?.running?"running":"stopped";return(0,d.jsx)("option",{value:a.id,children:`${b?.label??a.id} — ${k(`newTask.agentStatus.${c}`)}`},a.id)})})]})]})}function bs({statusKey:a,agentLabel:b}){let c=(0,q.c)("common");return(0,d.jsxs)(d.Fragment,{children:["stopped"===a&&(0,d.jsx)("p",{className:"text-xs text-foreground","data-testid":"new-task-will-start",children:c("newTask.willStart",{agent:b})}),"starting"===a&&(0,d.jsx)("p",{className:"text-xs text-warning-foreground","data-testid":"new-task-starting",children:c("newTask.startingNotice",{agent:b})})]})}function bt({modelAvailability:a,model:b,cliTool:c,agentLabel:e,onChange:f}){let g=(0,q.c)("common");return(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{htmlFor:"new-task-model",className:bo,children:g("newTask.modelLabel")}),(0,d.jsx)("input",{id:"new-task-model","data-testid":"new-task-model",type:"text",value:a?.selectable?b:"",onChange:a=>f(a.target.value),placeholder:g("newTask.modelPlaceholder"),disabled:!a?.selectable,className:bn}),a&&(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground","data-testid":"new-task-model-note",children:a.selectable?g("copilot"===c?"newTask.modelHintSwitch":"newTask.modelHintLaunch"):g(`newTask.modelUnavailable.${a.reason}`,{agent:e})})]})}function bu({armedAutoYes:a,autoYesChoice:b,autoYesUnknown:c,onChoiceChange:e}){let f=(0,q.c)("common"),g=(0,q.c)("autoYes");return(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{htmlFor:"new-task-auto-yes",className:bo,children:f("newTask.autoYesLabel")}),a?(0,d.jsx)("p",{className:"text-sm text-foreground","data-testid":"new-task-auto-yes-active",children:f("newTask.autoYesActive",{remaining:(0,ba.$B)(a.expiresAt)})}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("select",{id:"new-task-auto-yes","data-testid":"new-task-auto-yes",value:b??"",onChange:a=>{let b=Number(a.target.value);e(""!==a.target.value&&(0,ba.dR)(b)?b:null)},className:bn,children:[(0,d.jsx)("option",{value:"",children:f(c?"newTask.autoYesKeepUnknown":"newTask.autoYesKeep")}),ba.z9.map(a=>(0,d.jsx)("option",{value:a,children:f("newTask.autoYesEnableFor",{duration:g(ba.Ni[a].replace("autoYes.",""))})},a))]}),c&&(0,d.jsx)("p",{className:"mt-1 text-xs text-warning-foreground","data-testid":"new-task-auto-yes-unknown",children:f("newTask.autoYesUnknown")}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:f("newTask.autoYesScope")}),null!==b&&(0,d.jsx)("p",{className:"mt-1 text-xs text-warning-foreground","data-testid":"new-task-auto-yes-risk",children:g("riskWarning")})]})]})}function bv({failure:a,agentLabel:b}){let c=(0,q.c)("common");return a?(0,d.jsxs)("div",{role:"alert","data-testid":"new-task-error","data-kind":a.kind,className:"rounded-lg border border-danger-border bg-danger-subtle px-3 py-2 text-sm text-danger-foreground",children:[(0,d.jsx)("p",{children:c(`newTask.errors.${a.kind}`,{agent:b})}),a.detail&&(0,d.jsx)("p",{className:"mt-1 break-words text-xs text-muted-foreground","data-testid":"new-task-error-detail",children:a.detail})]}):null}function bw(){var a;let{requestedTarget:b,screenTarget:c,closeNewTask:g,setCloseLocked:h}=(0,ai.hX)(),i=(0,e.useRouter)(),{showToast:j}=(0,au.dj)(),k=(0,q.c)("common"),[l,m]=(0,f.useState)({status:"loading"}),[n,o]=(0,f.useState)(0),[p]=(0,f.useState)(()=>[]),[r,s]=(0,f.useState)(""),[t,u]=(0,f.useState)(""),[v,w]=(0,f.useState)(""),[x,y]=(0,f.useState)(""),[z,A]=(0,f.useState)(null),[B,C]=(0,f.useState)(!1),[D,E]=(0,f.useState)(null),[F,G]=(0,f.useState)(!1),H=(0,f.useRef)(null),I=(0,f.useRef)(!0),K=(0,f.useRef)(!1),[L,M]=(0,f.useState)({}),[N,O]=(0,f.useState)({}),P=(0,f.useCallback)(()=>{K.current||g()},[g]);(0,f.useRef)([b,c,p[0]??null]),(0,f.useRef)(!1);let Q=(0,f.useMemo)(()=>"ready"===l.status?l.worktrees:[],[l]),R=(0,f.useMemo)(()=>"ready"===l.status?function(a,b=[]){let c=new Map;for(let d of a){let a=c.get(d.repositoryPath);if(!a){let e=b.find(a=>a.path===d.repositoryPath);a={path:d.repositoryPath,name:e?.displayName||e?.name||d.repositoryName,worktrees:[]},c.set(d.repositoryPath,a)}a.worktrees.push(d)}let d=Array.from(c.values());for(let a of d)a.worktrees.sort((a,b)=>a.name.localeCompare(b.name));return d.sort((a,b)=>a.name.localeCompare(b.name))}(l.worktrees,l.repositories):[],[l]),S=Q.find(a=>a.id===r)??null,T=(0,f.useMemo)(()=>S?bd(S):[],[S]),U=T.find(a=>a.id===t)??null,V=S&&U?be(S,U):null,W=S?R.find(a=>a.path===S.repositoryPath)??null:null,X=V?(a=V.instance.cliTool,"copilot"===a?{selectable:!0}:"claude"===a||"antigravity"===a?V.running||V.starting?{selectable:!1,reason:"running"}:{selectable:!0}:{selectable:!1,reason:"unsupported"}):null,Y=V?N[`${r}:${V.instance.id}`]??V.autoYes:null,Z=!function(a,b=Date.now()){return!!a&&a.enabled&&"number"==typeof a.expiresAt&&a.expiresAt-b>0}(Y)?null:Y,$=!!V&&!0===L[`${r}:${V.instance.id}`],[,_]=(0,f.useState)(0),aa=(0,f.useMemo)(()=>p.flatMap(a=>{let b=function(a,b){let c=a.find(a=>a.id===b.worktreeId);if(!c)return null;let d=bd(c).find(a=>a.id===b.instanceId);return d?{worktree:c,instance:d}:null}(Q,a);if(!b)return[];let c=R.find(a=>a.path===b.worktree.repositoryPath),d=be(b.worktree,b.instance).label;return[{target:a,label:`${c?.name??b.worktree.repositoryName} / ${b.worktree.name} / ${d}`}]}),[p,Q,R]),ab=(0,f.useCallback)(a=>{s(a.worktreeId),u(a.instanceId),E(null)},[]),ac=(0,f.useCallback)(a=>{let b=R.find(b=>b.path===a),c=b?.worktrees.find(a=>bd(a).length>0)??b?.worktrees[0];c&&ab({worktreeId:c.id,instanceId:bd(c)[0]?.id??""})},[R,ab]),ad=(0,f.useCallback)(a=>{let b=Q.find(b=>b.id===a);if(!b)return;let c=bd(b),d=c.find(a=>a.id===t);ab({worktreeId:b.id,instanceId:d?.id??c[0]?.id??""})},[Q,t,ab]),ae=!!V&&""!==v.trim()&&!B,af=(0,f.useCallback)(async()=>{var a;if(!ae||!S||!V)return;let b={worktreeId:S.id,instanceId:V.instance.id};K.current=!0,h(!0),C(!0),E(null);let c=await bm({target:b,cliToolId:V.instance.cliTool,content:v.trim(),model:X?.selectable?x:void 0,autoYesDuration:Z?null:z});if(K.current=!1,h(!1),!I.current)return;let{armedAutoYes:d}=c,e=`${b.worktreeId}:${b.instanceId}`;if(c.autoYesStateUnknown&&M(a=>({...a,[e]:!0})),d&&(M(a=>{let{[e]:b,...c}=a;return c}),O(a=>({...a,[e]:d})),A(null)),!c.ok){E(c),C(!1);return}[{worktreeId:(a=b).worktreeId,instanceId:a.instanceId},...[].filter(b=>!bb(b,a))].slice(0,3);let f=`${window.location.pathname}${window.location.search}`,l=`${S.name} / ${V.label}`;g(),i.push((0,J.Ii)(b)),j(k("newTask.sentToast",{target:l}),"success",6e3,{onClick:()=>i.push(f)})},[ae,S,V,v,X,x,Z,z,g,h,i,j,k]),ah=(0,f.useCallback)(a=>{var b,c;!0!==(c=b=a.nativeEvent).isComposing&&229!==c.keyCode&&"Enter"===b.key&&!b.shiftKey&&!b.altKey&&(b.metaKey||b.ctrlKey)&&(a.preventDefault(),af())},[af]),aj=V?.label??"",ak=V?V.starting?"starting":V.running?"running":"stopped":null;return(0,d.jsx)(a1.a,{isOpen:!0,onClose:P,title:k("newTask.title"),size:"md",disableClose:B,children:(0,d.jsxs)("div",{"data-testid":"new-task-dialog",className:"space-y-4",onKeyDown:ah,children:[(0,d.jsx)(bp,{status:l.status,isEmpty:0===R.length,onRetry:()=>o(a=>a+1)}),"ready"===l.status&&R.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(bq,{recentOptions:aa,targetState:V,worktreeId:r,onSelect:ab}),(0,d.jsx)(br,{repositoryOptions:R,repository:W,worktreeId:r,worktree:S,instances:T,instance:U,onRepositoryChange:ac,onBranchChange:ad,onAgentChange:a=>ab({worktreeId:r,instanceId:a})}),(0,d.jsx)(bs,{statusKey:ak,agentLabel:aj}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{htmlFor:"new-task-message",className:bo,children:k("newTask.messageLabel")}),(0,d.jsx)("textarea",{ref:H,id:"new-task-message","data-testid":"new-task-message",value:v,onChange:a=>w(a.target.value),placeholder:k("newTask.messagePlaceholder"),rows:5,className:`${bn} resize-y`})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,d.jsx)(bt,{modelAvailability:X,model:x,cliTool:V?.instance.cliTool,agentLabel:aj,onChange:y}),(0,d.jsx)(bu,{armedAutoYes:Z,autoYesChoice:z,autoYesUnknown:$,onChoiceChange:A})]})]}),(0,d.jsx)(bv,{failure:D,agentLabel:aj}),(0,d.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,d.jsxs)("span",{className:"mr-auto hidden items-center gap-1 text-xs text-muted-foreground sm:flex",children:[(0,d.jsx)(ag.u,{children:al("MOD",F)}),(0,d.jsx)(ag.u,{children:"↵"}),(0,d.jsx)("span",{children:k("newTask.sendHint")})]}),(0,d.jsx)("button",{type:"button","data-testid":"new-task-cancel",onClick:P,disabled:B,className:"px-4 py-2 text-sm font-medium text-foreground bg-muted hover:bg-muted/80 rounded-lg transition-colors disabled:opacity-50",children:k("cancel")}),(0,d.jsx)("button",{type:"button","data-testid":"new-task-send",onClick:()=>void af(),disabled:!ae,className:"px-4 py-2 text-sm font-medium text-white bg-accent-600 hover:bg-accent-700 disabled:opacity-50 disabled:cursor-not-allowed rounded-lg transition-colors",children:B?k("newTask.sending"):k("newTask.send")})]})]})})}function bx(){let{isOpen:a,openNewTask:b}=(0,ai.hX)(),{open:c}=(0,ah.C)();return(0,f.useRef)(c),a?(0,d.jsx)(bw,{}):null}var by=c(11010);let bz="transform transition-transform duration-300 ease-out",bA=(0,f.memo)(function({children:a}){let{isOpen:b,isMobileDrawerOpen:c,closeMobileDrawer:g,width:m,setWidth:n,repoTabBarMode:o,toggle:p}=(0,h.VF)(),q=(0,i.a)(),{showSidebar:r,showGlobalNav:s}=function(){var a=(0,e.usePathname)();for(let b of k)if(a.startsWith(b.prefix))return{...j,...b.config};return{...j}}(),{open:t}=(0,ah.C)();(0,f.useRef)(t),(0,f.useRef)(p);let{factor:u}=(0,l.Ps)(),v=Math.round(160*u),w=Math.round(480*u),x=Math.round(Math.min(w,Math.max(v,m*u))),y=(0,J.fs)(o??J.PB,b),z=(0,f.useRef)(null),A=(0,f.useRef)(null),B=(0,f.useRef)(null),C=(0,f.useRef)(c);(0,f.useLayoutEffect)(()=>{let a=C.current;if(C.current=c,!q||!a||c)return;let b=document.activeElement,d=b instanceof HTMLElement&&B.current?.contains(b)===!0;(d||null===b||b===document.body)&&!(0,aY.Bl)()&&d&&b.blur()},[q,c]);let D=(0,f.useCallback)(a=>{n(Math.round(a/u))},[n,u]);return q?(0,d.jsx)(ai.Zg,{children:(0,d.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex flex-col",children:[(0,d.jsx)(a_,{}),c&&(0,d.jsx)("div",{"data-testid":"drawer-overlay",className:"fixed inset-0 bg-black/50 z-40",onClick:g,"aria-hidden":"true"}),r&&(0,d.jsx)("aside",{ref:B,"data-testid":"sidebar-container",className:`
5
5
  fixed left-0 top-0 h-full w-72 max-w-[85vw] z-50 bg-sidebar pt-safe pb-safe
6
6
  ${bz}
7
7
  ${c?"translate-x-0":"-translate-x-full"}