commandmate 0.23.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (688) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +415 -406
  3. package/.next/app-path-routes-manifest.json +27 -26
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +9 -9
  6. package/.next/react-loadable-manifest.json +4 -4
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  10. package/.next/server/app/api/app/update-check/route.js +1 -1
  11. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/assistant/conversation/route.js +1 -1
  13. package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
  14. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/assistant/current-output/route.js +1 -1
  16. package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
  17. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/assistant/messages/route.js +1 -1
  19. package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
  20. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/assistant/session/route.js +1 -1
  22. package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
  23. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/assistant/start/route.js +1 -1
  25. package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
  26. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/assistant/terminal/route.js +2 -2
  28. package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
  29. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/assistant/tools/route.js +1 -1
  31. package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
  32. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/daily-summary/route.js +1 -1
  37. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  38. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  40. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  41. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/hooks/agent-event/route.js +1 -1
  48. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  49. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/hooks/claude-done/route.js +1 -1
  51. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  52. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  54. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  55. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/push/escalation/route.js +1 -0
  59. package/.next/server/app/api/push/escalation/route.js.nft.json +1 -0
  60. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -0
  61. package/.next/server/app/api/push/subscriptions/route.js +1 -1
  62. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/push/vapid/route.js +1 -1
  64. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  65. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
  68. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
  70. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  72. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  73. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/repositories/clone/route.js +1 -1
  75. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  76. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/repositories/restore/route.js +1 -1
  79. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  80. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/repositories/route.js +1 -1
  82. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  83. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/repositories/scan/route.js +1 -1
  85. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  86. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/repositories/sync/route.js +1 -1
  88. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  89. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
  100. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/todos/route.js +1 -1
  104. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
  106. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/verification/runs/route.js +1 -1
  108. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  110. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  111. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  113. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  114. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  116. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +1 -1
  118. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  119. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  121. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  122. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  124. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  161. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  164. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +5 -5
  168. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  176. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  177. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  179. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  180. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  182. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  183. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +2 -2
  185. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  186. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  188. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  189. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/schedules/route.js +3 -3
  191. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  192. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  196. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  199. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  206. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  209. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  211. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  212. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/start-polling/route.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +1 -1
  215. package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/tasks/route.js +2 -2
  217. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  218. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  220. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  221. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  224. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  225. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  227. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  230. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  233. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  236. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  239. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  242. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/route.js +1 -1
  244. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  245. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/chat/page.js +2 -2
  247. package/.next/server/app/chat/page.js.nft.json +1 -1
  248. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  249. package/.next/server/app/login/page.js +2 -2
  250. package/.next/server/app/login/page.js.nft.json +1 -1
  251. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  252. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  253. package/.next/server/app/more/page.js +2 -2
  254. package/.next/server/app/more/page.js.nft.json +1 -1
  255. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  256. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  257. package/.next/server/app/page.js +1 -1
  258. package/.next/server/app/page.js.nft.json +1 -1
  259. package/.next/server/app/page_client-reference-manifest.js +1 -1
  260. package/.next/server/app/proxy/[...path]/route.js +1 -1
  261. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  262. package/.next/server/app/repositories/page.js +2 -2
  263. package/.next/server/app/repositories/page.js.nft.json +1 -1
  264. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  265. package/.next/server/app/review/page.js +1 -1
  266. package/.next/server/app/review/page.js.nft.json +1 -1
  267. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  268. package/.next/server/app/sessions/page.js +1 -1
  269. package/.next/server/app/sessions/page.js.nft.json +1 -1
  270. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  271. package/.next/server/app/skills/[skillId]/page.js +2 -2
  272. package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
  273. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  274. package/.next/server/app/skills/installed/page.js +2 -2
  275. package/.next/server/app/skills/installed/page.js.nft.json +1 -1
  276. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  277. package/.next/server/app/skills/page.js +2 -2
  278. package/.next/server/app/skills/page.js.nft.json +1 -1
  279. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  280. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +2 -2
  281. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  282. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  283. package/.next/server/app/worktrees/[id]/page.js +7 -7
  284. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  285. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  286. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  287. package/.next/server/app-paths-manifest.json +27 -26
  288. package/.next/server/chunks/1029.js +1 -1
  289. package/.next/server/chunks/1296.js +1 -1
  290. package/.next/server/chunks/1366.js +1 -1
  291. package/.next/server/chunks/1601.js +7 -0
  292. package/.next/server/chunks/1825.js +1 -1
  293. package/.next/server/chunks/2119.js +1 -1
  294. package/.next/server/chunks/2404.js +1 -1
  295. package/.next/server/chunks/2445.js +1 -1
  296. package/.next/server/chunks/2546.js +1 -1
  297. package/.next/server/chunks/3346.js +1 -1
  298. package/.next/server/chunks/3417.js +1 -1
  299. package/.next/server/chunks/3480.js +1 -1
  300. package/.next/server/chunks/3543.js +1 -1
  301. package/.next/server/chunks/3945.js +1 -1
  302. package/.next/server/chunks/4393.js +1 -0
  303. package/.next/server/chunks/4444.js +1 -1
  304. package/.next/server/chunks/4455.js +1 -0
  305. package/.next/server/chunks/5164.js +1 -0
  306. package/.next/server/chunks/5571.js +1 -1
  307. package/.next/server/chunks/5959.js +5 -5
  308. package/.next/server/chunks/5998.js +1 -1
  309. package/.next/server/chunks/6130.js +1 -1
  310. package/.next/server/chunks/6159.js +1 -1
  311. package/.next/server/chunks/6274.js +2 -2
  312. package/.next/server/chunks/6285.js +1 -1
  313. package/.next/server/chunks/6401.js +1 -1
  314. package/.next/server/chunks/7458.js +5 -5
  315. package/.next/server/chunks/848.js +1 -1
  316. package/.next/server/chunks/8536.js +1 -1
  317. package/.next/server/chunks/8730.js +1 -0
  318. package/.next/server/chunks/880.js +21 -0
  319. package/.next/server/chunks/8807.js +134 -129
  320. package/.next/server/chunks/9058.js +1 -1
  321. package/.next/server/chunks/9123.js +8 -8
  322. package/.next/server/chunks/9328.js +1 -1
  323. package/.next/server/chunks/9358.js +1 -1
  324. package/.next/server/chunks/9373.js +3 -3
  325. package/.next/server/chunks/9687.js +1 -1
  326. package/.next/server/middleware-build-manifest.js +1 -1
  327. package/.next/server/middleware-manifest.json +5 -5
  328. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  329. package/.next/server/pages/500.html +1 -1
  330. package/.next/server/pages-manifest.json +1 -1
  331. package/.next/server/server-reference-manifest.json +1 -1
  332. package/.next/static/chunks/2053-dfac2d49227cc942.js +1 -0
  333. package/.next/static/chunks/3898-ef488bfa804507d9.js +1 -0
  334. package/.next/static/chunks/4322-dfd5a7119b5ba4fc.js +1 -0
  335. package/.next/static/chunks/{4974-eaf66770bfa9dea0.js → 4974-35592ec312322124.js} +1 -1
  336. package/.next/static/chunks/5229-35f9acab97a553c5.js +1 -0
  337. package/.next/static/chunks/6381-51f9c4a128aadc0b.js +1 -0
  338. package/.next/static/chunks/7229.7f0f5a7032b612b4.js +1 -0
  339. package/.next/static/chunks/{9599-d29d2f8eeaf7c249.js → 8649-f551b0010dba4986.js} +1 -1
  340. package/.next/static/chunks/9263.f2034ec525abcf72.js +1 -0
  341. package/.next/static/chunks/app/api/app/update/{route-973ec48531555712.js → route-fae89f8d4cc3ff97.js} +1 -1
  342. package/.next/static/chunks/app/api/app/update-check/{route-973ec48531555712.js → route-fae89f8d4cc3ff97.js} +1 -1
  343. package/.next/static/chunks/app/api/assistant/conversation/{route-973ec48531555712.js → route-fae89f8d4cc3ff97.js} +1 -1
  344. package/.next/static/chunks/app/api/assistant/current-output/{route-973ec48531555712.js → route-fae89f8d4cc3ff97.js} +1 -1
  345. package/.next/static/chunks/app/api/assistant/messages/route-fae89f8d4cc3ff97.js +1 -0
  346. package/.next/static/chunks/app/api/assistant/session/route-fae89f8d4cc3ff97.js +1 -0
  347. package/.next/static/chunks/app/api/assistant/start/route-fae89f8d4cc3ff97.js +1 -0
  348. package/.next/static/chunks/app/api/assistant/terminal/route-fae89f8d4cc3ff97.js +1 -0
  349. package/.next/static/chunks/app/api/assistant/tools/route-fae89f8d4cc3ff97.js +1 -0
  350. package/.next/static/chunks/app/api/auth/login/route-fae89f8d4cc3ff97.js +1 -0
  351. package/.next/static/chunks/app/api/auth/logout/route-fae89f8d4cc3ff97.js +1 -0
  352. package/.next/static/chunks/app/api/auth/status/route-fae89f8d4cc3ff97.js +1 -0
  353. package/.next/static/chunks/app/api/daily-summary/route-fae89f8d4cc3ff97.js +1 -0
  354. package/.next/static/chunks/app/api/daily-summary/status/route-fae89f8d4cc3ff97.js +1 -0
  355. package/.next/static/chunks/app/api/external-apps/[id]/health/route-fae89f8d4cc3ff97.js +1 -0
  356. package/.next/static/chunks/app/api/external-apps/[id]/route-fae89f8d4cc3ff97.js +1 -0
  357. package/.next/static/chunks/app/api/external-apps/route-fae89f8d4cc3ff97.js +1 -0
  358. package/.next/static/chunks/app/api/fs/browse/route-fae89f8d4cc3ff97.js +1 -0
  359. package/.next/static/chunks/app/api/fs/recent-paths/route-fae89f8d4cc3ff97.js +1 -0
  360. package/.next/static/chunks/app/api/hooks/agent-event/route-fae89f8d4cc3ff97.js +1 -0
  361. package/.next/static/chunks/app/api/hooks/claude-done/route-fae89f8d4cc3ff97.js +1 -0
  362. package/.next/static/chunks/app/api/hooks/permission-request/route-fae89f8d4cc3ff97.js +1 -0
  363. package/.next/static/chunks/app/api/metrics/vibe/route-fae89f8d4cc3ff97.js +1 -0
  364. package/.next/static/chunks/app/api/ollama/models/route-fae89f8d4cc3ff97.js +1 -0
  365. package/.next/static/chunks/app/api/push/escalation/route-fae89f8d4cc3ff97.js +1 -0
  366. package/.next/static/chunks/app/api/push/subscriptions/route-fae89f8d4cc3ff97.js +1 -0
  367. package/.next/static/chunks/app/api/push/vapid/route-fae89f8d4cc3ff97.js +1 -0
  368. package/.next/static/chunks/app/api/repositories/[id]/route-fae89f8d4cc3ff97.js +1 -0
  369. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-fae89f8d4cc3ff97.js +1 -0
  370. package/.next/static/chunks/app/api/repositories/[id]/todos/route-fae89f8d4cc3ff97.js +1 -0
  371. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-fae89f8d4cc3ff97.js +1 -0
  372. package/.next/static/chunks/app/api/repositories/clone/route-fae89f8d4cc3ff97.js +1 -0
  373. package/.next/static/chunks/app/api/repositories/excluded/route-fae89f8d4cc3ff97.js +1 -0
  374. package/.next/static/chunks/app/api/repositories/restore/route-fae89f8d4cc3ff97.js +1 -0
  375. package/.next/static/chunks/app/api/repositories/route-fae89f8d4cc3ff97.js +1 -0
  376. package/.next/static/chunks/app/api/repositories/scan/route-fae89f8d4cc3ff97.js +1 -0
  377. package/.next/static/chunks/app/api/repositories/sync/route-fae89f8d4cc3ff97.js +1 -0
  378. package/.next/static/chunks/app/api/repositories/validate-path/route-fae89f8d4cc3ff97.js +1 -0
  379. package/.next/static/chunks/app/api/sidebar/group-order/route-fae89f8d4cc3ff97.js +1 -0
  380. package/.next/static/chunks/app/api/skills/[id]/route-fae89f8d4cc3ff97.js +1 -0
  381. package/.next/static/chunks/app/api/skills/installations/route-fae89f8d4cc3ff97.js +1 -0
  382. package/.next/static/chunks/app/api/skills/operations/route-fae89f8d4cc3ff97.js +1 -0
  383. package/.next/static/chunks/app/api/skills/reindex/route-fae89f8d4cc3ff97.js +1 -0
  384. package/.next/static/chunks/app/api/skills/route-fae89f8d4cc3ff97.js +1 -0
  385. package/.next/static/chunks/app/api/slash-commands/route-fae89f8d4cc3ff97.js +1 -0
  386. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-fae89f8d4cc3ff97.js +1 -0
  387. package/.next/static/chunks/app/api/tasks/[taskId]/route-fae89f8d4cc3ff97.js +1 -0
  388. package/.next/static/chunks/app/api/templates/[id]/route-fae89f8d4cc3ff97.js +1 -0
  389. package/.next/static/chunks/app/api/templates/route-fae89f8d4cc3ff97.js +1 -0
  390. package/.next/static/chunks/app/api/todos/route-fae89f8d4cc3ff97.js +1 -0
  391. package/.next/static/chunks/app/api/verification/runs/[runId]/route-fae89f8d4cc3ff97.js +1 -0
  392. package/.next/static/chunks/app/api/verification/runs/route-fae89f8d4cc3ff97.js +1 -0
  393. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-fae89f8d4cc3ff97.js +1 -0
  394. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-fae89f8d4cc3ff97.js +1 -0
  395. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-fae89f8d4cc3ff97.js +1 -0
  396. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-fae89f8d4cc3ff97.js +1 -0
  397. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-fae89f8d4cc3ff97.js +1 -0
  398. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-fae89f8d4cc3ff97.js +1 -0
  399. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-fae89f8d4cc3ff97.js +1 -0
  400. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-fae89f8d4cc3ff97.js +1 -0
  401. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-fae89f8d4cc3ff97.js +1 -0
  402. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-fae89f8d4cc3ff97.js +1 -0
  403. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-fae89f8d4cc3ff97.js +1 -0
  404. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-fae89f8d4cc3ff97.js +1 -0
  405. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-fae89f8d4cc3ff97.js +1 -0
  406. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-fae89f8d4cc3ff97.js +1 -0
  407. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-fae89f8d4cc3ff97.js +1 -0
  408. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-fae89f8d4cc3ff97.js +1 -0
  409. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-fae89f8d4cc3ff97.js +1 -0
  410. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-fae89f8d4cc3ff97.js +1 -0
  411. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-fae89f8d4cc3ff97.js +1 -0
  412. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-fae89f8d4cc3ff97.js +1 -0
  413. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-fae89f8d4cc3ff97.js +1 -0
  414. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-fae89f8d4cc3ff97.js +1 -0
  415. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-fae89f8d4cc3ff97.js +1 -0
  416. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-fae89f8d4cc3ff97.js +1 -0
  417. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-fae89f8d4cc3ff97.js +1 -0
  418. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-fae89f8d4cc3ff97.js +1 -0
  419. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-fae89f8d4cc3ff97.js +1 -0
  420. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-fae89f8d4cc3ff97.js +1 -0
  421. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-fae89f8d4cc3ff97.js +1 -0
  422. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-fae89f8d4cc3ff97.js +1 -0
  423. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-fae89f8d4cc3ff97.js +1 -0
  424. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-fae89f8d4cc3ff97.js +1 -0
  425. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-fae89f8d4cc3ff97.js +1 -0
  426. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-fae89f8d4cc3ff97.js +1 -0
  427. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-fae89f8d4cc3ff97.js +1 -0
  428. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-fae89f8d4cc3ff97.js +1 -0
  429. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-fae89f8d4cc3ff97.js +1 -0
  430. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-fae89f8d4cc3ff97.js +1 -0
  431. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-fae89f8d4cc3ff97.js +1 -0
  432. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-fae89f8d4cc3ff97.js +1 -0
  433. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-fae89f8d4cc3ff97.js +1 -0
  434. package/.next/static/chunks/app/api/worktrees/[id]/route-fae89f8d4cc3ff97.js +1 -0
  435. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-fae89f8d4cc3ff97.js +1 -0
  436. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-fae89f8d4cc3ff97.js +1 -0
  437. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-fae89f8d4cc3ff97.js +1 -0
  438. package/.next/static/chunks/app/api/worktrees/[id]/search/route-fae89f8d4cc3ff97.js +1 -0
  439. package/.next/static/chunks/app/api/worktrees/[id]/send/route-fae89f8d4cc3ff97.js +1 -0
  440. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-fae89f8d4cc3ff97.js +1 -0
  441. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-fae89f8d4cc3ff97.js +1 -0
  442. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-fae89f8d4cc3ff97.js +1 -0
  443. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-fae89f8d4cc3ff97.js +1 -0
  444. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-fae89f8d4cc3ff97.js +1 -0
  445. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-fae89f8d4cc3ff97.js +1 -0
  446. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-fae89f8d4cc3ff97.js +1 -0
  447. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-fae89f8d4cc3ff97.js +1 -0
  448. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-fae89f8d4cc3ff97.js +1 -0
  449. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-fae89f8d4cc3ff97.js +1 -0
  450. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-fae89f8d4cc3ff97.js +1 -0
  451. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-fae89f8d4cc3ff97.js +1 -0
  452. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-fae89f8d4cc3ff97.js +1 -0
  453. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-fae89f8d4cc3ff97.js +1 -0
  454. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-fae89f8d4cc3ff97.js +1 -0
  455. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-fae89f8d4cc3ff97.js +1 -0
  456. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-fae89f8d4cc3ff97.js +1 -0
  457. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-fae89f8d4cc3ff97.js +1 -0
  458. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-fae89f8d4cc3ff97.js +1 -0
  459. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-fae89f8d4cc3ff97.js +1 -0
  460. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-fae89f8d4cc3ff97.js +1 -0
  461. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-fae89f8d4cc3ff97.js +1 -0
  462. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-fae89f8d4cc3ff97.js +1 -0
  463. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-fae89f8d4cc3ff97.js +1 -0
  464. package/.next/static/chunks/app/api/worktrees/route-fae89f8d4cc3ff97.js +1 -0
  465. package/.next/static/chunks/app/chat/page-439b35c9cb90dbe0.js +1 -0
  466. package/.next/static/chunks/app/layout-6a26ea22d5cf03dc.js +1 -0
  467. package/.next/static/chunks/app/login/page-eefd515d8c37e5ee.js +1 -0
  468. package/.next/static/chunks/app/manifest.webmanifest/route-fae89f8d4cc3ff97.js +1 -0
  469. package/.next/static/chunks/app/more/page-889b7546a8a553dc.js +1 -0
  470. package/.next/static/chunks/app/page-a8d04ac0e3e4c9fc.js +1 -0
  471. package/.next/static/chunks/app/proxy/[...path]/route-fae89f8d4cc3ff97.js +1 -0
  472. package/.next/static/chunks/app/repositories/page-f3c4d8839b1ca203.js +1 -0
  473. package/.next/static/chunks/app/review/page-6dc88649fe88ac16.js +1 -0
  474. package/.next/static/chunks/app/sessions/page-2c9ed9e969097688.js +1 -0
  475. package/.next/static/chunks/app/skills/[skillId]/page-19beef6121c4c982.js +1 -0
  476. package/.next/static/chunks/app/skills/installed/page-d5b9cef6d21fabda.js +1 -0
  477. package/.next/static/chunks/app/skills/page-06ef637e07dd9377.js +1 -0
  478. package/.next/static/chunks/app/worktrees/[id]/files/[...path]/page-5fed3984fafcd910.js +1 -0
  479. package/.next/static/chunks/app/worktrees/[id]/layout-fae89f8d4cc3ff97.js +1 -0
  480. package/.next/static/chunks/app/worktrees/[id]/page-207c69540fd856ef.js +1 -0
  481. package/.next/static/chunks/{webpack-180bebdee221b6f4.js → webpack-9d892a9ff07c289d.js} +1 -1
  482. package/.next/static/css/e865c4979a41aa03.css +1 -0
  483. package/.next/static/ehkNc5xDMDkXlua08Bwq0/_buildManifest.js +1 -0
  484. package/.next/trace +12 -12
  485. package/.next/types/app/api/push/escalation/route.ts +347 -0
  486. package/.next/types/routes.d.ts +2 -1
  487. package/.next/types/validator.ts +9 -0
  488. package/README.md +96 -45
  489. package/dist/cli/commands/capture.d.ts.map +1 -1
  490. package/dist/cli/commands/capture.js +6 -0
  491. package/dist/cli/commands/instances.d.ts.map +1 -1
  492. package/dist/cli/commands/instances.js +19 -1
  493. package/dist/cli/commands/task.d.ts.map +1 -1
  494. package/dist/cli/commands/task.js +6 -0
  495. package/dist/cli/commands/verify.js +6 -1
  496. package/dist/cli/types/api-responses.d.ts +46 -0
  497. package/dist/cli/types/api-responses.d.ts.map +1 -1
  498. package/dist/cli/utils/verify-runner.d.ts.map +1 -1
  499. package/dist/cli/utils/verify-runner.js +17 -1
  500. package/dist/server/locales/en/notifications.json +20 -1
  501. package/dist/server/locales/ja/notifications.json +20 -1
  502. package/dist/server/server.js +23 -0
  503. package/dist/server/src/config/activity-bar-config.js +5 -1
  504. package/dist/server/src/lib/auto-yes-poller.js +40 -4
  505. package/dist/server/src/lib/cli-tools/codex.js +58 -29
  506. package/dist/server/src/lib/db/db.js +2 -1
  507. package/dist/server/src/lib/db/migrations/index.js +2 -0
  508. package/dist/server/src/lib/db/migrations/runner.js +1 -1
  509. package/dist/server/src/lib/db/migrations/v56-gate-result-source.js +58 -0
  510. package/dist/server/src/lib/db/verification-db.js +26 -6
  511. package/dist/server/src/lib/detection/cli-patterns.js +148 -6
  512. package/dist/server/src/lib/detection/model-info-extractor.js +384 -0
  513. package/dist/server/src/lib/detection/status-detector.js +28 -0
  514. package/dist/server/src/lib/hooks/sources/antigravity/source.js +4 -0
  515. package/dist/server/src/lib/hooks/sources/claude/source.js +7 -0
  516. package/dist/server/src/lib/hooks/sources/codex/source.js +5 -0
  517. package/dist/server/src/lib/hooks/sources/define-source.js +8 -0
  518. package/dist/server/src/lib/hooks/sources/event-mapper.js +20 -0
  519. package/dist/server/src/lib/hooks/sources/opencode/ingest.js +6 -0
  520. package/dist/server/src/lib/hooks/sources/opencode/mappers.js +22 -0
  521. package/dist/server/src/lib/hooks/sources/opencode/source.js +3 -0
  522. package/dist/server/src/lib/polling/response-checker.js +47 -0
  523. package/dist/server/src/lib/push/escalation-settings.js +114 -0
  524. package/dist/server/src/lib/push/index.js +21 -1
  525. package/dist/server/src/lib/push/notification-dedup.js +35 -0
  526. package/dist/server/src/lib/push/push-sender.js +66 -7
  527. package/dist/server/src/lib/push/waiting-push-notifier.js +231 -0
  528. package/dist/server/src/lib/realtime/waiting-broadcast.js +93 -0
  529. package/dist/server/src/lib/session/agent-event-state.js +260 -0
  530. package/dist/server/src/lib/session/current-output-builder.js +24 -0
  531. package/dist/server/src/lib/session/next-action-helper.js +93 -0
  532. package/dist/server/src/lib/session/prompt-waiting-composition.js +38 -0
  533. package/dist/server/src/lib/session/waiting-episode-state.js +136 -0
  534. package/dist/server/src/lib/session/waiting-kind.js +59 -0
  535. package/dist/server/src/lib/tasks/contract-message.js +64 -21
  536. package/dist/server/src/lib/tasks/contract-parser.js +58 -12
  537. package/dist/server/src/lib/verification/gate-runner.js +64 -22
  538. package/dist/server/src/lib/verification/verify-config.js +84 -51
  539. package/dist/server/src/lib/ws-server.js +9 -0
  540. package/dist/server/src/types/sidebar.js +68 -0
  541. package/package.json +1 -1
  542. package/.next/server/chunks/3451.js +0 -1
  543. package/.next/server/chunks/6283.js +0 -1
  544. package/.next/server/chunks/646.js +0 -21
  545. package/.next/static/chunks/2053-52d3c82014e1cd54.js +0 -1
  546. package/.next/static/chunks/4560-0917ae2e6a0e5400.js +0 -1
  547. package/.next/static/chunks/6488-95ba9d24a76f0cc5.js +0 -1
  548. package/.next/static/chunks/7229.edb331fb9fbafa27.js +0 -1
  549. package/.next/static/chunks/744-fa8c0ae444c8338c.js +0 -1
  550. package/.next/static/chunks/9263.5259f73f89220d64.js +0 -1
  551. package/.next/static/chunks/app/api/assistant/messages/route-973ec48531555712.js +0 -1
  552. package/.next/static/chunks/app/api/assistant/session/route-973ec48531555712.js +0 -1
  553. package/.next/static/chunks/app/api/assistant/start/route-973ec48531555712.js +0 -1
  554. package/.next/static/chunks/app/api/assistant/terminal/route-973ec48531555712.js +0 -1
  555. package/.next/static/chunks/app/api/assistant/tools/route-973ec48531555712.js +0 -1
  556. package/.next/static/chunks/app/api/auth/login/route-973ec48531555712.js +0 -1
  557. package/.next/static/chunks/app/api/auth/logout/route-973ec48531555712.js +0 -1
  558. package/.next/static/chunks/app/api/auth/status/route-973ec48531555712.js +0 -1
  559. package/.next/static/chunks/app/api/daily-summary/route-973ec48531555712.js +0 -1
  560. package/.next/static/chunks/app/api/daily-summary/status/route-973ec48531555712.js +0 -1
  561. package/.next/static/chunks/app/api/external-apps/[id]/health/route-973ec48531555712.js +0 -1
  562. package/.next/static/chunks/app/api/external-apps/[id]/route-973ec48531555712.js +0 -1
  563. package/.next/static/chunks/app/api/external-apps/route-973ec48531555712.js +0 -1
  564. package/.next/static/chunks/app/api/fs/browse/route-973ec48531555712.js +0 -1
  565. package/.next/static/chunks/app/api/fs/recent-paths/route-973ec48531555712.js +0 -1
  566. package/.next/static/chunks/app/api/hooks/agent-event/route-973ec48531555712.js +0 -1
  567. package/.next/static/chunks/app/api/hooks/claude-done/route-973ec48531555712.js +0 -1
  568. package/.next/static/chunks/app/api/hooks/permission-request/route-973ec48531555712.js +0 -1
  569. package/.next/static/chunks/app/api/metrics/vibe/route-973ec48531555712.js +0 -1
  570. package/.next/static/chunks/app/api/ollama/models/route-973ec48531555712.js +0 -1
  571. package/.next/static/chunks/app/api/push/subscriptions/route-973ec48531555712.js +0 -1
  572. package/.next/static/chunks/app/api/push/vapid/route-973ec48531555712.js +0 -1
  573. package/.next/static/chunks/app/api/repositories/[id]/route-973ec48531555712.js +0 -1
  574. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-973ec48531555712.js +0 -1
  575. package/.next/static/chunks/app/api/repositories/[id]/todos/route-973ec48531555712.js +0 -1
  576. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-973ec48531555712.js +0 -1
  577. package/.next/static/chunks/app/api/repositories/clone/route-973ec48531555712.js +0 -1
  578. package/.next/static/chunks/app/api/repositories/excluded/route-973ec48531555712.js +0 -1
  579. package/.next/static/chunks/app/api/repositories/restore/route-973ec48531555712.js +0 -1
  580. package/.next/static/chunks/app/api/repositories/route-973ec48531555712.js +0 -1
  581. package/.next/static/chunks/app/api/repositories/scan/route-973ec48531555712.js +0 -1
  582. package/.next/static/chunks/app/api/repositories/sync/route-973ec48531555712.js +0 -1
  583. package/.next/static/chunks/app/api/repositories/validate-path/route-973ec48531555712.js +0 -1
  584. package/.next/static/chunks/app/api/sidebar/group-order/route-973ec48531555712.js +0 -1
  585. package/.next/static/chunks/app/api/skills/[id]/route-973ec48531555712.js +0 -1
  586. package/.next/static/chunks/app/api/skills/installations/route-973ec48531555712.js +0 -1
  587. package/.next/static/chunks/app/api/skills/operations/route-973ec48531555712.js +0 -1
  588. package/.next/static/chunks/app/api/skills/reindex/route-973ec48531555712.js +0 -1
  589. package/.next/static/chunks/app/api/skills/route-973ec48531555712.js +0 -1
  590. package/.next/static/chunks/app/api/slash-commands/route-973ec48531555712.js +0 -1
  591. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-973ec48531555712.js +0 -1
  592. package/.next/static/chunks/app/api/tasks/[taskId]/route-973ec48531555712.js +0 -1
  593. package/.next/static/chunks/app/api/templates/[id]/route-973ec48531555712.js +0 -1
  594. package/.next/static/chunks/app/api/templates/route-973ec48531555712.js +0 -1
  595. package/.next/static/chunks/app/api/todos/route-973ec48531555712.js +0 -1
  596. package/.next/static/chunks/app/api/verification/runs/[runId]/route-973ec48531555712.js +0 -1
  597. package/.next/static/chunks/app/api/verification/runs/route-973ec48531555712.js +0 -1
  598. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-973ec48531555712.js +0 -1
  599. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-973ec48531555712.js +0 -1
  600. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-973ec48531555712.js +0 -1
  601. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-973ec48531555712.js +0 -1
  602. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-973ec48531555712.js +0 -1
  603. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-973ec48531555712.js +0 -1
  604. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-973ec48531555712.js +0 -1
  605. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-973ec48531555712.js +0 -1
  606. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-973ec48531555712.js +0 -1
  607. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-973ec48531555712.js +0 -1
  608. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-973ec48531555712.js +0 -1
  609. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-973ec48531555712.js +0 -1
  610. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-973ec48531555712.js +0 -1
  611. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-973ec48531555712.js +0 -1
  612. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-973ec48531555712.js +0 -1
  613. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-973ec48531555712.js +0 -1
  614. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-973ec48531555712.js +0 -1
  615. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-973ec48531555712.js +0 -1
  616. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-973ec48531555712.js +0 -1
  617. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-973ec48531555712.js +0 -1
  618. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-973ec48531555712.js +0 -1
  619. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-973ec48531555712.js +0 -1
  620. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-973ec48531555712.js +0 -1
  621. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-973ec48531555712.js +0 -1
  622. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-973ec48531555712.js +0 -1
  623. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-973ec48531555712.js +0 -1
  624. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-973ec48531555712.js +0 -1
  625. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-973ec48531555712.js +0 -1
  626. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-973ec48531555712.js +0 -1
  627. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-973ec48531555712.js +0 -1
  628. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-973ec48531555712.js +0 -1
  629. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-973ec48531555712.js +0 -1
  630. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-973ec48531555712.js +0 -1
  631. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-973ec48531555712.js +0 -1
  632. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-973ec48531555712.js +0 -1
  633. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-973ec48531555712.js +0 -1
  634. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-973ec48531555712.js +0 -1
  635. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-973ec48531555712.js +0 -1
  636. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-973ec48531555712.js +0 -1
  637. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-973ec48531555712.js +0 -1
  638. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-973ec48531555712.js +0 -1
  639. package/.next/static/chunks/app/api/worktrees/[id]/route-973ec48531555712.js +0 -1
  640. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-973ec48531555712.js +0 -1
  641. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-973ec48531555712.js +0 -1
  642. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-973ec48531555712.js +0 -1
  643. package/.next/static/chunks/app/api/worktrees/[id]/search/route-973ec48531555712.js +0 -1
  644. package/.next/static/chunks/app/api/worktrees/[id]/send/route-973ec48531555712.js +0 -1
  645. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-973ec48531555712.js +0 -1
  646. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-973ec48531555712.js +0 -1
  647. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-973ec48531555712.js +0 -1
  648. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-973ec48531555712.js +0 -1
  649. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-973ec48531555712.js +0 -1
  650. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-973ec48531555712.js +0 -1
  651. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-973ec48531555712.js +0 -1
  652. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-973ec48531555712.js +0 -1
  653. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-973ec48531555712.js +0 -1
  654. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-973ec48531555712.js +0 -1
  655. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-973ec48531555712.js +0 -1
  656. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-973ec48531555712.js +0 -1
  657. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-973ec48531555712.js +0 -1
  658. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-973ec48531555712.js +0 -1
  659. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-973ec48531555712.js +0 -1
  660. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-973ec48531555712.js +0 -1
  661. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-973ec48531555712.js +0 -1
  662. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-973ec48531555712.js +0 -1
  663. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-973ec48531555712.js +0 -1
  664. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-973ec48531555712.js +0 -1
  665. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-973ec48531555712.js +0 -1
  666. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-973ec48531555712.js +0 -1
  667. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-973ec48531555712.js +0 -1
  668. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-973ec48531555712.js +0 -1
  669. package/.next/static/chunks/app/api/worktrees/route-973ec48531555712.js +0 -1
  670. package/.next/static/chunks/app/chat/page-83a2238ab453afaa.js +0 -1
  671. package/.next/static/chunks/app/layout-86574192bd3c0e6b.js +0 -1
  672. package/.next/static/chunks/app/login/page-0247a3fb569bb22b.js +0 -1
  673. package/.next/static/chunks/app/manifest.webmanifest/route-973ec48531555712.js +0 -1
  674. package/.next/static/chunks/app/more/page-1619018cac999bbc.js +0 -1
  675. package/.next/static/chunks/app/page-a34d26812f085b6c.js +0 -1
  676. package/.next/static/chunks/app/proxy/[...path]/route-973ec48531555712.js +0 -1
  677. package/.next/static/chunks/app/repositories/page-202680fe6ec169c8.js +0 -1
  678. package/.next/static/chunks/app/review/page-b559bfb11c46931b.js +0 -1
  679. package/.next/static/chunks/app/sessions/page-3fa7e767d0ab3889.js +0 -1
  680. package/.next/static/chunks/app/skills/[skillId]/page-10d6f983e5f06ffb.js +0 -1
  681. package/.next/static/chunks/app/skills/installed/page-6641f95e6a6e5f9d.js +0 -1
  682. package/.next/static/chunks/app/skills/page-184f8e23e31a3667.js +0 -1
  683. package/.next/static/chunks/app/worktrees/[id]/files/[...path]/page-6041d3c3db326317.js +0 -1
  684. package/.next/static/chunks/app/worktrees/[id]/layout-973ec48531555712.js +0 -1
  685. package/.next/static/chunks/app/worktrees/[id]/page-966a451ae7b0903a.js +0 -1
  686. package/.next/static/css/d3453a6876553d32.css +0 -1
  687. package/.next/static/wH6K6QNPHSdATFkVoIcy3/_buildManifest.js +0 -1
  688. /package/.next/static/{wH6K6QNPHSdATFkVoIcy3 → ehkNc5xDMDkXlua08Bwq0}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ "use strict";exports.id=8730,exports.ids=[8730],exports.modules={8730:(a,b,c)=>{c.d(b,{Ex:()=>o.E,$n:()=>d.$,Zp:()=>k,Wu:()=>n,aR:()=>l,ZB:()=>m,Sc:()=>B,TM:()=>r.TM,pd:()=>t,Jh:()=>q.a,z6:()=>E,CU:()=>F,l6:()=>Q,gC:()=>T,eb:()=>U,bq:()=>S,yv:()=>R,EA:()=>v.E,y$:()=>w.y,md:()=>p.m,dO:()=>x.d,tU:()=>I,av:()=>L,j7:()=>J,Xi:()=>K,k_:()=>u,j1:()=>s});var d=c(94260),e=c(21124),f=c(38301),g=c.n(f),h=c(26691),i=c(35595);let j=(0,h.F)("bg-surface text-surface-foreground rounded-lg border border-border shadow-sm",{variants:{variant:{default:"",elevated:"bg-gradient-to-b from-surface to-surface-2 shadow-md",interactive:"cursor-pointer transition-all duration-200 hover:border-accent-500 hover:shadow-md motion-safe:hover:-translate-y-0.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-accent-500 focus-visible:shadow-md motion-safe:focus-visible:-translate-y-0.5"},hover:{true:"transition-shadow duration-200 hover:shadow-md",false:""},interactive:{true:"cursor-pointer transition-all duration-200 hover:shadow-lg active:shadow-md motion-safe:hover:-translate-y-0.5 motion-safe:active:translate-y-0",false:""},padding:{none:"",sm:"p-3",md:"p-4",lg:"p-6"}},defaultVariants:{variant:"default",hover:!1,interactive:!1,padding:"md"}});function k({variant:a="default",hover:b=!1,interactive:c=!1,padding:d="md",className:f="",children:g,...h}){return(0,e.jsx)("div",{className:(0,i.cn)(j({variant:a,hover:b,interactive:c,padding:d}),f),...h,children:g})}function l({className:a="",children:b,...c}){return(0,e.jsx)("div",{className:(0,i.cn)("mb-3",a),...c,children:b})}function m({className:a="",children:b,...c}){return(0,e.jsx)("h3",{className:(0,i.cn)("text-lg font-semibold text-surface-foreground",a),...c,children:b})}function n({className:a="",children:b,...c}){return(0,e.jsx)("div",{className:(0,i.cn)(a),...c,children:b})}var o=c(80755),p=c(22317),q=c(98033),r=c(79782);let s=(0,h.F)("flex w-full rounded-md border border-input bg-surface dark:bg-surface-2 text-surface-foreground shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring disabled:cursor-not-allowed disabled:opacity-50",{variants:{inputSize:{sm:"h-8 px-2.5 py-1 text-sm",md:"px-3 py-2 text-sm",lg:"px-4 py-2.5 text-base"}},defaultVariants:{inputSize:"md"}}),t=g().forwardRef(({className:a,inputSize:b,type:c="text",...d},f)=>(0,e.jsx)("input",{ref:f,type:c,className:(0,i.cn)(s({inputSize:b}),a),...d}));t.displayName="Input";let u=g().forwardRef(({className:a,...b},c)=>(0,e.jsx)("textarea",{ref:c,className:(0,i.cn)("flex min-h-[80px] w-full rounded-md border border-input bg-surface dark:bg-surface-2 px-3 py-2 text-sm text-surface-foreground shadow-sm","placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring","disabled:cursor-not-allowed disabled:opacity-50",a),...b}));u.displayName="Textarea";var v=c(79689),w=c(17793),x=c(74892),y=c(89339),z=c(51881),A=c(71613);let B=g().forwardRef(({className:a,...b},c)=>(0,e.jsx)(y.bL,{ref:c,className:(0,i.cn)("peer inline-flex h-4 w-4 shrink-0 cursor-pointer items-center justify-center rounded-sm border border-input bg-surface text-surface-foreground shadow-sm transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","data-[state=checked]:border-accent-600 data-[state=checked]:bg-accent-600 data-[state=checked]:text-white","data-[state=indeterminate]:border-accent-600 data-[state=indeterminate]:bg-accent-600 data-[state=indeterminate]:text-white",a),...b,children:(0,e.jsx)(y.C1,{className:"flex items-center justify-center text-current",children:"indeterminate"===b.checked?(0,e.jsx)(z.A,{className:"h-3 w-3",strokeWidth:3,"aria-hidden":"true"}):(0,e.jsx)(A.A,{className:"h-3 w-3",strokeWidth:3,"aria-hidden":"true"})})}));B.displayName="Checkbox";var C=c(64450),D=c(90133);let E=g().forwardRef(({className:a,...b},c)=>(0,e.jsx)(C.bL,{ref:c,className:(0,i.cn)("grid gap-2",a),...b}));E.displayName="RadioGroup";let F=g().forwardRef(({className:a,...b},c)=>(0,e.jsx)(C.q7,{ref:c,className:(0,i.cn)("aspect-square h-4 w-4 shrink-0 cursor-pointer rounded-full border border-input bg-surface text-accent-600 shadow-sm","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","data-[state=checked]:border-accent-600",a),...b,children:(0,e.jsx)(C.C1,{className:"flex items-center justify-center",children:(0,e.jsx)(D.A,{className:"h-2 w-2 fill-accent-600 text-accent-600","aria-hidden":"true"})})}));F.displayName="RadioGroupItem";var G=c(89989);let H=g().createContext("underline"),I=g().forwardRef(({variant:a="underline",...b},c)=>(0,e.jsx)(H.Provider,{value:a,children:(0,e.jsx)(G.bL,{ref:c,...b})}));I.displayName="Tabs";let J=g().forwardRef(({className:a,...b},c)=>{let d=g().useContext(H);return(0,e.jsx)(G.B8,{ref:c,className:(0,i.cn)("inline-flex items-center","pill"===d?"gap-1 rounded-lg bg-muted p-1":"gap-4 border-b border-border",a),...b})});J.displayName="TabsList";let K=g().forwardRef(({className:a,...b},c)=>{let d=g().useContext(H);return(0,e.jsx)(G.l9,{ref:c,className:(0,i.cn)("inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring","disabled:pointer-events-none disabled:opacity-50","pill"===d?"rounded-md px-3 py-1.5 text-muted-foreground data-[state=active]:bg-surface data-[state=active]:text-surface-foreground data-[state=active]:shadow-sm":"-mb-px border-b-2 border-transparent px-1 py-2 text-muted-foreground hover:text-foreground data-[state=active]:border-accent-500 data-[state=active]:text-accent-600",a),...b})});K.displayName="TabsTrigger";let L=g().forwardRef(({className:a,...b},c)=>(0,e.jsx)(G.UC,{ref:c,className:(0,i.cn)("mt-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",a),...b}));L.displayName="TabsContent";var M=c(39567),N=c(85351),O=c(82042),P=c(11010);let Q=M.bL;M.YJ;let R=M.WT,S=g().forwardRef(({className:a,children:b,...c},d)=>(0,e.jsxs)(M.l9,{ref:d,className:(0,i.cn)("flex h-9 w-full items-center justify-between gap-2 rounded-md border border-input bg-surface dark:bg-surface-2 px-3 py-2 text-sm text-surface-foreground shadow-sm","placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring","disabled:cursor-not-allowed disabled:opacity-50","[&>span]:line-clamp-1",a),...c,children:[b,(0,e.jsx)(M.In,{asChild:!0,children:(0,e.jsx)(N.A,{size:16,className:"opacity-60","aria-hidden":"true"})})]}));S.displayName="SelectTrigger";let T=g().forwardRef(({className:a,children:b,position:c="popper",...d},f)=>(0,e.jsx)(M.ZL,{children:(0,e.jsxs)(M.UC,{ref:f,position:c,style:{zIndex:P.M.POPOVER},className:(0,i.cn)("relative max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-hidden rounded-md border border-border bg-surface text-surface-foreground shadow-lg","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===c&&"data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",a),...d,children:[(0,e.jsx)(M.PP,{className:"flex h-6 items-center justify-center",children:(0,e.jsx)(O.A,{size:16,"aria-hidden":"true"})}),(0,e.jsx)(M.LM,{className:(0,i.cn)("p-1","popper"===c&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:b}),(0,e.jsx)(M.wn,{className:"flex h-6 items-center justify-center",children:(0,e.jsx)(N.A,{size:16,"aria-hidden":"true"})})]})}));T.displayName="SelectContent",g().forwardRef(({className:a,...b},c)=>(0,e.jsx)(M.JU,{ref:c,className:(0,i.cn)("px-2 py-1.5 text-xs font-semibold text-muted-foreground",a),...b})).displayName="SelectLabel";let U=g().forwardRef(({className:a,children:b,...c},d)=>(0,e.jsxs)(M.q7,{ref:d,className:(0,i.cn)("relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...c,children:[(0,e.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,e.jsx)(M.VF,{children:(0,e.jsx)(A.A,{size:16,"aria-hidden":"true"})})}),(0,e.jsx)(M.p4,{children:b})]}));U.displayName="SelectItem",g().forwardRef(({className:a,...b},c)=>(0,e.jsx)(M.wv,{ref:c,className:(0,i.cn)("-mx-1 my-1 h-px bg-border",a),...b})).displayName="SelectSeparator";var V=c(16992);V.Kq,V.bL,V.l9,g().forwardRef(({className:a,sideOffset:b=4,children:c,...d},f)=>(0,e.jsx)(V.ZL,{children:(0,e.jsxs)(V.UC,{ref:f,sideOffset:b,style:{zIndex:P.M.POPOVER},className:(0,i.cn)("overflow-hidden rounded-md bg-foreground px-2.5 py-1.5 text-xs text-background shadow-md","animate-in fade-in-0 zoom-in-95","data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...d,children:[c,(0,e.jsx)(V.i3,{className:"fill-foreground"})]})})).displayName="TooltipContent",c(10290),c(85647)},10290:(a,b,c)=>{c.d(b,{Hr:()=>q,Ht:()=>p,SQ:()=>n,_2:()=>o,mB:()=>r,rI:()=>l,ty:()=>m});var d=c(21124),e=c(38301),f=c.n(e),g=c(12927),h=c(71613),i=c(90133),j=c(11010),k=c(35595);let l=g.bL,m=g.l9;g.YJ;let n=f().forwardRef(({className:a,sideOffset:b=4,...c},e)=>(0,d.jsx)(g.ZL,{children:(0,d.jsx)(g.UC,{ref:e,sideOffset:b,style:{zIndex:j.M.POPOVER},className:(0,k.cn)("min-w-[8rem] overflow-hidden rounded-md border border-border bg-surface p-1 text-surface-foreground shadow-lg","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...c})}));n.displayName="DropdownMenuContent";let o=f().forwardRef(({className:a,inset:b,...c},e)=>(0,d.jsx)(g.q7,{ref:e,className:(0,k.cn)("relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",b&&"pl-8",a),...c}));o.displayName="DropdownMenuItem",f().forwardRef(({className:a,children:b,checked:c,...e},f)=>(0,d.jsxs)(g.H_,{ref:f,checked:c,className:(0,k.cn)("relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...e,children:[(0,d.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,d.jsx)(g.VF,{children:(0,d.jsx)(h.A,{size:16,"aria-hidden":"true"})})}),b]})).displayName="DropdownMenuCheckboxItem";let p=f().forwardRef(({className:a,children:b,...c},e)=>(0,d.jsxs)(g.hN,{ref:e,className:(0,k.cn)("relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...c,children:[(0,d.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,d.jsx)(g.VF,{children:(0,d.jsx)(i.A,{size:8,className:"fill-current","aria-hidden":"true"})})}),b]}));p.displayName="DropdownMenuRadioItem";let q=g.z6;f().forwardRef(({className:a,inset:b,...c},e)=>(0,d.jsx)(g.JU,{ref:e,className:(0,k.cn)("px-2 py-1.5 text-xs font-semibold text-muted-foreground",b&&"pl-8",a),...c})).displayName="DropdownMenuLabel";let r=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)(g.wv,{ref:c,className:(0,k.cn)("-mx-1 my-1 h-px bg-border",a),...b}));r.displayName="DropdownMenuSeparator"},22317:(a,b,c)=>{c.d(b,{m:()=>l});var d=c(21124);c(38301);var e=c(20481),f=c(35595);let g={idle:{colorClass:"bg-muted-foreground",labelKey:"status.idle"},ready:{colorClass:"bg-success",labelKey:"status.ready"},running:{colorClass:"bg-success text-success ring-2 ring-success/40",animationClass:"animate-status-glow",labelKey:"status.running"},generating:{colorClass:"bg-success text-success ring-2 ring-success/40",animationClass:"animate-status-glow",labelKey:"status.generating"},waiting:{colorClass:"bg-warning text-warning ring-4 ring-warning/50",animationClass:"animate-status-attention",labelKey:"status.waiting"},error:{colorClass:"bg-danger",labelKey:"status.error"}},h={colorClass:"bg-warning text-warning ring-2 ring-warning/40",animationClass:"animate-status-glow",labelKey:"status.waiting"},i=new Set(["menu","unclassified"]),j={colorClass:"bg-muted-foreground",labelKey:"status.unknown"},k={sm:"w-2 h-2",md:"w-2.5 h-2.5",lg:"w-3 h-3"};function l({status:a,size:b="md",label:c,waitingKind:l,className:m,...n}){let o=(0,e.c)("common"),p=function(a,b){let c=g[a]??j;return"waiting"!==a?c:b&&i.has(b)?h:c}(a,l),q=c??o(p.labelKey);return(0,d.jsx)("span",{className:(0,f.cn)("inline-block flex-shrink-0 rounded-full",k[b],p.colorClass,p.animationClass,m),title:q,"aria-label":q,...n})}},74892:(a,b,c)=>{c.d(b,{d:()=>i});var d=c(21124),e=c(38301),f=c.n(e),g=c(75441),h=c(35595);let i=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)(g.bL,{ref:c,className:(0,h.cn)("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","data-[state=checked]:bg-accent-600 data-[state=unchecked]:bg-muted",a),...b,children:(0,d.jsx)(g.zi,{className:(0,h.cn)("pointer-events-none block h-4 w-4 rounded-full bg-surface shadow-lg ring-0 transition-transform","data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));i.displayName="Switch"},79689:(a,b,c)=>{c.d(b,{E:()=>f});var d=c(21124);c(38301);var e=c(35595);function f({className:a,...b}){return(0,d.jsx)("div",{className:(0,e.cn)("animate-pulse rounded-md bg-muted",a),"aria-hidden":"true",...b})}},80755:(a,b,c)=>{c.d(b,{E:()=>i});var d=c(21124);c(38301);var e=c(26691),f=c(35595);let g=(0,e.F)("inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium",{variants:{variant:{success:"bg-success-subtle text-success-foreground",warning:"bg-warning-subtle text-warning-foreground",error:"bg-danger-subtle text-danger-foreground",info:"bg-accent-100 dark:bg-accent-900 text-accent-800 dark:text-accent-300",gray:"bg-muted text-muted-foreground"}},defaultVariants:{variant:"gray"}}),h={success:"bg-success",warning:"bg-warning",error:"bg-danger",info:"bg-info",gray:"bg-muted-foreground"};function i({variant:a="gray",dot:b=!1,className:c="",children:e,...i}){return(0,d.jsxs)("span",{className:(0,f.cn)(g({variant:a}),c),...i,children:[b&&(0,d.jsx)("span",{className:(0,f.cn)("mr-1.5 inline-block h-2 w-2 rounded-full",h[a]),"aria-hidden":"true"}),e]})}},85647:(a,b,c)=>{c.d(b,{u:()=>f});var d=c(21124);c(38301);var e=c(35595);function f({className:a,children:b,...c}){return(0,d.jsx)("kbd",{className:(0,e.cn)("inline-flex h-5 min-w-[1.25rem] items-center justify-center rounded-sm border border-border bg-surface px-1","font-mono text-[10px] font-medium leading-none text-muted-foreground",a),...c,children:b})}}};
@@ -0,0 +1,21 @@
1
+ "use strict";exports.id=880,exports.ids=[880],exports.modules={1102:(a,b,c)=>{c.d(b,{m_:()=>i});var d=c(21124),e=c(38301),f=c(23312);function g(a,b,c){return Math.min(Math.max(a,4),Math.max(4,c-b-4))}let h={top:-9999,left:-9999};function i({content:a,placement:b="right",delay:c=100,children:i}){let[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)(null),n=(0,e.useRef)(null),o=(0,e.useRef)(null),p=(0,e.useRef)(null),q=(0,e.useCallback)(()=>{null!==p.current&&(clearTimeout(p.current),p.current=null)},[]),r=(0,e.useCallback)(()=>{q(),p.current=setTimeout(()=>{k(!0),p.current=null},c)},[c,q]),s=(0,e.useCallback)(()=>{q(),k(!1),m(null)},[q]);return(0,e.useCallback)(()=>{let a=n.current,c=o.current;if(!a||!c)return;let d=a.getBoundingClientRect(),e=c.getBoundingClientRect();m(function(a,b,c,d){let e,f,h=b.left+b.width/2-c.width/2,i=b.top+b.height/2-c.height/2;switch(a){case"top":e=b.top-c.height-8,f=h;break;case"bottom":e=b.top+b.height+8,f=h;break;case"left":e=i,f=b.left-c.width-8;break;default:e=i,f=b.left+b.width+8}return{top:g(e,c.height,d.height),left:g(f,c.width,d.width)}}(b,{top:d.top,left:d.left,width:d.width,height:d.height},{width:e.width,height:e.height},{width:window.innerWidth,height:window.innerHeight}))},[b]),(0,d.jsxs)("span",{ref:n,"data-testid":"tooltip-wrapper",className:"relative inline-flex",tabIndex:-1,onMouseEnter:r,onMouseLeave:s,children:[i,j&&"undefined"!=typeof document&&(0,f.createPortal)((0,d.jsx)("span",{ref:o,role:"tooltip","aria-hidden":"true","data-placement":b,className:"fixed z-40 whitespace-nowrap px-2 py-1 text-xs font-medium rounded bg-foreground text-background shadow-lg pointer-events-none",style:l??h,children:a}),document.body)]})}},8509:(a,b,c)=>{c.d(b,{g:()=>h});var d=c(21124);c(38301);var e=c(20481),f=c(5772),g=c(12480);function h(){let{size:a,setSize:b,isMobile:c}=(0,f.Ps)(),h=(0,e.c)("common");if(c)return null;let i=h("displaySize.ariaLabel");return(0,d.jsxs)("div",{className:"flex items-center",children:[(0,d.jsx)("label",{htmlFor:"pc-display-size",className:"sr-only",children:i}),(0,d.jsx)("select",{id:"pc-display-size","data-testid":"pc-display-size-select","aria-label":i,value:a,onChange:a=>{let c=a.target.value;(0,g.fM)(c)&&b(c)},className:"text-sm bg-transparent text-foreground border border-input rounded-md px-2 py-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:g.Uf.map(a=>(0,d.jsx)("option",{value:a,children:h(`displaySize.${a}`)},a))})]})}},77560:(a,b,c)=>{c.d(b,{$h:()=>l,DR:()=>e,IH:()=>j,Iu:()=>d,Nb:()=>m,SD:()=>f,_d:()=>i,bm:()=>n,ks:()=>h,t7:()=>k,z7:()=>g});let d=7e3,e=["in_review","approval","stalled"],f="in_review",g="filter",h=`/review?${g}=approval`;function i(a){return a&&e.includes(a)?a:null}let j=["claude","codex","copilot","antigravity"],k=1e3,l=5,m=100,n=1e3},80880:(a,b,c)=>{c.d(b,{GV:()=>ba});var d=c(21124),e=c(38301),f=c.n(e),g=c(42378),h=c(3991),i=c.n(h),j=c(52761);let k=(0,e.forwardRef)(function({href:a,onClick:b,target:c,...e},f){let h=(0,g.usePathname)(),k=(0,j.Hq)();return(0,d.jsx)(i(),{ref:f,href:a,target:c,onClick:d=>{var e;b?.(d),d.defaultPrevented||0!==(e=d).button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||void 0!==c&&"_self"!==c||/^([a-z][a-z0-9+.-]*:)?\/\//i.test(a)||/^(mailto:|tel:)/i.test(a)||(d.preventDefault(),a!==h&&k.push(a))},...e})});var l=c(20481),m=c(15917),n=c(88285),o=c(97950),p=c(8509),q=c(45523),r=c(70175),s=c(60988);function t(){let{theme:a,setTheme:b}=(0,q.D)(),[c,f]=(0,e.useState)(!1);if(!c)return(0,d.jsx)("div",{"data-testid":"theme-toggle-placeholder",className:"w-8 h-8","aria-hidden":"true"});let g="dark"===a;return(0,d.jsx)("button",{"data-testid":"theme-toggle",onClick:()=>b(g?"light":"dark"),className:"p-1.5 rounded-md text-muted-foreground hover:text-foreground hover:bg-muted transition-colors focus:outline-none focus:ring-2 focus:ring-ring","aria-label":g?"Switch to light mode":"Switch to dark mode",title:g?"Switch to light mode":"Switch to dark mode",children:g?(0,d.jsx)(r.A,{className:"w-5 h-5","data-testid":"theme-icon-sun"}):(0,d.jsx)(s.A,{className:"w-5 h-5","data-testid":"theme-icon-moon"})})}var u=c(67619);function v(){let{status:a}=(0,u.xM)(),b=(0,l.c)("common");if("connected"===a)return null;let c="connecting"===a,e=b(c?"connection.reconnecting":"connection.offline");return(0,d.jsxs)("span",{"data-testid":"connection-status-indicator",role:"status","aria-live":"polite",title:b(c?"connection.reconnectingTooltip":"connection.offlineTooltip"),className:"hidden sm:inline-flex items-center gap-1.5 rounded-full border border-border bg-surface px-2 py-0.5 text-xs text-muted-foreground",children:[(0,d.jsx)("span",{"aria-hidden":"true",className:["w-1.5 h-1.5 rounded-full",c?"bg-warning motion-safe:animate-pulse":"bg-muted-foreground"].join(" ")}),e]})}var w=c(85647),x=c(64632);let y=[{labelKey:"nav.home",href:"/",isActive:a=>"/"===a},{labelKey:"nav.chat",href:"/chat",isActive:a=>a.startsWith("/chat")},{labelKey:"nav.sessions",href:"/sessions",isActive:a=>a.startsWith("/sessions")},{labelKey:"nav.repositoriesShort",href:"/repositories",isActive:a=>a.startsWith("/repositories")},{labelKey:"nav.reviewReport",href:"/review",isActive:a=>a.startsWith("/review")},{labelKey:"nav.more",href:"/more",isActive:a=>a.startsWith("/more")}];function z({title:a="CommandMate"}){let b=(0,g.usePathname)(),c=(0,l.c)("commandPalette"),e=(0,l.c)("common"),{setOpen:h}=(0,x.C)(),[i,j]=f().useState(null);return(0,d.jsx)("header",{className:"sticky top-0 z-50 border-b border-border bg-background supports-[backdrop-filter]:bg-background/80 backdrop-blur-md",children:(0,d.jsx)("div",{className:"container-custom",children:(0,d.jsxs)("div",{className:"flex items-center justify-between h-16",children:[(0,d.jsx)("div",{className:"flex items-center space-x-4",children:(0,d.jsxs)(k,{href:"/",className:"flex items-center space-x-2 hover:opacity-80 transition-opacity",children:[(0,d.jsx)("div",{className:"w-8 h-8 bg-accent-600 rounded-lg flex items-center justify-center",children:(0,d.jsx)(m.A,{size:20,strokeWidth:2,className:"text-white","aria-hidden":"true"})}),(0,d.jsx)("h1",{className:"text-xl font-bold text-foreground",children:a})]})}),(0,d.jsxs)("nav",{className:"flex items-center space-x-6",role:"navigation",children:[y.map(a=>{let c=a.isActive(b);return(0,d.jsx)(k,{href:a.href,"aria-current":c?"page":void 0,className:`relative py-1 text-sm font-medium transition-colors after:absolute after:inset-x-0 after:bottom-0 after:h-0.5 after:rounded-full after:bg-accent-600 dark:after:bg-accent-400 after:origin-center motion-safe:after:transition-transform after:duration-200 after:ease-[var(--motion-ease-out)] ${c?"text-accent-600 dark:text-accent-400 after:scale-x-100":"text-muted-foreground hover:text-foreground after:scale-x-0"}`,children:e(a.labelKey)},a.href)}),(0,d.jsxs)("button",{type:"button","data-testid":"header-command-palette-trigger",onClick:()=>h(!0),"aria-label":c("mobileTrigger"),className:"hidden md:inline-flex items-center gap-2 rounded-md border border-border bg-surface px-2.5 py-1.5 text-sm text-muted-foreground hover:bg-surface-2 transition-colors",children:[(0,d.jsx)(n.A,{size:16,strokeWidth:2,"aria-hidden":"true",className:"shrink-0"}),(0,d.jsx)("span",{children:c("searchAction")}),i&&(0,d.jsxs)("span",{className:"flex items-center gap-0.5",children:[(0,d.jsx)(w.u,{children:i}),(0,d.jsx)(w.u,{children:"K"})]})]}),(0,d.jsx)(v,{}),(0,d.jsx)(p.g,{}),(0,d.jsx)(t,{}),(0,d.jsxs)("a",{href:"https://github.com/kewton/MyCodeBranchDesk",target:"_blank",rel:"noopener noreferrer",className:"text-sm font-medium text-muted-foreground hover:text-foreground transition-colors flex items-center space-x-1",children:[(0,d.jsx)(o.A,{size:20,strokeWidth:2,"aria-hidden":"true"}),(0,d.jsx)("span",{children:"GitHub"})]})]})]})})})}var A=c(81092),B=c(90076);let C={showSidebar:!0,showGlobalNav:!0,showLocalNav:!1,autoCollapseSidebar:!1},D=[{prefix:"/worktrees/",config:{showGlobalNav:!1,showLocalNav:!0}},{prefix:"/sessions",config:{autoCollapseSidebar:!0}}];var E=c(5772),F=c(65828),G=c(10366),H=c(99615),I=c(22023),J=c(47817),K=c(23312),L=c.n(K),M=c(89877),N=c(22317);let O=(0,e.memo)(function({status:a,label:b,waitingKind:c}){return(0,d.jsx)(N.m,{"data-testid":"status-indicator",status:a,label:b,waitingKind:c,size:"lg"})});function P({id:a,branch:b,isVisible:c,anchorRef:f,nextActionLabel:g}){let[h,i]=(0,e.useState)({top:-9999,left:-9999}),j=(0,e.useRef)(null);if("undefined"==typeof document||!c)return null;let k=Math.min(384,Math.max(0,window.innerWidth-16));return L().createPortal((0,d.jsxs)("div",{ref:j,id:a,role:"tooltip",className:" fixed z-[9999] px-3 py-2 rounded-md shadow-lg bg-sidebar text-xs text-sidebar-foreground border border-sidebar-border pointer-events-none max-w-sm transition-opacity duration-150 ",style:{top:h.top,left:h.left,maxWidth:k},children:[(0,d.jsx)("p",{className:"font-medium text-sidebar-foreground whitespace-nowrap",children:b.name}),(0,d.jsx)("p",{className:"text-sidebar-muted whitespace-nowrap",children:b.repositoryName}),(0,d.jsxs)("p",{className:"text-sidebar-muted whitespace-nowrap",children:["Status: ",b.status]}),b.worktreePath&&(0,d.jsx)("p",{className:"text-sidebar-muted truncate",children:b.worktreePath}),g&&(0,d.jsxs)("p",{className:"text-sidebar-muted whitespace-nowrap",children:["Next: ",g]}),b.description&&(0,d.jsx)("p",{className:"text-sidebar-muted mt-1 border-t border-sidebar-border pt-1 whitespace-pre-wrap break-words",children:b.description})]}),document.body)}let Q=0,R=(0,e.memo)(function({branch:a,isSelected:b,onClick:c,showRepositoryName:f=!0}){let g=(0,l.c)("common"),h=(0,l.c)("worktree"),i=`tooltip-${a.id}`,j=(0,e.useRef)(null),[k,m]=(0,e.useState)(!1),n=(0,e.useRef)(null),o=(0,e.useCallback)(()=>{null!==n.current&&(clearTimeout(n.current),n.current=null)},[]);(0,e.useEffect)(()=>()=>o(),[o]);let p=(0,M.A7)(a.cliStatus),q="waiting"===p,r=!0===a.awaitingInstruction,s=a.nextActionKey?h(a.nextActionKey):null,t=(q||r)&&null!==s,u=k&&!b;return(0,e.useEffect)(()=>{b&&m(!1)},[b]),(0,e.useEffect)(()=>{if(!k)return;let a=()=>m(!1);return document.addEventListener("click",a),()=>document.removeEventListener("click",a)},[k]),(0,d.jsxs)("button",{ref:j,"data-testid":"branch-list-item",onClick:()=>{o(),Q=Date.now()+400,m(!1),c()},onMouseEnter:()=>{o(),Date.now()>=Q&&(n.current=setTimeout(()=>{m(!0)},150))},onMouseLeave:()=>{o(),m(!1)},onFocus:a=>{o(),a.target.matches(":focus-visible")&&(n.current=setTimeout(()=>{m(!0)},150))},onBlur:()=>{o(),m(!1)},"aria-current":b?"true":void 0,"aria-describedby":u?i:void 0,"aria-label":f?void 0:`${a.name} - ${a.repositoryName}`,className:`
2
+ group relative w-full px-4 py-3 flex flex-col gap-1
3
+ hover:bg-sidebar-hover transition-colors
4
+ focus:outline-none focus:ring-2 focus:ring-inset focus:ring-ring
5
+ ${b?"bg-sidebar-hover border-l-2 border-accent-500":"border-l-2 border-transparent"}
6
+ `,children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 w-full",children:[a.cliStatus&&Object.keys(a.cliStatus).length>0&&(0,d.jsx)("div",{className:"flex items-center justify-center flex-shrink-0 w-4","aria-label":g("branchItem.cliToolStatus"),children:(0,d.jsx)(O,{status:p,label:(0,M.dw)(a.cliStatus,a.cliStatusLabels),waitingKind:a.waitingKind})}),(0,d.jsxs)("div",{className:"flex-1 min-w-0 text-left",children:[(0,d.jsx)("p",{className:"text-sm font-medium text-sidebar-foreground truncate",children:a.name}),f&&(0,d.jsx)("p",{className:"text-xs text-sidebar-muted truncate",children:a.repositoryName}),t&&(0,d.jsx)("p",{"data-testid":"branch-next-action",className:`text-xs font-medium truncate ${q?"text-warning-foreground":"text-success-foreground"}`,children:s})]}),r&&(0,d.jsx)("span",{"data-testid":"awaiting-instruction-badge",className:"flex-shrink-0 rounded-full bg-success-subtle px-1.5 py-0.5 text-[10px] font-medium leading-4 text-success-foreground",title:h("awaitingInstruction.label"),children:h("awaitingInstruction.badge")}),a.hasUnread&&(0,d.jsx)("span",{"data-testid":"unread-indicator",className:"w-2 h-2 rounded-full bg-accent-500 flex-shrink-0","aria-label":g("branchItem.hasUnread")})]}),a.description&&(0,d.jsx)("div",{"data-testid":"branch-description",className:"pl-6 pr-2 mt-1 text-left",children:(0,d.jsx)("p",{className:"text-xs text-sidebar-muted line-clamp-2",children:a.description})}),(0,d.jsx)(P,{id:i,branch:a,isVisible:u,anchorRef:j,nextActionLabel:s})]})});var S=c(1102);function T(a,b,c){if(b<=0||c<=0)return 0;let d=a+b+8-c;return d>0?-Math.min(d,Math.max(0,a-8)):a<8?8-a:0}let U=(0,e.memo)(function({sortKey:a,sortDirection:b,onSortKeyChange:c,onSortDirectionChange:f,options:g,defaultDirections:h,compact:i,tooltip:j,iconClassName:k="w-3 h-3"}){let m=(0,l.c)("common"),[n,o]=(0,e.useState)(!1),p=(0,e.useRef)(null),q=(0,e.useRef)(null),r=(0,e.useRef)({x:0,y:0}),[s,t]=(0,e.useState)({x:0,y:0});(0,e.useEffect)(()=>{function a(a){p.current&&!p.current.contains(a.target)&&o(!1)}if(n)return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[n]),(0,e.useEffect)(()=>{function a(a){"Escape"===a.key&&o(!1)}if(n)return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[n]),(0,e.useLayoutEffect)(()=>{let a=a=>{r.current=a,t(b=>b.x===a.x&&b.y===a.y?b:a)};if(!n)return void a({x:0,y:0});let b=q.current;if(!b)return;let c=b.getBoundingClientRect();a({x:T(c.left-r.current.x,c.width,window.innerWidth),y:T(c.top-r.current.y,c.height,window.innerHeight)})},[n]);let u=(0,e.useCallback)(()=>{o(a=>!a)},[]),v=(0,e.useCallback)(d=>{d===a?f("asc"===b?"desc":"asc"):(c(d),f(h?.[d]??"asc")),o(!1)},[a,b,c,f,h]),w=(0,e.useCallback)(()=>{f("asc"===b?"desc":"asc")},[b,f]),x=g.find(b=>b.key===a)?.label||"Sort",y=(0,d.jsxs)("button",{type:"button",onClick:u,"aria-expanded":n,"aria-haspopup":"listbox","aria-label":`Sort by ${x}`,className:" flex items-center gap-1 px-2 py-1 rounded text-xs text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors ",children:[(0,d.jsx)(V,{className:k}),(0,d.jsx)("span",{className:i?"hidden":"hidden sm:inline",children:x})]});return(0,d.jsxs)("div",{ref:p,className:"relative","data-testid":"sort-selector-base",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[j?(0,d.jsx)(S.m_,{content:j,placement:"bottom",children:y}):y,(0,d.jsx)("button",{type:"button",onClick:w,"aria-label":"asc"===b?"Sort ascending":"Sort descending",className:" p-1 rounded text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors ",children:"asc"===b?(0,d.jsx)(W,{className:k}):(0,d.jsx)(X,{className:k})})]}),n&&(0,d.jsx)("div",{ref:q,role:"listbox","aria-label":m("sort.options"),className:" absolute right-0 top-full mt-1 z-50 min-w-[140px] py-1 rounded-md shadow-lg bg-sidebar border border-sidebar-border ",style:0!==s.x||0!==s.y?{transform:`translate(${s.x}px, ${s.y}px)`}:void 0,children:g.map(c=>(0,d.jsxs)("button",{type:"button",role:"option","aria-selected":a===c.key,onClick:()=>v(c.key),className:`
7
+ w-full px-3 py-2 text-left text-sm
8
+ flex items-center justify-between
9
+ hover:bg-sidebar-hover transition-colors
10
+ ${a===c.key?"text-accent-700 dark:text-accent-400":"text-sidebar-muted"}
11
+ `,children:[(0,d.jsx)("span",{children:c.label}),a===c.key&&(0,d.jsx)("span",{className:"text-xs",children:"asc"===b?"ASC":"DESC"})]},c.key))})]})});function V({className:a}){return(0,d.jsx)("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"})})}function W({className:a}){return(0,d.jsx)("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"})})}function X({className:a}){return(0,d.jsx)("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"})})}let Y=[{key:"updatedAt",labelKey:"sort.updatedAt"},{key:"repositoryName",labelKey:"sort.repositoryName"},{key:"branchName",labelKey:"sort.branchName"},{key:"status",labelKey:"sort.status"}],Z={updatedAt:"desc"},$=(0,e.memo)(function(){let{sortKey:a,sortDirection:b,setSortKey:c,setSortDirection:f}=(0,A.VF)(),g=(0,l.c)("common"),h=(0,e.useMemo)(()=>Y.map(({key:a,labelKey:b})=>({key:a,label:g(b)})),[g]);return(0,d.jsx)(U,{sortKey:a,sortDirection:b,onSortKeyChange:c,onSortDirectionChange:f,options:h,defaultDirections:Z,compact:!0,tooltip:g("tooltips.sort"),iconClassName:"w-4 h-4"})});var _=c(8730),aa=c(81497),ab=c(55992);let ac=["en","ja"],ad={en:"English",ja:"日本語"};function ae(){return{currentLocale:(0,ab.Ym)(),switchLocale:a=>{if(ac.includes(a)){let b="https:"===window.location.protocol;document.cookie=`locale=${a};path=/;max-age=31536000;SameSite=Lax${b?";Secure":""}`,localStorage.setItem("locale",a),window.location.reload()}}}}function af(){let{currentLocale:a,switchLocale:b}=ae(),c=(0,l.c)("common");return(0,d.jsx)("select",{value:a,onChange:a=>b(a.target.value),"data-testid":"locale-switcher","aria-label":c("language"),className:" w-full px-3 py-2 rounded-md bg-sidebar text-sidebar-foreground border border-sidebar-border focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent text-sm ",children:ac.map(a=>(0,d.jsx)("option",{value:a,children:ad[a]},a))})}var ag=c(84342);function ah(){let a=(0,l.c)("auth"),b=(0,ag.H)(),[c,f]=(0,e.useState)(!1);if(!b)return null;async function g(){f(!0);try{await fetch("/api/auth/logout",{method:"POST"}),window.location.href="/login"}catch{window.location.href="/login"}}return(0,d.jsx)("button",{type:"button",onClick:g,disabled:c,"data-testid":"logout-button",className:" w-full px-3 py-2 text-sm text-left rounded-md text-muted-foreground hover:text-foreground hover:bg-muted focus:outline-none focus:ring-2 focus:ring-ring disabled:opacity-50 transition-colors ",children:c?"...":a("logout.button")})}var ai=c(63474),aj=c(77560),ak=c(19463);function al(){let a=(0,l.c)("common"),{count:b}=(0,ak.Lv)();return 0===b?null:(0,d.jsxs)(i(),{href:aj.ks,"data-testid":"attention-badge","aria-label":a("attention.badgeLabel",{count:b}),className:"mt-2 inline-flex w-full items-center justify-between gap-2 rounded-md border border-warning-border bg-warning-subtle px-2 py-1 text-xs font-medium text-warning-foreground transition-colors hover:brightness-105 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,d.jsx)("span",{className:"min-w-0 truncate",children:a("attention.label")}),(0,d.jsx)("span",{"data-testid":"attention-badge-count",className:"tabular-nums font-semibold",children:b})]})}function am({count:a}){let b=(0,l.c)("common");return 0===a?null:(0,d.jsx)("span",{"data-testid":"attention-badge-bubble",role:"status","aria-label":b("attention.badgeLabel",{count:a}),className:"absolute -top-1.5 -right-2.5 min-w-[1.05rem] rounded-full bg-warning-foreground px-1 text-[0.625rem] font-bold leading-[1.05rem] text-warning-subtle tabular-nums text-center",children:a>99?"99+":a})}var an=c(78352),ao=c(32482);let ap="w-4 h-4",aq=0,ar=null;function as(){return ar??[]}let at=(0,e.memo)(function(){let a=(0,j.Hq)(),{worktrees:b,repositories:c,selectedWorktreeId:f,selectWorktree:g,refreshWorktrees:h}=(0,J.$f)(),{closeMobileDrawer:k,sortKey:m,sortDirection:n,viewMode:o,setViewMode:p}=(0,A.VF)(),q=(0,l.c)("common"),[r,s]=(0,e.useState)(""),u=(0,e.useRef)(null),[v,w]=(0,e.useState)(()=>({})),[x,y]=(0,e.useState)(as),z=(0,e.useRef)(!1);(0,e.useEffect)(()=>{z.current||(z.current=!0,fetch("/api/sidebar/group-order").then(a=>a.json()).then(a=>{a.success&&Array.isArray(a.order)&&(y(a.order),ar=a.order)}).catch(()=>{}))},[]);let B=(0,e.useMemo)(()=>(0,ao.UZ)(c),[c]),C=(0,e.useMemo)(()=>(0,ao.s6)(b,B),[b,B]),D=(0,e.useMemo)(()=>C.map(M.XK),[C]),E=(0,e.useDeferredValue)(D),I=(0,e.useRef)(null),K=(0,e.useRef)(null);(0,e.useEffect)(()=>()=>{null!==K.current&&clearTimeout(K.current)},[]);let L=(0,e.useMemo)(()=>{let a=I.current;return!a||Date.now()>=a.expiresAt?E:a.items},[E]),N=(0,e.useRef)(L);(0,e.useLayoutEffect)(()=>{N.current=L});let O=(0,e.useCallback)(()=>{null!==K.current&&(clearTimeout(K.current),K.current=null);let a=I.current;if(a&&Date.now()<a.expiresAt){I.current={...a,expiresAt:1/0};return}I.current={items:N.current,expiresAt:1/0}},[]),P=(0,e.useCallback)(()=>{I.current&&(I.current={...I.current,expiresAt:Date.now()+1e3},null!==K.current&&clearTimeout(K.current),K.current=setTimeout(()=>{I.current=null},1e3))},[]),{sortedItems:Q,groupedItems:T}=function(a){let{items:b,sortKey:c,sortDirection:d,viewMode:f,filterText:g}=a,h=(0,e.useMemo)(()=>{if(!g)return b;let a=g.toLowerCase();return b.filter(b=>b.name.toLowerCase().includes(a)||b.repositoryName.toLowerCase().includes(a))},[b,g]);return{sortedItems:(0,e.useMemo)(()=>(0,ao.Xn)(h,c,d),[h,c,d]),groupedItems:(0,e.useMemo)(()=>"grouped"===f?(0,ao._s)(h,c,d):[],[h,c,d,f])}}({items:L,sortKey:m,sortDirection:n,viewMode:o,filterText:r}),U=(0,e.useMemo)(()=>{if("grouped"!==o||!T)return null;if(r.trim()||0===x.length)return T;let a=new Map(x.map((a,b)=>[a,b]));return[...T].sort((b,c)=>{let d=a.has(b.repositoryName)?a.get(b.repositoryName):1/0,e=a.has(c.repositoryName)?a.get(c.repositoryName):1/0;return d===e?b.repositoryName.localeCompare(c.repositoryName):d-e})},[o,T,x,r]),V="grouped"===o?U:null;(0,e.useEffect)(()=>{},[v]);let W=(0,e.useCallback)(a=>{w(b=>({...b,[a]:!b[a]}))},[]),X=(0,e.useCallback)(()=>{var a;aq=Number.isFinite(a=u.current?.scrollTop??0)&&a>0?a:0},[]),Y=Q.length>0||(V?.length??0)>0;(0,e.useEffect)(()=>{let a=u.current;if(!a)return;let b=window.requestAnimationFrame(()=>{a.scrollTop=aq});return()=>{window.cancelAnimationFrame(b)}},[Y,o]);let Z=(0,e.useCallback)(b=>{X(),g(b),a.push(`/worktrees/${b}`),k()},[X,g,a,k]),aa=(0,G.FR)((0,G.MS)(G.AN,{activationConstraint:{distance:8}})),ab=(0,e.useCallback)(a=>{let{active:b,over:c}=a;if(!c||b.id===c.id||!V)return;let d=V.map(a=>a.repositoryName),e=d.indexOf(String(b.id)),f=d.indexOf(String(c.id));if(-1===e||-1===f)return;let g=(0,H.be)(d,e,f);y(g),ar=g,fetch("/api/sidebar/group-order",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({order:g})}).catch(()=>{y(d),ar=d})},[V]),ac="flat"===o?0===Q.length:(V?.length??0)===0;return(0,d.jsxs)("nav",{"data-testid":"sidebar","aria-label":q("sidebar.branchNavigation"),className:"h-full flex flex-col bg-sidebar text-sidebar-foreground",role:"navigation",children:[(0,d.jsxs)("div",{"data-testid":"sidebar-header",className:"flex-shrink-0 px-4 py-4 border-b border-sidebar-border",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-y-2",children:[(0,d.jsx)("h2",{className:"min-w-0 truncate text-lg font-semibold text-sidebar-foreground",children:q("sidebar.branches")}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1",children:[(0,d.jsx)(aw,{viewMode:o,onToggle:p}),(0,d.jsx)($,{}),(0,d.jsx)(aC,{refreshWorktrees:h}),(0,d.jsx)(S.m_,{content:q("tooltips.repositories"),placement:"bottom",children:(0,d.jsx)(i(),{href:"/repositories","aria-label":q("nav.repositories"),className:"p-1 rounded-md text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors inline-flex items-center",children:(0,d.jsx)(F.A,{className:ap,"aria-hidden":"true"})})})]})]}),(0,d.jsx)(al,{})]}),(0,d.jsx)("div",{className:"flex-shrink-0 px-4 py-3 border-b border-sidebar-border",children:(0,d.jsx)(_.pd,{type:"text",placeholder:q("sidebar.searchBranches"),value:r,onChange:a=>s(a.target.value),className:"bg-background shadow-none"})}),(0,d.jsx)("div",{ref:u,"data-testid":"branch-list",onScroll:X,onMouseEnter:O,onMouseLeave:P,className:"flex-1 overflow-y-auto overflow-x-hidden",children:ac?(0,d.jsx)("div",{className:"px-4 py-8 text-center text-sidebar-muted",children:q(r?"sidebar.noBranchesFound":"sidebar.noBranchesAvailable")}):"grouped"===o&&V?(0,d.jsx)(G.Mp,{sensors:aa,collisionDetection:G.fp,onDragEnd:ab,children:(0,d.jsx)(H.gB,{items:V.map(a=>a.repositoryName),strategy:H._G,children:V.map(a=>{let b=!v[a.repositoryName]||!!r.trim();return(0,d.jsx)(au,{group:a,isExpanded:b,selectedWorktreeId:f,onToggle:()=>W(a.repositoryName),onBranchClick:Z,isDragDisabled:!!r.trim()},a.repositoryName)})})}):Q.map(a=>(0,d.jsx)(R,{branch:a,isSelected:a.id===f,onClick:()=>Z(a.id)},a.id))}),(0,d.jsxs)("div",{className:"flex-shrink-0 px-4 py-3 border-t border-sidebar-border space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(af,{})}),(0,d.jsx)(t,{})]}),(0,d.jsx)(ah,{})]})]})});function au({group:a,isExpanded:b,selectedWorktreeId:c,onToggle:e,onBranchClick:f,isDragDisabled:g}){let{attributes:h,listeners:i,setNodeRef:j,setActivatorNodeRef:k,transform:l,transition:m,isDragging:n}=(0,H.gl)({id:a.repositoryName,disabled:g}),o={transform:I.Ks.Transform.toString(l),transition:m,opacity:n?.5:1};return(0,d.jsxs)("div",{ref:j,style:o,className:"w-full min-w-0",children:[(0,d.jsx)(av,{repositoryName:a.repositoryName,branchCount:a.branches.length,isExpanded:b,onClick:e,dragHandleRef:k,dragHandleListeners:g?void 0:i,dragHandleAttributes:g?void 0:h}),b&&a.branches.map(a=>(0,d.jsx)(R,{branch:a,isSelected:a.id===c,onClick:()=>f(a.id),showRepositoryName:!1},a.id))]})}function av({repositoryName:a,branchCount:b,isExpanded:c,onClick:e,dragHandleRef:f,dragHandleListeners:g,dragHandleAttributes:h}){let i=(0,l.c)("common");return(0,d.jsxs)("div",{className:"flex items-center w-full",children:[g&&(0,d.jsx)("div",{ref:f,...g,...h,"aria-label":i("sidebar.dragToReorderGroup"),className:" flex-shrink-0 flex items-center justify-center w-6 h-full pl-2 cursor-grab active:cursor-grabbing text-sidebar-muted hover:text-sidebar-foreground transition-colors ",children:(0,d.jsx)(aA,{})}),(0,d.jsxs)("button",{"data-testid":"group-header",type:"button",onClick:e,"aria-expanded":c,className:" flex-1 min-w-0 flex items-center gap-2 px-2 py-2 text-xs font-semibold text-sidebar-muted uppercase tracking-wider focus:outline-none focus:ring-2 focus:ring-inset focus:ring-ring transition-colors ",children:[(0,d.jsx)(ax,{isExpanded:c}),(0,d.jsx)(ay,{color:(0,ao.LV)(a)}),(0,d.jsx)(aa.nR,{content:a,className:"flex-1 min-w-0 text-left truncate",children:a}),(0,d.jsx)("span",{className:"text-sidebar-muted font-normal tabular-nums pr-2",children:b})]})]})}function aw({viewMode:a,onToggle:b}){let c=(0,l.c)("common");return(0,d.jsx)(S.m_,{content:c("tooltips.viewMode"),placement:"bottom",children:(0,d.jsx)("button",{"data-testid":"view-mode-toggle",type:"button",onClick:()=>{b("grouped"===a?"flat":"grouped")},"aria-label":c("grouped"===a?"sidebar.switchToFlatView":"sidebar.switchToGroupedView"),className:" p-1 rounded-md text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors ",children:"grouped"===a?(0,d.jsx)(az,{className:ap}):(0,d.jsx)(ay,{className:ap})})})}function ax({isExpanded:a}){return(0,d.jsx)("svg",{className:`w-3 h-3 flex-shrink-0 transition-transform ${a?"rotate-90":""}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"})})}function ay({className:a="w-3.5 h-3.5",color:b}){return(0,d.jsx)("svg",{className:`${a} flex-shrink-0`,viewBox:"0 0 24 24",fill:b??"none",stroke:b?"none":"currentColor",strokeWidth:2*!b,"aria-hidden":"true",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"})})}function az({className:a="w-3 h-3"}){return(0,d.jsx)("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 6h16M4 12h16M4 18h16"})})}function aA(){return(0,d.jsxs)("svg",{className:"w-3 h-3",fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"9",cy:"5",r:"1.5"}),(0,d.jsx)("circle",{cx:"15",cy:"5",r:"1.5"}),(0,d.jsx)("circle",{cx:"9",cy:"12",r:"1.5"}),(0,d.jsx)("circle",{cx:"15",cy:"12",r:"1.5"}),(0,d.jsx)("circle",{cx:"9",cy:"19",r:"1.5"}),(0,d.jsx)("circle",{cx:"15",cy:"19",r:"1.5"})]})}function aB({className:a=""}){return(0,d.jsx)("svg",{className:`${ap} ${a}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 4v5h5M20 20v-5h-5M20.49 9A9 9 0 005.64 5.64L4 4m16 16l-1.64-1.64A9 9 0 014.51 15"})})}let aC=(0,e.memo)(function({refreshWorktrees:a}){let[b,c]=(0,e.useState)(!1),f=(0,e.useRef)(!1),{showToast:g}=(0,ai.dj)(),h=(0,l.c)("common"),i=(0,e.useCallback)(async()=>{if(!f.current){f.current=!0,c(!0);try{let b=await an.Rx.sync();await a(),g(h("syncSuccess",{count:b.worktreeCount}),"success",3e3)}catch(a){a instanceof an.hD&&401===a.status?g(h("syncAuthError"),"error",5e3):g(h("syncError"),"error",5e3)}finally{f.current=!1,c(!1)}}},[a,g,h]);return(0,d.jsx)(d.Fragment,{children:(0,d.jsx)(S.m_,{content:h("tooltips.sync"),placement:"bottom",children:(0,d.jsx)("button",{type:"button",onClick:i,disabled:b,"aria-label":h("syncButtonLabel"),className:"p-1 rounded-md text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:(0,d.jsx)(aB,{className:b?"animate-spin":""})})})})});var aD=c(78733),aE=c(44688),aF=c(75903),aG=c(59268),aH=c(38882);let aI=[{labelKey:"nav.home",href:"/",isActive:a=>"/"===a,icon:(0,d.jsx)(aD.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.chat",href:"/chat",isActive:a=>a.startsWith("/chat"),icon:(0,d.jsx)(aE.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.sessions",href:"/sessions",isActive:a=>a.startsWith("/sessions"),icon:(0,d.jsx)(aF.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.review",href:"/review",isActive:a=>a.startsWith("/review"),icon:(0,d.jsx)(aG.A,{size:20,"aria-hidden":"true"}),showsAttentionBadge:!0},{labelKey:"nav.more",href:"/more",isActive:a=>a.startsWith("/more"),icon:(0,d.jsx)(aH.A,{size:20,"aria-hidden":"true"})}];function aJ(){let a=(0,g.usePathname)(),{setOpen:b}=(0,x.C)(),c=(0,l.c)("commandPalette"),e=(0,l.c)("common"),{count:f}=(0,ak.Lv)();return(0,d.jsx)("nav",{"data-testid":"global-mobile-nav",className:"fixed bottom-0 left-0 right-0 z-50 border-t border-border bg-background supports-[backdrop-filter]:bg-background/80 backdrop-blur-md pb-safe",children:(0,d.jsxs)("div",{className:"flex items-center justify-around h-14",children:[aI.map(b=>{let c=b.isActive(a),g=!0===b.showsAttentionBadge&&f>0;return(0,d.jsxs)(k,{href:g?aj.ks:b.href,className:`flex flex-col items-center justify-center flex-1 h-full text-xs transition-colors ${c?"text-accent-600 dark:text-accent-400":"text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsxs)("span",{className:"relative inline-flex",children:[b.icon,!0===b.showsAttentionBadge&&(0,d.jsx)(am,{count:f})]}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:e(b.labelKey)})]},b.href)}),(0,d.jsxs)("button",{type:"button","data-testid":"mobile-command-palette-trigger",onClick:()=>b(!0),"aria-label":c("mobileTrigger"),className:"flex flex-col items-center justify-center flex-1 h-full text-xs text-muted-foreground hover:text-foreground transition-colors",children:[(0,d.jsx)(n.A,{size:20,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:c("mobileLabel")})]})]})})}var aK=c(67565),aL=c(50987),aM=c(75234),aN=c(34487),aO=c(25345),aP=c(96558),aQ=c(75692),aR=c(57898),aS=c(35595),aT=c(11010),aU=c(89184),aV=c(63157),aW=c(12480);let aX=[{key:"home",href:"/"},{key:"chat",href:"/chat"},{key:"sessions",href:"/sessions"},{key:"repositories",href:"/repositories"},{key:"review",href:"/review"},{key:"skills",href:"/skills"},{key:"more",href:"/more"}],aY={home:aD.A,chat:aE.A,sessions:aF.A,repositories:aL.A,review:aG.A,skills:aM.A,more:aH.A};function aZ(a){return a.isWaitingForResponse?"waiting":a.isProcessing?"running":a.isSessionRunning?"ready":"idle"}let a$=(0,aS.cn)("flex cursor-pointer items-center gap-2 rounded-md px-2 py-2 text-sm","text-foreground","data-[selected=true]:bg-accent-500/15 data-[selected=true]:text-accent-700","dark:data-[selected=true]:text-accent-300"),a_="shrink-0 text-muted-foreground";function a0(){let{open:a,setOpen:b}=(0,x.C)(),{setOpen:c}=(0,aU.K)(),f=(0,g.useRouter)(),h=(0,l.c)("commandPalette"),i=(0,l.c)("common"),{theme:j,setTheme:k}=(0,q.D)(),{setSize:m,isMobile:p}=(0,E.Ps)(),{currentLocale:t,switchLocale:u}=ae(),v=(0,aV.rC)(),{showToast:y}=(0,ai.dj)(),[z,A]=(0,e.useState)(!1),[B,C]=(0,e.useState)(""),[D,F]=(0,e.useState)([]),G=(0,e.useRef)(null);(0,e.useRef)(null),(0,e.useRef)(a);let H=(0,e.useCallback)((a,c)=>{c&&F(a=>(function(a,b){let c=a.filter(a=>a.kind!==b.kind||a.id!==b.id),d=[b,...c].slice(0,8);try{localStorage.setItem("cm.palette.recents",JSON.stringify(d))}catch{}return d})(a,c)),b(!1),a()},[b]),I=(0,e.useCallback)(async()=>{try{await an.Rx.sync(),await v?.refresh?.(),y(h("actions.syncSuccess"),"success")}catch{y(h("actions.syncError"),"error")}},[v,y,h]),J="dark"===j,L=""===B.trim(),M=v?.error??null,O=v?.isLoading??!1,P=M?[]:v?.worktrees??[],Q=P.length>0,R=!M&&O&&0===P.length,S=[...P].sort((a,b)=>{let c=+!!a.isSessionRunning,d=+!!b.isSessionRunning;if(c!==d)return d-c;let e=a.updatedAt?new Date(a.updatedAt).getTime():0;return(b.updatedAt?new Date(b.updatedAt).getTime():0)-e}),T=L?S.slice(0,8):S,U=[{id:"theme",label:J?h("actions.toLight"):h("actions.toDark"),icon:J?r.A:s.A,run:()=>k(J?"light":"dark")},...p?[]:aW.Uf.map(a=>({id:`displaysize:${a}`,label:`${h("actions.displaySizePrefix")}: ${i(`displaySize.${a}`)}`,icon:aN.A,run:()=>m(a)})),{id:"sync",label:h("actions.syncRepositories"),icon:aO.A,run:()=>{I()}},{id:"locale",label:h("actions.switchLanguage"),icon:aP.A,run:()=>u("ja"===t?"en":"ja")},{id:"github",label:h("actions.openGitHub"),icon:o.A,run:()=>window.open("https://github.com/kewton/MyCodeBranchDesk","_blank","noopener,noreferrer")},{id:"keyboardShortcuts",label:h("actions.keyboardShortcuts"),icon:aQ.A,run:()=>c(!0)}],V=L?D.map(a=>{if("nav"===a.kind){let b=aX.find(b=>b.key===a.id);if(!b)return null;let c=aY[b.key],e=i(`nav.${b.key}`);return{id:`nav-${b.key}`,value:`recent nav ${b.key}`,node:(0,d.jsxs)(d.Fragment,{children:[c&&(0,d.jsx)(c,{size:16,className:a_,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:e})]}),onSelect:()=>H(()=>f.push(b.href),{kind:"nav",id:b.key})}}if("worktree"===a.kind){let b=P.find(b=>b.id===a.id);if(!b)return null;let c=b.repositoryDisplayName||b.repositoryName||"",e=b.branch||b.name;return{id:`worktree-${b.id}`,value:`recent worktree ${b.id}`,node:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(aR.A,{size:16,className:a_,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:e}),c&&(0,d.jsx)("span",{className:"ml-auto truncate pl-2 text-xs text-muted-foreground",children:c}),(0,d.jsx)(N.m,{status:aZ(b),size:"sm",className:c?"ml-2":"ml-auto"})]}),onSelect:()=>H(()=>f.push(`/worktrees/${b.id}`),{kind:"worktree",id:b.id})}}let b=U.find(b=>b.id===a.id);if(!b)return null;let c=b.icon;return{id:`action-${b.id}`,value:`recent action ${b.id}`,node:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(c,{size:16,className:a_,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:b.label})]}),onSelect:()=>H(b.run,{kind:"action",id:b.id})}}).filter(a=>null!==a):[];return z?(0,K.createPortal)((0,d.jsx)(d.Fragment,{children:a&&(0,d.jsxs)("div",{className:"fixed inset-0 overflow-y-auto",style:{zIndex:aT.M.MODAL},"data-testid":"command-palette",children:[(0,d.jsx)("div",{"data-state":"open","aria-hidden":"true",className:"fixed inset-0 bg-black/40 backdrop-blur-sm transition-opacity data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-200",onClick:()=>b(!1)}),(0,d.jsx)("div",{className:"relative flex min-h-full items-start justify-center p-4 pt-[15vh]",children:(0,d.jsx)("div",{"data-state":"open","data-testid":"command-palette-panel",className:(0,aS.cn)("relative w-full max-w-lg overflow-hidden rounded-xl bg-surface/95 shadow-2xl ring-1 ring-border backdrop-blur-xl","data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-200"),children:(0,d.jsxs)(aK.uB,{label:h("title"),className:(0,aS.cn)("flex flex-col","[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:pb-1 [&_[cmdk-group-heading]]:pt-2","[&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground"),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 border-b border-border px-3",children:[(0,d.jsx)(n.A,{size:16,strokeWidth:2,"aria-hidden":"true",className:"shrink-0 text-muted-foreground"}),(0,d.jsx)(aK.uB.Input,{ref:G,value:B,onValueChange:C,placeholder:h("placeholder"),"data-testid":"command-palette-input",className:"flex-1 bg-transparent py-3 text-sm text-foreground outline-none placeholder:text-muted-foreground"})]}),(0,d.jsxs)(aK.uB.List,{className:"max-h-[min(60vh,360px)] overflow-y-auto p-2",children:[(0,d.jsx)(aK.uB.Empty,{"data-testid":"command-palette-empty",className:"py-6 text-center text-sm text-muted-foreground",children:h("empty")}),R&&(0,d.jsx)(aK.uB.Loading,{"data-testid":"command-palette-loading",className:"py-6 text-center text-sm text-muted-foreground",children:h("loading")}),V.length>0&&(0,d.jsx)(aK.uB.Group,{heading:h("groups.recent"),children:V.map(a=>(0,d.jsx)(aK.uB.Item,{value:a.value,onSelect:a.onSelect,className:a$,children:a.node},a.id))}),(0,d.jsx)(aK.uB.Group,{heading:h("groups.navigation"),children:aX.map(a=>{let b=i(`nav.${a.key}`),c=aY[a.key];return(0,d.jsxs)(aK.uB.Item,{value:`nav ${b} ${a.href}`,onSelect:()=>H(()=>f.push(a.href),{kind:"nav",id:a.key}),className:a$,children:[c&&(0,d.jsx)(c,{size:16,className:a_,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:b})]},a.key)})}),Q&&(0,d.jsx)(aK.uB.Group,{heading:h("groups.worktrees"),children:T.map(a=>{let b=a.repositoryDisplayName||a.repositoryName||"",c=a.branch||a.name;return(0,d.jsxs)(aK.uB.Item,{value:`worktree ${b} ${c} ${a.name} ${a.id}`,onSelect:()=>H(()=>f.push(`/worktrees/${a.id}`),{kind:"worktree",id:a.id}),className:a$,children:[(0,d.jsx)(aR.A,{size:16,className:a_,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:c}),b&&(0,d.jsx)("span",{className:"ml-auto truncate pl-2 text-xs text-muted-foreground",children:b}),(0,d.jsx)(N.m,{status:aZ(a),size:"sm",className:b?"ml-2":"ml-auto"})]},a.id)})}),(0,d.jsx)(aK.uB.Group,{heading:h("groups.actions"),children:U.map(a=>{let b=a.icon;return(0,d.jsxs)(aK.uB.Item,{value:`action ${a.id} ${a.label}`,onSelect:()=>H(a.run,{kind:"action",id:a.id}),className:a$,children:[(0,d.jsx)(b,{size:16,className:a_,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:a.label})]},a.id)})})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3 border-t border-border bg-surface-2 px-3 py-2 text-[11px] text-muted-foreground",children:[(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(w.u,{children:"↑"}),(0,d.jsx)(w.u,{children:"↓"}),h("footer.navigate")]}),(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(w.u,{children:"↵"}),h("footer.select")]}),(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(w.u,{children:"esc"}),h("footer.close")]})]})]})})})]})}),document.body):null}var a1=c(98033);let a2=["global","terminal","composer","editor"],a3=[{id:"commandPalette",keys:["MOD","K"],scope:"global"},{id:"keyboardHelp",keys:["?"],scope:"global"},{id:"closeOverlay",keys:["Esc"],scope:"global"},{id:"navigateList",keys:["↑","↓"],scope:"global"},{id:"terminalSearch",keys:["MOD","F"],scope:"terminal"},{id:"sendMessage",keys:["↵"],scope:"composer"},{id:"composerNewline",keys:["Shift","↵"],scope:"composer"},{id:"editorIndent",keys:["Tab"],scope:"editor"},{id:"editorOutdent",keys:["Shift","Tab"],scope:"editor"},{id:"editorTabFocus",keys:["Ctrl","M"],scope:"editor"},{id:"editorSave",keys:["MOD","S"],scope:"editor"},{id:"editorFullscreen",keys:["MOD","Shift","F"],scope:"editor"}];function a4(){let{open:a,setOpen:b}=(0,aU.K)(),{open:c}=(0,x.C)(),f=(0,l.c)("keyboardShortcuts"),[g,h]=(0,e.useState)(!1);(0,e.useRef)(a),(0,e.useRef)(c);let i=function(a=a3){return a2.map(b=>({scope:b,shortcuts:a.filter(a=>a.scope===b)})).filter(a=>a.shortcuts.length>0)}();return(0,d.jsx)(a1.a,{isOpen:a,onClose:()=>b(!1),title:f("title"),size:"md",children:(0,d.jsx)("div",{"data-testid":"keyboard-shortcuts-overlay",className:"space-y-6",children:i.map(({scope:a,shortcuts:b})=>(0,d.jsxs)("section",{"data-testid":`keyboard-shortcuts-scope-${a}`,children:[(0,d.jsx)("h4",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:f(`scopes.${a}`)}),(0,d.jsx)("ul",{className:"divide-y divide-border",children:b.map(a=>(0,d.jsxs)("li",{"data-testid":`keyboard-shortcut-${a.id}`,className:"flex items-center justify-between gap-4 py-2",children:[(0,d.jsx)("span",{className:"text-sm text-foreground",children:f(`shortcuts.${a.id}`)}),(0,d.jsx)("span",{className:"flex flex-shrink-0 items-center gap-1",children:a.keys.map((a,b)=>(0,d.jsx)(w.u,{children:"MOD"===a?g?"⌘":"Ctrl":a},b))})]},a.id))})]},a))})})}var a5=c(16945),a6=c(47089),a7=c(12055);function a8(){let a=(0,l.c)("common"),[b,c]=(0,e.useState)(null),[f,g]=(0,e.useState)(null),h=(0,e.useCallback)(a=>{if(a.type!==a7.Oo)return;let{serverVersion:b,clientVersion:d}=a;"string"==typeof b&&"string"==typeof d&&b&&d&&b!==f&&c({serverVersion:b,clientVersion:d})},[f]);(0,u.T3)(h);let i=(0,e.useCallback)(()=>{window.location.reload()},[]),j=(0,e.useCallback)(()=>{c(a=>(a&&g(a.serverVersion),null))},[]);return b?(0,d.jsxs)("div",{"data-testid":"version-mismatch-banner",role:"alert","aria-live":"assertive",className:"fixed top-3 left-1/2 -translate-x-1/2 flex items-start gap-3 max-w-[92vw] rounded-lg border border-warning-border bg-warning-subtle px-4 py-3 text-warning-foreground shadow-lg",style:{zIndex:aT.M.TOAST},children:[(0,d.jsx)(a5.A,{className:"h-5 w-5 shrink-0 mt-0.5","aria-hidden":"true"}),(0,d.jsxs)("div",{className:"flex flex-col gap-0.5 text-sm",children:[(0,d.jsx)("span",{className:"font-semibold",children:a("versionMismatch.title")}),(0,d.jsx)("span",{children:a("versionMismatch.description",{serverVersion:b.serverVersion,clientVersion:b.clientVersion})})]}),(0,d.jsxs)("button",{type:"button","data-testid":"version-mismatch-reload",onClick:i,className:"shrink-0 inline-flex items-center gap-1.5 rounded-md border border-warning-border px-3 py-1.5 text-sm font-medium hover:opacity-80 focus:outline-none focus:ring-2 focus:ring-offset-2",children:[(0,d.jsx)(aO.A,{className:"h-4 w-4","aria-hidden":"true"}),a("versionMismatch.reload")]}),(0,d.jsx)("button",{type:"button","data-testid":"version-mismatch-dismiss",onClick:j,"aria-label":a("versionMismatch.dismiss"),className:"shrink-0 hover:opacity-70 focus:outline-none focus:ring-2 focus:ring-offset-2",children:(0,d.jsx)(a6.A,{className:"h-4 w-4","aria-hidden":"true"})})]}):null}let a9="transform transition-transform duration-300 ease-out",ba=(0,e.memo)(function({children:a}){let{isOpen:b,isMobileDrawerOpen:c,closeMobileDrawer:f,width:h,setWidth:i}=(0,A.VF)(),j=(0,B.a)(),{showSidebar:k,showGlobalNav:l}=function(){var a=(0,g.usePathname)();for(let b of D)if(a.startsWith(b.prefix))return{...C,...b.config};return{...C}}(),{factor:m}=(0,E.Ps)(),n=Math.round(160*m),o=Math.round(480*m),p=Math.round(Math.min(o,Math.max(n,h*m))),q=(0,e.useRef)(null),r=(0,e.useRef)(null),s=(0,e.useCallback)(a=>{i(Math.round(a/m))},[i,m]);return j?(0,d.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex flex-col",children:[c&&(0,d.jsx)("div",{"data-testid":"drawer-overlay",className:"fixed inset-0 bg-black/50 z-40",onClick:f,"aria-hidden":"true"}),k&&(0,d.jsx)("aside",{"data-testid":"sidebar-container",className:`
12
+ fixed left-0 top-0 h-full w-72 z-50
13
+ ${a9}
14
+ ${c?"translate-x-0":"-translate-x-full"}
15
+ `,role:"complementary",children:(0,d.jsx)(at,{})}),(0,d.jsx)("main",{className:`flex-1 min-h-0 overflow-hidden ${l?"pb-14":""}`,role:"main","data-view-transition":"content",children:a}),l&&(0,d.jsx)(aJ,{}),(0,d.jsx)(a0,{}),(0,d.jsx)(a4,{}),(0,d.jsx)(a8,{})]}):(0,d.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex flex-col",children:[l&&(0,d.jsx)(z,{}),(0,d.jsxs)("div",{className:"flex flex-1 min-h-0",children:[k&&(0,d.jsxs)("aside",{ref:q,"data-testid":"sidebar-container",className:`
16
+ fixed left-0
17
+ ${l?"top-16 h-[calc(100vh-4rem)]":"top-0 h-full"}
18
+ border-r border-border
19
+ ${a9}
20
+ ${b?"translate-x-0":"-translate-x-full"}
21
+ `,style:{width:`${p}px`,zIndex:aT.M.SIDEBAR},role:"complementary","aria-hidden":!b,children:[(0,d.jsx)(at,{}),(0,d.jsx)(bb,{currentWidth:p,minWidth:n,maxWidth:o,sidebarRef:q,mainRef:r,onWidthChange:s})]}),(0,d.jsx)("main",{ref:r,className:"flex-1 min-w-0 h-full overflow-hidden transition-[padding] duration-300 ease-out",style:{paddingLeft:k&&b?`${p}px`:0},role:"main","data-view-transition":"content",children:a})]}),(0,d.jsx)(a0,{}),(0,d.jsx)(a4,{}),(0,d.jsx)(a8,{})]})});function bb({currentWidth:a,minWidth:b,maxWidth:c,sidebarRef:e,mainRef:f,onWidthChange:g}){return(0,d.jsx)("div",{"data-testid":"sidebar-resize-handle","aria-hidden":"true",onMouseDown:d=>{d.preventDefault();let h=d.clientX,i=a;f.current&&(f.current.style.transition="none");let j=d=>{i=Math.max(b,Math.min(c,a+(d.clientX-h))),e.current&&(e.current.style.width=`${i}px`),f.current&&(f.current.style.paddingLeft=`${i}px`)},k=()=>{document.body.style.cursor="",document.body.style.userSelect="",f.current&&(f.current.style.transition=""),document.removeEventListener("mousemove",j),document.removeEventListener("mouseup",k),g(i)};document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",j),document.addEventListener("mouseup",k)},className:"absolute top-0 right-0 w-1 h-full cursor-col-resize hover:bg-accent-500/40 transition-colors"})}},81497:(a,b,c)=>{c.d(b,{nR:()=>g});var d=c(21124),e=c(38301),f=c(23312);function g({content:a,delay:b=200,className:c,children:g,metadata:h}){let i=(0,e.useRef)(null),j=(0,e.useRef)(null),k=(0,e.useRef)(null),l=(0,e.useRef)(null),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)({top:-9999,left:-9999}),q=(0,e.useCallback)(()=>{null!==k.current&&(clearTimeout(k.current),k.current=null)},[]),r=(0,e.useCallback)(()=>{let a=i.current;a&&(a.scrollWidth>a.clientWidth||h)&&(q(),k.current=setTimeout(()=>{let b=a.getBoundingClientRect(),c=b.left;l.current={top:b.top,bottom:b.bottom},p({top:b.bottom+4,left:Math.min(b.left,c)}),n(!0),k.current=null},b))},[q,b,h]),s=(0,e.useCallback)(()=>{q(),n(!1)},[q]);return(0,d.jsxs)("span",{ref:i,className:c,onMouseEnter:r,onMouseLeave:s,children:[g??a,m&&"undefined"!=typeof document&&(0,f.createPortal)((0,d.jsxs)("span",{ref:j,role:"tooltip","aria-hidden":"true",className:"fixed z-[9999] max-w-md px-2 py-1 text-xs font-medium rounded bg-foreground text-background shadow-lg pointer-events-none",style:{top:o.top,left:o.left},children:[(0,d.jsx)("span",{className:"block break-all",children:a}),h&&(0,d.jsx)("span",{className:"mt-0.5 block whitespace-pre-line font-normal text-background/70",children:h})]}),document.body)]})}}};
@@ -1,108 +1,4 @@
1
- "use strict";exports.id=8807,exports.ids=[8807],exports.modules={23718:(a,b,c)=>{c.d(b,{a1:()=>j,ko:()=>i});var d=c(55511),e=c(33873),f=c.n(e);function g(a){return a.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}let h="worktree";function i(a,b=[]){let c=b instanceof Set?b:new Set(b),e=g(f().basename(a))||h;if(!c.has(e))return e;let j=(0,d.createHash)("sha256").update(a).digest("hex");for(let a=8;a<=j.length;a+=8){let b=`${e}-${j.slice(0,a)}`;if(!c.has(b))return b}for(let a=2;;a++){let b=`${e}-${j}-${a}`;if(!c.has(b))return b}}function j(a,b){if(!a)return!1;let c=g(f().basename(b))||h;if(a===c)return!0;if(!a.startsWith(`${c}-`))return!1;let e=a.slice(c.length+1),i=(0,d.createHash)("sha256").update(b).digest("hex");return!!(e.length>0&&e.length%8==0&&e.length<=i.length&&i.startsWith(e))||/^-[0-9]+$/.test(e.slice(i.length))&&e.startsWith(i)}},28274:(a,b,c)=>{c.d(b,{AC:()=>e,BN:()=>j,Cs:()=>m,NU:()=>o,Uq:()=>n,fs:()=>l,m0:()=>i,sB:()=>k,ug:()=>f});var d=c(15194);class e extends Error{constructor(a,b=d.Ab){super(`Worktree ${a} cannot have more than ${b} agent instances`),this.name="AgentInstanceLimitError"}}class f extends Error{constructor(a){super(a),this.name="InvalidAgentInstanceError"}}function g(a){let b=a.cli_tool_id,c=a.alias&&a.alias.length>0?a.alias:(0,d.hR)(a.cli_tool_id)?(0,d.oo)(b):a.cli_tool_id;return{id:a.instance_id,cliTool:b,alias:c,order:a.sort_order}}function h(a){if(!(0,d.n6)(a.id))throw new f(`Invalid instance id: ${String(a.id)}`);if(!(0,d.hR)(a.cliTool))throw new f(`Invalid CLI tool: ${String(a.cliTool)}`);if("string"==typeof a.alias&&a.alias.length>d.pQ)throw new f(`Alias exceeds ${d.pQ} characters`)}function i(a,b){return a.prepare(`
2
- SELECT worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at
3
- FROM agent_instances
4
- WHERE worktree_id = ?
5
- ORDER BY sort_order ASC, instance_id ASC
6
- `).all(b).map(g)}function j(a,b,c){let d=a.prepare(`
7
- SELECT worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at
8
- FROM agent_instances
9
- WHERE worktree_id = ? AND instance_id = ?
10
- `).get(b,c);return d?g(d):null}function k(a,b,c,e){if(!c)return{ok:!0,cliToolId:e??null};let f=j(a,b,c);return f&&(0,d.hR)(f.cliTool)?e&&e!==f.cliTool?{ok:!1,instanceId:c,rosterCliTool:f.cliTool,requestedCliTool:e}:{ok:!0,cliToolId:f.cliTool}:e?{ok:!0,cliToolId:e}:(0,d.hR)(c)?{ok:!0,cliToolId:c}:{ok:!0,cliToolId:null}}function l(a,b){return a.prepare(`
11
- SELECT COUNT(*) as count FROM agent_instances WHERE worktree_id = ?
12
- `).get(b).count}function m(a,b,c){if(c.length>d.Ab)throw new e(b);let g=new Set;for(let a of c){if(h(a),g.has(a.id))throw new f(`Duplicate instance id: ${a.id}`);g.add(a.id)}let i=Date.now();a.transaction(()=>{a.prepare("DELETE FROM agent_instances WHERE worktree_id = ?").run(b);let d=a.prepare(`
13
- INSERT INTO agent_instances
14
- (worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at)
15
- VALUES (?, ?, ?, ?, ?, ?)
16
- `);c.forEach((a,c)=>{let e=a.alias??"",f=Number.isInteger(a.order)?a.order:c;d.run(b,a.id,a.cliTool,e,f,i)})})()}function n(a,b,c){h(c),a.transaction(()=>{let g=l(a,b);if(g>=d.Ab)throw new e(b);if(j(a,b,c.id))throw new f(`Instance ${c.id} already exists for worktree ${b}`);let h=Number.isInteger(c.order)?c.order:g;a.prepare(`
17
- INSERT INTO agent_instances
18
- (worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at)
19
- VALUES (?, ?, ?, ?, ?, ?)
20
- `).run(b,c.id,c.cliTool,c.alias??"",h,Date.now())})()}function o(a,b,c){return a.prepare(`
21
- DELETE FROM agent_instances WHERE worktree_id = ? AND instance_id = ?
22
- `).run(b,c).changes>0}},34129:(a,b,c)=>{c.d(b,{$$:()=>n,CR:()=>h,DP:()=>i,GF:()=>o,Ud:()=>m,Xm:()=>r,_O:()=>k,j2:()=>l,jf:()=>q,kx:()=>j,ul:()=>p});var d=c(55511),e=c(87374);let f="id, worktree_id, cli_tool_id, instance_id, message, delay_ms, scheduled_send_time, status, created_at, sent_at, error";function g(a){return{id:a.id,worktreeId:a.worktree_id,cliToolId:a.cli_tool_id,instanceId:a.instance_id??a.cli_tool_id,message:a.message,delayMs:a.delay_ms,scheduledSendTime:a.scheduled_send_time,status:a.status,createdAt:a.created_at,sentAt:a.sent_at,error:a.error??null}}function h(a,b){let c=(0,d.randomUUID)(),e=Date.now(),f=e+b.delayMs,g=b.instanceId??b.cliToolId;return a.prepare(`
23
- INSERT INTO timer_messages (id, worktree_id, cli_tool_id, instance_id, message, delay_ms, scheduled_send_time, status, created_at, sent_at)
24
- VALUES (?, ?, ?, ?, ?, ?, ?, 'pending', ?, NULL)
25
- `).run(c,b.worktreeId,b.cliToolId,g,b.message,b.delayMs,f,e),{id:c,worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:g,message:b.message,delayMs:b.delayMs,scheduledSendTime:f,status:"pending",createdAt:e,sentAt:null,error:null}}function i(a,b,c){let{before:d,limit:h=e.XS}=c??{},i=`SELECT ${f} FROM timer_messages WHERE worktree_id = ?`,j=[b];return void 0!==d&&(i+=" AND created_at < ?",j.push(d)),i+=" ORDER BY created_at DESC LIMIT ?",j.push(h+1),a.prepare(i).all(...j).map(g)}function j(a,b){let c=a.prepare(`
26
- SELECT ${f}
27
- FROM timer_messages
28
- WHERE id = ?
29
- `).get(b);return c?g(c):void 0}function k(a){return a.prepare(`
30
- SELECT ${f}
31
- FROM timer_messages
32
- WHERE status = 'pending'
33
- ORDER BY scheduled_send_time ASC
34
- `).all().map(g)}function l(a,b,c,d,e){let f=["status = ?"],g=[c];void 0!==d&&(f.push("sent_at = ?"),g.push(d)),void 0!==e&&(f.push("error = ?"),g.push(e)),g.push(b),a.prepare(`UPDATE timer_messages SET ${f.join(", ")} WHERE id = ?`).run(...g)}function m(a,b){return a.prepare(`
35
- UPDATE timer_messages SET status = 'cancelled' WHERE id = ? AND status = 'pending'
36
- `).run(b).changes>0}function n(a,b){return a.prepare(`
37
- UPDATE timer_messages SET status = 'cancelled' WHERE worktree_id = ? AND status = 'pending'
38
- `).run(b).changes}function o(a,b){return a.prepare(`
39
- SELECT COUNT(*) as count FROM timer_messages WHERE worktree_id = ? AND status = 'pending'
40
- `).get(b).count}function p(a,b){let c=Date.now()-24*b*36e5;return a.prepare(`
41
- DELETE FROM timer_messages
42
- WHERE status NOT IN ('pending', 'sending')
43
- AND created_at < ?
44
- `).run(c).changes}function q(a,b){return a.prepare(`
45
- DELETE FROM timer_messages
46
- WHERE worktree_id = ?
47
- AND status NOT IN ('pending', 'sending')
48
- `).run(b).changes}function r(a){return a.prepare(`
49
- UPDATE timer_messages SET status = 'failed', error = ? WHERE status = 'sending'
50
- `).run("Recovered from a stuck 'sending' state after a server restart.").changes}},43167:(a,b,c)=>{c.d(b,{CF:()=>h,Se:()=>i,gn:()=>j,jA:()=>g,jJ:()=>k,th:()=>l});var d=c(55511);function e(a){return{id:a.id,endpoint:a.endpoint,keys:{p256dh:a.p256dh,auth:a.auth},deviceLabel:a.device_label,enabledPrompt:1===a.enabled_prompt,enabledCompletion:1===a.enabled_completion,locale:a.locale,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}let f=`
51
- id, endpoint, p256dh, auth, device_label,
52
- enabled_prompt, enabled_completion, locale, created_at, updated_at
53
- `;function g(a,b){let c=Date.now(),e=b.deviceLabel??null,f=b.locale??null;a.prepare(`
54
- INSERT INTO push_subscriptions (
55
- id, endpoint, p256dh, auth, device_label,
56
- enabled_prompt, enabled_completion, locale, created_at, updated_at
57
- )
58
- VALUES (?, ?, ?, ?, ?, 1, 1, ?, ?, ?)
59
- ON CONFLICT(endpoint) DO UPDATE SET
60
- p256dh = excluded.p256dh,
61
- auth = excluded.auth,
62
- device_label = excluded.device_label,
63
- locale = COALESCE(excluded.locale, push_subscriptions.locale),
64
- updated_at = excluded.updated_at
65
- `).run((0,d.randomUUID)(),b.endpoint,b.p256dh,b.auth,e,f,c,c);let g=h(a,b.endpoint);if(!g)throw Error("Failed to persist push subscription");return g}function h(a,b){let c=a.prepare(`SELECT ${f} FROM push_subscriptions WHERE endpoint = ?`).get(b);return c?e(c):null}function i(a){return a.prepare(`SELECT ${f} FROM push_subscriptions ORDER BY created_at ASC`).all().map(e)}function j(a,b){return a.prepare(`SELECT ${f} FROM push_subscriptions WHERE ${"prompt"===b?"enabled_prompt":"enabled_completion"} = 1 ORDER BY created_at ASC`).all().map(e)}function k(a,b,c){let d=["updated_at = ?"],e=[Date.now()];return void 0!==c.enabledPrompt&&(d.push("enabled_prompt = ?"),e.push(+!!c.enabledPrompt)),void 0!==c.enabledCompletion&&(d.push("enabled_completion = ?"),e.push(+!!c.enabledCompletion)),e.push(b),a.prepare(`UPDATE push_subscriptions SET ${d.join(", ")} WHERE endpoint = ?`).run(...e),h(a,b)}function l(a,b){return a.prepare("DELETE FROM push_subscriptions WHERE endpoint = ?").run(b).changes>0}},48524:(a,b,c)=>{c.d(b,{EL:()=>g,Hi:()=>e,MH:()=>r,UT:()=>l,Vk:()=>n,Zj:()=>q,__:()=>p,gg:()=>m,sA:()=>f,uB:()=>i,xZ:()=>o});var d=c(55511);let e=["pending","running","waiting_input","verifying","succeeded","failed","not_started","cancelled"],f=["succeeded","failed","not_started","cancelled"],g=["running","waiting_input","verifying"],h=[...g,"failed","not_started"];function i(a){return f.includes(a)}let j=`
66
- id, worktree_id, cli_tool_id, instance_id, title, goal, contract_path, contract_json,
67
- status, last_verification_run_id, created_at, updated_at, started_at, finished_at
68
- `;function k(a){return{id:a.id,worktreeId:a.worktree_id,cliToolId:a.cli_tool_id,instanceId:a.instance_id,title:a.title,goal:a.goal,contractPath:a.contract_path,contract:JSON.parse(a.contract_json),status:a.status,lastVerificationRunId:a.last_verification_run_id,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at),startedAt:null===a.started_at?null:new Date(a.started_at),finishedAt:null===a.finished_at?null:new Date(a.finished_at)}}function l(a,b){let c=Date.now(),e=(0,d.randomUUID)(),f=b.status??"pending";a.prepare(`
69
- INSERT INTO tasks (
70
- id, worktree_id, cli_tool_id, instance_id, title, goal, contract_path, contract_json,
71
- status, last_verification_run_id, created_at, updated_at, started_at, finished_at
72
- )
73
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, NULL, ?, ?, ?, NULL)
74
- `).run(e,b.worktreeId,b.cliToolId,b.instanceId??null,b.contract.title,b.contract.goal,b.contractPath??null,JSON.stringify(b.contract),f,c,c,"pending"===f?null:c);let g=m(a,e);if(!g)throw Error("Failed to persist task");return g}function m(a,b){let c=a.prepare(`SELECT ${j} FROM tasks WHERE id = ?`).get(b);return c?k(c):null}function n(a,b,c=20){return a.prepare(`
75
- SELECT ${j} FROM tasks
76
- WHERE worktree_id = ?
77
- ORDER BY created_at DESC, rowid DESC
78
- LIMIT ?
79
- `).all(b,c).map(k)}function o(a,b,c,d={}){let e=Date.now();if(0===a.prepare(`
80
- UPDATE tasks
81
- SET status = ?,
82
- updated_at = ?,
83
- started_at = CASE WHEN ? = 'pending' THEN started_at ELSE COALESCE(started_at, ?) END,
84
- finished_at = CASE WHEN ? = 1 THEN ? ELSE finished_at END,
85
- last_verification_run_id = COALESCE(?, last_verification_run_id)
86
- WHERE id = ?
87
- `).run(c,e,c,e,+!!i(c),e,d.lastVerificationRunId??null,b).changes)throw Error(`Task ${b} not found`);return m(a,b)}function p(a,b,c,d){let e=["worktree_id = ?"],f=[b];void 0!==c&&(e.push("cli_tool_id = ?"),f.push(c)),void 0!==d&&(e.push("instance_id = ?"),f.push(d));let h=g.map(()=>"?").join(", "),i=a.prepare(`
88
- SELECT ${j} FROM tasks
89
- WHERE ${e.join(" AND ")} AND status IN (${h})
90
- ORDER BY updated_at DESC, created_at DESC, rowid DESC
91
- LIMIT 1
92
- `).get(...f,...g);return i?k(i):null}function q(a,b){let c=h.map(()=>"?").join(", "),d=a.prepare(`
93
- SELECT ${j} FROM tasks
94
- WHERE worktree_id = ? AND status IN (${c})
95
- ORDER BY updated_at DESC, created_at DESC, rowid DESC
96
- LIMIT 1
97
- `).get(b,...h);return d?k(d):null}function r(a,b,c,d){let e=d===c,f=g.map(()=>"?").join(", "),h=a.prepare(`
98
- SELECT ${j} FROM tasks
99
- WHERE worktree_id = ?
100
- AND cli_tool_id = ?
101
- AND (instance_id = ? OR (instance_id IS NULL AND ?))
102
- AND status IN (${f})
103
- ORDER BY updated_at DESC, created_at DESC, rowid DESC
104
- LIMIT 1
105
- `).get(b,c,d,+!!e,...g);return h?k(h):null}},72456:(a,b,c)=>{c.d(b,{FT:()=>f,Mj:()=>g,PS:()=>h,Wy:()=>ab,vI:()=>aa,i6:()=>i});var d=c(33873),e=c.n(d);let f=55;function g(a){try{let b=a.prepare("SELECT MAX(version) as version FROM schema_version").get();return b?.version??0}catch{return 0}}function h(a){try{return a.prepare(`
1
+ "use strict";exports.id=8807,exports.ids=[8807],exports.modules={18698:(a,b,c)=>{c.d(b,{FT:()=>f,Mj:()=>g,PS:()=>h,Wy:()=>ab,vI:()=>aa,i6:()=>i});var d=c(33873),e=c.n(d);let f=56;function g(a){try{let b=a.prepare("SELECT MAX(version) as version FROM schema_version").get();return b?.version??0}catch{return 0}}function h(a){try{return a.prepare(`
106
2
  SELECT version, name, applied_at
107
3
  FROM schema_version
108
4
  ORDER BY version ASC
@@ -1147,7 +1043,10 @@
1147
1043
  `)},down:a=>{a.exec("DROP INDEX IF EXISTS idx_worktree_aliases_worktree_id;"),a.exec("DROP TABLE IF EXISTS worktree_aliases;")}}];var Y=c(23718),Z=c(27923);let $="cmate-mig54-",_=[...l,...m,...n,...o,...p,...q,...r,...s,...t,...u,...v,...w,...x,...y,...z,...A,...B,...C,...D,...E,...F,...G,...H,...I,...J,...K,...L,...P,...Q,...R,...S,...T,...U,...W,...X,{version:54,name:"renumber-worktree-ids-from-path",up:a=>{let b=a.prepare("SELECT id, path FROM worktrees ORDER BY id").all();if(0===b.length)return void console.log("No worktrees to renumber");let c=void 0!==a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get(),d=c?a.prepare("SELECT old_id FROM worktree_aliases").all().map(a=>a.old_id):[],f=function(a,b){let c=new Set([...new Set(a.map(a=>a.id)),...b]),d=new Set,f=[];for(let b of a){let a=new Set([...c,...d]);a.delete(b.id);let g=(0,Y.ko)(e().resolve(b.path),a);d.add(g),g!==b.id&&f.push({oldId:b.id,newId:g})}return f}(b,d);if(0===f.length)return void console.log(`Worktree IDs already path-derived (${b.length} row(s) checked)`);let g=new Set([...b.map(a=>a.id),...d,...f.map(a=>a.newId)]),h=f.map((a,b)=>{let c=`${$}${b}`;for(let a=1;g.has(c);a++)c=`${$}${b}-${a}`;return g.add(c),c}),i=Date.now();f.forEach((b,c)=>{(0,Z.D6)(a,b.oldId,h[c],i)}),f.forEach((b,c)=>{(0,Z.D6)(a,h[c],b.newId,i)});let j=c?a.prepare("DELETE FROM worktree_aliases WHERE old_id = ?"):null;if(j)for(let a of h)j.run(a);for(let a of f)console.log(`Renumbered worktree ${a.oldId} -> ${a.newId}`);console.log(`Renumbered ${f.length} of ${b.length} worktree(s) to path-derived IDs`)},down:a=>{if(void 0===a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get())return void console.log("No worktree_aliases table: nothing to roll back");let b=a.prepare(`SELECT a.old_id, a.worktree_id
1148
1044
  FROM worktree_aliases AS a
1149
1045
  JOIN worktrees AS w ON w.id = a.worktree_id
1150
- ORDER BY a.old_id`).all();if(0===b.length)return void console.log("No worktree aliases to roll back");let c=Date.now(),d=b.map((a,b)=>`${$}down-${b}`);b.forEach((b,e)=>{(0,Z.D6)(a,b.worktree_id,d[e],c)}),b.forEach((b,e)=>{(0,Z.D6)(a,d[e],b.old_id,c)});let e=a.prepare("DELETE FROM worktree_aliases WHERE old_id = ?");for(let a of d)e.run(a);for(let a of b)e.run(a.worktree_id);console.log(`Rolled back ${b.length} worktree ID renumbering(s)`)}},{version:55,name:"compact-churned-worktree-ids",up:a=>{let b=a.prepare("SELECT id, path FROM worktrees ORDER BY id").all();if(0===b.length)return void console.log("No worktrees to compact");let c=void 0!==a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get(),{renames:d,droppedAliasIds:f}=function(a,b){let c=new Map;for(let a of b){let b=c.get(a.worktreeId);b?b.push(a.oldId):c.set(a.worktreeId,[a.oldId])}let d=new Set([...a.map(a=>a.id),...b.map(a=>a.oldId)]),f=new Set,g=[],h=[];for(let b of a){let a=e().resolve(b.path),i=c.get(b.id)??[],j=new Set([...d,...f]);for(let a of(j.delete(b.id),i))j.delete(a);let k=(0,Y.ko)(a,j);if(k.length>=b.id.length){f.add(b.id);continue}for(let c of(f.add(k),g.push({oldId:b.id,newId:k}),i))c.length>k.length&&(0,Y.a1)(c,a)&&h.push(c)}return{renames:g,droppedAliasIds:h}}(b,c?a.prepare("SELECT old_id, worktree_id FROM worktree_aliases ORDER BY old_id").all().map(a=>({oldId:a.old_id,worktreeId:a.worktree_id})):[]);if(0===d.length)return void console.log(`No churned worktree IDs to compact (${b.length} row(s) checked)`);if(c&&f.length>0){let b=a.prepare("DELETE FROM worktree_aliases WHERE old_id = ?");for(let a of f)b.run(a)}let g=Date.now();for(let b of d)(0,Z.D6)(a,b.oldId,b.newId,g),console.log(`Compacted worktree ${b.oldId} -> ${b.newId}`);console.log(`Compacted ${d.length} of ${b.length} worktree ID(s); dropped ${f.length} intermediate alias(es)`)},down:a=>{if(void 0===a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get())return void console.log("No worktree_aliases table: nothing to roll back");let b=a.prepare("SELECT id, path FROM worktrees ORDER BY id").all(),c=a.prepare("DELETE FROM worktree_aliases WHERE old_id = ?"),d=Date.now(),f=0;for(let g of b){let b=e().resolve(g.path),h=a.prepare("SELECT old_id FROM worktree_aliases WHERE worktree_id = ?").all(g.id).map(a=>a.old_id).filter(a=>a.length>g.id.length&&(0,Y.a1)(a,b)).sort((a,b)=>b.length-a.length||a.localeCompare(b))[0];h&&(c.run(h),(0,Z.D6)(a,g.id,h,d),c.run(g.id),f++)}console.log(`Rolled back ${f} worktree ID compaction(s)`)}}];function aa(a){!function(a,b){a.exec(`
1046
+ ORDER BY a.old_id`).all();if(0===b.length)return void console.log("No worktree aliases to roll back");let c=Date.now(),d=b.map((a,b)=>`${$}down-${b}`);b.forEach((b,e)=>{(0,Z.D6)(a,b.worktree_id,d[e],c)}),b.forEach((b,e)=>{(0,Z.D6)(a,d[e],b.old_id,c)});let e=a.prepare("DELETE FROM worktree_aliases WHERE old_id = ?");for(let a of d)e.run(a);for(let a of b)e.run(a.worktree_id);console.log(`Rolled back ${b.length} worktree ID renumbering(s)`)}},{version:55,name:"compact-churned-worktree-ids",up:a=>{let b=a.prepare("SELECT id, path FROM worktrees ORDER BY id").all();if(0===b.length)return void console.log("No worktrees to compact");let c=void 0!==a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get(),{renames:d,droppedAliasIds:f}=function(a,b){let c=new Map;for(let a of b){let b=c.get(a.worktreeId);b?b.push(a.oldId):c.set(a.worktreeId,[a.oldId])}let d=new Set([...a.map(a=>a.id),...b.map(a=>a.oldId)]),f=new Set,g=[],h=[];for(let b of a){let a=e().resolve(b.path),i=c.get(b.id)??[],j=new Set([...d,...f]);for(let a of(j.delete(b.id),i))j.delete(a);let k=(0,Y.ko)(a,j);if(k.length>=b.id.length){f.add(b.id);continue}for(let c of(f.add(k),g.push({oldId:b.id,newId:k}),i))c.length>k.length&&(0,Y.a1)(c,a)&&h.push(c)}return{renames:g,droppedAliasIds:h}}(b,c?a.prepare("SELECT old_id, worktree_id FROM worktree_aliases ORDER BY old_id").all().map(a=>({oldId:a.old_id,worktreeId:a.worktree_id})):[]);if(0===d.length)return void console.log(`No churned worktree IDs to compact (${b.length} row(s) checked)`);if(c&&f.length>0){let b=a.prepare("DELETE FROM worktree_aliases WHERE old_id = ?");for(let a of f)b.run(a)}let g=Date.now();for(let b of d)(0,Z.D6)(a,b.oldId,b.newId,g),console.log(`Compacted worktree ${b.oldId} -> ${b.newId}`);console.log(`Compacted ${d.length} of ${b.length} worktree ID(s); dropped ${f.length} intermediate alias(es)`)},down:a=>{if(void 0===a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get())return void console.log("No worktree_aliases table: nothing to roll back");let b=a.prepare("SELECT id, path FROM worktrees ORDER BY id").all(),c=a.prepare("DELETE FROM worktree_aliases WHERE old_id = ?"),d=Date.now(),f=0;for(let g of b){let b=e().resolve(g.path),h=a.prepare("SELECT old_id FROM worktree_aliases WHERE worktree_id = ?").all(g.id).map(a=>a.old_id).filter(a=>a.length>g.id.length&&(0,Y.a1)(a,b)).sort((a,b)=>b.length-a.length||a.localeCompare(b))[0];h&&(c.run(h),(0,Z.D6)(a,g.id,h,d),c.run(g.id),f++)}console.log(`Rolled back ${f} worktree ID compaction(s)`)}},{version:56,name:"add-source-to-verification-gate-results",up:a=>{a.prepare("PRAGMA table_info(verification_gate_results)").all().some(a=>"source"===a.name)||a.exec(`
1047
+ ALTER TABLE verification_gate_results ADD COLUMN source TEXT
1048
+ CHECK (source IS NULL OR source IN ('builtin', 'verify.yaml', 'contract'));
1049
+ `)},down:()=>{}}];function aa(a){!function(a,b){a.exec(`
1151
1050
  CREATE TABLE IF NOT EXISTS schema_version (
1152
1051
  version INTEGER PRIMARY KEY,
1153
1052
  name TEXT NOT NULL,
@@ -1156,7 +1055,111 @@
1156
1055
  `);let c=g(a);if(console.log(`Current schema version: ${c}`),c>f)throw Error(`This database (schema v${c}) was created by a newer version of CommandMate (this build supports up to v${f}). Please update: commandmate update`);let d=b.filter(a=>a.version>c);if(0===d.length)return console.log("Schema is up to date");for(let b of(console.log(`Found ${d.length} pending migration(s)`),d)){console.log(`Applying migration ${b.version}: ${b.name}...`);try{a.transaction(()=>{b.up(a),a.prepare(`
1157
1056
  INSERT INTO schema_version (version, name, applied_at)
1158
1057
  VALUES (?, ?, ?)
1159
- `).run(b.version,b.name,Date.now())})(),console.log(`Migration ${b.version} applied successfully`)}catch(c){let a=c instanceof Error?c.message:String(c);throw console.error(`Migration ${b.version} failed:`,a),Error(`Migration ${b.version} (${b.name}) failed: ${a}`)}}console.log(`All migrations completed. Current version: ${g(a)}`)}(a,_)}function ab(a,b){!function(a,b,c){let d=g(a);if(c>=d)return console.log("No rollback needed");for(let e of(console.log(`Rolling back from version ${d} to ${c}...`),b.filter(a=>a.version>c&&a.version<=d).sort((a,b)=>b.version-a.version))){if(!e.down)throw Error(`Cannot rollback migration ${e.version} (${e.name}): no down() function defined`);console.log(`Rolling back migration ${e.version}: ${e.name}...`);try{a.transaction(()=>{e.down(a),a.prepare("DELETE FROM schema_version WHERE version = ?").run(e.version)})(),console.log(`Migration ${e.version} rolled back`)}catch(b){let a=b instanceof Error?b.message:String(b);throw console.error(`Rollback ${e.version} failed:`,a),Error(`Rollback of migration ${e.version} failed: ${a}`)}}console.log(`Rollback completed. Current version: ${g(a)}`)}(a,_,b)}},87009:(a,b,c)=>{function d(a){return{id:a.id,taskId:a.task_id,event:a.event,fromStatus:a.from_status,toStatus:a.to_status,payload:null===a.payload_json?null:JSON.parse(a.payload_json),createdAt:new Date(a.created_at)}}function e(a,b){let c=void 0===b.payload||0===Object.keys(b.payload).length?null:JSON.stringify(b.payload);return Number(a.prepare(`
1058
+ `).run(b.version,b.name,Date.now())})(),console.log(`Migration ${b.version} applied successfully`)}catch(c){let a=c instanceof Error?c.message:String(c);throw console.error(`Migration ${b.version} failed:`,a),Error(`Migration ${b.version} (${b.name}) failed: ${a}`)}}console.log(`All migrations completed. Current version: ${g(a)}`)}(a,_)}function ab(a,b){!function(a,b,c){let d=g(a);if(c>=d)return console.log("No rollback needed");for(let e of(console.log(`Rolling back from version ${d} to ${c}...`),b.filter(a=>a.version>c&&a.version<=d).sort((a,b)=>b.version-a.version))){if(!e.down)throw Error(`Cannot rollback migration ${e.version} (${e.name}): no down() function defined`);console.log(`Rolling back migration ${e.version}: ${e.name}...`);try{a.transaction(()=>{e.down(a),a.prepare("DELETE FROM schema_version WHERE version = ?").run(e.version)})(),console.log(`Migration ${e.version} rolled back`)}catch(b){let a=b instanceof Error?b.message:String(b);throw console.error(`Rollback ${e.version} failed:`,a),Error(`Rollback of migration ${e.version} failed: ${a}`)}}console.log(`Rollback completed. Current version: ${g(a)}`)}(a,_,b)}},23718:(a,b,c)=>{c.d(b,{a1:()=>j,ko:()=>i});var d=c(55511),e=c(33873),f=c.n(e);function g(a){return a.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}let h="worktree";function i(a,b=[]){let c=b instanceof Set?b:new Set(b),e=g(f().basename(a))||h;if(!c.has(e))return e;let j=(0,d.createHash)("sha256").update(a).digest("hex");for(let a=8;a<=j.length;a+=8){let b=`${e}-${j.slice(0,a)}`;if(!c.has(b))return b}for(let a=2;;a++){let b=`${e}-${j}-${a}`;if(!c.has(b))return b}}function j(a,b){if(!a)return!1;let c=g(f().basename(b))||h;if(a===c)return!0;if(!a.startsWith(`${c}-`))return!1;let e=a.slice(c.length+1),i=(0,d.createHash)("sha256").update(b).digest("hex");return!!(e.length>0&&e.length%8==0&&e.length<=i.length&&i.startsWith(e))||/^-[0-9]+$/.test(e.slice(i.length))&&e.startsWith(i)}},28274:(a,b,c)=>{c.d(b,{AC:()=>e,BN:()=>j,Cs:()=>m,NU:()=>o,Uq:()=>n,fs:()=>l,m0:()=>i,sB:()=>k,ug:()=>f});var d=c(15194);class e extends Error{constructor(a,b=d.Ab){super(`Worktree ${a} cannot have more than ${b} agent instances`),this.name="AgentInstanceLimitError"}}class f extends Error{constructor(a){super(a),this.name="InvalidAgentInstanceError"}}function g(a){let b=a.cli_tool_id,c=a.alias&&a.alias.length>0?a.alias:(0,d.hR)(a.cli_tool_id)?(0,d.oo)(b):a.cli_tool_id;return{id:a.instance_id,cliTool:b,alias:c,order:a.sort_order}}function h(a){if(!(0,d.n6)(a.id))throw new f(`Invalid instance id: ${String(a.id)}`);if(!(0,d.hR)(a.cliTool))throw new f(`Invalid CLI tool: ${String(a.cliTool)}`);if("string"==typeof a.alias&&a.alias.length>d.pQ)throw new f(`Alias exceeds ${d.pQ} characters`)}function i(a,b){return a.prepare(`
1059
+ SELECT worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at
1060
+ FROM agent_instances
1061
+ WHERE worktree_id = ?
1062
+ ORDER BY sort_order ASC, instance_id ASC
1063
+ `).all(b).map(g)}function j(a,b,c){let d=a.prepare(`
1064
+ SELECT worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at
1065
+ FROM agent_instances
1066
+ WHERE worktree_id = ? AND instance_id = ?
1067
+ `).get(b,c);return d?g(d):null}function k(a,b,c,e){if(!c)return{ok:!0,cliToolId:e??null};let f=j(a,b,c);return f&&(0,d.hR)(f.cliTool)?e&&e!==f.cliTool?{ok:!1,instanceId:c,rosterCliTool:f.cliTool,requestedCliTool:e}:{ok:!0,cliToolId:f.cliTool}:e?{ok:!0,cliToolId:e}:(0,d.hR)(c)?{ok:!0,cliToolId:c}:{ok:!0,cliToolId:null}}function l(a,b){return a.prepare(`
1068
+ SELECT COUNT(*) as count FROM agent_instances WHERE worktree_id = ?
1069
+ `).get(b).count}function m(a,b,c){if(c.length>d.Ab)throw new e(b);let g=new Set;for(let a of c){if(h(a),g.has(a.id))throw new f(`Duplicate instance id: ${a.id}`);g.add(a.id)}let i=Date.now();a.transaction(()=>{a.prepare("DELETE FROM agent_instances WHERE worktree_id = ?").run(b);let d=a.prepare(`
1070
+ INSERT INTO agent_instances
1071
+ (worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at)
1072
+ VALUES (?, ?, ?, ?, ?, ?)
1073
+ `);c.forEach((a,c)=>{let e=a.alias??"",f=Number.isInteger(a.order)?a.order:c;d.run(b,a.id,a.cliTool,e,f,i)})})()}function n(a,b,c){h(c),a.transaction(()=>{let g=l(a,b);if(g>=d.Ab)throw new e(b);if(j(a,b,c.id))throw new f(`Instance ${c.id} already exists for worktree ${b}`);let h=Number.isInteger(c.order)?c.order:g;a.prepare(`
1074
+ INSERT INTO agent_instances
1075
+ (worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at)
1076
+ VALUES (?, ?, ?, ?, ?, ?)
1077
+ `).run(b,c.id,c.cliTool,c.alias??"",h,Date.now())})()}function o(a,b,c){return a.prepare(`
1078
+ DELETE FROM agent_instances WHERE worktree_id = ? AND instance_id = ?
1079
+ `).run(b,c).changes>0}},34129:(a,b,c)=>{c.d(b,{$$:()=>n,CR:()=>h,DP:()=>i,GF:()=>o,Ud:()=>m,Xm:()=>r,_O:()=>k,j2:()=>l,jf:()=>q,kx:()=>j,ul:()=>p});var d=c(55511),e=c(87374);let f="id, worktree_id, cli_tool_id, instance_id, message, delay_ms, scheduled_send_time, status, created_at, sent_at, error";function g(a){return{id:a.id,worktreeId:a.worktree_id,cliToolId:a.cli_tool_id,instanceId:a.instance_id??a.cli_tool_id,message:a.message,delayMs:a.delay_ms,scheduledSendTime:a.scheduled_send_time,status:a.status,createdAt:a.created_at,sentAt:a.sent_at,error:a.error??null}}function h(a,b){let c=(0,d.randomUUID)(),e=Date.now(),f=e+b.delayMs,g=b.instanceId??b.cliToolId;return a.prepare(`
1080
+ INSERT INTO timer_messages (id, worktree_id, cli_tool_id, instance_id, message, delay_ms, scheduled_send_time, status, created_at, sent_at)
1081
+ VALUES (?, ?, ?, ?, ?, ?, ?, 'pending', ?, NULL)
1082
+ `).run(c,b.worktreeId,b.cliToolId,g,b.message,b.delayMs,f,e),{id:c,worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:g,message:b.message,delayMs:b.delayMs,scheduledSendTime:f,status:"pending",createdAt:e,sentAt:null,error:null}}function i(a,b,c){let{before:d,limit:h=e.XS}=c??{},i=`SELECT ${f} FROM timer_messages WHERE worktree_id = ?`,j=[b];return void 0!==d&&(i+=" AND created_at < ?",j.push(d)),i+=" ORDER BY created_at DESC LIMIT ?",j.push(h+1),a.prepare(i).all(...j).map(g)}function j(a,b){let c=a.prepare(`
1083
+ SELECT ${f}
1084
+ FROM timer_messages
1085
+ WHERE id = ?
1086
+ `).get(b);return c?g(c):void 0}function k(a){return a.prepare(`
1087
+ SELECT ${f}
1088
+ FROM timer_messages
1089
+ WHERE status = 'pending'
1090
+ ORDER BY scheduled_send_time ASC
1091
+ `).all().map(g)}function l(a,b,c,d,e){let f=["status = ?"],g=[c];void 0!==d&&(f.push("sent_at = ?"),g.push(d)),void 0!==e&&(f.push("error = ?"),g.push(e)),g.push(b),a.prepare(`UPDATE timer_messages SET ${f.join(", ")} WHERE id = ?`).run(...g)}function m(a,b){return a.prepare(`
1092
+ UPDATE timer_messages SET status = 'cancelled' WHERE id = ? AND status = 'pending'
1093
+ `).run(b).changes>0}function n(a,b){return a.prepare(`
1094
+ UPDATE timer_messages SET status = 'cancelled' WHERE worktree_id = ? AND status = 'pending'
1095
+ `).run(b).changes}function o(a,b){return a.prepare(`
1096
+ SELECT COUNT(*) as count FROM timer_messages WHERE worktree_id = ? AND status = 'pending'
1097
+ `).get(b).count}function p(a,b){let c=Date.now()-24*b*36e5;return a.prepare(`
1098
+ DELETE FROM timer_messages
1099
+ WHERE status NOT IN ('pending', 'sending')
1100
+ AND created_at < ?
1101
+ `).run(c).changes}function q(a,b){return a.prepare(`
1102
+ DELETE FROM timer_messages
1103
+ WHERE worktree_id = ?
1104
+ AND status NOT IN ('pending', 'sending')
1105
+ `).run(b).changes}function r(a){return a.prepare(`
1106
+ UPDATE timer_messages SET status = 'failed', error = ? WHERE status = 'sending'
1107
+ `).run("Recovered from a stuck 'sending' state after a server restart.").changes}},43167:(a,b,c)=>{c.d(b,{CF:()=>h,Se:()=>i,gn:()=>j,jA:()=>g,jJ:()=>k,th:()=>l});var d=c(55511);function e(a){return{id:a.id,endpoint:a.endpoint,keys:{p256dh:a.p256dh,auth:a.auth},deviceLabel:a.device_label,enabledPrompt:1===a.enabled_prompt,enabledCompletion:1===a.enabled_completion,locale:a.locale,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}let f=`
1108
+ id, endpoint, p256dh, auth, device_label,
1109
+ enabled_prompt, enabled_completion, locale, created_at, updated_at
1110
+ `;function g(a,b){let c=Date.now(),e=b.deviceLabel??null,f=b.locale??null;a.prepare(`
1111
+ INSERT INTO push_subscriptions (
1112
+ id, endpoint, p256dh, auth, device_label,
1113
+ enabled_prompt, enabled_completion, locale, created_at, updated_at
1114
+ )
1115
+ VALUES (?, ?, ?, ?, ?, 1, 1, ?, ?, ?)
1116
+ ON CONFLICT(endpoint) DO UPDATE SET
1117
+ p256dh = excluded.p256dh,
1118
+ auth = excluded.auth,
1119
+ device_label = excluded.device_label,
1120
+ locale = COALESCE(excluded.locale, push_subscriptions.locale),
1121
+ updated_at = excluded.updated_at
1122
+ `).run((0,d.randomUUID)(),b.endpoint,b.p256dh,b.auth,e,f,c,c);let g=h(a,b.endpoint);if(!g)throw Error("Failed to persist push subscription");return g}function h(a,b){let c=a.prepare(`SELECT ${f} FROM push_subscriptions WHERE endpoint = ?`).get(b);return c?e(c):null}function i(a){return a.prepare(`SELECT ${f} FROM push_subscriptions ORDER BY created_at ASC`).all().map(e)}function j(a,b){return a.prepare(`SELECT ${f} FROM push_subscriptions WHERE ${"prompt"===b?"enabled_prompt":"enabled_completion"} = 1 ORDER BY created_at ASC`).all().map(e)}function k(a,b,c){let d=["updated_at = ?"],e=[Date.now()];return void 0!==c.enabledPrompt&&(d.push("enabled_prompt = ?"),e.push(+!!c.enabledPrompt)),void 0!==c.enabledCompletion&&(d.push("enabled_completion = ?"),e.push(+!!c.enabledCompletion)),e.push(b),a.prepare(`UPDATE push_subscriptions SET ${d.join(", ")} WHERE endpoint = ?`).run(...e),h(a,b)}function l(a,b){return a.prepare("DELETE FROM push_subscriptions WHERE endpoint = ?").run(b).changes>0}},48524:(a,b,c)=>{c.d(b,{EL:()=>g,Hi:()=>e,MH:()=>r,UT:()=>l,Vk:()=>n,Zj:()=>q,__:()=>p,gg:()=>m,sA:()=>f,uB:()=>i,xZ:()=>o});var d=c(55511);let e=["pending","running","waiting_input","verifying","succeeded","failed","not_started","cancelled"],f=["succeeded","failed","not_started","cancelled"],g=["running","waiting_input","verifying"],h=[...g,"failed","not_started"];function i(a){return f.includes(a)}let j=`
1123
+ id, worktree_id, cli_tool_id, instance_id, title, goal, contract_path, contract_json,
1124
+ status, last_verification_run_id, created_at, updated_at, started_at, finished_at
1125
+ `;function k(a){return{id:a.id,worktreeId:a.worktree_id,cliToolId:a.cli_tool_id,instanceId:a.instance_id,title:a.title,goal:a.goal,contractPath:a.contract_path,contract:JSON.parse(a.contract_json),status:a.status,lastVerificationRunId:a.last_verification_run_id,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at),startedAt:null===a.started_at?null:new Date(a.started_at),finishedAt:null===a.finished_at?null:new Date(a.finished_at)}}function l(a,b){let c=Date.now(),e=(0,d.randomUUID)(),f=b.status??"pending";a.prepare(`
1126
+ INSERT INTO tasks (
1127
+ id, worktree_id, cli_tool_id, instance_id, title, goal, contract_path, contract_json,
1128
+ status, last_verification_run_id, created_at, updated_at, started_at, finished_at
1129
+ )
1130
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, NULL, ?, ?, ?, NULL)
1131
+ `).run(e,b.worktreeId,b.cliToolId,b.instanceId??null,b.contract.title,b.contract.goal,b.contractPath??null,JSON.stringify(b.contract),f,c,c,"pending"===f?null:c);let g=m(a,e);if(!g)throw Error("Failed to persist task");return g}function m(a,b){let c=a.prepare(`SELECT ${j} FROM tasks WHERE id = ?`).get(b);return c?k(c):null}function n(a,b,c=20){return a.prepare(`
1132
+ SELECT ${j} FROM tasks
1133
+ WHERE worktree_id = ?
1134
+ ORDER BY created_at DESC, rowid DESC
1135
+ LIMIT ?
1136
+ `).all(b,c).map(k)}function o(a,b,c,d={}){let e=Date.now();if(0===a.prepare(`
1137
+ UPDATE tasks
1138
+ SET status = ?,
1139
+ updated_at = ?,
1140
+ started_at = CASE WHEN ? = 'pending' THEN started_at ELSE COALESCE(started_at, ?) END,
1141
+ finished_at = CASE WHEN ? = 1 THEN ? ELSE finished_at END,
1142
+ last_verification_run_id = COALESCE(?, last_verification_run_id)
1143
+ WHERE id = ?
1144
+ `).run(c,e,c,e,+!!i(c),e,d.lastVerificationRunId??null,b).changes)throw Error(`Task ${b} not found`);return m(a,b)}function p(a,b,c,d){let e=["worktree_id = ?"],f=[b];void 0!==c&&(e.push("cli_tool_id = ?"),f.push(c)),void 0!==d&&(e.push("instance_id = ?"),f.push(d));let h=g.map(()=>"?").join(", "),i=a.prepare(`
1145
+ SELECT ${j} FROM tasks
1146
+ WHERE ${e.join(" AND ")} AND status IN (${h})
1147
+ ORDER BY updated_at DESC, created_at DESC, rowid DESC
1148
+ LIMIT 1
1149
+ `).get(...f,...g);return i?k(i):null}function q(a,b){let c=h.map(()=>"?").join(", "),d=a.prepare(`
1150
+ SELECT ${j} FROM tasks
1151
+ WHERE worktree_id = ? AND status IN (${c})
1152
+ ORDER BY updated_at DESC, created_at DESC, rowid DESC
1153
+ LIMIT 1
1154
+ `).get(b,...h);return d?k(d):null}function r(a,b,c,d){let e=d===c,f=g.map(()=>"?").join(", "),h=a.prepare(`
1155
+ SELECT ${j} FROM tasks
1156
+ WHERE worktree_id = ?
1157
+ AND cli_tool_id = ?
1158
+ AND (instance_id = ? OR (instance_id IS NULL AND ?))
1159
+ AND status IN (${f})
1160
+ ORDER BY updated_at DESC, created_at DESC, rowid DESC
1161
+ LIMIT 1
1162
+ `).get(b,c,d,+!!e,...g);return h?k(h):null}},87009:(a,b,c)=>{function d(a){return{id:a.id,taskId:a.task_id,event:a.event,fromStatus:a.from_status,toStatus:a.to_status,payload:null===a.payload_json?null:JSON.parse(a.payload_json),createdAt:new Date(a.created_at)}}function e(a,b){let c=void 0===b.payload||0===Object.keys(b.payload).length?null:JSON.stringify(b.payload);return Number(a.prepare(`
1160
1163
  INSERT INTO task_events (task_id, event, from_status, to_status, payload_json, created_at)
1161
1164
  VALUES (?, ?, ?, ?, ?, ?)
1162
1165
  `).run(b.taskId,b.event,b.fromStatus,b.toStatus,c,b.createdAt).lastInsertRowid)}function f(a,b,c=200){return a.prepare(`
@@ -1165,7 +1168,7 @@
1165
1168
  WHERE task_id = ?
1166
1169
  ORDER BY created_at ASC, id ASC
1167
1170
  LIMIT ?
1168
- `).all(b,c).map(d)}c.d(b,{H:()=>f,P:()=>e})},87374:(a,b,c)=>{c.d(b,{Dr:()=>i,HR:()=>h,Ky:()=>f,XS:()=>e,ms:()=>g,u8:()=>d}),Array.from({length:Math.floor(104)+1},(a,b)=>3e5+3e5*b);let d=5,e=50,f=100,g=1e4,h={PENDING:"pending",SENDING:"sending",SENT:"sent",FAILED:"failed",CANCELLED:"cancelled",NO_SESSION:"no_session"};function i(a){return"number"==typeof a&&a>=3e5&&a<=315e5&&a%3e5==0}},88807:(a,b,c)=>{c.r(b),c.d(b,{closeDbInstance:()=>p,getDbInstance:()=>o});var d=c(33873),e=c.n(d),f=c(72456),g=c(79646),h=c(87550),i=c.n(h);let j=!1;function k(a){return a instanceof Error&&"ERR_DLOPEN_FAILED"===a.code&&a.message.includes("NODE_MODULE_VERSION")}function l(a,b){let c=["better-sqlite3 could not be loaded: it was built for a different Node.js version.","This usually happens after switching Node.js versions (nvm, fnm, Homebrew, ...).","",`Automatic recovery failed: ${a}`,"","How to fix it manually:"];return b?c.push(" The install directory is not writable by the current user, so the addon"," cannot be rebuilt in place. Do not re-run this with sudo — root-owned"," files there will break future installs and updates.",""," Either switch back to the Node.js version CommandMate was installed with:",` node -v (currently ${process.version}, NODE_MODULE_VERSION ${process.versions.modules})`,""," Or reinstall CommandMate under a Node.js version manager, which keeps"," global packages in a user-owned directory:"," nvm use <version> && npm install -g commandmate"):c.push(` 1. cd ${process.cwd()}`," 2. npm rebuild better-sqlite3"," 3. Start CommandMate again",""," If that fails, reinstalling picks up the current Node.js version:"," npm install -g commandmate"),c.join("\n")}var m=c(87447);let n=null;function o(){if(!n){let a=(0,m._$)().CM_DB_PATH,b=c(29021),d=e().dirname(a);b.existsSync(d)||b.mkdirSync(d,{recursive:!0,mode:448});let h=function(a){try{return new(i())(a)}catch(c){if(!k(c))throw c;if(j)throw Error(l("a rebuild was already attempted in this process.",!1));j=!0,console.error("[commandmate] better-sqlite3 was built for a different Node.js version.\n[commandmate] Rebuilding it automatically — this can take a few minutes...");let b=function(){let a=(0,g.spawnSync)("npm",["rebuild","better-sqlite3"],{cwd:process.cwd(),encoding:"utf-8",timeout:3e5,env:{...process.env,PATH:`${e().dirname(process.execPath)}${e().delimiter}${process.env.PATH??""}`}}),b=`${a.stdout??""}${a.stderr??""}`;return a.error||0!==a.status?{success:!1,permissionDenied:/EACCES|permission denied/i.test(b),output:b}:{success:!0,permissionDenied:!1,output:b}}();if(!b.success)throw Error(l("npm rebuild better-sqlite3 failed.",b.permissionDenied));console.error("[commandmate] Rebuild succeeded. Continuing startup.");try{return new(i())(a)}catch(a){if(k(a))throw Error(l("the addon still reports a version mismatch after rebuilding.",!1));throw a}}}(a);h.pragma("foreign_keys = ON"),h.pragma("journal_mode = WAL"),h.pragma("busy_timeout = 5000");try{(0,f.vI)(h)}catch(a){throw h.close(),a}n=h}return n}function p(){n&&(n.close(),n=null)}},90444:(a,b,c)=>{function d(a){a.exec(`
1171
+ `).all(b,c).map(d)}c.d(b,{H:()=>f,P:()=>e})},87374:(a,b,c)=>{c.d(b,{Dr:()=>i,HR:()=>h,Ky:()=>f,XS:()=>e,ms:()=>g,u8:()=>d}),Array.from({length:Math.floor(104)+1},(a,b)=>3e5+3e5*b);let d=5,e=50,f=100,g=1e4,h={PENDING:"pending",SENDING:"sending",SENT:"sent",FAILED:"failed",CANCELLED:"cancelled",NO_SESSION:"no_session"};function i(a){return"number"==typeof a&&a>=3e5&&a<=315e5&&a%3e5==0}},88807:(a,b,c)=>{c.r(b),c.d(b,{closeDbInstance:()=>p,getDbInstance:()=>o});var d=c(33873),e=c.n(d),f=c(18698),g=c(79646),h=c(87550),i=c.n(h);let j=!1;function k(a){return a instanceof Error&&"ERR_DLOPEN_FAILED"===a.code&&a.message.includes("NODE_MODULE_VERSION")}function l(a,b){let c=["better-sqlite3 could not be loaded: it was built for a different Node.js version.","This usually happens after switching Node.js versions (nvm, fnm, Homebrew, ...).","",`Automatic recovery failed: ${a}`,"","How to fix it manually:"];return b?c.push(" The install directory is not writable by the current user, so the addon"," cannot be rebuilt in place. Do not re-run this with sudo — root-owned"," files there will break future installs and updates.",""," Either switch back to the Node.js version CommandMate was installed with:",` node -v (currently ${process.version}, NODE_MODULE_VERSION ${process.versions.modules})`,""," Or reinstall CommandMate under a Node.js version manager, which keeps"," global packages in a user-owned directory:"," nvm use <version> && npm install -g commandmate"):c.push(` 1. cd ${process.cwd()}`," 2. npm rebuild better-sqlite3"," 3. Start CommandMate again",""," If that fails, reinstalling picks up the current Node.js version:"," npm install -g commandmate"),c.join("\n")}var m=c(87447);let n=null;function o(){if(!n){let a=(0,m._$)().CM_DB_PATH,b=c(29021),d=e().dirname(a);b.existsSync(d)||b.mkdirSync(d,{recursive:!0,mode:448});let h=function(a){try{return new(i())(a)}catch(c){if(!k(c))throw c;if(j)throw Error(l("a rebuild was already attempted in this process.",!1));j=!0,console.error("[commandmate] better-sqlite3 was built for a different Node.js version.\n[commandmate] Rebuilding it automatically — this can take a few minutes...");let b=function(){let a=(0,g.spawnSync)("npm",["rebuild","better-sqlite3"],{cwd:process.cwd(),encoding:"utf-8",timeout:3e5,env:{...process.env,PATH:`${e().dirname(process.execPath)}${e().delimiter}${process.env.PATH??""}`}}),b=`${a.stdout??""}${a.stderr??""}`;return a.error||0!==a.status?{success:!1,permissionDenied:/EACCES|permission denied/i.test(b),output:b}:{success:!0,permissionDenied:!1,output:b}}();if(!b.success)throw Error(l("npm rebuild better-sqlite3 failed.",b.permissionDenied));console.error("[commandmate] Rebuild succeeded. Continuing startup.");try{return new(i())(a)}catch(a){if(k(a))throw Error(l("the addon still reports a version mismatch after rebuilding.",!1));throw a}}}(a);h.pragma("foreign_keys = ON"),h.pragma("journal_mode = WAL"),h.pragma("busy_timeout = 5000");try{(0,f.vI)(h)}catch(a){throw h.close(),a}n=h}return n}function p(){n&&(n.close(),n=null)}},90444:(a,b,c)=>{function d(a){a.exec(`
1169
1172
  CREATE TABLE IF NOT EXISTS worktrees (
1170
1173
  id TEXT PRIMARY KEY,
1171
1174
  name TEXT NOT NULL,
@@ -1217,7 +1220,7 @@
1217
1220
  PRIMARY KEY (worktree_id, cli_tool_id),
1218
1221
  FOREIGN KEY (worktree_id) REFERENCES worktrees(id) ON DELETE CASCADE
1219
1222
  );
1220
- `)}c.d(b,{ks:()=>g.ks,EL:()=>aE.EL,AC:()=>m.AC,Tu:()=>az,ug:()=>m.ug,eP:()=>aB,mg:()=>aA,lm:()=>o,Hi:()=>aE.Hi,sA:()=>aE.sA,af:()=>am,KG:()=>E,Uq:()=>m.Uq,cD:()=>_,Jj:()=>aa,Ud:()=>N.Ud,$$:()=>N.$$,ul:()=>N.ul,YX:()=>k,cf:()=>g.cf,jf:()=>N.jf,fs:()=>m.fs,G4:()=>W,hL:()=>ac,qp:()=>Y,hl:()=>at,To:()=>s,oH:()=>g.oH,UT:()=>aE.UT,CR:()=>N.CR,py:()=>B,rY:()=>ar,yy:()=>J,pE:()=>g.pE,z2:()=>ak,cP:()=>u,DF:()=>g.DF,lA:()=>g.lA,Qp:()=>g.Qp,th:()=>al.th,oZ:()=>e.oZ,ZP:()=>l,Ys:()=>D,vg:()=>L,Rm:()=>e.Rm,C8:()=>au,u$:()=>as,__:()=>aE.__,MH:()=>aE.MH,BN:()=>m.BN,m0:()=>m.m0,r3:()=>f.r3,Se:()=>al.Se,Tk:()=>z,fX:()=>f.fX,nO:()=>e.nO,Sj:()=>e.Sj,iT:()=>U,gp:()=>V,$r:()=>ae,yE:()=>ab,BE:()=>$,qK:()=>ai,ap:()=>O.ap,p4:()=>e.p4,nP:()=>g.nP,sy:()=>g.sy,r8:()=>g.r8,of:()=>af,DN:()=>r,pZ:()=>q,kA:()=>g.kA,VL:()=>g.VL,lr:()=>g.lr,GF:()=>N.GF,_O:()=>N._O,CF:()=>al.CF,gn:()=>al.gn,NV:()=>e.NV,ce:()=>ag,WZ:()=>aw,y1:()=>h,gg:()=>aE.gg,kx:()=>N.kx,DP:()=>N.DP,Nr:()=>A,ob:()=>y,fr:()=>H,J6:()=>av,Q2:()=>f.Q2,Ui:()=>e.Ui,P9:()=>e.P9,eN:()=>I,vi:()=>e.vi,uJ:()=>e.uJ,s4:()=>d,uB:()=>aE.uB,yT:()=>F,b2:()=>ah,Fi:()=>ax,HB:()=>aF.H,Vk:()=>aE.Vk,Mt:()=>ay,UE:()=>aD,PL:()=>g.PL,_h:()=>e._h,jp:()=>g.jp,pG:()=>g.pG,xJ:()=>f.xJ,Xm:()=>N.Xm,NU:()=>m.NU,nQ:()=>v,yb:()=>M,l0:()=>f.l0,tt:()=>O.tt,GA:()=>e.GA,Cs:()=>m.Cs,OF:()=>j,xR:()=>X,az:()=>ad,nZ:()=>Z,PP:()=>aj,Dx:()=>e.Dx,IF:()=>O.IF,O:()=>e.O,EU:()=>g.EU,HZ:()=>e.HZ,UY:()=>t,e8:()=>g.e8,cw:()=>g.cw,jJ:()=>al.jJ,DC:()=>e.DC,gb:()=>i,yB:()=>e.yB,j2:()=>N.j2,uy:()=>C,s:()=>e.s,iu:()=>e.iu,hq:()=>e.hq,z1:()=>e.z1,bl:()=>K,jA:()=>al.jA,ZL:()=>e.ZL});var e=c(73753),f=c(95506),g=c(52660);function h(a,b,c="claude"){let d=a.prepare(`
1223
+ `)}c.d(b,{ks:()=>g.ks,EL:()=>aF.EL,AC:()=>m.AC,Tu:()=>aA,ug:()=>m.ug,eP:()=>aC,mg:()=>aB,lm:()=>o,Hi:()=>aF.Hi,sA:()=>aF.sA,Dx:()=>an,af:()=>am,KG:()=>E,Uq:()=>m.Uq,cD:()=>_,Jj:()=>aa,Ud:()=>N.Ud,$$:()=>N.$$,ul:()=>N.ul,YX:()=>k,cf:()=>g.cf,jf:()=>N.jf,fs:()=>m.fs,G4:()=>W,hL:()=>ac,qp:()=>Y,hl:()=>au,To:()=>s,oH:()=>g.oH,UT:()=>aF.UT,CR:()=>N.CR,py:()=>B,rY:()=>as,yy:()=>J,pE:()=>g.pE,z2:()=>ak,cP:()=>u,DF:()=>g.DF,lA:()=>g.lA,Qp:()=>g.Qp,th:()=>al.th,oZ:()=>e.oZ,ZP:()=>l,Ys:()=>D,vg:()=>L,Rm:()=>e.Rm,C8:()=>av,u$:()=>at,__:()=>aF.__,MH:()=>aF.MH,BN:()=>m.BN,m0:()=>m.m0,r3:()=>f.r3,Se:()=>al.Se,Tk:()=>z,fX:()=>f.fX,nO:()=>e.nO,Sj:()=>e.Sj,iT:()=>U,gp:()=>V,$r:()=>ae,yE:()=>ab,BE:()=>$,qK:()=>ai,ap:()=>O.ap,p4:()=>e.p4,nP:()=>g.nP,sy:()=>g.sy,r8:()=>g.r8,of:()=>af,DN:()=>r,pZ:()=>q,kA:()=>g.kA,VL:()=>g.VL,lr:()=>g.lr,GF:()=>N.GF,_O:()=>N._O,CF:()=>al.CF,gn:()=>al.gn,NV:()=>e.NV,ce:()=>ag,WZ:()=>ax,y1:()=>h,gg:()=>aF.gg,kx:()=>N.kx,DP:()=>N.DP,Nr:()=>A,ob:()=>y,fr:()=>H,J6:()=>aw,Q2:()=>f.Q2,Ui:()=>e.Ui,P9:()=>e.P9,eN:()=>I,vi:()=>e.vi,uJ:()=>e.uJ,s4:()=>d,uB:()=>aF.uB,yT:()=>F,b2:()=>ah,Fi:()=>ay,HB:()=>aG.H,Vk:()=>aF.Vk,Mt:()=>az,UE:()=>aE,PL:()=>g.PL,_h:()=>e._h,jp:()=>g.jp,pG:()=>g.pG,xJ:()=>f.xJ,Xm:()=>N.Xm,NU:()=>m.NU,nQ:()=>v,yb:()=>M,l0:()=>f.l0,tt:()=>O.tt,GA:()=>e.GA,Cs:()=>m.Cs,OF:()=>j,xR:()=>X,az:()=>ad,nZ:()=>Z,PP:()=>aj,WU:()=>e.Dx,IF:()=>O.IF,O:()=>e.O,EU:()=>g.EU,HZ:()=>e.HZ,UY:()=>t,e8:()=>g.e8,cw:()=>g.cw,jJ:()=>al.jJ,DC:()=>e.DC,gb:()=>i,yB:()=>e.yB,j2:()=>N.j2,uy:()=>C,s:()=>e.s,iu:()=>e.iu,hq:()=>e.hq,z1:()=>e.z1,bl:()=>K,jA:()=>al.jA,ZL:()=>e.ZL});var e=c(73753),f=c(95506),g=c(52660);function h(a,b,c="claude"){let d=a.prepare(`
1221
1224
  SELECT worktree_id, cli_tool_id, instance_id, last_captured_line, in_progress_message_id
1222
1225
  FROM session_states
1223
1226
  WHERE worktree_id = ? AND instance_id = ?
@@ -1435,55 +1438,57 @@
1435
1438
  `).run(b,c,d??null)}function ak(a,b){a.prepare(`
1436
1439
  DELETE FROM assistant_session_states
1437
1440
  WHERE conversation_id = ?
1438
- `).run(b)}var al=c(43167);let am=["manual","wait","api","task"],an=`
1441
+ `).run(b)}var al=c(43167);let am=["manual","wait","api","task"],an=["builtin","verify.yaml","contract"],ao=`
1439
1442
  id, worktree_id, instance_id, task_id, trigger, status, base_ref, started_at, finished_at
1440
- `,ao=`
1441
- id, run_id, gate_id, command, status, exit_code, duration_ms, log_tail, started_at, finished_at
1442
- `;function ap(a){return{id:a.id,worktreeId:a.worktree_id,instanceId:a.instance_id,taskId:a.task_id,trigger:a.trigger,status:a.status,baseRef:a.base_ref,startedAt:new Date(a.started_at),finishedAt:null===a.finished_at?null:new Date(a.finished_at)}}function aq(a){return{id:a.id,runId:a.run_id,gateId:a.gate_id,command:a.command,status:a.status,exitCode:a.exit_code,durationMs:a.duration_ms,logTail:a.log_tail,startedAt:new Date(a.started_at),finishedAt:null===a.finished_at?null:new Date(a.finished_at),timingsMeasured:null!==a.finished_at&&null!==a.duration_ms&&a.finished_at-a.started_at===a.duration_ms}}function ar(a,b){let c=Date.now(),d=a.prepare(`
1443
+ `,ap=`
1444
+ id, run_id, gate_id, command, status, exit_code, duration_ms, log_tail, started_at, finished_at,
1445
+ source
1446
+ `;function aq(a){return{id:a.id,worktreeId:a.worktree_id,instanceId:a.instance_id,taskId:a.task_id,trigger:a.trigger,status:a.status,baseRef:a.base_ref,startedAt:new Date(a.started_at),finishedAt:null===a.finished_at?null:new Date(a.finished_at)}}function ar(a){return{id:a.id,runId:a.run_id,gateId:a.gate_id,command:a.command,status:a.status,exitCode:a.exit_code,durationMs:a.duration_ms,logTail:a.log_tail,startedAt:new Date(a.started_at),finishedAt:null===a.finished_at?null:new Date(a.finished_at),source:a.source??null,timingsMeasured:null!==a.finished_at&&null!==a.duration_ms&&a.finished_at-a.started_at===a.duration_ms}}function as(a,b){let c=Date.now(),d=a.prepare(`
1443
1447
  INSERT INTO verification_runs (
1444
1448
  worktree_id, instance_id, task_id, trigger, status, base_ref, started_at, finished_at
1445
1449
  )
1446
1450
  VALUES (?, ?, ?, ?, 'running', ?, ?, NULL)
1447
- `).run(b.worktreeId,b.instanceId??null,b.taskId??null,b.trigger,b.baseRef??null,c),e=a.prepare(`SELECT ${an} FROM verification_runs WHERE id = ?`).get(Number(d.lastInsertRowid));if(!e)throw Error("Failed to persist verification run");return ap(e)}function as(a,b,c){if(0===a.prepare("UPDATE verification_runs SET status = ?, finished_at = ? WHERE id = ?").run(c,Date.now(),b).changes)throw Error(`Verification run ${b} not found`)}function at(a,b,c){let d=Date.now(),e=a.prepare(`
1451
+ `).run(b.worktreeId,b.instanceId??null,b.taskId??null,b.trigger,b.baseRef??null,c),e=a.prepare(`SELECT ${ao} FROM verification_runs WHERE id = ?`).get(Number(d.lastInsertRowid));if(!e)throw Error("Failed to persist verification run");return aq(e)}function at(a,b,c){if(0===a.prepare("UPDATE verification_runs SET status = ?, finished_at = ? WHERE id = ?").run(c,Date.now(),b).changes)throw Error(`Verification run ${b} not found`)}function au(a,b,c){let d=Date.now(),e=a.prepare(`
1448
1452
  INSERT INTO verification_gate_results (
1449
- run_id, gate_id, command, status, exit_code, duration_ms, log_tail, started_at, finished_at
1453
+ run_id, gate_id, command, status, exit_code, duration_ms, log_tail, started_at,
1454
+ finished_at, source
1450
1455
  )
1451
- VALUES (?, ?, ?, 'running', NULL, NULL, NULL, ?, NULL)
1452
- `).run(b,c.gateId,c.command,d),f=a.prepare(`SELECT ${ao} FROM verification_gate_results WHERE id = ?`).get(Number(e.lastInsertRowid));if(!f)throw Error("Failed to persist verification gate result");return aq(f)}function au(a,b,c){if(0===a.prepare(`
1456
+ VALUES (?, ?, ?, 'running', NULL, NULL, NULL, ?, NULL, ?)
1457
+ `).run(b,c.gateId,c.command,d,c.source),f=a.prepare(`SELECT ${ap} FROM verification_gate_results WHERE id = ?`).get(Number(e.lastInsertRowid));if(!f)throw Error("Failed to persist verification gate result");return ar(f)}function av(a,b,c){if(0===a.prepare(`
1453
1458
  UPDATE verification_gate_results
1454
1459
  SET status = ?, exit_code = ?, duration_ms = ?, log_tail = ?,
1455
1460
  started_at = COALESCE(?, started_at),
1456
1461
  finished_at = ?
1457
1462
  WHERE id = ?
1458
- `).run(c.status,c.exitCode??null,c.durationMs??null,c.logTail??null,c.executionWindow?.startedAt??null,c.executionWindow?.finishedAt??Date.now(),b).changes)throw Error(`Verification gate result ${b} not found`)}function av(a,b){let c=a.prepare(`SELECT ${an} FROM verification_runs WHERE id = ?`).get(b);if(!c)return null;let d=a.prepare(`
1459
- SELECT ${ao} FROM verification_gate_results
1463
+ `).run(c.status,c.exitCode??null,c.durationMs??null,c.logTail??null,c.executionWindow?.startedAt??null,c.executionWindow?.finishedAt??Date.now(),b).changes)throw Error(`Verification gate result ${b} not found`)}function aw(a,b){let c=a.prepare(`SELECT ${ao} FROM verification_runs WHERE id = ?`).get(b);if(!c)return null;let d=a.prepare(`
1464
+ SELECT ${ap} FROM verification_gate_results
1460
1465
  WHERE run_id = ?
1461
1466
  ORDER BY started_at ASC, id ASC
1462
- `).all(b);return{...ap(c),gates:d.map(aq)}}function aw(a,b){let c=a.prepare(`
1463
- SELECT ${an} FROM verification_runs
1467
+ `).all(b);return{...aq(c),gates:d.map(ar)}}function ax(a,b){let c=a.prepare(`
1468
+ SELECT ${ao} FROM verification_runs
1464
1469
  WHERE worktree_id = ? AND status = 'running'
1465
1470
  ORDER BY id DESC
1466
1471
  LIMIT 1
1467
- `).get(b);return c?ap(c):null}function ax(a){return a.prepare(`
1468
- SELECT ${an} FROM verification_runs
1472
+ `).get(b);return c?aq(c):null}function ay(a){return a.prepare(`
1473
+ SELECT ${ao} FROM verification_runs
1469
1474
  WHERE status = 'running'
1470
1475
  ORDER BY id ASC
1471
- `).all().map(ap)}function ay(a,b,c=20){return a.prepare(`
1472
- SELECT ${an} FROM verification_runs
1476
+ `).all().map(aq)}function az(a,b,c=20){return a.prepare(`
1477
+ SELECT ${ao} FROM verification_runs
1473
1478
  WHERE worktree_id = ?
1474
1479
  ORDER BY started_at DESC, id DESC
1475
1480
  LIMIT ?
1476
- `).all(b,c).map(ap)}let az=50,aA=500,aB=90;function aC(a,b,c,d){return void 0!==a&&Number.isFinite(a)?Math.min(Math.max(Math.trunc(a),c),d):b}function aD(a,b={}){let c=aC(b.limit,az,1,aA),d=[],e=[];if(void 0!==b.worktreeId&&(d.push("worktree_id = ?"),e.push(b.worktreeId)),void 0!==b.days){let a=aC(b.days,aB,1,aB);d.push("started_at >= ?"),e.push(Date.now()-864e5*a)}let f=d.length>0?`WHERE ${d.join(" AND ")}`:"",g=a.prepare(`
1477
- SELECT ${an} FROM verification_runs
1481
+ `).all(b,c).map(aq)}let aA=50,aB=500,aC=90;function aD(a,b,c,d){return void 0!==a&&Number.isFinite(a)?Math.min(Math.max(Math.trunc(a),c),d):b}function aE(a,b={}){let c=aD(b.limit,aA,1,aB),d=[],e=[];if(void 0!==b.worktreeId&&(d.push("worktree_id = ?"),e.push(b.worktreeId)),void 0!==b.days){let a=aD(b.days,aC,1,aC);d.push("started_at >= ?"),e.push(Date.now()-864e5*a)}let f=d.length>0?`WHERE ${d.join(" AND ")}`:"",g=a.prepare(`
1482
+ SELECT ${ao} FROM verification_runs
1478
1483
  ${f}
1479
1484
  ORDER BY started_at DESC, id DESC
1480
1485
  LIMIT ?
1481
1486
  `).all(...e,c);if(0===g.length)return[];let h=g.map(()=>"?").join(", "),i=a.prepare(`
1482
- SELECT run_id, gate_id, status, exit_code, duration_ms
1487
+ SELECT run_id, gate_id, status, exit_code, duration_ms, source
1483
1488
  FROM verification_gate_results
1484
1489
  WHERE run_id IN (${h})
1485
1490
  ORDER BY started_at ASC, id ASC
1486
- `).all(...g.map(a=>a.id)),j=new Map;for(let a of i){let b={gateId:a.gate_id,status:a.status,exitCode:a.exit_code,durationMs:a.duration_ms},c=j.get(a.run_id);c?c.push(b):j.set(a.run_id,[b])}return g.map(a=>({...ap(a),gates:j.get(a.id)??[]}))}var aE=c(48524),aF=c(87009)},95506:(a,b,c)=>{c.d(b,{Q2:()=>h,fX:()=>i,l0:()=>g,r3:()=>j,xJ:()=>f});var d=c(27923);function e(a){return void 0!==a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get()}function f(a,b,c,e=Date.now()){(0,d.b$)(a,b,c,e)}function g(a,b){if(!b)return null;if(a.prepare("SELECT 1 FROM worktrees WHERE id = ?").get(b))return b;if(!e(a))return null;let c=a.prepare("SELECT worktree_id FROM worktree_aliases WHERE old_id = ?").get(b);return c&&a.prepare("SELECT 1 FROM worktrees WHERE id = ?").get(c.worktree_id)?c.worktree_id:null}function h(a,b){return e(a)?a.prepare(`SELECT old_id, worktree_id, created_at
1491
+ `).all(...g.map(a=>a.id)),j=new Map;for(let a of i){let b={gateId:a.gate_id,status:a.status,exitCode:a.exit_code,durationMs:a.duration_ms,source:a.source??null},c=j.get(a.run_id);c?c.push(b):j.set(a.run_id,[b])}return g.map(a=>({...aq(a),gates:j.get(a.id)??[]}))}var aF=c(48524),aG=c(87009)},95506:(a,b,c)=>{c.d(b,{Q2:()=>h,fX:()=>i,l0:()=>g,r3:()=>j,xJ:()=>f});var d=c(27923);function e(a){return void 0!==a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get()}function f(a,b,c,e=Date.now()){(0,d.b$)(a,b,c,e)}function g(a,b){if(!b)return null;if(a.prepare("SELECT 1 FROM worktrees WHERE id = ?").get(b))return b;if(!e(a))return null;let c=a.prepare("SELECT worktree_id FROM worktree_aliases WHERE old_id = ?").get(b);return c&&a.prepare("SELECT 1 FROM worktrees WHERE id = ?").get(c.worktree_id)?c.worktree_id:null}function h(a,b){return e(a)?a.prepare(`SELECT old_id, worktree_id, created_at
1487
1492
  FROM worktree_aliases
1488
1493
  WHERE worktree_id = ?
1489
1494
  ORDER BY created_at DESC, old_id ASC`).all(b).map(a=>({oldId:a.old_id,worktreeId:a.worktree_id,createdAt:a.created_at})):[]}function i(a){return e(a)?a.prepare(`SELECT old_id, worktree_id, created_at