commandmate 0.14.0 → 0.15.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 (646) hide show
  1. package/.env.example +7 -0
  2. package/.next/BUILD_ID +1 -1
  3. package/.next/app-build-manifest.json +362 -343
  4. package/.next/app-path-routes-manifest.json +28 -25
  5. package/.next/build-manifest.json +5 -5
  6. package/.next/prerender-manifest.json +9 -9
  7. package/.next/react-loadable-manifest.json +11 -13
  8. package/.next/required-server-files.json +1 -1
  9. package/.next/server/app/_not-found/page_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 +1 -1
  14. package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
  15. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/assistant/current-output/route.js +1 -1
  17. package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
  18. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/assistant/messages/route.js +1 -1
  20. package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
  21. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/assistant/session/route.js +1 -1
  23. package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
  24. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/assistant/start/route.js +1 -1
  26. package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
  27. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/assistant/terminal/route.js +1 -1
  29. package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
  30. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/assistant/tools/route.js +1 -1
  32. package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
  33. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/daily-summary/route.js +1 -1
  38. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  39. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  41. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  42. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/external-apps/[id]/health/route.js +1 -1
  44. package/.next/server/app/api/external-apps/[id]/health/route.js.nft.json +1 -1
  45. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/external-apps/[id]/route.js +1 -1
  47. package/.next/server/app/api/external-apps/[id]/route.js.nft.json +1 -1
  48. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/external-apps/route.js +1 -1
  50. package/.next/server/app/api/external-apps/route.js.nft.json +1 -1
  51. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/fs/browse/route.js +7 -0
  53. package/.next/server/app/api/fs/browse/route.js.nft.json +1 -0
  54. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -0
  55. package/.next/server/app/api/fs/recent-paths/route.js +7 -0
  56. package/.next/server/app/api/fs/recent-paths/route.js.nft.json +1 -0
  57. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -0
  58. package/.next/server/app/api/hooks/claude-done/route.js +1 -1
  59. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  60. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/push/subscriptions/route.js +1 -1
  63. package/.next/server/app/api/push/subscriptions/route.js.nft.json +1 -1
  64. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/push/vapid/route.js +1 -1
  66. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  67. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/repositories/[id]/route.js +1 -1
  69. package/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
  70. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
  72. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js.nft.json +1 -1
  73. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
  75. package/.next/server/app/api/repositories/[id]/todos/route.js.nft.json +1 -1
  76. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  78. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  79. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/repositories/clone/route.js +1 -1
  81. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  82. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/repositories/excluded/route.js +1 -1
  84. package/.next/server/app/api/repositories/excluded/route.js.nft.json +1 -1
  85. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/repositories/restore/route.js +1 -1
  87. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  88. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/repositories/route.js +1 -1
  90. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  91. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/repositories/scan/route.js +1 -1
  93. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  94. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/repositories/sync/route.js +1 -1
  96. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  97. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/repositories/validate-path/route.js +1 -0
  99. package/.next/server/app/api/repositories/validate-path/route.js.nft.json +1 -0
  100. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -0
  101. package/.next/server/app/api/sidebar/group-order/route.js +2 -2
  102. package/.next/server/app/api/sidebar/group-order/route.js.nft.json +1 -1
  103. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/skills/[id]/route.js +1 -1
  105. package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
  106. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/skills/route.js +1 -1
  108. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  109. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/slash-commands/route.js +1 -1
  111. package/.next/server/app/api/slash-commands/route.js.nft.json +1 -1
  112. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/templates/[id]/route.js +1 -1
  114. package/.next/server/app/api/templates/[id]/route.js.nft.json +1 -1
  115. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/templates/route.js +1 -1
  117. package/.next/server/app/api/templates/route.js.nft.json +1 -1
  118. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/todos/route.js +1 -1
  120. package/.next/server/app/api/todos/route.js.nft.json +1 -1
  121. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  124. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  127. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +1 -1
  130. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  133. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  136. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js.nft.json +1 -1
  139. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  142. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -1
  145. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
  148. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
  151. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
  154. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
  157. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
  160. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  161. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
  163. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
  166. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
  169. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
  172. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
  175. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  176. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
  178. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  179. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
  181. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  182. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
  184. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  185. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
  187. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  188. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
  190. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
  193. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
  196. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
  199. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
  202. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
  205. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  206. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
  208. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
  211. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  212. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
  214. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  215. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  217. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  218. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  220. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  221. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -1
  223. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  224. package/.next/server/app/api/worktrees/[id]/logs/route.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
  226. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  227. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/marp-render/route.js.nft.json +1 -1
  229. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  230. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js.nft.json +1 -1
  232. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  233. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/memos/route.js.nft.json +1 -1
  235. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  236. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/messages/route.js.nft.json +1 -1
  238. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  239. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  241. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  242. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  243. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  244. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  245. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  247. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  248. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +1 -1
  249. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  250. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  251. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  252. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  253. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  254. package/.next/server/app/api/worktrees/[id]/schedules/route.js +1 -1
  255. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  256. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  257. package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
  258. package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
  259. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  260. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  261. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  262. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  263. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -1
  264. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -1
  265. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  266. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  267. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  268. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  269. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -1
  270. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -1
  271. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  272. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -1
  273. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -1
  274. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  275. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  276. package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -1
  277. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  278. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  279. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
  280. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  281. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  282. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  283. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  284. package/.next/server/app/api/worktrees/[id]/start-polling/route.js +1 -1
  285. package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +1 -1
  286. package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
  287. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  288. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  289. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  290. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  291. package/.next/server/app/api/worktrees/[id]/timers/history/route.js.nft.json +1 -1
  292. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  293. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  294. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  295. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  296. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  297. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js.nft.json +1 -1
  298. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  299. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  300. package/.next/server/app/api/worktrees/[id]/todos/route.js.nft.json +1 -1
  301. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  302. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  303. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -1
  304. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  305. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  306. package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -1
  307. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  308. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
  309. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -1
  310. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  311. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  312. package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -1
  313. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  314. package/.next/server/app/api/worktrees/route.js +1 -1
  315. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  316. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  317. package/.next/server/app/chat/page.js +1 -1
  318. package/.next/server/app/chat/page.js.nft.json +1 -1
  319. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  320. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  321. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  322. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  323. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  324. package/.next/server/app/page_client-reference-manifest.js +1 -1
  325. package/.next/server/app/proxy/[...path]/route.js +1 -1
  326. package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -1
  327. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  328. package/.next/server/app/repositories/page.js +2 -2
  329. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  330. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  331. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  332. package/.next/server/app/skills/[skillId]/page.js +2 -2
  333. package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
  334. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  335. package/.next/server/app/skills/page.js +1 -1
  336. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  337. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +1 -1
  338. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  339. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  340. package/.next/server/app/worktrees/[id]/page.js +12 -12
  341. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  342. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  343. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  344. package/.next/server/app-paths-manifest.json +28 -25
  345. package/.next/server/chunks/1355.js +1 -0
  346. package/.next/server/chunks/1808.js +1 -1
  347. package/.next/server/chunks/2119.js +1 -1
  348. package/.next/server/chunks/2404.js +1 -1
  349. package/.next/server/chunks/2445.js +1 -1
  350. package/.next/server/chunks/3543.js +1 -1
  351. package/.next/server/chunks/3722.js +1 -1
  352. package/.next/server/chunks/3736.js +1 -1
  353. package/.next/server/chunks/3753.js +1 -1
  354. package/.next/server/chunks/3945.js +1 -1
  355. package/.next/server/chunks/4390.js +1 -0
  356. package/.next/server/chunks/4444.js +1 -1
  357. package/.next/server/chunks/5326.js +1 -1
  358. package/.next/server/chunks/593.js +1 -0
  359. package/.next/server/chunks/5959.js +3 -3
  360. package/.next/server/chunks/6065.js +1 -1
  361. package/.next/server/chunks/6130.js +1 -1
  362. package/.next/server/chunks/6283.js +1 -1
  363. package/.next/server/chunks/646.js +2 -2
  364. package/.next/server/chunks/7593.js +1 -0
  365. package/.next/server/chunks/8356.js +1 -1
  366. package/.next/server/chunks/9123.js +1 -1
  367. package/.next/server/chunks/9192.js +1 -1
  368. package/.next/server/chunks/9687.js +1 -1
  369. package/.next/server/middleware-build-manifest.js +1 -1
  370. package/.next/server/middleware-manifest.json +5 -5
  371. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  372. package/.next/server/pages/500.html +1 -1
  373. package/.next/server/server-reference-manifest.json +1 -1
  374. package/.next/server/src/middleware.js.map +1 -1
  375. package/.next/static/MqlW91_Se_kEW6mtm-1x0/_buildManifest.js +1 -0
  376. package/.next/static/chunks/1191-b7dfdfe86b1d31d1.js +1 -0
  377. package/.next/static/chunks/{4560-04e5aebcab96bfa1.js → 4560-8ffb0bb19f2ba998.js} +1 -1
  378. package/.next/static/chunks/530.e31cc754677fed0f.js +1 -0
  379. package/.next/static/chunks/5542-b6457f305d724a6b.js +1 -0
  380. package/.next/static/chunks/{6488-1a37ccee1d444c10.js → 6488-93870a55f4a3e3cd.js} +1 -1
  381. package/.next/static/chunks/8566-a6a7c70558927410.js +1 -0
  382. package/.next/static/chunks/9142-41b13a2f278529cc.js +1 -0
  383. package/.next/static/chunks/9263.5259f73f89220d64.js +1 -0
  384. package/.next/static/chunks/9599-d29d2f8eeaf7c249.js +1 -0
  385. package/.next/static/chunks/app/api/app/update/route-8c8bebe20cebf964.js +1 -0
  386. package/.next/static/chunks/app/api/app/update-check/route-8c8bebe20cebf964.js +1 -0
  387. package/.next/static/chunks/app/api/assistant/conversation/route-8c8bebe20cebf964.js +1 -0
  388. package/.next/static/chunks/app/api/assistant/current-output/route-8c8bebe20cebf964.js +1 -0
  389. package/.next/static/chunks/app/api/assistant/messages/route-8c8bebe20cebf964.js +1 -0
  390. package/.next/static/chunks/app/api/assistant/session/route-8c8bebe20cebf964.js +1 -0
  391. package/.next/static/chunks/app/api/assistant/start/route-8c8bebe20cebf964.js +1 -0
  392. package/.next/static/chunks/app/api/assistant/terminal/route-8c8bebe20cebf964.js +1 -0
  393. package/.next/static/chunks/app/api/assistant/tools/route-8c8bebe20cebf964.js +1 -0
  394. package/.next/static/chunks/app/api/auth/login/route-8c8bebe20cebf964.js +1 -0
  395. package/.next/static/chunks/app/api/auth/logout/route-8c8bebe20cebf964.js +1 -0
  396. package/.next/static/chunks/app/api/auth/status/route-8c8bebe20cebf964.js +1 -0
  397. package/.next/static/chunks/app/api/daily-summary/route-8c8bebe20cebf964.js +1 -0
  398. package/.next/static/chunks/app/api/daily-summary/status/route-8c8bebe20cebf964.js +1 -0
  399. package/.next/static/chunks/app/api/external-apps/[id]/health/route-8c8bebe20cebf964.js +1 -0
  400. package/.next/static/chunks/app/api/external-apps/[id]/route-8c8bebe20cebf964.js +1 -0
  401. package/.next/static/chunks/app/api/external-apps/route-8c8bebe20cebf964.js +1 -0
  402. package/.next/static/chunks/app/api/fs/browse/route-8c8bebe20cebf964.js +1 -0
  403. package/.next/static/chunks/app/api/fs/recent-paths/route-8c8bebe20cebf964.js +1 -0
  404. package/.next/static/chunks/app/api/hooks/claude-done/route-8c8bebe20cebf964.js +1 -0
  405. package/.next/static/chunks/app/api/ollama/models/route-8c8bebe20cebf964.js +1 -0
  406. package/.next/static/chunks/app/api/push/subscriptions/route-8c8bebe20cebf964.js +1 -0
  407. package/.next/static/chunks/app/api/push/vapid/route-8c8bebe20cebf964.js +1 -0
  408. package/.next/static/chunks/app/api/repositories/[id]/route-8c8bebe20cebf964.js +1 -0
  409. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-8c8bebe20cebf964.js +1 -0
  410. package/.next/static/chunks/app/api/repositories/[id]/todos/route-8c8bebe20cebf964.js +1 -0
  411. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-8c8bebe20cebf964.js +1 -0
  412. package/.next/static/chunks/app/api/repositories/clone/route-8c8bebe20cebf964.js +1 -0
  413. package/.next/static/chunks/app/api/repositories/excluded/route-8c8bebe20cebf964.js +1 -0
  414. package/.next/static/chunks/app/api/repositories/restore/route-8c8bebe20cebf964.js +1 -0
  415. package/.next/static/chunks/app/api/repositories/route-8c8bebe20cebf964.js +1 -0
  416. package/.next/static/chunks/app/api/repositories/scan/route-8c8bebe20cebf964.js +1 -0
  417. package/.next/static/chunks/app/api/repositories/sync/route-8c8bebe20cebf964.js +1 -0
  418. package/.next/static/chunks/app/api/repositories/validate-path/route-8c8bebe20cebf964.js +1 -0
  419. package/.next/static/chunks/app/api/sidebar/group-order/route-8c8bebe20cebf964.js +1 -0
  420. package/.next/static/chunks/app/api/skills/[id]/route-8c8bebe20cebf964.js +1 -0
  421. package/.next/static/chunks/app/api/skills/route-8c8bebe20cebf964.js +1 -0
  422. package/.next/static/chunks/app/api/slash-commands/route-8c8bebe20cebf964.js +1 -0
  423. package/.next/static/chunks/app/api/templates/[id]/route-8c8bebe20cebf964.js +1 -0
  424. package/.next/static/chunks/app/api/templates/route-8c8bebe20cebf964.js +1 -0
  425. package/.next/static/chunks/app/api/todos/route-8c8bebe20cebf964.js +1 -0
  426. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-8c8bebe20cebf964.js +1 -0
  427. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-8c8bebe20cebf964.js +1 -0
  428. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-8c8bebe20cebf964.js +1 -0
  429. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-8c8bebe20cebf964.js +1 -0
  430. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-8c8bebe20cebf964.js +1 -0
  431. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-8c8bebe20cebf964.js +1 -0
  432. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-8c8bebe20cebf964.js +1 -0
  433. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-8c8bebe20cebf964.js +1 -0
  434. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-8c8bebe20cebf964.js +1 -0
  435. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-8c8bebe20cebf964.js +1 -0
  436. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-8c8bebe20cebf964.js +1 -0
  437. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-8c8bebe20cebf964.js +1 -0
  438. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-8c8bebe20cebf964.js +1 -0
  439. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-8c8bebe20cebf964.js +1 -0
  440. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-8c8bebe20cebf964.js +1 -0
  441. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-8c8bebe20cebf964.js +1 -0
  442. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-8c8bebe20cebf964.js +1 -0
  443. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-8c8bebe20cebf964.js +1 -0
  444. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-8c8bebe20cebf964.js +1 -0
  445. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-8c8bebe20cebf964.js +1 -0
  446. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-8c8bebe20cebf964.js +1 -0
  447. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-8c8bebe20cebf964.js +1 -0
  448. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-8c8bebe20cebf964.js +1 -0
  449. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-8c8bebe20cebf964.js +1 -0
  450. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-8c8bebe20cebf964.js +1 -0
  451. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-8c8bebe20cebf964.js +1 -0
  452. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-8c8bebe20cebf964.js +1 -0
  453. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-8c8bebe20cebf964.js +1 -0
  454. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-8c8bebe20cebf964.js +1 -0
  455. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-8c8bebe20cebf964.js +1 -0
  456. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-8c8bebe20cebf964.js +1 -0
  457. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-8c8bebe20cebf964.js +1 -0
  458. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-8c8bebe20cebf964.js +1 -0
  459. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-8c8bebe20cebf964.js +1 -0
  460. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-8c8bebe20cebf964.js +1 -0
  461. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-8c8bebe20cebf964.js +1 -0
  462. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-8c8bebe20cebf964.js +1 -0
  463. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-8c8bebe20cebf964.js +1 -0
  464. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-8c8bebe20cebf964.js +1 -0
  465. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-8c8bebe20cebf964.js +1 -0
  466. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-8c8bebe20cebf964.js +1 -0
  467. package/.next/static/chunks/app/api/worktrees/[id]/route-8c8bebe20cebf964.js +1 -0
  468. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-8c8bebe20cebf964.js +1 -0
  469. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-8c8bebe20cebf964.js +1 -0
  470. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-8c8bebe20cebf964.js +1 -0
  471. package/.next/static/chunks/app/api/worktrees/[id]/search/route-8c8bebe20cebf964.js +1 -0
  472. package/.next/static/chunks/app/api/worktrees/[id]/send/route-8c8bebe20cebf964.js +1 -0
  473. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-8c8bebe20cebf964.js +1 -0
  474. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-8c8bebe20cebf964.js +1 -0
  475. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-8c8bebe20cebf964.js +1 -0
  476. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-8c8bebe20cebf964.js +1 -0
  477. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-8c8bebe20cebf964.js +1 -0
  478. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-8c8bebe20cebf964.js +1 -0
  479. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-8c8bebe20cebf964.js +1 -0
  480. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-8c8bebe20cebf964.js +1 -0
  481. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-8c8bebe20cebf964.js +1 -0
  482. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-8c8bebe20cebf964.js +1 -0
  483. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-8c8bebe20cebf964.js +1 -0
  484. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-8c8bebe20cebf964.js +1 -0
  485. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-8c8bebe20cebf964.js +1 -0
  486. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-8c8bebe20cebf964.js +1 -0
  487. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-8c8bebe20cebf964.js +1 -0
  488. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-8c8bebe20cebf964.js +1 -0
  489. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-8c8bebe20cebf964.js +1 -0
  490. package/.next/static/chunks/app/api/worktrees/route-8c8bebe20cebf964.js +1 -0
  491. package/.next/static/chunks/app/chat/page-83a2238ab453afaa.js +1 -0
  492. package/.next/static/chunks/app/manifest.webmanifest/route-8c8bebe20cebf964.js +1 -0
  493. package/.next/static/chunks/app/proxy/[...path]/route-8c8bebe20cebf964.js +1 -0
  494. package/.next/static/chunks/app/repositories/page-3c4fb889da48ce24.js +1 -0
  495. package/.next/static/chunks/app/skills/[skillId]/page-8c40c9683f242207.js +1 -0
  496. package/.next/static/chunks/app/worktrees/[id]/files/[...path]/{page-9ff4d065483cdfe9.js → page-6041d3c3db326317.js} +1 -1
  497. package/.next/static/chunks/app/worktrees/[id]/page-6da38f0a06dfd9db.js +1 -0
  498. package/.next/static/chunks/webpack-6b35d37d50302d27.js +1 -0
  499. package/.next/static/css/5127edd9aa8f3b49.css +1 -0
  500. package/.next/trace +11 -11
  501. package/.next/types/app/api/fs/browse/route.ts +347 -0
  502. package/.next/types/app/api/fs/recent-paths/route.ts +347 -0
  503. package/.next/types/app/api/repositories/validate-path/route.ts +347 -0
  504. package/.next/types/routes.d.ts +4 -1
  505. package/.next/types/validator.ts +27 -0
  506. package/dist/cli/commands/init.d.ts.map +1 -1
  507. package/dist/cli/commands/init.js +15 -0
  508. package/dist/cli/types/index.d.ts +6 -0
  509. package/dist/cli/types/index.d.ts.map +1 -1
  510. package/dist/cli/utils/env-setup.d.ts +8 -0
  511. package/dist/cli/utils/env-setup.d.ts.map +1 -1
  512. package/dist/cli/utils/env-setup.js +23 -0
  513. package/dist/server/src/lib/cli-tools/submit-verified-sender.js +120 -34
  514. package/dist/server/src/lib/detection/cli-patterns.js +27 -3
  515. package/dist/server/src/lib/detection/prompt-detect-multiple-choice.js +19 -0
  516. package/dist/server/src/lib/git/git-exec.js +48 -1
  517. package/dist/server/src/lib/selected-agents-validator.js +3 -2
  518. package/dist/server/src/lib/session/current-output-builder.js +10 -1
  519. package/dist/server/src/lib/tmux/tmux.js +26 -0
  520. package/dist/server/src/types/markdown-editor.js +13 -1
  521. package/package.json +1 -1
  522. package/.next/server/chunks/186.js +0 -1
  523. package/.next/server/chunks/7013.js +0 -1
  524. package/.next/server/chunks/9067.js +0 -1
  525. package/.next/static/Etea8LidpB8eWOTac-R8b/_buildManifest.js +0 -1
  526. package/.next/static/chunks/1668-e703b8b55775844b.js +0 -1
  527. package/.next/static/chunks/2069-c55de93eb6403961.js +0 -1
  528. package/.next/static/chunks/4027-0c529b322be7d4d8.js +0 -1
  529. package/.next/static/chunks/530.e377b0f1a7a89620.js +0 -1
  530. package/.next/static/chunks/6007-de36119357dcd418.js +0 -1
  531. package/.next/static/chunks/6497-dc26c6c6b0b15adf.js +0 -1
  532. package/.next/static/chunks/8361.4bf062be2d2962f4.js +0 -1
  533. package/.next/static/chunks/8566-b8bbcfd837cc338b.js +0 -1
  534. package/.next/static/chunks/934-a37509667baa86ee.js +0 -1
  535. package/.next/static/chunks/app/api/app/update/route-56dad0523d3c4a92.js +0 -1
  536. package/.next/static/chunks/app/api/app/update-check/route-56dad0523d3c4a92.js +0 -1
  537. package/.next/static/chunks/app/api/assistant/conversation/route-56dad0523d3c4a92.js +0 -1
  538. package/.next/static/chunks/app/api/assistant/current-output/route-56dad0523d3c4a92.js +0 -1
  539. package/.next/static/chunks/app/api/assistant/messages/route-56dad0523d3c4a92.js +0 -1
  540. package/.next/static/chunks/app/api/assistant/session/route-56dad0523d3c4a92.js +0 -1
  541. package/.next/static/chunks/app/api/assistant/start/route-56dad0523d3c4a92.js +0 -1
  542. package/.next/static/chunks/app/api/assistant/terminal/route-56dad0523d3c4a92.js +0 -1
  543. package/.next/static/chunks/app/api/assistant/tools/route-56dad0523d3c4a92.js +0 -1
  544. package/.next/static/chunks/app/api/auth/login/route-56dad0523d3c4a92.js +0 -1
  545. package/.next/static/chunks/app/api/auth/logout/route-56dad0523d3c4a92.js +0 -1
  546. package/.next/static/chunks/app/api/auth/status/route-56dad0523d3c4a92.js +0 -1
  547. package/.next/static/chunks/app/api/daily-summary/route-56dad0523d3c4a92.js +0 -1
  548. package/.next/static/chunks/app/api/daily-summary/status/route-56dad0523d3c4a92.js +0 -1
  549. package/.next/static/chunks/app/api/external-apps/[id]/health/route-56dad0523d3c4a92.js +0 -1
  550. package/.next/static/chunks/app/api/external-apps/[id]/route-56dad0523d3c4a92.js +0 -1
  551. package/.next/static/chunks/app/api/external-apps/route-56dad0523d3c4a92.js +0 -1
  552. package/.next/static/chunks/app/api/hooks/claude-done/route-56dad0523d3c4a92.js +0 -1
  553. package/.next/static/chunks/app/api/ollama/models/route-56dad0523d3c4a92.js +0 -1
  554. package/.next/static/chunks/app/api/push/subscriptions/route-56dad0523d3c4a92.js +0 -1
  555. package/.next/static/chunks/app/api/push/vapid/route-56dad0523d3c4a92.js +0 -1
  556. package/.next/static/chunks/app/api/repositories/[id]/route-56dad0523d3c4a92.js +0 -1
  557. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-56dad0523d3c4a92.js +0 -1
  558. package/.next/static/chunks/app/api/repositories/[id]/todos/route-56dad0523d3c4a92.js +0 -1
  559. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-56dad0523d3c4a92.js +0 -1
  560. package/.next/static/chunks/app/api/repositories/clone/route-56dad0523d3c4a92.js +0 -1
  561. package/.next/static/chunks/app/api/repositories/excluded/route-56dad0523d3c4a92.js +0 -1
  562. package/.next/static/chunks/app/api/repositories/restore/route-56dad0523d3c4a92.js +0 -1
  563. package/.next/static/chunks/app/api/repositories/route-56dad0523d3c4a92.js +0 -1
  564. package/.next/static/chunks/app/api/repositories/scan/route-56dad0523d3c4a92.js +0 -1
  565. package/.next/static/chunks/app/api/repositories/sync/route-56dad0523d3c4a92.js +0 -1
  566. package/.next/static/chunks/app/api/sidebar/group-order/route-56dad0523d3c4a92.js +0 -1
  567. package/.next/static/chunks/app/api/skills/[id]/route-56dad0523d3c4a92.js +0 -1
  568. package/.next/static/chunks/app/api/skills/route-56dad0523d3c4a92.js +0 -1
  569. package/.next/static/chunks/app/api/slash-commands/route-56dad0523d3c4a92.js +0 -1
  570. package/.next/static/chunks/app/api/templates/[id]/route-56dad0523d3c4a92.js +0 -1
  571. package/.next/static/chunks/app/api/templates/route-56dad0523d3c4a92.js +0 -1
  572. package/.next/static/chunks/app/api/todos/route-56dad0523d3c4a92.js +0 -1
  573. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-56dad0523d3c4a92.js +0 -1
  574. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-56dad0523d3c4a92.js +0 -1
  575. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-56dad0523d3c4a92.js +0 -1
  576. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-56dad0523d3c4a92.js +0 -1
  577. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-56dad0523d3c4a92.js +0 -1
  578. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-56dad0523d3c4a92.js +0 -1
  579. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-56dad0523d3c4a92.js +0 -1
  580. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-56dad0523d3c4a92.js +0 -1
  581. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-56dad0523d3c4a92.js +0 -1
  582. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-56dad0523d3c4a92.js +0 -1
  583. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-56dad0523d3c4a92.js +0 -1
  584. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-56dad0523d3c4a92.js +0 -1
  585. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-56dad0523d3c4a92.js +0 -1
  586. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-56dad0523d3c4a92.js +0 -1
  587. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-56dad0523d3c4a92.js +0 -1
  588. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-56dad0523d3c4a92.js +0 -1
  589. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-56dad0523d3c4a92.js +0 -1
  590. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-56dad0523d3c4a92.js +0 -1
  591. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-56dad0523d3c4a92.js +0 -1
  592. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-56dad0523d3c4a92.js +0 -1
  593. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-56dad0523d3c4a92.js +0 -1
  594. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-56dad0523d3c4a92.js +0 -1
  595. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-56dad0523d3c4a92.js +0 -1
  596. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-56dad0523d3c4a92.js +0 -1
  597. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-56dad0523d3c4a92.js +0 -1
  598. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-56dad0523d3c4a92.js +0 -1
  599. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-56dad0523d3c4a92.js +0 -1
  600. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-56dad0523d3c4a92.js +0 -1
  601. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-56dad0523d3c4a92.js +0 -1
  602. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-56dad0523d3c4a92.js +0 -1
  603. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-56dad0523d3c4a92.js +0 -1
  604. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-56dad0523d3c4a92.js +0 -1
  605. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-56dad0523d3c4a92.js +0 -1
  606. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-56dad0523d3c4a92.js +0 -1
  607. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-56dad0523d3c4a92.js +0 -1
  608. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-56dad0523d3c4a92.js +0 -1
  609. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-56dad0523d3c4a92.js +0 -1
  610. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-56dad0523d3c4a92.js +0 -1
  611. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-56dad0523d3c4a92.js +0 -1
  612. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-56dad0523d3c4a92.js +0 -1
  613. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-56dad0523d3c4a92.js +0 -1
  614. package/.next/static/chunks/app/api/worktrees/[id]/route-56dad0523d3c4a92.js +0 -1
  615. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-56dad0523d3c4a92.js +0 -1
  616. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-56dad0523d3c4a92.js +0 -1
  617. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-56dad0523d3c4a92.js +0 -1
  618. package/.next/static/chunks/app/api/worktrees/[id]/search/route-56dad0523d3c4a92.js +0 -1
  619. package/.next/static/chunks/app/api/worktrees/[id]/send/route-56dad0523d3c4a92.js +0 -1
  620. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-56dad0523d3c4a92.js +0 -1
  621. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-56dad0523d3c4a92.js +0 -1
  622. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-56dad0523d3c4a92.js +0 -1
  623. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-56dad0523d3c4a92.js +0 -1
  624. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-56dad0523d3c4a92.js +0 -1
  625. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-56dad0523d3c4a92.js +0 -1
  626. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-56dad0523d3c4a92.js +0 -1
  627. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-56dad0523d3c4a92.js +0 -1
  628. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-56dad0523d3c4a92.js +0 -1
  629. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-56dad0523d3c4a92.js +0 -1
  630. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-56dad0523d3c4a92.js +0 -1
  631. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-56dad0523d3c4a92.js +0 -1
  632. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-56dad0523d3c4a92.js +0 -1
  633. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-56dad0523d3c4a92.js +0 -1
  634. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-56dad0523d3c4a92.js +0 -1
  635. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-56dad0523d3c4a92.js +0 -1
  636. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-56dad0523d3c4a92.js +0 -1
  637. package/.next/static/chunks/app/api/worktrees/route-56dad0523d3c4a92.js +0 -1
  638. package/.next/static/chunks/app/chat/page-9cf4ba62e21d9074.js +0 -1
  639. package/.next/static/chunks/app/manifest.webmanifest/route-56dad0523d3c4a92.js +0 -1
  640. package/.next/static/chunks/app/proxy/[...path]/route-56dad0523d3c4a92.js +0 -1
  641. package/.next/static/chunks/app/repositories/page-70d4b997492884b8.js +0 -1
  642. package/.next/static/chunks/app/skills/[skillId]/page-68ed5e9186efe56d.js +0 -1
  643. package/.next/static/chunks/app/worktrees/[id]/page-f2801662a721faab.js +0 -1
  644. package/.next/static/chunks/webpack-0f9275e279c058eb.js +0 -1
  645. package/.next/static/css/b4bdb1f3457fe9a7.css +0 -1
  646. /package/.next/static/{Etea8LidpB8eWOTac-R8b → MqlW91_Se_kEW6mtm-1x0}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[838],{1226:()=>{},38038:(e,t,s)=>{Promise.resolve().then(s.bind(s,60675))},53482:(e,t,s)=>{"use strict";s.d(t,{i:()=>c});var a=s(95155),n=s(12115),r=s(60322),i=s(9900);function o(){return(0,a.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})})}function l(){return(0,a.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})}function c(e){let{text:t,className:s="",label:c="Copy"}=e,[d,u]=(0,n.useState)(!1),m=(0,n.useRef)(null);(0,n.useEffect)(()=>()=>{m.current&&clearTimeout(m.current)},[]);let p=(0,n.useCallback)(async()=>{try{await (0,r.l)(t),u(!0),m.current&&clearTimeout(m.current),m.current=setTimeout(()=>u(!1),i.s7)}catch(e){}},[t]);return(0,a.jsxs)("button",{type:"button",onClick:p,className:"inline-flex items-center gap-1 rounded border border-border bg-surface px-2 py-0.5 text-[11px] font-medium text-foreground transition-colors hover:bg-muted ".concat(s),"aria-label":d?"Copied":c,title:d?"Copied!":c,children:[d?(0,a.jsx)(l,{}):(0,a.jsx)(o,{}),(0,a.jsx)("span",{children:d?"Copied":c})]})}},60322:(e,t,s)=>{"use strict";s.d(t,{l:()=>n});let a=/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\[[0-9;]*m/g;async function n(e){var t;if(!e||0===e.trim().length)return;let s=e.replace(a,"");if(null==(t=navigator.clipboard)?void 0:t.writeText)try{await navigator.clipboard.writeText(s);return}catch(e){}let n=document.createElement("textarea");n.value=s,n.style.position="fixed",n.style.left="-9999px",n.style.top="-9999px",n.style.opacity="0",document.body.appendChild(n),n.focus(),n.select();try{document.execCommand("copy")}finally{document.body.removeChild(n)}}},60675:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>I});var a=s(95155),n=s(4560),r=s(12115),i=s(18955),o=s(71360),l=s(744),c=s(36402);let d=(0,r.memo)(function(e){let{onSend:t,disabled:s=!1,placeholder:n}=e,o=(0,i.c)("home"),[c,d]=(0,r.useState)(""),[u,m]=(0,r.useState)(!1),[p,h]=(0,r.useState)(!1),x=(0,r.useRef)(null),f=(0,r.useRef)(null),g=(0,r.useRef)(!1);(0,r.useEffect)(()=>{let e=x.current;e&&(c?(e.style.height="auto",e.style.height="".concat(Math.min(e.scrollHeight,120),"px")):e.style.height="24px")},[c]);let b=(0,r.useCallback)(async()=>{if(!p&&c.trim()&&!u&&!s)try{m(!0),await t(c.trim()),d("")}catch(e){}finally{m(!1)}},[p,c,u,s,t]),v=(0,r.useCallback)(async e=>{e.preventDefault(),await b()},[b]),y=(0,r.useCallback)(()=>{h(!0),g.current=!1,f.current&&clearTimeout(f.current)},[]),w=(0,r.useCallback)(()=>{h(!1),g.current=!0,f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{g.current=!1},300)},[]),j=(0,r.useCallback)(e=>{let{keyCode:t}=e.nativeEvent;if(229!==t){if(g.current&&"Enter"===e.key){g.current=!1;return}"Enter"!==e.key||p||e.shiftKey||(e.preventDefault(),b())}},[p,b]);return(0,a.jsxs)("form",{onSubmit:v,className:"flex shrink-0 items-center gap-2 rounded-lg border border-input bg-surface dark:bg-surface-2 px-3 py-1.5 focus-within:border-accent-500 focus-within:ring-1 focus-within:ring-accent-500","data-testid":"assistant-message-input",children:[(0,a.jsx)("textarea",{ref:x,value:c,onChange:e=>d(e.target.value),onKeyDown:j,onCompositionStart:y,onCompositionEnd:w,placeholder:null!=n?n:o("assistant.input.defaultPlaceholder"),disabled:u||s,rows:1,className:"flex-1 outline-none bg-transparent resize-none overflow-y-auto scrollbar-thin text-sm",style:{minHeight:"24px",maxHeight:"120px",paddingTop:"4px",paddingBottom:"4px",lineHeight:"18px"},"data-testid":"assistant-message-textarea"}),(0,a.jsx)(l.$n,{type:"submit",variant:"ghost",disabled:!c.trim()||u||s,className:"flex-shrink-0 rounded-full p-1.5 text-accent-600 hover:bg-accent-50 dark:text-accent-400 dark:hover:bg-accent-900/30 disabled:text-muted-foreground disabled:hover:bg-transparent","aria-label":o("assistant.input.send"),"data-testid":"assistant-send-button",children:u?(0,a.jsx)(l.y$,{size:"sm"}):(0,a.jsx)("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 19l9 2-9-18-9 18 9-2zm0 0v-8"})})})]})});var u=s(28857),m=s(22133),p=s(10934),h=s(5225);s(1226);var x=s(53482),f=s(3005);function g(e){return e.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}function b(){return(0,a.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"})})}function v(e){let{message:t}=e;return(0,a.jsx)("div",{className:"text-center text-xs font-medium uppercase tracking-[0.14em] text-muted-foreground",children:(0,a.jsx)("span",{className:"rounded-full border border-border bg-surface-2 px-3 py-1",children:t.content})})}function y(e){let{message:t,canEdit:s,onEdit:n}=e,o=(0,i.c)("home"),[l,c]=(0,r.useState)(!1),[d,u]=(0,r.useState)(t.content),[m,p]=(0,r.useState)(!1),[h,f]=(0,r.useState)(null),v=t.deliveryStatus?"pending"===t.deliveryStatus?o("assistant.message.sending"):"failed"===t.deliveryStatus?o("assistant.message.failed"):o("assistant.message.sent"):null,y=(0,r.useCallback)(()=>{u(t.content),f(null),c(!0)},[t.content]),w=(0,r.useCallback)(()=>{c(!1),f(null)},[]),j=(0,r.useCallback)(async()=>{if(!n||m)return;let e=d.trim();if(!e||e===t.content.trim())return void c(!1);p(!0),f(null);try{await n(t,e),c(!1)}catch(e){f(e instanceof Error?e.message:o("assistant.errors.resubmitMessage"))}finally{p(!1)}},[d,t,n,m,o]);return(0,a.jsxs)("div",{className:"group ml-auto max-w-[88%] rounded-2xl border border-accent-500/40 bg-accent-500/10 px-4 py-3 text-foreground shadow-sm",children:[(0,a.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-3 text-[11px] uppercase tracking-[0.12em] text-muted-foreground",children:[(0,a.jsx)("span",{children:o("assistant.message.you")}),(0,a.jsx)("span",{children:g(t.timestamp)})]}),l?(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("textarea",{className:"w-full resize-y rounded border border-input bg-surface p-2 text-sm text-foreground focus:border-accent-500 focus:outline-none focus:ring-1 focus:ring-ring",value:d,onChange:e=>u(e.target.value),rows:Math.max(3,Math.min(12,d.split("\n").length+1)),disabled:m,"data-testid":"assistant-edit-textarea"}),h&&(0,a.jsx)("p",{className:"text-[11px] text-danger-foreground",children:h}),(0,a.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,a.jsx)("button",{type:"button",onClick:w,disabled:m,className:"rounded border border-border bg-surface px-3 py-1 text-[11px] text-foreground transition-colors hover:bg-muted disabled:opacity-50",children:o("assistant.message.cancel")}),(0,a.jsx)("button",{type:"button",onClick:j,disabled:m||!d.trim(),className:"rounded bg-accent-600 px-3 py-1 text-[11px] font-medium text-white transition-colors hover:bg-accent-700 disabled:cursor-not-allowed disabled:bg-muted disabled:text-muted-foreground","data-testid":"assistant-edit-save",children:m?o("assistant.message.resending"):o("assistant.message.saveAndResend")})]})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{className:"whitespace-pre-wrap break-words text-sm leading-6",children:t.content}),(0,a.jsxs)("div",{className:"mt-2 flex items-center justify-between gap-3",children:[(0,a.jsx)("span",{className:"text-[11px] font-medium ".concat("failed"===t.deliveryStatus?"text-danger-foreground":"text-muted-foreground"),children:null!=v?v:""}),(0,a.jsxs)("div",{className:"flex items-center gap-1.5 opacity-60 transition-opacity group-hover:opacity-100",children:[(0,a.jsx)(x.i,{text:t.content}),s&&n&&(0,a.jsxs)("button",{type:"button",onClick:y,className:"inline-flex items-center gap-1 rounded border border-border bg-surface px-2 py-0.5 text-[11px] font-medium text-foreground transition-colors hover:bg-muted","aria-label":o("assistant.message.editMessage"),"data-testid":"assistant-edit-button",title:o("assistant.message.editAndResend"),children:[(0,a.jsx)(b,{}),(0,a.jsx)("span",{children:o("assistant.message.edit")})]})]})]})]})]})}function w(e){let{message:t,assistantLabel:s}=e;return(0,a.jsxs)("div",{className:"group mr-auto max-w-[88%] rounded-2xl border border-border bg-surface px-4 py-3 text-foreground shadow-sm",children:[(0,a.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-3 text-[11px] uppercase tracking-[0.12em] text-muted-foreground",children:[(0,a.jsx)("span",{children:s}),(0,a.jsx)("span",{children:g(t.timestamp)})]}),(0,a.jsx)("div",{className:"assistant-md text-sm leading-6",children:(0,a.jsx)(u.oz,{remarkPlugins:[m.A],rehypePlugins:[p.A,h.A],children:t.content})}),(0,a.jsx)("div",{className:"mt-2 flex justify-end opacity-60 transition-opacity group-hover:opacity-100",children:(0,a.jsx)(x.i,{text:t.content})})]})}function j(e){let{messages:t,assistantLabel:s,sessionActive:n,waitingForResponse:o=!1,canEdit:l=!1,onEditMessage:c}=e,d=(0,i.c)("home"),u=(0,r.useRef)(null),m=(0,r.useRef)(!0),p=(0,r.useMemo)(()=>{var e;let s=t[t.length-1];return s?"".concat(t.length,":").concat(s.id,":").concat(null!=(e=s.deliveryStatus)?e:"",":").concat(s.content.length,":").concat(o?"waiting":"idle"):"empty:".concat(o?"waiting":"idle")},[t,o]);(0,r.useEffect)(()=>{u.current&&m.current&&(u.current.scrollTop=u.current.scrollHeight)},[p]);let h=(0,r.useMemo)(()=>{let e=t[t.length-1];return n&&e&&"user"===e.role&&"failed"!==e.deliveryStatus?d("assistant.working"):d("assistant.emptyState")},[t,n,d]);return(0,a.jsx)("div",{ref:u,className:"h-full min-h-0 overflow-y-scroll rounded-xl border border-border bg-surface-2 p-3",style:{scrollbarGutter:"stable"},onScroll:e=>{let t=e.currentTarget;m.current=t.scrollHeight-t.scrollTop-t.clientHeight<48},"data-testid":"assistant-message-list",children:0!==t.length||o?(0,a.jsxs)("div",{className:"space-y-3",children:[t.map(e=>"system"===e.role&&"session_boundary"===e.messageType?(0,a.jsx)(v,{message:e},e.id):"user"===e.role?(0,a.jsx)(y,{message:e,canEdit:l,onEdit:c},e.id):(0,a.jsx)(w,{message:e,assistantLabel:s},e.id)),o&&(0,a.jsxs)("div",{className:"mr-auto flex max-w-[88%] items-center gap-3 rounded-2xl border border-border bg-surface px-4 py-3 shadow-sm","data-testid":"assistant-waiting-indicator","aria-live":"polite",children:[(0,a.jsx)(f.y,{size:"sm",variant:"accent"}),(0,a.jsx)("span",{className:"text-sm text-foreground",children:d("assistant.thinking",{label:s})})]})]}):(0,a.jsx)("div",{className:"flex h-full min-h-[160px] items-center justify-center text-sm text-muted-foreground",children:h})})}function k(e){return e?{...e,createdAt:new Date(e.createdAt),updatedAt:new Date(e.updatedAt),lastStartedAt:e.lastStartedAt?new Date(e.lastStartedAt):void 0,lastStoppedAt:e.lastStoppedAt?new Date(e.lastStoppedAt):void 0,contextSentAt:e.contextSentAt?new Date(e.contextSentAt):void 0}:null}function N(e){return{...e,timestamp:new Date(e.timestamp)}}let C={async getConversation(e,t){let s=await fetch("/api/assistant/conversation?repositoryId=".concat(encodeURIComponent(e),"&cliToolId=").concat(encodeURIComponent(t)));if(!s.ok)throw Error((await s.json().catch(()=>({}))).error||"Failed to get conversation (".concat(s.status,")"));return k((await s.json()).conversation)},async getMessages(e){let t=await fetch("/api/assistant/messages?conversationId=".concat(encodeURIComponent(e)));if(!t.ok)throw Error((await t.json().catch(()=>({}))).error||"Failed to get messages (".concat(t.status,")"));return(await t.json()).messages.map(N)},async clearMessages(e,t){var s;let a=new URLSearchParams({conversationId:e});(null==t?void 0:t.fromMessageId)&&a.set("fromMessageId",t.fromMessageId);let n=await fetch("/api/assistant/messages?".concat(a.toString()),{method:"DELETE"});if(!n.ok)throw Error((await n.json().catch(()=>({}))).error||"Failed to clear messages (".concat(n.status,")"));return{archivedCount:null!=(s=(await n.json()).archivedCount)?s:0}},async startSession(e,t){let s=await fetch("/api/assistant/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cliToolId:e,repositoryId:t})});if(!s.ok)throw Error((await s.json().catch(()=>({}))).error||"Failed to start session (".concat(s.status,")"));let a=await s.json();return{...a,conversation:k(a.conversation)}},async sendCommand(e,t,s){let a=await fetch("/api/assistant/terminal",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cliToolId:e,conversationId:t,command:s})});if(!a.ok)throw Error((await a.json().catch(()=>({}))).error||"Failed to send command (".concat(a.status,")"))},async getCurrentOutput(e,t){let s=await fetch("/api/assistant/current-output?cliToolId=".concat(encodeURIComponent(e),"&conversationId=").concat(encodeURIComponent(t)));if(!s.ok)throw Error((await s.json().catch(()=>({}))).error||"Failed to get output (".concat(s.status,")"));return s.json()},async stopSession(e,t){let s=await fetch("/api/assistant/session?cliToolId=".concat(encodeURIComponent(e),"&conversationId=").concat(encodeURIComponent(t)),{method:"DELETE"});if(!s.ok)throw Error((await s.json().catch(()=>({}))).error||"Failed to stop session (".concat(s.status,")"));return s.json()},async getInstalledTools(){var e;let t=await fetch("/api/assistant/tools");return t.ok&&null!=(e=(await t.json()).tools)?e:[]}},S="commandmate-assistant-cli-tool",E=["claude","codex","antigravity"];function M(e){return E.includes(e)}function A(){var e;let t=(0,i.c)("home"),s=(0,c.SC)(),[n,u]=(0,r.useState)([]),[m,p]=(0,r.useState)([]),[h,x]=(0,r.useState)(""),[f,g]=(0,r.useState)("claude"),[b,v]=(0,r.useState)(null),[y,w]=(0,r.useState)([]),[k,N]=(0,r.useState)(null),[E,A]=(0,r.useState)(!1),[I,T]=(0,r.useState)(!1),[R,L]=(0,r.useState)(!1),[H,D]=(0,r.useState)(!1),[P,_]=(0,r.useState)(null),z="".concat(h,":").concat(f),F=!H||""!==h&&P!==z,U=(0,r.useRef)(null),O=(null==b?void 0:b.status)==="ready"||(null==b?void 0:b.status)==="running",B=(null==b?void 0:b.status)==="running",W=(null==b?void 0:b.status)==="ready",$=n.find(e=>e.id===h),V=(0,r.useMemo)(()=>m.filter(e=>M(e.id)),[m]),G=V.find(e=>e.id===f),J=null!=(e=null==G?void 0:G.name)?e:f,K=(0,r.useCallback)(async e=>{w(await C.getMessages(e))},[]),Z=(0,r.useCallback)(async()=>{if(!h){v(null),w([]);return}let e=await C.getConversation(h,f);v(e),e?await K(e.id):w([])},[K,h,f]);(0,r.useEffect)(()=>{{let e=localStorage.getItem(S);e&&M(e)&&g(e)}},[]),(0,r.useEffect)(()=>{async function e(){let e=await C.getInstalledTools();p(e);let t=e.filter(e=>M(e.id)),s=t.find(e=>e.installed);s&&g(e=>{let a=t.find(t=>t.id===e);return(null==a?void 0:a.installed)?e:s.id})}(async function(){try{var e;let t=await fetch("/api/worktrees");if(!t.ok)return;let s=(null!=(e=(await t.json()).repositories)?e:[]).map(e=>({id:e.id,path:e.path,name:e.name,displayName:e.displayName}));u(s),s.length>0&&x(e=>e||s[0].id)}catch(e){}finally{D(!0)}})(),e()},[]),(0,r.useEffect)(()=>{if(!h)return;let e=!1;return(async()=>{try{let t=await C.getConversation(h,f);if(e)return;if(v(t),t){let s=await C.getMessages(t.id);e||w(s)}else w([])}catch(s){e||N(s instanceof Error?s.message:t("assistant.errors.loadConversation"))}finally{e||_("".concat(h,":").concat(f))}})(),()=>{e=!0}},[h,f,t]),(0,r.useEffect)(()=>{if(U.current&&(clearInterval(U.current),U.current=null),!b)return;let e=async()=>{try{await Z()}catch(e){}};return e(),U.current=setInterval(e,2e3),()=>{U.current&&(clearInterval(U.current),U.current=null)}},[null==b?void 0:b.id,Z,b]);let q=(0,r.useCallback)(e=>{M(e)&&(g(e),localStorage.setItem(S,e))},[]),Q=(0,r.useCallback)(async()=>{if(h&&!E){A(!0),N(null);try{let e=await C.startSession(f,h);v(e.conversation),await K(e.conversation.id)}catch(e){N(e instanceof Error?e.message:t("assistant.errors.startSession"))}finally{A(!1)}}},[K,h,f,E,t]),X=(0,r.useCallback)(async()=>{if(b&&!I){T(!0),N(null);try{await C.stopSession(f,b.id),await Z()}catch(e){N(e instanceof Error?e.message:t("assistant.errors.stopSession"))}finally{T(!1)}}},[b,Z,f,I,t]),Y=(0,r.useCallback)(async()=>{if(b&&!R&&!B&&await s({description:t("assistant.clearHistoryConfirm"),variant:"danger"})){L(!0),N(null);try{await C.clearMessages(b.id),await Z()}catch(e){N(e instanceof Error?e.message:t("assistant.errors.clearHistory"))}finally{L(!1)}}},[R,b,B,Z,s,t]),ee=(0,r.useCallback)(async e=>{if(b&&W){N(null);try{await C.sendCommand(f,b.id,e),v(e=>e?{...e,status:"running"}:e),await Promise.all([K(b.id),Z()])}catch(e){throw N(e instanceof Error?e.message:t("assistant.errors.sendMessage")),e}}},[W,b,Z,K,f,t]),et=(0,r.useCallback)(async(e,s)=>{if(!b||!W)throw Error(t("assistant.errors.notReadyToResend"));N(null),await C.clearMessages(b.id,{fromMessageId:e.id}),await C.sendCommand(f,b.id,s),v(e=>e?{...e,status:"running"}:e),await Promise.all([K(b.id),Z()])},[W,b,Z,K,f,t]),es=(0,r.useCallback)(async e=>{if(O){if(!await s({description:t("assistant.changeRepoConfirm")}))return;try{await C.stopSession(f,b.id)}catch(e){N(e instanceof Error?e.message:t("assistant.errors.stopSession"));return}}x(e),N(null)},[b,O,f,s,t]);return(0,a.jsx)(l.Zp,{variant:"elevated",padding:"none",className:"overflow-hidden rounded-xl shadow-lg","data-testid":"assistant-chat-panel",children:(0,a.jsxs)("div",{className:"flex h-[78vh] min-h-[34rem] max-h-[48rem] flex-col gap-4 overflow-hidden bg-gradient-to-br from-transparent to-accent-500/5 p-4",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,a.jsxs)("div",{className:"grid gap-3 md:grid-cols-[minmax(0,1.6fr)_minmax(0,1fr)_auto]",children:[(0,a.jsx)("span",{className:"text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground",children:t("assistant.repositoryLabel")}),(0,a.jsx)("span",{className:"text-xs font-medium uppercase tracking-[0.16em] text-muted-foreground",children:t("assistant.cliLabel")}),(0,a.jsx)("span",{className:"hidden md:block"})]}),(0,a.jsxs)("div",{className:"grid gap-3 md:grid-cols-[minmax(0,1.6fr)_minmax(0,1fr)_auto] md:items-center",children:[(0,a.jsxs)("select",{value:h,onChange:e=>void es(e.target.value),disabled:0===n.length,className:"w-full rounded-lg border border-input bg-surface px-3 py-2 text-sm text-foreground shadow-sm transition-colors focus:border-accent-500 focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:bg-muted disabled:text-muted-foreground","data-testid":"assistant-repo-select",children:[0===n.length&&(0,a.jsx)("option",{value:"",children:t("assistant.noRepositories")}),n.map(e=>(0,a.jsx)("option",{value:e.id,children:e.displayName||e.name},e.id))]}),(0,a.jsx)("select",{value:f,onChange:e=>q(e.target.value),disabled:O,className:"w-full rounded-lg border border-input bg-surface px-3 py-2 text-sm text-foreground shadow-sm transition-colors focus:border-accent-500 focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:bg-muted disabled:text-muted-foreground","data-testid":"assistant-tool-select",children:V.map(e=>(0,a.jsx)("option",{value:e.id,disabled:!e.installed,children:e.installed?e.name:t("assistant.toolNotInstalled",{name:e.name})},e.id))}),(0,a.jsx)("div",{children:O?(0,a.jsx)(l.$n,{variant:"danger",onClick:X,disabled:I,className:"w-full md:w-auto","data-testid":"assistant-stop-button",children:I?t("assistant.stopping"):t("assistant.stop")}):(0,a.jsx)(l.$n,{variant:"primary",onClick:Q,disabled:!h||E,className:"w-full md:w-auto","data-testid":"assistant-start-button",children:E?t("assistant.starting"):t("assistant.start")})})]}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:$?t("assistant.startDirectory",{repository:$.displayName||$.name,path:$.path}):t("assistant.startDirectoryHint")})]}),k&&(0,a.jsx)("div",{className:"rounded border border-danger/40 bg-danger/10 p-2 text-sm text-danger-foreground",children:k}),(0,a.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col gap-3 overflow-hidden",children:[(0,a.jsxs)("div",{className:"flex shrink-0 items-center justify-between",children:[(0,a.jsx)("span",{className:"text-xs font-medium uppercase tracking-[0.14em] text-muted-foreground",children:t("assistant.history")}),(0,a.jsxs)(l.$n,{type:"button",variant:"ghost",size:"sm",onClick:Y,disabled:!b||R||B||0===y.length,className:"gap-1","data-testid":"assistant-clear-button",children:[(0,a.jsx)(o.A,{className:"h-3.5 w-3.5","aria-hidden":"true"}),R?t("assistant.clearing"):t("assistant.clearHistory")]})]}),(0,a.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:F&&0===y.length?(0,a.jsx)("div",{className:"h-full min-h-0 overflow-hidden rounded-xl border border-border bg-surface-2 p-3","data-testid":"assistant-chat-loading",role:"status","aria-label":t("assistant.loadingConversation"),children:(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsx)(l.EA,{className:"ml-auto h-10 w-3/5 rounded-2xl"}),(0,a.jsx)(l.EA,{className:"mr-auto h-16 w-4/5 rounded-2xl"}),(0,a.jsx)(l.EA,{className:"ml-auto h-10 w-2/5 rounded-2xl"})]})}):(0,a.jsx)(j,{messages:y,assistantLabel:J,sessionActive:O,waitingForResponse:B,canEdit:W,onEditMessage:et})}),(0,a.jsx)("div",{className:"shrink-0",children:(0,a.jsx)(d,{onSend:ee,disabled:!W,placeholder:W?t("assistant.inputPlaceholder"):O?t("assistant.inputPlaceholderWaiting"):t("assistant.inputPlaceholderNoSession")})})]})]})})}function I(){return(0,a.jsx)(n.GV,{children:(0,a.jsxs)("div",{className:"container-custom py-8 overflow-auto h-full",children:[(0,a.jsxs)("div",{className:"mb-6",children:[(0,a.jsx)("h1",{className:"text-2xl font-bold text-foreground mb-2",children:"Assistant Chat"}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Converse with a local CLI assistant (Claude or Codex) scoped to a selected repository."})]}),(0,a.jsx)(A,{})]})})}},71360:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(71847).A)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]])}},e=>{e.O(0,[6481,6809,4909,2770,790,4974,8566,2069,934,6402,744,6488,4560,8441,1255,7358],()=>e(e.s=38038)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[11,66,74,219,263,341,532,890,960,1099,1123,1274,1295,1310,1317,1337,1360,1421,1437,1490,1517,1523,1652,1745,2046,2117,2149,2360,2852,2893,3002,3175,3298,3350,3657,3797,3845,3965,3969,3990,4016,4035,4042,4199,4225,4240,4260,4476,4594,4614,4748,4767,4779,4907,4961,4985,5286,5580,5683,6140,6194,6248,6393,6680,6734,6824,6839,7345,7435,7473,7509,7560,7670,7758,7760,7870,7939,8043,8238,8418,8457,8460,8464,8472,8489,8509,8544,8710,8914,8979,9015,9059,9114,9162,9245,9281,9282,9325,9457,9549,9792,9932,9946,9968,9996],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[11,66,74,219,263,341,532,890,960,1099,1123,1274,1295,1310,1317,1337,1360,1421,1437,1490,1517,1523,1652,1745,2046,2117,2149,2360,2852,2893,3002,3175,3298,3350,3657,3797,3845,3965,3969,3990,4016,4035,4042,4199,4225,4240,4260,4476,4594,4614,4748,4767,4779,4907,4961,4985,5286,5580,5683,6140,6194,6248,6393,6680,6734,6824,6839,7345,7435,7473,7509,7560,7670,7758,7760,7870,7939,8043,8238,8418,8457,8460,8464,8472,8489,8509,8544,8710,8914,8979,9015,9059,9114,9162,9245,9281,9282,9325,9457,9549,9792,9932,9946,9968,9996],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3135],{540:(e,t,s)=>{Promise.resolve().then(s.bind(s,22743))},9219:(e,t,s)=>{"use strict";s.d(t,{k:()=>n});var r=s(95155),a=s(12115),l=s(744),i=s(87531);function n(e){let{onRefresh:t,enabled:s=!0,className:n,children:o}=e,{containerRef:c,pullDistance:d,isRefreshing:u,isPulling:m}=function(e){let{onRefresh:t,enabled:s=!0,threshold:r=64,maxPull:l=96,resistance:i=.5}=e,n=(0,a.useRef)(null),[o,c]=(0,a.useState)(0),[d,u]=(0,a.useState)(!1),[m,p]=(0,a.useState)(!1),x=(0,a.useRef)(null),h=(0,a.useRef)(0),g=(0,a.useRef)(!1);g.current=d;let f=(0,a.useCallback)(()=>{x.current=null,h.current=0,c(0),p(!1)},[]),b=(0,a.useCallback)(e=>{if(!s||g.current)return;let t=n.current;t&&!(t.scrollTop>0)&&(x.current=e.touches[0].clientY,h.current=0)},[s]),v=(0,a.useCallback)(e=>{if(null===x.current)return;let t=n.current;if(!t)return;if(t.scrollTop>0)return void f();let s=e.touches[0].clientY-x.current;if(s<=0){0!==h.current&&(h.current=0,c(0),p(!1));return}e.cancelable&&e.preventDefault();let r=Math.min(s*i,l);h.current=r,c(r),p(!0)},[i,l,f]),j=(0,a.useCallback)(async()=>{u(!0),p(!1),c(r);try{await Promise.resolve(t())}finally{u(!1),c(0)}},[t,r]),y=(0,a.useCallback)(()=>{if(null===x.current)return;let e=h.current>=r&&!g.current;x.current=null,h.current=0,e?j():(c(0),p(!1))},[r,j]);return(0,a.useEffect)(()=>{let e=n.current;if(e)return e.addEventListener("touchstart",b,{passive:!0}),e.addEventListener("touchmove",v,{passive:!1}),e.addEventListener("touchend",y,{passive:!0}),e.addEventListener("touchcancel",y,{passive:!0}),()=>{e.removeEventListener("touchstart",b),e.removeEventListener("touchmove",v),e.removeEventListener("touchend",y),e.removeEventListener("touchcancel",y)}},[b,v,y]),{containerRef:n,pullDistance:o,isRefreshing:d,isPulling:m}}({onRefresh:t,enabled:s,threshold:64}),p=u||d>0,x=u?1:Math.min(d/64,1);return(0,r.jsxs)("div",{ref:c,className:(0,i.cn)("relative overflow-auto",n),style:{overscrollBehaviorY:"contain"},"data-testid":"pull-to-refresh",children:[(0,r.jsx)("div",{className:"pointer-events-none absolute inset-x-0 top-0 z-10 flex justify-center",style:{transform:"translateY(".concat(p?Math.max(d-24,8):-32,"px)"),opacity:x,transition:m?"none":"transform 0.2s ease-out, opacity 0.2s ease-out"},"data-testid":"pull-to-refresh-indicator",role:"status","aria-hidden":!u,children:(0,r.jsx)(l.y$,{size:"sm",variant:"accent"})}),(0,r.jsx)("div",{style:{transform:p?"translateY(".concat(d,"px)"):void 0,transition:m?"none":"transform 0.2s ease-out"},children:o})]})}},18514:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(71847).A)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]])},22743:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>v});var r=s(95155),a=s(12115),l=s(4560),i=s(9219),n=s(38218),o=s(18955),c=s(744),d=s(80344);class u{static getInstance(){return u.instance||(u.instance=new u),u.instance}normalize(e){let t=e.match(/^ssh:\/\/git@([^:\/]+)(:\d+)?\/(.+?)(\.git)?$/);if(t)return"https://".concat(t[1],"/").concat(t[3]).toLowerCase().replace(/\/$/,"");let s=e.match(/^git@([^:]+):(.+?)(\.git)?$/);return s?"https://".concat(s[1],"/").concat(s[2]).toLowerCase().replace(/\/$/,""):e.replace(/\.git\/?$/,"").replace(/\/$/,"").toLowerCase()}isSameRepository(e,t){return this.normalize(e)===this.normalize(t)}extractRepoName(e){let t=e.match(/^ssh:\/\/git@[^\/]+\/(.+?)(\.git)?$/);if(t){let e=t[1].split("/");return e[e.length-1]}let s=e.match(/:(.+?)(\.git)?$/);if(s&&e.startsWith("git@")){let e=s[1].split("/");return e[e.length-1]}let r=e.match(/\/([^\/]+?)(\.git)?$/);return r?r[1]:""}getUrlType(e){return e.startsWith("https://")?"https":e.startsWith("git@")||e.startsWith("ssh://")?"ssh":null}validate(e){if(!e||"string"!=typeof e||""===e.trim())return{valid:!1,error:"EMPTY_URL"};let t=e.trim();return t.startsWith("https://")?/^https:\/\/[^\/]+\/[^\/]+\/[^\/]+(\.git)?$/.test(t)?{valid:!0}:{valid:!1,error:"INVALID_URL_FORMAT"}:t.startsWith("git@")?/^git@[^:]+:.+\/.+(\.git)?$/.test(t)?{valid:!0}:{valid:!1,error:"INVALID_URL_FORMAT"}:t.startsWith("ssh://")?/^ssh:\/\/git@[^\/]+(:\d+)?\/[^\/]+\/.+(\.git)?$/.test(t)?{valid:!0}:{valid:!1,error:"INVALID_URL_FORMAT"}:{valid:!1,error:"INVALID_URL_FORMAT"}}constructor(){}}function m(e){let{onRepositoryAdded:t}=e,s=(0,o.c)("common"),[l,i]=(0,a.useState)(!1),[n,m]=(0,a.useState)("local"),[p,x]=(0,a.useState)(""),[h,g]=(0,a.useState)(""),[f,b]=(0,a.useState)(!1),[v,j]=(0,a.useState)(!1),[y,N]=(0,a.useState)(!1),[k,w]=(0,a.useState)(!1),[C,S]=(0,a.useState)(null),[E,R]=(0,a.useState)(null),[L,$]=(0,a.useState)(null),A=u.getInstance(),D=(0,a.useCallback)(async e=>{try{let a=await d.Rx.getCloneStatus(e);if("completed"===a.status)$(s("repositories.cloneSuccess")),w(!1),S(null),g(""),b(!1),i(!1),t&&t();else if("failed"===a.status){var r;R((null==(r=a.error)?void 0:r.message)||s("repositories.cloneFailed")),w(!1),S(null)}else("running"===a.status||"pending"===a.status)&&setTimeout(()=>D(e),2e3)}catch(e){R((0,d.hS)(e)),w(!1),S(null)}},[t,s]);(0,a.useEffect)(()=>{C&&k&&D(C)},[C,k]);let _=async e=>{if(e.preventDefault(),!p.trim())return void R(s("repositories.pathRequired"));R(null),$(null),j(!0);try{let e=await d.Rx.scan(p);$(e.message),x(""),i(!1),t&&t()}catch(e){R((0,d.hS)(e))}finally{j(!1)}},z=async e=>{if(e.preventDefault(),!h.trim())return void R(s("repositories.urlRequired"));let t=A.validate(h.trim());if(!t.valid)return void("EMPTY_URL"===t.error?R(s("repositories.urlRequired")):R(s("repositories.urlInvalid")));R(null),$(null),w(!0);try{let e=await d.Rx.clone(h.trim(),{fork:f});S(e.jobId)}catch(e){R((0,d.hS)(e)),w(!1)}},T=async()=>{R(null),$(null),N(!0);try{let e=await d.Rx.sync();$(e.message),t&&t()}catch(e){R((0,d.hS)(e))}finally{N(!1)}},U=()=>{i(!1),x(""),g(""),b(!1),R(null),m("local")};return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{className:"flex gap-2 flex-wrap",children:[!l&&(0,r.jsxs)(c.$n,{variant:"primary",size:"sm",onClick:()=>i(!0),children:["+ ",s("repositories.add")]}),(0,r.jsx)(c.$n,{variant:"secondary",size:"sm",onClick:T,disabled:y,children:y?s("repositories.syncing"):s("repositories.syncAll")})]}),l&&(0,r.jsx)(c.Zp,{padding:"lg",children:(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsx)("div",{children:(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2 text-foreground",children:s("repositories.addNewTitle")})}),(0,r.jsxs)(c.tU,{value:n,onValueChange:e=>m(e),children:[(0,r.jsxs)(c.j7,{className:"w-full",children:[(0,r.jsx)(c.Xi,{value:"local",children:s("repositories.localPathTab")}),(0,r.jsx)(c.Xi,{value:"url",children:s("repositories.cloneUrlTab")})]}),(0,r.jsx)(c.av,{value:"local",children:(0,r.jsxs)("form",{onSubmit:_,className:"space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm text-muted-foreground mb-4",children:s("repositories.localPathDescription")}),(0,r.jsx)("label",{htmlFor:"repositoryPath",className:"block text-sm font-medium text-foreground mb-2",children:s("repositories.localPathLabel")}),(0,r.jsx)(c.pd,{id:"repositoryPath",type:"text",value:p,onChange:e=>x(e.target.value),placeholder:"/absolute/path/to/repository",className:"font-mono",disabled:v}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:s("repositories.localPathExample")})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(c.$n,{type:"submit",variant:"primary",disabled:v||!p.trim(),children:v?s("repositories.scanning"):s("repositories.scan")}),(0,r.jsx)(c.$n,{type:"button",variant:"ghost",onClick:U,disabled:v,children:s("cancel")})]})]})}),(0,r.jsx)(c.av,{value:"url",children:(0,r.jsxs)("form",{onSubmit:z,className:"space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm text-muted-foreground mb-4",children:s("repositories.cloneUrlDescription")}),(0,r.jsx)("label",{htmlFor:"cloneUrl",className:"block text-sm font-medium text-foreground mb-2",children:s("repositories.cloneUrlLabel")}),(0,r.jsx)(c.pd,{id:"cloneUrl",type:"text",value:h,onChange:e=>g(e.target.value),placeholder:"https://github.com/user/repo.git",className:"font-mono",disabled:k}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:s("repositories.cloneUrlHelp")})]}),(0,r.jsxs)("div",{className:"flex items-start gap-2",children:[(0,r.jsx)("input",{id:"forkBeforeClone",type:"checkbox",checked:f,onChange:e=>b(e.target.checked),disabled:k,className:"mt-1"}),(0,r.jsxs)("label",{htmlFor:"forkBeforeClone",className:"text-sm text-foreground",children:[s("repositories.forkOptionLabel"),(0,r.jsx)("span",{className:"block text-xs text-muted-foreground",children:s("repositories.forkOptionHelp")})]})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(c.$n,{type:"submit",variant:"primary",disabled:k||!h.trim(),children:k?s("repositories.cloning"):f?s("repositories.forkAndClone"):s("repositories.clone")}),(0,r.jsx)(c.$n,{type:"button",variant:"ghost",onClick:U,disabled:k,children:s("cancel")})]})]})})]})]})}),L&&(0,r.jsx)("div",{className:"p-4 bg-success-subtle border border-success-border rounded-lg",children:(0,r.jsx)("p",{className:"text-sm text-success-foreground",children:L})}),E&&(0,r.jsx)("div",{className:"p-4 bg-danger-subtle border border-danger-border rounded-lg",children:(0,r.jsx)("p",{className:"text-sm text-danger-foreground",children:E})})]})}var p=s(18514),x=s(87531);let h={id:null,value:"",error:null,saving:!1};function g(){return(0,r.jsx)("thead",{className:"bg-muted border-b border-border",children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Name"}),(0,r.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Display name"}),(0,r.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Visibility"}),(0,r.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Path"}),(0,r.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Worktrees"}),(0,r.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Status"}),(0,r.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Actions"})]})})}function f(e){let{repo:t,pending:s,onToggle:a}=e,l=t.visible;return(0,r.jsxs)("button",{type:"button",role:"switch","aria-checked":l,"aria-label":l?"Hide ".concat(t.name," from sidebar"):"Show ".concat(t.name," in sidebar"),"data-testid":"visibility-toggle-".concat(t.id),onClick:()=>a(t),disabled:s,className:(0,x.cn)("inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-xs font-medium","text-muted-foreground transition-colors","hover:bg-muted hover:text-foreground","focus:outline-none focus-visible:ring-2 focus-visible:ring-ring","disabled:opacity-60 disabled:cursor-not-allowed"),children:[(0,r.jsx)(c.md,{status:l?"ready":"idle",size:"sm",label:l?"Visible":"Hidden","aria-hidden":"true"}),l?"Visible":"Hidden"]})}let b=(0,a.memo)(function(e){let{refreshKey:t,onChanged:s}=e,l=(0,o.c)("common"),[i,n]=(0,a.useState)([]),[u,m]=(0,a.useState)(!0),[x,b]=(0,a.useState)(null),[v,j]=(0,a.useState)(h),[y,N]=(0,a.useState)(null),[k,w]=(0,a.useState)(new Set),C=(0,a.useCallback)(async()=>{m(!0),b(null);try{let e=await d.Rx.list();n(e.repositories)}catch(e){b((0,d.hS)(e))}finally{m(!1)}},[]);(0,a.useEffect)(()=>{C()},[C,t]);let S=(0,a.useCallback)(e=>{var t;j({id:e.id,value:null!=(t=e.displayName)?t:"",error:null,saving:!1}),N(null)},[]),E=(0,a.useCallback)(()=>{j(h)},[]),R=(0,a.useCallback)(e=>{j(t=>{if(null===t.id)return t;let s=e.length>100?"Display name must be ".concat(100," characters or less"):null;return{...t,value:e,error:s}})},[]),L=(0,a.useCallback)(async e=>{let t=v.value.trim();if(t.length>100)return void j(e=>({...e,error:"Display name must be ".concat(100," characters or less")}));j(e=>({...e,saving:!0,error:null}));try{let r=0===t.length?null:t,a=await d.Rx.updateDisplayName(e.id,r);n(t=>t.map(t=>t.id===e.id?{...t,...a.repository}:t)),j(h),N({type:"success",message:"Display name updated"}),s&&s()}catch(t){let e=(0,d.hS)(t);j(t=>({...t,saving:!1,error:e})),N({type:"error",message:e})}},[v.value,s]),$=(0,a.useCallback)((e,t)=>{"Enter"===e.key?(e.preventDefault(),L(t)):"Escape"===e.key&&(e.preventDefault(),E())},[E,L]),A=(0,a.useCallback)(async e=>{if(k.has(e.id))return;let t=!e.visible;w(t=>{let s=new Set(t);return s.add(e.id),s}),n(s=>s.map(s=>s.id===e.id?{...s,visible:t}:s)),N(null);try{let r=await d.Rx.updateVisibility(e.id,t);n(t=>t.map(t=>t.id===e.id?{...t,...r.repository}:t)),s&&s()}catch(t){n(t=>t.map(t=>t.id===e.id?{...e}:t)),N({type:"error",message:(0,d.hS)(t)})}finally{w(t=>{let s=new Set(t);return s.delete(e.id),s})}},[s,k]);return u&&0===i.length?(0,r.jsx)(c.Zp,{padding:"none",children:(0,r.jsx)("div",{className:"overflow-x-auto","data-testid":"repository-list-loading",role:"status","aria-label":l("repositories.loading"),children:(0,r.jsxs)("table",{className:"min-w-full text-sm",children:[(0,r.jsx)(g,{}),(0,r.jsx)("tbody",{children:[0,1,2].map(e=>(0,r.jsxs)("tr",{className:"border-b border-border",children:[(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsx)(c.EA,{className:"h-4 w-24"})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsx)(c.EA,{className:"h-4 w-20"})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsx)(c.EA,{className:"h-4 w-16"})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsx)(c.EA,{className:"h-4 w-48"})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsx)(c.EA,{className:"h-4 w-10"})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsx)(c.EA,{className:"h-4 w-14"})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsx)(c.EA,{className:"h-4 w-20"})})]},e))})]})})}):x?(0,r.jsx)(c.Zp,{padding:"lg",children:(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("p",{className:"text-sm text-danger-foreground",children:["Failed to load repositories: ",x]}),(0,r.jsx)(c.$n,{variant:"secondary",size:"sm",onClick:()=>void C(),children:"Retry"})]})}):(0,r.jsxs)("div",{className:"space-y-3",children:[y&&(0,r.jsx)("div",{role:"status",className:"p-3 rounded-lg text-sm ".concat("success"===y.type?"bg-success-subtle border border-success-border text-success-foreground":"bg-danger-subtle border border-danger-border text-danger-foreground"),children:y.message}),(0,r.jsx)(c.Zp,{padding:"none",children:(0,r.jsx)("div",{className:"overflow-x-auto",children:(0,r.jsxs)("table",{className:"min-w-full text-sm",children:[(0,r.jsx)(g,{}),(0,r.jsxs)("tbody",{children:[0===i.length&&(0,r.jsx)("tr",{children:(0,r.jsx)("td",{colSpan:7,className:"px-4 py-6 text-center text-muted-foreground",children:l("repositories.empty")})}),i.map(e=>{let t=v.id===e.id;return(0,r.jsxs)("tr",{className:"border-b border-border","data-testid":"repository-row-".concat(e.id),children:[(0,r.jsx)("td",{className:"px-4 py-3 align-top text-foreground",children:e.name}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:t?(0,r.jsxs)("div",{className:"space-y-1",children:[(0,r.jsx)(c.pd,{"aria-label":"Edit display name for ".concat(e.name),type:"text",value:v.value,disabled:v.saving,maxLength:101,onChange:e=>R(e.target.value),onKeyDown:t=>$(t,e)}),v.error&&(0,r.jsx)("p",{className:"text-xs text-danger-foreground",children:v.error})]}):e.displayName?(0,r.jsx)("span",{className:"text-foreground",children:e.displayName}):(0,r.jsx)("span",{className:"text-muted-foreground","aria-hidden":"true",children:"—"})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsx)(f,{repo:e,pending:k.has(e.id),onToggle:A})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsx)("span",{className:"block max-w-[240px] truncate font-mono text-xs text-muted-foreground",title:e.path,children:e.path})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top text-foreground",children:e.worktreeCount}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:(0,r.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm text-muted-foreground",children:[(0,r.jsx)(c.md,{status:e.enabled?"ready":"idle",size:"sm",label:e.enabled?"Enabled":"Disabled","aria-hidden":"true"}),e.enabled?"Enabled":"Disabled"]})}),(0,r.jsx)("td",{className:"px-4 py-3 align-top",children:t?(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(c.$n,{variant:"primary",size:"sm",onClick:()=>void L(e),disabled:v.saving||null!==v.error,children:v.saving?"Saving...":"Save"}),(0,r.jsx)(c.$n,{variant:"ghost",size:"sm",onClick:E,disabled:v.saving,children:"Cancel"})]}):(0,r.jsx)(c.$n,{variant:"ghost",size:"sm",className:"px-2",onClick:()=>S(e),"aria-label":"Edit display name for ".concat(e.name),children:(0,r.jsx)(p.A,{className:"h-4 w-4","aria-hidden":"true"})})})]},e.id)})]})]})})})]})});function v(){let e=(0,n.a)(),[t,s]=(0,a.useState)(0),o=(0,a.useCallback)(()=>{s(e=>e+1)},[]),c=(0,a.useCallback)(async()=>{s(e=>e+1),await new Promise(e=>setTimeout(e,500))},[]);return(0,r.jsx)(l.GV,{children:(0,r.jsxs)(i.k,{onRefresh:c,enabled:e,className:"container-custom py-8 h-full",children:[(0,r.jsxs)("div",{className:"mb-6",children:[(0,r.jsx)("h1",{className:"text-2xl font-bold text-foreground mb-2",children:"Repositories"}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:"Manage repositories and worktrees."})]}),(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsx)(m,{onRepositoryAdded:o}),(0,r.jsx)(b,{refreshKey:t,onChanged:o})]})]})})}}},e=>{e.O(0,[6809,4909,2770,790,4974,6402,744,6488,4560,8441,1255,7358],()=>e(e.s=540)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9404],{1150:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return d}});let l=s(95155),a=s(12115),r=s(24437);function i(e){return{default:e&&"default"in e?e.default:e}}s(36552);let n={loader:()=>Promise.resolve(i(()=>null)),loading:null,ssr:!0},d=function(e){let t={...n,...e},s=(0,a.lazy)(()=>t.loader().then(i)),d=t.loading;function o(e){let i=d?(0,l.jsx)(d,{isLoading:!0,pastDelay:!0,error:null}):null,n=!t.ssr||!!t.loading,o=n?a.Suspense:a.Fragment,c=t.ssr?(0,l.jsxs)(l.Fragment,{children:[null,(0,l.jsx)(s,{...e})]}):(0,l.jsx)(r.BailoutToCSR,{reason:"next/dynamic",children:(0,l.jsx)(s,{...e})});return(0,l.jsx)(o,{...n?{fallback:i}:{},children:c})}return o.displayName="LoadableComponent",o}},1226:()=>{},8567:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return l.workAsyncStorageInstance}});let l=s(17828)},17828:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return l}});let l=(0,s(64054).createAsyncLocalStorage)()},24437:(e,t,s)=>{"use strict";function l(e){let{reason:t,children:s}=e;return s}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return l}}),s(24553)},35626:(e,t,s)=>{"use strict";s.d(t,{A:()=>l});let l=(0,s(71847).A)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},36552:(e,t,s)=>{"use strict";function l(e){let{moduleIds:t}=e;return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return l}}),s(95155),s(47650),s(8567),s(77278)},64054:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var s in t)Object.defineProperty(e,s,{enumerable:!0,get:t[s]})}(t,{bindSnapshot:function(){return i},createAsyncLocalStorage:function(){return r},createSnapshot:function(){return n}});let s=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class l{disable(){throw s}getStore(){}run(){throw s}exit(){throw s}enterWith(){throw s}static bind(e){return e}}let a="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage;function r(){return a?new a:new l}function i(e){return a?a.bind(e):l.bind(e)}function n(){return a?a.snapshot():function(e,...t){return e(...t)}}},64386:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>A});var l=s(95155),a=s(20063),r=s(4560),i=s(12115),n=s(52619),d=s.n(n),o=s(18955),c=s(35626),u=s(744),m=s(75333),x=s(68331),h=s(24027),g=s(95584);function p(e){let{changelog:t}=e,s=(0,o.c)("skills"),a=(0,g.RG)(t).trim();return 0===a.length?(0,l.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"skill-changelog-empty",children:s("detail.changelogEmpty")}):(0,l.jsxs)("div",{"data-testid":"skill-changelog",children:[(0,l.jsx)("div",{className:"prose prose-sm max-w-none dark:prose-invert break-words",children:(0,l.jsx)(h.G8,{content:a})}),(0,l.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:s("detail.mediaStripped")})]})}var f=s(34380),j=s(37381),b=s(80130);let k={status:"loading",catalog:null,skill:null,failure:null};function y(e){let{label:t,children:s,mono:a=!1}=e;return(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsx)("dt",{className:"text-xs font-medium text-muted-foreground",children:t}),(0,l.jsx)("dd",{className:"mt-0.5 text-sm text-foreground ".concat(a?"break-all font-mono text-xs":"break-words"),children:s})]})}function v(e){let{title:t,children:s,testId:a}=e;return(0,l.jsxs)(u.Zp,{"data-testid":a,className:"space-y-3",children:[(0,l.jsx)("h2",{className:"text-base font-semibold text-foreground",children:t}),s]})}function N(e){var t;let{compatibility:s}=e,a=(0,o.c)("skills");return(0,l.jsx)("p",{className:"text-sm text-foreground","data-testid":"skill-compatibility-reason",children:a((0,g.e5)(s.messageKey),{range:s.requiredRange,currentVersion:null!=(t=s.currentVersion)?t:""})})}function w(e){let{version:t}=e,s=(0,o.c)("skills");return(0,l.jsxs)(u.Zp,{"data-testid":"skill-version-".concat(t.version),className:"space-y-3",padding:"sm",children:[(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,l.jsx)("span",{className:"font-mono text-sm font-semibold text-foreground",children:t.version}),t.prerelease&&(0,l.jsx)(u.Ex,{variant:"warning",children:s("detail.prerelease")}),(0,l.jsx)(m.Xz,{status:t.compatibility.commandmate.status}),(0,l.jsx)(m.qW,{risk:t.declaredRisk})]}),(0,l.jsxs)("dl",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,l.jsx)(y,{label:s("detail.publishedAt"),children:t.publishedAt}),(0,l.jsx)(y,{label:s("detail.requiredRangeLabel"),children:t.compatibility.commandmate.requiredRange}),(0,l.jsx)(y,{label:s("detail.sourceRepository"),children:t.source.repository}),(0,l.jsx)(y,{label:s("detail.sourceRef"),children:t.source.ref}),(0,l.jsx)(y,{label:s("detail.sourceCommit"),mono:!0,children:t.source.commit}),(0,l.jsx)(y,{label:s("detail.packageAsset"),mono:!0,children:t.artifact.assetName}),(0,l.jsx)(y,{label:s("detail.packageDigest"),mono:!0,children:t.artifact.sha256}),(0,l.jsx)(y,{label:s("detail.packageSize"),children:s("detail.packageBytes",{bytes:t.artifact.size})})]}),(0,l.jsx)("div",{className:"flex flex-wrap gap-1.5",children:t.compatibility.agents.length>0?t.compatibility.agents.map(e=>(0,l.jsx)(m.uE,{agent:e},e.agent)):(0,l.jsx)("p",{className:"text-xs text-muted-foreground",children:s("compatibility.agentsUnknown")})}),(0,l.jsxs)("div",{children:[(0,l.jsx)("h3",{className:"text-xs font-medium text-muted-foreground",children:s("detail.changelogHeading")}),(0,l.jsx)("div",{className:"mt-1",children:(0,l.jsx)(p,{changelog:t.changelog})})]})]})}function _(e){var t,s,a,r,n,h,p,_;let{skillId:A}=e,O=(0,o.c)("skills"),[P,R]=(0,i.useState)(k),[V,E]=(0,i.useState)(0);(0,i.useEffect)(()=>{let e=new AbortController;return R(k),(0,b.Db)(A,e.signal).then(t=>{e.signal.aborted||R(t.ok?{status:"loaded",catalog:t.data.catalog,skill:t.data.skill,failure:null}:{status:"error",catalog:null,skill:null,failure:t.failure})}).catch(()=>{}),()=>e.abort()},[A,V]);let I=(0,i.useCallback)(()=>E(e=>e+1),[]),S=(0,l.jsxs)(d(),{href:"/skills",className:"inline-flex items-center gap-1 text-sm text-accent-600 hover:underline dark:text-accent-400","data-testid":"skill-detail-back",children:[(0,l.jsx)(c.A,{size:14,"aria-hidden":"true"}),O("page.backToCatalog")]});if("loading"===P.status)return(0,l.jsxs)("div",{className:"space-y-4","data-testid":"skill-detail-loading",children:[S,(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:O("state.loading")}),(0,l.jsx)(u.EA,{className:"h-40 w-full rounded-lg"})]});if("error"===P.status||!P.skill){let e=(null==(s=P.failure)?void 0:s.status)===404;return(0,l.jsxs)("div",{className:"space-y-4",children:[S,(0,l.jsxs)(u.Zp,{"data-testid":e?"skill-detail-not-found":"skill-detail-error",className:"space-y-3",children:[(0,l.jsx)("h2",{className:"text-base font-semibold text-foreground",children:e?O("state.notFoundHeading"):O("state.errorHeading")}),(0,l.jsxs)(j.u,{tone:"danger",children:[(0,l.jsx)("p",{children:e?O("state.notFoundNotice"):O("state.errorNotice")}),(0,l.jsx)("p",{className:"mt-1 break-words",children:O("state.errorCode",{code:null!=(r=null==(a=P.failure)?void 0:a.code)?r:""})})]}),!e&&(0,l.jsx)(u.$n,{variant:"secondary",size:"sm",onClick:I,"data-testid":"skill-detail-retry",children:O("state.retry")})]})]})}let C=P.skill,M=C.compatibility,q=null!=(n=C.versions.find(e=>e.version===C.recommendedVersion))?n:null,z=null!=(h=null==(t=null!=q?q:C.versions[0])?void 0:t.declaredRisk)?h:null,L=C.recommendedVersion?M&&"compatible"!==M.status?O("detail.install.blockedIncompatible",{reason:O((0,g.e5)(M.messageKey),{range:M.requiredRange,currentVersion:null!=(p=M.currentVersion)?p:""})}):null:O("detail.install.blockedNoVersion");return(0,l.jsxs)("div",{className:"space-y-4",children:[S,P.catalog&&(0,l.jsx)(x.y,{catalog:P.catalog}),(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)("h1",{className:"text-2xl font-bold text-foreground break-words",children:C.name}),(0,l.jsx)("p",{className:"text-sm text-muted-foreground break-words",children:C.summary}),(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[M&&(0,l.jsx)(m.Xz,{status:M.status}),z&&(0,l.jsx)(m.qW,{risk:z})]})]}),(0,l.jsx)(v,{title:O("detail.install.action"),testId:"skill-install-section",children:(0,l.jsx)(f.B,{skillId:C.id,version:C.recommendedVersion,blockedReason:L})}),(0,l.jsxs)(v,{title:O("capabilities.heading"),testId:"skill-capabilities-section",children:[(0,l.jsx)("p",{className:"text-sm text-foreground break-words",children:C.summary}),(0,l.jsx)(j.u,{tone:"neutral",children:O("capabilities.unavailable")})]}),(0,l.jsxs)(v,{title:O("detail.overview"),testId:"skill-overview-section",children:[(0,l.jsxs)("dl",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,l.jsx)(y,{label:O("detail.skillId"),mono:!0,children:C.id}),(0,l.jsx)(y,{label:O("detail.provider"),children:C.provider.url?(0,l.jsx)("a",{href:C.provider.url,target:"_blank",rel:"noopener noreferrer",className:"text-accent-600 hover:underline dark:text-accent-400",children:C.provider.name}):C.provider.name}),C.provider.contact&&(0,l.jsx)(y,{label:O("detail.providerContact"),children:C.provider.contact}),(0,l.jsx)(y,{label:O("detail.license"),children:C.license}),C.homepage&&(0,l.jsx)(y,{label:O("detail.homepage"),children:(0,l.jsx)("a",{href:C.homepage,target:"_blank",rel:"noopener noreferrer",className:"break-all text-accent-600 hover:underline dark:text-accent-400",children:C.homepage})}),(0,l.jsx)(y,{label:O("detail.latestVersion"),mono:!0,children:C.latest}),(0,l.jsx)(y,{label:O("detail.recommendedVersion"),mono:!0,children:null!=(_=C.recommendedVersion)?_:O("detail.recommendedVersionNone")})]}),(0,l.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"skill-recommendation-reason",children:O(g.TE[C.recommendedReason])}),C.keywords.length>0&&(0,l.jsxs)("div",{children:[(0,l.jsx)("h3",{className:"text-xs font-medium text-muted-foreground",children:O("detail.keywords")}),(0,l.jsx)("div",{className:"mt-1 flex flex-wrap gap-1.5",children:C.keywords.map(e=>(0,l.jsx)(u.Ex,{variant:"gray",children:e},e))})]})]}),(0,l.jsxs)(v,{title:O("compatibility.label"),testId:"skill-compatibility-section",children:[M?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,l.jsx)(m.Xz,{status:M.status}),(0,l.jsx)("span",{className:"text-sm text-muted-foreground",children:O("compatibility.requiredRange",{range:M.requiredRange})})]}),(0,l.jsx)(N,{compatibility:M}),(0,l.jsx)("p",{className:"text-xs text-muted-foreground",children:M.currentVersion?O("compatibility.currentVersion",{version:M.currentVersion}):O("compatibility.currentVersionUnknown")}),"unknown"===M.status&&(0,l.jsx)(j.u,{tone:"warning","data-testid":"skill-compatibility-unknown-notice",children:O("compatibility.unverifiedNotice")})]}):(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:O("compatibility.currentVersionUnknown")}),(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)("h3",{className:"text-sm font-medium text-foreground",children:O("compatibility.agentsHeading")}),q&&q.compatibility.agents.length>0?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"flex flex-wrap gap-1.5",children:q.compatibility.agents.map(e=>(0,l.jsx)(m.uE,{agent:e},e.agent))}),(0,l.jsx)("ul",{className:"space-y-1",children:q.compatibility.agents.map(e=>(0,l.jsxs)("li",{className:"text-xs text-muted-foreground break-words",children:[O("compatibility.evidence"),": ",e.evidence]},e.agent))})]}):(0,l.jsx)("p",{className:"text-xs text-muted-foreground",children:O("compatibility.agentsUnknown")}),(0,l.jsx)(j.u,{tone:"neutral",children:O("compatibility.agentsNotice")})]})]}),(0,l.jsxs)(v,{title:O("risk.declaredHeading"),testId:"skill-risk-section",children:[z?(0,l.jsx)(m.qW,{risk:z}):null,(0,l.jsx)(j.u,{tone:"neutral",children:O("risk.declaredNotice")}),"high"===z&&(0,l.jsx)(j.u,{tone:"danger","data-testid":"skill-high-risk-warning",children:O("risk.highWarning")}),(0,l.jsxs)("div",{children:[(0,l.jsx)("h3",{className:"text-sm font-medium text-foreground",children:O("risk.computedHeading")}),(0,l.jsx)("p",{className:"mt-1 text-sm text-muted-foreground","data-testid":"skill-computed-risk-unavailable",children:O("risk.computedUnavailable")})]})]}),(0,l.jsxs)(v,{title:O("permissions.heading"),testId:"skill-permissions-section",children:[(0,l.jsx)(j.u,{tone:"warning","data-testid":"skill-permission-declaration-notice",children:O((0,g.e5)("skills.permissions.declarationOnlyNotice"))}),(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:O("permissions.unavailable")})]}),(0,l.jsx)(v,{title:O("requirements.heading"),testId:"skill-requirements-section",children:(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:O("requirements.unavailable")})}),(0,l.jsx)(v,{title:O("contents.heading"),testId:"skill-contents-section",children:(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:O("contents.unavailable")})}),(0,l.jsxs)("section",{className:"space-y-3","data-testid":"skill-versions-section",children:[(0,l.jsx)("h2",{className:"text-base font-semibold text-foreground",children:O("detail.versionsHeading")}),0===C.versions.length?(0,l.jsx)(u.Zp,{children:(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:O("detail.versionsEmpty")})}):C.versions.map(e=>(0,l.jsx)(w,{version:e},e.version))]})]})}function A(){let e=(0,a.useParams)(),t="string"==typeof e.skillId?e.skillId:"";return(0,l.jsx)(r.GV,{children:(0,l.jsx)("div",{className:"container-custom py-8 overflow-auto h-full",children:(0,l.jsx)(_,{skillId:t})})})}},67909:(e,t,s)=>{"use strict";s.d(t,{default:()=>a.a});var l=s(86278),a=s.n(l)},68331:(e,t,s)=>{"use strict";s.d(t,{y:()=>n});var l=s(95155);s(12115);var a=s(18955),r=s(37381),i=s(95584);function n(e){let{catalog:t}=e,s=(0,a.c)("skills");return t.stale||t.offline?(0,l.jsx)(r.u,{tone:"warning","data-testid":"skill-catalog-stale",className:"flex-col sm:flex-row",children:(0,l.jsxs)("div",{className:"space-y-1",children:[(0,l.jsx)("p",{className:"font-medium",children:s("catalog.staleHeading")}),(0,l.jsx)("p",{children:s("catalog.staleNotice")}),t.offline&&(0,l.jsx)("p",{children:s("catalog.offlineNotice")}),(0,l.jsx)("p",{children:s((0,i.pk)(t.staleReason))}),(0,l.jsxs)("p",{className:"break-words",children:[s("catalog.fetchedAt",{timestamp:t.fetchedAt})," \xb7"," ",s("catalog.revalidatedAt",{timestamp:t.revalidatedAt})]}),(0,l.jsx)("p",{className:"break-words",children:s("catalog.sourceLabel",{repository:t.source.repository,ref:t.source.ref})})]})}):(0,l.jsxs)("p",{"data-testid":"skill-catalog-fresh",className:"text-xs text-muted-foreground break-words",children:[s("catalog.freshLabel")," \xb7"," ",s("catalog.revalidatedAt",{timestamp:t.revalidatedAt})," \xb7"," ",s("catalog.sourceLabel",{repository:t.source.repository,ref:t.source.ref})]})}},77801:(e,t,s)=>{"use strict";s.d(t,{A:()=>l});let l=(0,s(71847).A)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]])},86278:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a}});let l=s(28140)._(s(1150));function a(e,t){var s;let a={};"function"==typeof e&&(a.loader=e);let r={...a,...t};return(0,l.default)({...r,modules:null==(s=r.loadableGenerated)?void 0:s.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},99027:(e,t,s)=>{Promise.resolve().then(s.bind(s,64386))}},e=>{e.O(0,[6481,6809,4909,2770,790,4974,8566,2069,934,6007,6402,744,6488,4560,3418,1668,4027,8441,1255,7358],()=>e(e.s=99027)),_N_E=e.O()}]);