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
@@ -1 +1 @@
1
- "use strict";exports.id=9058,exports.ids=[9058],exports.modules={3421:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},27289:(a,b,c)=>{c.d(b,{t:()=>j,z:()=>i});var d=c(10641),e=c(88807),f=c(56791),g=c(95506),h=c(66007);function i(a){if(!a)return a;try{if(!(0,h.h6)(a))return a;let b=(0,e.getDbInstance)();return(0,g.l0)(b,a)??a}catch{return a}}function j(a){if(!(0,h.h6)(a))return d.NextResponse.json({error:"Invalid worktree ID format"},{status:400});let b=(0,e.getDbInstance)(),c=(0,f.getWorktreeById)(b,i(a));return c||d.NextResponse.json({error:"Worktree not found"},{status:404})}},39333:(a,b,c)=>{c.d(b,{$Y:()=>g,Bg:()=>i,HB:()=>f,df:()=>h,f9:()=>d});let d=[".png",".jpg",".jpeg",".gif",".webp",".svg"],e=[{extension:".png",mimeType:"image/png",magicBytes:[137,80,78,71]},{extension:".jpg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".jpeg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".gif",mimeType:"image/gif",magicBytes:[71,73,70,56]},{extension:".webp",mimeType:"image/webp",magicBytes:[82,73,70,70]},{extension:".svg",mimeType:"image/svg+xml"}];function f(a){return a?a.startsWith(".")?a.toLowerCase():"."+a.toLowerCase():""}function g(a){let b=f(a),c=e.find(a=>a.extension===b);return c?.mimeType||"application/octet-stream"}function h(a){if(!a)return!1;let b=f(a);return d.includes(b)}function i(a,b){if(b.length>0x1400000)return{valid:!1,error:"File size exceeds 20MB limit"};if(".svg"===f(a)){var c;return(c=b.toString("utf-8")).includes("<svg")||c.startsWith("<?xml")?/<script[\s>]/i.test(c)?{valid:!1,error:"SVG contains script tags"}:/\s+on\w+\s*=/i.test(c)?{valid:!1,error:"SVG contains event handler attributes"}:/(?:xlink:)?href\s*=\s*["']?\s*(?:javascript|data|vbscript):/i.test(c)?{valid:!1,error:"SVG contains dangerous URI scheme"}:/<foreignObject[\s>]/i.test(c)?{valid:!1,error:"SVG contains foreignObject element"}:{valid:!0}:{valid:!1,error:"Invalid SVG format"}}return!function(a,b){let c=f(a),d=e.find(a=>a.extension===c);if(!d?.magicBytes)return".svg"===c;let g=d.magicBytesOffset||0;return!(b.length<g+d.magicBytes.length)&&d.magicBytes.every((a,c)=>b[g+c]===a)}(a,b)?{valid:!1,error:"Invalid image magic bytes"}:{valid:!0}}d.filter(a=>".svg"!==a).map(a=>g(a)).filter(a=>"application/octet-stream"!==a).join(",")},56791:(a,b,c)=>{c.r(b),c.d(b,{ACTIVE_FILTER:()=>d.ks,ACTIVE_TASK_STATUSES:()=>d.EL,AgentInstanceLimitError:()=>d.AC,CURRENT_SCHEMA_VERSION:()=>f.FT,DEFAULT_RUN_HISTORY_LIMIT:()=>d.Tu,InvalidAgentInstanceError:()=>d.ug,MAX_DISABLED_REPOSITORIES:()=>h.nc,MAX_RUN_HISTORY_DAYS:()=>d.eP,MAX_RUN_HISTORY_LIMIT:()=>d.mg,MemoDbError:()=>d.lm,RepositoryDbError:()=>h.j8,TASK_STATUSES:()=>d.Hi,TERMINAL_TASK_STATUSES:()=>d.sA,VERIFICATION_TRIGGERS:()=>d.af,WORKTREE_TODO_STATUSES:()=>d.KG,addAgentInstance:()=>d.Uq,archiveAllAssistantMessages:()=>d.cD,archiveAssistantMessagesFrom:()=>d.Jj,cancelTimer:()=>d.Ud,cancelTimersByWorktree:()=>d.$$,cleanupOldTimers:()=>d.ul,clearInProgressMessageId:()=>d.YX,clearLastUserMessage:()=>d.cf,clearTimerHistory:()=>d.jf,closeDbInstance:()=>e.closeDbInstance,countAgentInstances:()=>d.fs,countDisabledRepositories:()=>h.QJ,countWorktreesByRepositoryPath:()=>h.kp,createAssistantConversation:()=>d.G4,createAssistantExecution:()=>d.hL,createAssistantMessage:()=>d.qp,createCloneJob:()=>h.tw,createGateResult:()=>d.hl,createMemo:()=>d.To,createMessage:()=>d.oH,createRepository:()=>h.vB,createTask:()=>d.UT,createTimer:()=>d.CR,createTodo:()=>d.py,createVerificationRun:()=>d.rY,createWorktreeTodo:()=>d.yy,deleteAllMessages:()=>d.pE,deleteAssistantSessionState:()=>d.z2,deleteMemo:()=>d.cP,deleteMessageById:()=>d.DF,deleteMessagesByCliTool:()=>d.lA,deleteMessagesByInstance:()=>d.Qp,deletePushSubscriptionByEndpoint:()=>d.th,deleteRepository:()=>h.oG,deleteRepositoryWorktrees:()=>d.oZ,deleteSessionState:()=>d.ZP,deleteTodo:()=>d.Ys,deleteWorktreeTodo:()=>d.vg,deleteWorktreesByIds:()=>d.Rm,disableExistingRepository:()=>h.eP,disableRepository:()=>h.l$,ensureEnvRepositoriesRegistered:()=>h.ES,filterExcludedPaths:()=>h.Ho,finishGateResult:()=>d.C8,finishVerificationRun:()=>d.u$,getActiveCloneJobByUrl:()=>h.fD,getActiveTask:()=>d.__,getActiveTaskForInstance:()=>d.MH,getAgentInstance:()=>d.BN,getAgentInstances:()=>d.m0,getAliasedWorktreeIds:()=>d.r3,getAllPushSubscriptions:()=>d.Se,getAllRepositories:()=>h.Yg,getAllRepositoriesWithWorktreeCount:()=>h._D,getAllTodos:()=>d.Tk,getAllWorktreeAliases:()=>d.fX,getAllWorktreeIds:()=>d.nO,getAllWorktreePathIds:()=>d.Sj,getAssistantConversationById:()=>d.iT,getAssistantConversationByRepositoryAndCliTool:()=>d.gp,getAssistantExecutionById:()=>d.$r,getAssistantMessageById:()=>d.yE,getAssistantMessages:()=>d.BE,getAssistantSessionState:()=>d.qK,getCloneJob:()=>h.bM,getCloneJobsByStatus:()=>h.n_,getCurrentVersion:()=>f.Mj,getDailyReport:()=>d.ap,getDbInstance:()=>e.getDbInstance,getDefaultDbPath:()=>g.$b,getExcludedRepositories:()=>h.lS,getExcludedRepositoryPaths:()=>h.pr,getInitialBranch:()=>d.p4,getIssueDbPath:()=>g.zm,getLastAssistantMessageAt:()=>d.nP,getLastMessage:()=>d.sy,getLastUserMessage:()=>d.r8,getLatestAssistantExecutionByConversation:()=>d.of,getLegacyDbPaths:()=>q,getMemoById:()=>d.DN,getMemosByWorktreeId:()=>d.pZ,getMessageById:()=>d.kA,getMessages:()=>d.VL,getMessagesByDateRange:()=>d.lr,getMigrationHistory:()=>f.PS,getPendingTimerCountByWorktree:()=>d.GF,getPendingTimers:()=>d._O,getPushSubscriptionByEndpoint:()=>d.CF,getPushSubscriptionsForKind:()=>d.gn,getRepositories:()=>d.NV,getRepositoryById:()=>h.r,getRepositoryByNormalizedUrl:()=>h.Uj,getRepositoryByPath:()=>h.Dp,getRunningAssistantExecutionByConversation:()=>d.ce,getRunningVerificationRun:()=>d.WZ,getSessionState:()=>d.y1,getTask:()=>d.gg,getTimerById:()=>d.kx,getTimersByWorktree:()=>d.DP,getTodoById:()=>d.Nr,getTodosByRepositoryId:()=>d.ob,getTodosByWorktreeId:()=>d.fr,getVerificationRun:()=>d.J6,getWorktreeAliases:()=>d.Q2,getWorktreeById:()=>d.Ui,getWorktreeIdsByRepository:()=>d.P9,getWorktreeTodoById:()=>d.eN,getWorktrees:()=>d.vi,getWorktreesByRepository:()=>d.uJ,initDatabase:()=>d.s4,isTerminalTaskStatus:()=>d.uB,isWorktreeTodoStatus:()=>d.yT,listRunningAssistantExecutions:()=>d.b2,listRunningVerificationRuns:()=>d.Fi,listTaskEvents:()=>d.HB,listTasks:()=>d.Vk,listVerificationRuns:()=>d.Mt,listVerificationRunsForPeriod:()=>d.UE,markPendingPromptsAsAnswered:()=>d.PL,migrateDbIfNeeded:()=>r,migrateWorktreeIdPreservingChildren:()=>d._h,recomputeLastUserMessage:()=>d.jp,recordAnsweredPrompt:()=>d.pG,recordWorktreeAlias:()=>d.xJ,recoverStuckSendingTimers:()=>d.Xm,registerAndFilterRepositories:()=>h.$G,removeAgentInstance:()=>d.NU,reorderMemos:()=>d.nQ,reorderWorktreeTodos:()=>d.yb,resolveAndValidatePath:()=>p,resolveRepositoryPath:()=>h.mE,resolveWorktreeIdWithAlias:()=>d.l0,restoreRepository:()=>h.RS,rollbackMigrations:()=>f.Wy,runMigrations:()=>f.vI,saveDailyReport:()=>d.tt,saveInitialBranch:()=>d.GA,setAgentInstances:()=>d.Cs,setInProgressMessageId:()=>d.OF,setRepositoryEnabled:()=>h.iQ,updateAssistantConversation:()=>d.xR,updateAssistantExecution:()=>d.az,updateAssistantMessageStatus:()=>d.nZ,updateAssistantSessionState:()=>d.PP,updateCliToolId:()=>d.Dx,updateCloneJob:()=>h.k5,updateDailyReportContent:()=>d.IF,updateFavorite:()=>d.O,updateLastUserMessage:()=>d.EU,updateLastViewedAt:()=>d.HZ,updateMemo:()=>d.UY,updateMessageContent:()=>d.e8,updatePromptData:()=>d.cw,updatePushSubscriptionPreferences:()=>d.jJ,updateRepository:()=>h.Ir,updateSelectedAgents:()=>d.DC,updateSessionState:()=>d.gb,updateStatus:()=>d.yB,updateTimerStatus:()=>d.j2,updateTodo:()=>d.uy,updateVibeLocalContextWindow:()=>d.s,updateVibeLocalModel:()=>d.iu,updateWorktreeDescription:()=>d.hq,updateWorktreeLink:()=>d.z1,updateWorktreeTodo:()=>d.bl,upsertPushSubscription:()=>d.jA,upsertWorktree:()=>d.ZL,validateDbPath:()=>g.Sv,validateRepositoryPath:()=>h.Ux,validateSchema:()=>f.i6});var d=c(90444),e=c(88807),f=c(72456),g=c(20416),h=c(10406),i=c(29021),j=c.n(i),k=c(33873),l=c.n(k),m=c(21820),n=c(7956);let o=(0,c(72626).h)("db-migration-path");function p(a,b){try{if(!j().existsSync(a))return null;let c=j().realpathSync(a);if((0,n.fW)(c))return o.warn(`[Security] ${b} points to system directory, skipping: ${c}`),null;return c}catch{return o.warn(`[Security] Failed to resolve ${b}: ${a}`),null}}function q(){let a=[];a.push(l().join(process.cwd(),"data","db.sqlite")),a.push(l().join(process.cwd(),"data","cm.db")),a.push(l().join((0,m.homedir)(),".commandmate","data","db.sqlite"));let b=process.env.DATABASE_PATH;if(b)try{let c=l().resolve(b);(0,n.fW)(c)?o.warn(`[Security] Skipping DATABASE_PATH in system directory: ${c}`):a.push(b)}catch{o.warn(`[Security] Invalid DATABASE_PATH: ${b}`)}return a}function r(a){let b=l().resolve(a);if((0,n.fW)(b))throw Error(`Security error: Target path cannot be in system directory: ${b}`);if(j().existsSync(a)){let b=p(a,"target path");if(b)return{migrated:!1,targetPath:b}}for(let a of q()){let c=p(a,"legacy path");if(!c)continue;let d=`${c}.bak`;j().copyFileSync(c,d),j().chmodSync(d,384);let e=l().dirname(b);return j().existsSync(e)||j().mkdirSync(e,{recursive:!0,mode:448}),j().copyFileSync(c,b),o.info(`[Migration] Database migrated from ${c} to ${b}`),o.info(`[Migration] Backup created at ${d}`),{migrated:!0,sourcePath:c,targetPath:b,backupPath:d}}return{migrated:!1,targetPath:b}}},66007:(a,b,c)=>{c.d(b,{B9:()=>m,Px:()=>o,Uc:()=>l,b$:()=>n,h6:()=>k});var d=c(33873),e=c.n(d),f=c(29021),g=c(72626),h=c(80438);let i=(0,g.h)("path-validator"),j=/^[a-zA-Z0-9_-]+$/;function k(a){return!!a&&0!==a.length&&j.test(a)}function l(a,b){return a===b||a.startsWith(b+e().sep)}function m(a,b){if(!a||""===a.trim()||a.includes("\0"))return!1;let c=a;try{c=decodeURIComponent(a)}catch{c=a}if(c.includes("\0"))return!1;let d=e().resolve(b),f=e().resolve(b,c),g=e().relative(d,f);return!(g.startsWith("..")||e().isAbsolute(g))}function n(a,b){if(!a||""===a.trim())throw Error("Invalid path: Path cannot be empty");if(a.includes("\0"))throw Error("Invalid path: Null bytes not allowed");if(!m(a,b))throw Error(`Path is outside allowed directory: ${a} (allowed root: ${b})`);let c=a;try{c=decodeURIComponent(a)}catch{c=a}return e().resolve(b,c)}function o(a,b){let c;try{c=(0,f.realpathSync)(b)}catch{return!1}let d=e().resolve(b,a);if((0,f.existsSync)(d))try{let b=(0,f.realpathSync)(d),e=l(b,c);return e||(0,h.h)(i,"symlink-rejected",{targetPath:a,resolvedTarget:b}),e}catch{return!1}try{if((0,f.lstatSync)(d).isSymbolicLink())try{let b=(0,f.readlinkSync)(d),g=e().resolve(e().dirname(d),b),j=l(g,c);return j||(0,h.h)(i,"dangling-symlink-rejected",{targetPath:a,resolvedLinkTarget:g}),j}catch{return!1}}catch{}let g=e().dirname(d);for(;g!==e().dirname(g);){if((0,f.existsSync)(g))try{let a=(0,f.realpathSync)(g),b=l(a,c);return b||(0,h.h)(i,"symlink-ancestor-rejected",{currentPath:g,resolvedAncestor:a}),b}catch{break}g=e().dirname(g)}return!1}},80438:(a,b,c)=>{c.d(b,{h:()=>d});function d(a,b,c){a.warn(`security:${b}`,c)}},95736:(a,b,c)=>{a.exports=c(44870)}};
1
+ "use strict";exports.id=9058,exports.ids=[9058],exports.modules={3421:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},27289:(a,b,c)=>{c.d(b,{t:()=>j,z:()=>i});var d=c(10641),e=c(88807),f=c(56791),g=c(95506),h=c(66007);function i(a){if(!a)return a;try{if(!(0,h.h6)(a))return a;let b=(0,e.getDbInstance)();return(0,g.l0)(b,a)??a}catch{return a}}function j(a){if(!(0,h.h6)(a))return d.NextResponse.json({error:"Invalid worktree ID format"},{status:400});let b=(0,e.getDbInstance)(),c=(0,f.getWorktreeById)(b,i(a));return c||d.NextResponse.json({error:"Worktree not found"},{status:404})}},39333:(a,b,c)=>{c.d(b,{$Y:()=>g,Bg:()=>i,HB:()=>f,df:()=>h,f9:()=>d});let d=[".png",".jpg",".jpeg",".gif",".webp",".svg"],e=[{extension:".png",mimeType:"image/png",magicBytes:[137,80,78,71]},{extension:".jpg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".jpeg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".gif",mimeType:"image/gif",magicBytes:[71,73,70,56]},{extension:".webp",mimeType:"image/webp",magicBytes:[82,73,70,70]},{extension:".svg",mimeType:"image/svg+xml"}];function f(a){return a?a.startsWith(".")?a.toLowerCase():"."+a.toLowerCase():""}function g(a){let b=f(a),c=e.find(a=>a.extension===b);return c?.mimeType||"application/octet-stream"}function h(a){if(!a)return!1;let b=f(a);return d.includes(b)}function i(a,b){if(b.length>0x1400000)return{valid:!1,error:"File size exceeds 20MB limit"};if(".svg"===f(a)){var c;return(c=b.toString("utf-8")).includes("<svg")||c.startsWith("<?xml")?/<script[\s>]/i.test(c)?{valid:!1,error:"SVG contains script tags"}:/\s+on\w+\s*=/i.test(c)?{valid:!1,error:"SVG contains event handler attributes"}:/(?:xlink:)?href\s*=\s*["']?\s*(?:javascript|data|vbscript):/i.test(c)?{valid:!1,error:"SVG contains dangerous URI scheme"}:/<foreignObject[\s>]/i.test(c)?{valid:!1,error:"SVG contains foreignObject element"}:{valid:!0}:{valid:!1,error:"Invalid SVG format"}}return!function(a,b){let c=f(a),d=e.find(a=>a.extension===c);if(!d?.magicBytes)return".svg"===c;let g=d.magicBytesOffset||0;return!(b.length<g+d.magicBytes.length)&&d.magicBytes.every((a,c)=>b[g+c]===a)}(a,b)?{valid:!1,error:"Invalid image magic bytes"}:{valid:!0}}d.filter(a=>".svg"!==a).map(a=>g(a)).filter(a=>"application/octet-stream"!==a).join(",")},56791:(a,b,c)=>{c.r(b),c.d(b,{ACTIVE_FILTER:()=>d.ks,ACTIVE_TASK_STATUSES:()=>d.EL,AgentInstanceLimitError:()=>d.AC,CURRENT_SCHEMA_VERSION:()=>f.FT,DEFAULT_RUN_HISTORY_LIMIT:()=>d.Tu,InvalidAgentInstanceError:()=>d.ug,MAX_DISABLED_REPOSITORIES:()=>h.nc,MAX_RUN_HISTORY_DAYS:()=>d.eP,MAX_RUN_HISTORY_LIMIT:()=>d.mg,MemoDbError:()=>d.lm,RepositoryDbError:()=>h.j8,TASK_STATUSES:()=>d.Hi,TERMINAL_TASK_STATUSES:()=>d.sA,VERIFICATION_GATE_SOURCES:()=>d.Dx,VERIFICATION_TRIGGERS:()=>d.af,WORKTREE_TODO_STATUSES:()=>d.KG,addAgentInstance:()=>d.Uq,archiveAllAssistantMessages:()=>d.cD,archiveAssistantMessagesFrom:()=>d.Jj,cancelTimer:()=>d.Ud,cancelTimersByWorktree:()=>d.$$,cleanupOldTimers:()=>d.ul,clearInProgressMessageId:()=>d.YX,clearLastUserMessage:()=>d.cf,clearTimerHistory:()=>d.jf,closeDbInstance:()=>e.closeDbInstance,countAgentInstances:()=>d.fs,countDisabledRepositories:()=>h.QJ,countWorktreesByRepositoryPath:()=>h.kp,createAssistantConversation:()=>d.G4,createAssistantExecution:()=>d.hL,createAssistantMessage:()=>d.qp,createCloneJob:()=>h.tw,createGateResult:()=>d.hl,createMemo:()=>d.To,createMessage:()=>d.oH,createRepository:()=>h.vB,createTask:()=>d.UT,createTimer:()=>d.CR,createTodo:()=>d.py,createVerificationRun:()=>d.rY,createWorktreeTodo:()=>d.yy,deleteAllMessages:()=>d.pE,deleteAssistantSessionState:()=>d.z2,deleteMemo:()=>d.cP,deleteMessageById:()=>d.DF,deleteMessagesByCliTool:()=>d.lA,deleteMessagesByInstance:()=>d.Qp,deletePushSubscriptionByEndpoint:()=>d.th,deleteRepository:()=>h.oG,deleteRepositoryWorktrees:()=>d.oZ,deleteSessionState:()=>d.ZP,deleteTodo:()=>d.Ys,deleteWorktreeTodo:()=>d.vg,deleteWorktreesByIds:()=>d.Rm,disableExistingRepository:()=>h.eP,disableRepository:()=>h.l$,ensureEnvRepositoriesRegistered:()=>h.ES,filterExcludedPaths:()=>h.Ho,finishGateResult:()=>d.C8,finishVerificationRun:()=>d.u$,getActiveCloneJobByUrl:()=>h.fD,getActiveTask:()=>d.__,getActiveTaskForInstance:()=>d.MH,getAgentInstance:()=>d.BN,getAgentInstances:()=>d.m0,getAliasedWorktreeIds:()=>d.r3,getAllPushSubscriptions:()=>d.Se,getAllRepositories:()=>h.Yg,getAllRepositoriesWithWorktreeCount:()=>h._D,getAllTodos:()=>d.Tk,getAllWorktreeAliases:()=>d.fX,getAllWorktreeIds:()=>d.nO,getAllWorktreePathIds:()=>d.Sj,getAssistantConversationById:()=>d.iT,getAssistantConversationByRepositoryAndCliTool:()=>d.gp,getAssistantExecutionById:()=>d.$r,getAssistantMessageById:()=>d.yE,getAssistantMessages:()=>d.BE,getAssistantSessionState:()=>d.qK,getCloneJob:()=>h.bM,getCloneJobsByStatus:()=>h.n_,getCurrentVersion:()=>f.Mj,getDailyReport:()=>d.ap,getDbInstance:()=>e.getDbInstance,getDefaultDbPath:()=>g.$b,getExcludedRepositories:()=>h.lS,getExcludedRepositoryPaths:()=>h.pr,getInitialBranch:()=>d.p4,getIssueDbPath:()=>g.zm,getLastAssistantMessageAt:()=>d.nP,getLastMessage:()=>d.sy,getLastUserMessage:()=>d.r8,getLatestAssistantExecutionByConversation:()=>d.of,getLegacyDbPaths:()=>q,getMemoById:()=>d.DN,getMemosByWorktreeId:()=>d.pZ,getMessageById:()=>d.kA,getMessages:()=>d.VL,getMessagesByDateRange:()=>d.lr,getMigrationHistory:()=>f.PS,getPendingTimerCountByWorktree:()=>d.GF,getPendingTimers:()=>d._O,getPushSubscriptionByEndpoint:()=>d.CF,getPushSubscriptionsForKind:()=>d.gn,getRepositories:()=>d.NV,getRepositoryById:()=>h.r,getRepositoryByNormalizedUrl:()=>h.Uj,getRepositoryByPath:()=>h.Dp,getRunningAssistantExecutionByConversation:()=>d.ce,getRunningVerificationRun:()=>d.WZ,getSessionState:()=>d.y1,getTask:()=>d.gg,getTimerById:()=>d.kx,getTimersByWorktree:()=>d.DP,getTodoById:()=>d.Nr,getTodosByRepositoryId:()=>d.ob,getTodosByWorktreeId:()=>d.fr,getVerificationRun:()=>d.J6,getWorktreeAliases:()=>d.Q2,getWorktreeById:()=>d.Ui,getWorktreeIdsByRepository:()=>d.P9,getWorktreeTodoById:()=>d.eN,getWorktrees:()=>d.vi,getWorktreesByRepository:()=>d.uJ,initDatabase:()=>d.s4,isTerminalTaskStatus:()=>d.uB,isWorktreeTodoStatus:()=>d.yT,listRunningAssistantExecutions:()=>d.b2,listRunningVerificationRuns:()=>d.Fi,listTaskEvents:()=>d.HB,listTasks:()=>d.Vk,listVerificationRuns:()=>d.Mt,listVerificationRunsForPeriod:()=>d.UE,markPendingPromptsAsAnswered:()=>d.PL,migrateDbIfNeeded:()=>r,migrateWorktreeIdPreservingChildren:()=>d._h,recomputeLastUserMessage:()=>d.jp,recordAnsweredPrompt:()=>d.pG,recordWorktreeAlias:()=>d.xJ,recoverStuckSendingTimers:()=>d.Xm,registerAndFilterRepositories:()=>h.$G,removeAgentInstance:()=>d.NU,reorderMemos:()=>d.nQ,reorderWorktreeTodos:()=>d.yb,resolveAndValidatePath:()=>p,resolveRepositoryPath:()=>h.mE,resolveWorktreeIdWithAlias:()=>d.l0,restoreRepository:()=>h.RS,rollbackMigrations:()=>f.Wy,runMigrations:()=>f.vI,saveDailyReport:()=>d.tt,saveInitialBranch:()=>d.GA,setAgentInstances:()=>d.Cs,setInProgressMessageId:()=>d.OF,setRepositoryEnabled:()=>h.iQ,updateAssistantConversation:()=>d.xR,updateAssistantExecution:()=>d.az,updateAssistantMessageStatus:()=>d.nZ,updateAssistantSessionState:()=>d.PP,updateCliToolId:()=>d.WU,updateCloneJob:()=>h.k5,updateDailyReportContent:()=>d.IF,updateFavorite:()=>d.O,updateLastUserMessage:()=>d.EU,updateLastViewedAt:()=>d.HZ,updateMemo:()=>d.UY,updateMessageContent:()=>d.e8,updatePromptData:()=>d.cw,updatePushSubscriptionPreferences:()=>d.jJ,updateRepository:()=>h.Ir,updateSelectedAgents:()=>d.DC,updateSessionState:()=>d.gb,updateStatus:()=>d.yB,updateTimerStatus:()=>d.j2,updateTodo:()=>d.uy,updateVibeLocalContextWindow:()=>d.s,updateVibeLocalModel:()=>d.iu,updateWorktreeDescription:()=>d.hq,updateWorktreeLink:()=>d.z1,updateWorktreeTodo:()=>d.bl,upsertPushSubscription:()=>d.jA,upsertWorktree:()=>d.ZL,validateDbPath:()=>g.Sv,validateRepositoryPath:()=>h.Ux,validateSchema:()=>f.i6});var d=c(90444),e=c(88807),f=c(18698),g=c(20416),h=c(10406),i=c(29021),j=c.n(i),k=c(33873),l=c.n(k),m=c(21820),n=c(7956);let o=(0,c(72626).h)("db-migration-path");function p(a,b){try{if(!j().existsSync(a))return null;let c=j().realpathSync(a);if((0,n.fW)(c))return o.warn(`[Security] ${b} points to system directory, skipping: ${c}`),null;return c}catch{return o.warn(`[Security] Failed to resolve ${b}: ${a}`),null}}function q(){let a=[];a.push(l().join(process.cwd(),"data","db.sqlite")),a.push(l().join(process.cwd(),"data","cm.db")),a.push(l().join((0,m.homedir)(),".commandmate","data","db.sqlite"));let b=process.env.DATABASE_PATH;if(b)try{let c=l().resolve(b);(0,n.fW)(c)?o.warn(`[Security] Skipping DATABASE_PATH in system directory: ${c}`):a.push(b)}catch{o.warn(`[Security] Invalid DATABASE_PATH: ${b}`)}return a}function r(a){let b=l().resolve(a);if((0,n.fW)(b))throw Error(`Security error: Target path cannot be in system directory: ${b}`);if(j().existsSync(a)){let b=p(a,"target path");if(b)return{migrated:!1,targetPath:b}}for(let a of q()){let c=p(a,"legacy path");if(!c)continue;let d=`${c}.bak`;j().copyFileSync(c,d),j().chmodSync(d,384);let e=l().dirname(b);return j().existsSync(e)||j().mkdirSync(e,{recursive:!0,mode:448}),j().copyFileSync(c,b),o.info(`[Migration] Database migrated from ${c} to ${b}`),o.info(`[Migration] Backup created at ${d}`),{migrated:!0,sourcePath:c,targetPath:b,backupPath:d}}return{migrated:!1,targetPath:b}}},66007:(a,b,c)=>{c.d(b,{B9:()=>m,Px:()=>o,Uc:()=>l,b$:()=>n,h6:()=>k});var d=c(33873),e=c.n(d),f=c(29021),g=c(72626),h=c(80438);let i=(0,g.h)("path-validator"),j=/^[a-zA-Z0-9_-]+$/;function k(a){return!!a&&0!==a.length&&j.test(a)}function l(a,b){return a===b||a.startsWith(b+e().sep)}function m(a,b){if(!a||""===a.trim()||a.includes("\0"))return!1;let c=a;try{c=decodeURIComponent(a)}catch{c=a}if(c.includes("\0"))return!1;let d=e().resolve(b),f=e().resolve(b,c),g=e().relative(d,f);return!(g.startsWith("..")||e().isAbsolute(g))}function n(a,b){if(!a||""===a.trim())throw Error("Invalid path: Path cannot be empty");if(a.includes("\0"))throw Error("Invalid path: Null bytes not allowed");if(!m(a,b))throw Error(`Path is outside allowed directory: ${a} (allowed root: ${b})`);let c=a;try{c=decodeURIComponent(a)}catch{c=a}return e().resolve(b,c)}function o(a,b){let c;try{c=(0,f.realpathSync)(b)}catch{return!1}let d=e().resolve(b,a);if((0,f.existsSync)(d))try{let b=(0,f.realpathSync)(d),e=l(b,c);return e||(0,h.h)(i,"symlink-rejected",{targetPath:a,resolvedTarget:b}),e}catch{return!1}try{if((0,f.lstatSync)(d).isSymbolicLink())try{let b=(0,f.readlinkSync)(d),g=e().resolve(e().dirname(d),b),j=l(g,c);return j||(0,h.h)(i,"dangling-symlink-rejected",{targetPath:a,resolvedLinkTarget:g}),j}catch{return!1}}catch{}let g=e().dirname(d);for(;g!==e().dirname(g);){if((0,f.existsSync)(g))try{let a=(0,f.realpathSync)(g),b=l(a,c);return b||(0,h.h)(i,"symlink-ancestor-rejected",{currentPath:g,resolvedAncestor:a}),b}catch{break}g=e().dirname(g)}return!1}},80438:(a,b,c)=>{c.d(b,{h:()=>d});function d(a,b,c){a.warn(`security:${b}`,c)}},95736:(a,b,c)=>{a.exports=c(44870)}};
@@ -1,13 +1,13 @@
1
- exports.id=9123,exports.ids=[9123],exports.modules={762:(a,b,c)=>{Promise.resolve().then(c.bind(c,96908))},1483:(a,b,c)=>{var d={"./en/keyboardShortcuts.json":[53722,3722],"./ja/keyboardShortcuts.json":[88356,8356]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=1483,a.exports=e},4558:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(43692),e=c(86802),f=c(25754);let g=(0,d.A)(async({requestLocale:a})=>{let b=await a;if(!(0,f.d9)(b)){let a=await (0,e.UL)(),c=await (0,e.b3)();b=(0,f.rv)(a.get(f.gB)?.value,c.get("accept-language"))}let[d,g,h,i,j,k,l,m,n,o,p,q,r,s,t]=await Promise.all([c(61118)(`./${b}/common.json`),c(90338)(`./${b}/worktree.json`),c(62081)(`./${b}/autoYes.json`),c(66125)(`./${b}/error.json`),c(72637)(`./${b}/prompt.json`),c(51877)(`./${b}/auth.json`),c(38898)(`./${b}/schedule.json`),c(80407)(`./${b}/commandPalette.json`),c(70288)(`./${b}/home.json`),c(60887)(`./${b}/review.json`),c(75567)(`./${b}/pwa.json`),c(99127)(`./${b}/notifications.json`),c(1483)(`./${b}/keyboardShortcuts.json`),c(80812)(`./${b}/externalApps.json`),c(18913)(`./${b}/skills.json`)]);return{locale:b,timeZone:"UTC",messages:{common:d.default,worktree:g.default,autoYes:h.default,error:i.default,prompt:j.default,auth:k.default,schedule:l.default,commandPalette:m.default,home:n.default,review:o.default,pwa:p.default,notifications:q.default,keyboardShortcuts:r.default,externalApps:s.default,skills:t.default}}})},5682:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/CommandMate/CommandMate/src/app/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/app/error.tsx","default")},5772:(a,b,c)=>{"use strict";c.d(b,{Ps:()=>k,W5:()=>j});var d=c(21124),e=c(38301),f=c(90076),g=c(12480);let h={size:g.r5,setSize:()=>{},isMobile:!1,factor:g.d8[g.r5].factor,isAvailable:!1},i=(0,e.createContext)(h);function j({children:a}){let{size:b,setSize:c,isAvailable:h}=(0,g.of)(),j=(0,f.a)(),k=(0,e.useMemo)(()=>({size:b,setSize:c,isMobile:j,factor:g.d8[b].factor,isAvailable:h}),[b,c,j,h]);return(0,d.jsx)(i.Provider,{value:k,children:a})}function k(){return(0,e.useContext)(i)}},6074:(a,b,c)=>{"use strict";c.d(b,{O:()=>e});var d=c(38301);function e(a,b){let[c,e]=(0,d.useState)(a?"open":"closed");return a&&"open"!==c?e("open"):a||"open"!==c||e("exiting"),{shouldRender:a||"closed"!==c,isExiting:!a&&"exiting"===c}}},11010:(a,b,c)=>{"use strict";c.d(b,{M:()=>d});let d={DROPDOWN:10,SIDEBAR:30,MODAL:50,MAXIMIZED_EDITOR:55,TOAST:60,POPOVER:65,CONTEXT_MENU:70}},12055:(a,b,c)=>{"use strict";c.d(b,{Oo:()=>e,ST:()=>d,zS:()=>f});let d="client_version",e="version_mismatch";function f(a){let b;try{b=JSON.parse(a)}catch{return null}if(!b||"object"!=typeof b)return null;let c=b;if("broadcast"===c.type){let a=c.data;return a&&"object"==typeof a?"string"!=typeof a.type?null:(void 0===a.worktreeId&&"string"==typeof c.worktreeId&&(a.worktreeId=c.worktreeId),a):null}return"string"==typeof c.type?c:null}},12480:(a,b,c)=>{"use strict";c.d(b,{Uf:()=>f,d8:()=>g,fM:()=>h,of:()=>j,r5:()=>e,rq:()=>i});var d=c(53237);let e="medium",f=["large","medium","small","xsmall"],g={large:{value:"large",rootFontSizePx:18,factor:1.125,terminalFontSize:16},medium:{value:"medium",rootFontSizePx:16,factor:1,terminalFontSize:14},small:{value:"small",rootFontSizePx:14,factor:.875,terminalFontSize:12},xsmall:{value:"xsmall",rootFontSizePx:12.5,factor:.78,terminalFontSize:11}};function h(a){return"string"==typeof a&&Object.prototype.hasOwnProperty.call(g,a)}function i(a){return g[a].terminalFontSize}function j(){let{value:a,setValue:b,isAvailable:c}=(0,d.V)({key:"mcbd-pc-display-size",defaultValue:e,validate:h});return{size:a,setSize:b,isAvailable:c}}},17793:(a,b,c)=>{"use strict";c.d(b,{y:()=>h});var d=c(21124);c(38301);var e=c(35595);let f={xs:"h-3 w-3",sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6",xl:"h-8 w-8"},g={current:"",accent:"text-accent-600 dark:text-accent-400",muted:"text-muted-foreground"};function h({size:a="md",variant:b="current",className:c,...h}){return(0,d.jsxs)("svg",{className:(0,e.cn)("animate-spin",f[a],g[b],c),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","aria-hidden":"true",...h,children:[(0,d.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,d.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})}},18913:(a,b,c)=>{var d={"./en/skills.json":[55064,5064],"./ja/skills.json":[20022,22]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=18913,a.exports=e},25754:(a,b,c)=>{"use strict";c.d(b,{Xn:()=>e,d9:()=>g,gB:()=>f,rv:()=>h});let d=["en","ja"],e="en",f="locale";function g(a){return"string"==typeof a&&d.includes(a)}function h(a,b){return g(a)?a:d.find(a=>(b??"").includes(a))??e}},26808:(a,b,c)=>{Promise.resolve().then(c.bind(c,58315))},32482:(a,b,c)=>{"use strict";c.d(b,{LV:()=>i,Si:()=>e,UZ:()=>g,Xn:()=>k,_s:()=>l,nO:()=>j,s6:()=>h});let d=["updatedAt","repositoryName","branchName","status","lastSent"],e=a=>d.includes(a),f={waiting:0,ready:1,running:2,generating:3,idle:4};function g(a){let b=new Set;for(let c of a)!1===c.visible&&b.add(c.path);return b}function h(a,b){return 0===b.size?a.slice():a.filter(a=>{let c=a.repositoryPath;return!c||!b.has(c)})}function i(a){let b=function(a){let b=5381;for(let c=0;c<a.length;c++)b=(b<<5)+b+a.charCodeAt(c)|0;return Math.abs(b)}(a)%360;return`hsl(${b}, 65%, 60%)`}function j(a,b){if(!a&&!b)return 0;if(!a)return 1;if(!b)return -1;let c=a instanceof Date?a.getTime():new Date(a).getTime();return(b instanceof Date?b.getTime():new Date(b).getTime())-c}function k(a,b,c){let d=[...a];return d.sort((a,d)=>{let e=0;switch(b){case"updatedAt":{let b=a=>a?a instanceof Date?a.getTime():new Date(a).getTime():0,c=b(a.lastActivity);e=b(d.lastActivity)-c;break}case"repositoryName":{let b=a.repositoryName.toLowerCase(),c=d.repositoryName.toLowerCase();e=b.localeCompare(c);break}case"branchName":{let b=a.name.toLowerCase(),c=d.name.toLowerCase();e=b.localeCompare(c);break}case"status":e=f[a.status]-f[d.status];break;case"lastSent":{let b=j(a.lastActivity,d.lastActivity);if(!a.lastActivity&&!d.lastActivity){e=0;break}if(!a.lastActivity)return 1;if(!d.lastActivity)return -1;e=b;break}default:e=0}return("updatedAt"===b||"lastSent"===b?"desc"===c:"asc"===c)?e:-e}),d}function l(a,b,c){let d=new Map;for(let b of a){let a=b.repositoryName;d.has(a)||d.set(a,[]),d.get(a).push(b)}return[...d.keys()].sort((a,b)=>a.toLowerCase().localeCompare(b.toLowerCase())).map(a=>({repositoryName:a,branches:k(d.get(a),b,c)}))}},35595:(a,b,c)=>{"use strict";c.d(b,{cn:()=>f});var d=c(43249),e=c(58829);function f(...a){return(0,e.QP)((0,d.$)(a))}},35914:(a,b,c)=>{"use strict";c.d(b,{oz:()=>d,tV:()=>e});function d(a){if(null==a||"object"!=typeof a)return!1;let{name:b,message:c}=a;return"ChunkLoadError"===b||"string"==typeof c&&(c.includes("Loading chunk")||c.includes("Failed to fetch dynamically imported module"))}function e(a){return"skipped"}},36536:(a,b,c)=>{Promise.resolve().then(c.bind(c,80776))},38898:(a,b,c)=>{var d={"./en/schedule.json":[95571,5571],"./ja/schedule.json":[26285,6285]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=38898,a.exports=e},39800:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(21124),e=c(38301),f=c(35914);let g={en:{chunkTitle:"Updating to the latest version",chunkDescription:"A newer version of CommandMate is available. Reloading to get the latest update…",genericTitle:"Something went wrong",genericDescription:"An unexpected error occurred. Please reload the page.",reload:"Reload"},ja:{chunkTitle:"最新バージョンに更新しています",chunkDescription:"CommandMate の新しいバージョンが利用可能です。最新の状態にするため再読み込みします…",genericTitle:"問題が発生しました",genericDescription:"予期しないエラーが発生しました。ページを再読み込みしてください。",reload:"再読み込み"}};function h({error:a}){let b=(0,f.oz)(a),[c,h]=(0,e.useState)("en"),i=g[c];return(0,d.jsx)("html",{lang:c,style:{colorScheme:"light dark"},children:(0,d.jsxs)("body",{style:{margin:0,minHeight:"100vh",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"1.5rem",padding:"1.5rem",textAlign:"center",background:"Canvas",color:"CanvasText",fontFamily:'system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif'},children:[(0,d.jsxs)("div",{style:{maxWidth:"24rem"},children:[(0,d.jsx)("h1",{style:{fontSize:"1.5rem",fontWeight:600,margin:"0 0 0.5rem"},children:b?i.chunkTitle:i.genericTitle}),(0,d.jsx)("p",{style:{fontSize:"0.875rem",opacity:.75,margin:0},children:b?i.chunkDescription:i.genericDescription})]}),(0,d.jsx)("button",{type:"button",onClick:()=>window.location.reload(),style:{appearance:"none",cursor:"pointer",borderRadius:"0.5rem",border:"1px solid currentColor",background:"transparent",color:"inherit",padding:"0.5rem 1rem",fontSize:"0.875rem",fontWeight:500},children:i.reload})]})})}},43084:(a,b,c)=>{"use strict";c.d(b,{k:()=>g});var d=c(75338),e=c(94596);let f=["[animation-delay:0ms]","[animation-delay:150ms]","[animation-delay:300ms]"];function g(){let a=(0,e.A)("common");return(0,d.jsx)("div",{className:"flex min-h-screen w-full items-center justify-center p-8",role:"status","aria-label":a("loadingPage"),"data-testid":"route-loading",children:(0,d.jsx)("div",{className:"flex items-center gap-2","aria-hidden":"true",children:f.map(a=>(0,d.jsx)("span",{className:`h-2.5 w-2.5 rounded-full bg-muted-foreground animate-pulse ${a}`},a))})})}},44164:(a,b,c)=>{Promise.resolve().then(c.bind(c,64182))},47817:(a,b,c)=>{"use strict";c.d(b,{$f:()=>k,H8:()=>j});var d=c(21124),e=c(38301),f=c(78352);let g=(0,e.createContext)(null),h={selectedWorktreeId:null,worktrees:[],repositories:[],selectedWorktreeDetail:null,isLoading:!0,isLoadingDetail:!1,error:null};function i(a,b){switch(b.type){case"SET_WORKTREES":return{...a,worktrees:b.worktrees,isLoading:!1};case"SET_REPOSITORIES":return{...a,repositories:b.repositories};case"SELECT_WORKTREE":{let c=a.worktrees.find(a=>a.id===b.id)??null;return{...a,selectedWorktreeId:b.id,selectedWorktreeDetail:c??a.selectedWorktreeDetail,isLoadingDetail:null===c}}case"SET_WORKTREE_DETAIL":return{...a,selectedWorktreeDetail:b.detail};case"SET_LOADING":return{...a,isLoading:b.isLoading};case"SET_LOADING_DETAIL":return{...a,isLoadingDetail:b.isLoadingDetail};case"SET_ERROR":return{...a,error:b.error,isLoading:!1};default:return a}}function j({children:a,externalWorktrees:b,externalRepositories:c}){let j=void 0!==b,[k,l]=(0,e.useReducer)(i,h),m=(0,e.useCallback)(async()=>{if(!j){l({type:"SET_LOADING",isLoading:!0}),l({type:"SET_ERROR",error:null});try{let a=await f.y.getAll();l({type:"SET_WORKTREES",worktrees:a.worktrees}),l({type:"SET_REPOSITORIES",repositories:a.repositories??[]})}catch(a){l({type:"SET_ERROR",error:a instanceof Error?a.message:"Failed to fetch worktrees"})}}},[j]),n=(0,e.useCallback)(async a=>{l({type:"SELECT_WORKTREE",id:a}),l({type:"SET_ERROR",error:null});try{f.y.markAsViewed(a).catch(a=>{console.warn("[WorktreeSelectionContext] Failed to mark as viewed:",a)});let b=await f.y.getById(a);l({type:"SET_WORKTREE_DETAIL",detail:b})}catch(a){l({type:"SET_ERROR",error:a instanceof Error?a.message:"Failed to fetch worktree detail"})}finally{l({type:"SET_LOADING_DETAIL",isLoadingDetail:!1})}},[]),o=(0,e.useCallback)(async()=>{await m()},[m]),p={selectedWorktreeId:k.selectedWorktreeId,worktrees:k.worktrees,repositories:k.repositories,selectedWorktreeDetail:k.selectedWorktreeDetail,isLoadingDetail:k.isLoadingDetail,error:k.error,selectWorktree:n,refreshWorktrees:o};return(0,d.jsx)(g.Provider,{value:p,children:a})}function k(){let a=(0,e.useContext)(g);if(!a)throw Error("useWorktreeSelection must be used within a WorktreeSelectionProvider");return a}},48620:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(43084);function f(){return(0,d.jsx)(e.k,{})}},51472:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>p,generateMetadata:()=>n,viewport:()=>o});var d=c(75338),e=c(68071),f=c(22513),g=c(42531),h=c(10620),i=c(4986),j=c.n(i),k=c(68034),l=c.n(k),m=c(58315);async function n(){return{title:{default:"CommandMate",template:"%s | CommandMate"},description:(await (0,e.A)("common"))("meta.description"),appleWebApp:{capable:!0,title:"CommandMate",statusBarStyle:"default"}}}c(61135);let o={themeColor:[{media:"(prefers-color-scheme: light)",color:"#fafafb"},{media:"(prefers-color-scheme: dark)",color:"#0a0c12"}],viewportFit:"cover"};async function p({children:a}){let b=await (0,f.A)(),c=await (0,g.A)(),e=await (0,h.A)();return(0,d.jsx)("html",{lang:b,className:`${j().variable} ${l().variable}`,suppressHydrationWarning:!0,children:(0,d.jsx)("body",{className:"min-h-screen bg-background",children:(0,d.jsx)(m.AppProviders,{locale:b,messages:c,timeZone:e,authEnabled:!!process.env.CM_AUTH_TOKEN_HASH,children:a})})})}},51877:(a,b,c)=>{var d={"./en/auth.json":[43440,3440],"./ja/auth.json":[11162,1162]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=51877,a.exports=e},52130:(a,b,c)=>{Promise.resolve().then(c.bind(c,53523))},52761:(a,b,c)=>{"use strict";c.d(b,{Bo:()=>k,Hq:()=>i});var d=c(21124),e=c(38301),f=c(42378);let g={startTransition:a=>a()},h=(0,e.createContext)(null);function i(){let a=(0,f.useRouter)(),{startTransition:b}=(0,e.useContext)(h)??g;return(0,e.useMemo)(()=>({push:c=>b(()=>a.push(c)),replace:c=>b(()=>a.replace(c))}),[a,b])}function j({onCommit:a}){return(0,f.usePathname)(),(0,e.useRef)(!1),null}function k({children:a}){let b=(0,e.useRef)(null),c=(0,e.useCallback)(()=>{b.current?.()},[]),f=(0,e.useCallback)(a=>{var c;c=()=>new Promise(c=>{let d=!1,e=()=>{d||(d=!0,c())};b.current=e,a(),window.setTimeout(e,500)}),"undefined"==typeof document||"function"!=typeof document.startViewTransition?c():document.startViewTransition(c)},[]),g=(0,e.useMemo)(()=>({startTransition:f}),[f]);return(0,d.jsxs)(h.Provider,{value:g,children:[(0,d.jsx)(j,{onCommit:c}),a]})}},53237:(a,b,c)=>{"use strict";c.d(b,{V:()=>e});var d=c(38301);function e(a){let{key:b,defaultValue:c,validate:e,serialize:f=JSON.stringify,deserialize:g=JSON.parse}=a,h=(0,d.useRef)(c),i=(0,d.useRef)(e),j=(0,d.useRef)(f),k=(0,d.useRef)(g);h.current=c,i.current=e,j.current=f,k.current=g;let[l,m]=(0,d.useState)(!1),[n,o]=(0,d.useState)(c);(0,d.useCallback)(()=>h.current,[b]);let p=(0,d.useCallback)(a=>{},[b]);return{value:n,setValue:(0,d.useCallback)(a=>{o(b=>{let c="function"==typeof a?a(b):a;return p(c),c})},[p]),removeValue:(0,d.useCallback)(()=>{o(h.current)},[b]),isAvailable:l}}},53906:(a,b,c)=>{Promise.resolve().then(c.bind(c,5682))},54834:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,31603,23)),Promise.resolve().then(c.t.bind(c,68495,23)),Promise.resolve().then(c.t.bind(c,75170,23)),Promise.resolve().then(c.t.bind(c,77526,23)),Promise.resolve().then(c.t.bind(c,78922,23)),Promise.resolve().then(c.t.bind(c,29234,23)),Promise.resolve().then(c.t.bind(c,12263,23)),Promise.resolve().then(c.bind(c,82146))},57482:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/png",sizes:"192x192",url:(0,d.fillMetadataSegment)(".",await a.params,"icon2.png")+"?6e2321fdb8624653"}]},58315:(a,b,c)=>{"use strict";c.d(b,{AppProviders:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call AppProviders() from the server but AppProviders is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/components/providers/AppProviders.tsx","AppProviders")},58970:(a,b,c)=>{"use strict";c.d(b,{$B:()=>j,I2:()=>f,LK:()=>h,Ys:()=>i,pX:()=>d,s7:()=>e,tX:()=>g});let d=2e3,e=1500,f=2e3,g=150,h=100,i=200,j=100},60345:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/png",sizes:"96x96",url:(0,d.fillMetadataSegment)(".",await a.params,"icon1.png")+"?901e04bb11e9b7fd"}]},60887:(a,b,c)=>{var d={"./en/review.json":[83346,3346],"./ja/review.json":[49328,9328]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=60887,a.exports=e},61118:(a,b,c)=>{var d={"./en/common.json":[73543,3543],"./ja/common.json":[53945,3945]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=61118,a.exports=e},61135:()=>{},62081:(a,b,c)=>{var d={"./en/autoYes.json":[44248,4248],"./ja/autoYes.json":[92534,2534]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=62081,a.exports=e},63157:(a,b,c)=>{"use strict";c.d(b,{g7:()=>i,rC:()=>k,Fn:()=>j});var d=c(21124),e=c(38301),f=c(67619),g=c(47817);let h=(0,e.createContext)(null);function i({children:a}){let{worktrees:b,repositories:c,isLoading:i,error:j,refresh:k}=function(){let[a,b]=(0,e.useState)([]),[c,d]=(0,e.useState)([]),[g,h]=(0,e.useState)(!0),[i,j]=(0,e.useState)(null),k=(0,e.useRef)(null),l=(0,e.useRef)([]),m=(0,e.useRef)(null),{connected:n,subscribe:o,unsubscribe:p,addListener:q}=(0,f.xM)(),r=(0,e.useRef)(n);r.current=n;let s=(0,e.useCallback)(async()=>{try{j(null);let a=await fetch("/api/worktrees");if(!a.ok)throw Error(`Failed to fetch worktrees: ${a.status}`);let c=await a.json(),f=c.worktrees??[],g=c.repositories??[];(0,e.startTransition)(()=>{b(f),d(g)}),l.current=f}catch(a){j(a instanceof Error?a:Error(String(a)))}finally{h(!1)}},[]),t=(0,e.useCallback)(()=>l.current.some(a=>!0===a.isSessionRunning),[]),u=(0,e.useCallback)(()=>{let a=t();return r.current?a?2e4:6e4:a?5e3:3e4},[t]),v=(0,e.useCallback)(()=>{null!==k.current&&(clearInterval(k.current),k.current=null),m.current=null},[]);return(0,e.useCallback)(()=>{v();let a=u();m.current=a,k.current=setInterval(()=>{s()},a)},[u,s,v]),a.map(a=>a.id).sort().join(" "),{worktrees:a,repositories:c,isLoading:g,error:i,refresh:s}}(),l=(0,e.useMemo)(()=>({worktrees:b,repositories:c,isLoading:i,error:j,refresh:k}),[b,c,i,j,k]);return(0,d.jsx)(h.Provider,{value:l,children:(0,d.jsx)(g.H8,{externalWorktrees:b,externalRepositories:c,children:a})})}function j(){let a=(0,e.useContext)(h);if(null===a)throw Error("useWorktreesCacheContext must be used within a WorktreesCacheProvider");return a}function k(){return(0,e.useContext)(h)}},63474:(a,b,c)=>{"use strict";c.d(b,{dj:()=>w,tE:()=>v});var d=c(21124),e=c(38301),f=c(23312),g=c(20481),h=c(75219),i=c(91292),j=c(16945),k=c(71117),l=c(47089),m=c(11010),n=c(58970),o=c(6074);let p=3e3;function q({type:a,iconColor:b}){let c=`h-5 w-5 ${b}`;switch(a){case"success":return(0,d.jsx)(h.A,{className:c,"data-testid":"toast-icon-success"});case"error":return(0,d.jsx)(i.A,{className:c,"data-testid":"toast-icon-error"});case"warning":return(0,d.jsx)(j.A,{className:c,"data-testid":"toast-icon-warning"});default:return(0,d.jsx)(k.A,{className:c,"data-testid":"toast-icon-info"})}}function r({id:a,message:b,type:c,onClose:f,duration:h=p}){let i=(0,g.c)("common"),j=(0,e.useRef)(null),k=function(a){switch(a){case"success":return{bgColor:"bg-success-subtle",borderColor:"border-success-border",textColor:"text-success-foreground",iconColor:"text-success-foreground"};case"error":return{bgColor:"bg-danger-subtle",borderColor:"border-danger-border",textColor:"text-danger-foreground",iconColor:"text-danger-foreground"};case"warning":return{bgColor:"bg-warning-subtle",borderColor:"border-warning-border",textColor:"text-warning-foreground",iconColor:"text-warning-foreground"};default:return{bgColor:"bg-info-subtle",borderColor:"border-info-border",textColor:"text-info-foreground",iconColor:"text-info-foreground"}}}(c),[m,r]=(0,e.useState)(!0),{shouldRender:s,isExiting:t}=(0,o.O)(m,n.Ys);(0,e.useRef)(f).current=f;let u=(0,e.useCallback)(()=>{j.current&&clearTimeout(j.current),r(!1)},[]);return(0,d.jsxs)("div",{"data-testid":`toast-${a}`,role:"alert",className:`
2
- ${k.bgColor}
3
- ${k.borderColor}
4
- ${k.textColor}
1
+ exports.id=9123,exports.ids=[9123],exports.modules={762:(a,b,c)=>{Promise.resolve().then(c.bind(c,96908))},1483:(a,b,c)=>{var d={"./en/keyboardShortcuts.json":[53722,3722],"./ja/keyboardShortcuts.json":[88356,8356]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=1483,a.exports=e},4267:(a,b,c)=>{"use strict";c.d(b,{fJ:()=>d}),c(17252);let d=["claude","codex","antigravity"]},4558:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(43692),e=c(86802),f=c(25754);let g=(0,d.A)(async({requestLocale:a})=>{let b=await a;if(!(0,f.d9)(b)){let a=await (0,e.UL)(),c=await (0,e.b3)();b=(0,f.rv)(a.get(f.gB)?.value,c.get("accept-language"))}let[d,g,h,i,j,k,l,m,n,o,p,q,r,s,t]=await Promise.all([c(61118)(`./${b}/common.json`),c(90338)(`./${b}/worktree.json`),c(62081)(`./${b}/autoYes.json`),c(66125)(`./${b}/error.json`),c(72637)(`./${b}/prompt.json`),c(51877)(`./${b}/auth.json`),c(38898)(`./${b}/schedule.json`),c(80407)(`./${b}/commandPalette.json`),c(70288)(`./${b}/home.json`),c(60887)(`./${b}/review.json`),c(75567)(`./${b}/pwa.json`),c(99127)(`./${b}/notifications.json`),c(1483)(`./${b}/keyboardShortcuts.json`),c(80812)(`./${b}/externalApps.json`),c(18913)(`./${b}/skills.json`)]);return{locale:b,timeZone:"UTC",messages:{common:d.default,worktree:g.default,autoYes:h.default,error:i.default,prompt:j.default,auth:k.default,schedule:l.default,commandPalette:m.default,home:n.default,review:o.default,pwa:p.default,notifications:q.default,keyboardShortcuts:r.default,externalApps:s.default,skills:t.default}}})},5682:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/CommandMate/CommandMate/src/app/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/app/error.tsx","default")},5772:(a,b,c)=>{"use strict";c.d(b,{Ps:()=>k,W5:()=>j});var d=c(21124),e=c(38301),f=c(90076),g=c(12480);let h={size:g.r5,setSize:()=>{},isMobile:!1,factor:g.d8[g.r5].factor,isAvailable:!1},i=(0,e.createContext)(h);function j({children:a}){let{size:b,setSize:c,isAvailable:h}=(0,g.of)(),j=(0,f.a)(),k=(0,e.useMemo)(()=>({size:b,setSize:c,isMobile:j,factor:g.d8[b].factor,isAvailable:h}),[b,c,j,h]);return(0,d.jsx)(i.Provider,{value:k,children:a})}function k(){return(0,e.useContext)(i)}},6074:(a,b,c)=>{"use strict";c.d(b,{O:()=>e});var d=c(38301);function e(a,b){let[c,e]=(0,d.useState)(a?"open":"closed");return a&&"open"!==c?e("open"):a||"open"!==c||e("exiting"),{shouldRender:a||"closed"!==c,isExiting:!a&&"exiting"===c}}},11010:(a,b,c)=>{"use strict";c.d(b,{M:()=>d});let d={DROPDOWN:10,SIDEBAR:30,MODAL:50,MAXIMIZED_EDITOR:55,TOAST:60,POPOVER:65,CONTEXT_MENU:70}},12055:(a,b,c)=>{"use strict";c.d(b,{Oo:()=>e,ST:()=>d,zS:()=>f});let d="client_version",e="version_mismatch";function f(a){let b;try{b=JSON.parse(a)}catch{return null}if(!b||"object"!=typeof b)return null;let c=b;if("broadcast"===c.type){let a=c.data;return a&&"object"==typeof a?"string"!=typeof a.type?null:(void 0===a.worktreeId&&"string"==typeof c.worktreeId&&(a.worktreeId=c.worktreeId),a):null}return"string"==typeof c.type?c:null}},12480:(a,b,c)=>{"use strict";c.d(b,{Uf:()=>f,d8:()=>g,fM:()=>h,of:()=>j,r5:()=>e,rq:()=>i});var d=c(53237);let e="medium",f=["large","medium","small","xsmall"],g={large:{value:"large",rootFontSizePx:18,factor:1.125,terminalFontSize:16},medium:{value:"medium",rootFontSizePx:16,factor:1,terminalFontSize:14},small:{value:"small",rootFontSizePx:14,factor:.875,terminalFontSize:12},xsmall:{value:"xsmall",rootFontSizePx:12.5,factor:.78,terminalFontSize:11}};function h(a){return"string"==typeof a&&Object.prototype.hasOwnProperty.call(g,a)}function i(a){return g[a].terminalFontSize}function j(){let{value:a,setValue:b,isAvailable:c}=(0,d.V)({key:"mcbd-pc-display-size",defaultValue:e,validate:h});return{size:a,setSize:b,isAvailable:c}}},17252:(a,b,c)=>{"use strict";c.d(b,{Ab:()=>e,NL:()=>q,O6:()=>n,XH:()=>d,f_:()=>l,hR:()=>j,lu:()=>o,n6:()=>h,oo:()=>k,pQ:()=>f,sw:()=>m,vz:()=>p});let d=["claude","codex","gemini","vibe-local","opencode","copilot","antigravity"],e=10,f=50,g=/^[a-zA-Z0-9_-]+$/;function h(a){return"string"==typeof a&&a.length>0&&a.length<=64&&g.test(a)}let i={claude:"Claude",codex:"Codex",gemini:"Gemini","vibe-local":"Vibe Local",opencode:"OpenCode",copilot:"Copilot",antigravity:"Antigravity"};function j(a){return d.includes(a)}function k(a){return i[a]??a}function l(a,b="Assistant"){return a&&j(a)?k(a):b}function m(a){let b=a.alias;return"string"==typeof b&&b.trim().length>0?b:k(a.cliTool)}function n(a,b,c){let d=a.find(a=>a.id===b);return d?m(d):k(c)}function o(a){return a.map((a,b)=>({id:a,cliTool:a,alias:k(a),order:b}))}let p=128,q=2097152},17793:(a,b,c)=>{"use strict";c.d(b,{y:()=>h});var d=c(21124);c(38301);var e=c(35595);let f={xs:"h-3 w-3",sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6",xl:"h-8 w-8"},g={current:"",accent:"text-accent-600 dark:text-accent-400",muted:"text-muted-foreground"};function h({size:a="md",variant:b="current",className:c,...h}){return(0,d.jsxs)("svg",{className:(0,e.cn)("animate-spin",f[a],g[b],c),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","aria-hidden":"true",...h,children:[(0,d.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,d.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})}},18913:(a,b,c)=>{var d={"./en/skills.json":[55064,5064],"./ja/skills.json":[20022,22]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=18913,a.exports=e},19463:(a,b,c)=>{"use strict";c.d(b,{Kg:()=>f,Lv:()=>g});var d=c(38301),e=c(63157);function f(a){let b=0;for(let c of a)!0===c.isWaitingForResponse&&b++;return b}function g(){let a=(0,e.rC)(),b=a?.worktrees;return(0,d.useMemo)(()=>{let a=b?b.filter(a=>!0===a.isWaitingForResponse):[];return{count:a.length,worktrees:a}},[b])}},25754:(a,b,c)=>{"use strict";c.d(b,{Xn:()=>e,d9:()=>g,gB:()=>f,rv:()=>h});let d=["en","ja"],e="en",f="locale";function g(a){return"string"==typeof a&&d.includes(a)}function h(a,b){return g(a)?a:d.find(a=>(b??"").includes(a))??e}},26808:(a,b,c)=>{Promise.resolve().then(c.bind(c,58315))},32482:(a,b,c)=>{"use strict";c.d(b,{LV:()=>j,Si:()=>f,UZ:()=>h,Xn:()=>m,_s:()=>n,nO:()=>k,s6:()=>i});var d=c(89877);let e=["updatedAt","repositoryName","branchName","status","lastSent"],f=a=>e.includes(a),g={waiting:0,ready:1,running:2,generating:3,idle:4};function h(a){let b=new Set;for(let c of a)!1===c.visible&&b.add(c.path);return b}function i(a,b){return 0===b.size?a.slice():a.filter(a=>{let c=a.repositoryPath;return!c||!b.has(c)})}function j(a){let b=function(a){let b=5381;for(let c=0;c<a.length;c++)b=(b<<5)+b+a.charCodeAt(c)|0;return Math.abs(b)}(a)%360;return`hsl(${b}, 65%, 60%)`}function k(a,b){if(!a&&!b)return 0;if(!a)return 1;if(!b)return -1;let c=a instanceof Date?a.getTime():new Date(a).getTime();return(b instanceof Date?b.getTime():new Date(b).getTime())-c}function l(a){return"waiting"===(a.cliStatus&&Object.keys(a.cliStatus).length>0?(0,d.A7)(a.cliStatus):a.status)}function m(a,b,c){let d=[...a],e="status"!==b;return d.sort((a,d)=>{if(e){let b=Number(l(d))-Number(l(a));if(0!==b)return b}let f=0;switch(b){case"updatedAt":{let b=a=>a?a instanceof Date?a.getTime():new Date(a).getTime():0,c=b(a.lastActivity);f=b(d.lastActivity)-c;break}case"repositoryName":{let b=a.repositoryName.toLowerCase(),c=d.repositoryName.toLowerCase();f=b.localeCompare(c);break}case"branchName":{let b=a.name.toLowerCase(),c=d.name.toLowerCase();f=b.localeCompare(c);break}case"status":f=g[a.status]-g[d.status];break;case"lastSent":{let b=k(a.lastActivity,d.lastActivity);if(!a.lastActivity&&!d.lastActivity){f=0;break}if(!a.lastActivity)return 1;if(!d.lastActivity)return -1;f=b;break}default:f=0}return("updatedAt"===b||"lastSent"===b?"desc"===c:"asc"===c)?f:-f}),d}function n(a,b,c){let d=new Map;for(let b of a){let a=b.repositoryName;d.has(a)||d.set(a,[]),d.get(a).push(b)}return[...d.keys()].sort((a,b)=>a.toLowerCase().localeCompare(b.toLowerCase())).map(a=>({repositoryName:a,branches:m(d.get(a),b,c)}))}},35595:(a,b,c)=>{"use strict";c.d(b,{cn:()=>f});var d=c(43249),e=c(58829);function f(...a){return(0,e.QP)((0,d.$)(a))}},35914:(a,b,c)=>{"use strict";c.d(b,{oz:()=>d,tV:()=>e});function d(a){if(null==a||"object"!=typeof a)return!1;let{name:b,message:c}=a;return"ChunkLoadError"===b||"string"==typeof c&&(c.includes("Loading chunk")||c.includes("Failed to fetch dynamically imported module"))}function e(a){return"skipped"}},36536:(a,b,c)=>{Promise.resolve().then(c.bind(c,80776))},38898:(a,b,c)=>{var d={"./en/schedule.json":[95571,5571],"./ja/schedule.json":[26285,6285]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=38898,a.exports=e},39800:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(21124),e=c(38301),f=c(35914);let g={en:{chunkTitle:"Updating to the latest version",chunkDescription:"A newer version of CommandMate is available. Reloading to get the latest update…",genericTitle:"Something went wrong",genericDescription:"An unexpected error occurred. Please reload the page.",reload:"Reload"},ja:{chunkTitle:"最新バージョンに更新しています",chunkDescription:"CommandMate の新しいバージョンが利用可能です。最新の状態にするため再読み込みします…",genericTitle:"問題が発生しました",genericDescription:"予期しないエラーが発生しました。ページを再読み込みしてください。",reload:"再読み込み"}};function h({error:a}){let b=(0,f.oz)(a),[c,h]=(0,e.useState)("en"),i=g[c];return(0,d.jsx)("html",{lang:c,style:{colorScheme:"light dark"},children:(0,d.jsxs)("body",{style:{margin:0,minHeight:"100vh",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"1.5rem",padding:"1.5rem",textAlign:"center",background:"Canvas",color:"CanvasText",fontFamily:'system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif'},children:[(0,d.jsxs)("div",{style:{maxWidth:"24rem"},children:[(0,d.jsx)("h1",{style:{fontSize:"1.5rem",fontWeight:600,margin:"0 0 0.5rem"},children:b?i.chunkTitle:i.genericTitle}),(0,d.jsx)("p",{style:{fontSize:"0.875rem",opacity:.75,margin:0},children:b?i.chunkDescription:i.genericDescription})]}),(0,d.jsx)("button",{type:"button",onClick:()=>window.location.reload(),style:{appearance:"none",cursor:"pointer",borderRadius:"0.5rem",border:"1px solid currentColor",background:"transparent",color:"inherit",padding:"0.5rem 1rem",fontSize:"0.875rem",fontWeight:500},children:i.reload})]})})}},43084:(a,b,c)=>{"use strict";c.d(b,{k:()=>g});var d=c(75338),e=c(94596);let f=["[animation-delay:0ms]","[animation-delay:150ms]","[animation-delay:300ms]"];function g(){let a=(0,e.A)("common");return(0,d.jsx)("div",{className:"flex min-h-screen w-full items-center justify-center p-8",role:"status","aria-label":a("loadingPage"),"data-testid":"route-loading",children:(0,d.jsx)("div",{className:"flex items-center gap-2","aria-hidden":"true",children:f.map(a=>(0,d.jsx)("span",{className:`h-2.5 w-2.5 rounded-full bg-muted-foreground animate-pulse ${a}`},a))})})}},44164:(a,b,c)=>{Promise.resolve().then(c.bind(c,64182))},47817:(a,b,c)=>{"use strict";c.d(b,{$f:()=>k,H8:()=>j});var d=c(21124),e=c(38301),f=c(78352);let g=(0,e.createContext)(null),h={selectedWorktreeId:null,worktrees:[],repositories:[],selectedWorktreeDetail:null,isLoading:!0,isLoadingDetail:!1,error:null};function i(a,b){switch(b.type){case"SET_WORKTREES":return{...a,worktrees:b.worktrees,isLoading:!1};case"SET_REPOSITORIES":return{...a,repositories:b.repositories};case"SELECT_WORKTREE":{let c=a.worktrees.find(a=>a.id===b.id)??null;return{...a,selectedWorktreeId:b.id,selectedWorktreeDetail:c??a.selectedWorktreeDetail,isLoadingDetail:null===c}}case"SET_WORKTREE_DETAIL":return{...a,selectedWorktreeDetail:b.detail};case"SET_LOADING":return{...a,isLoading:b.isLoading};case"SET_LOADING_DETAIL":return{...a,isLoadingDetail:b.isLoadingDetail};case"SET_ERROR":return{...a,error:b.error,isLoading:!1};default:return a}}function j({children:a,externalWorktrees:b,externalRepositories:c}){let j=void 0!==b,[k,l]=(0,e.useReducer)(i,h),m=(0,e.useCallback)(async()=>{if(!j){l({type:"SET_LOADING",isLoading:!0}),l({type:"SET_ERROR",error:null});try{let a=await f.y.getAll();l({type:"SET_WORKTREES",worktrees:a.worktrees}),l({type:"SET_REPOSITORIES",repositories:a.repositories??[]})}catch(a){l({type:"SET_ERROR",error:a instanceof Error?a.message:"Failed to fetch worktrees"})}}},[j]),n=(0,e.useCallback)(async a=>{l({type:"SELECT_WORKTREE",id:a}),l({type:"SET_ERROR",error:null});try{f.y.markAsViewed(a).catch(a=>{console.warn("[WorktreeSelectionContext] Failed to mark as viewed:",a)});let b=await f.y.getById(a);l({type:"SET_WORKTREE_DETAIL",detail:b})}catch(a){l({type:"SET_ERROR",error:a instanceof Error?a.message:"Failed to fetch worktree detail"})}finally{l({type:"SET_LOADING_DETAIL",isLoadingDetail:!1})}},[]),o=(0,e.useCallback)(async()=>{await m()},[m]),p={selectedWorktreeId:k.selectedWorktreeId,worktrees:k.worktrees,repositories:k.repositories,selectedWorktreeDetail:k.selectedWorktreeDetail,isLoadingDetail:k.isLoadingDetail,error:k.error,selectWorktree:n,refreshWorktrees:o};return(0,d.jsx)(g.Provider,{value:p,children:a})}function k(){let a=(0,e.useContext)(g);if(!a)throw Error("useWorktreeSelection must be used within a WorktreeSelectionProvider");return a}},48620:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(43084);function f(){return(0,d.jsx)(e.k,{})}},51472:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>p,generateMetadata:()=>n,viewport:()=>o});var d=c(75338),e=c(68071),f=c(22513),g=c(42531),h=c(10620),i=c(4986),j=c.n(i),k=c(68034),l=c.n(k),m=c(58315);async function n(){return{title:{default:"CommandMate",template:"%s | CommandMate"},description:(await (0,e.A)("common"))("meta.description"),appleWebApp:{capable:!0,title:"CommandMate",statusBarStyle:"default"}}}c(61135);let o={themeColor:[{media:"(prefers-color-scheme: light)",color:"#fafafb"},{media:"(prefers-color-scheme: dark)",color:"#0a0c12"}],viewportFit:"cover"};async function p({children:a}){let b=await (0,f.A)(),c=await (0,g.A)(),e=await (0,h.A)();return(0,d.jsx)("html",{lang:b,className:`${j().variable} ${l().variable}`,suppressHydrationWarning:!0,children:(0,d.jsx)("body",{className:"min-h-screen bg-background",children:(0,d.jsx)(m.AppProviders,{locale:b,messages:c,timeZone:e,authEnabled:!!process.env.CM_AUTH_TOKEN_HASH,children:a})})})}},51877:(a,b,c)=>{var d={"./en/auth.json":[43440,3440],"./ja/auth.json":[11162,1162]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=51877,a.exports=e},52130:(a,b,c)=>{Promise.resolve().then(c.bind(c,53523))},52761:(a,b,c)=>{"use strict";c.d(b,{Bo:()=>k,Hq:()=>i});var d=c(21124),e=c(38301),f=c(42378);let g={startTransition:a=>a()},h=(0,e.createContext)(null);function i(){let a=(0,f.useRouter)(),{startTransition:b}=(0,e.useContext)(h)??g;return(0,e.useMemo)(()=>({push:c=>b(()=>a.push(c)),replace:c=>b(()=>a.replace(c))}),[a,b])}function j({onCommit:a}){return(0,f.usePathname)(),(0,e.useRef)(!1),null}function k({children:a}){let b=(0,e.useRef)(null),c=(0,e.useCallback)(()=>{b.current?.()},[]),f=(0,e.useCallback)(a=>{var c;c=()=>new Promise(c=>{let d=!1,e=()=>{d||(d=!0,c())};b.current=e,a(),window.setTimeout(e,500)}),"undefined"==typeof document||"function"!=typeof document.startViewTransition?c():document.startViewTransition(c)},[]),g=(0,e.useMemo)(()=>({startTransition:f}),[f]);return(0,d.jsxs)(h.Provider,{value:g,children:[(0,d.jsx)(j,{onCommit:c}),a]})}},53237:(a,b,c)=>{"use strict";c.d(b,{V:()=>e});var d=c(38301);function e(a){let{key:b,defaultValue:c,validate:e,serialize:f=JSON.stringify,deserialize:g=JSON.parse}=a,h=(0,d.useRef)(c),i=(0,d.useRef)(e),j=(0,d.useRef)(f),k=(0,d.useRef)(g);h.current=c,i.current=e,j.current=f,k.current=g;let[l,m]=(0,d.useState)(!1),[n,o]=(0,d.useState)(c);(0,d.useCallback)(()=>h.current,[b]);let p=(0,d.useCallback)(a=>{},[b]);return{value:n,setValue:(0,d.useCallback)(a=>{o(b=>{let c="function"==typeof a?a(b):a;return p(c),c})},[p]),removeValue:(0,d.useCallback)(()=>{o(h.current)},[b]),isAvailable:l}}},53906:(a,b,c)=>{Promise.resolve().then(c.bind(c,5682))},54834:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,31603,23)),Promise.resolve().then(c.t.bind(c,68495,23)),Promise.resolve().then(c.t.bind(c,75170,23)),Promise.resolve().then(c.t.bind(c,77526,23)),Promise.resolve().then(c.t.bind(c,78922,23)),Promise.resolve().then(c.t.bind(c,29234,23)),Promise.resolve().then(c.t.bind(c,12263,23)),Promise.resolve().then(c.bind(c,82146))},57482:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/png",sizes:"192x192",url:(0,d.fillMetadataSegment)(".",await a.params,"icon2.png")+"?6e2321fdb8624653"}]},58315:(a,b,c)=>{"use strict";c.d(b,{AppProviders:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call AppProviders() from the server but AppProviders is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/components/providers/AppProviders.tsx","AppProviders")},58970:(a,b,c)=>{"use strict";c.d(b,{$B:()=>j,I2:()=>f,LK:()=>h,Ys:()=>i,pX:()=>d,s7:()=>e,tX:()=>g});let d=2e3,e=1500,f=2e3,g=150,h=100,i=200,j=100},60345:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/png",sizes:"96x96",url:(0,d.fillMetadataSegment)(".",await a.params,"icon1.png")+"?901e04bb11e9b7fd"}]},60887:(a,b,c)=>{var d={"./en/review.json":[83346,3346],"./ja/review.json":[49328,9328]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=60887,a.exports=e},61118:(a,b,c)=>{var d={"./en/common.json":[73543,3543],"./ja/common.json":[53945,3945]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=61118,a.exports=e},61135:()=>{},62081:(a,b,c)=>{var d={"./en/autoYes.json":[44248,4248],"./ja/autoYes.json":[92534,2534]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=62081,a.exports=e},63157:(a,b,c)=>{"use strict";c.d(b,{g7:()=>i,rC:()=>k,Fn:()=>j});var d=c(21124),e=c(38301),f=c(67619),g=c(47817);let h=(0,e.createContext)(null);function i({children:a}){let{worktrees:b,repositories:c,isLoading:i,error:j,refresh:k}=function(){let[a,b]=(0,e.useState)([]),[c,d]=(0,e.useState)([]),[g,h]=(0,e.useState)(!0),[i,j]=(0,e.useState)(null),k=(0,e.useRef)(null),l=(0,e.useRef)([]),m=(0,e.useRef)(null),{connected:n,subscribe:o,unsubscribe:p,addListener:q}=(0,f.xM)(),r=(0,e.useRef)(n);r.current=n;let s=(0,e.useCallback)(async()=>{try{j(null);let a=await fetch("/api/worktrees");if(!a.ok)throw Error(`Failed to fetch worktrees: ${a.status}`);let c=await a.json(),f=c.worktrees??[],g=c.repositories??[];(0,e.startTransition)(()=>{b(f),d(g)}),l.current=f}catch(a){j(a instanceof Error?a:Error(String(a)))}finally{h(!1)}},[]),t=(0,e.useCallback)(()=>l.current.some(a=>!0===a.isSessionRunning),[]),u=(0,e.useCallback)(()=>{let a=t();return r.current?a?2e4:6e4:a?5e3:3e4},[t]),v=(0,e.useCallback)(()=>{null!==k.current&&(clearInterval(k.current),k.current=null),m.current=null},[]);return(0,e.useCallback)(()=>{v();let a=u();m.current=a,k.current=setInterval(()=>{s()},a)},[u,s,v]),a.map(a=>a.id).sort().join(" "),{worktrees:a,repositories:c,isLoading:g,error:i,refresh:s}}(),l=(0,e.useMemo)(()=>({worktrees:b,repositories:c,isLoading:i,error:j,refresh:k}),[b,c,i,j,k]);return(0,d.jsx)(h.Provider,{value:l,children:(0,d.jsx)(g.H8,{externalWorktrees:b,externalRepositories:c,children:a})})}function j(){let a=(0,e.useContext)(h);if(null===a)throw Error("useWorktreesCacheContext must be used within a WorktreesCacheProvider");return a}function k(){return(0,e.useContext)(h)}},63474:(a,b,c)=>{"use strict";c.d(b,{dj:()=>w,tE:()=>v});var d=c(21124),e=c(38301),f=c(23312),g=c(20481),h=c(75219),i=c(91292),j=c(16945),k=c(71117),l=c(47089),m=c(11010),n=c(58970),o=c(6074);let p=3e3;function q({type:a,iconColor:b}){let c=`h-5 w-5 ${b}`;switch(a){case"success":return(0,d.jsx)(h.A,{className:c,"data-testid":"toast-icon-success"});case"error":return(0,d.jsx)(i.A,{className:c,"data-testid":"toast-icon-error"});case"warning":return(0,d.jsx)(j.A,{className:c,"data-testid":"toast-icon-warning"});default:return(0,d.jsx)(k.A,{className:c,"data-testid":"toast-icon-info"})}}function r({id:a,message:b,type:c,onClose:f,duration:h=p,onClick:i}){let j=(0,g.c)("common"),k=(0,e.useRef)(null),m=function(a){switch(a){case"success":return{bgColor:"bg-success-subtle",borderColor:"border-success-border",textColor:"text-success-foreground",iconColor:"text-success-foreground"};case"error":return{bgColor:"bg-danger-subtle",borderColor:"border-danger-border",textColor:"text-danger-foreground",iconColor:"text-danger-foreground"};case"warning":return{bgColor:"bg-warning-subtle",borderColor:"border-warning-border",textColor:"text-warning-foreground",iconColor:"text-warning-foreground"};default:return{bgColor:"bg-info-subtle",borderColor:"border-info-border",textColor:"text-info-foreground",iconColor:"text-info-foreground"}}}(c),[r,s]=(0,e.useState)(!0),{shouldRender:t,isExiting:u}=(0,o.O)(r,n.Ys);(0,e.useRef)(f).current=f;let v=(0,e.useCallback)(()=>{k.current&&clearTimeout(k.current),s(!1)},[]);return(0,d.jsxs)("div",{"data-testid":`toast-${a}`,role:"alert",className:`
2
+ ${m.bgColor}
3
+ ${m.borderColor}
4
+ ${m.textColor}
5
5
  border rounded-lg shadow-lg p-4 min-w-[300px] max-w-[400px]
6
6
  flex items-start gap-3
7
- ${t?"animate-out fade-out-0 slide-out-to-right-full duration-200 fill-mode-forwards pointer-events-none":"animate-slide-in"}
8
- `,children:[(0,d.jsx)(q,{type:c,iconColor:k.iconColor}),(0,d.jsx)("p",{className:"flex-1 text-sm font-medium",children:b}),(0,d.jsx)("button",{"data-testid":"toast-close-button",onClick:u,"aria-label":i("closeNotification"),className:`
9
- ${k.textColor}
7
+ ${u?"animate-out fade-out-0 slide-out-to-right-full duration-200 fill-mode-forwards pointer-events-none":"animate-slide-in"}
8
+ `,children:[(0,d.jsx)(q,{type:c,iconColor:m.iconColor}),i?(0,d.jsx)("button",{type:"button","data-testid":"toast-action-button",onClick:()=>{i(),v()},className:"flex-1 text-left text-sm font-medium underline-offset-2 hover:underline focus:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm",children:b}):(0,d.jsx)("p",{className:"flex-1 text-sm font-medium",children:b}),(0,d.jsx)("button",{"data-testid":"toast-close-button",onClick:v,"aria-label":j("closeNotification"),className:`
9
+ ${m.textColor}
10
10
  hover:opacity-70
11
11
  focus:outline-none focus:ring-2 focus:ring-offset-2
12
12
  transition-opacity
13
- `,children:(0,d.jsx)(l.A,{className:"h-4 w-4"})})]})}function s({toasts:a,onClose:b}){let[c,g]=(0,e.useState)(!1),h=(0,d.jsx)("div",{"data-testid":"toast-container","aria-live":"polite",className:"fixed bottom-4 right-4 flex flex-col gap-2",style:{zIndex:m.M.TOAST},children:a.map(a=>(0,d.jsx)(r,{id:a.id,message:a.message,type:a.type,onClose:b,duration:a.duration},a.id))});return c?(0,f.createPortal)(h,document.body):null}function t(){let[a,b]=(0,e.useState)([]),c=(0,e.useRef)(0),d=(0,e.useCallback)((a,d="info",e=p)=>{let f=`toast-${++c.current}-${Date.now()}`,g={id:f,message:a,type:d,duration:e};return b(a=>[...a,g]),f},[]),f=(0,e.useCallback)(a=>{b(b=>b.filter(b=>b.id!==a))},[]),g=(0,e.useCallback)(()=>{b([])},[]);return(0,e.useMemo)(()=>({toasts:a,showToast:d,removeToast:f,clearToasts:g}),[a,d,f,g])}let u=(0,e.createContext)(null);function v({children:a}){let b=t();return(0,d.jsxs)(u.Provider,{value:b,children:[a,(0,d.jsx)(s,{toasts:b.toasts,onClose:b.removeToast})]})}function w(){let a=(0,e.useContext)(u),b=t();return a??b}},64182:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/CommandMate/CommandMate/src/app/global-error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/app/global-error.tsx","default")},64632:(a,b,c)=>{"use strict";c.d(b,{C:()=>h,E:()=>g});var d=c(21124),e=c(38301);let f=(0,e.createContext)({open:!1,setOpen:()=>{},toggle:()=>{}});function g({children:a}){let[b,c]=(0,e.useState)(!1),g=(0,e.useCallback)(()=>c(a=>!a),[]),h=(0,e.useMemo)(()=>({open:b,setOpen:c,toggle:g}),[b,g]);return(0,d.jsx)(f.Provider,{value:h,children:a})}function h(){return(0,e.useContext)(f)}},66125:(a,b,c)=>{var d={"./en/error.json":[22980,2980],"./ja/error.json":[10450,450]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=66125,a.exports=e},67619:(a,b,c)=>{"use strict";c.d(b,{tS:()=>i,xM:()=>j,T3:()=>k});var d=c(21124),e=c(38301);c(12055);let f=()=>{},g={status:"disconnected",connected:!1,subscribe:f,unsubscribe:f,addListener:()=>f},h=(0,e.createContext)(null);function i({children:a,enabled:b=!0}){let c=(0,e.useRef)(new Set),f=(0,e.useRef)(new Map),{status:g,subscribe:i,unsubscribe:j}=function(a={}){let{onEvent:b,onStatusChange:c,autoReconnect:d=!0,reconnectBaseDelay:f=1e3,reconnectMaxDelay:g=3e4,enabled:h=!0}=a,[i,j]=(0,e.useState)("disconnected"),k=(0,e.useRef)(null),l=(0,e.useRef)(null);(0,e.useRef)(0);let m=(0,e.useRef)(new Set),n=(0,e.useRef)(!1);(0,e.useRef)(b).current=b;let o=(0,e.useRef)(c);o.current=c;let p=(0,e.useCallback)(a=>{j(a),o.current?.(a)},[]),q=(0,e.useCallback)(()=>{null!==l.current&&(clearTimeout(l.current),l.current=null)},[]);(0,e.useCallback)(()=>{},[h,d,f,g,p,q]),(0,e.useCallback)(()=>{if(q(),n.current=!0,k.current){try{k.current.close(1e3,"Client disconnect")}catch{}k.current=null}},[q]);let r=(0,e.useCallback)(a=>{let b=k.current,c="undefined"!=typeof globalThis&&"function"==typeof globalThis.WebSocket?globalThis.WebSocket:null;if(b&&c&&b.readyState===c.OPEN)try{b.send(JSON.stringify(a))}catch{}},[]);return{status:i,subscribe:(0,e.useCallback)(a=>{m.current.has(a)||(m.current.add(a),r({type:"subscribe",worktreeId:a}))},[r]),unsubscribe:(0,e.useCallback)(a=>{m.current.has(a)&&(m.current.delete(a),r({type:"unsubscribe",worktreeId:a}))},[r]),send:r}}({enabled:b,onEvent:(0,e.useCallback)(a=>{c.current.forEach(b=>{try{b(a)}catch{}})},[])}),k=(0,e.useCallback)(a=>{let b=f.current,c=b.get(a)??0;b.set(a,c+1),0===c&&i(a)},[i]),l=(0,e.useCallback)(a=>{let b=f.current,c=b.get(a)??0;c<=1?(b.delete(a),j(a)):b.set(a,c-1)},[j]),m=(0,e.useCallback)(a=>(c.current.add(a),()=>{c.current.delete(a)}),[]),n=(0,e.useMemo)(()=>({status:g,connected:"connected"===g,subscribe:k,unsubscribe:l,addListener:m}),[g,k,l,m]);return(0,d.jsx)(h.Provider,{value:n,children:a})}function j(){return(0,e.useContext)(h)??g}function k(a){let{addListener:b}=j();(0,e.useRef)(a).current=a}},68132:(a,b,c)=>{Promise.resolve().then(c.bind(c,39800))},70288:(a,b,c)=>{var d={"./en/home.json":[41825,1825],"./ja/home.json":[26159,6159]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=70288,a.exports=e},72637:(a,b,c)=>{var d={"./en/prompt.json":[72816,2816],"./ja/prompt.json":[80066,7685]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=72637,a.exports=e},75567:(a,b,c)=>{var d={"./en/pwa.json":[51262,1262],"./ja/pwa.json":[46072,6072]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=75567,a.exports=e},78162:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/png",sizes:"32x32",url:(0,d.fillMetadataSegment)(".",await a.params,"icon.png")+"?eeae29d23f3aae17"}]},78352:(a,b,c)=>{"use strict";c.d(b,{$T:()=>j,GQ:()=>l,Rx:()=>h,gC:()=>i,hD:()=>d,hS:()=>k,y:()=>g});class d extends Error{constructor(a,b,c){super(a),this.status=b,this.data=c,this.name="ApiError"}}async function e(a,b,c){if(!(a.headers.get("content-type")||"").includes("application/json"))return b;try{return await a.json()}catch{return b}}async function f(a,b){try{let c=new Headers(b?.headers);c.set("Content-Type","application/json");let f=await fetch(a,{...b,headers:c}),g=f.headers.get("content-type")||"";if(f.redirected&&f.url.includes("/login"))throw new d("Authentication required",401);if(!f.ok){let a=await e(f,{},"error-body");throw new d(a.error||`HTTP error ${f.status}`,f.status,a)}if(!g.includes("application/json"))throw new d("Unexpected response format",f.status);return f.json()}catch(a){if(a instanceof d)throw a;throw new d(a instanceof Error?a.message:"Unknown error",0,a)}}let g={getAll:async()=>f("/api/worktrees"),getById:async a=>f(`/api/worktrees/${a}`),updateDescription:async(a,b)=>f(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({description:b})}),updateLink:async(a,b)=>f(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({link:b})}),toggleFavorite:async(a,b)=>f(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({favorite:b})}),updateStatus:async(a,b)=>f(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({status:b})}),updateCliTool:async(a,b)=>f(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({cliToolId:b})}),markAsViewed:async a=>f(`/api/worktrees/${a}/viewed`,{method:"PATCH"}),async getMessages(a,b,c,d){let e=new URLSearchParams;return b&&e.append("cliTool",b),c&&e.append("includeArchived","true"),"number"==typeof d&&Number.isFinite(d)&&e.append("limit",String(d)),f(`/api/worktrees/${a}/messages${e.toString()?`?${e.toString()}`:""}`)},async sendMessage(a,b,c){let d={content:b};return c?.cliToolId&&(d.cliToolId=c.cliToolId),c?.instanceId&&(d.instanceId=c.instanceId),c?.imagePath&&(d.imagePath=c.imagePath),f(`/api/worktrees/${a}/send`,{method:"POST",body:JSON.stringify(d)})},async uploadImageFile(a,b){let c=Date.now(),d=`${c}-${b.name}`,f=".commandmate/attachments",g=new FormData;g.append("file",new File([b],d,{type:b.type}));let h=await fetch(`/api/worktrees/${a}/upload/${f}`,{method:"POST",body:g});if(!h.ok){let a=await e(h,{},"error-body");throw Error(a?.error?.message||`Upload failed (HTTP ${h.status})`)}return{path:(await e(h,{},"response-body")).path||`${f}/${d}`}},getLogs:async a=>f(`/api/worktrees/${a}/logs`),async getLogFile(a,b,c){let d=c?.sanitize?"?sanitize=true":"";return f(`/api/worktrees/${a}/logs/${b}${d}`)},async killSession(a,b,c){let d=new URLSearchParams;b&&d.set("cliTool",b),c&&d.set("instance",c);let e=d.toString();return f(`/api/worktrees/${a}/kill-session${e?`?${e}`:""}`,{method:"POST"})}},h={scan:async a=>f("/api/repositories/scan",{method:"POST",body:JSON.stringify({repositoryPath:a})}),sync:async()=>f("/api/repositories/sync",{method:"POST"}),delete:async a=>f("/api/repositories",{method:"DELETE",body:JSON.stringify({repositoryPath:a})}),clone:async(a,b)=>f("/api/repositories/clone",{method:"POST",body:JSON.stringify({cloneUrl:a,fork:b?.fork??!1})}),getCloneStatus:async a=>f(`/api/repositories/clone/${a}`),getExcluded:async()=>f("/api/repositories/excluded"),restore:async a=>f("/api/repositories/restore",{method:"PUT",body:JSON.stringify({repositoryPath:a})}),list:async()=>f("/api/repositories"),updateDisplayName:async(a,b)=>f(`/api/repositories/${encodeURIComponent(a)}`,{method:"PUT",body:JSON.stringify({displayName:b})}),updateVisibility:async(a,b)=>f(`/api/repositories/${encodeURIComponent(a)}`,{method:"PUT",body:JSON.stringify({visible:b})}),updateEnabled:async(a,b)=>f(`/api/repositories/${encodeURIComponent(a)}`,{method:"PUT",body:JSON.stringify({enabled:b})}),validatePath:async a=>f("/api/repositories/validate-path",{method:"POST",body:JSON.stringify({repositoryPath:a})})},i={async browse(a){let b=a?`?path=${encodeURIComponent(a)}`:"";return f(`/api/fs/browse${b}`)},addRecentPath:async a=>f("/api/fs/recent-paths",{method:"POST",body:JSON.stringify({path:a})})},j={getAll:async a=>(await f(`/api/worktrees/${a}/memos`)).memos,create:async(a,b)=>(await f(`/api/worktrees/${a}/memos`,{method:"POST",body:JSON.stringify(b||{})})).memo,update:async(a,b,c)=>(await f(`/api/worktrees/${a}/memos/${b}`,{method:"PUT",body:JSON.stringify(c)})).memo,delete:async(a,b)=>f(`/api/worktrees/${a}/memos/${b}`,{method:"DELETE"}),async reorder(a,b){await f(`/api/worktrees/${a}/memos`,{method:"PATCH",body:JSON.stringify({memoIds:b})})}};function k(a){return a instanceof d||a instanceof Error?a.message:"An unknown error occurred"}let l={checkForUpdate:async()=>f("/api/app/update-check",{method:"GET"}),startUpdate:async()=>f("/api/app/update",{method:"POST"}),async ping(){try{return(await fetch("/api/auth/status",{cache:"no-store"})).ok}catch{return!1}}}},79782:(a,b,c)=>{"use strict";c.d(b,{SC:()=>m,TM:()=>i,aF:()=>k});var d=c(21124),e=c(38301),f=c(20481),g=c(98033),h=c(94260);function i({isOpen:a,title:b,description:c,confirmLabel:e,cancelLabel:i,variant:j="default",onConfirm:k,onCancel:l}){let m=(0,f.c)("common"),n="danger"===j;return(0,d.jsx)(g.a,{isOpen:a,onClose:l,title:b??m("confirmDialog.title"),size:"sm",showCloseButton:!1,children:(0,d.jsxs)("div",{className:"space-y-4","data-testid":"confirm-dialog",children:[(0,d.jsx)("p",{className:"text-sm text-foreground whitespace-pre-line",children:c}),(0,d.jsxs)("div",{className:"flex justify-end gap-3",children:[(0,d.jsx)(h.$,{type:"button",variant:"secondary",size:"sm",autoFocus:n,onClick:l,"data-testid":"confirm-dialog-cancel",children:i??m("cancel")}),(0,d.jsx)(h.$,{type:"button",variant:n?"danger":"primary",size:"sm",autoFocus:!n,onClick:k,"data-testid":"confirm-dialog-confirm",children:e??m("confirmDialog.confirm")})]})]})})}let j=(0,e.createContext)(null);function k({children:a}){let[b,c]=(0,e.useState)(null),f=(0,e.useRef)(null),g=(0,e.useRef)(null),h=b?.options??g.current,k=(0,e.useCallback)(a=>new Promise(b=>{f.current=document.activeElement instanceof HTMLElement?document.activeElement:null,c(c=>(c?.resolve(!1),{options:a,resolve:b}))}),[]),l=(0,e.useCallback)(a=>{c(b=>(b?.resolve(a),null)),f.current?.focus(),f.current=null},[]);return(0,d.jsxs)(j.Provider,{value:k,children:[a,(0,d.jsx)(i,{isOpen:null!==b,title:h?.title,description:h?.description??"",confirmLabel:h?.confirmLabel,cancelLabel:h?.cancelLabel,variant:h?.variant,onConfirm:()=>l(!0),onCancel:()=>l(!1)})]})}let l=async()=>!1;function m(){return(0,e.useContext)(j)??l}},80407:(a,b,c)=>{var d={"./en/commandPalette.json":[28098,8098],"./ja/commandPalette.json":[12560,2560]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=80407,a.exports=e},80776:(a,b,c)=>{"use strict";c.d(b,{AppProviders:()=>v});var d=c(21124),e=c(37397),f=c(45523),g=c(81092),h=c(84342),i=c(5772),j=c(64632),k=c(89184),l=c(63157),m=c(52761),n=c(67619),o=c(79782),p=c(63474),q=c(38301),r=c(20481),s=c(25345),t=c(11010);function u(){let a=(0,r.c)("pwa"),[b,c]=(0,q.useState)(null);return((0,q.useRef)(!1),b)?(0,d.jsx)("div",{role:"status","aria-live":"polite",className:"fixed inset-x-0 bottom-0 flex justify-center px-4 pb-safe",style:{zIndex:t.M.TOAST},children:(0,d.jsxs)("div",{className:"mb-4 flex items-center gap-3 rounded-lg border border-border bg-surface px-4 py-3 shadow-lg",children:[(0,d.jsx)("span",{className:"text-sm font-medium text-foreground",children:a("update.available")}),(0,d.jsxs)("button",{type:"button",onClick:()=>{b.postMessage({type:"SKIP_WAITING"})},className:"inline-flex items-center gap-1.5 rounded-md bg-accent-600 px-3 py-1.5 text-sm font-medium text-white transition-colors hover:bg-accent-700 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background dark:bg-accent-500 dark:hover:bg-accent-600",children:[(0,d.jsx)(s.A,{className:"h-4 w-4"}),a("update.reload")]})]})}):null}function v({children:a,locale:b,messages:c,timeZone:q,authEnabled:r=!1}){return(0,d.jsx)(e.default,{locale:b,messages:c,timeZone:q,children:(0,d.jsx)(p.tE,{children:(0,d.jsx)(f.N,{attribute:"class",defaultTheme:"system",enableSystem:!0,children:(0,d.jsx)(h.O,{authEnabled:r,children:(0,d.jsx)(i.W5,{children:(0,d.jsx)(g.GB,{children:(0,d.jsx)(n.tS,{children:(0,d.jsx)(l.g7,{children:(0,d.jsx)(j.E,{children:(0,d.jsx)(k.S,{children:(0,d.jsxs)(o.aF,{children:[(0,d.jsx)(m.Bo,{children:a}),(0,d.jsx)(u,{})]})})})})})})})})})})})}},80812:(a,b,c)=>{var d={"./en/externalApps.json":[37941,7941],"./ja/externalApps.json":[99211,9211]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=80812,a.exports=e},81092:(a,b,c)=>{"use strict";c.d(b,{GB:()=>j,VF:()=>k});var d=c(21124),e=c(38301),f=c(32482);let g="updatedAt",h=(0,e.createContext)(null);function i(a,b){switch(b.type){case"TOGGLE":return{...a,isOpen:!a.isOpen};case"SET_WIDTH":return{...a,width:b.width};case"OPEN_MOBILE_DRAWER":return{...a,isMobileDrawerOpen:!0};case"CLOSE_MOBILE_DRAWER":return{...a,isMobileDrawerOpen:!1};case"SET_SORT_KEY":return{...a,sortKey:b.sortKey};case"SET_SORT_DIRECTION":return{...a,sortDirection:b.sortDirection};case"LOAD_SORT_SETTINGS":return{...a,sortKey:b.sortKey,sortDirection:b.sortDirection};case"SET_VIEW_MODE":return{...a,viewMode:b.viewMode};default:return a}}function j({children:a,initialOpen:b=!0,initialWidth:c=224}){let[j,k]=(0,e.useReducer)(i,{isOpen:b,width:c,isMobileDrawerOpen:!1,sortKey:g,sortDirection:"desc",viewMode:"grouped"});j.sortKey,j.sortDirection,(0,e.useRef)(!0),j.viewMode,(0,e.useRef)(!0),j.width,(0,e.useRef)(!0);let l=(0,e.useCallback)(()=>{k({type:"TOGGLE"})},[]),m=(0,e.useCallback)(a=>{k({type:"SET_WIDTH",width:a})},[]),n=(0,e.useCallback)(()=>{k({type:"OPEN_MOBILE_DRAWER"})},[]),o=(0,e.useCallback)(()=>{k({type:"CLOSE_MOBILE_DRAWER"})},[]),p=(0,e.useCallback)(a=>{k({type:"SET_SORT_KEY",sortKey:a})},[]),q=(0,e.useCallback)(a=>{k({type:"SET_SORT_DIRECTION",sortDirection:a})},[]),r=(0,e.useCallback)(a=>{k({type:"SET_VIEW_MODE",viewMode:a})},[]),s=(0,e.useMemo)(()=>({isOpen:j.isOpen,width:j.width,isMobileDrawerOpen:j.isMobileDrawerOpen,sortKey:j.sortKey,sortDirection:j.sortDirection,toggle:l,setWidth:m,openMobileDrawer:n,closeMobileDrawer:o,setSortKey:p,setSortDirection:q,viewMode:j.viewMode,setViewMode:r}),[j.isOpen,j.width,j.isMobileDrawerOpen,j.sortKey,j.sortDirection,j.viewMode,l,m,n,o,p,q,r]);return(0,d.jsx)(h.Provider,{value:s,children:a})}function k(){let a=(0,e.useContext)(h);if(!a)throw Error("useSidebarContext must be used within a SidebarProvider");return a}},84342:(a,b,c)=>{"use strict";c.d(b,{H:()=>h,O:()=>g});var d=c(21124),e=c(38301);let f=(0,e.createContext)(!1);function g({children:a,authEnabled:b}){return(0,d.jsx)(f.Provider,{value:b,children:a})}function h(){return(0,e.useContext)(f)}},86634:(a,b,c)=>{Promise.resolve().then(c.bind(c,37397))},89184:(a,b,c)=>{"use strict";c.d(b,{K:()=>h,S:()=>g});var d=c(21124),e=c(38301);let f=(0,e.createContext)({open:!1,setOpen:()=>{},toggle:()=>{}});function g({children:a}){let[b,c]=(0,e.useState)(!1),g=(0,e.useCallback)(()=>c(a=>!a),[]),h=(0,e.useMemo)(()=>({open:b,setOpen:c,toggle:g}),[b,g]);return(0,d.jsx)(f.Provider,{value:h,children:a})}function h(){return(0,e.useContext)(f)}},90076:(a,b,c)=>{"use strict";c.d(b,{D:()=>f,a:()=>g});var d=c(38301);let e=d.useEffect,f=768;function g(a={}){let{breakpoint:b=f}=a,[c,h]=(0,d.useState)(!1);return e(()=>{let a=window.matchMedia(`(max-width: ${b-1}px)`);h(a.matches);let c=a=>{h(a.matches)};return a.addEventListener("change",c),()=>{a.removeEventListener("change",c)}},[b]),c}},90338:(a,b,c)=>{var d={"./en/worktree.json":[72119,2119],"./ja/worktree.json":[52445,2445]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=90338,a.exports=e},91786:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,23597,23)),Promise.resolve().then(c.t.bind(c,36893,23)),Promise.resolve().then(c.t.bind(c,89748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,69576,23)),Promise.resolve().then(c.t.bind(c,73041,23)),Promise.resolve().then(c.t.bind(c,51384,23))},94260:(a,b,c)=>{"use strict";c.d(b,{$:()=>i});var d=c(21124);c(38301);var e=c(26691),f=c(35595),g=c(17793);let h=(0,e.F)("inline-flex items-center justify-center px-4 py-2 rounded-md font-medium transition-all duration-200 touch-manipulation focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background",{variants:{variant:{primary:"bg-accent-600 dark:bg-accent-500 text-white hover:bg-accent-700 dark:hover:bg-accent-600",secondary:"bg-muted text-foreground hover:bg-muted/80",danger:"bg-danger text-white hover:bg-danger/90",ghost:"bg-transparent text-foreground hover:bg-muted"},size:{sm:"px-3 py-1.5 text-sm",md:"",lg:"px-6 py-3 text-lg"},fullWidth:{true:"w-full",false:""}},defaultVariants:{variant:"primary",size:"md",fullWidth:!1}});function i({variant:a="primary",size:b="md",fullWidth:c=!1,loading:e=!1,disabled:i,className:j="",children:k,...l}){let m=i||e,n=(0,f.cn)(h({variant:a,size:b,fullWidth:c}),!m&&"motion-safe:hover:-translate-y-0.5 motion-safe:active:translate-y-0",m&&"opacity-50 cursor-not-allowed",j);return(0,d.jsxs)("button",{className:n,disabled:m,...l,children:[e&&(0,d.jsx)(g.y,{size:"sm",className:"-ml-1 mr-2"}),k]})}},94650:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/png",sizes:"180x180",url:(0,d.fillMetadataSegment)(".",await a.params,"apple-icon.png")+"?31a89e65aa4ac65b"}]},95427:(a,b,c)=>{"use strict";c.d(b,{r:()=>e});var d=c(38301);function e(a={}){let{active:b=!0,initialFocus:c=!0,restoreFocus:f=!0}=a;return(0,d.useRef)(null)}},96908:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g});var d=c(21124);c(38301);var e=c(20481),f=c(35914);function g({error:a,reset:b}){let c=(0,e.c)("error"),g=(0,e.c)("common"),h=(0,f.oz)(a);return(0,d.jsxs)("main",{className:"flex min-h-screen flex-col items-center justify-center gap-6 bg-background px-6 pt-safe pb-safe text-center",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:c(h?"chunkReload.title":"unexpected.title")}),(0,d.jsx)("p",{className:"mx-auto max-w-sm text-sm text-muted-foreground",children:c(h?"chunkReload.description":"unexpected.description")})]}),(0,d.jsx)("button",{type:"button",onClick:h?()=>window.location.reload():b,className:"rounded-lg bg-accent-600 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-accent-700",children:g(h?"reload":"retry")})]})}},98033:(a,b,c)=>{"use strict";c.d(b,{a:()=>o});var d=c(21124),e=c(38301),f=c(23312),g=c(20481),h=c(26691),i=c(11010),j=c(58970),k=c(6074),l=c(95427),m=c(35595);let n=(0,h.F)("",{variants:{size:{sm:"max-w-[calc(100vw-2rem)] sm:max-w-md",md:"max-w-[calc(100vw-2rem)] sm:max-w-2xl",lg:"max-w-[calc(100vw-2rem)] sm:max-w-4xl",xl:"max-w-[calc(100vw-2rem)] sm:max-w-6xl",full:"max-w-[calc(100vw-2rem)] sm:max-w-[95vw]"}},defaultVariants:{size:"lg"}});function o({isOpen:a,onClose:b,title:c,children:h,size:o="lg",showCloseButton:p=!0,disableClose:q=!1}){let r=(0,g.c)("common"),s=(0,e.useId)(),t=(0,l.r)({active:a}),{shouldRender:u,isExiting:v}=(0,k.O)(a,j.Ys),w=v?"closed":"open";return u?(0,f.createPortal)((0,d.jsxs)("div",{className:"fixed inset-0 overflow-y-auto",style:{zIndex:i.M.MODAL},children:[(0,d.jsx)("div",{"data-state":w,className:"fixed inset-0 bg-black/50 transition-opacity data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-200 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:duration-200 data-[state=closed]:fill-mode-forwards",onClick:q||v?void 0:b}),(0,d.jsx)("div",{className:"relative flex min-h-full items-center justify-center p-2 sm:p-4",children:(0,d.jsxs)("div",{ref:t,"data-state":w,"data-testid":"modal-panel",role:"dialog","aria-modal":"true","aria-labelledby":c?s:void 0,tabIndex:-1,className:(0,m.cn)("relative w-full",n({size:o}),"max-h-[calc(100vh-1rem)] sm:max-h-[calc(100vh-2rem)] flex flex-col bg-surface rounded-lg shadow-xl transform transition-all","data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-200","data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:duration-200 data-[state=closed]:fill-mode-forwards"),children:[(c||p)&&(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 sm:px-6 py-3 sm:py-4 border-b border-border flex-shrink-0",children:[(0,d.jsx)("h3",{id:s,className:"text-base sm:text-lg font-semibold text-foreground truncate pr-2",children:c}),p&&(0,d.jsx)("button",{onClick:b,"aria-label":r("close"),className:"text-muted-foreground hover:text-foreground transition-colors flex-shrink-0 touch-manipulation",children:(0,d.jsx)("svg",{className:"w-5 h-5 sm:w-6 sm:h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,d.jsx)("div",{className:"px-4 sm:px-6 py-3 sm:py-4 overflow-y-auto flex-1 min-h-0",children:h})]})})]}),document.body):null}},99127:(a,b,c)=>{var d={"./en/notifications.json":[49358,9358],"./ja/notifications.json":[61296,1296]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=99127,a.exports=e}};
13
+ `,children:(0,d.jsx)(l.A,{className:"h-4 w-4"})})]})}function s({toasts:a,onClose:b}){let[c,g]=(0,e.useState)(!1),h=(0,d.jsx)("div",{"data-testid":"toast-container","aria-live":"polite",className:"fixed bottom-4 right-4 flex flex-col gap-2",style:{zIndex:m.M.TOAST},children:a.map(a=>(0,d.jsx)(r,{id:a.id,message:a.message,type:a.type,onClose:b,duration:a.duration,onClick:a.onClick},a.id))});return c?(0,f.createPortal)(h,document.body):null}function t(){let[a,b]=(0,e.useState)([]),c=(0,e.useRef)(0),d=(0,e.useCallback)((a,d="info",e=p,f)=>{let g=`toast-${++c.current}-${Date.now()}`,h={id:g,message:a,type:d,duration:e,...f?.onClick?{onClick:f.onClick}:{}};return b(a=>[...a,h]),g},[]),f=(0,e.useCallback)(a=>{b(b=>b.filter(b=>b.id!==a))},[]),g=(0,e.useCallback)(()=>{b([])},[]);return(0,e.useMemo)(()=>({toasts:a,showToast:d,removeToast:f,clearToasts:g}),[a,d,f,g])}let u=(0,e.createContext)(null);function v({children:a}){let b=t();return(0,d.jsxs)(u.Provider,{value:b,children:[a,(0,d.jsx)(s,{toasts:b.toasts,onClose:b.removeToast})]})}function w(){let a=(0,e.useContext)(u),b=t();return a??b}},64182:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/CommandMate/CommandMate/src/app/global-error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/app/global-error.tsx","default")},64632:(a,b,c)=>{"use strict";c.d(b,{C:()=>h,E:()=>g});var d=c(21124),e=c(38301);let f=(0,e.createContext)({open:!1,setOpen:()=>{},toggle:()=>{}});function g({children:a}){let[b,c]=(0,e.useState)(!1),g=(0,e.useCallback)(()=>c(a=>!a),[]),h=(0,e.useMemo)(()=>({open:b,setOpen:c,toggle:g}),[b,g]);return(0,d.jsx)(f.Provider,{value:h,children:a})}function h(){return(0,e.useContext)(f)}},66125:(a,b,c)=>{var d={"./en/error.json":[22980,2980],"./ja/error.json":[10450,450]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=66125,a.exports=e},67619:(a,b,c)=>{"use strict";c.d(b,{tS:()=>i,xM:()=>j,T3:()=>k});var d=c(21124),e=c(38301);c(12055);let f=()=>{},g={status:"disconnected",connected:!1,subscribe:f,unsubscribe:f,addListener:()=>f},h=(0,e.createContext)(null);function i({children:a,enabled:b=!0}){let c=(0,e.useRef)(new Set),f=(0,e.useRef)(new Map),{status:g,subscribe:i,unsubscribe:j}=function(a={}){let{onEvent:b,onStatusChange:c,autoReconnect:d=!0,reconnectBaseDelay:f=1e3,reconnectMaxDelay:g=3e4,enabled:h=!0}=a,[i,j]=(0,e.useState)("disconnected"),k=(0,e.useRef)(null),l=(0,e.useRef)(null);(0,e.useRef)(0);let m=(0,e.useRef)(new Set),n=(0,e.useRef)(!1);(0,e.useRef)(b).current=b;let o=(0,e.useRef)(c);o.current=c;let p=(0,e.useCallback)(a=>{j(a),o.current?.(a)},[]),q=(0,e.useCallback)(()=>{null!==l.current&&(clearTimeout(l.current),l.current=null)},[]);(0,e.useCallback)(()=>{},[h,d,f,g,p,q]),(0,e.useCallback)(()=>{if(q(),n.current=!0,k.current){try{k.current.close(1e3,"Client disconnect")}catch{}k.current=null}},[q]);let r=(0,e.useCallback)(a=>{let b=k.current,c="undefined"!=typeof globalThis&&"function"==typeof globalThis.WebSocket?globalThis.WebSocket:null;if(b&&c&&b.readyState===c.OPEN)try{b.send(JSON.stringify(a))}catch{}},[]);return{status:i,subscribe:(0,e.useCallback)(a=>{m.current.has(a)||(m.current.add(a),r({type:"subscribe",worktreeId:a}))},[r]),unsubscribe:(0,e.useCallback)(a=>{m.current.has(a)&&(m.current.delete(a),r({type:"unsubscribe",worktreeId:a}))},[r]),send:r}}({enabled:b,onEvent:(0,e.useCallback)(a=>{c.current.forEach(b=>{try{b(a)}catch{}})},[])}),k=(0,e.useCallback)(a=>{let b=f.current,c=b.get(a)??0;b.set(a,c+1),0===c&&i(a)},[i]),l=(0,e.useCallback)(a=>{let b=f.current,c=b.get(a)??0;c<=1?(b.delete(a),j(a)):b.set(a,c-1)},[j]),m=(0,e.useCallback)(a=>(c.current.add(a),()=>{c.current.delete(a)}),[]),n=(0,e.useMemo)(()=>({status:g,connected:"connected"===g,subscribe:k,unsubscribe:l,addListener:m}),[g,k,l,m]);return(0,d.jsx)(h.Provider,{value:n,children:a})}function j(){return(0,e.useContext)(h)??g}function k(a){let{addListener:b}=j();(0,e.useRef)(a).current=a}},67693:(a,b,c)=>{"use strict";c.d(b,{H:()=>g});var d=c(38301),e=c(67619),f=c(96823);function g(){let{addListener:a}=(0,e.xM)(),{enabled:b}=(0,f.Ql)();return(0,d.useRef)({enabled:b}).current={enabled:b},(0,d.useRef)(new Set),null}c(74132)},68132:(a,b,c)=>{Promise.resolve().then(c.bind(c,39800))},70288:(a,b,c)=>{var d={"./en/home.json":[41825,1825],"./ja/home.json":[26159,6159]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=70288,a.exports=e},72637:(a,b,c)=>{var d={"./en/prompt.json":[72816,2816],"./ja/prompt.json":[80066,7685]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=72637,a.exports=e},74132:(a,b,c)=>{"use strict";c.d(b,{dS:()=>k,rM:()=>l});var d=c(38301),e=c(42378),f=c(20481),g=c(63474),h=c(63157),i=c(67619),j=c(96823);function k(a,b,c){return`${a}|${b??"-"}|${c??"no-since"}`}function l(){let a=(0,f.c)("notifications"),{showToast:b}=(0,g.dj)(),{addListener:c}=(0,i.xM)(),{enabled:k}=(0,j.qG)(),l=(0,e.usePathname)(),m=(0,e.useRouter)(),n=(0,h.rC)();return(0,d.useRef)({enabled:k,pathname:l,worktrees:n?.worktrees,showToast:b,t:a,router:m}).current={enabled:k,pathname:l,worktrees:n?.worktrees,showToast:b,t:a,router:m},(0,d.useRef)(new Set),null}},75567:(a,b,c)=>{var d={"./en/pwa.json":[51262,1262],"./ja/pwa.json":[46072,6072]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=75567,a.exports=e},78162:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/png",sizes:"32x32",url:(0,d.fillMetadataSegment)(".",await a.params,"icon.png")+"?eeae29d23f3aae17"}]},78352:(a,b,c)=>{"use strict";c.d(b,{$T:()=>j,GQ:()=>l,Rx:()=>h,gC:()=>i,hD:()=>d,hS:()=>k,y:()=>g});class d extends Error{constructor(a,b,c){super(a),this.status=b,this.data=c,this.name="ApiError"}}async function e(a,b,c){if(!(a.headers.get("content-type")||"").includes("application/json"))return b;try{return await a.json()}catch{return b}}async function f(a,b){try{let c=new Headers(b?.headers);c.set("Content-Type","application/json");let f=await fetch(a,{...b,headers:c}),g=f.headers.get("content-type")||"";if(f.redirected&&f.url.includes("/login"))throw new d("Authentication required",401);if(!f.ok){let a=await e(f,{},"error-body");throw new d(a.error||`HTTP error ${f.status}`,f.status,a)}if(!g.includes("application/json"))throw new d("Unexpected response format",f.status);return f.json()}catch(a){if(a instanceof d)throw a;throw new d(a instanceof Error?a.message:"Unknown error",0,a)}}let g={getAll:async()=>f("/api/worktrees"),getById:async a=>f(`/api/worktrees/${a}`),updateDescription:async(a,b)=>f(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({description:b})}),updateLink:async(a,b)=>f(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({link:b})}),toggleFavorite:async(a,b)=>f(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({favorite:b})}),updateStatus:async(a,b)=>f(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({status:b})}),updateCliTool:async(a,b)=>f(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({cliToolId:b})}),markAsViewed:async a=>f(`/api/worktrees/${a}/viewed`,{method:"PATCH"}),async getMessages(a,b,c,d){let e=new URLSearchParams;return b&&e.append("cliTool",b),c&&e.append("includeArchived","true"),"number"==typeof d&&Number.isFinite(d)&&e.append("limit",String(d)),f(`/api/worktrees/${a}/messages${e.toString()?`?${e.toString()}`:""}`)},async sendMessage(a,b,c){let d={content:b};return c?.cliToolId&&(d.cliToolId=c.cliToolId),c?.instanceId&&(d.instanceId=c.instanceId),c?.imagePath&&(d.imagePath=c.imagePath),f(`/api/worktrees/${a}/send`,{method:"POST",body:JSON.stringify(d)})},async uploadImageFile(a,b){let c=Date.now(),d=`${c}-${b.name}`,f=".commandmate/attachments",g=new FormData;g.append("file",new File([b],d,{type:b.type}));let h=await fetch(`/api/worktrees/${a}/upload/${f}`,{method:"POST",body:g});if(!h.ok){let a=await e(h,{},"error-body");throw Error(a?.error?.message||`Upload failed (HTTP ${h.status})`)}return{path:(await e(h,{},"response-body")).path||`${f}/${d}`}},getLogs:async a=>f(`/api/worktrees/${a}/logs`),async getLogFile(a,b,c){let d=c?.sanitize?"?sanitize=true":"";return f(`/api/worktrees/${a}/logs/${b}${d}`)},async killSession(a,b,c){let d=new URLSearchParams;b&&d.set("cliTool",b),c&&d.set("instance",c);let e=d.toString();return f(`/api/worktrees/${a}/kill-session${e?`?${e}`:""}`,{method:"POST"})}},h={scan:async a=>f("/api/repositories/scan",{method:"POST",body:JSON.stringify({repositoryPath:a})}),sync:async()=>f("/api/repositories/sync",{method:"POST"}),delete:async a=>f("/api/repositories",{method:"DELETE",body:JSON.stringify({repositoryPath:a})}),clone:async(a,b)=>f("/api/repositories/clone",{method:"POST",body:JSON.stringify({cloneUrl:a,fork:b?.fork??!1})}),getCloneStatus:async a=>f(`/api/repositories/clone/${a}`),getExcluded:async()=>f("/api/repositories/excluded"),restore:async a=>f("/api/repositories/restore",{method:"PUT",body:JSON.stringify({repositoryPath:a})}),list:async()=>f("/api/repositories"),updateDisplayName:async(a,b)=>f(`/api/repositories/${encodeURIComponent(a)}`,{method:"PUT",body:JSON.stringify({displayName:b})}),updateVisibility:async(a,b)=>f(`/api/repositories/${encodeURIComponent(a)}`,{method:"PUT",body:JSON.stringify({visible:b})}),updateEnabled:async(a,b)=>f(`/api/repositories/${encodeURIComponent(a)}`,{method:"PUT",body:JSON.stringify({enabled:b})}),validatePath:async a=>f("/api/repositories/validate-path",{method:"POST",body:JSON.stringify({repositoryPath:a})})},i={async browse(a){let b=a?`?path=${encodeURIComponent(a)}`:"";return f(`/api/fs/browse${b}`)},addRecentPath:async a=>f("/api/fs/recent-paths",{method:"POST",body:JSON.stringify({path:a})})},j={getAll:async a=>(await f(`/api/worktrees/${a}/memos`)).memos,create:async(a,b)=>(await f(`/api/worktrees/${a}/memos`,{method:"POST",body:JSON.stringify(b||{})})).memo,update:async(a,b,c)=>(await f(`/api/worktrees/${a}/memos/${b}`,{method:"PUT",body:JSON.stringify(c)})).memo,delete:async(a,b)=>f(`/api/worktrees/${a}/memos/${b}`,{method:"DELETE"}),async reorder(a,b){await f(`/api/worktrees/${a}/memos`,{method:"PATCH",body:JSON.stringify({memoIds:b})})}};function k(a){return a instanceof d||a instanceof Error?a.message:"An unknown error occurred"}let l={checkForUpdate:async()=>f("/api/app/update-check",{method:"GET"}),startUpdate:async()=>f("/api/app/update",{method:"POST"}),async ping(){try{return(await fetch("/api/auth/status",{cache:"no-store"})).ok}catch{return!1}}}},79782:(a,b,c)=>{"use strict";c.d(b,{SC:()=>m,TM:()=>i,aF:()=>k});var d=c(21124),e=c(38301),f=c(20481),g=c(98033),h=c(94260);function i({isOpen:a,title:b,description:c,confirmLabel:e,cancelLabel:i,variant:j="default",onConfirm:k,onCancel:l}){let m=(0,f.c)("common"),n="danger"===j;return(0,d.jsx)(g.a,{isOpen:a,onClose:l,title:b??m("confirmDialog.title"),size:"sm",showCloseButton:!1,children:(0,d.jsxs)("div",{className:"space-y-4","data-testid":"confirm-dialog",children:[(0,d.jsx)("p",{className:"text-sm text-foreground whitespace-pre-line",children:c}),(0,d.jsxs)("div",{className:"flex justify-end gap-3",children:[(0,d.jsx)(h.$,{type:"button",variant:"secondary",size:"sm",autoFocus:n,onClick:l,"data-testid":"confirm-dialog-cancel",children:i??m("cancel")}),(0,d.jsx)(h.$,{type:"button",variant:n?"danger":"primary",size:"sm",autoFocus:!n,onClick:k,"data-testid":"confirm-dialog-confirm",children:e??m("confirmDialog.confirm")})]})]})})}let j=(0,e.createContext)(null);function k({children:a}){let[b,c]=(0,e.useState)(null),f=(0,e.useRef)(null),g=(0,e.useRef)(null),h=b?.options??g.current,k=(0,e.useCallback)(a=>new Promise(b=>{f.current=document.activeElement instanceof HTMLElement?document.activeElement:null,c(c=>(c?.resolve(!1),{options:a,resolve:b}))}),[]),l=(0,e.useCallback)(a=>{c(b=>(b?.resolve(a),null)),f.current?.focus(),f.current=null},[]);return(0,d.jsxs)(j.Provider,{value:k,children:[a,(0,d.jsx)(i,{isOpen:null!==b,title:h?.title,description:h?.description??"",confirmLabel:h?.confirmLabel,cancelLabel:h?.cancelLabel,variant:h?.variant,onConfirm:()=>l(!0),onCancel:()=>l(!1)})]})}let l=async()=>!1;function m(){return(0,e.useContext)(j)??l}},80407:(a,b,c)=>{var d={"./en/commandPalette.json":[28098,8098],"./ja/commandPalette.json":[12560,2560]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=80407,a.exports=e},80776:(a,b,c)=>{"use strict";c.d(b,{AppProviders:()=>y});var d=c(21124),e=c(37397),f=c(45523),g=c(81092),h=c(84342),i=c(5772),j=c(64632),k=c(89184),l=c(63157),m=c(52761),n=c(67619),o=c(79782),p=c(63474),q=c(74132),r=c(67693),s=c(90102),t=c(38301),u=c(20481),v=c(25345),w=c(11010);function x(){let a=(0,u.c)("pwa"),[b,c]=(0,t.useState)(null);return((0,t.useRef)(!1),b)?(0,d.jsx)("div",{role:"status","aria-live":"polite",className:"fixed inset-x-0 bottom-0 flex justify-center px-4 pb-safe",style:{zIndex:w.M.TOAST},children:(0,d.jsxs)("div",{className:"mb-4 flex items-center gap-3 rounded-lg border border-border bg-surface px-4 py-3 shadow-lg",children:[(0,d.jsx)("span",{className:"text-sm font-medium text-foreground",children:a("update.available")}),(0,d.jsxs)("button",{type:"button",onClick:()=>{b.postMessage({type:"SKIP_WAITING"})},className:"inline-flex items-center gap-1.5 rounded-md bg-accent-600 px-3 py-1.5 text-sm font-medium text-white transition-colors hover:bg-accent-700 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background dark:bg-accent-500 dark:hover:bg-accent-600",children:[(0,d.jsx)(v.A,{className:"h-4 w-4"}),a("update.reload")]})]})}):null}function y({children:a,locale:b,messages:c,timeZone:t,authEnabled:u=!1}){return(0,d.jsx)(e.default,{locale:b,messages:c,timeZone:t,children:(0,d.jsx)(p.tE,{children:(0,d.jsx)(f.N,{attribute:"class",defaultTheme:"system",enableSystem:!0,children:(0,d.jsx)(h.O,{authEnabled:u,children:(0,d.jsx)(i.W5,{children:(0,d.jsx)(g.GB,{children:(0,d.jsx)(n.tS,{children:(0,d.jsxs)(l.g7,{children:[(0,d.jsx)(q.rM,{}),(0,d.jsx)(s.o,{}),(0,d.jsx)(r.H,{}),(0,d.jsx)(j.E,{children:(0,d.jsx)(k.S,{children:(0,d.jsxs)(o.aF,{children:[(0,d.jsx)(m.Bo,{children:a}),(0,d.jsx)(x,{})]})})})]})})})})})})})})}},80812:(a,b,c)=>{var d={"./en/externalApps.json":[37941,7941],"./ja/externalApps.json":[99211,9211]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=80812,a.exports=e},81092:(a,b,c)=>{"use strict";c.d(b,{GB:()=>j,VF:()=>k});var d=c(21124),e=c(38301),f=c(32482);let g="updatedAt",h=(0,e.createContext)(null);function i(a,b){switch(b.type){case"TOGGLE":return{...a,isOpen:!a.isOpen};case"SET_WIDTH":return{...a,width:b.width};case"OPEN_MOBILE_DRAWER":return{...a,isMobileDrawerOpen:!0};case"CLOSE_MOBILE_DRAWER":return{...a,isMobileDrawerOpen:!1};case"SET_SORT_KEY":return{...a,sortKey:b.sortKey};case"SET_SORT_DIRECTION":return{...a,sortDirection:b.sortDirection};case"LOAD_SORT_SETTINGS":return{...a,sortKey:b.sortKey,sortDirection:b.sortDirection};case"SET_VIEW_MODE":return{...a,viewMode:b.viewMode};default:return a}}function j({children:a,initialOpen:b=!0,initialWidth:c=224}){let[j,k]=(0,e.useReducer)(i,{isOpen:b,width:c,isMobileDrawerOpen:!1,sortKey:g,sortDirection:"desc",viewMode:"grouped"});j.sortKey,j.sortDirection,(0,e.useRef)(!0),j.viewMode,(0,e.useRef)(!0),j.width,(0,e.useRef)(!0);let l=(0,e.useCallback)(()=>{k({type:"TOGGLE"})},[]),m=(0,e.useCallback)(a=>{k({type:"SET_WIDTH",width:a})},[]),n=(0,e.useCallback)(()=>{k({type:"OPEN_MOBILE_DRAWER"})},[]),o=(0,e.useCallback)(()=>{k({type:"CLOSE_MOBILE_DRAWER"})},[]),p=(0,e.useCallback)(a=>{k({type:"SET_SORT_KEY",sortKey:a})},[]),q=(0,e.useCallback)(a=>{k({type:"SET_SORT_DIRECTION",sortDirection:a})},[]),r=(0,e.useCallback)(a=>{k({type:"SET_VIEW_MODE",viewMode:a})},[]),s=(0,e.useMemo)(()=>({isOpen:j.isOpen,width:j.width,isMobileDrawerOpen:j.isMobileDrawerOpen,sortKey:j.sortKey,sortDirection:j.sortDirection,toggle:l,setWidth:m,openMobileDrawer:n,closeMobileDrawer:o,setSortKey:p,setSortDirection:q,viewMode:j.viewMode,setViewMode:r}),[j.isOpen,j.width,j.isMobileDrawerOpen,j.sortKey,j.sortDirection,j.viewMode,l,m,n,o,p,q,r]);return(0,d.jsx)(h.Provider,{value:s,children:a})}function k(){let a=(0,e.useContext)(h);if(!a)throw Error("useSidebarContext must be used within a SidebarProvider");return a}},84342:(a,b,c)=>{"use strict";c.d(b,{H:()=>h,O:()=>g});var d=c(21124),e=c(38301);let f=(0,e.createContext)(!1);function g({children:a,authEnabled:b}){return(0,d.jsx)(f.Provider,{value:b,children:a})}function h(){return(0,e.useContext)(f)}},86634:(a,b,c)=>{Promise.resolve().then(c.bind(c,37397))},89184:(a,b,c)=>{"use strict";c.d(b,{K:()=>h,S:()=>g});var d=c(21124),e=c(38301);let f=(0,e.createContext)({open:!1,setOpen:()=>{},toggle:()=>{}});function g({children:a}){let[b,c]=(0,e.useState)(!1),g=(0,e.useCallback)(()=>c(a=>!a),[]),h=(0,e.useMemo)(()=>({open:b,setOpen:c,toggle:g}),[b,g]);return(0,d.jsx)(f.Provider,{value:h,children:a})}function h(){return(0,e.useContext)(f)}},89877:(a,b,c)=>{"use strict";c.d(b,{A7:()=>i,kA:()=>f,f_:()=>l,dw:()=>j,XK:()=>m});var d=c(17252),e=c(4267);function f(a){return a?a.isWaitingForResponse?"waiting":a.isProcessing?"running":a.isRunning?"ready":"idle":"idle"}let g={start:"nextAction.start",sendMessage:"nextAction.sendMessage",approveReject:"nextAction.approveReject",replyToPrompt:"nextAction.replyToPrompt",checkStalled:"nextAction.checkStalled",running:"nextAction.running"};Object.values(g);let h={idle:null,ready:"ready",running:"running",generating:"running",waiting:"waiting"};function i(a){if(!a)return"idle";let b=Object.values(a).filter(a=>void 0!==a);return 0===b.length?"idle":b.includes("waiting")?"waiting":b.includes("running")?"running":b.includes("generating")?"generating":b.includes("ready")?"ready":"idle"}function j(a,b){return a?Object.entries(a).map(([a,c])=>`${b?.[a]??(0,d.f_)(a,a)}: ${c??"idle"}`).join(", "):""}let k=["prompt","menu","unclassified"];function l(a){let b=Object.values(a.sessionStatusByInstance??a.sessionStatusByCli??{}).filter(a=>void 0!==a),c=!1,d=new Set;for(let a of b)a.awaitingInstruction&&(c=!0),a.waitingKind&&d.add(a.waitingKind);return{waitingKind:k.find(a=>d.has(a))??null,awaitingInstruction:c}}function m(a){var b,c;let j=f(void 0!==a.isSessionRunning?{isRunning:a.isSessionRunning??!1,isWaitingForResponse:a.isWaitingForResponse??!1,isProcessing:a.isProcessing??!1}:void 0),k=!!a.lastAssistantMessageAt&&(!a.lastViewedAt||new Date(a.lastAssistantMessageAt)>new Date(a.lastViewedAt)),{cliStatus:m,cliStatusLabels:n}=function(a){let b={},c={},g=a.sessionStatusByInstance;if(!g){for(let g of a.selectedAgents??e.fJ)b[g]=f(a.sessionStatusByCli?.[g]),c[g]=(0,d.oo)(g);return{cliStatus:b,cliStatusLabels:c}}let h=a.agentInstances&&a.agentInstances.length>0?a.agentInstances:(0,d.lu)(a.selectedAgents??e.fJ),i=new Set;for(let a of h)i.add(a.id),b[a.id]=f(g[a.id]),c[a.id]=(0,d.sw)(a);for(let[a,e]of Object.entries(g)){if(i.has(a))continue;let g=f(e);"idle"!==g&&(b[a]=g,c[a]=function(a){let b=d.XH.find(b=>a.startsWith(`${b}-`));if(b){let c=a.slice(b.length+1);return`${(0,d.oo)(b)} ${c}`}return(0,d.f_)(a,a)}(a))}return{cliStatus:b,cliStatusLabels:c}}(a),o=i(m),{waitingKind:p,awaitingInstruction:q}=l(a);return{id:a.id,name:a.name,repositoryName:a.repositoryDisplayName??a.repositoryName,status:j,hasUnread:k,lastActivity:a.updatedAt,description:a.description,cliStatus:m,cliStatusLabels:n,worktreePath:a.path,waitingKind:p,awaitingInstruction:q,nextActionKey:(b=h[o],c="waiting"===o?"approval":null,b&&"idle"!==b?"ready"===b?g.sendMessage:"waiting"===b&&"approval"===c?g.approveReject:"waiting"===b?g.replyToPrompt:(0,g.running):g.start)}}},90076:(a,b,c)=>{"use strict";c.d(b,{D:()=>f,a:()=>g});var d=c(38301);let e=d.useEffect,f=768;function g(a={}){let{breakpoint:b=f}=a,[c,h]=(0,d.useState)(!1);return e(()=>{let a=window.matchMedia(`(max-width: ${b-1}px)`);h(a.matches);let c=a=>{h(a.matches)};return a.addEventListener("change",c),()=>{a.removeEventListener("change",c)}},[b]),c}},90102:(a,b,c)=>{"use strict";c.d(b,{o:()=>f});var d=c(38301),e=c(19463);function f(){return!function(){let{count:a}=(0,e.Lv)();(0,d.useRef)([]),(0,d.useRef)(null)}(),null}},90338:(a,b,c)=>{var d={"./en/worktree.json":[72119,2119],"./ja/worktree.json":[52445,2445]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=90338,a.exports=e},91786:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,23597,23)),Promise.resolve().then(c.t.bind(c,36893,23)),Promise.resolve().then(c.t.bind(c,89748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,69576,23)),Promise.resolve().then(c.t.bind(c,73041,23)),Promise.resolve().then(c.t.bind(c,51384,23))},94260:(a,b,c)=>{"use strict";c.d(b,{$:()=>i});var d=c(21124);c(38301);var e=c(26691),f=c(35595),g=c(17793);let h=(0,e.F)("inline-flex items-center justify-center px-4 py-2 rounded-md font-medium transition-all duration-200 touch-manipulation focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background",{variants:{variant:{primary:"bg-accent-600 dark:bg-accent-500 text-white hover:bg-accent-700 dark:hover:bg-accent-600",secondary:"bg-muted text-foreground hover:bg-muted/80",danger:"bg-danger text-white hover:bg-danger/90",ghost:"bg-transparent text-foreground hover:bg-muted"},size:{sm:"px-3 py-1.5 text-sm",md:"",lg:"px-6 py-3 text-lg"},fullWidth:{true:"w-full",false:""}},defaultVariants:{variant:"primary",size:"md",fullWidth:!1}});function i({variant:a="primary",size:b="md",fullWidth:c=!1,loading:e=!1,disabled:i,className:j="",children:k,...l}){let m=i||e,n=(0,f.cn)(h({variant:a,size:b,fullWidth:c}),!m&&"motion-safe:hover:-translate-y-0.5 motion-safe:active:translate-y-0",m&&"opacity-50 cursor-not-allowed",j);return(0,d.jsxs)("button",{className:n,disabled:m,...l,children:[e&&(0,d.jsx)(g.y,{size:"sm",className:"-ml-1 mr-2"}),k]})}},94650:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/png",sizes:"180x180",url:(0,d.fillMetadataSegment)(".",await a.params,"apple-icon.png")+"?31a89e65aa4ac65b"}]},95427:(a,b,c)=>{"use strict";c.d(b,{r:()=>e});var d=c(38301);function e(a={}){let{active:b=!0,initialFocus:c=!0,restoreFocus:f=!0}=a;return(0,d.useRef)(null)}},96823:(a,b,c)=>{"use strict";c.d(b,{Ql:()=>f,qG:()=>e});var d=c(38301);function e(){let[a,b]=(0,d.useState)(!0);return{enabled:a,setEnabled:(0,d.useCallback)(a=>{b(a)},[])}}function f(){let[a,b]=(0,d.useState)(!1);return{enabled:a,setEnabled:(0,d.useCallback)(a=>{b(a)},[])}}},96908:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g});var d=c(21124);c(38301);var e=c(20481),f=c(35914);function g({error:a,reset:b}){let c=(0,e.c)("error"),g=(0,e.c)("common"),h=(0,f.oz)(a);return(0,d.jsxs)("main",{className:"flex min-h-screen flex-col items-center justify-center gap-6 bg-background px-6 pt-safe pb-safe text-center",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:c(h?"chunkReload.title":"unexpected.title")}),(0,d.jsx)("p",{className:"mx-auto max-w-sm text-sm text-muted-foreground",children:c(h?"chunkReload.description":"unexpected.description")})]}),(0,d.jsx)("button",{type:"button",onClick:h?()=>window.location.reload():b,className:"rounded-lg bg-accent-600 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-accent-700",children:g(h?"reload":"retry")})]})}},98033:(a,b,c)=>{"use strict";c.d(b,{a:()=>o});var d=c(21124),e=c(38301),f=c(23312),g=c(20481),h=c(26691),i=c(11010),j=c(58970),k=c(6074),l=c(95427),m=c(35595);let n=(0,h.F)("",{variants:{size:{sm:"max-w-[calc(100vw-2rem)] sm:max-w-md",md:"max-w-[calc(100vw-2rem)] sm:max-w-2xl",lg:"max-w-[calc(100vw-2rem)] sm:max-w-4xl",xl:"max-w-[calc(100vw-2rem)] sm:max-w-6xl",full:"max-w-[calc(100vw-2rem)] sm:max-w-[95vw]"}},defaultVariants:{size:"lg"}});function o({isOpen:a,onClose:b,title:c,children:h,size:o="lg",showCloseButton:p=!0,disableClose:q=!1}){let r=(0,g.c)("common"),s=(0,e.useId)(),t=(0,l.r)({active:a}),{shouldRender:u,isExiting:v}=(0,k.O)(a,j.Ys),w=v?"closed":"open";return u?(0,f.createPortal)((0,d.jsxs)("div",{className:"fixed inset-0 overflow-y-auto",style:{zIndex:i.M.MODAL},children:[(0,d.jsx)("div",{"data-state":w,className:"fixed inset-0 bg-black/50 transition-opacity data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-200 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:duration-200 data-[state=closed]:fill-mode-forwards",onClick:q||v?void 0:b}),(0,d.jsx)("div",{className:"relative flex min-h-full items-center justify-center p-2 sm:p-4",children:(0,d.jsxs)("div",{ref:t,"data-state":w,"data-testid":"modal-panel",role:"dialog","aria-modal":"true","aria-labelledby":c?s:void 0,tabIndex:-1,className:(0,m.cn)("relative w-full",n({size:o}),"max-h-[calc(100vh-1rem)] sm:max-h-[calc(100vh-2rem)] flex flex-col bg-surface rounded-lg shadow-xl transform transition-all","data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-200","data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:duration-200 data-[state=closed]:fill-mode-forwards"),children:[(c||p)&&(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 sm:px-6 py-3 sm:py-4 border-b border-border flex-shrink-0",children:[(0,d.jsx)("h3",{id:s,className:"text-base sm:text-lg font-semibold text-foreground truncate pr-2",children:c}),p&&(0,d.jsx)("button",{onClick:b,"aria-label":r("close"),className:"text-muted-foreground hover:text-foreground transition-colors flex-shrink-0 touch-manipulation",children:(0,d.jsx)("svg",{className:"w-5 h-5 sm:w-6 sm:h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,d.jsx)("div",{className:"px-4 sm:px-6 py-3 sm:py-4 overflow-y-auto flex-1 min-h-0",children:h})]})})]}),document.body):null}},99127:(a,b,c)=>{var d={"./en/notifications.json":[49358,9358],"./ja/notifications.json":[61296,1296]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=99127,a.exports=e}};
@@ -1 +1 @@
1
- "use strict";exports.id=9328,exports.ids=[9328],exports.modules={49328:a=>{a.exports=JSON.parse('{"page":{"title":"レビュー","description":"対応が必要な worktree。"},"tabs":{"review":"レビュー","report":"レポート","template":"テンプレート"},"status":{"done":"完了","inReview":"レビュー中","approval":"承認待ち","stalled":"停滞"},"filters":{"ariaLabel":"レビューフィルター","loading":"レビューを読み込み中"},"empty":{"inReview":"レビュー中のワークツリーはありません。","approval":"承認待ちのワークツリーはありません。","stalled":"停滞しているワークツリーはありません。"},"datePicker":{"previousDay":"前日","nextDay":"翌日"},"report":{"regenerateConfirm":"この日付のレポートは既に存在します。再生成して上書きしますか?","toolLabel":"ツール:","modelPlaceholder":"モデル(任意)","generationMode":"生成モード","modes":{"none":"指示なし","template":"テンプレート","custom":"カスタム"},"selectTemplate":"テンプレートを選択","loadingTemplates":"テンプレートを読み込み中","noTemplates":"利用できるテンプレートがありません。Template タブで作成してください。","templatePlaceholderOption":"-- テンプレートを選択 --","instructionPlaceholderTemplate":"上でテンプレートを選択するとこの欄に反映されます","instructionPlaceholderCustom":"サマリー生成への追加指示","generate":"サマリーを生成","generating":"生成中...","noMessages":"この日付のメッセージはありません。","messagesFound":"この日付のメッセージが{count}件見つかりました。","generatingRemote":"レポートを生成中...(ツール: {tool})","generatingRemoteWithTime":"レポートを生成中...(ツール: {tool}、開始: {seconds}秒前)","generatingSummary":"サマリーを生成中...","generatedBy":"生成ツール: {tool}","copy":"コピー","copied":"コピーしました!","edit":"編集","save":"保存","saving":"保存中...","errors":{"fetch":"レポートの取得に失敗しました","rateLimited":"別のサマリーを生成中です。しばらくお待ちください。","generate":"サマリーの生成に失敗しました","emptyContent":"内容を入力してください","save":"レポートの保存に失敗しました"}},"template":{"deleteConfirm":"このテンプレートを削除しますか?","heading":"テンプレート({count}/{max})","loading":"テンプレートを読み込み中","empty":"テンプレートはまだありません。","edit":"編集","delete":"削除","save":"保存","saving":"保存中...","cancel":"キャンセル","newHeading":"新規テンプレート","namePlaceholder":"テンプレート名","contentPlaceholder":"テンプレート本文(レポート生成への指示)","create":"テンプレートを作成","creating":"作成中...","errors":{"fetch":"テンプレートの取得に失敗しました","nameAndContentRequired":"名前と本文は必須です","create":"テンプレートの作成に失敗しました","update":"テンプレートの更新に失敗しました","delete":"テンプレートの削除に失敗しました"}}}')}};
1
+ "use strict";exports.id=9328,exports.ids=[9328],exports.modules={49328:a=>{a.exports=JSON.parse('{"page":{"title":"レビュー","description":"対応が必要な worktree。"},"tabs":{"review":"レビュー","report":"レポート","template":"テンプレート"},"status":{"inReview":"レビュー中","approval":"承認待ち","stalled":"停滞"},"filters":{"ariaLabel":"レビューフィルター","loading":"レビューを読み込み中"},"empty":{"inReview":"レビュー中のワークツリーはありません。","approval":"承認待ちのワークツリーはありません。","stalled":"停滞しているワークツリーはありません。"},"datePicker":{"previousDay":"前日","nextDay":"翌日"},"report":{"regenerateConfirm":"この日付のレポートは既に存在します。再生成して上書きしますか?","toolLabel":"ツール:","modelPlaceholder":"モデル(任意)","generationMode":"生成モード","modes":{"none":"指示なし","template":"テンプレート","custom":"カスタム"},"selectTemplate":"テンプレートを選択","loadingTemplates":"テンプレートを読み込み中","noTemplates":"利用できるテンプレートがありません。Template タブで作成してください。","templatePlaceholderOption":"-- テンプレートを選択 --","instructionPlaceholderTemplate":"上でテンプレートを選択するとこの欄に反映されます","instructionPlaceholderCustom":"サマリー生成への追加指示","generate":"サマリーを生成","generating":"生成中...","noMessages":"この日付のメッセージはありません。","messagesFound":"この日付のメッセージが{count}件見つかりました。","generatingRemote":"レポートを生成中...(ツール: {tool})","generatingRemoteWithTime":"レポートを生成中...(ツール: {tool}、開始: {seconds}秒前)","generatingSummary":"サマリーを生成中...","generatedBy":"生成ツール: {tool}","copy":"コピー","copied":"コピーしました!","edit":"編集","save":"保存","saving":"保存中...","errors":{"fetch":"レポートの取得に失敗しました","rateLimited":"別のサマリーを生成中です。しばらくお待ちください。","generate":"サマリーの生成に失敗しました","emptyContent":"内容を入力してください","save":"レポートの保存に失敗しました"}},"template":{"deleteConfirm":"このテンプレートを削除しますか?","heading":"テンプレート({count}/{max})","loading":"テンプレートを読み込み中","empty":"テンプレートはまだありません。","edit":"編集","delete":"削除","save":"保存","saving":"保存中...","cancel":"キャンセル","newHeading":"新規テンプレート","namePlaceholder":"テンプレート名","contentPlaceholder":"テンプレート本文(レポート生成への指示)","create":"テンプレートを作成","creating":"作成中...","errors":{"fetch":"テンプレートの取得に失敗しました","nameAndContentRequired":"名前と本文は必須です","create":"テンプレートの作成に失敗しました","update":"テンプレートの更新に失敗しました","delete":"テンプレートの削除に失敗しました"}}}')}};
@@ -1 +1 @@
1
- "use strict";exports.id=9358,exports.ids=[9358],exports.modules={49358:a=>{a.exports=JSON.parse('{"title":"Notifications","description":"Get a push notification when an agent is waiting for you or finishes a session — even when the app is closed.","enable":"Enable notifications","enabling":"Enabling…","enabledOnThisDevice":"Notifications are enabled on this device.","unsubscribe":"Unsubscribe this device","types":{"heading":"Notify me about","promptWaiting":"Prompt waiting","promptWaitingDesc":"When an agent is waiting for your reply","completion":"Session complete","completionDesc":"When an agent finishes a session"},"permission":{"denied":"Notifications are blocked in your browser settings. Allow them for this site to receive push notifications."},"unsupported":"This browser does not support push notifications.","notConfigured":"Push notifications are not configured on this server. Set the VAPID keys to enable them.","ios":{"guidance":"On iPhone/iPad, add this app to your Home Screen and open it from there to enable notifications."},"toast":{"enabled":"Notifications enabled on this device","disabled":"Notifications turned off on this device","error":"Could not enable notifications","updated":"Notification settings updated"},"push":{"promptWaitingWithExcerpt":"Waiting for reply: {excerpt}","promptWaiting":"Waiting for your reply","completionWithExcerpt":"Done: {excerpt}","completion":"Session complete"}}')}};
1
+ "use strict";exports.id=9358,exports.ids=[9358],exports.modules={49358:a=>{a.exports=JSON.parse('{"title":"Notifications","description":"Get a push notification when an agent is waiting for you or finishes a session — even when the app is closed.","enable":"Enable notifications","enabling":"Enabling…","enabledOnThisDevice":"Notifications are enabled on this device.","unsubscribe":"Unsubscribe this device","types":{"heading":"Notify me about","promptWaiting":"Prompt waiting","promptWaitingDesc":"When an agent is waiting for your reply","completion":"Session complete","completionDesc":"When an agent finishes a session"},"permission":{"denied":"Notifications are blocked in your browser settings. Allow them for this site to receive push notifications."},"unsupported":"This browser does not support push notifications.","notConfigured":"Push notifications are not configured on this server. Set the VAPID keys to enable them.","ios":{"guidance":"On iPhone/iPad, add this app to your Home Screen and open it from there to enable notifications."},"toast":{"enabled":"Notifications enabled on this device","disabled":"Notifications turned off on this device","error":"Could not enable notifications","updated":"Notification settings updated"},"push":{"promptWaitingWithExcerpt":"Waiting for reply: {excerpt}","promptWaiting":"Waiting for your reply","completionWithExcerpt":"Done: {excerpt}","completion":"Session complete","terminalAttentionWithExcerpt":"Needs attention in the terminal: {excerpt}","terminalAttention":"Needs attention in the terminal","stillWaitingPrompt":"Still waiting for your reply ({minutes} min)","stillWaitingTerminal":"Still needs attention in the terminal ({minutes} min)"},"escalation":{"heading":"Reminder","toggle":"Remind me if still waiting","toggleDesc":"Send one more notification when an agent has been waiting this long. Applies to every device.","threshold":"Remind after","minutes":"{count} min"},"inApp":{"heading":"In-app notifications","waitingToggle":"Waiting toast","waitingToggleDesc":"Show a toast when another worktree starts waiting for you","waitingToast":"{name} is waiting for your input","soundToggle":"Waiting sound","soundToggleDesc":"Play a short chime when a worktree starts waiting for you. Takes effect after you click or press a key on the page."}}')}};
@@ -1,8 +1,8 @@
1
- "use strict";exports.id=9373,exports.ids=[9373],exports.modules={11501:(a,b,c)=>{c.d(b,{Ky:()=>j,RR:()=>k,ct:()=>l,fc:()=>i});var d=c(90384);let e=`${d.uz}(commit または未 commit の変更が存在すること)`,f=`${d.uz}(commit が存在すること。未 commit の変更は作業証跡として数えない)`,g=`${d.le}(変更ファイルが scope.allow の内側に収まっていること)`,h=`options.requireCommit (${d.aT})`;function i(a,b){let c=[];return b?.options.requireCommit&&c.push(h),a?.success.requireCommit&&c.push("success.requireCommit (task contract)"),{required:c.length>0,sources:c}}function j(a){let b=a.verify.gates;if(!b)return null;let c=[[d.uz,a.success.requireWorkEvidence],[d.le,a.success.requireScopeClean]];return[...c.filter(([a,c])=>c||b.includes(a)).map(([a])=>a),...b.filter(a=>!c.some(([b])=>b===a))]}function k(a,b){let c=a.verify.gates;if(!c)return[];if(!b)return[`verify.gates: declared ${c.join(", ")}, but ${d.aT} is missing or unreadable in this worktree, so the gate ids cannot be resolved`];let e=new Set([d.uz,d.le,...b.gates.map(a=>a.id)]),f=c.filter(a=>!e.has(a));return 0===f.length?[]:[`verify.gates: unknown gate id(s) ${f.join(", ")}. Declared in ${d.aT}: ${[...e].join(", ")}`]}function l(a,b){let c=["## 実行契約"];c.push(a.scope.allow.length>0?`- 変更してよいのは次のパスのみ: ${a.scope.allow.join(", ")}`:"- 変更パスの制限: なし(scope.allow が未宣言)"),a.scope.deny.length>0&&c.push(`- 変更してはならないパス: ${a.scope.deny.join(", ")}`),c.push(i(a,b).required?"- 作業完了後は必ず commit すること(未 commit の作業は未完了とみなされる)":"- 作業完了後は commit すること(ただし work-evidence は未 commit の変更も作業証跡として認めるため、commit の有無そのものは検査されない)");let h=function(a,b){if(!b)return[];let c=i(a,b).required?f:e,h=new Map([[d.uz,c],[d.le,g]]),k=j(a);if(!k){let d=[c];return a.success.requireScopeClean&&d.push(g),[...d,...b.gates.map(a=>a.command)]}let l=new Map(b.gates.map(a=>[a.id,a.command]));return k.map(a=>h.get(a)??l.get(a))}(a,b);return c.push(h.length>0?`- 完了条件: 次の検証コマンドがすべて成功すること: ${h.join(" / ")}`:`- 完了条件: ${d.aT} に検証ゲートが宣言されていないため、検証コマンドは無い`),`${c.join("\n")}
1
+ "use strict";exports.id=9373,exports.ids=[9373],exports.modules={11501:(a,b,c)=>{c.d(b,{Ky:()=>j,RR:()=>l,cI:()=>k,ct:()=>m,fc:()=>i});var d=c(90384);let e=`${d.uz}(commit または未 commit の変更が存在すること)`,f=`${d.uz}(commit が存在すること。未 commit の変更は作業証跡として数えない)`,g=`${d.le}(変更ファイルが scope.allow の内側に収まっていること)`,h=`options.requireCommit (${d.aT})`;function i(a,b){let c=[];return b?.options.requireCommit&&c.push(h),a?.success.requireCommit&&c.push("success.requireCommit (task contract)"),{required:c.length>0,sources:c}}function j(a){let b=a.verify.gates;if(!b)return null;let c=[[d.uz,a.success.requireWorkEvidence],[d.le,a.success.requireScopeClean]];return[...c.filter(([a,c])=>c||b.includes(a)).map(([a])=>a),...b.filter(a=>!c.some(([b])=>b===a))]}function k(a){return a.verify.gateDefinitions??[]}function l(a,b){let c=a.verify.gates,e=k(a),f=[];if(!b)return e.length>0&&f.push(`verify.gateDefinitions: declared ${e.map(a=>a.id).join(", ")}, but ${d.aT} is missing or unreadable in this worktree, so no verification run can execute them`),c&&f.push(`verify.gates: declared ${c.join(", ")}, but ${d.aT} is missing or unreadable in this worktree, so the gate ids cannot be resolved`),f;let g=b.gates.map(a=>a.id),h=e.map(a=>a.id).filter(a=>g.includes(a));if(h.length>0&&f.push(`verify.gateDefinitions: gate id(s) ${h.join(", ")} are already declared in ${d.aT}. A contract may add gates, never redefine the repository's own — rename the contract gate.`),c){let a=new Set([d.uz,d.le,...g]),b=new Set(e.map(a=>a.id)),h=c.filter(c=>!a.has(c)&&!b.has(c));if(h.length>0){let c=[`Declared in ${d.aT}: ${[...a].join(", ")}`];b.size>0&&c.push(`in verify.gateDefinitions: ${[...b].join(", ")}`),f.push(`verify.gates: unknown gate id(s) ${h.join(", ")}. ${c.join("; ")}`)}}return f}function m(a,b){let c=["## 実行契約"];c.push(a.scope.allow.length>0?`- 変更してよいのは次のパスのみ: ${a.scope.allow.join(", ")}`:"- 変更パスの制限: なし(scope.allow が未宣言)"),a.scope.deny.length>0&&c.push(`- 変更してはならないパス: ${a.scope.deny.join(", ")}`),c.push(i(a,b).required?"- 作業完了後は必ず commit すること(未 commit の作業は未完了とみなされる)":"- 作業完了後は commit すること(ただし work-evidence は未 commit の変更も作業証跡として認めるため、commit の有無そのものは検査されない)");let h=function(a,b){if(!b)return[];let c=i(a,b).required?f:e,h=new Map([[d.uz,c],[d.le,g]]),l=[...b.gates,...k(a)],m=j(a);if(!m){let b=[c];return a.success.requireScopeClean&&b.push(g),[...b,...l.map(a=>a.command)]}let n=new Map(l.map(a=>[a.id,a.command]));return m.map(a=>h.get(a)??n.get(a))}(a,b);return c.push(h.length>0?`- 完了条件: 次の検証コマンドがすべて成功すること: ${h.join(" / ")}`:`- 完了条件: ${d.aT} に検証ゲートが宣言されていないため、検証コマンドは無い`),`${c.join("\n")}
2
2
 
3
3
  ## タスク
4
4
  ${a.goal}`}},74985:(a,b,c)=>{c.d(b,{Uq:()=>i,uT:()=>n});var d=c(33873),e=c(15194),f=c(77142),g=c(90384);let h=`options.requireEnvClean (${g.aT})`;function i(a,b){let c=[];return b?.options.requireEnvClean&&c.push(h),a&&!0===a.success.requireEnvClean&&c.push("success.requireEnvClean (task contract)"),{required:c.length>0,sources:c}}let j=[...e.XH].sort((a,b)=>b.length-a.length);function k(a,b,c){switch(a){case"tmux-sessions":return function(a,b){if(!a.startsWith(f.HL))return"unattributed";let c=a.slice(f.HL.length),d=j.find(a=>c.startsWith(`${a}-`));if(!d)return"unattributed";let e=c.slice(d.length+1);return e===b||e.startsWith(`${b}-`)?"self":"other"}(b.key,c.worktreeId);case"listeners":return function(a,b){if(!a)return"unattributed";let c=(0,d.resolve)(b),e=(0,d.resolve)(a);if(e===c||e.startsWith(c+d.sep))return"self";let f=(0,d.dirname)(c);return e!==f&&e.startsWith(f+d.sep)?"other":"unattributed"}(b.anchor,c.worktreePath);default:return"unattributed"}}function l(a,b){return{key:a.key,detail:a.detail,owner:b}}function m(a,b){let c=b.slice(0,25),d=b.length-c.length,e=c.map(b=>{let c=b.detail?` ${b.detail}`:"";return` ${a} ${b.key}${c} [${b.owner}]`});return d>0&&e.push(` ... and ${d} more`),e}async function n(a){let b,c=Date.now(),d=(a,b,d)=>({status:a,exitCode:d,startedAt:c,durationMs:Date.now()-c,logTail:b});if(!a.baseline)return d("error",function(a,b){let c=a?`task ${a}`:"this run",d=b.length>0?b.join(" and "):"nothing";return`${g.Q5}: UNKNOWN — no baseline snapshot exists for ${c}, so nothing can be compared. This is NOT "the environment is unchanged": no measurement was taken. A baseline is recorded when the task is created (\`send --contract\`) and only while the gate is switched on (currently: ${d}). Switch it on, then re-send the task.`}(a.taskId,a.sources),null);let e=a.capture??(()=>(0,f._8)({worktreeId:a.worktreeId}));try{b=await e()}catch(a){return d("error",`${g.Q5}: UNKNOWN — the current snapshot could not be taken: ${a instanceof Error?a.message:String(a)}`,null)}let h=function(a,b,c){let d=f.I1.map(d=>{let e=a.probes[d],f=b.probes[d];if(!e||"ok"!==e.status)return{probeId:d,status:"unknown",reason:`baseline probe unavailable: ${e?.reason??"not recorded"}`,added:[],ignoredAdded:[],removed:[]};if(!f||"ok"!==f.status)return{probeId:d,status:"unknown",reason:`current probe unavailable: ${f?.reason??"not recorded"}`,added:[],ignoredAdded:[],removed:[]};let g=new Set(e.entries.map(a=>a.key)),h=new Set(f.entries.map(a=>a.key)),i=[],j=[];for(let a of f.entries){if(g.has(a.key))continue;let b=k(d,a,c);("other"===b?j:i).push(l(a,b))}let m=e.entries.filter(a=>!h.has(a.key)).map(a=>l(a,k(d,a,c)));return{probeId:d,status:i.length+m.length>0?"violated":"clean",reason:null,added:i,ignoredAdded:j,removed:m}});return{status:d.some(a=>"violated"===a.status)?"violated":d.some(a=>"unknown"===a.status)?"unknown":"clean",probes:d}}(a.baseline,b,a),i=`${g.Q5}: baseline=${new Date(a.baseline.capturedAt).toISOString()} status=${h.status}`,j=`${i}
5
5
  ${function(a){let b=[];for(let c of a.probes){let a=f.J6[c.probeId];if("unknown"===c.status){b.push(` ${c.probeId} UNKNOWN (${a}): ${c.reason??"no reason recorded"}`);continue}if("clean"===c.status){let d=c.ignoredAdded.length>0?` (${c.ignoredAdded.length} addition(s) attributed to another worktree)`:"";b.push(` ${c.probeId} clean (${a})${d}`);continue}for(let d of(b.push(` ${c.probeId} VIOLATED (${a}): +${c.added.length} -${c.removed.length}`),b.push(...m("+",c.added)),b.push(...m("-",c.removed)),c.ignoredAdded))b.push(` \xb7 ${d.key} (ignored: belongs to another worktree)`)}return b.join("\n")}(h)}`;return"clean"===h.status?d("passed",j,0):"unknown"===h.status?d("error",`${j}
6
6
  UNKNOWN is not a pass: at least one probe could not be compared, so the environment was not measured.`,null):d("failed",`${j}
7
- Anything listed under "+" was started or created during this task and left behind — stop it by PID and remove it. Anything under "-" existed when the task started and is now gone — it was killed or deleted; restart or restore it. Never stop a process by pattern (\`pkill -f\`): it takes every process whose command line matches, which is how the production server was stopped in #1739.`,1)}},77142:(a,b,c)=>{c.d(b,{HL:()=>r,I1:()=>j,J6:()=>k,_8:()=>w,dV:()=>A,g9:()=>B});var d=c(79646),e=c(29021),f=c(21820),g=c(33873),h=c(87447);let i=(0,c(72626).h)("lib/verification/env-snapshot"),j=["listeners","tmux-sessions","home-entries","commandmate-entries"],k={listeners:"CommandMate TCP listeners","tmux-sessions":"mcbd-* tmux sessions","home-entries":"$HOME entries","commandmate-entries":"~/.commandmate entries"},l={run:function(a,b){return new Promise(c=>{(0,d.execFile)(a,b,{timeout:5e3,maxBuffer:4194304,encoding:"utf8"},(b,d,e)=>b?"number"!=typeof b.code||b.killed?void c({code:null,stdout:d,stderr:e,failure:b.killed?`${a} exceeded 5000ms and was terminated`:`${a} could not be run: ${b.message}`}):void c({code:b.code,stdout:d,stderr:e,failure:null}):void c({code:0,stdout:d,stderr:e,failure:null}))})},readDir:a=>(0,e.readdirSync)(a),homeDir:()=>(0,f.homedir)()},m=/commandmate|dist\/server\/server\.js|next-server|next (dev|start)|server\.ts/i;function n(a){let b=[],c=null;for(let d of a.split("\n")){if(""===d)continue;let a=d[0],e=d.slice(1);if("p"===a){let a=Number(e);if(!Number.isInteger(a)){c=null;continue}c={pid:a,fields:new Map},b.push(c);continue}if(!c)continue;let f=c.fields.get(a);f?f.push(e):c.fields.set(a,[e])}return b}function o(a){return{status:"unavailable",entries:[],reason:a}}function p(a){let b=new Map;for(let c of a)b.has(c.key)||b.set(c.key,c);return{status:"ok",entries:[...b.values()].sort((a,b)=>a.key<b.key?-1:+(a.key>b.key)),reason:null}}async function q(a){let b=await a.run("lsof",["-nP","-iTCP","-sTCP:LISTEN","-F","pcn"]);if(null!==b.failure)return o(b.failure);if(0!==b.code&&1!==b.code)return o(`lsof exited ${b.code}: ${b.stderr.trim()||"no diagnostic output"}`);let c=n(b.stdout);if(0===c.length)return p([]);let d=await a.run("ps",["-A","-o","pid=,command="]);if(null!==d.failure||0!==d.code)return o(d.failure??`ps exited ${d.code}: ${d.stderr.trim()||"no diagnostic output"}`);let e=function(a){let b=new Map;for(let c of a.split("\n")){let a=/^\s*(\d+)\s+(.*)$/.exec(c);a&&b.set(Number(a[1]),a[2].trim())}return b}(d.stdout),f=c.filter(a=>{let b=e.get(a.pid);return void 0!==b&&m.test(b)});if(0===f.length)return p([]);let g=new Map,h=f.map(a=>String(a.pid)),i=await a.run("lsof",["-a","-d","cwd","-p",h.join(","),"-F","pn"]);if(null===i.failure&&(0===i.code||1===i.code))for(let a of n(i.stdout)){let[b]=a.fields.get("n")??[];b&&g.set(a.pid,b)}let j=[];for(let a of f){let b=a.fields.get("c")?.[0]??"unknown";for(let c of a.fields.get("n")??[]){let d=function(a){let b=a.lastIndexOf(":");if(b<0)return null;let c=a.slice(b+1);return/^\d+$/.test(c)?c:null}(c);d&&j.push({key:`tcp/${d}`,detail:`${b} pid=${a.pid}`,anchor:g.get(a.pid)??null})}}return p(j)}let r="mcbd-";async function s(a){let b=await a.run("tmux",["list-sessions","-F","#{session_name}"]);return null!==b.failure?o(b.failure):0!==b.code?/no server running|error connecting to|no sessions/i.test(b.stderr)?p([]):o(`tmux list-sessions exited ${b.code}: ${b.stderr.trim()||"no diagnostic output"}`):p(b.stdout.split("\n").map(a=>a.trim()).filter(a=>a.startsWith(r)).map(a=>({key:a,detail:null,anchor:null})))}let t=[/-wal$/,/-shm$/,/-journal$/,/^\.DS_Store$/],u="env-snapshots";function v(a,b,{missingIsEmpty:c}){let d;try{d=a.readDir(b)}catch(d){let a=d.code;if(c&&"ENOENT"===a)return p([]);return o(`could not list ${b}: ${d.message}`)}return p(d.filter(a=>!(a===u||t.some(b=>b.test(a)))).map(a=>({key:a,detail:null,anchor:null})))}async function w(a){let b=a.deps??l,[c,d]=await Promise.all([q(b).catch(a=>o(`listeners probe threw: ${a.message}`)),s(b).catch(a=>o(`tmux probe threw: ${a.message}`))]);return{version:1,capturedAt:a.now??Date.now(),worktreeId:a.worktreeId,probes:{listeners:c,"tmux-sessions":d,"home-entries":v(b,b.homeDir(),{missingIsEmpty:!1}),"commandmate-entries":v(b,(0,g.join)(b.homeDir(),".commandmate"),{missingIsEmpty:!0})}}}function x(){return(0,g.join)((0,g.dirname)((0,h._$)().CM_DB_PATH),u)}let y=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function z(a,b){return y.test(b)?(0,g.join)(a,`${b}.json`):null}function A(a,b,c=x()){let d=z(c,a);if(!d)return i.warn("env-snapshot-rejected-task-id",{taskId:a}),!1;try{return(0,e.mkdirSync)(c,{recursive:!0,mode:448}),(0,e.writeFileSync)(d,JSON.stringify(b),{encoding:"utf8",mode:384}),!function(a,b){let c;try{c=(0,e.readdirSync)(a)}catch{return}for(let d of c){if(!d.endsWith(".json"))continue;let c=(0,g.join)(a,d);try{b-(0,e.statSync)(c).mtimeMs>2592e6&&(0,e.rmSync)(c,{force:!0})}catch{}}}(c,b.capturedAt),!0}catch(b){return i.warn("env-snapshot-write-failed",{taskId:a,error:b instanceof Error?b.message:String(b)}),!1}}function B(a,b=x()){let c=z(b,a);if(!c)return null;try{let a=JSON.parse((0,e.readFileSync)(c,"utf8"));if(!function(a){if("object"!=typeof a||null===a||1!==a.version||"number"!=typeof a.capturedAt)return!1;let b=a.probes;return"object"==typeof b&&null!==b&&j.every(a=>{var c;return"object"==typeof(c=b[a])&&null!==c&&("ok"===c.status||"unavailable"===c.status)&&Array.isArray(c.entries)})}(a))return null;return a}catch{return null}}},90384:(a,b,c)=>{c.d(b,{Q5:()=>i,Yp:()=>p,aT:()=>k,le:()=>h,uz:()=>g,yR:()=>v});var d=c(29021),e=c(33873),f=c(4689);let g="work-evidence",h="scope",i="env-clean",j=[g,h,i],k=".commandmate/verify.yaml",l=/^[a-z0-9][a-z0-9-]{0,31}$/,m=["version","gates","options"],n=["id","command","timeoutSec"],o=["baseRef","skipInPrimaryCheckout","maxLogTailBytes","requireCommit","requireEnvClean"];class p extends Error{constructor(a){super(`invalid verify config:
8
- ${a.map(a=>` - ${a}`).join("\n")}`),this.name="VerifyConfigError",this.issues=a}}function q(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function r(a){return"number"==typeof a?Number.isInteger(a)?a:null:"string"==typeof a&&/^-?\d+$/.test(a)?Number(a):null}function s(a){return"boolean"==typeof a?a:"true"===a||"false"!==a&&null}function t(a){return void 0===a?"nothing":null===a?"null":"string"==typeof a?JSON.stringify(a):Array.isArray(a)?"a list":"object"==typeof a?"a mapping":String(a)}function u(a,b,c,d){for(let e of Object.keys(a))b.includes(e)||d.push(`${c}: unknown key "${e}" (v1 is a closed set)`)}function v(a){let b,c,g=(0,e.join)(a,k);try{b=(0,d.readFileSync)(g,"utf8")}catch(a){if("ENOENT"===a.code)return null;throw new p([`${g}: ${a.message}`])}var h=b;try{c=(0,f.qg)(h)}catch(a){throw new p([`${g}: YAML parse error: ${a.message}`])}if(!q(c))throw new p([`${g}: expected a YAML mapping at the top level (got ${t(c)})`]);let i=[];u(c,m,"top level",i),"version"in c?1!==r(c.version)&&i.push(`version: must be 1 (got ${t(c.version)})`):i.push('version: required, v1 configs must declare "version: 1"');let v=function(a,b){if(null==a)return b.push("gates: required, at least one gate must be defined"),[];if(!Array.isArray(a))return b.push(`gates: must be a list (got ${t(a)})`),[];if(0===a.length)return b.push("gates: at least one gate must be defined"),[];let c=[],d=new Set;return a.forEach((a,e)=>{let f=`gates[${e}]`,g=b.length;if(!q(a))return void b.push(`${f}: must be a mapping (got ${t(a)})`);u(a,n,f,b),"string"!=typeof a.id||""===a.id?b.push(`${f}.id: required, must be a non-empty string (got ${t(a.id)})`):l.test(a.id)?j.includes(a.id)?b.push(`${f}.id: "${a.id}" is reserved for a built-in gate`):d.has(a.id)?b.push(`${f}.id: duplicate gate id "${a.id}"`):d.add(a.id):b.push(`${f}.id: "${a.id}" must match ${l.source}`),("string"!=typeof a.command||""===a.command.trim())&&b.push(`${f}.command: required, must be a non-empty string (got ${t(a.command)})`);let h=600;if(void 0!==a.timeoutSec){let c=r(a.timeoutSec);null===c?b.push(`${f}.timeoutSec: must be an integer (got ${t(a.timeoutSec)})`):c<1||c>7200?b.push(`${f}.timeoutSec: must be 1..7200 (got ${c})`):h=c}b.length===g&&c.push({id:a.id,command:a.command,timeoutSec:h})}),c}(c.gates,i),w=function(a,b){let c={baseRef:null,skipInPrimaryCheckout:!0,maxLogTailBytes:8192,requireCommit:!1,requireEnvClean:!1};if(null==a)return c;if(!q(a))return b.push(`options: must be a mapping (got ${t(a)})`),c;if(u(a,o,"options",b),void 0!==a.baseRef&&("string"!=typeof a.baseRef||""===a.baseRef.trim()?b.push(`options.baseRef: must be a non-empty string (got ${t(a.baseRef)})`):c.baseRef=a.baseRef),void 0!==a.skipInPrimaryCheckout){let d=s(a.skipInPrimaryCheckout);null===d?b.push(`options.skipInPrimaryCheckout: must be true or false (got ${t(a.skipInPrimaryCheckout)})`):c.skipInPrimaryCheckout=d}if(void 0!==a.requireCommit){let d=s(a.requireCommit);null===d?b.push(`options.requireCommit: must be true or false (got ${t(a.requireCommit)})`):c.requireCommit=d}if(void 0!==a.requireEnvClean){let d=s(a.requireEnvClean);null===d?b.push(`options.requireEnvClean: must be true or false (got ${t(a.requireEnvClean)})`):c.requireEnvClean=d}if(void 0!==a.maxLogTailBytes){let d=r(a.maxLogTailBytes);null===d?b.push(`options.maxLogTailBytes: must be an integer (got ${t(a.maxLogTailBytes)})`):d<0||d>1048576?b.push(`options.maxLogTailBytes: must be 0..1048576 (got ${d})`):c.maxLogTailBytes=d}return c}(c.options,i);if(i.length>0)throw new p(i);return{version:1,gates:v,options:w}}}};
7
+ Anything listed under "+" was started or created during this task and left behind — stop it by PID and remove it. Anything under "-" existed when the task started and is now gone — it was killed or deleted; restart or restore it. Never stop a process by pattern (\`pkill -f\`): it takes every process whose command line matches, which is how the production server was stopped in #1739.`,1)}},77142:(a,b,c)=>{c.d(b,{HL:()=>r,I1:()=>j,J6:()=>k,_8:()=>w,dV:()=>A,g9:()=>B});var d=c(79646),e=c(29021),f=c(21820),g=c(33873),h=c(87447);let i=(0,c(72626).h)("lib/verification/env-snapshot"),j=["listeners","tmux-sessions","home-entries","commandmate-entries"],k={listeners:"CommandMate TCP listeners","tmux-sessions":"mcbd-* tmux sessions","home-entries":"$HOME entries","commandmate-entries":"~/.commandmate entries"},l={run:function(a,b){return new Promise(c=>{(0,d.execFile)(a,b,{timeout:5e3,maxBuffer:4194304,encoding:"utf8"},(b,d,e)=>b?"number"!=typeof b.code||b.killed?void c({code:null,stdout:d,stderr:e,failure:b.killed?`${a} exceeded 5000ms and was terminated`:`${a} could not be run: ${b.message}`}):void c({code:b.code,stdout:d,stderr:e,failure:null}):void c({code:0,stdout:d,stderr:e,failure:null}))})},readDir:a=>(0,e.readdirSync)(a),homeDir:()=>(0,f.homedir)()},m=/commandmate|dist\/server\/server\.js|next-server|next (dev|start)|server\.ts/i;function n(a){let b=[],c=null;for(let d of a.split("\n")){if(""===d)continue;let a=d[0],e=d.slice(1);if("p"===a){let a=Number(e);if(!Number.isInteger(a)){c=null;continue}c={pid:a,fields:new Map},b.push(c);continue}if(!c)continue;let f=c.fields.get(a);f?f.push(e):c.fields.set(a,[e])}return b}function o(a){return{status:"unavailable",entries:[],reason:a}}function p(a){let b=new Map;for(let c of a)b.has(c.key)||b.set(c.key,c);return{status:"ok",entries:[...b.values()].sort((a,b)=>a.key<b.key?-1:+(a.key>b.key)),reason:null}}async function q(a){let b=await a.run("lsof",["-nP","-iTCP","-sTCP:LISTEN","-F","pcn"]);if(null!==b.failure)return o(b.failure);if(0!==b.code&&1!==b.code)return o(`lsof exited ${b.code}: ${b.stderr.trim()||"no diagnostic output"}`);let c=n(b.stdout);if(0===c.length)return p([]);let d=await a.run("ps",["-A","-o","pid=,command="]);if(null!==d.failure||0!==d.code)return o(d.failure??`ps exited ${d.code}: ${d.stderr.trim()||"no diagnostic output"}`);let e=function(a){let b=new Map;for(let c of a.split("\n")){let a=/^\s*(\d+)\s+(.*)$/.exec(c);a&&b.set(Number(a[1]),a[2].trim())}return b}(d.stdout),f=c.filter(a=>{let b=e.get(a.pid);return void 0!==b&&m.test(b)});if(0===f.length)return p([]);let g=new Map,h=f.map(a=>String(a.pid)),i=await a.run("lsof",["-a","-d","cwd","-p",h.join(","),"-F","pn"]);if(null===i.failure&&(0===i.code||1===i.code))for(let a of n(i.stdout)){let[b]=a.fields.get("n")??[];b&&g.set(a.pid,b)}let j=[];for(let a of f){let b=a.fields.get("c")?.[0]??"unknown";for(let c of a.fields.get("n")??[]){let d=function(a){let b=a.lastIndexOf(":");if(b<0)return null;let c=a.slice(b+1);return/^\d+$/.test(c)?c:null}(c);d&&j.push({key:`tcp/${d}`,detail:`${b} pid=${a.pid}`,anchor:g.get(a.pid)??null})}}return p(j)}let r="mcbd-";async function s(a){let b=await a.run("tmux",["list-sessions","-F","#{session_name}"]);return null!==b.failure?o(b.failure):0!==b.code?/no server running|error connecting to|no sessions/i.test(b.stderr)?p([]):o(`tmux list-sessions exited ${b.code}: ${b.stderr.trim()||"no diagnostic output"}`):p(b.stdout.split("\n").map(a=>a.trim()).filter(a=>a.startsWith(r)).map(a=>({key:a,detail:null,anchor:null})))}let t=[/-wal$/,/-shm$/,/-journal$/,/^\.DS_Store$/],u="env-snapshots";function v(a,b,{missingIsEmpty:c}){let d;try{d=a.readDir(b)}catch(d){let a=d.code;if(c&&"ENOENT"===a)return p([]);return o(`could not list ${b}: ${d.message}`)}return p(d.filter(a=>!(a===u||t.some(b=>b.test(a)))).map(a=>({key:a,detail:null,anchor:null})))}async function w(a){let b=a.deps??l,[c,d]=await Promise.all([q(b).catch(a=>o(`listeners probe threw: ${a.message}`)),s(b).catch(a=>o(`tmux probe threw: ${a.message}`))]);return{version:1,capturedAt:a.now??Date.now(),worktreeId:a.worktreeId,probes:{listeners:c,"tmux-sessions":d,"home-entries":v(b,b.homeDir(),{missingIsEmpty:!1}),"commandmate-entries":v(b,(0,g.join)(b.homeDir(),".commandmate"),{missingIsEmpty:!0})}}}function x(){return(0,g.join)((0,g.dirname)((0,h._$)().CM_DB_PATH),u)}let y=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function z(a,b){return y.test(b)?(0,g.join)(a,`${b}.json`):null}function A(a,b,c=x()){let d=z(c,a);if(!d)return i.warn("env-snapshot-rejected-task-id",{taskId:a}),!1;try{return(0,e.mkdirSync)(c,{recursive:!0,mode:448}),(0,e.writeFileSync)(d,JSON.stringify(b),{encoding:"utf8",mode:384}),!function(a,b){let c;try{c=(0,e.readdirSync)(a)}catch{return}for(let d of c){if(!d.endsWith(".json"))continue;let c=(0,g.join)(a,d);try{b-(0,e.statSync)(c).mtimeMs>2592e6&&(0,e.rmSync)(c,{force:!0})}catch{}}}(c,b.capturedAt),!0}catch(b){return i.warn("env-snapshot-write-failed",{taskId:a,error:b instanceof Error?b.message:String(b)}),!1}}function B(a,b=x()){let c=z(b,a);if(!c)return null;try{let a=JSON.parse((0,e.readFileSync)(c,"utf8"));if(!function(a){if("object"!=typeof a||null===a||1!==a.version||"number"!=typeof a.capturedAt)return!1;let b=a.probes;return"object"==typeof b&&null!==b&&j.every(a=>{var c;return"object"==typeof(c=b[a])&&null!==c&&("ok"===c.status||"unavailable"===c.status)&&Array.isArray(c.entries)})}(a))return null;return a}catch{return null}}},90384:(a,b,c)=>{c.d(b,{D:()=>l,Q5:()=>i,UL:()=>v,Yp:()=>p,aT:()=>k,le:()=>h,uz:()=>g,yR:()=>w});var d=c(29021),e=c(33873),f=c(4689);let g="work-evidence",h="scope",i="env-clean",j=[g,h,i],k=".commandmate/verify.yaml",l=/^[a-z0-9][a-z0-9-]{0,31}$/,m=["version","gates","options"],n=["id","command","timeoutSec"],o=["baseRef","skipInPrimaryCheckout","maxLogTailBytes","requireCommit","requireEnvClean"];class p extends Error{constructor(a){super(`invalid verify config:
8
+ ${a.map(a=>` - ${a}`).join("\n")}`),this.name="VerifyConfigError",this.issues=a}}function q(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function r(a){return"number"==typeof a?Number.isInteger(a)?a:null:"string"==typeof a&&/^-?\d+$/.test(a)?Number(a):null}function s(a){return"boolean"==typeof a?a:"true"===a||"false"!==a&&null}function t(a){return void 0===a?"nothing":null===a?"null":"string"==typeof a?JSON.stringify(a):Array.isArray(a)?"a list":"object"==typeof a?"a mapping":String(a)}function u(a,b,c,d){for(let e of Object.keys(a))b.includes(e)||d.push(`${c}: unknown key "${e}" (v1 is a closed set)`)}function v(a,b,c){if(!Array.isArray(a))return c.push(`${b}: must be a list (got ${t(a)})`),[];let d=[],e=new Set;return a.forEach((a,f)=>{!function(a,b,c,d,e){let f=e.length;if(!q(a))return e.push(`${b}: must be a mapping (got ${t(a)})`);u(a,n,b,e),"string"!=typeof a.id||""===a.id?e.push(`${b}.id: required, must be a non-empty string (got ${t(a.id)})`):l.test(a.id)?j.includes(a.id)?e.push(`${b}.id: "${a.id}" is reserved for a built-in gate`):c.has(a.id)?e.push(`${b}.id: duplicate gate id "${a.id}"`):c.add(a.id):e.push(`${b}.id: "${a.id}" must match ${l.source}`),("string"!=typeof a.command||""===a.command.trim())&&e.push(`${b}.command: required, must be a non-empty string (got ${t(a.command)})`);let g=600;if(void 0!==a.timeoutSec){let c=r(a.timeoutSec);null===c?e.push(`${b}.timeoutSec: must be an integer (got ${t(a.timeoutSec)})`):c<1||c>7200?e.push(`${b}.timeoutSec: must be 1..7200 (got ${c})`):g=c}e.length===f&&d.push({id:a.id,command:a.command,timeoutSec:g})}(a,`${b}[${f}]`,e,d,c)}),d}function w(a){let b,c=(0,e.join)(a,k);try{b=(0,d.readFileSync)(c,"utf8")}catch(a){if("ENOENT"===a.code)return null;throw new p([`${c}: ${a.message}`])}return function(a,b){var c;let d;try{d=(0,f.qg)(a)}catch(a){throw new p([`${b}: YAML parse error: ${a.message}`])}if(!q(d))throw new p([`${b}: expected a YAML mapping at the top level (got ${t(d)})`]);let e=[];u(d,m,"top level",e),"version"in d?1!==r(d.version)&&e.push(`version: must be 1 (got ${t(d.version)})`):e.push('version: required, v1 configs must declare "version: 1"');let g=(c=d.gates,null==c?(e.push("gates: required, at least one gate must be defined"),[]):Array.isArray(c)&&0===c.length?(e.push("gates: at least one gate must be defined"),[]):v(c,"gates",e)),h=function(a,b){let c={baseRef:null,skipInPrimaryCheckout:!0,maxLogTailBytes:8192,requireCommit:!1,requireEnvClean:!1};if(null==a)return c;if(!q(a))return b.push(`options: must be a mapping (got ${t(a)})`),c;if(u(a,o,"options",b),void 0!==a.baseRef&&("string"!=typeof a.baseRef||""===a.baseRef.trim()?b.push(`options.baseRef: must be a non-empty string (got ${t(a.baseRef)})`):c.baseRef=a.baseRef),void 0!==a.skipInPrimaryCheckout){let d=s(a.skipInPrimaryCheckout);null===d?b.push(`options.skipInPrimaryCheckout: must be true or false (got ${t(a.skipInPrimaryCheckout)})`):c.skipInPrimaryCheckout=d}if(void 0!==a.requireCommit){let d=s(a.requireCommit);null===d?b.push(`options.requireCommit: must be true or false (got ${t(a.requireCommit)})`):c.requireCommit=d}if(void 0!==a.requireEnvClean){let d=s(a.requireEnvClean);null===d?b.push(`options.requireEnvClean: must be true or false (got ${t(a.requireEnvClean)})`):c.requireEnvClean=d}if(void 0!==a.maxLogTailBytes){let d=r(a.maxLogTailBytes);null===d?b.push(`options.maxLogTailBytes: must be an integer (got ${t(a.maxLogTailBytes)})`):d<0||d>1048576?b.push(`options.maxLogTailBytes: must be 0..1048576 (got ${d})`):c.maxLogTailBytes=d}return c}(d.options,e);if(e.length>0)throw new p(e);return{version:1,gates:g,options:h}}(b,c)}}};
@@ -1,3 +1,3 @@
1
- "use strict";exports.id=9687,exports.ids=[9687],exports.modules={12462:(a,b,c)=>{c.d(b,{T8:()=>j,o4:()=>k});var d=c(31766),e=c(56791),f=c(69297),g=c(82450),h=c(15194);let i=(0,c(72626).h)("assistant-response-saver");function j(a,b){switch(b){case"claude":return(0,g.NN)(a);case"gemini":return(0,g.IS)(a);case"opencode":return(0,g.aW)(a);case"copilot":return(0,g.LH)(a);default:return a.trim()}}async function k(a,b,c,g,k){let l=k??c;try{let m;if((0,h.VA)(c))return null;let n=(0,e.getSessionState)(a,b,l),o=n?.lastCapturedLine||0;try{m=await (0,d.Wh)(b,c,1e4,k)}catch{return i.info("failed-to-capture"),null}if(!m)return null;let p=m.split("\n"),q=p.length;for(;q>0&&""===p[q-1].trim();)q--;let r=q,{bufferReset:s,reason:t}=r>0&&o>25&&r+25<o?{bufferReset:!0,reason:"shrink"}:r>0&&o>50&&r<50?{bufferReset:!0,reason:"restart"}:{bufferReset:!1,reason:null};s&&i.info("buffer:reset-detected",{reason:t,currentLineCount:r,lastCapturedLine:o});let u=s?0:o;if(!s&&r<=o)return r<o&&((0,e.updateSessionState)(a,b,c,r,k),i.info("position:corrected-stale",{from:o,to:r})),null;let v=p.slice(u).join("\n"),w=j(v,c);if(!w||""===w.trim())return(0,e.updateSessionState)(a,b,c,r,k),i.debug("response:empty-after-clean",{currentLineCount:r}),null;let x=new Date(g.getTime()-1),y=(0,e.createMessage)(a,{worktreeId:b,role:"assistant",content:w,messageType:"normal",timestamp:x,cliToolId:c,instanceId:l});return(0,e.updateSessionState)(a,b,c,r,k),(0,f.broadcastMessage)("message",{worktreeId:b,message:y}),i.info("response:saved",{fromLine:o,toLine:r}),y}catch(a){return i.error("error:",{error:a instanceof Error?a.message:String(a)}),null}}},39687:(a,b,c)=>{c.d(b,{d:()=>p});var d=c(56791),e=c(31268),f=c(15194),g=c(95220),h=c(12462),i=c(11665),j=c(93997),k=c(72626),l=c(58707),m=c(56263);let n=(0,k.h)("session/send-user-message");function o(a){return a instanceof Error?a.message:String(a)}async function p(a,b){let{worktreeId:c,content:k,cliToolId:p,instanceId:q,absoluteImagePath:r,copilotModel:s}=b,t=b.messageType??"normal",u=e.s.getInstance().getTool(p),v=await (0,l.a3)(c,p,q,{ignoreStructured:b.ignoreStructuredPromptGuard});if(v.waiting)return n.info("send-refused-prompt-waiting",{worktreeId:c,cliToolId:p,reason:v.reason,blockedBy:v.blockedBy}),{ok:!1,stage:"prompt_waiting",error:(0,l.br)(c,v.blockedBy)};let w=new Date;try{await (0,h.o4)(a,c,p,w,q)}catch(a){n.error("failed-to-save-pending-assistant-response:",{error:o(a)})}let x=null;try{let b=(0,d.getMessages)(a,c,{limit:1,cliToolId:p,instanceId:q});b.length>0&&"user"===b[0].role&&b[0].content===k&&(x=b[0].id)}catch(a){n.error("failed-to-detect-orphaned-messages:",{error:o(a)})}if(s&&"copilot"===p)try{await u.sendModelCommand(c,s,q),n.info("copilot-model-command-sent",{model:s})}catch(a){return n.error("failed-to-send-model-command:",{error:o(a)}),{ok:!1,stage:"model",error:o(a)}}try{if(r)if((0,f._J)(u))await u.sendMessageWithImage(c,k,r,q);else{let a=k?`${k}
1
+ "use strict";exports.id=9687,exports.ids=[9687],exports.modules={12462:(a,b,c)=>{c.d(b,{T8:()=>j,o4:()=>k});var d=c(31766),e=c(56791),f=c(95620),g=c(82450),h=c(15194);let i=(0,c(72626).h)("assistant-response-saver");function j(a,b){switch(b){case"claude":return(0,g.NN)(a);case"gemini":return(0,g.IS)(a);case"opencode":return(0,g.aW)(a);case"copilot":return(0,g.LH)(a);default:return a.trim()}}async function k(a,b,c,g,k){let l=k??c;try{let m;if((0,h.VA)(c))return null;let n=(0,e.getSessionState)(a,b,l),o=n?.lastCapturedLine||0;try{m=await (0,d.Wh)(b,c,1e4,k)}catch{return i.info("failed-to-capture"),null}if(!m)return null;let p=m.split("\n"),q=p.length;for(;q>0&&""===p[q-1].trim();)q--;let r=q,{bufferReset:s,reason:t}=r>0&&o>25&&r+25<o?{bufferReset:!0,reason:"shrink"}:r>0&&o>50&&r<50?{bufferReset:!0,reason:"restart"}:{bufferReset:!1,reason:null};s&&i.info("buffer:reset-detected",{reason:t,currentLineCount:r,lastCapturedLine:o});let u=s?0:o;if(!s&&r<=o)return r<o&&((0,e.updateSessionState)(a,b,c,r,k),i.info("position:corrected-stale",{from:o,to:r})),null;let v=p.slice(u).join("\n"),w=j(v,c);if(!w||""===w.trim())return(0,e.updateSessionState)(a,b,c,r,k),i.debug("response:empty-after-clean",{currentLineCount:r}),null;let x=new Date(g.getTime()-1),y=(0,e.createMessage)(a,{worktreeId:b,role:"assistant",content:w,messageType:"normal",timestamp:x,cliToolId:c,instanceId:l});return(0,e.updateSessionState)(a,b,c,r,k),(0,f.broadcastMessage)("message",{worktreeId:b,message:y}),i.info("response:saved",{fromLine:o,toLine:r}),y}catch(a){return i.error("error:",{error:a instanceof Error?a.message:String(a)}),null}}},39687:(a,b,c)=>{c.d(b,{d:()=>p});var d=c(56791),e=c(31268),f=c(15194),g=c(95220),h=c(12462),i=c(11665),j=c(93997),k=c(72626),l=c(58707),m=c(56263);let n=(0,k.h)("session/send-user-message");function o(a){return a instanceof Error?a.message:String(a)}async function p(a,b){let{worktreeId:c,content:k,cliToolId:p,instanceId:q,absoluteImagePath:r,copilotModel:s}=b,t=b.messageType??"normal",u=e.s.getInstance().getTool(p),v=await (0,l.a3)(c,p,q,{ignoreStructured:b.ignoreStructuredPromptGuard});if(v.waiting)return n.info("send-refused-prompt-waiting",{worktreeId:c,cliToolId:p,reason:v.reason,blockedBy:v.blockedBy}),{ok:!1,stage:"prompt_waiting",error:(0,l.br)(c,v.blockedBy)};let w=new Date;try{await (0,h.o4)(a,c,p,w,q)}catch(a){n.error("failed-to-save-pending-assistant-response:",{error:o(a)})}let x=null;try{let b=(0,d.getMessages)(a,c,{limit:1,cliToolId:p,instanceId:q});b.length>0&&"user"===b[0].role&&b[0].content===k&&(x=b[0].id)}catch(a){n.error("failed-to-detect-orphaned-messages:",{error:o(a)})}if(s&&"copilot"===p)try{await u.sendModelCommand(c,s,q),n.info("copilot-model-command-sent",{model:s})}catch(a){return n.error("failed-to-send-model-command:",{error:o(a)}),{ok:!1,stage:"model",error:o(a)}}try{if(r)if((0,f._J)(u))await u.sendMessageWithImage(c,k,r,q);else{let a=k?`${k}
2
2
 
3
3
  [添付画像: ${r}]`:`[添付画像: ${r}]`;await u.sendMessage(c,a,q)}else if("copilot"===p){let a=u.getSessionName(c,q),b=k.replace(/\n+/g," ").trim();await (0,i.V1)(a,b,!1),await new Promise(a=>setTimeout(a,m.wp)),await (0,i.KB)(a,["Enter"]),(0,j.gm)(a)}else await u.sendMessage(c,k,q)}catch(a){return n.error("failed-to-send-message-to:",{error:o(a)}),{ok:!1,stage:"send",error:o(a)}}let y=(0,d.createMessage)(a,{worktreeId:c,role:"user",content:k,messageType:t,timestamp:w,cliToolId:p,instanceId:q});if(x)try{(0,d.deleteMessageById)(a,x)&&n.info("cleaned-up-orphaned-user")}catch(a){n.error("failed-to-clean-up-orphaned-message:",{error:o(a)})}return(0,d.updateLastUserMessage)(a,c,k,w),(0,d.clearInProgressMessageId)(a,c,p,q),n.info("cleared-in-progress-message-for"),(0,g.startPolling)(c,p,q),{ok:!0,message:y}}},58707:(a,b,c)=>{c.d(b,{$n:()=>k,a3:()=>l,br:()=>m});var d=c(31268),e=c(31766),f=c(95595),g=c(34405),h=c(72626),i=c(30008);let j=(0,h.h)("prompt-waiting-guard"),k="PROMPT_WAITING";async function l(a,b,c,h){try{let k=d.s.getInstance().getTool(b);if(!await k.isRunning(a,c))return{waiting:!1};let l=await (0,e.Wh)(a,b,g._,c),m=(0,f.WC)(l,b),n=(0,i._G)({worktreeId:a,cliToolId:b,instanceId:c,scraper:{status:m.status,reason:m.reason,hasActivePrompt:m.hasActivePrompt},ignoreStructured:h?.ignoreStructured});if(!n.blocksSend)return null!==n.structuredSendBlockSuppressed&&j.info("structured-send-guard-not-applied",{worktreeId:a,cliToolId:b,instanceId:c,suppressed:n.structuredSendBlockSuppressed,promptWaitingSince:n.structured?.at??null}),{waiting:!1};return{waiting:!0,reason:n.blockReason??void 0,blockedBy:n.blockedBy??void 0}}catch(c){return j.warn("prompt-waiting-check-failed",{worktreeId:a,cliToolId:b,error:c instanceof Error?c.message:String(c)}),{waiting:!1}}}function m(a,b){let c=`${a} is waiting on a prompt. Sending now would type into the prompt's input line instead of reaching the agent, and would leave that text in place for the next answer. Answer the prompt first: \`commandmate respond ${a} <answer>\`.`;if("structured"!==b)return c;let d=Math.round(i.j0/6e4);return`${c} This dialog was reported by the agent's own hooks and is not visible to the terminal scraper, so if the pane looks idle the record has outlived its dialog: it stops blocking sends ${d} minutes after it was reported, or immediately with \`commandmate send ${a} <message> --ignore-structured-prompt\` (server-wide: ${i.F1}=off).`}}};
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-180bebdee221b6f4.js","static/chunks/4bd1b696-100b9d70ed4e49c1.js","static/chunks/1255-8cb587d9170b45ed.js","static/chunks/main-app-5d631b93b1219836.js"],rootMainFilesTree:{},pages:{"/_app":["static/chunks/webpack-180bebdee221b6f4.js","static/chunks/framework-eaf13c96191cb608.js","static/chunks/main-6092074a0dc78280.js","static/chunks/pages/_app-4b3fb5e477a0267f.js"],"/_error":["static/chunks/webpack-180bebdee221b6f4.js","static/chunks/framework-eaf13c96191cb608.js","static/chunks/main-6092074a0dc78280.js","static/chunks/pages/_error-c970d8b55ace1b48.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-9d892a9ff07c289d.js","static/chunks/4bd1b696-100b9d70ed4e49c1.js","static/chunks/1255-8cb587d9170b45ed.js","static/chunks/main-app-5d631b93b1219836.js"],rootMainFilesTree:{},pages:{"/_app":["static/chunks/webpack-9d892a9ff07c289d.js","static/chunks/framework-eaf13c96191cb608.js","static/chunks/main-6092074a0dc78280.js","static/chunks/pages/_app-4b3fb5e477a0267f.js"],"/_error":["static/chunks/webpack-9d892a9ff07c289d.js","static/chunks/framework-eaf13c96191cb608.js","static/chunks/main-6092074a0dc78280.js","static/chunks/pages/_error-c970d8b55ace1b48.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
@@ -17,11 +17,11 @@
17
17
  "wasm": [],
18
18
  "assets": [],
19
19
  "env": {
20
- "__NEXT_BUILD_ID": "wH6K6QNPHSdATFkVoIcy3",
21
- "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "P/8A8ZHiqH++CLAgAhOXagRaiUZv21et5A4yzPyoguU=",
22
- "__NEXT_PREVIEW_MODE_ID": "4175987ac1a757add7bd844fd7810b89",
23
- "__NEXT_PREVIEW_MODE_SIGNING_KEY": "8c137a1f3060a5e16ca812eb50a1ec9cec951c63cfa50c2e5e431e1b829cf7a4",
24
- "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "0143e3c7f71993a323a82e681a7b4d66684d3182362fcc65f6145a2d35cc9071"
20
+ "__NEXT_BUILD_ID": "ehkNc5xDMDkXlua08Bwq0",
21
+ "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "lqIPyiFpzU8Pa78MjP2JZYeiHFYrfYULKHk0AIPD+6o=",
22
+ "__NEXT_PREVIEW_MODE_ID": "96e5918eb1a47a4f975369c1536feb0c",
23
+ "__NEXT_PREVIEW_MODE_SIGNING_KEY": "e4f7a7c795d0e11e6d2676e24379472a2885d5da95c3a254e7d47ec334022e9f",
24
+ "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "a1957c50258f79ccb7e757346a603cd730220a3e6684713312ac196838978734"
25
25
  }
26
26
  }
27
27
  },