commandmate 0.31.2 → 0.31.3

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 (295) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +161 -161
  3. package/.next/app-path-routes-manifest.json +33 -33
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +15 -15
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
  9. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
  10. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/app/update-check/route.js +1 -1
  12. package/.next/server/app/api/app/update-check/route_client-reference-manifest.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.nft.json +1 -1
  16. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/assistant/messages/route.js +1 -1
  18. package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
  19. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/assistant/session/route.js +1 -1
  21. package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
  22. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/assistant/start/route.js +2 -2
  24. package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
  25. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/assistant/terminal/route.js +2 -2
  27. package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
  28. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
  30. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/capabilities/route.js +1 -1
  35. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/hooks/agent-event/route.js +1 -1
  44. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  45. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  47. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  48. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  50. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  51. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/push/escalation/route.js +2 -2
  55. package/.next/server/app/api/push/escalation/route.js.nft.json +1 -1
  56. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/push/subscriptions/route.js +1 -1
  58. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/push/vapid/route.js +2 -2
  60. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  61. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  67. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  68. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/repositories/clone/route.js +1 -1
  70. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  71. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/repositories/restore/route.js +1 -1
  74. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  75. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/repositories/route.js +1 -1
  77. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  78. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/repositories/scan/route.js +1 -1
  80. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  81. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/repositories/sync/route.js +1 -1
  83. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  84. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
  87. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  104. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  105. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  107. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  109. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  110. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  115. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  116. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  145. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  147. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  150. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  161. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  162. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  166. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  169. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  176. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  178. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  179. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  182. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  185. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  188. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  189. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  193. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  197. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  206. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/worktrees/route.js +1 -1
  211. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  212. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  214. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  215. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  217. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  218. package/.next/server/app/page_client-reference-manifest.js +1 -1
  219. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  220. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  221. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  222. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  223. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  224. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  225. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  226. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  227. package/.next/server/app/worktrees/[id]/page.js +11 -11
  228. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  229. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  230. package/.next/server/app-paths-manifest.json +33 -33
  231. package/.next/server/chunks/1058.js +1 -1
  232. package/.next/server/chunks/1068.js +1 -1
  233. package/.next/server/chunks/1191.js +1 -1
  234. package/.next/server/chunks/1886.js +1 -1
  235. package/.next/server/chunks/2119.js +1 -1
  236. package/.next/server/chunks/2445.js +1 -1
  237. package/.next/server/chunks/261.js +1 -1
  238. package/.next/server/chunks/2739.js +1 -1
  239. package/.next/server/chunks/3241.js +1 -1
  240. package/.next/server/chunks/3484.js +1 -0
  241. package/.next/server/chunks/358.js +1 -0
  242. package/.next/server/chunks/4325.js +1 -1
  243. package/.next/server/chunks/4393.js +1 -1
  244. package/.next/server/chunks/4443.js +1 -1
  245. package/.next/server/chunks/5017.js +1 -1
  246. package/.next/server/chunks/5120.js +1 -1
  247. package/.next/server/chunks/5164.js +1 -1
  248. package/.next/server/chunks/552.js +2 -2
  249. package/.next/server/chunks/595.js +8 -0
  250. package/.next/server/chunks/6130.js +1 -1
  251. package/.next/server/chunks/8800.js +1 -1
  252. package/.next/server/chunks/8918.js +3 -3
  253. package/.next/server/chunks/9123.js +1 -1
  254. package/.next/server/chunks/9130.js +2 -2
  255. package/.next/server/chunks/9627.js +3 -3
  256. package/.next/server/chunks/9696.js +2 -2
  257. package/.next/server/chunks/9798.js +2 -2
  258. package/.next/server/middleware-manifest.json +5 -5
  259. package/.next/server/pages/500.html +1 -1
  260. package/.next/server/server-reference-manifest.json +1 -1
  261. package/.next/static/chunks/{1783-11c9b4d8a52ebd91.js → 2813-de885de8a4b11910.js} +1 -1
  262. package/.next/static/chunks/4718-07ec4e10186928db.js +1 -0
  263. package/.next/static/chunks/app/worktrees/[id]/page-91b639c90795baa9.js +1 -0
  264. package/.next/static/css/acc4b9c3feb04287.css +1 -0
  265. package/.next/trace +13 -13
  266. package/dist/lib/detection/tools/verified-against.d.ts +24 -24
  267. package/dist/lib/detection/tools/verified-against.js +24 -24
  268. package/dist/server/locales/en/worktree.json +1402 -0
  269. package/dist/server/locales/ja/worktree.json +1402 -0
  270. package/dist/server/src/lib/db/chat-db.js +44 -1
  271. package/dist/server/src/lib/detection/cli-patterns.js +157 -23
  272. package/dist/server/src/lib/detection/model-info-extractor.js +185 -4
  273. package/dist/server/src/lib/detection/tools/antigravity/detect.js +105 -25
  274. package/dist/server/src/lib/detection/tools/antigravity/dialog.js +233 -0
  275. package/dist/server/src/lib/detection/tools/verified-against.js +24 -24
  276. package/dist/server/src/lib/hooks/hook-settings-generator.js +16 -0
  277. package/dist/server/src/lib/hooks/sources/claude/model-switch.js +169 -0
  278. package/dist/server/src/lib/hooks/sources/claude/source.js +14 -1
  279. package/dist/server/src/lib/polling/response-checker.js +17 -1
  280. package/dist/server/src/lib/push/index.js +13 -1
  281. package/dist/server/src/lib/push/model-change-push-notifier.js +174 -0
  282. package/dist/server/src/lib/push/push-sender.js +48 -20
  283. package/dist/server/src/lib/realtime/model-change-broadcast.js +171 -0
  284. package/dist/server/src/lib/realtime/types.js +19 -1
  285. package/dist/server/src/lib/realtime/waiting-broadcast.js +13 -0
  286. package/dist/server/src/lib/session/agent-event-state.js +344 -12
  287. package/package.json +1 -1
  288. package/.next/server/chunks/6894.js +0 -8
  289. package/.next/server/chunks/7187.js +0 -1
  290. package/.next/server/chunks/7472.js +0 -1
  291. package/.next/static/chunks/4718-0d4d93c4c75f336e.js +0 -1
  292. package/.next/static/chunks/app/worktrees/[id]/page-7a0915e32a2af4d3.js +0 -1
  293. package/.next/static/css/5c13ea243dfdcb66.css +0 -1
  294. /package/.next/static/{GiOqe8rfQGQ0NvzB5qr3q → 0hTIackGXw6v7diXJS6yN}/_buildManifest.js +0 -0
  295. /package/.next/static/{GiOqe8rfQGQ0NvzB5qr3q → 0hTIackGXw6v7diXJS6yN}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4718],{2317:(e,t,n)=>{n.d(t,{V:()=>i});var r=n(12115);function o(){try{let e="__localStorage_test__";return window.localStorage.setItem(e,"test"),window.localStorage.removeItem(e),!0}catch(e){return!1}}function i(e){let{key:t,defaultValue:n,validate:i,serialize:s=JSON.stringify,deserialize:a=JSON.parse}=e,l=(0,r.useRef)(n),c=(0,r.useRef)(i),u=(0,r.useRef)(s),d=(0,r.useRef)(a);l.current=n,c.current=i,u.current=s,d.current=a;let[f,p]=(0,r.useState)(!1),[g,m]=(0,r.useState)(n),y=(0,r.useCallback)(()=>{if(!o())return l.current;try{let e=window.localStorage.getItem(t);if(null===e)return l.current;let n=d.current(e);if(c.current)return c.current(n)?n:l.current;return n}catch(e){return l.current}},[t]),h=(0,r.useCallback)(e=>{if(o())try{let n=u.current(e);window.localStorage.setItem(t,n)}catch(e){}},[t]),w=(0,r.useCallback)(e=>{m(t=>{let n="function"==typeof e?e(t):e;return h(n),n})},[h]),v=(0,r.useCallback)(()=>{if(o())try{window.localStorage.removeItem(t)}catch(e){}m(l.current)},[t]);return(0,r.useEffect)(()=>{p(o()),m(y())},[y]),{value:g,setValue:w,removeValue:v,isAvailable:f}}},7636:(e,t,n)=>{n.d(t,{LV:()=>c,Si:()=>i,UZ:()=>a,Xn:()=>f,_s:()=>p,nO:()=>u,s6:()=>l});var r=n(38606);let o=["updatedAt","repositoryName","branchName","status","lastSent"],i=e=>o.includes(e),s={waiting:0,ready:1,running:2,generating:3,idle:4};function a(e){let t=new Set;for(let n of e)!1===n.visible&&t.add(n.path);return t}function l(e,t){return 0===t.size?e.slice():e.filter(e=>{let n=e.repositoryPath;return!n||!t.has(n)})}function c(e){let t=function(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)|0;return Math.abs(t)}(e)%360;return"hsl(".concat(t,", ").concat(65,"%, ").concat(60,"%)")}function u(e,t){if(!e&&!t)return 0;if(!e)return 1;if(!t)return -1;let n=e instanceof Date?e.getTime():new Date(e).getTime();return(t instanceof Date?t.getTime():new Date(t).getTime())-n}function d(e){return"waiting"===(e.cliStatus&&Object.keys(e.cliStatus).length>0?(0,r.A7)(e.cliStatus):e.status)}function f(e,t,n){let r=[...e],o="status"!==t;return r.sort((e,r)=>{if(o){let t=Number(d(r))-Number(d(e));if(0!==t)return t}let i=0;switch(t){case"updatedAt":{let t=e=>e?e instanceof Date?e.getTime():new Date(e).getTime():0,n=t(e.lastActivity);i=t(r.lastActivity)-n;break}case"repositoryName":{let t=e.repositoryName.toLowerCase(),n=r.repositoryName.toLowerCase();i=t.localeCompare(n);break}case"branchName":{let t=e.name.toLowerCase(),n=r.name.toLowerCase();i=t.localeCompare(n);break}case"status":i=s[e.status]-s[r.status];break;case"lastSent":{let t=u(e.lastActivity,r.lastActivity);if(!e.lastActivity&&!r.lastActivity){i=0;break}if(!e.lastActivity)return 1;if(!r.lastActivity)return -1;i=t;break}default:i=0}return("updatedAt"===t||"lastSent"===t?"desc"===n:"asc"===n)?i:-i}),r}function p(e,t,n){let r=new Map;for(let t of e){let e=t.repositoryName;r.has(e)||r.set(e,[]),r.get(e).push(t)}return[...r.keys()].sort((e,t)=>e.toLowerCase().localeCompare(t.toLowerCase())).map(e=>({repositoryName:e,branches:f(r.get(e),t,n)}))}},22592:(e,t,n)=>{n.d(t,{Ps:()=>d,W5:()=>u});var r=n(95155),o=n(12115),i=n(38218),s=n(68704);let a="data-pc-size",l={size:s.r5,setSize:()=>{},isMobile:!1,factor:s.d8[s.r5].factor,isAvailable:!1},c=(0,o.createContext)(l);function u(e){let{children:t}=e,{size:n,setSize:l,isAvailable:u}=(0,s.of)(),d=(0,i.a)();(0,o.useEffect)(()=>{if("undefined"==typeof document)return;let e=document.documentElement;return d?void e.removeAttribute(a):(e.setAttribute(a,n),()=>{e.removeAttribute(a)})},[n,d]);let f=(0,o.useMemo)(()=>({size:n,setSize:l,isMobile:d,factor:s.d8[n].factor,isAvailable:u}),[n,l,d,u]);return(0,r.jsx)(c.Provider,{value:f,children:t})}function d(){return(0,o.useContext)(c)}},24373:(e,t,n)=>{n.d(t,{Kg:()=>i,Lv:()=>s});var r=n(12115),o=n(66966);function i(e){let t=0;for(let n of e)!0===n.isWaitingForResponse&&t++;return t}function s(){let e=(0,o.rC)(),t=null==e?void 0:e.worktrees;return(0,r.useMemo)(()=>{let e=t?t.filter(e=>!0===e.isWaitingForResponse):[];return{count:e.length,worktrees:e}},[t])}n(44308)},32916:(e,t,n)=>{n.d(t,{GB:()=>u,VF:()=>d});var r=n(95155),o=n(12115),i=n(7636);let s="updatedAt",a=(0,o.createContext)(null);function l(e,t,n,r){let i=(0,o.useRef)(!0);(0,o.useEffect)(()=>{try{let t=localStorage.getItem(e);t&&r(t)}catch(e){}},[]),(0,o.useEffect)(()=>{if(i.current){i.current=!1;return}try{localStorage.setItem(e,n())}catch(e){}},[t])}function c(e,t){switch(t.type){case"TOGGLE":return{...e,isOpen:!e.isOpen};case"SET_WIDTH":return{...e,width:t.width};case"OPEN_MOBILE_DRAWER":return{...e,isMobileDrawerOpen:!0};case"CLOSE_MOBILE_DRAWER":return{...e,isMobileDrawerOpen:!1};case"SET_SORT_KEY":return{...e,sortKey:t.sortKey};case"SET_SORT_DIRECTION":return{...e,sortDirection:t.sortDirection};case"LOAD_SORT_SETTINGS":return{...e,sortKey:t.sortKey,sortDirection:t.sortDirection};case"SET_VIEW_MODE":return{...e,viewMode:t.viewMode};default:return e}}function u(e){let{children:t,initialOpen:n=!0,initialWidth:u=224}=e,[d,f]=(0,o.useReducer)(c,{isOpen:n,width:u,isMobileDrawerOpen:!1,sortKey:s,sortDirection:"desc",viewMode:"grouped"});l("mcbd-sidebar-sort","".concat(d.sortKey,":").concat(d.sortDirection),()=>JSON.stringify({sortKey:d.sortKey,sortDirection:d.sortDirection}),e=>{try{let t=JSON.parse(e),n=t.sortDirection,r=(0,i.Si)(t.sortKey)?t.sortKey:s;r&&("asc"===n||"desc"===n)&&f({type:"LOAD_SORT_SETTINGS",sortKey:r,sortDirection:n})}catch(e){}}),l("mcbd-sidebar-view-mode",d.viewMode,()=>d.viewMode,e=>{("grouped"===e||"flat"===e)&&f({type:"SET_VIEW_MODE",viewMode:e})}),l("mcbd-sidebar-width",d.width,()=>String(d.width),e=>{let t=Number(e);!isNaN(t)&&t>0&&f({type:"SET_WIDTH",width:288===t?224:t})});let p=(0,o.useCallback)(()=>{f({type:"TOGGLE"})},[]),g=(0,o.useCallback)(e=>{f({type:"SET_WIDTH",width:e})},[]),m=(0,o.useCallback)(()=>{f({type:"OPEN_MOBILE_DRAWER"})},[]),y=(0,o.useCallback)(()=>{f({type:"CLOSE_MOBILE_DRAWER"})},[]),h=(0,o.useCallback)(e=>{f({type:"SET_SORT_KEY",sortKey:e})},[]),w=(0,o.useCallback)(e=>{f({type:"SET_SORT_DIRECTION",sortDirection:e})},[]),v=(0,o.useCallback)(e=>{f({type:"SET_VIEW_MODE",viewMode:e})},[]),S=(0,o.useMemo)(()=>({isOpen:d.isOpen,width:d.width,isMobileDrawerOpen:d.isMobileDrawerOpen,sortKey:d.sortKey,sortDirection:d.sortDirection,toggle:p,setWidth:g,openMobileDrawer:m,closeMobileDrawer:y,setSortKey:h,setSortDirection:w,viewMode:d.viewMode,setViewMode:v}),[d.isOpen,d.width,d.isMobileDrawerOpen,d.sortKey,d.sortDirection,d.viewMode,p,g,m,y,h,w,v]);return(0,r.jsx)(a.Provider,{value:S,children:t})}function d(){let e=(0,o.useContext)(a);if(!e)throw Error("useSidebarContext must be used within a SidebarProvider");return e}},38218:(e,t,n)=>{n.d(t,{D:()=>i,a:()=>s});var r=n(12115);let o=r.useLayoutEffect,i=768;function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{breakpoint:t=i}=e,[n,s]=(0,r.useState)(!1);return o(()=>{let e=window.matchMedia("(max-width: ".concat(t-1,"px)"));s(e.matches);let n=e=>{s(e.matches)};return e.addEventListener("change",n),()=>{e.removeEventListener("change",n)}},[t]),n}},38606:(e,t,n)=>{n.d(t,{A7:()=>c,kA:()=>i,f_:()=>f,dw:()=>u,XK:()=>p});var r=n(54014),o=n(55449);function i(e){return e?e.isWaitingForResponse?"waiting":e.isProcessing?"running":e.isRunning?"ready":"idle":"idle"}let s={start:"nextAction.start",sendMessage:"nextAction.sendMessage",approveReject:"nextAction.approveReject",replyToPrompt:"nextAction.replyToPrompt",checkStalled:"nextAction.checkStalled",running:"nextAction.running"};Object.values(s);let a="exited",l={idle:null,ready:"ready",running:"running",generating:"running",waiting:"waiting"};function c(e){if(!e)return"idle";let t=Object.values(e).filter(e=>void 0!==e);return 0===t.length?"idle":t.includes("waiting")?"waiting":t.includes("running")?"running":t.includes("generating")?"generating":t.includes("ready")?"ready":"idle"}function u(e,t,n){return e?Object.entries(e).map(e=>{var o;let[i,s]=e,a=null!=(o=null==t?void 0:t[i])?o:(0,r.f_)(i,i),l=null==n?void 0:n(i);return"".concat(a,": ").concat(null!=s?s:"idle").concat(l?" (".concat(l,")"):"")}).join(", "):""}let d=["prompt","menu","unclassified"];function f(e){var t,n,r;let o=Object.values(null!=(n=null!=(t=e.sessionStatusByInstance)?t:e.sessionStatusByCli)?n:{}).filter(e=>void 0!==e),i=!1,s=new Set;for(let e of o)e.awaitingInstruction&&(i=!0),e.waitingKind&&s.add(e.waitingKind);return{waitingKind:null!=(r=d.find(e=>s.has(e)))?r:null,awaitingInstruction:i}}function p(e){var t,n,u,d,p,g;let m=i(void 0!==e.isSessionRunning?{isRunning:null!=(t=e.isSessionRunning)&&t,isWaitingForResponse:null!=(n=e.isWaitingForResponse)&&n,isProcessing:null!=(u=e.isProcessing)&&u}:void 0),y=!!e.lastAssistantMessageAt&&(!e.lastViewedAt||new Date(e.lastAssistantMessageAt)>new Date(e.lastViewedAt)),{cliStatus:h,cliStatusLabels:w,exitedInstanceIds:v}=function(e){var t,n,s,l,c,u;let d={},f={},p=[],g=e.sessionStatusByInstance;if(!g){for(let c of null!=(t=e.selectedAgents)?t:(0,o.sA)())d[c]=i(null==(n=e.sessionStatusByCli)?void 0:n[c]),f[c]=(0,r.oo)(c),(null==(l=e.sessionStatusByCli)||null==(s=l[c])?void 0:s.sessionStatusReason)===a&&p.push(c);return{cliStatus:d,cliStatusLabels:f,exitedInstanceIds:p}}let m=e.agentInstances&&e.agentInstances.length>0?e.agentInstances:(0,r.lu)(null!=(c=e.selectedAgents)?c:(0,o.sA)()),y=new Set;for(let e of m)y.add(e.id),d[e.id]=i(g[e.id]),f[e.id]=(0,r.sw)(e),(null==(u=g[e.id])?void 0:u.sessionStatusReason)===a&&p.push(e.id);for(let[e,t]of Object.entries(g)){if(y.has(e))continue;let n=i(t);"idle"!==n&&(d[e]=n,f[e]=function(e){let t=r.XH.find(t=>e.startsWith("".concat(t,"-")));if(t){let n=e.slice(t.length+1);return"".concat((0,r.oo)(t)," ").concat(n)}return(0,r.f_)(e,e)}(e))}return{cliStatus:d,cliStatusLabels:f,exitedInstanceIds:p}}(e),S=c(h),{waitingKind:b,awaitingInstruction:E}=f(e);return{id:e.id,name:e.name,repositoryName:null!=(d=e.repositoryDisplayName)?d:e.repositoryName,status:m,hasUnread:y,lastActivity:e.updatedAt,description:e.description,cliStatus:h,cliStatusLabels:w,exitedInstanceIds:v,worktreePath:e.path,waitingKind:b,awaitingInstruction:E,nextActionKey:(p=l[S],g="waiting"===S?"approval":null,p&&"idle"!==p?"ready"===p?s.sendMessage:"waiting"===p&&"approval"===g?s.approveReject:"waiting"===p?s.replyToPrompt:(0,s.running):s.start)}}},39649:(e,t,n)=>{n.d(t,{$f:()=>d,H8:()=>u});var r=n(95155),o=n(12115),i=n(80344);let s={PROCESSING:2e3,SESSION_RUNNING:5e3,IDLE:1e4},a=(0,o.createContext)(null),l={selectedWorktreeId:null,worktrees:[],repositories:[],selectedWorktreeDetail:null,isLoading:!0,isLoadingDetail:!1,error:null};function c(e,t){switch(t.type){case"SET_WORKTREES":return{...e,worktrees:t.worktrees,isLoading:!1};case"SET_REPOSITORIES":return{...e,repositories:t.repositories};case"SELECT_WORKTREE":{var n;let r=null!=(n=e.worktrees.find(e=>e.id===t.id))?n:null;return{...e,selectedWorktreeId:t.id,selectedWorktreeDetail:null!=r?r:e.selectedWorktreeDetail,isLoadingDetail:null===r}}case"SET_WORKTREE_DETAIL":return{...e,selectedWorktreeDetail:t.detail};case"SET_LOADING":return{...e,isLoading:t.isLoading};case"SET_LOADING_DETAIL":return{...e,isLoadingDetail:t.isLoadingDetail};case"SET_ERROR":return{...e,error:t.error,isLoading:!1};default:return e}}function u(e){let{children:t,externalWorktrees:n,externalRepositories:u,externalIsLoading:d,externalError:f,externalRefresh:p}=e,g=void 0!==n,[m,y]=(0,o.useReducer)(c,l);(0,o.useEffect)(()=>{g&&n&&y({type:"SET_WORKTREES",worktrees:n})},[g,n]),(0,o.useEffect)(()=>{g&&u&&y({type:"SET_REPOSITORIES",repositories:u})},[g,u]);let h=(0,o.useCallback)(async()=>{if(!g){y({type:"SET_LOADING",isLoading:!0}),y({type:"SET_ERROR",error:null});try{var e;let t=await i.y.getAll();y({type:"SET_WORKTREES",worktrees:t.worktrees}),y({type:"SET_REPOSITORIES",repositories:null!=(e=t.repositories)?e:[]})}catch(e){y({type:"SET_ERROR",error:e instanceof Error?e.message:"Failed to fetch worktrees"})}}},[g]),w=(0,o.useCallback)(async e=>{y({type:"SELECT_WORKTREE",id:e}),y({type:"SET_ERROR",error:null});try{i.y.markAsViewed(e).catch(e=>{console.warn("[WorktreeSelectionContext] Failed to mark as viewed:",e)});let t=await i.y.getById(e);y({type:"SET_WORKTREE_DETAIL",detail:t})}catch(e){y({type:"SET_ERROR",error:e instanceof Error?e.message:"Failed to fetch worktree detail"})}finally{y({type:"SET_LOADING_DETAIL",isLoadingDetail:!1})}},[]),v=(0,o.useCallback)(async()=>{if(g&&p)return void await p();await h()},[g,p,h]);(0,o.useEffect)(()=>{g||h()},[h,g]),(0,o.useEffect)(()=>{if(g)return;let e=null,t=!0,n=async()=>{if(t)try{var r,o;let a=await i.y.getAll();y({type:"SET_WORKTREES",worktrees:a.worktrees}),y({type:"SET_REPOSITORIES",repositories:null!=(r=a.repositories)?r:[]});let l=(o=a.worktrees).some(e=>e.isProcessing||e.isWaitingForResponse)?s.PROCESSING:o.some(e=>e.isSessionRunning)?s.SESSION_RUNNING:s.IDLE;t&&(e=setTimeout(n,l))}catch(r){if(r instanceof i.hD&&401===r.status)return;console.error("[WorktreeSelectionContext] Polling error:",r),t&&(e=setTimeout(n,s.SESSION_RUNNING))}};return n(),()=>{t=!1,e&&clearTimeout(e)}},[g]);let S=g&&void 0!==d?d:m.isLoading,b=g&&f?f.message:null,E={selectedWorktreeId:m.selectedWorktreeId,worktrees:m.worktrees,repositories:m.repositories,selectedWorktreeDetail:m.selectedWorktreeDetail,isLoading:S,isLoadingDetail:m.isLoadingDetail,error:null!=b?b:m.error,selectWorktree:w,refreshWorktrees:v};return(0,r.jsx)(a.Provider,{value:E,children:t})}function d(){let e=(0,o.useContext)(a);if(!e)throw Error("useWorktreeSelection must be used within a WorktreeSelectionProvider");return e}},44308:(e,t,n)=>{n.d(t,{$h:()=>d,DR:()=>o,IH:()=>c,Iu:()=>r,Nb:()=>f,SD:()=>i,_d:()=>l,bm:()=>p,ks:()=>a,t7:()=>u,z7:()=>s});let r=7e3,o=["in_review","approval","stalled"],i="in_review",s="filter",a="/review?".concat(s,"=approval");function l(e){return e&&o.includes(e)?e:null}let c=["claude","codex","copilot","antigravity","opencode"],u=1e3,d=5,f=100,p=1e3},52703:(e,t,n)=>{n.d(t,{Oo:()=>o,ST:()=>r,T4:()=>a,dz:()=>s,rz:()=>i,zS:()=>l});let r="client_version",o="version_mismatch",i="chat_turn_progress",s="messages_invalidated",a="model_changed";function l(e){let t;try{t=JSON.parse(e)}catch(e){return null}if(!t||"object"!=typeof t)return null;let n=t;if("broadcast"===n.type){let e=n.data;return e&&"object"==typeof e?"string"!=typeof e.type?null:(void 0===e.worktreeId&&"string"==typeof n.worktreeId&&(e.worktreeId=n.worktreeId),e):null}return"string"==typeof n.type?n:null}},54014:(e,t,n)=>{n.d(t,{Ab:()=>o,NL:()=>y,O6:()=>p,XH:()=>r,f_:()=>d,hR:()=>c,lu:()=>g,n6:()=>a,oo:()=>u,pQ:()=>i,sw:()=>f,vz:()=>m});let r=["claude","codex","gemini","vibe-local","opencode","copilot","antigravity","command-code"],o=10,i=50,s=/^[a-zA-Z0-9_-]+$/;function a(e){return"string"==typeof e&&e.length>0&&e.length<=64&&s.test(e)}let l={claude:"Claude",codex:"Codex",gemini:"Gemini","vibe-local":"Vibe Local",opencode:"OpenCode",copilot:"Copilot",antigravity:"Antigravity","command-code":"Command Code"};function c(e){return r.includes(e)}function u(e){var t;return null!=(t=l[e])?t:e}function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Assistant";return e&&c(e)?u(e):t}function f(e){let t=e.alias;return"string"==typeof t&&t.trim().length>0?t:u(e.cliTool)}function p(e,t,n){let r=e.find(e=>e.id===t);return r?f(r):u(n)}function g(e){return e.map((e,t)=>({id:e,cliTool:e,alias:u(e),order:t}))}let m=128,y=2097152},55449:(e,t,n)=>{n.d(t,{IK:()=>l,qD:()=>d,sA:()=>a,zk:()=>o});var r=n(63001);let o="/api/settings/default-agents",i=r.fJ,s=new Set;function a(){return i}function l(e){if(!Array.isArray(e))return!1;let t=(0,r.Lt)(e);if(!t.valid)return!1;let n=t.value;if(n.length===i.length&&n.every((e,t)=>e===i[t]))return!1;for(let e of(i=n,s))e();return!0}let c=null,u=!1;async function d(){return u?i:c||("function"!=typeof fetch?i:c=(async()=>{try{let e=await fetch(o);if(e.ok){let t=await e.json();l(null==t?void 0:t.defaultSelectedAgents),u=!0}}catch(e){}finally{c=null}return i})())}},63001:(e,t,n)=>{n.d(t,{Lt:()=>a,Wj:()=>i,eu:()=>o,fJ:()=>s});var r=n(54014);let o=2,i=6,s=["claude","codex","antigravity"];function a(e){return e.length<o||e.length>i?{valid:!1,error:"Must be ".concat(o,"-").concat(i," elements")}:e.every(e=>"string"==typeof e&&r.XH.includes(e))?new Set(e).size!==e.length?{valid:!1,error:"Duplicate tool IDs not allowed"}:{valid:!0,value:e}:{valid:!1,error:"Invalid CLI tool ID"}}},63365:(e,t,n)=>{n.d(t,{tS:()=>u,xM:()=>d,T3:()=>f});var r=n(95155),o=n(12115),i=n(52703);function s(){return"undefined"!=typeof globalThis&&"function"==typeof globalThis.WebSocket?globalThis.WebSocket:null}let a=()=>{},l={status:"disconnected",connected:!1,subscribe:a,unsubscribe:a,addListener:()=>a},c=(0,o.createContext)(null);function u(e){let{children:t,enabled:n=!0}=e,a=(0,o.useRef)(new Set),l=(0,o.useRef)(new Map),{status:u,subscribe:d,unsubscribe:f}=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{onEvent:t,onStatusChange:n,autoReconnect:r=!0,reconnectBaseDelay:a=1e3,reconnectMaxDelay:l=3e4,enabled:c=!0}=e,[u,d]=(0,o.useState)("disconnected"),f=(0,o.useRef)(null),p=(0,o.useRef)(null),g=(0,o.useRef)(0),m=(0,o.useRef)(new Set),y=(0,o.useRef)(!1),h=(0,o.useRef)(t);h.current=t;let w=(0,o.useRef)(n);w.current=n;let v=(0,o.useCallback)(e=>{var t;d(e),null==(t=w.current)||t.call(w,e)},[]),S=(0,o.useCallback)(()=>{null!==p.current&&(clearTimeout(p.current),p.current=null)},[]),b=(0,o.useCallback)(()=>{if(!c)return;let e=s();if(!e||f.current&&(f.current.readyState===e.OPEN||f.current.readyState===e.CONNECTING))return;S(),y.current=!1,v("connecting");let t="https:"===window.location.protocol?"wss:":"ws:",n=new e("".concat(t,"//").concat(window.location.host));f.current=n,n.onopen=()=>{g.current=0,v("connected");try{n.send(JSON.stringify({type:i.ST,version:"0.31.3"}))}catch(e){}m.current.forEach(e=>{try{n.send(JSON.stringify({type:"subscribe",worktreeId:e}))}catch(e){}})},n.onmessage=e=>{var t;let n="string"==typeof e.data?e.data:String(e.data),r=(0,i.zS)(n);r&&(null==(t=h.current)||t.call(h,r))},n.onerror=()=>{v("error")},n.onclose=()=>{var e;if(f.current=null,v("disconnected"),y.current||!r||"undefined"!=typeof document&&"hidden"===document.visibilityState)return;let t=(e=g.current,Math.min(a*2**Math.max(0,e),l));g.current+=1,p.current=setTimeout(()=>{p.current=null,b()},t)}},[c,r,a,l,v,S]),E=(0,o.useCallback)(()=>{if(S(),y.current=!0,f.current){try{f.current.close(1e3,"Client disconnect")}catch(e){}f.current=null}},[S]),k=(0,o.useCallback)(e=>{let t=f.current,n=s();if(t&&n&&t.readyState===n.OPEN)try{t.send(JSON.stringify(e))}catch(e){}},[]),C=(0,o.useCallback)(e=>{m.current.has(e)||(m.current.add(e),k({type:"subscribe",worktreeId:e}))},[k]),T=(0,o.useCallback)(e=>{m.current.has(e)&&(m.current.delete(e),k({type:"unsubscribe",worktreeId:e}))},[k]);return(0,o.useEffect)(()=>{if(c)return b(),()=>{E()}},[c,b,E]),(0,o.useEffect)(()=>{if(!c||"undefined"==typeof document)return;let e=()=>{"visible"===document.visibilityState&&(f.current||(g.current=0,b()))};return document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)},[c,b]),{status:u,subscribe:C,unsubscribe:T,send:k}}({enabled:n,onEvent:(0,o.useCallback)(e=>{a.current.forEach(t=>{try{t(e)}catch(e){}})},[])}),p=(0,o.useCallback)(e=>{var t;let n=l.current,r=null!=(t=n.get(e))?t:0;n.set(e,r+1),0===r&&d(e)},[d]),g=(0,o.useCallback)(e=>{var t;let n=l.current,r=null!=(t=n.get(e))?t:0;r<=1?(n.delete(e),f(e)):n.set(e,r-1)},[f]),m=(0,o.useCallback)(e=>(a.current.add(e),()=>{a.current.delete(e)}),[]),y=(0,o.useMemo)(()=>({status:u,connected:"connected"===u,subscribe:p,unsubscribe:g,addListener:m}),[u,p,g,m]);return(0,r.jsx)(c.Provider,{value:y,children:t})}function d(){var e;return null!=(e=(0,o.useContext)(c))?e:l}function f(e){let{addListener:t}=d(),n=(0,o.useRef)(e);n.current=e,(0,o.useEffect)(()=>t(e=>n.current(e)),[t])}},65380:(e,t,n)=>{n.d(t,{H:()=>a,O:()=>s});var r=n(95155),o=n(12115);let i=(0,o.createContext)(!1);function s(e){let{children:t,authEnabled:n}=e;return(0,r.jsx)(i.Provider,{value:n,children:t})}function a(){return(0,o.useContext)(i)}},66966:(e,t,n)=>{n.d(t,{g7:()=>u,rC:()=>f,Fn:()=>d});var r=n(95155),o=n(12115),i=n(80344),s=n(63365);let a=[2e3,5e3,1e4];var l=n(39649);let c=(0,o.createContext)(null);function u(e){let{children:t}=e,{worktrees:n,repositories:u,isLoading:d,error:f,refresh:p}=function(){let[e,t]=(0,o.useState)([]),[n,r]=(0,o.useState)([]),[l,c]=(0,o.useState)(!0),[u,d]=(0,o.useState)(null),f=(0,o.useRef)(null),p=(0,o.useRef)([]),g=(0,o.useRef)(null),m=(0,o.useRef)(0),y=(0,o.useRef)(null),h=(0,o.useRef)(async()=>{}),w=(0,o.useCallback)(()=>{null!==y.current&&(clearTimeout(y.current),y.current=null)},[]),{connected:v,subscribe:S,unsubscribe:b,addListener:E}=(0,s.xM)(),k=(0,o.useRef)(v);k.current=v;let C=(0,o.useCallback)(async()=>{try{var e,n;d(null);let s=await fetch("/api/worktrees"),a=(0,i.O0)(s);if(a)throw a;if(!s.ok)throw Error("Failed to fetch worktrees: ".concat(s.status));let l=(0,i.xd)(s);if(l)throw l;let c=await s.json(),u=null!=(e=c.worktrees)?e:[],f=null!=(n=c.repositories)?n:[];(0,o.startTransition)(()=>{t(u),r(f)}),p.current=u,m.current=0,w()}catch(n){let e=n instanceof Error?n:Error(String(n));console.error("[useWorktreesCache] Failed to fetch worktrees:",e),d(e);let t=m.current;0===p.current.length&&t<a.length&&(m.current=t+1,w(),y.current=setTimeout(()=>{y.current=null,h.current()},a[t]))}finally{c(!1)}},[w]);h.current=C,(0,o.useEffect)(()=>{C()},[C]),(0,o.useEffect)(()=>w,[w]);let T=(0,o.useCallback)(()=>p.current.some(e=>!0===e.isSessionRunning),[]),x=(0,o.useCallback)(()=>{let e=T();return k.current?e?2e4:6e4:e?5e3:3e4},[T]),R=(0,o.useCallback)(()=>{null!==f.current&&(clearInterval(f.current),f.current=null),g.current=null},[]),O=(0,o.useCallback)(()=>{R();let e=x();g.current=e,f.current=setInterval(()=>{C()},e)},[x,C,R]);(0,o.useEffect)(()=>{let e=()=>{document.hidden?R():(C(),O())},t=setTimeout(()=>{O()},0);return document.addEventListener("visibilitychange",e),()=>{clearTimeout(t),R(),document.removeEventListener("visibilitychange",e)}},[C,O,R]),(0,o.useEffect)(()=>{if(p.current=e,"undefined"!=typeof document&&document.hidden||null===g.current)return;let t=x();g.current!==t&&O()},[e,v,x,O]);let I=e.map(e=>e.id).sort().join(" ");return(0,o.useEffect)(()=>{let e=I.length>0?I.split(" "):[];return e.forEach(e=>S(e)),()=>{e.forEach(e=>b(e))}},[I,S,b]),(0,o.useEffect)(()=>E(e=>{if("session_status_changed"===e.type&&"string"==typeof e.worktreeId){let i=e.worktreeId,s=e.isWaitingForResponse;if("boolean"==typeof s){var n,r;let a=null!=(n=e.instance)?n:null,l=null!=(r=e.waitingKind)?r:null;(0,o.startTransition)(()=>{t(e=>{let t=!1,n=e.map(e=>{if(e.id!==i)return e;let n=function(e,t){var n,r,o;let i,s=null!=(r=t.instance)?r:null,a=s?null==(n=e.sessionStatusByInstance)?void 0:n[s]:void 0,l=e.sessionStatusByInstance;if(s&&a&&a.isWaitingForResponse!==t.waiting&&(l={...e.sessionStatusByInstance,[s]:{...a,isWaitingForResponse:t.waiting,waitingKind:null!=(o=t.waitingKind)?o:null}}),t.waiting)i=!0;else{let e=l?Object.values(l):[];i=e.length>0&&e.some(e=>(null==e?void 0:e.isWaitingForResponse)===!0)}return l===e.sessionStatusByInstance&&i===e.isWaitingForResponse?e:{...e,sessionStatusByInstance:l,isWaitingForResponse:i}}(e,{waiting:s,instance:a,waitingKind:l});return n!==e&&(t=!0),n});return t?n:e})});return}let a=e.isRunning;if("boolean"==typeof a){if((null!=e.cliTool||null!=e.instance)&&!1===a)return void C();(0,o.startTransition)(()=>{t(e=>{let t=!1,n=e.map(e=>e.id===i&&e.isSessionRunning!==a?(t=!0,{...e,isSessionRunning:a}):e);return t?n:e})})}}else("message"===e.type||"message_updated"===e.type)&&C()}),[E,C]),{worktrees:e,repositories:n,isLoading:l,error:u,refresh:C}}(),g=(0,o.useMemo)(()=>({worktrees:n,repositories:u,isLoading:d,error:f,refresh:p}),[n,u,d,f,p]);return(0,r.jsx)(c.Provider,{value:g,children:(0,r.jsx)(l.H8,{externalWorktrees:n,externalRepositories:u,externalIsLoading:d,externalError:f,externalRefresh:p,children:t})})}function d(){let e=(0,o.useContext)(c);if(null===e)throw Error("useWorktreesCacheContext must be used within a WorktreesCacheProvider");return e}function f(){return(0,o.useContext)(c)}},68704:(e,t,n)=>{n.d(t,{Uf:()=>i,d8:()=>s,fM:()=>a,of:()=>c,r5:()=>o,rq:()=>l});var r=n(2317);let o="medium",i=["large","medium","small","xsmall"],s={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 a(e){return"string"==typeof e&&Object.prototype.hasOwnProperty.call(s,e)}function l(e){return s[e].terminalFontSize}function c(){let{value:e,setValue:t,isAvailable:n}=(0,r.V)({key:"mcbd-pc-display-size",defaultValue:o,validate:a});return{size:e,setSize:t,isAvailable:n}}},70628:(e,t,n)=>{n.d(t,{K:()=>a,S:()=>s});var r=n(95155),o=n(12115);let i=(0,o.createContext)({open:!1,setOpen:()=>{},toggle:()=>{}});function s(e){let{children:t}=e,[n,s]=(0,o.useState)(!1),a=(0,o.useCallback)(()=>s(e=>!e),[]),l=(0,o.useMemo)(()=>({open:n,setOpen:s,toggle:a}),[n,a]);return(0,r.jsx)(i.Provider,{value:l,children:t})}function a(){return(0,o.useContext)(i)}},77016:(e,t,n)=>{n.d(t,{W:()=>w,n:()=>v});var r=n(95155),o=n(12115),i=n(18955),s=n(52056),a=n(89559),l=n(65229),c=n(59854),u=n(63365),d=n(52703);let f=0,p=new Set;function g(){for(let e of p)e()}function m(e){return p.add(e),()=>{p.delete(e)}}function y(){return f>0}function h(){return!1}function w(){return(0,o.useSyncExternalStore)(m,y,h)}function v(){let e=(0,i.c)("common"),[t,n]=(0,o.useState)(null),[p,m]=(0,o.useState)(null),y=(0,o.useCallback)(e=>{if(e.type!==d.Oo)return;let{serverVersion:t,clientVersion:r}=e;"string"==typeof t&&"string"==typeof r&&t&&r&&t!==p&&n({serverVersion:t,clientVersion:r})},[p]);(0,u.T3)(y);let h=null!==t;(0,o.useEffect)(()=>{if(h)return f+=1,g(),()=>{f-=1,g()}},[h]);let w=(0,o.useCallback)(()=>{window.location.reload()},[]),v=(0,o.useCallback)(()=>{n(e=>(e&&m(e.serverVersion),null))},[]);return t?(0,r.jsxs)("div",{"data-testid":"version-mismatch-banner",role:"alert","aria-live":"assertive",className:"fixed top-3 left-1/2 -translate-x-1/2 flex items-start gap-3 max-w-[92vw] rounded-lg border border-warning-border bg-warning-subtle px-4 py-3 text-warning-foreground shadow-lg",style:{zIndex:c.M.TOAST},children:[(0,r.jsx)(s.A,{className:"h-5 w-5 shrink-0 mt-0.5","aria-hidden":"true"}),(0,r.jsxs)("div",{className:"flex flex-col gap-0.5 text-sm",children:[(0,r.jsx)("span",{className:"font-semibold",children:e("versionMismatch.title")}),(0,r.jsx)("span",{children:e("versionMismatch.description",{serverVersion:t.serverVersion,clientVersion:t.clientVersion})})]}),(0,r.jsxs)("button",{type:"button","data-testid":"version-mismatch-reload",onClick:w,className:"shrink-0 inline-flex items-center gap-1.5 rounded-md border border-warning-border px-3 py-1.5 text-sm font-medium hover:opacity-80 focus:outline-none focus:ring-2 focus:ring-offset-2",children:[(0,r.jsx)(a.A,{className:"h-4 w-4","aria-hidden":"true"}),e("versionMismatch.reload")]}),(0,r.jsx)("button",{type:"button","data-testid":"version-mismatch-dismiss",onClick:v,"aria-label":e("versionMismatch.dismiss"),className:"shrink-0 hover:opacity-70 focus:outline-none focus:ring-2 focus:ring-offset-2",children:(0,r.jsx)(l.A,{className:"h-4 w-4","aria-hidden":"true"})})]}):null}},80344:(e,t,n)=>{n.d(t,{$T:()=>d,GQ:()=>p,O0:()=>i,Rx:()=>c,gC:()=>u,hD:()=>r,hS:()=>f,xd:()=>s,y:()=>l});class r extends Error{constructor(e,t,n){super(e),this.status=t,this.data=n,this.name="ApiError"}}async function o(e,t,n){if(!(e.headers.get("content-type")||"").includes("application/json"))return t;try{return await e.json()}catch(e){return t}}function i(e){var t;return e.redirected&&(null!=(t=e.url)?t:"").includes("/login")?new r("Authentication required",401):null}function s(e){return e.headers?(e.headers.get("content-type")||"").includes("application/json")?null:new r("Unexpected response format",e.status):null}async function a(e,t){try{let n=new Headers(null==t?void 0:t.headers);n.set("Content-Type","application/json");let a=await fetch(e,{...t,headers:n}),l=i(a);if(l)throw l;if(!a.ok){let e=await o(a,{},"error-body");throw new r(e.error||"HTTP error ".concat(a.status),a.status,e)}let c=s(a);if(c)throw c;return a.json()}catch(e){if(e instanceof r)throw e;throw new r(e instanceof Error?e.message:"Unknown error",0,e)}}let l={getAll:async()=>a("/api/worktrees"),getById:async e=>a("/api/worktrees/".concat(e)),updateDescription:async(e,t)=>a("/api/worktrees/".concat(e),{method:"PATCH",body:JSON.stringify({description:t})}),updateLink:async(e,t)=>a("/api/worktrees/".concat(e),{method:"PATCH",body:JSON.stringify({link:t})}),toggleFavorite:async(e,t)=>a("/api/worktrees/".concat(e),{method:"PATCH",body:JSON.stringify({favorite:t})}),updateStatus:async(e,t)=>a("/api/worktrees/".concat(e),{method:"PATCH",body:JSON.stringify({status:t})}),updateCliTool:async(e,t)=>a("/api/worktrees/".concat(e),{method:"PATCH",body:JSON.stringify({cliToolId:t})}),markAsViewed:async e=>a("/api/worktrees/".concat(e,"/viewed"),{method:"PATCH"}),async getMessages(e,t,n,r){let o=new URLSearchParams;return t&&o.append("cliTool",t),n&&o.append("includeArchived","true"),"number"==typeof r&&Number.isFinite(r)&&o.append("limit",String(r)),a("/api/worktrees/".concat(e,"/messages").concat(o.toString()?"?".concat(o.toString()):""))},async sendMessage(e,t,n){var r;let o={content:t};return(null==n?void 0:n.cliToolId)&&(o.cliToolId=n.cliToolId),(null==n?void 0:n.instanceId)&&(o.instanceId=n.instanceId),(null==n?void 0:n.imagePath)&&(o.imagePath=n.imagePath),null===(r=await a("/api/worktrees/".concat(e,"/send"),{method:"POST",body:JSON.stringify(o)}))||"object"!=typeof r||r.timestamp instanceof Date?r:{...r,timestamp:new Date(r.timestamp)}},async uploadImageFile(e,t){let n=Date.now(),r="".concat(n,"-").concat(t.name),i=".commandmate/attachments",s=new FormData;s.append("file",new File([t],r,{type:t.type}));let a=await fetch("/api/worktrees/".concat(e,"/upload/").concat(i),{method:"POST",body:s});if(!a.ok){var l;let e=await o(a,{},"error-body");throw Error((null==e||null==(l=e.error)?void 0:l.message)||"Upload failed (HTTP ".concat(a.status,")"))}return{path:(await o(a,{},"response-body")).path||"".concat(i,"/").concat(r)}},getLogs:async e=>a("/api/worktrees/".concat(e,"/logs")),async getLogFile(e,t,n){let r=(null==n?void 0:n.sanitize)?"?sanitize=true":"";return a("/api/worktrees/".concat(e,"/logs/").concat(t).concat(r))},async killSession(e,t,n){let r=new URLSearchParams;t&&r.set("cliTool",t),n&&r.set("instance",n);let o=r.toString();return a("/api/worktrees/".concat(e,"/kill-session").concat(o?"?".concat(o):""),{method:"POST"})}},c={scan:async e=>a("/api/repositories/scan",{method:"POST",body:JSON.stringify({repositoryPath:e})}),sync:async()=>a("/api/repositories/sync",{method:"POST"}),delete:async e=>a("/api/repositories",{method:"DELETE",body:JSON.stringify({repositoryPath:e})}),async clone(e,t){var n;return a("/api/repositories/clone",{method:"POST",body:JSON.stringify({cloneUrl:e,fork:null!=(n=null==t?void 0:t.fork)&&n})})},getCloneStatus:async e=>a("/api/repositories/clone/".concat(e)),getExcluded:async()=>a("/api/repositories/excluded"),restore:async e=>a("/api/repositories/restore",{method:"PUT",body:JSON.stringify({repositoryPath:e})}),list:async()=>a("/api/repositories"),updateDisplayName:async(e,t)=>a("/api/repositories/".concat(encodeURIComponent(e)),{method:"PUT",body:JSON.stringify({displayName:t})}),updateVisibility:async(e,t)=>a("/api/repositories/".concat(encodeURIComponent(e)),{method:"PUT",body:JSON.stringify({visible:t})}),updateEnabled:async(e,t)=>a("/api/repositories/".concat(encodeURIComponent(e)),{method:"PUT",body:JSON.stringify({enabled:t})}),validatePath:async e=>a("/api/repositories/validate-path",{method:"POST",body:JSON.stringify({repositoryPath:e})})},u={async browse(e){let t=e?"?path=".concat(encodeURIComponent(e)):"";return a("/api/fs/browse".concat(t))},addRecentPath:async e=>a("/api/fs/recent-paths",{method:"POST",body:JSON.stringify({path:e})})},d={getAll:async e=>(await a("/api/worktrees/".concat(e,"/memos"))).memos,create:async(e,t)=>(await a("/api/worktrees/".concat(e,"/memos"),{method:"POST",body:JSON.stringify(t||{})})).memo,update:async(e,t,n)=>(await a("/api/worktrees/".concat(e,"/memos/").concat(t),{method:"PUT",body:JSON.stringify(n)})).memo,delete:async(e,t)=>a("/api/worktrees/".concat(e,"/memos/").concat(t),{method:"DELETE"}),async reorder(e,t){await a("/api/worktrees/".concat(e,"/memos"),{method:"PATCH",body:JSON.stringify({memoIds:t})})}};function f(e){return e instanceof r||e instanceof Error?e.message:"An unknown error occurred"}let p={checkForUpdate:async()=>a("/api/app/update-check",{method:"GET"}),startUpdate:async()=>a("/api/app/update",{method:"POST"}),async ping(){try{return(await fetch("/api/auth/status",{cache:"no-store"})).ok}catch(e){return!1}}}},89275:(e,t,n)=>{n.d(t,{Bo:()=>u,Hq:()=>l});var r=n(95155),o=n(12115),i=n(20063);let s={startTransition:e=>e()},a=(0,o.createContext)(null);function l(){var e;let t=(0,i.useRouter)(),{startTransition:n}=null!=(e=(0,o.useContext)(a))?e:s;return(0,o.useMemo)(()=>({push:e=>n(()=>t.push(e)),replace:e=>n(()=>t.replace(e))}),[t,n])}function c(e){let{onCommit:t}=e,n=(0,i.usePathname)(),r=(0,o.useRef)(!1);return(0,o.useEffect)(()=>{if(!r.current){r.current=!0;return}t()},[n,t]),null}function u(e){let{children:t}=e,n=(0,o.useRef)(null),i=(0,o.useCallback)(()=>{var e;null==(e=n.current)||e.call(n)},[]),s=(0,o.useCallback)(e=>{var t;t=()=>new Promise(t=>{let r=!1,o=()=>{r||(r=!0,t())};n.current=o,e(),window.setTimeout(o,500)}),"undefined"==typeof document||"function"!=typeof document.startViewTransition||"function"==typeof window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches?t():document.startViewTransition(t)},[]),l=(0,o.useMemo)(()=>({startTransition:s}),[s]);return(0,r.jsxs)(a.Provider,{value:l,children:[(0,r.jsx)(c,{onCommit:i}),t]})}},92614:(e,t,n)=>{n.d(t,{C:()=>a,E:()=>s});var r=n(95155),o=n(12115);let i=(0,o.createContext)({open:!1,setOpen:()=>{},toggle:()=>{}});function s(e){let{children:t}=e,[n,s]=(0,o.useState)(!1),a=(0,o.useCallback)(()=>s(e=>!e),[]),l=(0,o.useMemo)(()=>({open:n,setOpen:s,toggle:a}),[n,a]);return(0,r.jsx)(i.Provider,{value:l,children:t})}function a(){return(0,o.useContext)(i)}},94442:(e,t,n)=>{n.d(t,{dj:()=>b,tE:()=>S});var r=n(95155),o=n(12115),i=n(47650),s=n(18955),a=n(42529),l=n(78874),c=n(52056),u=n(23327),d=n(65229),f=n(59854),p=n(9900),g=n(9286);function m(e){let{type:t,iconColor:n}=e,o="h-5 w-5 ".concat(n);switch(t){case"success":return(0,r.jsx)(a.A,{className:o,"data-testid":"toast-icon-success"});case"error":return(0,r.jsx)(l.A,{className:o,"data-testid":"toast-icon-error"});case"warning":return(0,r.jsx)(c.A,{className:o,"data-testid":"toast-icon-warning"});default:return(0,r.jsx)(u.A,{className:o,"data-testid":"toast-icon-info"})}}function y(e){let{id:t,message:n,type:i,onClose:a,duration:l=3e3,onClick:c}=e,u=(0,s.c)("common"),f=(0,o.useRef)(null),y=function(e){switch(e){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"}}}(i),[h,w]=(0,o.useState)(!0),{shouldRender:v,isExiting:S}=(0,g.O)(h,p.Ys),b=(0,o.useRef)(a);b.current=a,(0,o.useEffect)(()=>{v||b.current(t)},[v,t]),(0,o.useEffect)(()=>(l>0&&(f.current=setTimeout(()=>{w(!1)},l)),()=>{f.current&&clearTimeout(f.current)}),[l]);let E=(0,o.useCallback)(()=>{f.current&&clearTimeout(f.current),w(!1)},[]);return(0,r.jsxs)("div",{"data-testid":"toast-".concat(t),role:"alert",className:"\n ".concat(y.bgColor,"\n ").concat(y.borderColor,"\n ").concat(y.textColor,"\n border rounded-lg shadow-lg p-4 min-w-[300px] max-w-[400px]\n flex items-start gap-3\n ").concat(S?"animate-out fade-out-0 slide-out-to-right-full duration-200 fill-mode-forwards pointer-events-none":"animate-slide-in","\n "),children:[(0,r.jsx)(m,{type:i,iconColor:y.iconColor}),c?(0,r.jsx)("button",{type:"button","data-testid":"toast-action-button",onClick:()=>{c(),E()},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:n}):(0,r.jsx)("p",{className:"flex-1 text-sm font-medium",children:n}),(0,r.jsx)("button",{"data-testid":"toast-close-button",onClick:E,"aria-label":u("closeNotification"),className:"\n ".concat(y.textColor,"\n hover:opacity-70\n focus:outline-none focus:ring-2 focus:ring-offset-2\n transition-opacity\n "),children:(0,r.jsx)(d.A,{className:"h-4 w-4"})})]})}function h(e){let{toasts:t,onClose:n}=e,[s,a]=(0,o.useState)(!1);(0,o.useEffect)(()=>{a(!0)},[]);let l=(0,r.jsx)("div",{"data-testid":"toast-container","aria-live":"polite",className:"fixed bottom-4 right-4 flex flex-col gap-2",style:{zIndex:f.M.TOAST},children:t.map(e=>(0,r.jsx)(y,{id:e.id,message:e.message,type:e.type,onClose:n,duration:e.duration,onClick:e.onClick},e.id))});return s?(0,i.createPortal)(l,document.body):null}function w(){let[e,t]=(0,o.useState)([]),n=(0,o.useRef)(0),r=(0,o.useCallback)(function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"info",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3e3,i=arguments.length>3?arguments[3]:void 0,s="toast-".concat(++n.current,"-").concat(Date.now()),a={id:s,message:e,type:r,duration:o,...(null==i?void 0:i.onClick)?{onClick:i.onClick}:{}};return t(e=>[...e,a]),s},[]),i=(0,o.useCallback)(e=>{t(t=>t.filter(t=>t.id!==e))},[]),s=(0,o.useCallback)(()=>{t([])},[]);return(0,o.useMemo)(()=>({toasts:e,showToast:r,removeToast:i,clearToasts:s}),[e,r,i,s])}let v=(0,o.createContext)(null);function S(e){let{children:t}=e,n=w();return(0,r.jsxs)(v.Provider,{value:n,children:[t,(0,r.jsx)(h,{toasts:n.toasts,onClose:n.removeToast})]})}function b(){let e=(0,o.useContext)(v),t=w();return null!=e?e:t}}}]);