commandmate 0.1.5 → 0.1.7

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 (341) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-build-manifest.json +72 -0
  3. package/.next/app-path-routes-manifest.json +1 -0
  4. package/.next/build-manifest.json +32 -0
  5. package/.next/cache/.tsbuildinfo +1 -0
  6. package/.next/cache/config.json +7 -0
  7. package/.next/cache/webpack/client-production/0.pack +0 -0
  8. package/.next/cache/webpack/client-production/1.pack +0 -0
  9. package/.next/cache/webpack/client-production/2.pack +0 -0
  10. package/.next/cache/webpack/client-production/index.pack +0 -0
  11. package/.next/cache/webpack/client-production/index.pack.old +0 -0
  12. package/.next/cache/webpack/edge-server-production/0.pack +0 -0
  13. package/.next/cache/webpack/edge-server-production/index.pack +0 -0
  14. package/.next/cache/webpack/server-production/0.pack +0 -0
  15. package/.next/cache/webpack/server-production/index.pack +0 -0
  16. package/.next/export-marker.json +1 -0
  17. package/.next/images-manifest.json +1 -0
  18. package/.next/next-minimal-server.js.nft.json +1 -0
  19. package/.next/next-server.js.nft.json +1 -0
  20. package/.next/package.json +1 -0
  21. package/.next/prerender-manifest.json +1 -0
  22. package/.next/react-loadable-manifest.json +249 -0
  23. package/.next/required-server-files.json +1 -0
  24. package/.next/routes-manifest.json +1 -0
  25. package/.next/server/app/_not-found/page.js +1 -0
  26. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  27. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  28. package/.next/server/app/_not-found.html +1 -0
  29. package/.next/server/app/_not-found.meta +6 -0
  30. package/.next/server/app/_not-found.rsc +10 -0
  31. package/.next/server/app/api/external-apps/[id]/health/route.js +45 -0
  32. package/.next/server/app/api/external-apps/[id]/health/route.js.nft.json +1 -0
  33. package/.next/server/app/api/external-apps/[id]/route.js +45 -0
  34. package/.next/server/app/api/external-apps/[id]/route.js.nft.json +1 -0
  35. package/.next/server/app/api/external-apps/route.js +45 -0
  36. package/.next/server/app/api/external-apps/route.js.nft.json +1 -0
  37. package/.next/server/app/api/hooks/claude-done/route.js +19 -0
  38. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -0
  39. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -0
  40. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -0
  41. package/.next/server/app/api/repositories/clone/route.js +1 -0
  42. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -0
  43. package/.next/server/app/api/repositories/route.js +1 -0
  44. package/.next/server/app/api/repositories/route.js.nft.json +1 -0
  45. package/.next/server/app/api/repositories/scan/route.js +1 -0
  46. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -0
  47. package/.next/server/app/api/repositories/sync/route.js +1 -0
  48. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -0
  49. package/.next/server/app/api/slash-commands/route.js +1 -0
  50. package/.next/server/app/api/slash-commands/route.js.nft.json +1 -0
  51. package/.next/server/app/api/slash-commands.body +1 -0
  52. package/.next/server/app/api/slash-commands.meta +1 -0
  53. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -0
  54. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -0
  55. package/.next/server/app/api/worktrees/[id]/capture/route.js +2 -0
  56. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -0
  57. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -0
  58. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +1 -0
  59. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -0
  60. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -0
  61. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -0
  62. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -0
  63. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -0
  64. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -0
  65. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -0
  66. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -0
  67. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -0
  68. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -0
  69. package/.next/server/app/api/worktrees/[id]/logs/route.js +19 -0
  70. package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -0
  71. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -0
  72. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js.nft.json +1 -0
  73. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -0
  74. package/.next/server/app/api/worktrees/[id]/memos/route.js.nft.json +1 -0
  75. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -0
  76. package/.next/server/app/api/worktrees/[id]/messages/route.js.nft.json +1 -0
  77. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -0
  78. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -0
  79. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -0
  80. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -0
  81. package/.next/server/app/api/worktrees/[id]/route.js +1 -0
  82. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -0
  83. package/.next/server/app/api/worktrees/[id]/search/route.js +1 -0
  84. package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -0
  85. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -0
  86. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -0
  87. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -0
  88. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -0
  89. package/.next/server/app/api/worktrees/[id]/start-polling/route.js +1 -0
  90. package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +1 -0
  91. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -0
  92. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -0
  93. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -0
  94. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -0
  95. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -0
  96. package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -0
  97. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -0
  98. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -0
  99. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -0
  100. package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -0
  101. package/.next/server/app/api/worktrees/route.js +1 -0
  102. package/.next/server/app/api/worktrees/route.js.nft.json +1 -0
  103. package/.next/server/app/apple-icon.png/route.js +1 -0
  104. package/.next/server/app/apple-icon.png/route.js.nft.json +1 -0
  105. package/.next/server/app/apple-icon.png.body +0 -0
  106. package/.next/server/app/apple-icon.png.meta +1 -0
  107. package/.next/server/app/icon.png/route.js +1 -0
  108. package/.next/server/app/icon.png/route.js.nft.json +1 -0
  109. package/.next/server/app/icon.png.body +0 -0
  110. package/.next/server/app/icon.png.meta +1 -0
  111. package/.next/server/app/index.html +9 -0
  112. package/.next/server/app/index.meta +5 -0
  113. package/.next/server/app/index.rsc +8 -0
  114. package/.next/server/app/page.js +16 -0
  115. package/.next/server/app/page.js.nft.json +1 -0
  116. package/.next/server/app/page_client-reference-manifest.js +1 -0
  117. package/.next/server/app/proxy/[...path]/route.js +45 -0
  118. package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -0
  119. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +1 -0
  120. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -0
  121. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -0
  122. package/.next/server/app/worktrees/[id]/page.js +21 -0
  123. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -0
  124. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -0
  125. package/.next/server/app/worktrees/[id]/simple-terminal/page.js +4 -0
  126. package/.next/server/app/worktrees/[id]/simple-terminal/page.js.nft.json +1 -0
  127. package/.next/server/app/worktrees/[id]/simple-terminal/page_client-reference-manifest.js +1 -0
  128. package/.next/server/app/worktrees/[id]/terminal/page.js +6 -0
  129. package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -0
  130. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -0
  131. package/.next/server/app-paths-manifest.json +46 -0
  132. package/.next/server/chunks/1318.js +29 -0
  133. package/.next/server/chunks/1528.js +1 -0
  134. package/.next/server/chunks/1682.js +6 -0
  135. package/.next/server/chunks/2518.js +12 -0
  136. package/.next/server/chunks/3053.js +1 -0
  137. package/.next/server/chunks/3673.js +1 -0
  138. package/.next/server/chunks/3853.js +1 -0
  139. package/.next/server/chunks/434.js +1 -0
  140. package/.next/server/chunks/4471.js +2 -0
  141. package/.next/server/chunks/4893.js +2 -0
  142. package/.next/server/chunks/5972.js +12 -0
  143. package/.next/server/chunks/6550.js +1 -0
  144. package/.next/server/chunks/6621.js +1 -0
  145. package/.next/server/chunks/7213.js +1 -0
  146. package/.next/server/chunks/7425.js +500 -0
  147. package/.next/server/chunks/8585.js +1 -0
  148. package/.next/server/chunks/8887.js +1 -0
  149. package/.next/server/chunks/8948.js +2 -0
  150. package/.next/server/chunks/9703.js +31 -0
  151. package/.next/server/chunks/9723.js +19 -0
  152. package/.next/server/chunks/font-manifest.json +1 -0
  153. package/.next/server/edge-runtime-webpack.js +2 -0
  154. package/.next/server/edge-runtime-webpack.js.map +1 -0
  155. package/.next/server/font-manifest.json +1 -0
  156. package/.next/server/functions-config-manifest.json +1 -0
  157. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  158. package/.next/server/middleware-build-manifest.js +1 -0
  159. package/.next/server/middleware-manifest.json +32 -0
  160. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  161. package/.next/server/next-font-manifest.js +1 -0
  162. package/.next/server/next-font-manifest.json +1 -0
  163. package/.next/server/pages/404.html +1 -0
  164. package/.next/server/pages/500.html +1 -0
  165. package/.next/server/pages/_app.js +1 -0
  166. package/.next/server/pages/_app.js.nft.json +1 -0
  167. package/.next/server/pages/_document.js +1 -0
  168. package/.next/server/pages/_document.js.nft.json +1 -0
  169. package/.next/server/pages/_error.js +1 -0
  170. package/.next/server/pages/_error.js.nft.json +1 -0
  171. package/.next/server/pages-manifest.json +1 -0
  172. package/.next/server/server-reference-manifest.js +1 -0
  173. package/.next/server/server-reference-manifest.json +1 -0
  174. package/.next/server/src/middleware.js +14 -0
  175. package/.next/server/src/middleware.js.map +1 -0
  176. package/.next/server/webpack-runtime.js +1 -0
  177. package/.next/static/3jNZMmFnQhc5G7met-OU4/_buildManifest.js +1 -0
  178. package/.next/static/3jNZMmFnQhc5G7met-OU4/_ssgManifest.js +1 -0
  179. package/.next/static/chunks/0dbeb660.3e800dfbd28be3bd.js +53 -0
  180. package/.next/static/chunks/1015.0eaa4da7f61149bc.js +59 -0
  181. package/.next/static/chunks/1098.49268c9fe1b028fa.js +1 -0
  182. package/.next/static/chunks/13.feeafc7cc620f8c4.js +1 -0
  183. package/.next/static/chunks/1423.7b1e8bf760d28078.js +1 -0
  184. package/.next/static/chunks/1582.9f8590f71ff798ca.js +55 -0
  185. package/.next/static/chunks/1817.a66d96cedb761daa.js +262 -0
  186. package/.next/static/chunks/2117-d845c2cd62e344a6.js +2 -0
  187. package/.next/static/chunks/2398.0b21e4eb7006a230.js +93 -0
  188. package/.next/static/chunks/2526.8ac62b527c9ab703.js +43 -0
  189. package/.next/static/chunks/2626.2125083a1ff3b80a.js +29 -0
  190. package/.next/static/chunks/2689.720a4874b02d4211.js +174 -0
  191. package/.next/static/chunks/2853-d11a80b03c9a1640.js +1 -0
  192. package/.next/static/chunks/2957-327e43ef4c12808f.js +1 -0
  193. package/.next/static/chunks/2cdb6380.35626fc6e41bbba4.js +136 -0
  194. package/.next/static/chunks/30d07d85-393352a92199f695.js +3 -0
  195. package/.next/static/chunks/3559.f073f72c4466ce0e.js +1 -0
  196. package/.next/static/chunks/3574.7a94c27e6a496a56.js +63 -0
  197. package/.next/static/chunks/383.20683891c9a5f2c4.js +4 -0
  198. package/.next/static/chunks/3843.3fdda732987f7bb8.js +1 -0
  199. package/.next/static/chunks/3852.822389f445c9b427.js +1 -0
  200. package/.next/static/chunks/3991.4bc063cb5be3a86c.js +1 -0
  201. package/.next/static/chunks/4212.52c1bb34fc97d0d0.js +131 -0
  202. package/.next/static/chunks/4327.3b84aa049900fdeb.js +60 -0
  203. package/.next/static/chunks/4362.7bd6f0282e49d79b.js +1 -0
  204. package/.next/static/chunks/4721.40615a5f4f32b5fb.js +1 -0
  205. package/.next/static/chunks/4851-45df4d388db5623f.js +1 -0
  206. package/.next/static/chunks/5112.17318d1c6b28044b.js +1 -0
  207. package/.next/static/chunks/5126.93fa4e797d609286.js +56 -0
  208. package/.next/static/chunks/5387.47590ac4ef66c864.js +5 -0
  209. package/.next/static/chunks/5813.4483664ba482beb1.js +1 -0
  210. package/.next/static/chunks/6143.1450875bd03a2366.js +36 -0
  211. package/.next/static/chunks/6406.9653f0d41ab85059.js +1 -0
  212. package/.next/static/chunks/656.d72f25ce819bd77e.js +149 -0
  213. package/.next/static/chunks/6678.492e73ca42b2a273.js +62 -0
  214. package/.next/static/chunks/6725-f7607851b7d57eb1.js +1 -0
  215. package/.next/static/chunks/6792.3c01ac4dda4b5c6d.js +1 -0
  216. package/.next/static/chunks/7004.808cbf327ef5955e.js +1 -0
  217. package/.next/static/chunks/7290.09ef84cf94f90c4d.js +1 -0
  218. package/.next/static/chunks/7415.6b481c2baf363262.js +148 -0
  219. package/.next/static/chunks/7648-325564a6e12a3257.js +1 -0
  220. package/.next/static/chunks/7665.47fccad04449a8f9.js +215 -0
  221. package/.next/static/chunks/7753.6bdce86b7fde3d10.js +166 -0
  222. package/.next/static/chunks/8125.245a9df052d274fb.js +1 -0
  223. package/.next/static/chunks/816-7e340dad784be28c.js +1 -0
  224. package/.next/static/chunks/8288.4883743fa40672e2.js +24 -0
  225. package/.next/static/chunks/8522.1607e96011c66877.js +1 -0
  226. package/.next/static/chunks/8772.863c564498d88487.js +1 -0
  227. package/.next/static/chunks/8841.dadeb1ece8e46004.js +1 -0
  228. package/.next/static/chunks/8885.f8d9912b40d74811.js +1 -0
  229. package/.next/static/chunks/90542734.c1553d0fe7fc14fc.js +1 -0
  230. package/.next/static/chunks/9365-733d8c05712d2888.js +1 -0
  231. package/.next/static/chunks/9552.b7dfb7903ead934b.js +1 -0
  232. package/.next/static/chunks/9834.295b45635ce04f5e.js +24 -0
  233. package/.next/static/chunks/app/_not-found/page-a9d04e58c81115ec.js +1 -0
  234. package/.next/static/chunks/app/layout-37e55f11dcc8b1bf.js +1 -0
  235. package/.next/static/chunks/app/page-9cd00de9cc0abc43.js +1 -0
  236. package/.next/static/chunks/app/worktrees/[id]/files/[...path]/page-9e5adf57cbbbdf05.js +1 -0
  237. package/.next/static/chunks/app/worktrees/[id]/page-8c6676303b63fdaf.js +1 -0
  238. package/.next/static/chunks/app/worktrees/[id]/simple-terminal/page-16feb3e86e42f4d1.js +1 -0
  239. package/.next/static/chunks/app/worktrees/[id]/terminal/page-be802baffc84dbd2.js +1 -0
  240. package/.next/static/chunks/d3ac728e.6c9c508274d4d2d5.js +1 -0
  241. package/.next/static/chunks/fd9d1056-bbe86e4ae099d5cd.js +1 -0
  242. package/.next/static/chunks/framework-8e0e0f4a6b83a956.js +1 -0
  243. package/.next/static/chunks/main-a960f4a5e1a2f598.js +1 -0
  244. package/.next/static/chunks/main-app-420d93e43682fee5.js +1 -0
  245. package/.next/static/chunks/pages/_app-3c9ca398d360b709.js +1 -0
  246. package/.next/static/chunks/pages/_error-cf5ca766ac8f493f.js +1 -0
  247. package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  248. package/.next/static/chunks/webpack-3fc79fab9bb738d7.js +1 -0
  249. package/.next/static/css/5eacd01f773eed7f.css +11 -0
  250. package/.next/static/css/85fa6dafca566008.css +1 -0
  251. package/.next/static/css/e174aa24f94ce607.css +3 -0
  252. package/.next/trace +5 -0
  253. package/.next/types/app/api/external-apps/[id]/health/route.ts +343 -0
  254. package/.next/types/app/api/external-apps/[id]/route.ts +343 -0
  255. package/.next/types/app/api/external-apps/route.ts +343 -0
  256. package/.next/types/app/api/hooks/claude-done/route.ts +343 -0
  257. package/.next/types/app/api/repositories/clone/[jobId]/route.ts +343 -0
  258. package/.next/types/app/api/repositories/clone/route.ts +343 -0
  259. package/.next/types/app/api/repositories/route.ts +343 -0
  260. package/.next/types/app/api/repositories/scan/route.ts +343 -0
  261. package/.next/types/app/api/repositories/sync/route.ts +343 -0
  262. package/.next/types/app/api/slash-commands/route.ts +343 -0
  263. package/.next/types/app/api/worktrees/[id]/auto-yes/route.ts +343 -0
  264. package/.next/types/app/api/worktrees/[id]/capture/route.ts +343 -0
  265. package/.next/types/app/api/worktrees/[id]/cli-tool/route.ts +343 -0
  266. package/.next/types/app/api/worktrees/[id]/current-output/route.ts +343 -0
  267. package/.next/types/app/api/worktrees/[id]/files/[...path]/route.ts +343 -0
  268. package/.next/types/app/api/worktrees/[id]/interrupt/route.ts +343 -0
  269. package/.next/types/app/api/worktrees/[id]/kill-session/route.ts +343 -0
  270. package/.next/types/app/api/worktrees/[id]/logs/[filename]/route.ts +343 -0
  271. package/.next/types/app/api/worktrees/[id]/logs/route.ts +343 -0
  272. package/.next/types/app/api/worktrees/[id]/memos/[memoId]/route.ts +343 -0
  273. package/.next/types/app/api/worktrees/[id]/memos/route.ts +343 -0
  274. package/.next/types/app/api/worktrees/[id]/messages/route.ts +343 -0
  275. package/.next/types/app/api/worktrees/[id]/prompt-response/route.ts +343 -0
  276. package/.next/types/app/api/worktrees/[id]/respond/route.ts +343 -0
  277. package/.next/types/app/api/worktrees/[id]/route.ts +343 -0
  278. package/.next/types/app/api/worktrees/[id]/search/route.ts +343 -0
  279. package/.next/types/app/api/worktrees/[id]/send/route.ts +343 -0
  280. package/.next/types/app/api/worktrees/[id]/slash-commands/route.ts +343 -0
  281. package/.next/types/app/api/worktrees/[id]/start-polling/route.ts +343 -0
  282. package/.next/types/app/api/worktrees/[id]/terminal/route.ts +343 -0
  283. package/.next/types/app/api/worktrees/[id]/tree/[...path]/route.ts +343 -0
  284. package/.next/types/app/api/worktrees/[id]/tree/route.ts +343 -0
  285. package/.next/types/app/api/worktrees/[id]/upload/[...path]/route.ts +343 -0
  286. package/.next/types/app/api/worktrees/[id]/viewed/route.ts +343 -0
  287. package/.next/types/app/api/worktrees/route.ts +343 -0
  288. package/.next/types/app/page.ts +79 -0
  289. package/.next/types/app/proxy/[...path]/route.ts +343 -0
  290. package/.next/types/app/worktrees/[id]/files/[...path]/page.ts +79 -0
  291. package/.next/types/app/worktrees/[id]/page.ts +79 -0
  292. package/.next/types/app/worktrees/[id]/simple-terminal/page.ts +79 -0
  293. package/.next/types/app/worktrees/[id]/terminal/page.ts +79 -0
  294. package/.next/types/package.json +1 -0
  295. package/README.md +39 -8
  296. package/dist/cli/commands/init.d.ts +1 -0
  297. package/dist/cli/commands/init.d.ts.map +1 -1
  298. package/dist/cli/commands/init.js +143 -27
  299. package/dist/cli/types/index.d.ts +18 -0
  300. package/dist/cli/types/index.d.ts.map +1 -1
  301. package/dist/cli/utils/env-setup.d.ts +25 -0
  302. package/dist/cli/utils/env-setup.d.ts.map +1 -1
  303. package/dist/cli/utils/env-setup.js +56 -1
  304. package/dist/cli/utils/prompt.d.ts +68 -0
  305. package/dist/cli/utils/prompt.d.ts.map +1 -0
  306. package/dist/cli/utils/prompt.js +208 -0
  307. package/dist/server/server.js +123 -0
  308. package/dist/server/src/lib/claude-output.js +33 -0
  309. package/dist/server/src/lib/claude-session.js +312 -0
  310. package/dist/server/src/lib/cli-patterns.js +137 -0
  311. package/dist/server/src/lib/cli-session.js +73 -0
  312. package/dist/server/src/lib/cli-tools/base.js +51 -0
  313. package/dist/server/src/lib/cli-tools/claude.js +65 -0
  314. package/dist/server/src/lib/cli-tools/codex.js +132 -0
  315. package/dist/server/src/lib/cli-tools/gemini.js +122 -0
  316. package/dist/server/src/lib/cli-tools/index.js +22 -0
  317. package/dist/server/src/lib/cli-tools/manager.js +143 -0
  318. package/dist/server/src/lib/cli-tools/types.js +5 -0
  319. package/dist/server/src/lib/conversation-logger.js +25 -0
  320. package/dist/server/src/lib/db-instance.js +51 -0
  321. package/dist/server/src/lib/db-migrations.js +777 -0
  322. package/dist/server/src/lib/db.js +835 -0
  323. package/dist/server/src/lib/env.js +179 -0
  324. package/dist/server/src/lib/log-manager.js +234 -0
  325. package/dist/server/src/lib/logger.js +232 -0
  326. package/dist/server/src/lib/prompt-detector.js +285 -0
  327. package/dist/server/src/lib/response-poller.js +638 -0
  328. package/dist/server/src/lib/tmux.js +299 -0
  329. package/dist/server/src/lib/worktrees.js +231 -0
  330. package/dist/server/src/lib/ws-server.js +323 -0
  331. package/dist/server/src/types/clone.js +39 -0
  332. package/dist/server/src/types/conversation.js +9 -0
  333. package/dist/server/src/types/external-apps.js +6 -0
  334. package/dist/server/src/types/infinite-messages.js +65 -0
  335. package/dist/server/src/types/markdown-editor.js +94 -0
  336. package/dist/server/src/types/models.js +5 -0
  337. package/dist/server/src/types/sidebar.js +89 -0
  338. package/dist/server/src/types/slash-commands.js +47 -0
  339. package/dist/server/src/types/ui-actions.js +8 -0
  340. package/dist/server/src/types/ui-state.js +62 -0
  341. package/package.json +8 -4
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var e={};e.id=1210,e.ids=[1210],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},20629:e=>{e.exports=require("fs/promises")},55315:e=>{e.exports=require("path")},14276:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>w,patchFetch:()=>L,requestAsyncStorage:()=>g,routeModule:()=>N,serverHooks:()=>_,staticGenerationAsyncStorage:()=>T});var i={};r.r(i),r.d(i,{POST:()=>E});var a=r(49303),n=r(88716),o=r(60670),s=r(87070),l=r(97425),p=r(75748),u=r(55315),m=r(57440),d=r(68585);let c=[{extension:".png",maxFileSize:5242880,allowedMimeTypes:["image/png"],magicBytes:[{bytes:[137,80,78,71,13,10,26,10]}]},{extension:".jpg",maxFileSize:5242880,allowedMimeTypes:["image/jpeg"],magicBytes:[{bytes:[255,216,255]}]},{extension:".jpeg",maxFileSize:5242880,allowedMimeTypes:["image/jpeg"],magicBytes:[{bytes:[255,216,255]}]},{extension:".gif",maxFileSize:5242880,allowedMimeTypes:["image/gif"],magicBytes:[{bytes:[71,73,70,56,55,97]},{bytes:[71,73,70,56,57,97]}]},{extension:".webp",maxFileSize:5242880,allowedMimeTypes:["image/webp"],magicBytes:[{bytes:[82,73,70,70],offset:0}]},{extension:".txt",maxFileSize:5242880,allowedMimeTypes:["text/plain"]},{extension:".log",maxFileSize:5242880,allowedMimeTypes:["text/plain"]},{extension:".md",maxFileSize:5242880,allowedMimeTypes:["text/markdown","text/plain"]},{extension:".csv",maxFileSize:5242880,allowedMimeTypes:["text/csv"]},{extension:".json",maxFileSize:5242880,allowedMimeTypes:["application/json"]},{extension:".yaml",maxFileSize:5242880,allowedMimeTypes:["text/yaml","application/x-yaml"]},{extension:".yml",maxFileSize:5242880,allowedMimeTypes:["text/yaml","application/x-yaml"]}],I=c.map(e=>e.extension);function y(e){let t=e.toLowerCase();return c.find(e=>e.extension===t)}let x={FILE_NOT_FOUND:404,WORKTREE_NOT_FOUND:404,PERMISSION_DENIED:403,INVALID_PATH:400,INVALID_REQUEST:400,FILE_EXISTS:409,DISK_FULL:507,INTERNAL_ERROR:500,INVALID_EXTENSION:400,INVALID_MIME_TYPE:400,INVALID_MAGIC_BYTES:400,FILE_TOO_LARGE:413,INVALID_FILENAME:400,INVALID_FILE_CONTENT:400};function f(e,t,r=500){if("string"==typeof e){let i=x[e]??r;return s.NextResponse.json({success:!1,error:{code:e,message:t}},{status:i})}let i=e.error?.code??"INTERNAL_ERROR",a=e.error?.message??"Unknown error",n=x[i]??r;return s.NextResponse.json({success:!1,error:{code:i,message:a}},{status:n})}async function E(e,{params:t}){try{let i;let a=(0,l.n)(),n=(0,p.gU)(a,t.id);if(!n)return f("WORKTREE_NOT_FOUND","Worktree not found");let o=t.path.join("/"),c=(0,u.normalize)(o);if(!(0,m.j)(c,n.path))return f("INVALID_PATH","Invalid file path");try{i=await e.formData()}catch{return f("INVALID_REQUEST","Invalid form data",400)}let x=i.get("file");if(!x||!(x instanceof File))return f("INVALID_REQUEST","File is required",400);let E=x.name,N=x.type,g=x.size,T=(0,u.extname)(E).toLowerCase();if(!function(e){if(!e)return!1;let t=e.toLowerCase();return I.includes(t)}(T))return f((0,d.wZ)("INVALID_EXTENSION"));if(!function(e,t){let r=y(e);return r?.allowedMimeTypes.includes(t)??!1}(T,N))return f((0,d.wZ)("INVALID_MIME_TYPE"));let _=await x.arrayBuffer(),w=Buffer.from(_);if(!function(e,t){let r=y(e);return!r?.magicBytes||0===r.magicBytes.length||r.magicBytes.some(e=>{let r=e.offset??0;return!(t.length<r+e.bytes.length)&&e.bytes.every((e,i)=>t[r+i]===e)})}(T,w))return f((0,d.wZ)("INVALID_MAGIC_BYTES"));let L=function(e){let t=y(e);return t?.maxFileSize??5242880}(T);if(g>L)return f((0,d.wZ)("FILE_TOO_LARGE"));if(!(0,d.TG)(E,{forUpload:!0}).valid)return f((0,d.wZ)("INVALID_FILENAME"));if(".yaml"===T||".yml"===T){var r;if(r=w.toString("utf-8"),[/!ruby\/object/i,/!python\/object/i,/!!python/i,/!!ruby/i,/!<tag:yaml\.org,2002:python/i,/!<tag:yaml\.org,2002:ruby/i].some(e=>e.test(r)))return f((0,d.wZ)("INVALID_FILE_CONTENT"))}if(".json"===T){let e=w.toString("utf-8");if(!function(e){try{return JSON.parse(e),!0}catch{return!1}}(e))return f((0,d.wZ)("INVALID_FILE_CONTENT"))}let A=c?`${c}/${E}`:E,F=await (0,d.Kr)(n.path,A,w);if(!F.success)return f(F);return s.NextResponse.json({success:!0,path:F.path,filename:E,size:F.size},{status:201})}catch(e){return console.error("Error uploading file:",e),f("INTERNAL_ERROR","Failed to upload file")}}let N=new a.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/worktrees/[id]/upload/[...path]/route",pathname:"/api/worktrees/[id]/upload/[...path]",filename:"route",bundlePath:"app/api/worktrees/[id]/upload/[...path]/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/upload/[...path]/route.ts",nextConfigOutput:"",userland:i}),{requestAsyncStorage:g,staticGenerationAsyncStorage:T,serverHooks:_}=N,w="/api/worktrees/[id]/upload/[...path]/route";function L(){return(0,o.patchFetch)({serverHooks:_,staticGenerationAsyncStorage:T})}}};var t=require("../../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),i=t.X(0,[8948,5972,7425,8585],()=>r(14276));module.exports=i})();
@@ -0,0 +1 @@
1
+ {"version":1,"files":["../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../node_modules/bindings/package.json","../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../chunks/5972.js","../../../../../../chunks/7425.js","../../../../../../chunks/8585.js","../../../../../../chunks/8948.js","../../../../../../webpack-runtime.js"]}
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var e={};e.id=5652,e.ids=[5652],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},62214:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>x,patchFetch:()=>m,requestAsyncStorage:()=>l,routeModule:()=>c,serverHooks:()=>v,staticGenerationAsyncStorage:()=>w});var o={};t.r(o),t.d(o,{PATCH:()=>p});var s=t(49303),i=t(88716),a=t(60670),n=t(87070),u=t(97425),d=t(75748);async function p(e,{params:r}){try{let e=(0,u.n)();if(!(0,d.gU)(e,r.id))return n.NextResponse.json({error:`Worktree '${r.id}' not found`},{status:404});let t=new Date;return(0,d.Of)(e,r.id,t),console.log(`[viewed] Marked worktree ${r.id} as viewed at ${t.toISOString()}`),n.NextResponse.json({success:!0},{status:200})}catch(e){return console.error("Error updating viewed status:",e),n.NextResponse.json({error:"Failed to update viewed status"},{status:500})}}let c=new s.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/worktrees/[id]/viewed/route",pathname:"/api/worktrees/[id]/viewed",filename:"route",bundlePath:"app/api/worktrees/[id]/viewed/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/viewed/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:l,staticGenerationAsyncStorage:w,serverHooks:v}=c,x="/api/worktrees/[id]/viewed/route";function m(){return(0,a.patchFetch)({serverHooks:v,staticGenerationAsyncStorage:w})}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8948,5972,7425],()=>t(62214));module.exports=o})();
@@ -0,0 +1 @@
1
+ {"version":1,"files":["../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/5972.js","../../../../../chunks/7425.js","../../../../../chunks/8948.js","../../../../../webpack-runtime.js"]}
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var e={};e.id=3058,e.ids=[3058],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},61282:e=>{e.exports=require("child_process")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},21764:e=>{e.exports=require("util")},17679:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>k,patchFetch:()=>P,requestAsyncStorage:()=>w,routeModule:()=>h,serverHooks:()=>v,staticGenerationAsyncStorage:()=>f});var s={};t.r(s),t.d(s,{GET:()=>x,dynamic:()=>g});var o=t(49303),i=t(88716),a=t(60670),n=t(87070),p=t(97425),u=t(75748),c=t(97213),d=t(89194),l=t(19377),m=t(63661);let g="force-dynamic";async function x(e){try{let r=(0,p.n)(),t=e.nextUrl?.searchParams,s=t?.get("repository"),o=(0,u.Xv)(r,s||void 0),i=c.g.getInstance(),a=["claude","codex","gemini"],g=await Promise.all(o.map(async e=>{let t={},s=!1,o=!1,n=!1;for(let p of a){let a=i.getTool(p),c=await a.isRunning(e.id),g=!1,x=!1;if(c)try{let t=await (0,d.NA)(e.id,p,100),s=(0,l.vp)(t),o=(0,m.F)(s);if(o.isPrompt)g=!0;else{let e=s.split("\n").filter(e=>""!==e.trim()).slice(-15).join("\n");(0,l.Wg)(p,e)?x=!0:/^[>❯]\s*$/m.test(e)||(x=!0)}!o.isPrompt&&(0,u._U)(r,e.id,void 0,10,p).some(e=>"prompt"===e.messageType&&e.promptData?.status!=="answered")&&(0,u.GP)(r,e.id,p)}catch{x=!0}t[p]={isRunning:c,isWaitingForResponse:g,isProcessing:x},c&&(s=!0),g&&(o=!0),x&&(n=!0)}return{...e,isSessionRunning:s,isWaitingForResponse:o,isProcessing:n,sessionStatusByCli:t}})),x=(0,u.ER)(r);return n.NextResponse.json({worktrees:g,repositories:x},{status:200})}catch(e){return console.error("Error fetching worktrees:",e),n.NextResponse.json({error:"Failed to fetch worktrees"},{status:500})}}let h=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/worktrees/route",pathname:"/api/worktrees",filename:"route",bundlePath:"app/api/worktrees/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/route.ts",nextConfigOutput:"",userland:s}),{requestAsyncStorage:w,staticGenerationAsyncStorage:f,serverHooks:v}=h,k="/api/worktrees/route";function P(){return(0,a.patchFetch)({serverHooks:v,staticGenerationAsyncStorage:f})}}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8948,5972,7425,7213,1528],()=>t(17679));module.exports=s})();
@@ -0,0 +1 @@
1
+ {"version":1,"files":["../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/1528.js","../../../chunks/5972.js","../../../chunks/7213.js","../../../chunks/7425.js","../../../chunks/8948.js","../../../webpack-runtime.js"]}
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var A={};A.id=3185,A.ids=[3185],A.modules={20399:A=>{A.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:A=>{A.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},40015:(A,e,p)=>{p.r(e),p.d(e,{originalPathname:()=>I,patchFetch:()=>d,requestAsyncStorage:()=>s,routeModule:()=>w,serverHooks:()=>r,staticGenerationAsyncStorage:()=>u});var C={};p.r(C),p.d(C,{GET:()=>n,dynamic:()=>F});var i=p(49303),a=p(88716),g=p(60670),o=p(55661);let B=Buffer.from("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","base64");function n(){return new o.NextResponse(B,{headers:{"Content-Type":"image/png","Cache-Control":"public, immutable, no-transform, max-age=31536000"}})}let F="force-static",w=new i.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/apple-icon.png/route",pathname:"/apple-icon.png",filename:"apple-icon",bundlePath:"app/apple-icon.png/route"},resolvedPagePath:"next-metadata-route-loader?page=%2Fapple-icon.png%2Froute&filePath=%2Fhome%2Frunner%2Fwork%2FCommandMate%2FCommandMate%2Fsrc%2Fapp%2Fapple-icon.png&isDynamic=0!?__next_metadata_route__",nextConfigOutput:"",userland:C}),{requestAsyncStorage:s,staticGenerationAsyncStorage:u,serverHooks:r}=w,I="/apple-icon.png/route";function d(){return(0,g.patchFetch)({serverHooks:r,staticGenerationAsyncStorage:u})}}};var e=require("../../webpack-runtime.js");e.C(A);var p=A=>e(e.s=A),C=e.X(0,[8948,2518],()=>p(40015));module.exports=C})();
@@ -0,0 +1 @@
1
+ {"version":1,"files":["../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/package.json","../../../../package.json","../../../package.json","../../chunks/2518.js","../../chunks/8948.js","../../webpack-runtime.js"]}
@@ -0,0 +1 @@
1
+ {"status":200,"headers":{"cache-control":"public, immutable, no-transform, max-age=31536000","content-type":"image/png","x-next-cache-tags":"_N_T_/layout,_N_T_/apple-icon.png/layout,_N_T_/apple-icon.png/route,_N_T_/apple-icon.png"}}
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var A={};A.id=485,A.ids=[485],A.modules={20399:A=>{A.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:A=>{A.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},53863:(A,e,t)=>{t.r(e),t.d(e,{originalPathname:()=>Q,patchFetch:()=>h,requestAsyncStorage:()=>c,routeModule:()=>g,serverHooks:()=>m,staticGenerationAsyncStorage:()=>d});var n={};t.r(n),t.d(n,{GET:()=>s,dynamic:()=>u});var o=t(49303),r=t(88716),i=t(60670),a=t(55661);let p=Buffer.from("iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAADS0lEQVRYCe1VW0hUURTd577v1WnIdGQSLbW0IrQRI0nxQS8LIjD/op8IkUCQfvSjgj6k/+ojDOszpKAvHRgzTAnLQikdEBwS+9AZRzSf87pzTvtODPi4ymBIBHNgz71nn3XW2medPTMAyZF0IOnAP3aA7FLfIgiKgxA4AsBUQrgFxsATiQTcyLe6S87Etomi0iCJygQ+2aagOB8XBKkFmdTE2BJDoUvW/QZUkpQbKL5ZeMtcEOQuhKcmQs+ZgURRbkIxpyzL+aIodYhi8IGBQ5tvbcUzY2VDEEKuIMfNrditGdMCCGHvkXOeUnKfMJLB8+QxgOUAbj9tSG0cRhvF48+KgYlQOLERZz4TzNLhcNiN99mLJ2vC9Z94oqiq6im6Dp2YW8achKIZWGQ2ih3CZrRhLsaF84gF4O1DWfpevxZKPwgwZ6YRz237LVAU5TCCuGiU2NCRa2h/XiQSzMVcJkYqIYLI8xzHKOMpYxIWyVGqY13c3BdN+1piS7+wUnBsdGnw47nspaV53GM6ti3AQGMRudEoOPG10Lhnh8MBtbWXoLS0FKzWfdiUMvYFg7GxMXC5XLCw8AsmPB5o9/ngoqZCkOcDajh0kiwu/jBVx6RpD8TB2AMlhriuh6GoqAgGBj6w1tYWwCuCyspKKCs7A/n5eTA9PQ1ZWVlQXn4WXr3uhL6qKnixugrNK6thbW0tPc5n9tyxgHA40IPWdjFGwW6344kl0t/fD/X112FycjLWj8PDI6BpGnR0vDQcg2dPnoJUUQ63Q0Fo16PWCOOvmgnHczsWgKAlLKIOn3e9Xh9QSvGU5czl6mFpaWkxjoKCo+D3+6GxsQGmpqagpqYG9EDAWFuWGHkjiuR5DLjNx449sG6PqijauNPZnVNdXRVLj4yMsMHBTwR/K6C4uJj5/bPQ3e0kFXj6trZH0dHRb+cR2LeO469f7xQWHmeGsMfjobOzszQUClE9qtOZmRnq9XqZ2+1mtbWXjatpT1QtUQcMPgN7z2az12HrWyVZznU4TsWuZWhoCFJSUiYtFgvgyd8hrhljDWNPRibPi585IviQvQejl+fEBfxd6MP3XIy9H3jvBRpo9riSqqo5mMO/5uRIOpB0IOnAf+jAb4OQLK1v4vH4AAAAAElFTkSuQmCC","base64");function s(){return new a.NextResponse(p,{headers:{"Content-Type":"image/png","Cache-Control":"public, immutable, no-transform, max-age=31536000"}})}let u="force-static",g=new o.AppRouteRouteModule({definition:{kind:r.x.APP_ROUTE,page:"/icon.png/route",pathname:"/icon.png",filename:"icon",bundlePath:"app/icon.png/route"},resolvedPagePath:"next-metadata-route-loader?page=%2Ficon.png%2Froute&filePath=%2Fhome%2Frunner%2Fwork%2FCommandMate%2FCommandMate%2Fsrc%2Fapp%2Ficon.png&isDynamic=0!?__next_metadata_route__",nextConfigOutput:"",userland:n}),{requestAsyncStorage:c,staticGenerationAsyncStorage:d,serverHooks:m}=g,Q="/icon.png/route";function h(){return(0,i.patchFetch)({serverHooks:m,staticGenerationAsyncStorage:d})}}};var e=require("../../webpack-runtime.js");e.C(A);var t=A=>e(e.s=A),n=e.X(0,[8948,2518],()=>t(53863));module.exports=n})();
@@ -0,0 +1 @@
1
+ {"version":1,"files":["../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/package.json","../../../../package.json","../../../package.json","../../chunks/2518.js","../../chunks/8948.js","../../webpack-runtime.js"]}
Binary file
@@ -0,0 +1 @@
1
+ {"status":200,"headers":{"cache-control":"public, immutable, no-transform, max-age=31536000","content-type":"image/png","x-next-cache-tags":"_N_T_/layout,_N_T_/icon.png/layout,_N_T_/icon.png/route,_N_T_/icon.png"}}
@@ -0,0 +1,9 @@
1
+ <!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/e174aa24f94ce607.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-3fc79fab9bb738d7.js"/><script src="/_next/static/chunks/fd9d1056-bbe86e4ae099d5cd.js" async=""></script><script src="/_next/static/chunks/2117-d845c2cd62e344a6.js" async=""></script><script src="/_next/static/chunks/main-app-420d93e43682fee5.js" async=""></script><script src="/_next/static/chunks/7648-325564a6e12a3257.js" async=""></script><script src="/_next/static/chunks/9365-733d8c05712d2888.js" async=""></script><script src="/_next/static/chunks/6725-f7607851b7d57eb1.js" async=""></script><script src="/_next/static/chunks/816-7e340dad784be28c.js" async=""></script><script src="/_next/static/chunks/2853-d11a80b03c9a1640.js" async=""></script><script src="/_next/static/chunks/app/page-9cd00de9cc0abc43.js" async=""></script><script src="/_next/static/chunks/app/layout-37e55f11dcc8b1bf.js" async=""></script><title>CommandMate</title><meta name="description" content="Git worktree management with Claude CLI and tmux sessions"/><link rel="icon" href="/icon.png?32d9127ba30ee286" type="image/png" sizes="32x32"/><link rel="apple-touch-icon" href="/apple-icon.png?31a89e65aa4ac65b" type="image/png" sizes="180x180"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-screen bg-gray-50"><div data-testid="app-shell" class="h-screen flex"><aside data-testid="sidebar-container" class="
2
+ fixed left-0 top-0 h-full w-72
3
+ transform transition-transform duration-300 ease-out
4
+ translate-x-0
5
+ " style="z-index:30" role="complementary" aria-hidden="false"><nav data-testid="sidebar" aria-label="Branch navigation" class="h-full flex flex-col bg-gray-900 text-white" role="navigation"><div data-testid="sidebar-header" class="flex-shrink-0 px-4 py-4 border-b border-gray-700"><div class="flex items-center justify-between"><h2 class="text-lg font-semibold text-white">Branches</h2><div class="relative" data-testid="sort-selector"><div class="flex items-center gap-1"><button type="button" aria-expanded="false" aria-haspopup="listbox" aria-label="Sort by Updated" class=" flex items-center gap-1 px-2 py-1 rounded text-xs text-gray-300 hover:text-white hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-500 transition-colors "><svg class="w-3 h-3" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"></path></svg><span class="hidden sm:inline">Updated</span></button><button type="button" aria-label="Sort descending" class=" p-1 rounded text-gray-300 hover:text-white hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-500 transition-colors "><svg class="w-3 h-3" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M19 9l-7 7-7-7"></path></svg></button></div></div></div></div><div class="flex-shrink-0 px-4 py-3 border-b border-gray-700"><input type="text" placeholder="Search branches..." class=" w-full px-3 py-2 rounded-md bg-gray-800 text-white placeholder-gray-400 border border-gray-600 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent " value=""/></div><div data-testid="branch-list" class="flex-1 overflow-y-auto"><div class="px-4 py-8 text-center text-gray-400">No branches available</div></div></nav></aside><main class="
6
+ flex-1 min-w-0 h-full overflow-hidden
7
+ transition-[padding] duration-300 ease-out
8
+ md:pl-72
9
+ " role="main"><div class="container-custom py-8 overflow-auto h-full"><div class="mb-8"><h1 class="mb-2">CommandMate</h1><p class="text-lg text-gray-600">Git worktree management with Claude CLI and tmux sessions</p></div><div class="mb-8"><div class="space-y-4"><div class="flex gap-2 flex-wrap"><button class="btn btn-primary btn-sm">+ Add Repository</button><button class="btn btn-secondary btn-sm">Sync All</button></div></div></div><div class="space-y-6"><div class="flex flex-col sm:flex-row gap-4 items-start sm:items-center justify-between"><div class="flex items-center gap-2 flex-wrap"><span class="badge badge-gray">0<!-- --> branches</span></div><div class="flex gap-2 w-full sm:w-auto"><button class="btn btn-secondary btn-sm opacity-50 cursor-not-allowed" disabled="">Loading...</button></div></div><div class="flex flex-col sm:flex-row gap-3"><input type="text" placeholder="Search worktrees..." class="input flex-1" value=""/></div><div class="flex gap-2 flex-wrap items-center"><button class="btn btn-primary btn-sm">All</button><button class="btn bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500 btn-sm">📝 ToDo</button><button class="btn bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500 btn-sm">🚧 Doing</button><button class="btn bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500 btn-sm">✅ Done</button><button class="btn bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500 btn-sm">Not set</button></div><div class="flex gap-2 flex-wrap"><span class="text-sm text-gray-600 self-center">Sort by:</span><button class="btn bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500 btn-sm">⭐ Favorite </button><button class="btn bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500 btn-sm">Name </button><button class="btn btn-primary btn-sm">Updated <!-- -->↓</button></div><div class="text-center py-12"><div class="inline-block animate-spin rounded-full h-8 w-8 border-4 border-gray-300 border-t-blue-600"></div><p class="mt-4 text-gray-600">Loading worktrees...</p></div></div><div class="mt-8"><div class="space-y-4"><div class="flex items-center justify-between"><h2 class="text-xl font-semibold text-gray-900">External Apps</h2><button class="btn btn-primary btn-sm">+ Add App</button></div><div class="card p-6"><div class="flex items-center justify-center py-8"><div class="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600"></div><span class="ml-3 text-gray-600">Loading apps...</span></div></div></div></div></div></main></div><script src="/_next/static/chunks/webpack-3fc79fab9bb738d7.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/e174aa24f94ce607.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[12846,[],\"\"]\n4:I[19107,[],\"ClientPageRoot\"]\n5:I[89707,[\"7648\",\"static/chunks/7648-325564a6e12a3257.js\",\"9365\",\"static/chunks/9365-733d8c05712d2888.js\",\"6725\",\"static/chunks/6725-f7607851b7d57eb1.js\",\"816\",\"static/chunks/816-7e340dad784be28c.js\",\"2853\",\"static/chunks/2853-d11a80b03c9a1640.js\",\"1931\",\"static/chunks/app/page-9cd00de9cc0abc43.js\"],\"default\",1]\n6:I[91795,[\"816\",\"static/chunks/816-7e340dad784be28c.js\",\"3185\",\"static/chunks/app/layout-37e55f11dcc8b1bf.js\"],\"AppProviders\"]\n7:I[4707,[],\"\"]\n8:I[36423,[],\"\"]\na:I[61060,[],\"\"]\nb:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"3jNZMmFnQhc5G7met-OU4\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"\"],\"initialTree\":[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}],null],null],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e174aa24f94ce607.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ja\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-gray-50\",\"children\":[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L9\"],\"globalErrorComponent\":\"$a\",\"missingSlots\":\"$Wb\"}]\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"CommandMate\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Git worktree management with Claude CLI and tmux sessions\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/icon.png?32d9127ba30ee286\",\"type\":\"image/png\",\"sizes\":\"32x32\"}],[\"$\",\"link\",\"5\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?31a89e65aa4ac65b\",\"type\":\"image/png\",\"sizes\":\"180x180\"}]]\n3:null\n"])</script></body></html>
@@ -0,0 +1,5 @@
1
+ {
2
+ "headers": {
3
+ "x-next-cache-tags": "_N_T_/layout,_N_T_/page,_N_T_/"
4
+ }
5
+ }
@@ -0,0 +1,8 @@
1
+ 2:I[19107,[],"ClientPageRoot"]
2
+ 3:I[89707,["7648","static/chunks/7648-325564a6e12a3257.js","9365","static/chunks/9365-733d8c05712d2888.js","6725","static/chunks/6725-f7607851b7d57eb1.js","816","static/chunks/816-7e340dad784be28c.js","2853","static/chunks/2853-d11a80b03c9a1640.js","1931","static/chunks/app/page-9cd00de9cc0abc43.js"],"default",1]
3
+ 4:I[91795,["816","static/chunks/816-7e340dad784be28c.js","3185","static/chunks/app/layout-37e55f11dcc8b1bf.js"],"AppProviders"]
4
+ 5:I[4707,[],""]
5
+ 6:I[36423,[],""]
6
+ 0:["3jNZMmFnQhc5G7met-OU4",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],null],null],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/e174aa24f94ce607.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"ja","children":["$","body",null,{"className":"min-h-screen bg-gray-50","children":["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]}]],null],null],["$L7",null]]]]
7
+ 7:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"CommandMate"}],["$","meta","3",{"name":"description","content":"Git worktree management with Claude CLI and tmux sessions"}],["$","link","4",{"rel":"icon","href":"/icon.png?32d9127ba30ee286","type":"image/png","sizes":"32x32"}],["$","link","5",{"rel":"apple-touch-icon","href":"/apple-icon.png?31a89e65aa4ac65b","type":"image/png","sizes":"180x180"}]]
8
+ 1:null
@@ -0,0 +1,16 @@
1
+ (()=>{var e={};e.id=1931,e.ids=[1931],e.modules={72934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},55315:e=>{"use strict";e.exports=require("path")},17360:e=>{"use strict";e.exports=require("url")},37906:(e,t,a)=>{"use strict";a.r(t),a.d(t,{GlobalError:()=>i.a,__next_app__:()=>m,originalPathname:()=>u,pages:()=>c,routeModule:()=>h,tree:()=>d}),a(35480),a(25086),a(35866);var r=a(23191),n=a(88716),s=a(37922),i=a.n(s),l=a(95231),o={};for(let e in l)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(o[e]=()=>l[e]);a.d(t,o);let d=["",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(a.bind(a,35480)),"/home/runner/work/CommandMate/CommandMate/src/app/page.tsx"],metadata:{icon:[async e=>(await Promise.resolve().then(a.bind(a,71150))).default(e)],apple:[async e=>(await Promise.resolve().then(a.bind(a,63601))).default(e)],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(a.bind(a,25086)),"/home/runner/work/CommandMate/CommandMate/src/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(a.t.bind(a,35866,23)),"next/dist/client/components/not-found-error"],metadata:{icon:[async e=>(await Promise.resolve().then(a.bind(a,71150))).default(e)],apple:[async e=>(await Promise.resolve().then(a.bind(a,63601))).default(e)],openGraph:[],twitter:[],manifest:void 0}}],c=["/home/runner/work/CommandMate/CommandMate/src/app/page.tsx"],u="/page",m={require:a,loadChunk:()=>Promise.resolve()},h=new r.AppPageRouteModule({definition:{kind:n.x.APP_PAGE,page:"/page",pathname:"/",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:d}})},11518:(e,t,a)=>{Promise.resolve().then(a.bind(a,54846))},35047:(e,t,a)=>{"use strict";var r=a(77389);a.o(r,"useParams")&&a.d(t,{useParams:function(){return r.useParams}}),a.o(r,"useRouter")&&a.d(t,{useRouter:function(){return r.useRouter}})},54846:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>X});var r=a(10326),n=a(17577),s=a(75433),i=a(90434),l=a(77758);let o=Symbol.for("constructDateFrom");function d(e,t){return"function"==typeof e?e(t):e&&"object"==typeof e&&o in e?e[o](t):e instanceof Date?new e.constructor(t):new Date(t)}let c={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function u(e){return (t={})=>{let a=t.width?String(t.width):e.defaultWidth;return e.formats[a]||e.formats[e.defaultWidth]}}let m={date:u({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:u({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:u({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},h={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function p(e){return(t,a)=>{let r;if("formatting"===(a?.context?String(a.context):"standalone")&&e.formattingValues){let t=e.defaultFormattingWidth||e.defaultWidth,n=a?.width?String(a.width):t;r=e.formattingValues[n]||e.formattingValues[t]}else{let t=e.defaultWidth,n=a?.width?String(a.width):e.defaultWidth;r=e.values[n]||e.values[t]}return r[e.argumentCallback?e.argumentCallback(t):t]}}function x(e){return(t,a={})=>{let r;let n=a.width,s=n&&e.matchPatterns[n]||e.matchPatterns[e.defaultMatchWidth],i=t.match(s);if(!i)return null;let l=i[0],o=n&&e.parsePatterns[n]||e.parsePatterns[e.defaultParseWidth],d=Array.isArray(o)?function(e,t){for(let a=0;a<e.length;a++)if(t(e[a]))return a}(o,e=>e.test(l)):function(e,t){for(let a in e)if(Object.prototype.hasOwnProperty.call(e,a)&&t(e[a]))return a}(o,e=>e.test(l));return r=e.valueCallback?e.valueCallback(d):d,{value:r=a.valueCallback?a.valueCallback(r):r,rest:t.slice(l.length)}}}function g(e){return(t,a={})=>{let r=t.match(e.matchPattern);if(!r)return null;let n=r[0],s=t.match(e.parsePattern);if(!s)return null;let i=e.valueCallback?e.valueCallback(s[0]):s[0];return{value:i=a.valueCallback?a.valueCallback(i):i,rest:t.slice(n.length)}}}let f={code:"en-US",formatDistance:(e,t,a)=>{let r;let n=c[e];return(r="string"==typeof n?n:1===t?n.one:n.other.replace("{{count}}",t.toString()),a?.addSuffix)?a.comparison&&a.comparison>0?"in "+r:r+" ago":r},formatLong:m,formatRelative:(e,t,a,r)=>h[e],localize:{ordinalNumber:(e,t)=>{let a=Number(e),r=a%100;if(r>20||r<10)switch(r%10){case 1:return a+"st";case 2:return a+"nd";case 3:return a+"rd"}return a+"th"},era:p({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:p({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:e=>e-1}),month:p({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:p({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:p({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:g({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:x({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:x({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:e=>e+1}),month:x({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:x({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:x({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}},y={};function b(e,t){return d(t||e,e)}function v(e){let t=b(e),a=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return a.setUTCFullYear(t.getFullYear()),+e-+a}function j(e,...t){let a=d.bind(null,e||t.find(e=>"object"==typeof e));return t.map(a)}function w(e,t){let a=+b(e)-+b(t);return a<0?-1:a>0?1:a}let N={lessThanXSeconds:{one:"1秒未満",other:"{{count}}秒未満",oneWithSuffix:"約1秒",otherWithSuffix:"約{{count}}秒"},xSeconds:{one:"1秒",other:"{{count}}秒"},halfAMinute:"30秒",lessThanXMinutes:{one:"1分未満",other:"{{count}}分未満",oneWithSuffix:"約1分",otherWithSuffix:"約{{count}}分"},xMinutes:{one:"1分",other:"{{count}}分"},aboutXHours:{one:"約1時間",other:"約{{count}}時間"},xHours:{one:"1時間",other:"{{count}}時間"},xDays:{one:"1日",other:"{{count}}日"},aboutXWeeks:{one:"約1週間",other:"約{{count}}週間"},xWeeks:{one:"1週間",other:"{{count}}週間"},aboutXMonths:{one:"約1か月",other:"約{{count}}か月"},xMonths:{one:"1か月",other:"{{count}}か月"},aboutXYears:{one:"約1年",other:"約{{count}}年"},xYears:{one:"1年",other:"{{count}}年"},overXYears:{one:"1年以上",other:"{{count}}年以上"},almostXYears:{one:"1年近く",other:"{{count}}年近く"}},k={date:u({formats:{full:"y年M月d日EEEE",long:"y年M月d日",medium:"y/MM/dd",short:"y/MM/dd"},defaultWidth:"full"}),time:u({formats:{full:"H時mm分ss秒 zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},defaultWidth:"full"}),dateTime:u({formats:{full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},defaultWidth:"full"})},C={lastWeek:"先週のeeeeのp",yesterday:"昨日のp",today:"今日のp",tomorrow:"明日のp",nextWeek:"翌週のeeeeのp",other:"P"},S={code:"ja",formatDistance:(e,t,a)=>{let r;a=a||{};let n=N[e];return(r="string"==typeof n?n:1===t?a.addSuffix&&n.oneWithSuffix?n.oneWithSuffix:n.one:a.addSuffix&&n.otherWithSuffix?n.otherWithSuffix.replace("{{count}}",String(t)):n.other.replace("{{count}}",String(t)),a.addSuffix)?a.comparison&&a.comparison>0?r+"後":r+"前":r},formatLong:k,formatRelative:(e,t,a,r)=>C[e],localize:{ordinalNumber:(e,t)=>{let a=Number(e);switch(String(t?.unit)){case"year":return`${a}年`;case"quarter":return`第${a}四半期`;case"month":return`${a}月`;case"week":return`第${a}週`;case"date":return`${a}日`;case"hour":return`${a}時`;case"minute":return`${a}分`;case"second":return`${a}秒`;default:return`${a}`}},era:p({values:{narrow:["BC","AC"],abbreviated:["紀元前","西暦"],wide:["紀元前","西暦"]},defaultWidth:"wide"}),quarter:p({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["第1四半期","第2四半期","第3四半期","第4四半期"]},defaultWidth:"wide",argumentCallback:e=>Number(e)-1}),month:p({values:{narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]},defaultWidth:"wide"}),day:p({values:{narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],abbreviated:["日","月","火","水","木","金","土"],wide:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},defaultWidth:"wide"}),dayPeriod:p({values:{narrow:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},abbreviated:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},wide:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"}},defaultWidth:"wide",formattingValues:{narrow:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},abbreviated:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},wide:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:g({matchPattern:/^第?\d+(年|四半期|月|週|日|時|分|秒)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}}),era:x({matchPatterns:{narrow:/^(B\.?C\.?|A\.?D\.?)/i,abbreviated:/^(紀元[前後]|西暦)/i,wide:/^(紀元[前後]|西暦)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^B/i,/^A/i],any:[/^(紀元前)/i,/^(西暦|紀元後)/i]},defaultParseWidth:"any"}),quarter:x({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^Q[1234]/i,wide:/^第[1234一二三四1234]四半期/i},defaultMatchWidth:"wide",parsePatterns:{any:[/(1|一|1)/i,/(2|二|2)/i,/(3|三|3)/i,/(4|四|4)/i]},defaultParseWidth:"any",valueCallback:e=>e+1}),month:x({matchPatterns:{narrow:/^([123456789]|1[012])/,abbreviated:/^([123456789]|1[012])月/i,wide:/^([123456789]|1[012])月/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^1\D/,/^2/,/^3/,/^4/,/^5/,/^6/,/^7/,/^8/,/^9/,/^10/,/^11/,/^12/]},defaultParseWidth:"any"}),day:x({matchPatterns:{narrow:/^[日月火水木金土]/,short:/^[日月火水木金土]/,abbreviated:/^[日月火水木金土]/,wide:/^[日月火水木金土]曜日/},defaultMatchWidth:"wide",parsePatterns:{any:[/^日/,/^月/,/^火/,/^水/,/^木/,/^金/,/^土/]},defaultParseWidth:"any"}),dayPeriod:x({matchPatterns:{any:/^(AM|PM|午前|午後|正午|深夜|真夜中|夜|朝)/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^(A|午前)/i,pm:/^(P|午後)/i,midnight:/^深夜|真夜中/i,noon:/^正午/i,morning:/^朝/i,afternoon:/^午後/i,evening:/^夜/i,night:/^深夜/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};var P=a(73002);function M({worktree:e,onSessionKilled:t,onStatusChanged:a}){var s,o;let{id:c,name:u,description:m,lastMessagesByCli:h,updatedAt:p,isSessionRunning:x,isWaitingForResponse:g,favorite:N,status:k,link:C,sessionStatusByCli:M}=e,[W,D]=(0,n.useState)(!1),[z,A]=(0,n.useState)(N||!1),[T,$]=(0,n.useState)(!1),[R,E]=(0,n.useState)(k||null),[L,F]=(0,n.useState)(!1),O=p?(s=new Date(p),o={addSuffix:!0,locale:S},function(e,t,a){var r,n,s,i;let l;let o=a?.locale??y.locale??f,d=w(e,t);if(isNaN(d))throw RangeError("Invalid time value");let c=Object.assign({},a,{addSuffix:a?.addSuffix,comparison:d}),[u,m]=j(a?.in,...d>0?[t,e]:[e,t]),h=(r=m,n=u,(i=void 0,e=>{let t=(i?Math[i]:Math.trunc)(e);return 0===t?0:t})((+b(r)-+b(n))/1e3)),p=Math.round((h-(v(m)-v(u))/1e3)/60);if(p<2){if(a?.includeSeconds){if(h<5)return o.formatDistance("lessThanXSeconds",5,c);if(h<10)return o.formatDistance("lessThanXSeconds",10,c);if(h<20)return o.formatDistance("lessThanXSeconds",20,c);if(h<40)return o.formatDistance("halfAMinute",0,c);else if(h<60)return o.formatDistance("lessThanXMinutes",1,c);else return o.formatDistance("xMinutes",1,c)}return 0===p?o.formatDistance("lessThanXMinutes",1,c):o.formatDistance("xMinutes",p,c)}if(p<45)return o.formatDistance("xMinutes",p,c);if(p<90)return o.formatDistance("aboutXHours",1,c);if(p<1440)return o.formatDistance("aboutXHours",Math.round(p/60),c);if(p<2520)return o.formatDistance("xDays",1,c);if(p<43200)return o.formatDistance("xDays",Math.round(p/1440),c);if(p<86400)return l=Math.round(p/43200),o.formatDistance("aboutXMonths",l,c);if((l=function(e,t,a){let[r,n,s]=j(void 0,e,e,t),i=w(n,s),l=Math.abs(function(e,t,a){let[r,n]=j(void 0,e,t);return 12*(r.getFullYear()-n.getFullYear())+(r.getMonth()-n.getMonth())}(n,s));if(l<1)return 0;1===n.getMonth()&&n.getDate()>27&&n.setDate(30),n.setMonth(n.getMonth()-i*l);let o=w(n,s)===-i;(function(e,t){let a=b(e,void 0);return+function(e,t){let a=b(e,t?.in);return a.setHours(23,59,59,999),a}(a,void 0)==+function(e,t){let a=b(e,t?.in),r=a.getMonth();return a.setFullYear(a.getFullYear(),r+1,0),a.setHours(23,59,59,999),a}(a,void 0)})(r)&&1===l&&1===w(r,s)&&(o=!1);let d=i*(l-+o);return 0===d?0:d}(m,u))<12)return o.formatDistance("xMonths",Math.round(p/43200),c);{let e=l%12,t=Math.trunc(l/12);return e<3?o.formatDistance("aboutXYears",t,c):e<9?o.formatDistance("overXYears",t,c):o.formatDistance("almostXYears",t+1,c)}}(s,d(s,Date.now()),o)):null,I="main"===u||"master"===u,X=async e=>{if(e.preventDefault(),e.stopPropagation(),confirm(`「${u}」のセッションを終了しますか?
2
+
3
+ ※全てのメッセージ履歴が削除されます。ログファイルは保持されます。`))try{D(!0),await P.Iv.killSession(c),t&&t()}catch(t){let e=(0,P.zG)(t);alert(`セッションの終了に失敗しました: ${e}`)}finally{D(!1)}},_=async e=>{e.preventDefault(),e.stopPropagation();try{$(!0);let e=!z;await P.Iv.toggleFavorite(c,e),A(e)}catch(t){let e=(0,P.zG)(t);alert(`お気に入りの更新に失敗しました: ${e}`)}finally{$(!1)}},q=async(e,t)=>{t.preventDefault(),t.stopPropagation();try{F(!0),await P.Iv.updateStatus(c,e),E(e),a&&a()}catch(t){let e=(0,P.zG)(t);alert(`ステータスの更新に失敗しました: ${e}`)}finally{F(!1)}};return r.jsx(i.default,{href:`/worktrees/${c}`,className:"block",children:(0,r.jsxs)(l.Zb,{hover:!0,padding:"lg",className:"h-full",children:[r.jsx(l.Ol,{children:(0,r.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,r.jsxs)(l.ll,{className:"flex items-center gap-2 flex-wrap",children:[r.jsx("button",{onClick:_,disabled:T,className:"flex-shrink-0 transition-colors hover:scale-110",title:z?"お気に入りを解除":"お気に入りに追加",children:r.jsx("svg",{className:`w-5 h-5 ${z?"fill-yellow-400 text-yellow-400":"fill-none text-gray-400"}`,stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:r.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.563.563 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.563.563 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z"})})}),r.jsx("span",{className:"truncate",children:u}),I&&r.jsx(l.Ct,{variant:"info",children:"Main"}),x&&g&&r.jsx(l.Ct,{variant:"warning",dot:!0,children:"レスポンス待ち"}),x&&!g&&r.jsx(l.Ct,{variant:"success",dot:!0,children:"レスポンス完了"})]}),x&&r.jsx(l.zx,{variant:"danger",size:"sm",onClick:X,disabled:W,className:"flex-shrink-0",children:W?"終了中...":"終了"})]})}),r.jsx(l.aY,{children:(0,r.jsxs)("div",{className:"space-y-3",children:[m&&(0,r.jsxs)("div",{children:[r.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Description"}),r.jsx("p",{className:"text-sm text-gray-700 line-clamp-2 whitespace-pre-wrap",children:m})]}),C&&(0,r.jsxs)("div",{children:[r.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Link"}),(0,r.jsxs)("button",{onClick:e=>{e.preventDefault(),e.stopPropagation(),C&&window.open(C,"_blank","noopener,noreferrer")},className:"flex items-center gap-1 text-sm text-blue-600 hover:text-blue-800 hover:underline transition-colors",title:"Open link in new tab",children:[r.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:r.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})}),r.jsx("span",{className:"truncate",children:C})]})]}),(h||M)&&(0,r.jsxs)("div",{children:[r.jsx("p",{className:"text-xs text-gray-500 mb-2",children:"Last Messages & Status"}),r.jsx("div",{className:"space-y-1.5",children:(h?.claude||M?.claude)&&(0,r.jsxs)("div",{className:"flex items-start gap-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1 flex-shrink-0",children:[r.jsx(l.Ct,{variant:"info",className:"text-xs",children:"Claude"}),M?.claude?.isRunning&&M?.claude?.isWaitingForResponse&&r.jsx(l.Ct,{variant:"warning",dot:!0,className:"text-xs",children:"待機中"}),M?.claude?.isRunning&&!M?.claude?.isWaitingForResponse&&r.jsx(l.Ct,{variant:"success",dot:!0,className:"text-xs",children:"完了"})]}),h?.claude&&r.jsx("p",{className:"text-sm text-gray-700 line-clamp-1 flex-1",children:h.claude})]})})]}),(0,r.jsxs)("div",{children:[r.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Status"}),(0,r.jsxs)("div",{className:"flex gap-1 flex-wrap",children:[r.jsx("button",{onClick:e=>q(null,e),disabled:L,className:`px-2 py-1 text-xs font-medium rounded border transition-colors disabled:opacity-50 ${null===R?"bg-gray-100 text-gray-700 border-gray-400":"bg-white text-gray-600 border-gray-200 hover:bg-gray-50"}`,children:"Not set"}),r.jsx("button",{onClick:e=>q("todo",e),disabled:L,className:`px-2 py-1 text-xs font-medium rounded border transition-colors disabled:opacity-50 ${"todo"===R?"bg-gray-100 text-gray-700 border-gray-400":"bg-white text-gray-600 border-gray-200 hover:bg-gray-50"}`,children:"ToDo"}),r.jsx("button",{onClick:e=>q("doing",e),disabled:L,className:`px-2 py-1 text-xs font-medium rounded border transition-colors disabled:opacity-50 ${"doing"===R?"bg-blue-100 text-blue-700 border-blue-400":"bg-white text-gray-600 border-gray-200 hover:bg-blue-50"}`,children:"Doing"}),r.jsx("button",{onClick:e=>q("done",e),disabled:L,className:`px-2 py-1 text-xs font-medium rounded border transition-colors disabled:opacity-50 ${"done"===R?"bg-green-100 text-green-700 border-green-400":"bg-white text-gray-600 border-gray-200 hover:bg-green-50"}`,children:"Done"})]})]}),O&&(0,r.jsxs)("div",{className:"flex items-center text-xs text-gray-500",children:[r.jsx("svg",{className:"w-4 h-4 mr-1",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:r.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,r.jsxs)("span",{children:["Updated ",O]})]})]})})]})})}function W(e){let t=process.env.NEXT_PUBLIC_WORKTREE_REPOS;return!!t&&t.split(",").map(e=>e.trim()).includes(e)}function D({initialWorktrees:e=[]}){let[t,a]=(0,n.useState)(e),[s,i]=(0,n.useState)([]),[o,d]=(0,n.useState)(!e.length),[c,u]=(0,n.useState)(null),[m,h]=(0,n.useState)(""),[p,x]=(0,n.useState)("updated"),[g,f]=(0,n.useState)("desc"),[y,b]=(0,n.useState)(null),[v,j]=(0,n.useState)(null),[w,N]=(0,n.useState)(null),k=(0,n.useCallback)(async(e=!1)=>{try{e||d(!0),u(null);let t=await P.Iv.getAll();a(t.worktrees),i(t.repositories)}catch(e){u((0,P.zG)(e))}finally{e||d(!1)}},[]),C=e=>!!(e&&"session_status_changed"===e.type),{status:S}=function(e={}){let{worktreeIds:t=[],onMessage:a,onStatusChange:r,autoReconnect:s=!0,reconnectDelay:i=3e3}=e,[l,o]=(0,n.useState)("disconnected"),d=(0,n.useRef)(null),c=(0,n.useRef)(),u=(0,n.useRef)(new Set),m=(0,n.useCallback)(e=>{o(e),r?.(e)},[r]),h=(0,n.useCallback)(()=>{if(d.current?.readyState===WebSocket.OPEN)return;m("connecting");let e="https:"===window.location.protocol?"wss:":"ws:",t=new WebSocket(`${e}//${window.location.host}`);t.onopen=()=>{m("connected"),u.current.forEach(e=>{t.send(JSON.stringify({type:"subscribe",worktreeId:e}))})},t.onmessage=e=>{try{let t=JSON.parse(e.data);a?.(t)}catch(e){console.error("Failed to parse WebSocket message:",e)}},t.onerror=()=>{m("error")},t.onclose=()=>{m("disconnected"),d.current=null,s&&(c.current=setTimeout(()=>{h()},i))},d.current=t},[m,a,s,i]),p=(0,n.useCallback)(()=>{c.current&&clearTimeout(c.current),d.current&&(d.current.close(1e3,"Client disconnect"),d.current=null),m("disconnected")},[m]);return{status:l,subscribe:(0,n.useCallback)(e=>{d.current?.readyState===WebSocket.OPEN&&(d.current.send(JSON.stringify({type:"subscribe",worktreeId:e})),u.current.add(e))},[]),unsubscribe:(0,n.useCallback)(e=>{d.current?.readyState===WebSocket.OPEN&&(d.current.send(JSON.stringify({type:"unsubscribe",worktreeId:e})),u.current.delete(e))},[]),sendMessage:(0,n.useCallback)(e=>{d.current?.readyState===WebSocket.OPEN&&d.current.send(JSON.stringify(e))},[]),connect:h,disconnect:p}}({onMessage:(0,n.useCallback)(e=>{if(C(e.data)){let t=e.data;a(e=>e.map(e=>e.id===t.worktreeId?{...e,isSessionRunning:t.isRunning}:e))}"broadcast"===e.type&&k(!0)},[k])}),D=(0,n.useMemo)(()=>{let e=[...t];if(y&&(e=e.filter(e=>e.repositoryPath===y)),null!==v&&(e="unset"===v?e.filter(e=>!e.status):e.filter(e=>e.status===v)),m){let t=m.toLowerCase();e=e.filter(e=>e.name.toLowerCase().includes(t)||e.path.toLowerCase().includes(t)||e.repositoryName.toLowerCase().includes(t)||e.lastMessageSummary?.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t))}return e.sort((e,t)=>{let a=0;switch(p){case"name":a=e.name.localeCompare(t.name);break;case"updated":a=(e.updatedAt?new Date(e.updatedAt).getTime():0)-(t.updatedAt?new Date(t.updatedAt).getTime():0);break;case"favorite":a=(e.favorite?1:0)-(t.favorite?1:0)}return"asc"===g?a:-a}),e},[t,y,v,m,p,g]),z=(0,n.useMemo)(()=>{let e=new Map;for(let t of D){let a=t.repositoryPath||"unknown";e.has(a)||e.set(a,[]),e.get(a).push(t)}return e},[D]),A=e=>{p===e?f(e=>"asc"===e?"desc":"asc"):(x(e),f("asc"))},T=async(e,t)=>{let a=s.find(t=>t.path===e)?.worktreeCount||0,r=W(e),n=`Delete repository "${t}"?
4
+
5
+ This will delete:
6
+ - ${a} worktree(s)
7
+ - Related chat history
8
+ - Related memos
9
+
10
+ * Log files will be preserved`;if(r&&(n+=`
11
+
12
+ WARNING: This repository is configured in environment variable (WORKTREE_REPOS).
13
+ It will be re-registered when you run "Sync All".
14
+ To permanently remove it, also update the environment variable.`),"delete"===prompt(n+=`
15
+
16
+ Type "delete" to confirm:`)){N(e);try{await P.J1.delete(e),y===e&&b(null),await k()}catch(e){u((0,P.zG)(e))}finally{N(null)}}};return(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsxs)("div",{className:"flex flex-col sm:flex-row gap-4 items-start sm:items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,r.jsxs)(l.Ct,{variant:"gray",children:[t.length," branches"]}),s.length>0&&(0,r.jsxs)(l.Ct,{variant:"info",children:[s.length," ",1===s.length?"repository":"repositories"]}),"connected"===S&&r.jsx(l.Ct,{variant:"success",dot:!0,children:"Live"})]}),r.jsx("div",{className:"flex gap-2 w-full sm:w-auto",children:r.jsx(l.zx,{variant:"secondary",size:"sm",onClick:()=>k(),disabled:o,children:o?"Loading...":"Refresh"})})]}),r.jsx("div",{className:"flex flex-col sm:flex-row gap-3",children:r.jsx("input",{type:"text",placeholder:"Search worktrees...",value:m,onChange:e=>h(e.target.value),className:"input flex-1"})}),s.length>1&&(0,r.jsxs)("div",{className:"flex gap-2 flex-wrap items-center",children:[(0,r.jsxs)(l.zx,{variant:null===y?"primary":"ghost",size:"sm",onClick:()=>b(null),children:["All (",t.length,")"]}),s.map(e=>(0,r.jsxs)("div",{className:"relative group inline-flex items-center",children:[(0,r.jsxs)(l.zx,{variant:y===e.path?"primary":"ghost",size:"sm",onClick:()=>b(e.path),className:"pr-6",children:[e.name," (",e.worktreeCount,")",W(e.path)&&r.jsx("span",{title:"Configured in environment variable",className:"ml-1 text-amber-500",children:"!"})]}),r.jsx("button",{className:"absolute right-1 opacity-0 group-hover:opacity-100 text-gray-400 hover:text-red-500 transition-opacity px-1",onClick:t=>{t.stopPropagation(),T(e.path,e.name)},disabled:w===e.path,title:"Delete repository",children:w===e.path?"...":"x"})]},e.path))]}),(0,r.jsxs)("div",{className:"flex gap-2 flex-wrap items-center",children:[r.jsx(l.zx,{variant:null===v?"primary":"ghost",size:"sm",onClick:()=>j(null),children:"All"}),r.jsx(l.zx,{variant:"todo"===v?"primary":"ghost",size:"sm",onClick:()=>j("todo"),children:"\uD83D\uDCDD ToDo"}),r.jsx(l.zx,{variant:"doing"===v?"primary":"ghost",size:"sm",onClick:()=>j("doing"),children:"\uD83D\uDEA7 Doing"}),r.jsx(l.zx,{variant:"done"===v?"primary":"ghost",size:"sm",onClick:()=>j("done"),children:"✅ Done"}),r.jsx(l.zx,{variant:"unset"===v?"primary":"ghost",size:"sm",onClick:()=>j("unset"),children:"Not set"})]}),(0,r.jsxs)("div",{className:"flex gap-2 flex-wrap",children:[r.jsx("span",{className:"text-sm text-gray-600 self-center",children:"Sort by:"}),(0,r.jsxs)(l.zx,{variant:"favorite"===p?"primary":"ghost",size:"sm",onClick:()=>A("favorite"),children:["⭐ Favorite ","favorite"===p&&("asc"===g?"↑":"↓")]}),(0,r.jsxs)(l.zx,{variant:"name"===p?"primary":"ghost",size:"sm",onClick:()=>A("name"),children:["Name ","name"===p&&("asc"===g?"↑":"↓")]}),(0,r.jsxs)(l.zx,{variant:"updated"===p?"primary":"ghost",size:"sm",onClick:()=>A("updated"),children:["Updated ","updated"===p&&("asc"===g?"↑":"↓")]})]}),c&&r.jsx("div",{className:"p-4 bg-red-50 border border-red-200 rounded-lg",children:r.jsx("p",{className:"text-sm text-red-800",children:c})}),o&&!t.length&&(0,r.jsxs)("div",{className:"text-center py-12",children:[r.jsx("div",{className:"inline-block animate-spin rounded-full h-8 w-8 border-4 border-gray-300 border-t-blue-600"}),r.jsx("p",{className:"mt-4 text-gray-600",children:"Loading worktrees..."})]}),!o&&!c&&0===D.length&&(0,r.jsxs)("div",{className:"text-center py-12",children:[r.jsx("svg",{className:"mx-auto h-12 w-12 text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:r.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"})}),r.jsx("p",{className:"mt-4 text-gray-600",children:m?"No worktrees found matching your search":"No worktrees found"})]}),!o&&D.length>0&&r.jsx("div",{className:"space-y-8",children:Array.from(z.entries()).map(([e,t])=>{let a=s.find(t=>t.path===e),n=a?.name||"Unknown Repository";return(0,r.jsxs)("div",{className:"space-y-4",children:[(s.length>1||!y)&&(0,r.jsxs)("div",{className:"flex items-center gap-3 pb-2 border-b border-gray-200",children:[r.jsx("h3",{className:"text-xl font-semibold text-gray-900",children:n}),r.jsx(l.Ct,{variant:"gray",children:t.length})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:t.map(e=>r.jsx(M,{worktree:e,onSessionKilled:k,onStatusChanged:k},e.id))})]},e)})})]})}a(35047),a(43053),a(15470);class z{constructor(){}static getInstance(){return z.instance||(z.instance=new z),z.instance}normalize(e){let t=e.match(/^ssh:\/\/git@([^:\/]+)(:\d+)?\/(.+?)(\.git)?$/);if(t)return`https://${t[1]}/${t[3]}`.toLowerCase().replace(/\/$/,"");let a=e.match(/^git@([^:]+):(.+?)(\.git)?$/);return a?`https://${a[1]}/${a[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 a=e.match(/:(.+?)(\.git)?$/);if(a&&e.startsWith("git@")){let e=a[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"}}}function A({onRepositoryAdded:e}){let[t,a]=(0,n.useState)(!1),[s,i]=(0,n.useState)("local"),[o,d]=(0,n.useState)(""),[c,u]=(0,n.useState)(""),[m,h]=(0,n.useState)(!1),[p,x]=(0,n.useState)(!1),[g,f]=(0,n.useState)(!1),[y,b]=(0,n.useState)(null),[v,j]=(0,n.useState)(null),[w,N]=(0,n.useState)(null),k=z.getInstance(),C=(0,n.useCallback)(async t=>{try{let r=await P.J1.getCloneStatus(t);"completed"===r.status?(N("Repository cloned successfully"),f(!1),b(null),u(""),a(!1),e&&e()):"failed"===r.status?(j(r.error?.message||"Clone failed"),f(!1),b(null)):("running"===r.status||"pending"===r.status)&&setTimeout(()=>C(t),2e3)}catch(e){j((0,P.zG)(e)),f(!1),b(null)}},[e]),S=async t=>{if(t.preventDefault(),!o.trim()){j("Repository path is required");return}j(null),N(null),h(!0);try{let t=await P.J1.scan(o);N(t.message),d(""),a(!1),e&&e()}catch(e){j((0,P.zG)(e))}finally{h(!1)}},M=async e=>{if(e.preventDefault(),!c.trim()){j("Clone URL is required");return}let t=k.validate(c.trim());if(!t.valid){"EMPTY_URL"===t.error?j("Clone URL is required"):j("Invalid URL format");return}j(null),N(null),f(!0);try{let e=await P.J1.clone(c.trim());b(e.jobId)}catch(e){j((0,P.zG)(e)),f(!1)}},W=async()=>{j(null),N(null),x(!0);try{let t=await P.J1.sync();N(t.message),e&&e()}catch(e){j((0,P.zG)(e))}finally{x(!1)}},D=()=>{a(!1),d(""),u(""),j(null),i("local")};return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{className:"flex gap-2 flex-wrap",children:[!t&&r.jsx(l.zx,{variant:"primary",size:"sm",onClick:()=>a(!0),children:"+ Add Repository"}),r.jsx(l.zx,{variant:"secondary",size:"sm",onClick:W,disabled:p,children:p?"Syncing...":"Sync All"})]}),t&&r.jsx(l.Zb,{padding:"lg",children:(0,r.jsxs)("div",{className:"space-y-4",children:[r.jsx("div",{children:r.jsx("h3",{className:"text-lg font-semibold mb-2",children:"Add New Repository"})}),(0,r.jsxs)("div",{className:"flex border-b border-gray-200",role:"tablist",children:[r.jsx("button",{role:"tab","aria-selected":"local"===s,onClick:()=>i("local"),className:`px-4 py-2 text-sm font-medium border-b-2 -mb-px transition-colors ${"local"===s?"border-blue-500 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700"}`,children:"Local Path"}),r.jsx("button",{role:"tab","aria-selected":"url"===s,onClick:()=>i("url"),className:`px-4 py-2 text-sm font-medium border-b-2 -mb-px transition-colors ${"url"===s?"border-blue-500 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700"}`,children:"Clone URL"})]}),"local"===s&&(0,r.jsxs)("form",{onSubmit:S,className:"space-y-4",children:[(0,r.jsxs)("div",{children:[r.jsx("p",{className:"text-sm text-gray-600 mb-4",children:"Enter the absolute path to a git repository containing worktrees."}),r.jsx("label",{htmlFor:"repositoryPath",className:"block text-sm font-medium text-gray-700 mb-2",children:"Repository Path"}),r.jsx("input",{id:"repositoryPath",type:"text",value:o,onChange:e=>d(e.target.value),placeholder:"/absolute/path/to/repository",className:"input w-full font-mono text-sm",disabled:m}),r.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Example: /Users/username/projects/my-repo"})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[r.jsx(l.zx,{type:"submit",variant:"primary",disabled:m||!o.trim(),children:m?"Scanning...":"Scan & Add"}),r.jsx(l.zx,{type:"button",variant:"ghost",onClick:D,disabled:m,children:"Cancel"})]})]}),"url"===s&&(0,r.jsxs)("form",{onSubmit:M,className:"space-y-4",children:[(0,r.jsxs)("div",{children:[r.jsx("p",{className:"text-sm text-gray-600 mb-4",children:"Enter a git clone URL to clone a remote repository."}),r.jsx("label",{htmlFor:"cloneUrl",className:"block text-sm font-medium text-gray-700 mb-2",children:"Clone URL"}),r.jsx("input",{id:"cloneUrl",type:"text",value:c,onChange:e=>u(e.target.value),placeholder:"https://github.com/user/repo.git",className:"input w-full font-mono text-sm",disabled:g}),r.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Supports HTTPS and SSH URLs"})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[r.jsx(l.zx,{type:"submit",variant:"primary",disabled:g||!c.trim(),children:g?"Cloning...":"Clone"}),r.jsx(l.zx,{type:"button",variant:"ghost",onClick:D,disabled:g,children:"Cancel"})]})]})]})}),w&&r.jsx("div",{className:"p-4 bg-green-50 border border-green-200 rounded-lg",children:r.jsx("p",{className:"text-sm text-green-800",children:w})}),v&&r.jsx("div",{className:"p-4 bg-red-50 border border-red-200 rounded-lg",children:r.jsx("p",{className:"text-sm text-red-800",children:v})})]})}function T({appId:e,pollInterval:t=3e4,showResponseTime:a=!1,compact:s=!1}){let[i,l]=(0,n.useState)(null),[o,d]=(0,n.useState)(!0);if((0,n.useCallback)(async()=>{try{let t=await fetch(`/api/external-apps/${e}/health`);if(t.ok){let e=await t.json();l(e)}else l({id:e,healthy:!1,lastChecked:Date.now(),error:"Failed to check health"})}catch{l({id:e,healthy:!1,lastChecked:Date.now(),error:"Network error"})}finally{d(!1)}},[e]),o)return(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[r.jsx("span",{className:"inline-block h-2.5 w-2.5 rounded-full bg-gray-300 animate-pulse"}),!s&&r.jsx("span",{className:"text-xs text-gray-400",children:"Checking..."})]});let c=i?.healthy??!1,u=c?"bg-green-500":"bg-gray-400",m=c?"Running":"Stopped";return s?r.jsx("span",{className:`inline-block h-2.5 w-2.5 rounded-full ${u}`,title:m}):(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[r.jsx("span",{className:`inline-block h-2.5 w-2.5 rounded-full ${u}`}),r.jsx("span",{className:`text-xs ${c?"text-green-600":"text-gray-500"}`,children:m}),a&&i?.responseTime!==void 0&&(0,r.jsxs)("span",{className:"text-xs text-gray-400",children:["(",i.responseTime,"ms)"]})]})}function $({app:e,onEdit:t,onDelete:a}){var s;let[i,o]=(0,n.useState)(!1),[d,c]=(0,n.useState)(!1),u=async()=>{c(!0);try{await a(e.id)}finally{c(!1),o(!1)}},m=`/proxy/${e.pathPrefix}/`;return(0,r.jsxs)(l.Zb,{padding:"md",className:"relative",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between mb-3",children:[(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[r.jsx("h4",{className:"text-base font-semibold text-gray-900 truncate",children:e.displayName}),r.jsx("p",{className:"text-xs text-gray-500 mt-0.5 font-mono truncate",children:e.name})]}),r.jsx(l.Ct,{variant:{sveltekit:"warning",streamlit:"error",nextjs:"info",other:"gray"}[e.appType]||"gray",children:{sveltekit:"SvelteKit",streamlit:"Streamlit",nextjs:"Next.js",other:"Other"}[s=e.appType]||s})]}),(0,r.jsxs)("div",{className:"space-y-2 mb-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[r.jsx("span",{className:"text-sm text-gray-600",children:"Status"}),r.jsx(T,{appId:e.id,pollInterval:3e4})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[r.jsx("span",{className:"text-sm text-gray-600",children:"Port"}),(0,r.jsxs)("span",{className:"text-sm font-mono text-gray-900",children:[":",e.targetPort]})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[r.jsx("span",{className:"text-sm text-gray-600",children:"Path"}),(0,r.jsxs)("span",{className:"text-sm font-mono text-gray-900 truncate max-w-[150px]",children:["/proxy/",e.pathPrefix,"/"]})]}),e.websocketEnabled&&(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[r.jsx("span",{className:"text-sm text-gray-600",children:"WebSocket"}),r.jsx(l.Ct,{variant:"info",children:"Enabled"})]}),!e.enabled&&r.jsx("div",{className:"mt-2 py-1 px-2 bg-yellow-50 border border-yellow-200 rounded text-xs text-yellow-700",children:"This app is disabled"})]}),i?(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("p",{className:"text-sm text-gray-600",children:['Delete "',e.displayName,'"?']}),(0,r.jsxs)("div",{className:"flex gap-2",children:[r.jsx(l.zx,{variant:"danger",size:"sm",onClick:u,disabled:d,loading:d,children:"Delete"}),r.jsx(l.zx,{variant:"ghost",size:"sm",onClick:()=>o(!1),disabled:d,children:"Cancel"})]})]}):(0,r.jsxs)("div",{className:"flex gap-2 flex-wrap",children:[r.jsx(l.zx,{variant:"primary",size:"sm",onClick:()=>window.open(m,"_blank"),disabled:!e.enabled,children:"Open"}),r.jsx(l.zx,{variant:"secondary",size:"sm",onClick:()=>t(e),children:"Settings"}),r.jsx(l.zx,{variant:"ghost",size:"sm",onClick:()=>o(!0),className:"text-red-600 hover:bg-red-50",children:"Delete"})]})]})}let R={MIN:1024,MAX:65535},E=/^[a-zA-Z0-9-]+$/,L={sveltekit:"SvelteKit",streamlit:"Streamlit",nextjs:"Next.js",other:"Other"},F=["sveltekit","streamlit","nextjs","other"].map(e=>({value:e,label:L[e]}));function O({isOpen:e,onClose:t,editApp:a,onSave:s}){let i=!!a,[o,d]=(0,n.useState)(""),[c,u]=(0,n.useState)(""),[m,h]=(0,n.useState)(""),[p,x]=(0,n.useState)(""),[g,f]=(0,n.useState)(""),[y,b]=(0,n.useState)(!1),[v,j]=(0,n.useState)(""),[w,N]=(0,n.useState)(!0),[k,C]=(0,n.useState)({}),[S,P]=(0,n.useState)(!1),[M,W]=(0,n.useState)(null),D=async e=>{e.preventDefault(),W(null);let r=function(e,t){var a;let r={};return e.displayName?.trim()||(r.displayName="Display name is required"),t||(e.name?.trim()?E.test(e.name)||(r.name="Only alphanumeric characters and hyphens are allowed"):r.name="Identifier name is required",e.pathPrefix?.trim()?E.test(e.pathPrefix)||(r.pathPrefix="Only alphanumeric characters and hyphens are allowed"):r.pathPrefix="Path prefix is required"),e.targetPort?"number"!=typeof e.targetPort||Number.isInteger(a=e.targetPort)&&a>=R.MIN&&a<=R.MAX||(r.targetPort=`Port must be between ${R.MIN} and ${R.MAX}`):r.targetPort="Port number is required",t||e.appType||(r.appType="App type is required"),r}({displayName:o,name:c,pathPrefix:m,targetPort:p,appType:g},i);if(Object.keys(r).length>0){C(r);return}C({}),P(!0);try{if(i&&a){let e=await fetch(`/api/external-apps/${a.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({displayName:o,description:v||void 0,targetPort:p||void 0,websocketEnabled:y,enabled:w})});if(!e.ok){let t=await e.json();throw Error(t.error||"Failed to update app")}}else{let e=await fetch("/api/external-apps",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({displayName:o,name:c,pathPrefix:m,targetPort:p,appType:g,websocketEnabled:y,description:v||void 0})});if(!e.ok){let t=await e.json();throw Error(t.error||"Failed to create app")}}s(),t()}catch(e){W(e instanceof Error?e.message:"An error occurred")}finally{P(!1)}};return r.jsx(l.u_,{isOpen:e,onClose:t,title:i?"Edit External App":"Add External App",size:"md",children:(0,r.jsxs)("form",{onSubmit:D,className:"space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{htmlFor:"displayName",className:"block text-sm font-medium text-gray-700 mb-1",children:["Display Name ",r.jsx("span",{className:"text-red-500",children:"*"})]}),r.jsx("input",{id:"displayName",type:"text",value:o,onChange:e=>d(e.target.value),className:`input w-full ${k.displayName?"border-red-500":""}`,placeholder:"My App",disabled:S}),k.displayName&&r.jsx("p",{className:"mt-1 text-xs text-red-500",children:k.displayName})]}),!i&&(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{htmlFor:"name",className:"block text-sm font-medium text-gray-700 mb-1",children:["Identifier Name ",r.jsx("span",{className:"text-red-500",children:"*"})]}),r.jsx("input",{id:"name",type:"text",value:c,onChange:e=>u(e.target.value),className:`input w-full font-mono ${k.name?"border-red-500":""}`,placeholder:"my-app",disabled:S}),r.jsx("p",{className:"mt-1 text-xs text-gray-500",children:"Alphanumeric and hyphens only. Cannot be changed later."}),k.name&&r.jsx("p",{className:"mt-1 text-xs text-red-500",children:k.name})]}),!i&&(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{htmlFor:"pathPrefix",className:"block text-sm font-medium text-gray-700 mb-1",children:["Path Prefix ",r.jsx("span",{className:"text-red-500",children:"*"})]}),(0,r.jsxs)("div",{className:"flex items-center",children:[r.jsx("span",{className:"text-sm text-gray-500 mr-1",children:"/proxy/"}),r.jsx("input",{id:"pathPrefix",type:"text",value:m,onChange:e=>h(e.target.value),className:`input flex-1 font-mono ${k.pathPrefix?"border-red-500":""}`,placeholder:"app-name",disabled:S}),r.jsx("span",{className:"text-sm text-gray-500 ml-1",children:"/"})]}),r.jsx("p",{className:"mt-1 text-xs text-gray-500",children:"URL path for accessing this app. Cannot be changed later."}),k.pathPrefix&&r.jsx("p",{className:"mt-1 text-xs text-red-500",children:k.pathPrefix})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{htmlFor:"targetPort",className:"block text-sm font-medium text-gray-700 mb-1",children:["Port Number ",r.jsx("span",{className:"text-red-500",children:"*"})]}),r.jsx("input",{id:"targetPort",type:"number",value:p,onChange:e=>x(e.target.value?parseInt(e.target.value,10):""),className:`input w-full font-mono ${k.targetPort?"border-red-500":""}`,placeholder:"5173",min:R.MIN,max:R.MAX,disabled:S}),(0,r.jsxs)("p",{className:"mt-1 text-xs text-gray-500",children:["Target port (",R.MIN,"-",R.MAX,")"]}),k.targetPort&&r.jsx("p",{className:"mt-1 text-xs text-red-500",children:k.targetPort})]}),!i&&(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{htmlFor:"appType",className:"block text-sm font-medium text-gray-700 mb-1",children:["App Type ",r.jsx("span",{className:"text-red-500",children:"*"})]}),(0,r.jsxs)("select",{id:"appType",value:g,onChange:e=>f(e.target.value),className:`input w-full ${k.appType?"border-red-500":""}`,disabled:S,children:[r.jsx("option",{value:"",children:"Select app type..."}),F.map(e=>r.jsx("option",{value:e.value,children:e.label},e.value))]}),k.appType&&r.jsx("p",{className:"mt-1 text-xs text-red-500",children:k.appType})]}),(0,r.jsxs)("div",{children:[r.jsx("label",{htmlFor:"description",className:"block text-sm font-medium text-gray-700 mb-1",children:"Description"}),r.jsx("textarea",{id:"description",value:v,onChange:e=>j(e.target.value),className:"input w-full",placeholder:"Optional description...",rows:2,disabled:S})]}),(0,r.jsxs)("div",{className:"flex items-center",children:[r.jsx("input",{id:"websocketEnabled",type:"checkbox",checked:y,onChange:e=>b(e.target.checked),className:"h-4 w-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500",disabled:S}),r.jsx("label",{htmlFor:"websocketEnabled",className:"ml-2 text-sm text-gray-700",children:"Enable WebSocket support"})]}),i&&(0,r.jsxs)("div",{className:"flex items-center",children:[r.jsx("input",{id:"enabled",type:"checkbox",checked:w,onChange:e=>N(e.target.checked),className:"h-4 w-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500",disabled:S}),r.jsx("label",{htmlFor:"enabled",className:"ml-2 text-sm text-gray-700",children:"App is enabled"})]}),M&&r.jsx("div",{className:"p-3 bg-red-50 border border-red-200 rounded text-sm text-red-700",children:M}),(0,r.jsxs)("div",{className:"flex justify-end gap-2 pt-4 border-t border-gray-200",children:[r.jsx(l.zx,{type:"button",variant:"ghost",onClick:t,disabled:S,children:"Cancel"}),r.jsx(l.zx,{type:"submit",variant:"primary",loading:S,children:i?"Save Changes":"Add App"})]})]})})}function I(){let[e,t]=(0,n.useState)([]),[a,s]=(0,n.useState)(!0),[i,o]=(0,n.useState)(null),[d,c]=(0,n.useState)(!1),[u,m]=(0,n.useState)(null),h=(0,n.useCallback)(async()=>{try{o(null);let e=await fetch("/api/external-apps");if(!e.ok)throw Error("Failed to fetch external apps");let a=await e.json();t(a.apps||[])}catch(e){o(e instanceof Error?e.message:"An error occurred")}finally{s(!1)}},[]),p=(0,n.useCallback)(e=>{m(e),c(!0)},[]),x=(0,n.useCallback)(()=>{m(null),c(!0)},[]),g=(0,n.useCallback)(async e=>{try{let t=await fetch(`/api/external-apps/${e}`,{method:"DELETE"});if(!t.ok){let e=await t.json();throw Error(e.error||"Failed to delete app")}h()}catch(e){console.error("Failed to delete app:",e)}},[h]),f=(0,n.useCallback)(()=>{h()},[h]),y=(0,n.useCallback)(()=>{c(!1),m(null)},[]);return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[r.jsx("h2",{className:"text-xl font-semibold text-gray-900",children:"External Apps"}),r.jsx(l.zx,{variant:"primary",size:"sm",onClick:x,children:"+ Add App"})]}),a?r.jsx(l.Zb,{padding:"lg",children:(0,r.jsxs)("div",{className:"flex items-center justify-center py-8",children:[r.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600"}),r.jsx("span",{className:"ml-3 text-gray-600",children:"Loading apps..."})]})}):i?r.jsx(l.Zb,{padding:"lg",children:(0,r.jsxs)("div",{className:"text-center py-8",children:[r.jsx("p",{className:"text-red-600 mb-4",children:"Failed to load external apps"}),r.jsx(l.zx,{variant:"secondary",size:"sm",onClick:h,children:"Retry"})]})}):0===e.length?r.jsx(l.Zb,{padding:"lg",children:(0,r.jsxs)("div",{className:"text-center py-8",children:[r.jsx("p",{className:"text-gray-500 mb-4",children:"No external apps registered yet."}),r.jsx("p",{className:"text-sm text-gray-400 mb-4",children:"Add an external app to proxy requests to other frontend applications."}),r.jsx(l.zx,{variant:"primary",size:"sm",onClick:x,children:"Add Your First App"})]})}):r.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",children:e.map(e=>r.jsx($,{app:e,onEdit:p,onDelete:g},e.id))}),r.jsx(O,{isOpen:d,onClose:y,editApp:u,onSave:f})]})}function X(){let[e,t]=(0,n.useState)(0),a=(0,n.useCallback)(()=>{t(e=>e+1)},[]);return r.jsx(s.Vw,{children:(0,r.jsxs)("div",{className:"container-custom py-8 overflow-auto h-full",children:[(0,r.jsxs)("div",{className:"mb-8",children:[r.jsx("h1",{className:"mb-2",children:"CommandMate"}),r.jsx("p",{className:"text-lg text-gray-600",children:"Git worktree management with Claude CLI and tmux sessions"})]}),r.jsx("div",{className:"mb-8",children:r.jsx(A,{onRepositoryAdded:a})}),r.jsx(D,{},e),r.jsx("div",{className:"mt-8",children:r.jsx(I,{})})]})})}},35480:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>r});let r=(0,a(68570).createProxy)(String.raw`/home/runner/work/CommandMate/CommandMate/src/app/page.tsx#default`)}};var t=require("../webpack-runtime.js");t.C(e);var a=e=>t(t.s=e),r=t.X(0,[8948,4471,6621,434,3053,6550,9703],()=>a(37906));module.exports=r})();
@@ -0,0 +1 @@
1
+ {"version":1,"files":["../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../node_modules/next/dist/client/components/async-local-storage.js","../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../node_modules/next/dist/server/lib/trace/constants.js","../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../node_modules/next/package.json","../../../package.json","../../package.json","../chunks/3053.js","../chunks/434.js","../chunks/4471.js","../chunks/6550.js","../chunks/6621.js","../chunks/8948.js","../chunks/9703.js","../webpack-runtime.js","page_client-reference-manifest.js"]}
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"80":{"*":{"id":"41868","name":"*","chunks":[],"async":false}},"4707":{"*":{"id":"79671","name":"*","chunks":[],"async":false}},"12846":{"*":{"id":"12994","name":"*","chunks":[],"async":false}},"19107":{"*":{"id":"96114","name":"*","chunks":[],"async":false}},"36423":{"*":{"id":"84759","name":"*","chunks":[],"async":false}},"50653":{"*":{"id":"84442","name":"*","chunks":[],"async":false}},"53282":{"*":{"id":"89249","name":"*","chunks":[],"async":false}},"55434":{"*":{"id":"64138","name":"*","chunks":[],"async":false}},"61060":{"*":{"id":"9727","name":"*","chunks":[],"async":false}},"74622":{"*":{"id":"13185","name":"*","chunks":[],"async":false}},"89707":{"*":{"id":"54846","name":"*","chunks":[],"async":false}},"91795":{"*":{"id":"2108","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/client/components/app-router.js":{"id":12846,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/esm/client/components/app-router.js":{"id":12846,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/client/components/client-page.js":{"id":19107,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/esm/client/components/client-page.js":{"id":19107,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/client/components/error-boundary.js":{"id":61060,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":61060,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/client/components/layout-router.js":{"id":4707,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/esm/client/components/layout-router.js":{"id":4707,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/client/components/not-found-boundary.js":{"id":80,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":80,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/client/components/render-from-template-context.js":{"id":36423,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":36423,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/src/app/globals.css":{"id":2778,"name":"*","chunks":["816","static/chunks/816-7e340dad784be28c.js","3185","static/chunks/app/layout-37e55f11dcc8b1bf.js"],"async":false},"/home/runner/work/CommandMate/CommandMate/src/components/providers/AppProviders.tsx":{"id":91795,"name":"*","chunks":["816","static/chunks/816-7e340dad784be28c.js","3185","static/chunks/app/layout-37e55f11dcc8b1bf.js"],"async":false},"/home/runner/work/CommandMate/CommandMate/src/app/page.tsx":{"id":89707,"name":"*","chunks":["7648","static/chunks/7648-325564a6e12a3257.js","9365","static/chunks/9365-733d8c05712d2888.js","6725","static/chunks/6725-f7607851b7d57eb1.js","816","static/chunks/816-7e340dad784be28c.js","2853","static/chunks/2853-d11a80b03c9a1640.js","1931","static/chunks/app/page-9cd00de9cc0abc43.js"],"async":false},"/home/runner/work/CommandMate/CommandMate/src/app/worktrees/[id]/files/[...path]/page.tsx":{"id":50653,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/src/app/worktrees/[id]/page.tsx":{"id":53282,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/src/app/worktrees/[id]/simple-terminal/page.tsx":{"id":74622,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/src/app/worktrees/[id]/terminal/page.tsx":{"id":55434,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/home/runner/work/CommandMate/CommandMate/src/":[],"/home/runner/work/CommandMate/CommandMate/src/app/layout":["static/css/e174aa24f94ce607.css"],"/home/runner/work/CommandMate/CommandMate/src/app/page":[]}}
@@ -0,0 +1,45 @@
1
+ "use strict";(()=>{var e={};e.id=4650,e.ids=[4650],e.modules={85890:e=>{e.exports=require("better-sqlite3")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},84770:e=>{e.exports=require("crypto")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},6490:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>M,patchFetch:()=>k,requestAsyncStorage:()=>C,routeModule:()=>A,serverHooks:()=>P,staticGenerationAsyncStorage:()=>O});var a={};r.r(a),r.d(a,{DELETE:()=>D,GET:()=>g,PATCH:()=>b,POST:()=>y,PUT:()=>R,dynamic:()=>T});var n=r(49303),o=r(88716),s=r(60670),i=r(87070),p=r(97425),c=r(73068);let d={DEFAULT_MS:3e4},l=["host","connection","keep-alive","transfer-encoding","te","trailer","upgrade"],u=["transfer-encoding","connection","keep-alive"],_={BAD_GATEWAY:502,GATEWAY_TIMEOUT:504,UPGRADE_REQUIRED:426},h={GATEWAY_TIMEOUT:"The upstream server did not respond in time",BAD_GATEWAY:"Unable to connect to upstream server",UPGRADE_REQUIRED:"WebSocket connections are not supported through the proxy Route Handler"};async function E(e,t,r){let a=`http://${t.targetHost}:${t.targetPort}${r}`,n=new Headers;e.headers.forEach((e,t)=>{let r=t.toLowerCase();l.includes(r)||n.set(t,e)});try{let t=new AbortController,r=setTimeout(()=>t.abort(),d.DEFAULT_MS),o=await fetch(a,{method:e.method,headers:n,body:"GET"!==e.method&&"HEAD"!==e.method?e.body:void 0,signal:t.signal,duplex:"half"});clearTimeout(r);let s=new Headers;return o.headers.forEach((e,t)=>{let r=t.toLowerCase();u.includes(r)||s.set(t,e)}),new Response(o.body,{status:o.status,statusText:o.statusText,headers:s})}catch(e){if(e instanceof Error&&("AbortError"===e.name||"TimeoutError"===e.name))return new Response(JSON.stringify({error:"Gateway Timeout",message:h.GATEWAY_TIMEOUT}),{status:_.GATEWAY_TIMEOUT,headers:{"Content-Type":"application/json"}});return new Response(JSON.stringify({error:"Bad Gateway",message:h.BAD_GATEWAY}),{status:_.BAD_GATEWAY,headers:{"Content-Type":"application/json"}})}}async function f(e,t,r){let a=`ws://${t.targetHost}:${t.targetPort}${r}`;return new Response(JSON.stringify({error:"Upgrade Required",message:`${h.UPGRADE_REQUIRED}. Configure your WebSocket client to connect directly to ${a}`,directUrl:a}),{status:_.UPGRADE_REQUIRED,headers:{"Content-Type":"application/json",Upgrade:"websocket"}})}let w=(0,r(43895).h)("proxy");function x(e){let t=`[Proxy] ${e.method} /proxy/${e.pathPrefix}${e.path} -> ${e.statusCode} (${e.responseTime}ms)`;e.error?w.warn(t,{...e}):w.info(t,{...e})}let T="force-dynamic";async function m(e,t){let r=Date.now(),a=e.method,[n,...o]=t,s="/"+o.join("/");if(!n)return i.NextResponse.json({error:"Path prefix is required"},{status:400});try{let t=(0,p.n)(),o=(0,c.V_)(t),d=await o.getByPathPrefix(n);if(!d)return i.NextResponse.json({error:`No external app found for path prefix: ${n}`},{status:404});if(!d.enabled)return i.NextResponse.json({error:`External app "${d.displayName}" is currently disabled`},{status:503});if(function(e){let t=e.headers.get("upgrade");return t?.toLowerCase()==="websocket"}(e)){let t=await f(e,d,s),o={timestamp:Date.now(),pathPrefix:n,method:a,path:s,statusCode:t.status,responseTime:Date.now()-r,isWebSocket:!0};return x(o),t}let l=await E(e,d,s),u={timestamp:Date.now(),pathPrefix:n,method:a,path:s,statusCode:l.status,responseTime:Date.now()-r,isWebSocket:!1};return l.status>=400&&(u.error=`HTTP ${l.status}`),x(u),l}catch(e){return w.error(`[Proxy] ${a} /proxy/${n}${s} failed: ${e.message}`,{pathPrefix:n,method:a,path:s,error:e.message,stack:e.stack}),i.NextResponse.json({error:"Proxy error",message:e.message},{status:502})}}async function g(e,{params:t}){let{path:r}=await t;return m(e,r)}async function y(e,{params:t}){let{path:r}=await t;return m(e,r)}async function R(e,{params:t}){let{path:r}=await t;return m(e,r)}async function b(e,{params:t}){let{path:r}=await t;return m(e,r)}async function D(e,{params:t}){let{path:r}=await t;return m(e,r)}let A=new n.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/proxy/[...path]/route",pathname:"/proxy/[...path]",filename:"route",bundlePath:"app/proxy/[...path]/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/proxy/[...path]/route.ts",nextConfigOutput:"",userland:a}),{requestAsyncStorage:C,staticGenerationAsyncStorage:O,serverHooks:P}=A,M="/proxy/[...path]/route";function k(){return(0,s.patchFetch)({serverHooks:P,staticGenerationAsyncStorage:O})}},37848:(e,t,r)=>{r.d(t,{Hb:()=>i,LI:()=>p,dU:()=>c});var a=r(55315),n=r.n(a);let o={CM_ROOT_DIR:"MCBD_ROOT_DIR",CM_PORT:"MCBD_PORT",CM_BIND:"MCBD_BIND",CM_AUTH_TOKEN:"MCBD_AUTH_TOKEN",CM_LOG_LEVEL:"MCBD_LOG_LEVEL",CM_LOG_FORMAT:"MCBD_LOG_FORMAT",CM_LOG_DIR:"MCBD_LOG_DIR",CM_DB_PATH:"MCBD_DB_PATH"},s=new Set;function i(e){return function(e,t){let r=process.env[e];if(void 0!==r)return r;let a=process.env[t];if(void 0!==a)return s.has(t)||(console.warn(`[DEPRECATED] ${t} is deprecated, use ${e} instead`),s.add(t)),a}(e,o[e])}function p(){let e=i("CM_LOG_LEVEL")?.toLowerCase(),t=i("CM_LOG_FORMAT")?.toLowerCase();return{level:void 0!==e&&["debug","info","warn","error"].includes(e)?e:"info",format:"json"===t?"json":"text"}}function c(){let e=i("CM_ROOT_DIR")||process.cwd(),t=parseInt(i("CM_PORT")||"3000",10),r=i("CM_BIND")||"127.0.0.1",a=i("CM_AUTH_TOKEN"),o=i("CM_DB_PATH")||process.env.DATABASE_PATH||n().join(process.cwd(),"data","cm.db");if(!e)throw Error("CM_ROOT_DIR (or MCBD_ROOT_DIR) is required");if(isNaN(t)||t<1||t>65535)throw Error(`Invalid CM_PORT: ${i("CM_PORT")}. Must be between 1 and 65535.`);if("127.0.0.1"!==r&&"0.0.0.0"!==r&&"localhost"!==r)throw Error(`Invalid CM_BIND: ${r}. Must be '127.0.0.1', '0.0.0.0', or 'localhost'.`);if("0.0.0.0"===r&&!a)throw Error("CM_AUTH_TOKEN (or MCBD_AUTH_TOKEN) is required when CM_BIND=0.0.0.0");return{CM_ROOT_DIR:n().resolve(e),CM_PORT:t,CM_BIND:r,CM_AUTH_TOKEN:a,CM_DB_PATH:n().resolve(o)}}},73068:(e,t,r)=>{r.d(t,{V_:()=>s});var a=r(51172);class n{constructor(e,t=3e4){this.cache=new Map,this.allAppsCache=null,this.lastRefresh=0,this.db=e,this.ttl=t}getTTL(){return this.ttl}isStale(){return Date.now()-this.lastRefresh>this.ttl}async refresh(){let e=(0,a.J6)(this.db);for(let t of(this.cache.clear(),e))this.cache.set(t.pathPrefix,t);this.allAppsCache=e,this.lastRefresh=Date.now()}async getByPathPrefix(e){return this.isStale()&&await this.refresh(),this.cache.get(e)??null}async getAll(){return this.isStale()&&await this.refresh(),this.allAppsCache??[]}invalidate(){this.cache.clear(),this.allAppsCache=null,this.lastRefresh=0}}let o=null;function s(e){if(!o){if(!e)throw Error("Database instance required to initialize cache");o=new n(e)}return o}},51172:(e,t,r)=>{r.d(t,{F1:()=>p,J6:()=>d,JF:()=>i,j6:()=>s,ke:()=>c,uz:()=>l,vV:()=>u});var a=r(84770);class n extends Error{constructor(e,t,r){super(e),this.code=t,this.cause=r,this.name="ExternalAppDbError"}}function o(e){return{id:e.id,name:e.name,displayName:e.display_name,description:e.description??void 0,pathPrefix:e.path_prefix,targetPort:e.target_port,targetHost:e.target_host,appType:e.app_type,websocketEnabled:1===e.websocket_enabled,websocketPathPattern:e.websocket_path_pattern??void 0,enabled:1===e.enabled,createdAt:e.created_at,updatedAt:e.updated_at}}function s(e,t){let r=(0,a.randomUUID)(),o=Date.now(),s={name:t.name,display_name:t.displayName,description:t.description??null,path_prefix:t.pathPrefix,target_port:t.targetPort,target_host:t.targetHost??"localhost",app_type:t.appType,websocket_enabled:t.websocketEnabled?1:0,websocket_path_pattern:t.websocketPathPattern??null};try{return e.prepare(`
2
+ INSERT INTO external_apps (
3
+ id, name, display_name, description, path_prefix,
4
+ target_port, target_host, app_type,
5
+ websocket_enabled, websocket_path_pattern,
6
+ enabled, created_at, updated_at
7
+ )
8
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1, ?, ?)
9
+ `).run(r,s.name,s.display_name,s.description,s.path_prefix,s.target_port,s.target_host,s.app_type,s.websocket_enabled,s.websocket_path_pattern,o,o),{id:r,name:t.name,displayName:t.displayName,description:t.description,pathPrefix:t.pathPrefix,targetPort:t.targetPort,targetHost:t.targetHost??"localhost",appType:t.appType,websocketEnabled:t.websocketEnabled??!1,websocketPathPattern:t.websocketPathPattern,enabled:!0,createdAt:o,updatedAt:o}}catch(e){if(e instanceof Error&&e.message.includes("UNIQUE constraint"))throw new n(`External app with name "${t.name}" or pathPrefix "${t.pathPrefix}" already exists`,"DUPLICATE",e);throw new n(`Failed to create external app: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function i(e,t){try{let r=e.prepare(`
10
+ SELECT id, name, display_name, description, path_prefix,
11
+ target_port, target_host, app_type,
12
+ websocket_enabled, websocket_path_pattern,
13
+ enabled, created_at, updated_at
14
+ FROM external_apps
15
+ WHERE id = ?
16
+ `).get(t);if(!r)return null;return o(r)}catch(e){throw new n(`Failed to get external app by ID: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function p(e,t){try{let r=e.prepare(`
17
+ SELECT id, name, display_name, description, path_prefix,
18
+ target_port, target_host, app_type,
19
+ websocket_enabled, websocket_path_pattern,
20
+ enabled, created_at, updated_at
21
+ FROM external_apps
22
+ WHERE path_prefix = ?
23
+ `).get(t);if(!r)return null;return o(r)}catch(e){throw new n(`Failed to get external app by path prefix: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function c(e){try{return e.prepare(`
24
+ SELECT id, name, display_name, description, path_prefix,
25
+ target_port, target_host, app_type,
26
+ websocket_enabled, websocket_path_pattern,
27
+ enabled, created_at, updated_at
28
+ FROM external_apps
29
+ ORDER BY name ASC
30
+ `).all().map(o)}catch(e){throw new n(`Failed to get all external apps: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function d(e){try{return e.prepare(`
31
+ SELECT id, name, display_name, description, path_prefix,
32
+ target_port, target_host, app_type,
33
+ websocket_enabled, websocket_path_pattern,
34
+ enabled, created_at, updated_at
35
+ FROM external_apps
36
+ WHERE enabled = 1
37
+ ORDER BY name ASC
38
+ `).all().map(o)}catch(e){throw new n(`Failed to get enabled external apps: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function l(e,t,r){if(!i(e,t))throw new n(`External app not found: ${t}`,"NOT_FOUND");try{let a=Date.now(),n=["updated_at = ?"],o=[a];return void 0!==r.displayName&&(n.push("display_name = ?"),o.push(r.displayName)),void 0!==r.description&&(n.push("description = ?"),o.push(r.description)),void 0!==r.targetPort&&(n.push("target_port = ?"),o.push(r.targetPort)),void 0!==r.targetHost&&(n.push("target_host = ?"),o.push(r.targetHost)),void 0!==r.websocketEnabled&&(n.push("websocket_enabled = ?"),o.push(r.websocketEnabled?1:0)),void 0!==r.websocketPathPattern&&(n.push("websocket_path_pattern = ?"),o.push(r.websocketPathPattern)),void 0!==r.enabled&&(n.push("enabled = ?"),o.push(r.enabled?1:0)),o.push(t),e.prepare(`
39
+ UPDATE external_apps
40
+ SET ${n.join(", ")}
41
+ WHERE id = ?
42
+ `).run(...o),i(e,t)}catch(e){if(e instanceof n)throw e;throw new n(`Failed to update external app: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function u(e,t){try{e.prepare(`
43
+ DELETE FROM external_apps
44
+ WHERE id = ?
45
+ `).run(t)}catch(e){throw new n(`Failed to delete external app: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}},43895:(e,t,r)=>{r.d(t,{Y:()=>p,h:()=>c});var a=r(37848);let n=[{pattern:/Bearer\s+[A-Za-z0-9\-._~+/]+=*/gi,replacement:"Bearer [REDACTED]"},{pattern:/(password|passwd|pwd)[=:]\s*\S+/gi,replacement:"$1=[REDACTED]"},{pattern:/(token|secret|api_key|apikey|auth)[=:]\s*\S+/gi,replacement:"$1=[REDACTED]"},{pattern:/CM_AUTH_TOKEN=\S+/gi,replacement:"CM_AUTH_TOKEN=[REDACTED]"},{pattern:/MCBD_AUTH_TOKEN=\S+/gi,replacement:"MCBD_AUTH_TOKEN=[REDACTED]"},{pattern:/Authorization:\s*\S+/gi,replacement:"Authorization: [REDACTED]"},{pattern:/-----BEGIN\s+\w+\s+PRIVATE\s+KEY-----[\s\S]*?-----END\s+\w+\s+PRIVATE\s+KEY-----/g,replacement:"[SSH_KEY_REDACTED]"}],o=/password|secret|token|key|auth/i,s={debug:0,info:1,warn:2,error:3};function i(e,t,r,i,p){let c=(0,a.LI)().level;if(s[e]<s[c])return;let d=i?function e(t){if("string"==typeof t){let e=t;for(let{pattern:t,replacement:r}of n)e=e.replace(t,r);return e}if("object"==typeof t&&null!==t){if(Array.isArray(t))return t.map(e);let r={};for(let[a,n]of Object.entries(t))o.test(a)?r[a]="[REDACTED]":r[a]=e(n);return r}return t}(i):void 0,l=function(e){if("json"===(0,a.LI)().format)return JSON.stringify(e);let{timestamp:t,level:r,module:n,action:o,data:s,worktreeId:i,cliToolId:p,requestId:c}=e,d=[i,p].filter(Boolean),l=d.length>0?` [${d.join(":")}]`:"",u=c?` (${c.slice(0,8)})`:"",_=s?` ${JSON.stringify(s)}`:"";return`[${t}] [${r.toUpperCase()}] [${n}]${l}${u} ${o}${_}`}({level:e,module:t,action:r,timestamp:new Date().toISOString(),...p,...d&&{data:d}});switch(e){case"error":console.error(l);break;case"warn":console.warn(l);break;default:console.log(l)}}function p(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}function c(e){let t=r=>({debug:(t,a)=>i("debug",e,t,a,r),info:(t,a)=>i("info",e,t,a,r),warn:(t,a)=>i("warn",e,t,a,r),error:(t,a)=>i("error",e,t,a,r),withContext:e=>t({...r,...e})});return t()}}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),a=t.X(0,[8948,5972,7425],()=>r(6490));module.exports=a})();
@@ -0,0 +1 @@
1
+ {"version":1,"files":["../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/5972.js","../../../chunks/7425.js","../../../chunks/8948.js","../../../webpack-runtime.js"]}
@@ -0,0 +1 @@
1
+ (()=>{var e={};e.id=5441,e.ids=[5441],e.modules={72934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},55315:e=>{"use strict";e.exports=require("path")},17360:e=>{"use strict";e.exports=require("url")},49411:e=>{"use strict";e.exports=require("node:path")},97742:e=>{"use strict";e.exports=require("node:process")},41041:e=>{"use strict";e.exports=require("node:url")},56378:(e,r,s)=>{"use strict";s.r(r),s.d(r,{GlobalError:()=>o.a,__next_app__:()=>p,originalPathname:()=>m,pages:()=>c,routeModule:()=>x,tree:()=>d}),s(50503),s(25086),s(35866);var a=s(23191),t=s(88716),n=s(37922),o=s.n(n),l=s(95231),i={};for(let e in l)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(i[e]=()=>l[e]);s.d(r,i);let d=["",{children:["worktrees",{children:["[id]",{children:["files",{children:["[...path]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(s.bind(s,50503)),"/home/runner/work/CommandMate/CommandMate/src/app/worktrees/[id]/files/[...path]/page.tsx"]}]},{}]},{}]},{}]},{metadata:{icon:[async e=>(await Promise.resolve().then(s.bind(s,71150))).default(e)],apple:[async e=>(await Promise.resolve().then(s.bind(s,63601))).default(e)],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(s.bind(s,25086)),"/home/runner/work/CommandMate/CommandMate/src/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(s.t.bind(s,35866,23)),"next/dist/client/components/not-found-error"],metadata:{icon:[async e=>(await Promise.resolve().then(s.bind(s,71150))).default(e)],apple:[async e=>(await Promise.resolve().then(s.bind(s,63601))).default(e)],openGraph:[],twitter:[],manifest:void 0}}],c=["/home/runner/work/CommandMate/CommandMate/src/app/worktrees/[id]/files/[...path]/page.tsx"],m="/worktrees/[id]/files/[...path]/page",p={require:s,loadChunk:()=>Promise.resolve()},x=new a.AppPageRouteModule({definition:{kind:t.x.APP_PAGE,page:"/worktrees/[id]/files/[...path]/page",pathname:"/worktrees/[id]/files/[...path]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:d}})},47578:(e,r,s)=>{Promise.resolve().then(s.bind(s,84442))},84442:(e,r,s)=>{"use strict";s.r(r),s.d(r,{default:()=>c});var a=s(10326),t=s(17577),n=s(35047),o=s(77758),l=s(83173),i=s(26394),d=s(42283);function c(){let e=(0,n.useRouter)(),r=(0,n.useParams)();r.id;let s=r.path.join("/"),[c,m]=(0,t.useState)(null),[p,x]=(0,t.useState)(!0),[u,h]=(0,t.useState)(null),g=c?.extension==="md"||c?.extension==="markdown";return(0,a.jsxs)("div",{className:"min-h-screen bg-gray-50",children:[a.jsx("div",{className:"sticky top-0 z-10 bg-white border-b border-gray-200 shadow-sm",children:(0,a.jsxs)("div",{className:"max-w-7xl mx-auto px-4 py-3 flex items-center gap-3",children:[(0,a.jsxs)("button",{onClick:()=>e.back(),className:"flex items-center gap-2 text-gray-600 hover:text-gray-900 transition-colors","aria-label":"戻る",children:[a.jsx("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 19l-7-7m0 0l7-7m-7 7h18"})}),a.jsx("span",{className:"hidden sm:inline",children:"戻る"})]}),a.jsx("div",{className:"flex-1 min-w-0",children:a.jsx("h1",{className:"text-lg font-semibold text-gray-900 truncate",children:s})})]})}),(0,a.jsxs)("div",{className:"max-w-7xl mx-auto px-4 py-6",children:[p&&a.jsx(o.Zb,{padding:"lg",children:(0,a.jsxs)("div",{className:"flex items-center justify-center py-12",children:[a.jsx("div",{className:"inline-block animate-spin rounded-full h-8 w-8 border-4 border-gray-300 border-t-blue-600"}),a.jsx("p",{className:"ml-3 text-gray-600",children:"Loading file..."})]})}),u&&a.jsx(o.Zb,{padding:"lg",children:a.jsx("div",{className:"bg-red-50 border border-red-200 rounded-lg p-4",children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[a.jsx("svg",{className:"w-5 h-5 text-red-600 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),a.jsx("p",{className:"text-sm text-red-800",children:u})]})})}),c&&!p&&!u&&(0,a.jsxs)(o.Zb,{padding:"none",children:[a.jsx("div",{className:"bg-gray-100 px-4 py-3 border-b border-gray-200",children:(0,a.jsxs)("p",{className:"text-xs text-gray-600 font-mono break-all",children:[c.worktreePath,"/",c.path]})}),a.jsx("div",{className:"p-6 sm:p-8 bg-white",children:g?a.jsx("div",{className:"prose prose-slate max-w-none prose-headings:font-semibold prose-h1:text-3xl prose-h1:border-b prose-h1:pb-2 prose-h2:text-2xl prose-h2:border-b prose-h2:pb-2 prose-h3:text-xl prose-a:text-blue-600 prose-a:no-underline hover:prose-a:underline prose-pre:bg-gray-100 prose-pre:border prose-pre:border-gray-200 prose-code:text-sm prose-code:bg-gray-100 prose-code:px-1 prose-code:py-0.5 prose-code:rounded prose-code:before:content-none prose-code:after:content-none prose-img:rounded-lg prose-img:shadow-md",children:a.jsx(l.UG,{remarkPlugins:[i.Z],rehypePlugins:[d.Z],components:{code:({inline:e,className:r,children:s,...t})=>e?a.jsx("code",{className:"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono",...t,children:s}):a.jsx("code",{className:r,...t,children:s}),pre:({children:e})=>a.jsx("pre",{className:"bg-gray-50 border border-gray-200 rounded-md p-4 overflow-x-auto",children:e}),table:({children:e})=>a.jsx("div",{className:"overflow-x-auto",children:a.jsx("table",{className:"border-collapse border border-gray-300",children:e})}),th:({children:e})=>a.jsx("th",{className:"border border-gray-300 bg-gray-100 px-4 py-2 text-left font-semibold",children:e}),td:({children:e})=>a.jsx("td",{className:"border border-gray-300 px-4 py-2",children:e}),blockquote:({children:e})=>a.jsx("blockquote",{className:"border-l-4 border-gray-300 pl-4 italic text-gray-700",children:e})},children:c.content})}):a.jsx("pre",{className:"bg-gray-50 border border-gray-200 rounded-md p-4 overflow-x-auto text-sm",children:a.jsx("code",{className:`language-${c.extension}`,children:c.content})})})]})]})]})}},28676:(e,r,s)=>{"use strict";s.d(r,{u:()=>n});var a=s(10326),t=s(17577);function n({isOpen:e,onClose:r,title:s,children:n,size:o="lg",showCloseButton:l=!0,disableClose:i=!1}){let d=(0,t.useRef)(null);return e?(0,a.jsxs)("div",{className:"fixed inset-0 z-50 overflow-y-auto",children:[a.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 transition-opacity",onClick:i?void 0:r}),a.jsx("div",{className:"flex min-h-full items-center justify-center p-2 sm:p-4",children:(0,a.jsxs)("div",{ref:d,className:`relative w-full ${{sm:"max-w-[calc(100vw-2rem)] sm:max-w-md",md:"max-w-[calc(100vw-2rem)] sm:max-w-2xl",lg:"max-w-[calc(100vw-2rem)] sm:max-w-4xl",xl:"max-w-[calc(100vw-2rem)] sm:max-w-6xl",full:"max-w-[calc(100vw-2rem)] sm:max-w-[95vw]"}[o]} bg-white rounded-lg shadow-xl transform transition-all`,children:[(s||l)&&(0,a.jsxs)("div",{className:"flex items-center justify-between px-4 sm:px-6 py-3 sm:py-4 border-b border-gray-200",children:[a.jsx("h3",{className:"text-base sm:text-lg font-semibold text-gray-900 truncate pr-2",children:s}),l&&a.jsx("button",{onClick:r,className:"text-gray-400 hover:text-gray-600 transition-colors flex-shrink-0",children:a.jsx("svg",{className:"w-5 h-5 sm:w-6 sm:h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),a.jsx("div",{className:"px-4 sm:px-6 py-3 sm:py-4",children:n})]})})]}):null}},77758:(e,r,s)=>{"use strict";s.d(r,{Ct:()=>d,zx:()=>t,Zb:()=>n,aY:()=>i,Ol:()=>o,ll:()=>l,u_:()=>c.u});var a=s(10326);function t({variant:e="primary",size:r="md",fullWidth:s=!1,loading:t=!1,disabled:n,className:o="",children:l,...i}){let d=["btn",{primary:"btn-primary",secondary:"btn-secondary",danger:"btn-danger",ghost:"bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500"}[e],{sm:"btn-sm",md:"",lg:"btn-lg"}[r],s?"w-full":"",n||t?"opacity-50 cursor-not-allowed":"",o].filter(Boolean).join(" ");return(0,a.jsxs)("button",{className:d,disabled:n||t,...i,children:[t&&(0,a.jsxs)("svg",{className:"animate-spin -ml-1 mr-2 h-4 w-4",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[a.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),a.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),l]})}function n({hover:e=!1,padding:r="md",className:s="",children:t,...n}){let o=["card",e?"card-hover":"",{none:"",sm:"p-3",md:"p-4",lg:"p-6"}[r],s].filter(Boolean).join(" ");return a.jsx("div",{className:o,...n,children:t})}function o({className:e="",children:r,...s}){return a.jsx("div",{className:`mb-3 ${e}`,...s,children:r})}function l({className:e="",children:r,...s}){return a.jsx("h3",{className:`text-lg font-semibold text-gray-900 ${e}`,...s,children:r})}function i({className:e="",children:r,...s}){return a.jsx("div",{className:e,...s,children:r})}function d({variant:e="gray",dot:r=!1,className:s="",children:t,...n}){let o=["badge",{success:"badge-success",warning:"badge-warning",error:"badge-error",info:"badge-info",gray:"badge-gray"}[e],s].filter(Boolean).join(" ");return(0,a.jsxs)("span",{className:o,...n,children:[r&&a.jsx("span",{className:`mr-1.5 inline-block h-2 w-2 rounded-full ${{success:"bg-green-600",warning:"bg-yellow-600",error:"bg-red-600",info:"bg-blue-600",gray:"bg-gray-600"}[e]}`,"aria-hidden":"true"}),t]})}s(17577);var c=s(28676)},50503:(e,r,s)=>{"use strict";s.r(r),s.d(r,{default:()=>a});let a=(0,s(68570).createProxy)(String.raw`/home/runner/work/CommandMate/CommandMate/src/app/worktrees/[id]/files/[...path]/page.tsx#default`)},63601:(e,r,s)=>{"use strict";s.r(r),s.d(r,{default:()=>t});var a=s(66621);let t=e=>[{type:"image/png",sizes:"180x180",url:(0,a.fillMetadataSegment)(".",e.params,"apple-icon.png")+"?31a89e65aa4ac65b"}]},71150:(e,r,s)=>{"use strict";s.r(r),s.d(r,{default:()=>t});var a=s(66621);let t=e=>[{type:"image/png",sizes:"32x32",url:(0,a.fillMetadataSegment)(".",e.params,"icon.png")+"?32d9127ba30ee286"}]}};var r=require("../../../../../webpack-runtime.js");r.C(e);var s=e=>r(r.s=e),a=r.X(0,[8948,4471,6621,8887,6550],()=>s(56378));module.exports=a})();
@@ -0,0 +1 @@
1
+ {"version":1,"files":["../../../../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/4471.js","../../../../../chunks/6550.js","../../../../../chunks/6621.js","../../../../../chunks/8887.js","../../../../../chunks/8948.js","../../../../../webpack-runtime.js","page_client-reference-manifest.js"]}
@@ -0,0 +1 @@
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/worktrees/[id]/files/[...path]/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"80":{"*":{"id":"41868","name":"*","chunks":[],"async":false}},"4707":{"*":{"id":"79671","name":"*","chunks":[],"async":false}},"12846":{"*":{"id":"12994","name":"*","chunks":[],"async":false}},"19107":{"*":{"id":"96114","name":"*","chunks":[],"async":false}},"36423":{"*":{"id":"84759","name":"*","chunks":[],"async":false}},"50653":{"*":{"id":"84442","name":"*","chunks":[],"async":false}},"53282":{"*":{"id":"89249","name":"*","chunks":[],"async":false}},"55434":{"*":{"id":"64138","name":"*","chunks":[],"async":false}},"61060":{"*":{"id":"9727","name":"*","chunks":[],"async":false}},"74622":{"*":{"id":"13185","name":"*","chunks":[],"async":false}},"89707":{"*":{"id":"54846","name":"*","chunks":[],"async":false}},"91795":{"*":{"id":"2108","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/client/components/app-router.js":{"id":12846,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/esm/client/components/app-router.js":{"id":12846,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/client/components/client-page.js":{"id":19107,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/esm/client/components/client-page.js":{"id":19107,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/client/components/error-boundary.js":{"id":61060,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":61060,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/client/components/layout-router.js":{"id":4707,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/esm/client/components/layout-router.js":{"id":4707,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/client/components/not-found-boundary.js":{"id":80,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":80,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/client/components/render-from-template-context.js":{"id":36423,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":36423,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/src/app/globals.css":{"id":2778,"name":"*","chunks":["816","static/chunks/816-7e340dad784be28c.js","3185","static/chunks/app/layout-37e55f11dcc8b1bf.js"],"async":false},"/home/runner/work/CommandMate/CommandMate/src/components/providers/AppProviders.tsx":{"id":91795,"name":"*","chunks":["816","static/chunks/816-7e340dad784be28c.js","3185","static/chunks/app/layout-37e55f11dcc8b1bf.js"],"async":false},"/home/runner/work/CommandMate/CommandMate/src/app/page.tsx":{"id":89707,"name":"*","chunks":["7648","static/chunks/7648-325564a6e12a3257.js","9365","static/chunks/9365-733d8c05712d2888.js","6725","static/chunks/6725-f7607851b7d57eb1.js","816","static/chunks/816-7e340dad784be28c.js","2853","static/chunks/2853-d11a80b03c9a1640.js","1931","static/chunks/app/page-9cd00de9cc0abc43.js"],"async":false},"/home/runner/work/CommandMate/CommandMate/src/app/worktrees/[id]/files/[...path]/page.tsx":{"id":50653,"name":"*","chunks":["4851","static/chunks/4851-45df4d388db5623f.js","5441","static/chunks/app/worktrees/%5Bid%5D/files/%5B...path%5D/page-9e5adf57cbbbdf05.js"],"async":false},"/home/runner/work/CommandMate/CommandMate/src/app/worktrees/[id]/page.tsx":{"id":53282,"name":"*","chunks":["7648","static/chunks/7648-325564a6e12a3257.js","4851","static/chunks/4851-45df4d388db5623f.js","9365","static/chunks/9365-733d8c05712d2888.js","2957","static/chunks/2957-327e43ef4c12808f.js","816","static/chunks/816-7e340dad784be28c.js","2853","static/chunks/2853-d11a80b03c9a1640.js","130","static/chunks/app/worktrees/%5Bid%5D/page-8c6676303b63fdaf.js"],"async":false},"/home/runner/work/CommandMate/CommandMate/src/app/worktrees/[id]/simple-terminal/page.tsx":{"id":74622,"name":"*","chunks":[],"async":false},"/home/runner/work/CommandMate/CommandMate/src/app/worktrees/[id]/terminal/page.tsx":{"id":55434,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/home/runner/work/CommandMate/CommandMate/src/":[],"/home/runner/work/CommandMate/CommandMate/src/app/layout":["static/css/e174aa24f94ce607.css"],"/home/runner/work/CommandMate/CommandMate/src/app/page":[],"/home/runner/work/CommandMate/CommandMate/src/app/worktrees/[id]/page":["static/css/5eacd01f773eed7f.css"],"/home/runner/work/CommandMate/CommandMate/src/app/worktrees/[id]/files/[...path]/page":[]}}