commandmate 0.1.5 → 0.1.6

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 (330) 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/chunks/0dbeb660.3e800dfbd28be3bd.js +53 -0
  178. package/.next/static/chunks/1015.0eaa4da7f61149bc.js +59 -0
  179. package/.next/static/chunks/1098.49268c9fe1b028fa.js +1 -0
  180. package/.next/static/chunks/13.feeafc7cc620f8c4.js +1 -0
  181. package/.next/static/chunks/1423.7b1e8bf760d28078.js +1 -0
  182. package/.next/static/chunks/1582.9f8590f71ff798ca.js +55 -0
  183. package/.next/static/chunks/1817.a66d96cedb761daa.js +262 -0
  184. package/.next/static/chunks/2117-d845c2cd62e344a6.js +2 -0
  185. package/.next/static/chunks/2398.0b21e4eb7006a230.js +93 -0
  186. package/.next/static/chunks/2526.8ac62b527c9ab703.js +43 -0
  187. package/.next/static/chunks/2626.2125083a1ff3b80a.js +29 -0
  188. package/.next/static/chunks/2689.720a4874b02d4211.js +174 -0
  189. package/.next/static/chunks/2853-d11a80b03c9a1640.js +1 -0
  190. package/.next/static/chunks/2957-327e43ef4c12808f.js +1 -0
  191. package/.next/static/chunks/2cdb6380.35626fc6e41bbba4.js +136 -0
  192. package/.next/static/chunks/30d07d85-393352a92199f695.js +3 -0
  193. package/.next/static/chunks/3559.f073f72c4466ce0e.js +1 -0
  194. package/.next/static/chunks/3574.7a94c27e6a496a56.js +63 -0
  195. package/.next/static/chunks/383.20683891c9a5f2c4.js +4 -0
  196. package/.next/static/chunks/3843.3fdda732987f7bb8.js +1 -0
  197. package/.next/static/chunks/3852.822389f445c9b427.js +1 -0
  198. package/.next/static/chunks/3991.4bc063cb5be3a86c.js +1 -0
  199. package/.next/static/chunks/4212.52c1bb34fc97d0d0.js +131 -0
  200. package/.next/static/chunks/4327.3b84aa049900fdeb.js +60 -0
  201. package/.next/static/chunks/4362.7bd6f0282e49d79b.js +1 -0
  202. package/.next/static/chunks/4721.40615a5f4f32b5fb.js +1 -0
  203. package/.next/static/chunks/4851-45df4d388db5623f.js +1 -0
  204. package/.next/static/chunks/5112.17318d1c6b28044b.js +1 -0
  205. package/.next/static/chunks/5126.93fa4e797d609286.js +56 -0
  206. package/.next/static/chunks/5387.47590ac4ef66c864.js +5 -0
  207. package/.next/static/chunks/5813.4483664ba482beb1.js +1 -0
  208. package/.next/static/chunks/6143.1450875bd03a2366.js +36 -0
  209. package/.next/static/chunks/6406.9653f0d41ab85059.js +1 -0
  210. package/.next/static/chunks/656.d72f25ce819bd77e.js +149 -0
  211. package/.next/static/chunks/6678.492e73ca42b2a273.js +62 -0
  212. package/.next/static/chunks/6725-f7607851b7d57eb1.js +1 -0
  213. package/.next/static/chunks/6792.3c01ac4dda4b5c6d.js +1 -0
  214. package/.next/static/chunks/7004.808cbf327ef5955e.js +1 -0
  215. package/.next/static/chunks/7290.09ef84cf94f90c4d.js +1 -0
  216. package/.next/static/chunks/7415.6b481c2baf363262.js +148 -0
  217. package/.next/static/chunks/7648-325564a6e12a3257.js +1 -0
  218. package/.next/static/chunks/7665.47fccad04449a8f9.js +215 -0
  219. package/.next/static/chunks/7753.6bdce86b7fde3d10.js +166 -0
  220. package/.next/static/chunks/8125.245a9df052d274fb.js +1 -0
  221. package/.next/static/chunks/816-7e340dad784be28c.js +1 -0
  222. package/.next/static/chunks/8288.4883743fa40672e2.js +24 -0
  223. package/.next/static/chunks/8522.1607e96011c66877.js +1 -0
  224. package/.next/static/chunks/8772.863c564498d88487.js +1 -0
  225. package/.next/static/chunks/8841.dadeb1ece8e46004.js +1 -0
  226. package/.next/static/chunks/8885.f8d9912b40d74811.js +1 -0
  227. package/.next/static/chunks/90542734.c1553d0fe7fc14fc.js +1 -0
  228. package/.next/static/chunks/9365-733d8c05712d2888.js +1 -0
  229. package/.next/static/chunks/9552.b7dfb7903ead934b.js +1 -0
  230. package/.next/static/chunks/9834.295b45635ce04f5e.js +24 -0
  231. package/.next/static/chunks/app/_not-found/page-a9d04e58c81115ec.js +1 -0
  232. package/.next/static/chunks/app/layout-37e55f11dcc8b1bf.js +1 -0
  233. package/.next/static/chunks/app/page-9cd00de9cc0abc43.js +1 -0
  234. package/.next/static/chunks/app/worktrees/[id]/files/[...path]/page-9e5adf57cbbbdf05.js +1 -0
  235. package/.next/static/chunks/app/worktrees/[id]/page-8c6676303b63fdaf.js +1 -0
  236. package/.next/static/chunks/app/worktrees/[id]/simple-terminal/page-16feb3e86e42f4d1.js +1 -0
  237. package/.next/static/chunks/app/worktrees/[id]/terminal/page-be802baffc84dbd2.js +1 -0
  238. package/.next/static/chunks/d3ac728e.6c9c508274d4d2d5.js +1 -0
  239. package/.next/static/chunks/fd9d1056-bbe86e4ae099d5cd.js +1 -0
  240. package/.next/static/chunks/framework-8e0e0f4a6b83a956.js +1 -0
  241. package/.next/static/chunks/main-a960f4a5e1a2f598.js +1 -0
  242. package/.next/static/chunks/main-app-420d93e43682fee5.js +1 -0
  243. package/.next/static/chunks/pages/_app-3c9ca398d360b709.js +1 -0
  244. package/.next/static/chunks/pages/_error-cf5ca766ac8f493f.js +1 -0
  245. package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  246. package/.next/static/chunks/webpack-3fc79fab9bb738d7.js +1 -0
  247. package/.next/static/css/5eacd01f773eed7f.css +11 -0
  248. package/.next/static/css/85fa6dafca566008.css +1 -0
  249. package/.next/static/css/e174aa24f94ce607.css +3 -0
  250. package/.next/static/pQTquVjewvoJa7BML07ip/_buildManifest.js +1 -0
  251. package/.next/static/pQTquVjewvoJa7BML07ip/_ssgManifest.js +1 -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/server/server.js +123 -0
  297. package/dist/server/src/lib/claude-output.js +33 -0
  298. package/dist/server/src/lib/claude-session.js +312 -0
  299. package/dist/server/src/lib/cli-patterns.js +137 -0
  300. package/dist/server/src/lib/cli-session.js +73 -0
  301. package/dist/server/src/lib/cli-tools/base.js +51 -0
  302. package/dist/server/src/lib/cli-tools/claude.js +65 -0
  303. package/dist/server/src/lib/cli-tools/codex.js +132 -0
  304. package/dist/server/src/lib/cli-tools/gemini.js +122 -0
  305. package/dist/server/src/lib/cli-tools/index.js +22 -0
  306. package/dist/server/src/lib/cli-tools/manager.js +143 -0
  307. package/dist/server/src/lib/cli-tools/types.js +5 -0
  308. package/dist/server/src/lib/conversation-logger.js +25 -0
  309. package/dist/server/src/lib/db-instance.js +51 -0
  310. package/dist/server/src/lib/db-migrations.js +777 -0
  311. package/dist/server/src/lib/db.js +835 -0
  312. package/dist/server/src/lib/env.js +179 -0
  313. package/dist/server/src/lib/log-manager.js +234 -0
  314. package/dist/server/src/lib/logger.js +232 -0
  315. package/dist/server/src/lib/prompt-detector.js +285 -0
  316. package/dist/server/src/lib/response-poller.js +638 -0
  317. package/dist/server/src/lib/tmux.js +299 -0
  318. package/dist/server/src/lib/worktrees.js +231 -0
  319. package/dist/server/src/lib/ws-server.js +323 -0
  320. package/dist/server/src/types/clone.js +39 -0
  321. package/dist/server/src/types/conversation.js +9 -0
  322. package/dist/server/src/types/external-apps.js +6 -0
  323. package/dist/server/src/types/infinite-messages.js +65 -0
  324. package/dist/server/src/types/markdown-editor.js +94 -0
  325. package/dist/server/src/types/models.js +5 -0
  326. package/dist/server/src/types/sidebar.js +89 -0
  327. package/dist/server/src/types/slash-commands.js +47 -0
  328. package/dist/server/src/types/ui-actions.js +8 -0
  329. package/dist/server/src/types/ui-state.js +62 -0
  330. package/package.json +8 -4
@@ -0,0 +1,45 @@
1
+ "use strict";(()=>{var e={};e.id=4720,e.ids=[4720],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")},90783:(e,t,a)=>{a.r(t),a.d(t,{originalPathname:()=>m,patchFetch:()=>b,requestAsyncStorage:()=>_,routeModule:()=>u,serverHooks:()=>E,staticGenerationAsyncStorage:()=>w});var r={};a.r(r),a.d(r,{GET:()=>h,dynamic:()=>l});var n=a(49303),o=a(88716),p=a(60670),s=a(87070),i=a(97425),d=a(51172);let l="force-dynamic";async function c(e,t){let a=`http://${e}:${t}/`,r=Date.now();try{let e=new AbortController,t=setTimeout(()=>e.abort(),5e3);await fetch(a,{method:"HEAD",signal:e.signal}),clearTimeout(t);let n=Date.now()-r;return{healthy:!0,responseTime:n}}catch(t){let e=Date.now()-r;if(t instanceof Error){if("AbortError"===t.name)return{healthy:!1,responseTime:e,error:"Connection timeout"};return{healthy:!1,responseTime:e,error:t.message}}return{healthy:!1,responseTime:e,error:"Unknown error"}}}async function h(e,{params:t}){try{let{id:e}=await t,a=(0,i.n)(),r=(0,d.JF)(a,e);if(!r)return s.NextResponse.json({error:`External app not found: ${e}`},{status:404});let n=await c(r.targetHost,r.targetPort),o={id:r.id,healthy:n.healthy,responseTime:n.responseTime,lastChecked:Date.now(),error:n.error};return s.NextResponse.json({health:o},{status:200})}catch(e){return console.error("Error checking external app health:",e),s.NextResponse.json({error:"Failed to check external app health"},{status:500})}}let u=new n.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/external-apps/[id]/health/route",pathname:"/api/external-apps/[id]/health",filename:"route",bundlePath:"app/api/external-apps/[id]/health/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/external-apps/[id]/health/route.ts",nextConfigOutput:"",userland:r}),{requestAsyncStorage:_,staticGenerationAsyncStorage:w,serverHooks:E}=u,m="/api/external-apps/[id]/health/route";function b(){return(0,p.patchFetch)({serverHooks:E,staticGenerationAsyncStorage:w})}},51172:(e,t,a)=>{a.d(t,{F1:()=>i,J6:()=>l,JF:()=>s,j6:()=>p,ke:()=>d,uz:()=>c,vV:()=>h});var r=a(84770);class n extends Error{constructor(e,t,a){super(e),this.code=t,this.cause=a,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 p(e,t){let a=(0,r.randomUUID)(),o=Date.now(),p={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(a,p.name,p.display_name,p.description,p.path_prefix,p.target_port,p.target_host,p.app_type,p.websocket_enabled,p.websocket_path_pattern,o,o),{id:a,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 s(e,t){try{let a=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(!a)return null;return o(a)}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 i(e,t){try{let a=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(!a)return null;return o(a)}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 d(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 l(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 c(e,t,a){if(!s(e,t))throw new n(`External app not found: ${t}`,"NOT_FOUND");try{let r=Date.now(),n=["updated_at = ?"],o=[r];return void 0!==a.displayName&&(n.push("display_name = ?"),o.push(a.displayName)),void 0!==a.description&&(n.push("description = ?"),o.push(a.description)),void 0!==a.targetPort&&(n.push("target_port = ?"),o.push(a.targetPort)),void 0!==a.targetHost&&(n.push("target_host = ?"),o.push(a.targetHost)),void 0!==a.websocketEnabled&&(n.push("websocket_enabled = ?"),o.push(a.websocketEnabled?1:0)),void 0!==a.websocketPathPattern&&(n.push("websocket_path_pattern = ?"),o.push(a.websocketPathPattern)),void 0!==a.enabled&&(n.push("enabled = ?"),o.push(a.enabled?1:0)),o.push(t),e.prepare(`
39
+ UPDATE external_apps
40
+ SET ${n.join(", ")}
41
+ WHERE id = ?
42
+ `).run(...o),s(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 h(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)}}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var a=e=>t(t.s=e),r=t.X(0,[8948,5972,7425],()=>a(90783));module.exports=r})();
@@ -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,45 @@
1
+ "use strict";(()=>{var e={};e.id=3038,e.ids=[3038],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")},5179:(e,t,a)=>{a.r(t),a.d(t,{originalPathname:()=>m,patchFetch:()=>x,requestAsyncStorage:()=>g,routeModule:()=>b,serverHooks:()=>E,staticGenerationAsyncStorage:()=>w});var r={};a.r(r),a.d(r,{DELETE:()=>f,GET:()=>u,PATCH:()=>_,dynamic:()=>c});var n=a(49303),o=a(88716),s=a(60670),p=a(87070),i=a(97425),d=a(51172),l=a(73068);let c="force-dynamic",h=["localhost","127.0.0.1"];async function u(e,{params:t}){try{let{id:e}=await t,a=(0,i.n)(),r=(0,d.JF)(a,e);if(!r)return p.NextResponse.json({error:`External app not found: ${e}`},{status:404});return p.NextResponse.json({app:r},{status:200})}catch(e){return console.error("Error fetching external app:",e),p.NextResponse.json({error:"Failed to fetch external app"},{status:500})}}async function _(e,{params:t}){try{let{id:a}=await t,r=(0,i.n)();if(!(0,d.JF)(r,a))return p.NextResponse.json({error:`External app not found: ${a}`},{status:404});let n=await e.json(),o=function(e){let t=[];return e&&"object"==typeof e&&(void 0!==e.targetPort&&("number"!=typeof e.targetPort?t.push({field:"targetPort",message:"targetPort must be a number"}):(e.targetPort<1024||e.targetPort>65535)&&t.push({field:"targetPort",message:"targetPort must be between 1024 and 65535"})),void 0===e.targetHost||"string"!=typeof e.targetHost||h.includes(e.targetHost)||t.push({field:"targetHost",message:`targetHost must be one of: ${h.join(", ")}`})),t}(n);if(o.length>0)return p.NextResponse.json({error:o.map(e=>`${e.field}: ${e.message}`).join("; "),validationErrors:o},{status:400});let s={};void 0!==n.displayName&&(s.displayName=n.displayName),void 0!==n.description&&(s.description=n.description),void 0!==n.targetPort&&(s.targetPort=n.targetPort),void 0!==n.targetHost&&(s.targetHost=n.targetHost),void 0!==n.websocketEnabled&&(s.websocketEnabled=n.websocketEnabled),void 0!==n.websocketPathPattern&&(s.websocketPathPattern=n.websocketPathPattern),void 0!==n.enabled&&(s.enabled=n.enabled);let c=(0,d.uz)(r,a,s);try{(0,l.V_)(r).invalidate()}catch{}return p.NextResponse.json({app:c},{status:200})}catch(e){return console.error("Error updating external app:",e),p.NextResponse.json({error:"Failed to update external app"},{status:500})}}async function f(e,{params:t}){try{let{id:e}=await t,a=(0,i.n)();if(!(0,d.JF)(a,e))return p.NextResponse.json({error:`External app not found: ${e}`},{status:404});(0,d.vV)(a,e);try{(0,l.V_)(a).invalidate()}catch{}return new Response(null,{status:204})}catch(e){return console.error("Error deleting external app:",e),p.NextResponse.json({error:"Failed to delete external app"},{status:500})}}let b=new n.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/external-apps/[id]/route",pathname:"/api/external-apps/[id]",filename:"route",bundlePath:"app/api/external-apps/[id]/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/external-apps/[id]/route.ts",nextConfigOutput:"",userland:r}),{requestAsyncStorage:g,staticGenerationAsyncStorage:w,serverHooks:E}=b,m="/api/external-apps/[id]/route";function x(){return(0,s.patchFetch)({serverHooks:E,staticGenerationAsyncStorage:w})}},73068:(e,t,a)=>{a.d(t,{V_:()=>s});var r=a(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,r.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,a)=>{a.d(t,{F1:()=>i,J6:()=>l,JF:()=>p,j6:()=>s,ke:()=>d,uz:()=>c,vV:()=>h});var r=a(84770);class n extends Error{constructor(e,t,a){super(e),this.code=t,this.cause=a,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 a=(0,r.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(a,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:a,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 p(e,t){try{let a=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(!a)return null;return o(a)}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 i(e,t){try{let a=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(!a)return null;return o(a)}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 d(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 l(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 c(e,t,a){if(!p(e,t))throw new n(`External app not found: ${t}`,"NOT_FOUND");try{let r=Date.now(),n=["updated_at = ?"],o=[r];return void 0!==a.displayName&&(n.push("display_name = ?"),o.push(a.displayName)),void 0!==a.description&&(n.push("description = ?"),o.push(a.description)),void 0!==a.targetPort&&(n.push("target_port = ?"),o.push(a.targetPort)),void 0!==a.targetHost&&(n.push("target_host = ?"),o.push(a.targetHost)),void 0!==a.websocketEnabled&&(n.push("websocket_enabled = ?"),o.push(a.websocketEnabled?1:0)),void 0!==a.websocketPathPattern&&(n.push("websocket_path_pattern = ?"),o.push(a.websocketPathPattern)),void 0!==a.enabled&&(n.push("enabled = ?"),o.push(a.enabled?1:0)),o.push(t),e.prepare(`
39
+ UPDATE external_apps
40
+ SET ${n.join(", ")}
41
+ WHERE id = ?
42
+ `).run(...o),p(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 h(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)}}}};var t=require("../../../../webpack-runtime.js");t.C(e);var a=e=>t(t.s=e),r=t.X(0,[8948,5972,7425],()=>a(5179));module.exports=r})();
@@ -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,45 @@
1
+ "use strict";(()=>{var e={};e.id=3494,e.ids=[3494],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")},51495:(e,t,a)=>{a.r(t),a.d(t,{originalPathname:()=>E,patchFetch:()=>P,requestAsyncStorage:()=>x,routeModule:()=>b,serverHooks:()=>w,staticGenerationAsyncStorage:()=>y});var r={};a.r(r),a.d(r,{GET:()=>m,POST:()=>g,dynamic:()=>_});var s=a(49303),n=a(88716),p=a(60670),o=a(87070),i=a(97425),d=a(51172),l=a(73068);let c={MIN:1024,MAX:65535},h=["localhost","127.0.0.1"],u=/^[a-zA-Z0-9-]+$/,f=["sveltekit","streamlit","nextjs","other"],_="force-dynamic";async function m(){try{let e=(0,i.n)(),t=(0,d.ke)(e);return o.NextResponse.json({apps:t},{status:200})}catch(e){return console.error("Error fetching external apps:",e),o.NextResponse.json({error:"Failed to fetch external apps"},{status:500})}}async function g(e){try{let t=(0,i.n)(),a=await e.json(),r=function(e){var t,a,r,s;let n=[];return e&&"object"==typeof e?(((e.name&&"string"==typeof e.name||n.push({field:"name",message:"name is required and must be a string"}),e.displayName&&"string"==typeof e.displayName||n.push({field:"displayName",message:"displayName is required and must be a string"}),e.pathPrefix&&"string"==typeof e.pathPrefix)?"string"==typeof(t=e.pathPrefix)&&t.length>0&&u.test(t)||n.push({field:"pathPrefix",message:"pathPrefix must contain only alphanumeric characters and hyphens"}):n.push({field:"pathPrefix",message:"pathPrefix is required and must be a string"}),void 0===e.targetPort||"number"!=typeof e.targetPort?n.push({field:"targetPort",message:"targetPort is required and must be a number"}):(s=e.targetPort,Number.isInteger(s)&&s>=c.MIN&&s<=c.MAX||n.push({field:"targetPort",message:`targetPort must be between ${c.MIN} and ${c.MAX}`})),e.appType&&"string"==typeof e.appType)?(a=e.appType,f.includes(a)||n.push({field:"appType",message:`appType must be one of: ${f.join(", ")}`})):n.push({field:"appType",message:"appType is required and must be a string"}),void 0===e.targetHost||"string"!=typeof e.targetHost||(r=e.targetHost,h.includes(r)||n.push({field:"targetHost",message:`targetHost must be one of: ${h.join(", ")}`})),n):(n.push({field:"body",message:"Request body is required"}),n)}(a);if(r.length>0)return o.NextResponse.json({error:r.map(e=>`${e.field}: ${e.message}`).join("; "),validationErrors:r},{status:400});let s={name:a.name,displayName:a.displayName,description:a.description,pathPrefix:a.pathPrefix,targetPort:a.targetPort,targetHost:a.targetHost||"localhost",appType:a.appType,websocketEnabled:a.websocketEnabled||!1,websocketPathPattern:a.websocketPathPattern};try{if((0,d.F1)(t,s.pathPrefix))return o.NextResponse.json({error:`An app with pathPrefix "${s.pathPrefix}" already exists`},{status:409});let e=(0,d.j6)(t,s);try{(0,l.V_)(t).invalidate()}catch{}return o.NextResponse.json({app:e},{status:201})}catch(e){if(e instanceof Error&&e.message.includes("UNIQUE constraint"))return o.NextResponse.json({error:`An app with name "${s.name}" or pathPrefix "${s.pathPrefix}" already exists`},{status:409});throw e}}catch(e){return console.error("Error creating external app:",e),o.NextResponse.json({error:"Failed to create external app"},{status:500})}}let b=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/external-apps/route",pathname:"/api/external-apps",filename:"route",bundlePath:"app/api/external-apps/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/external-apps/route.ts",nextConfigOutput:"",userland:r}),{requestAsyncStorage:x,staticGenerationAsyncStorage:y,serverHooks:w}=b,E="/api/external-apps/route";function P(){return(0,p.patchFetch)({serverHooks:w,staticGenerationAsyncStorage:y})}},73068:(e,t,a)=>{a.d(t,{V_:()=>p});var r=a(51172);class s{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,r.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 n=null;function p(e){if(!n){if(!e)throw Error("Database instance required to initialize cache");n=new s(e)}return n}},51172:(e,t,a)=>{a.d(t,{F1:()=>i,J6:()=>l,JF:()=>o,j6:()=>p,ke:()=>d,uz:()=>c,vV:()=>h});var r=a(84770);class s extends Error{constructor(e,t,a){super(e),this.code=t,this.cause=a,this.name="ExternalAppDbError"}}function n(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 p(e,t){let a=(0,r.randomUUID)(),n=Date.now(),p={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(a,p.name,p.display_name,p.description,p.path_prefix,p.target_port,p.target_host,p.app_type,p.websocket_enabled,p.websocket_path_pattern,n,n),{id:a,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:n,updatedAt:n}}catch(e){if(e instanceof Error&&e.message.includes("UNIQUE constraint"))throw new s(`External app with name "${t.name}" or pathPrefix "${t.pathPrefix}" already exists`,"DUPLICATE",e);throw new s(`Failed to create external app: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function o(e,t){try{let a=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(!a)return null;return n(a)}catch(e){throw new s(`Failed to get external app by ID: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function i(e,t){try{let a=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(!a)return null;return n(a)}catch(e){throw new s(`Failed to get external app by path prefix: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function d(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(n)}catch(e){throw new s(`Failed to get all external apps: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function l(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(n)}catch(e){throw new s(`Failed to get enabled external apps: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function c(e,t,a){if(!o(e,t))throw new s(`External app not found: ${t}`,"NOT_FOUND");try{let r=Date.now(),s=["updated_at = ?"],n=[r];return void 0!==a.displayName&&(s.push("display_name = ?"),n.push(a.displayName)),void 0!==a.description&&(s.push("description = ?"),n.push(a.description)),void 0!==a.targetPort&&(s.push("target_port = ?"),n.push(a.targetPort)),void 0!==a.targetHost&&(s.push("target_host = ?"),n.push(a.targetHost)),void 0!==a.websocketEnabled&&(s.push("websocket_enabled = ?"),n.push(a.websocketEnabled?1:0)),void 0!==a.websocketPathPattern&&(s.push("websocket_path_pattern = ?"),n.push(a.websocketPathPattern)),void 0!==a.enabled&&(s.push("enabled = ?"),n.push(a.enabled?1:0)),n.push(t),e.prepare(`
39
+ UPDATE external_apps
40
+ SET ${s.join(", ")}
41
+ WHERE id = ?
42
+ `).run(...n),o(e,t)}catch(e){if(e instanceof s)throw e;throw new s(`Failed to update external app: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}function h(e,t){try{e.prepare(`
43
+ DELETE FROM external_apps
44
+ WHERE id = ?
45
+ `).run(t)}catch(e){throw new s(`Failed to delete external app: ${e instanceof Error?e.message:"Unknown error"}`,"DB_ERROR",e instanceof Error?e:void 0)}}}};var t=require("../../../webpack-runtime.js");t.C(e);var a=e=>t(t.s=e),r=t.X(0,[8948,5972,7425],()=>a(51495));module.exports=r})();
@@ -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,19 @@
1
+ (()=>{var e={};e.id=2568,e.ids=[2568],e.modules={85890:e=>{"use strict";e.exports=require("better-sqlite3")},20399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},78893:e=>{"use strict";e.exports=require("buffer")},61282:e=>{"use strict";e.exports=require("child_process")},84770:e=>{"use strict";e.exports=require("crypto")},17702:e=>{"use strict";e.exports=require("events")},92048:e=>{"use strict";e.exports=require("fs")},20629:e=>{"use strict";e.exports=require("fs/promises")},32615:e=>{"use strict";e.exports=require("http")},35240:e=>{"use strict";e.exports=require("https")},98216:e=>{"use strict";e.exports=require("net")},55315:e=>{"use strict";e.exports=require("path")},76162:e=>{"use strict";e.exports=require("stream")},82452:e=>{"use strict";e.exports=require("tls")},17360:e=>{"use strict";e.exports=require("url")},21764:e=>{"use strict";e.exports=require("util")},71568:e=>{"use strict";e.exports=require("zlib")},58359:()=>{},93739:()=>{},74859:(e,t,r)=>{"use strict";r.r(t),r.d(t,{originalPathname:()=>g,patchFetch:()=>_,requestAsyncStorage:()=>y,routeModule:()=>p,serverHooks:()=>h,staticGenerationAsyncStorage:()=>C});var o={};r.r(o),r.d(o,{POST:()=>f});var s=r(49303),a=r(88716),n=r(60670),i=r(87070),c=r(97425),u=r(75748),l=r(62648),d=r(25079),m=r(89287),w=r(76966);async function f(e){try{let t;let r=(0,c.n)(),o=await e.json();if(!o.worktreeId||"string"!=typeof o.worktreeId)return i.NextResponse.json({error:"worktreeId is required and must be a string"},{status:400});if(!(0,u.gU)(r,o.worktreeId))return i.NextResponse.json({error:`Worktree '${o.worktreeId}' not found`},{status:404});try{t=await (0,l.Lm)(o.worktreeId,1e4)}catch(t){console.error("Failed to capture Claude output:",t);let e=t instanceof Error?t.message:"Unknown error";return i.NextResponse.json({error:`Failed to capture Claude output: ${e}`},{status:500})}let s=(0,m.Z)(t);await (0,w.o)(r,o.worktreeId,s.content,"claude");let a=(0,u.tn)(r,{worktreeId:o.worktreeId,role:"assistant",content:s.content,summary:s.summary,timestamp:new Date,logFileName:s.logFileName,requestId:s.requestId,messageType:"normal",cliToolId:"claude"}),n=t.split("\n").length;return(0,u.IH)(r,o.worktreeId,"claude",n),(0,d.ps)("message",{worktreeId:o.worktreeId,message:a}),console.log(`✓ Processed Claude response for worktree: ${o.worktreeId}`),i.NextResponse.json({success:!0,messageId:a.id,summary:s.summary},{status:200})}catch(e){return console.error("Error processing Claude done hook:",e),i.NextResponse.json({error:"Failed to process Claude done hook"},{status:500})}}let p=new s.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/api/hooks/claude-done/route",pathname:"/api/hooks/claude-done",filename:"route",bundlePath:"app/api/hooks/claude-done/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/hooks/claude-done/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:y,staticGenerationAsyncStorage:C,serverHooks:h}=p,g="/api/hooks/claude-done/route";function _(){return(0,n.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:C})}},89287:(e,t,r)=>{"use strict";r.d(t,{Z:()=>n});let o=/📄 Session log: (.+?\/([^\/\s]+\.jsonl))/,s=/Request ID: ([^\s\n]+)/,a=/Summary: (.+?)(?:\n─|$)/s;function n(e){let t={content:e},r=o.exec(e);r&&(t.logFileName=r[2]);let n=s.exec(e);n&&(t.requestId=n[1]);let i=a.exec(e);return i&&(t.summary=i[1].trim()),t}},62648:(e,t,r)=>{"use strict";r.d(t,{Lm:()=>w,Uv:()=>u,YI:()=>l,_f:()=>f,xd:()=>m,ym:()=>d});var o=r(10927),s=r(61282);let a=(0,r(21764).promisify)(s.exec),n=null;async function i(){if(n)return n;if(process.env.CLAUDE_PATH)return n=process.env.CLAUDE_PATH;try{let{stdout:e}=await a("which claude",{timeout:5e3});return n=e.trim()}catch{for(let e of["/opt/homebrew/bin/claude","/usr/local/bin/claude","/usr/bin/claude"])try{return await a(`test -x "${e}"`,{timeout:1e3}),n=e}catch{}throw Error("Claude CLI not found. Set CLAUDE_PATH environment variable or install Claude CLI.")}}function c(e){return`mcbd-claude-${e}`}async function u(){try{return await a("which claude",{timeout:5e3}),!0}catch{return!1}}async function l(e){let t=c(e);return await (0,o.Hk)(t)}async function d(e){let{worktreeId:t,worktreePath:r}=e;if(!await u())throw Error("Claude CLI is not installed or not in PATH");let s=c(t);if(await (0,o.Hk)(s)){console.log(`Claude session ${s} already exists`);return}try{await (0,o.ed)({sessionName:s,workingDirectory:r,historyLimit:5e4});let e=await i();await (0,o.Is)(s,e,!0);let t=Date.now();for(;Date.now()-t<1e4;){await new Promise(e=>setTimeout(e,500));try{let e=await (0,o.xq)(s,{startLine:-50});if(/^>\s*$/m.test(e)||/^─{10,}$/m.test(e)){console.log(`✓ Claude initialized in ${Date.now()-t}ms`);break}}catch{}}console.log(`✓ Started Claude session: ${s}`)}catch(t){let e=t instanceof Error?t.message:String(t);throw Error(`Failed to start Claude session: ${e}`)}}async function m(e,t){let r=c(e);if(!await (0,o.Hk)(r))throw Error(`Claude session ${r} does not exist. Start the session first.`);try{await (0,o.Is)(r,t,!1),await new Promise(e=>setTimeout(e,100)),await a(`tmux send-keys -t "${r}" C-m`),await new Promise(e=>setTimeout(e,200)),console.log(`✓ Sent message to Claude session: ${r}`)}catch(t){let e=t instanceof Error?t.message:String(t);throw Error(`Failed to send message to Claude: ${e}`)}}async function w(e,t=1e3){let r=c(e);if(!await (0,o.Hk)(r))throw Error(`Claude session ${r} does not exist`);try{return await (0,o.xq)(r,{startLine:-t})}catch(t){let e=t instanceof Error?t.message:String(t);throw Error(`Failed to capture Claude output: ${e}`)}}async function f(e){let t=c(e);try{await (0,o.Hk)(t)&&(await (0,o.Is)(t,"",!1),await a(`tmux send-keys -t "${t}" C-d`),await new Promise(e=>setTimeout(e,500)));let e=await (0,o.AJ)(t);return e&&console.log(`✓ Stopped Claude session: ${t}`),e}catch(t){let e=t instanceof Error?t.message:String(t);return console.error(`Error stopping Claude session: ${e}`),!1}}},76966:(e,t,r)=>{"use strict";r.d(t,{o:()=>a});var o=r(75748),s=r(98636);async function a(e,t,r,a="claude"){let n=(0,o.vX)(e,t);if(n)try{await (0,s.xN)(t,n.content,r,a)}catch(e){console.error("[recordClaudeConversation] Failed to create log file:",e)}}},37848:(e,t,r)=>{"use strict";r.d(t,{Hb:()=>i,LI:()=>c,dU:()=>u});var o=r(55315),s=r.n(o);let a={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"},n=new Set;function i(e){return function(e,t){let r=process.env[e];if(void 0!==r)return r;let o=process.env[t];if(void 0!==o)return n.has(t)||(console.warn(`[DEPRECATED] ${t} is deprecated, use ${e} instead`),n.add(t)),o}(e,a[e])}function c(){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 u(){let e=i("CM_ROOT_DIR")||process.cwd(),t=parseInt(i("CM_PORT")||"3000",10),r=i("CM_BIND")||"127.0.0.1",o=i("CM_AUTH_TOKEN"),a=i("CM_DB_PATH")||process.env.DATABASE_PATH||s().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&&!o)throw Error("CM_AUTH_TOKEN (or MCBD_AUTH_TOKEN) is required when CM_BIND=0.0.0.0");return{CM_ROOT_DIR:s().resolve(e),CM_PORT:t,CM_BIND:r,CM_AUTH_TOKEN:o,CM_DB_PATH:s().resolve(a)}}},98636:(e,t,r)=>{"use strict";r.d(t,{e7:()=>m,xN:()=>d});var o=r(20629),s=r.n(o),a=r(55315),n=r.n(a),i=r(73853);let c=(0,r(37848).Hb)("CM_LOG_DIR")||n().join(process.cwd(),"data","logs");function u(e="claude"){return n().join(c,e)}async function l(e="claude"){let t=u(e);try{await s().access(t)}catch{await s().mkdir(t,{recursive:!0})}}async function d(e,t,r,o="claude"){await l(o);let a=function(e,t="claude"){let r=(0,i.WU)(new Date,"yyyy-MM-dd"),o=`${e}-${r}.md`,s=u(t);return n().join(s,o)}(e,o),c=(0,i.WU)(new Date,"yyyy-MM-dd HH:mm:ss"),d="";try{d=await s().readFile(a,"utf-8")}catch{let t="claude"===o?"Claude Code":"codex"===o?"Codex CLI":"Gemini CLI";d=`# ${t} Conversation Log: ${e}
2
+
3
+ Created: ${c}
4
+
5
+ ---
6
+
7
+ `}return d+=`## Conversation at ${c}
8
+
9
+ ### User
10
+
11
+ ${t}
12
+
13
+ ### ${"claude"===o?"Claude":"codex"===o?"Codex":"Gemini"}
14
+
15
+ ${r}
16
+
17
+ ---
18
+
19
+ `,await s().writeFile(a,d,"utf-8"),a}async function m(e,t="all"){let r=[];for(let o of"all"===t?["claude","codex","gemini"]:[t]){await l(o);let t=u(o);try{let o=(await s().readdir(t)).filter(t=>t.startsWith(`${e}-`)&&t.endsWith(".md")).map(e=>n().join(t,e));r.push(...o)}catch{}}return r.sort().reverse()}},10927:(e,t,r)=>{"use strict";r.d(t,{AJ:()=>u,Hk:()=>a,Is:()=>i,ZV:()=>l,ed:()=>n,xq:()=>c});var o=r(61282);let s=(0,r(21764).promisify)(o.exec);async function a(e){try{return await s(`tmux has-session -t "${e}"`,{timeout:5e3}),!0}catch{return!1}}async function n(e,t){let r,o,a;"string"==typeof e?(r=e,o=t,a=5e4):(r=e.sessionName,o=e.workingDirectory,a=e.historyLimit||5e4);try{await s(`tmux new-session -d -s "${r}" -c "${o}"`,{timeout:5e3}),await s(`tmux set-option -t "${r}" history-limit ${a}`,{timeout:5e3})}catch(t){let e=t instanceof Error?t.message:String(t);throw Error(`Failed to create tmux session: ${e}`)}}async function i(e,t,r=!0){let o=t.replace(/'/g,"'\\''"),a=r?`tmux send-keys -t "${e}" '${o}' C-m`:`tmux send-keys -t "${e}" '${o}'`;try{await s(a,{timeout:5e3})}catch(t){let e=t instanceof Error?t.message:String(t);throw Error(`Failed to send keys to tmux session: ${e}`)}}async function c(e,t){let r,o;"number"==typeof t?(r=-t,o="-"):t?(r=t.startLine??-1e4,o=t.endLine??"-"):(r=-1e3,o="-");try{let{stdout:t}=await s(`tmux capture-pane -t "${e}" -p -e -S ${r} -E ${o}`,{timeout:5e3,maxBuffer:10485760});return t}catch(t){let e=t instanceof Error?t.message:String(t);throw Error(`Failed to capture pane: ${e}`)}}async function u(e){try{return await s(`tmux kill-session -t "${e}"`,{timeout:5e3}),!0}catch(t){let e=t instanceof Error?t.message:String(t);if(e?.includes("no server running")||e?.includes("can't find session"))return!1;throw Error(`Failed to kill tmux session: ${e}`)}}async function l(e,t){try{await s(`tmux send-keys -t "${e}" ${t}`,{timeout:5e3})}catch(t){let e=t instanceof Error?t.message:String(t);throw Error(`Failed to send special key: ${e}`)}}},25079:(e,t,r)=>{"use strict";r.d(t,{ZV:()=>u,fM:()=>i,ps:()=>c});var o=r(34893);let s=new Map,a=new Map;function n(e,t){let r=a.get(e);if(console.log(`[WS] handleBroadcast called for ${e}, room size: ${r?.size||0}`),!r){console.log(`[WS] No room found for ${e}`);return}if(0===r.size){console.log(`[WS] Room for ${e} is empty`);return}try{let s=JSON.stringify({type:"broadcast",worktreeId:e,data:t}),a=0,n=0;r.forEach(e=>{if(e.readyState===o.XY.OPEN)try{e.send(s),a++}catch(e){n++,console.error("Error sending WebSocket message to client:",e)}}),console.log(`Broadcast to worktree ${e}: ${a}/${r.size} clients (${n} errors)`)}catch(t){console.error(`Error broadcasting to worktree ${e}:`,t);try{let t=JSON.stringify({type:"broadcast",worktreeId:e,data:{error:"Message encoding error"}});r.forEach(e=>{if(e.readyState===o.XY.OPEN)try{e.send(t)}catch{}})}catch(e){console.error("Failed to send fallback message:",e)}}}function i(e,t){n(e,t)}function c(e,t){t.worktreeId?n(t.worktreeId,{type:e,...t}):console.warn("broadcastMessage called without worktreeId")}function u(e){for(let t of e){let e=a.get(t);e&&(e.forEach(e=>{let r=s.get(e);r&&r.worktreeIds.delete(t)}),a.delete(t),console.log(`[WS] Cleaned up room for worktree: ${t}`))}}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),o=t.X(0,[8948,5972,3853,4893,7425],()=>r(74859));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/3853.js","../../../../chunks/4893.js","../../../../chunks/5972.js","../../../../chunks/7425.js","../../../../chunks/8948.js","../../../../webpack-runtime.js"]}
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var e={};e.id=9578,e.ids=[9578],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")},11303:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>m,patchFetch:()=>b,requestAsyncStorage:()=>l,routeModule:()=>d,serverHooks:()=>j,staticGenerationAsyncStorage:()=>x});var o={};t.r(o),t.d(o,{GET:()=>c});var s=t(49303),n=t(88716),i=t(60670),u=t(87070),a=t(97425),p=t(61318);async function c(e,{params:r}){try{let{jobId:e}=await r;if(!e)return u.NextResponse.json({success:!1,error:"Job ID is required"},{status:400});let t=(0,a.n)(),o=new p.v(t).getCloneJobStatus(e);if(!o)return u.NextResponse.json({success:!1,error:"Clone job not found"},{status:404});let s={success:!0,jobId:o.jobId,status:o.status,progress:o.progress,repositoryId:o.repositoryId};return o.error&&(s.error=o.error),u.NextResponse.json(s,{status:200})}catch(e){return console.error("[Clone Status API] Unexpected error:",e),u.NextResponse.json({success:!1,error:"Failed to get clone job status"},{status:500})}}let d=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/repositories/clone/[jobId]/route",pathname:"/api/repositories/clone/[jobId]",filename:"route",bundlePath:"app/api/repositories/clone/[jobId]/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/repositories/clone/[jobId]/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:l,staticGenerationAsyncStorage:x,serverHooks:j}=d,m="/api/repositories/clone/[jobId]/route";function b(){return(0,i.patchFetch)({serverHooks:j,staticGenerationAsyncStorage:x})}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8948,5972,7425,1318],()=>t(11303));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/1318.js","../../../../../chunks/5972.js","../../../../../chunks/7425.js","../../../../../chunks/8948.js","../../../../../webpack-runtime.js"]}
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var e={};e.id=541,e.ids=[541],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")},28841:(e,r,o)=>{o.r(r),o.d(r,{originalPathname:()=>j,patchFetch:()=>R,requestAsyncStorage:()=>g,routeModule:()=>d,serverHooks:()=>x,staticGenerationAsyncStorage:()=>m});var t={};o.r(t),o.d(t,{POST:()=>l});var s=o(49303),n=o(88716),a=o(60670),i=o(87070),c=o(97425),u=o(61318);let p="[Clone API]";async function l(e){try{let{cloneUrl:r,targetDir:o}=await e.json();if(!r||"string"!=typeof r||""===r.trim())return i.NextResponse.json({success:!1,error:{category:"validation",code:"EMPTY_URL",message:"Clone URL is required",recoverable:!0,suggestedAction:"Please enter a valid git clone URL"}},{status:400});let t=(0,c.n)(),s=new u.v(t);console.info(`${p} Starting clone job for: ${r}`);let n=await s.startCloneJob(r.trim(),o);if(!n.success){let e=400;return(n.error?.code==="DUPLICATE_CLONE_URL"||n.error?.code==="CLONE_IN_PROGRESS")&&(e=409),console.warn(`${p} Clone job failed: ${n.error?.code} - ${n.error?.message}`),i.NextResponse.json({success:!1,error:n.error,jobId:n.jobId},{status:e})}return console.info(`${p} Clone job created: ${n.jobId}`),i.NextResponse.json({success:!0,jobId:n.jobId,status:"pending",message:"Clone job started"},{status:202})}catch(e){return console.error(`${p} Unexpected error:`,e),i.NextResponse.json({success:!1,error:{category:"system",code:"INTERNAL_ERROR",message:"Failed to start clone job",recoverable:!1,suggestedAction:"Please try again later"}},{status:500})}}let d=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/repositories/clone/route",pathname:"/api/repositories/clone",filename:"route",bundlePath:"app/api/repositories/clone/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/repositories/clone/route.ts",nextConfigOutput:"",userland:t}),{requestAsyncStorage:g,staticGenerationAsyncStorage:m,serverHooks:x}=d,j="/api/repositories/clone/route";function R(){return(0,a.patchFetch)({serverHooks:x,staticGenerationAsyncStorage:m})}}};var r=require("../../../../webpack-runtime.js");r.C(e);var o=e=>r(r.s=e),t=r.X(0,[8948,5972,7425,1318],()=>o(28841));module.exports=t})();
@@ -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/1318.js","../../../../chunks/5972.js","../../../../chunks/7425.js","../../../../chunks/8948.js","../../../../webpack-runtime.js"]}
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var e={};e.id=5361,e.ids=[5361],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")},78893:e=>{e.exports=require("buffer")},61282:e=>{e.exports=require("child_process")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},92048:e=>{e.exports=require("fs")},20629:e=>{e.exports=require("fs/promises")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},98216:e=>{e.exports=require("net")},55315:e=>{e.exports=require("path")},76162:e=>{e.exports=require("stream")},82452:e=>{e.exports=require("tls")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},32511:(e,r,s)=>{s.r(r),s.d(r,{originalPathname:()=>R,patchFetch:()=>C,requestAsyncStorage:()=>S,routeModule:()=>E,serverHooks:()=>j,staticGenerationAsyncStorage:()=>v});var o={};s.r(o),s.d(o,{DELETE:()=>k});var t=s(49303),n=s(88716),l=s(60670),i=s(87070),p=s(97425),a=s(75748),u=s(59991);s(62648);var c=s(25079);s(63661),s(76966);let d=new Map,f=new Map,$=["claude","codex","gemini"],g="[Session Cleanup]";async function h(e,r){let s={worktreeId:e,sessionsKilled:[],sessionErrors:[],pollersStopped:[],pollerErrors:[]};for(let o of $){try{await r(e,o)&&(s.sessionsKilled.push(o),console.info(`${g} Killed session: ${e}/${o}`))}catch(t){let r=`${o}: ${t instanceof Error?t.message:String(t)}`;s.sessionErrors.push(r),console.warn(`${g} Failed to kill session ${e}/${o}:`,t)}try{(0,u.FN)(e,o),s.pollersStopped.push(`response-poller:${o}`)}catch(t){let r=`response-poller:${o}: ${t instanceof Error?t.message:String(t)}`;s.pollerErrors.push(r),console.warn(`${g} Failed to stop response-poller ${e}/${o}:`,t)}}try{(function(e){let r=d.get(e);r&&(clearInterval(r),d.delete(e),f.delete(e),console.log(`Stopped poller for ${e}`))})(e),s.pollersStopped.push("claude-poller")}catch(o){let r=`claude-poller: ${o instanceof Error?o.message:String(o)}`;s.pollerErrors.push(r),console.warn(`${g} Failed to stop claude-poller ${e}:`,o)}return s}async function x(e,r){let s=[],o=[];for(let t of e){let e=await h(t,r);for(let r of(s.push(e),e.sessionErrors))o.push(`Session kill error (${t}): ${r}`);for(let r of e.pollerErrors)o.push(`Poller stop error (${t}): ${r}`)}return{results:s,warnings:o}}var m=s(97213),w=s(10927);let q="[Repository Delete]";async function y(e,r){let s=m.g.getInstance().getTool(r);if(!await s.isRunning(e))return!1;let o=s.getSessionName(e);return(0,w.AJ)(o)}async function k(e){try{let r;let{repositoryPath:s}=await e.json();if(!s||"string"!=typeof s)return i.NextResponse.json({success:!1,error:"repositoryPath is required"},{status:400});let o=(0,p.n)(),t=(0,a.Pv)(o,s);if(0===t.length)return i.NextResponse.json({success:!1,error:"Repository not found"},{status:404});console.info(`${q} Starting deletion: ${s}, worktrees: ${t.length}`);let n=await x(t,y);for(let e of n.results)e.sessionsKilled.length>0&&console.info(`${q} Sessions killed for ${e.worktreeId}: ${e.sessionsKilled.join(", ")}`),e.sessionErrors.length>0&&console.warn(`${q} Session kill errors for ${e.worktreeId}: ${e.sessionErrors.join(", ")}`);(0,c.ZV)(t);try{r=(0,a.DF)(o,s).deletedCount,console.info(`${q} Successfully deleted ${r} worktrees from: ${s}`)}catch(e){return console.error(`${q} Database deletion failed for ${s}:`,e),i.NextResponse.json({success:!1,error:"Database deletion failed"},{status:500})}(0,c.ps)("repository_deleted",{worktreeId:"global",repositoryPath:s,deletedWorktreeIds:t});let l={success:!0,deletedWorktreeCount:r,deletedWorktreeIds:t};return n.warnings.length>0?(l.warnings=n.warnings,console.info(`${q} Completed with ${n.warnings.length} warnings: ${s}`)):console.info(`${q} Completed successfully: ${s}`),i.NextResponse.json(l,{status:200})}catch(e){return console.error(`${q} Unexpected error:`,e),i.NextResponse.json({success:!1,error:"Failed to delete repository"},{status:500})}}let E=new t.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/repositories/route",pathname:"/api/repositories",filename:"route",bundlePath:"app/api/repositories/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/repositories/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:S,staticGenerationAsyncStorage:v,serverHooks:j}=E,R="/api/repositories/route";function C(){return(0,l.patchFetch)({serverHooks:j,staticGenerationAsyncStorage:v})}}};var r=require("../../../webpack-runtime.js");r.C(e);var s=e=>r(r.s=e),o=r.X(0,[8948,5972,3853,4893,7425,7213,1528,9723],()=>s(32511));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/1528.js","../../../chunks/3853.js","../../../chunks/4893.js","../../../chunks/5972.js","../../../chunks/7213.js","../../../chunks/7425.js","../../../chunks/8948.js","../../../chunks/9723.js","../../../webpack-runtime.js"]}
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var e={};e.id=6865,e.ids=[6865],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")},75144:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>m,patchFetch:()=>R,requestAsyncStorage:()=>C,routeModule:()=>f,serverHooks:()=>O,staticGenerationAsyncStorage:()=>M});var o={};t.r(o),t.d(o,{POST:()=>h});var s=t(49303),n=t(88716),i=t(60670),a=t(87070),u=t(55315),p=t.n(u),c=t(97425),l=t(67722),d=t(57440),_=t(37848);async function h(e){try{let{repositoryPath:r}=await e.json();if(!r||"string"!=typeof r)return a.NextResponse.json({error:"Repository path is required"},{status:400});let{CM_ROOT_DIR:t}=(0,_.dU)();if(!(0,d.j)(r,t))return a.NextResponse.json({error:"Invalid or unsafe repository path"},{status:400});let o=p().resolve(t,r),s=await (0,l.e9)(o);if(0===s.length)return a.NextResponse.json({error:"No worktrees found in the specified path. Make sure it is a valid git repository."},{status:404});let n=(0,c.n)();return(0,l.h2)(n,s),a.NextResponse.json({success:!0,message:`Successfully scanned and added ${s.length} worktree(s)`,worktreeCount:s.length,repositoryPath:s[0].repositoryPath,repositoryName:s[0].repositoryName},{status:200})}catch(r){console.error("Error scanning repository:",r);let e=r instanceof Error?r.message:"Failed to scan repository";return a.NextResponse.json({error:e},{status:500})}}let f=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/repositories/scan/route",pathname:"/api/repositories/scan",filename:"route",bundlePath:"app/api/repositories/scan/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/repositories/scan/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:C,staticGenerationAsyncStorage:M,serverHooks:O}=f,m="/api/repositories/scan/route";function R(){return(0,i.patchFetch)({serverHooks:O,staticGenerationAsyncStorage:M})}},37848:(e,r,t)=>{t.d(r,{Hb:()=>a,LI:()=>u,dU:()=>p});var o=t(55315),s=t.n(o);let n={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"},i=new Set;function a(e){return function(e,r){let t=process.env[e];if(void 0!==t)return t;let o=process.env[r];if(void 0!==o)return i.has(r)||(console.warn(`[DEPRECATED] ${r} is deprecated, use ${e} instead`),i.add(r)),o}(e,n[e])}function u(){let e=a("CM_LOG_LEVEL")?.toLowerCase(),r=a("CM_LOG_FORMAT")?.toLowerCase();return{level:void 0!==e&&["debug","info","warn","error"].includes(e)?e:"info",format:"json"===r?"json":"text"}}function p(){let e=a("CM_ROOT_DIR")||process.cwd(),r=parseInt(a("CM_PORT")||"3000",10),t=a("CM_BIND")||"127.0.0.1",o=a("CM_AUTH_TOKEN"),n=a("CM_DB_PATH")||process.env.DATABASE_PATH||s().join(process.cwd(),"data","cm.db");if(!e)throw Error("CM_ROOT_DIR (or MCBD_ROOT_DIR) is required");if(isNaN(r)||r<1||r>65535)throw Error(`Invalid CM_PORT: ${a("CM_PORT")}. Must be between 1 and 65535.`);if("127.0.0.1"!==t&&"0.0.0.0"!==t&&"localhost"!==t)throw Error(`Invalid CM_BIND: ${t}. Must be '127.0.0.1', '0.0.0.0', or 'localhost'.`);if("0.0.0.0"===t&&!o)throw Error("CM_AUTH_TOKEN (or MCBD_AUTH_TOKEN) is required when CM_BIND=0.0.0.0");return{CM_ROOT_DIR:s().resolve(e),CM_PORT:r,CM_BIND:t,CM_AUTH_TOKEN:o,CM_DB_PATH:s().resolve(n)}}},57440:(e,r,t)=>{t.d(r,{j:()=>n});var o=t(55315),s=t.n(o);function n(e,r){if(!e||""===e.trim()||e.includes("\0"))return!1;let t=e;try{t=decodeURIComponent(e)}catch{t=e}if(t.includes("\0"))return!1;let o=s().resolve(r),n=s().resolve(r,t),i=s().relative(o,n);return!(i.startsWith("..")||s().isAbsolute(i))}},67722:(e,r,t)=>{t.d(r,{Lj:()=>l,a$:()=>p,e9:()=>c,h2:()=>d});var o=t(61282),s=t(21764),n=t(55315),i=t.n(n),a=t(75748),u=t(37848);function p(){let e=process.env.WORKTREE_REPOS;if(e&&e.trim())return e.split(",").map(e=>e.trim()).filter(e=>e.length>0);let r=(0,u.Hb)("CM_ROOT_DIR");return r&&r.trim()?[r.trim()]:[]}async function c(e){let r=(0,s.promisify)(o.exec);try{let{stdout:t}=await r("git worktree list",{cwd:e}),o=function(e){if(!e||""===e.trim())return[];let r=e.trim().split("\n"),t=[];for(let e of r){let r=e.trim();if(!r)continue;let o=r.match(/^(.+?)\s+([a-z0-9]+)\s+(?:\[(.+?)\]|\(detached HEAD\))/);if(o){let[,e,r,s]=o;t.push({path:e.trim(),branch:s||`detached-${r}`,commit:r})}}return t}(t),s=i().resolve(e),n=i().basename(s);return o.map(e=>({id:function(e,r){if(!e)return"";let t=e=>e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),o=t(e);if(r){let e=t(r);return`${e}-${o}`}return o}(e.branch,n),name:e.branch,path:i().resolve(e.path),repositoryPath:s,repositoryName:n})).filter(e=>["/etc","/root","/sys","/proc","/dev","/boot","/bin","/sbin","/usr/bin","/usr/sbin"].some(r=>e.path.startsWith(r))?(console.warn(`Skipping potentially unsafe worktree path: ${e.path}`),!1):!(e.path.includes("\0")||e.path.includes(".."))||(console.warn(`Skipping path with potentially malicious characters: ${e.path}`),!1))}catch(t){let e=t instanceof Error?t.message:String(t),r=t.code;if(e?.includes("not a git repository")||128===r)return[];throw t}}async function l(e){let r=[];for(let t of e)try{console.log(`Scanning repository: ${t}`);let e=await c(t);r.push(...e),console.log(` Found ${e.length} worktree(s)`)}catch(e){console.error(`Error scanning repository ${t}:`,e)}return r}function d(e,r){for(let t of r)(0,a.ly)(e,t)}}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8948,5972,7425],()=>t(75144));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=3546,e.ids=[3546],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")},98165:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>f,patchFetch:()=>C,requestAsyncStorage:()=>_,routeModule:()=>l,serverHooks:()=>h,staticGenerationAsyncStorage:()=>d});var o={};t.r(o),t.d(o,{POST:()=>u});var s=t(49303),n=t(88716),i=t(60670),a=t(87070),c=t(97425),p=t(67722);async function u(){try{let e=(0,p.a$)();if(0===e.length)return a.NextResponse.json({error:"No repositories configured. Please set WORKTREE_REPOS or CM_ROOT_DIR environment variable."},{status:400});let r=await (0,p.Lj)(e),t=(0,c.n)();(0,p.h2)(t,r);let o=new Set(r.map(e=>e.repositoryPath));return a.NextResponse.json({success:!0,message:`Successfully synced ${r.length} worktree(s) from ${o.size} repository/repositories`,worktreeCount:r.length,repositoryCount:o.size,repositories:Array.from(o)},{status:200})}catch(r){console.error("Error syncing repositories:",r);let e=r instanceof Error?r.message:"Failed to sync repositories";return a.NextResponse.json({error:e},{status:500})}}let l=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/repositories/sync/route",pathname:"/api/repositories/sync",filename:"route",bundlePath:"app/api/repositories/sync/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/repositories/sync/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:_,staticGenerationAsyncStorage:d,serverHooks:h}=l,f="/api/repositories/sync/route";function C(){return(0,i.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:d})}},37848:(e,r,t)=>{t.d(r,{Hb:()=>a,LI:()=>c,dU:()=>p});var o=t(55315),s=t.n(o);let n={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"},i=new Set;function a(e){return function(e,r){let t=process.env[e];if(void 0!==t)return t;let o=process.env[r];if(void 0!==o)return i.has(r)||(console.warn(`[DEPRECATED] ${r} is deprecated, use ${e} instead`),i.add(r)),o}(e,n[e])}function c(){let e=a("CM_LOG_LEVEL")?.toLowerCase(),r=a("CM_LOG_FORMAT")?.toLowerCase();return{level:void 0!==e&&["debug","info","warn","error"].includes(e)?e:"info",format:"json"===r?"json":"text"}}function p(){let e=a("CM_ROOT_DIR")||process.cwd(),r=parseInt(a("CM_PORT")||"3000",10),t=a("CM_BIND")||"127.0.0.1",o=a("CM_AUTH_TOKEN"),n=a("CM_DB_PATH")||process.env.DATABASE_PATH||s().join(process.cwd(),"data","cm.db");if(!e)throw Error("CM_ROOT_DIR (or MCBD_ROOT_DIR) is required");if(isNaN(r)||r<1||r>65535)throw Error(`Invalid CM_PORT: ${a("CM_PORT")}. Must be between 1 and 65535.`);if("127.0.0.1"!==t&&"0.0.0.0"!==t&&"localhost"!==t)throw Error(`Invalid CM_BIND: ${t}. Must be '127.0.0.1', '0.0.0.0', or 'localhost'.`);if("0.0.0.0"===t&&!o)throw Error("CM_AUTH_TOKEN (or MCBD_AUTH_TOKEN) is required when CM_BIND=0.0.0.0");return{CM_ROOT_DIR:s().resolve(e),CM_PORT:r,CM_BIND:t,CM_AUTH_TOKEN:o,CM_DB_PATH:s().resolve(n)}}},67722:(e,r,t)=>{t.d(r,{Lj:()=>l,a$:()=>p,e9:()=>u,h2:()=>_});var o=t(61282),s=t(21764),n=t(55315),i=t.n(n),a=t(75748),c=t(37848);function p(){let e=process.env.WORKTREE_REPOS;if(e&&e.trim())return e.split(",").map(e=>e.trim()).filter(e=>e.length>0);let r=(0,c.Hb)("CM_ROOT_DIR");return r&&r.trim()?[r.trim()]:[]}async function u(e){let r=(0,s.promisify)(o.exec);try{let{stdout:t}=await r("git worktree list",{cwd:e}),o=function(e){if(!e||""===e.trim())return[];let r=e.trim().split("\n"),t=[];for(let e of r){let r=e.trim();if(!r)continue;let o=r.match(/^(.+?)\s+([a-z0-9]+)\s+(?:\[(.+?)\]|\(detached HEAD\))/);if(o){let[,e,r,s]=o;t.push({path:e.trim(),branch:s||`detached-${r}`,commit:r})}}return t}(t),s=i().resolve(e),n=i().basename(s);return o.map(e=>({id:function(e,r){if(!e)return"";let t=e=>e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),o=t(e);if(r){let e=t(r);return`${e}-${o}`}return o}(e.branch,n),name:e.branch,path:i().resolve(e.path),repositoryPath:s,repositoryName:n})).filter(e=>["/etc","/root","/sys","/proc","/dev","/boot","/bin","/sbin","/usr/bin","/usr/sbin"].some(r=>e.path.startsWith(r))?(console.warn(`Skipping potentially unsafe worktree path: ${e.path}`),!1):!(e.path.includes("\0")||e.path.includes(".."))||(console.warn(`Skipping path with potentially malicious characters: ${e.path}`),!1))}catch(t){let e=t instanceof Error?t.message:String(t),r=t.code;if(e?.includes("not a git repository")||128===r)return[];throw t}}async function l(e){let r=[];for(let t of e)try{console.log(`Scanning repository: ${t}`);let e=await u(t);r.push(...e),console.log(` Found ${e.length} worktree(s)`)}catch(e){console.error(`Error scanning repository ${t}:`,e)}return r}function _(e,r){for(let t of r)(0,a.ly)(e,t)}}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8948,5972,7425],()=>t(98165));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=1049,e.ids=[1049],e.modules={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")},78893:e=>{e.exports=require("buffer")},92048:e=>{e.exports=require("fs")},55315:e=>{e.exports=require("path")},68223:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>f,patchFetch:()=>g,requestAsyncStorage:()=>u,routeModule:()=>c,serverHooks:()=>p,staticGenerationAsyncStorage:()=>m});var n={};r.r(n),r.d(n,{GET:()=>l});var o=r(49303),a=r(88716),s=r(60670),i=r(87070),d=r(53013);async function l(e){try{let e=await (0,d.HL)();return i.NextResponse.json({groups:e})}catch(e){return console.error("Error loading slash commands:",e),i.NextResponse.json({error:"Failed to load slash commands"},{status:500})}}let c=new o.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/api/slash-commands/route",pathname:"/api/slash-commands",filename:"route",bundlePath:"app/api/slash-commands/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/slash-commands/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:u,staticGenerationAsyncStorage:m,serverHooks:p}=c,f="/api/slash-commands/route";function g(){return(0,s.patchFetch)({serverHooks:p,staticGenerationAsyncStorage:m})}},38056:(e,t,r)=>{r.d(t,{Nw:()=>s,SU:()=>i,Xr:()=>a});var n=r(35835);let o=["planning","development","review","documentation","workflow","standard-session","standard-config","standard-monitor","standard-git","standard-util"];function a(e){if(0===e.length)return[];let t=new Map;for(let r of e){let e=t.get(r.category)||[];e.push(r),t.set(r.category,e)}let r=[];for(let e of o){let o=t.get(e);o&&o.length>0&&r.push({category:e,label:n.H[e],commands:o})}for(let[e,a]of t)!o.includes(e)&&a.length>0&&r.push({category:e,label:n.H[e]||e,commands:a});return r}function s(e,t){let r=new Map;for(let t of e)for(let e of t.commands)r.set(e.name,{...e,source:e.source||"standard"});for(let e of t)for(let t of e.commands)r.set(t.name,{...t,source:t.source||"worktree"});return a(Array.from(r.values()))}function i(e){return e.reduce((e,t)=>e+t.commands.length,0)}},53013:(e,t,r)=>{r.d(t,{HL:()=>u});var n=r(92048),o=r(55315),a=r(3673),s=r.n(a),i=r(35835),d=r(38056);let l=null;async function c(e){let t=function(e){let t=e||process.cwd();return o.join(t,".claude","commands")}(e);if(!n.existsSync(t))return console.warn(`Commands directory not found: ${t}`),[];let r=n.readdirSync(t).filter(e=>e.endsWith(".md")),a=[];for(let e of r){let r=function(e){try{let t=n.readFileSync(e,"utf-8"),{data:r}=s()(t),a=o.basename(e,".md"),d=i.c[a]||"workflow";return{name:a,description:r.description||"",category:d,model:r.model,filePath:o.relative(process.cwd(),e)}}catch(t){return console.error(`Error parsing command file ${e}:`,t),null}}(o.join(t,e));r&&a.push(r)}return a.sort((e,t)=>e.name.localeCompare(t.name)),l=a,a}async function u(e){let t=e?await c(e):l||await c();return(0,d.Xr)(t)}},35835:(e,t,r)=>{r.d(t,{H:()=>n,c:()=>o});let n={planning:"Planning",development:"Development",review:"Review",documentation:"Documentation",workflow:"Workflow","standard-session":"Standard (Session)","standard-config":"Standard (Config)","standard-monitor":"Standard (Monitor)","standard-git":"Standard (Git)","standard-util":"Standard (Utility)"},o={"work-plan":"planning","issue-create":"planning","issue-split":"planning","design-policy":"planning","tdd-impl":"development","bug-fix":"development",refactoring:"development","architecture-review":"review","acceptance-test":"review","progress-report":"documentation","create-pr":"workflow","pm-auto-dev":"workflow"}}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[8948,5972,3673],()=>r(68223));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/3673.js","../../../chunks/5972.js","../../../chunks/8948.js","../../../webpack-runtime.js"]}
@@ -0,0 +1 @@
1
+ {"groups":[{"category":"planning","label":"Planning","commands":[{"name":"design-policy","description":"アーキテクチャ設計、技術選定、設計判断を支援","category":"planning","model":"opus","filePath":".claude/commands/design-policy.md"},{"name":"issue-create","description":"Issue分割計画書からGitHub Issueを一括作成","category":"planning","model":"opus","filePath":".claude/commands/issue-create.md"},{"name":"issue-split","description":"FeatureをIssueに分割、依存関係整理","category":"planning","model":"opus","filePath":".claude/commands/issue-split.md"},{"name":"work-plan","description":"Issue単位の具体的な作業計画立案","category":"planning","model":"opus","filePath":".claude/commands/work-plan.md"}]},{"category":"development","label":"Development","commands":[{"name":"bug-fix","description":"不具合の調査・対策案提示・修正実施を完全自動化","category":"development","model":"opus","filePath":".claude/commands/bug-fix.md"},{"name":"refactoring","description":"コード品質改善、設計パターン適用、技術的負債解消","category":"development","model":"opus","filePath":".claude/commands/refactoring.md"},{"name":"tdd-impl","description":"テスト駆動開発で高品質コードを実装","category":"development","model":"opus","filePath":".claude/commands/tdd-impl.md"}]},{"category":"review","label":"Review","commands":[{"name":"acceptance-test","description":"Issue要件に基づく自動受入テスト実行","category":"review","model":"opus","filePath":".claude/commands/acceptance-test.md"},{"name":"architecture-review","description":"設計レビュー、リスク評価、改善提案","category":"review","model":"opus","filePath":".claude/commands/architecture-review.md"}]},{"category":"documentation","label":"Documentation","commands":[{"name":"progress-report","description":"開発進捗サマリ作成、ブロッカー報告","category":"documentation","model":"opus","filePath":".claude/commands/progress-report.md"}]},{"category":"workflow","label":"Workflow","commands":[{"name":"apply-review","description":"レビュー指摘事項を実装に反映","category":"workflow","model":"opus","filePath":".claude/commands/apply-review.md"},{"name":"create-pr","description":"Pull Request自動作成、タイトル・説明自動生成","category":"workflow","model":"opus","filePath":".claude/commands/create-pr.md"},{"name":"multi-stage-design-review","description":"設計書の4段階レビュー(通常→整合性→影響分析→セキュリティ)と指摘対応を自動実行","category":"workflow","model":"opus","filePath":".claude/commands/multi-stage-design-review.md"},{"name":"multi-stage-issue-review","description":"Issue記載内容の多段階レビュー(通常→影響範囲)×2回と指摘対応を自動実行","category":"workflow","model":"opus","filePath":".claude/commands/multi-stage-issue-review.md"},{"name":"pm-auto-design2dev","description":"設計レビューから実装完了まで完全自動化(設計レビュー→作業計画→TDD実装)","category":"workflow","model":"opus","filePath":".claude/commands/pm-auto-design2dev.md"},{"name":"pm-auto-dev","description":"Issue開発を完全自動化(TDD→テスト→報告)","category":"workflow","model":"opus","filePath":".claude/commands/pm-auto-dev.md"}]}]}
@@ -0,0 +1 @@
1
+ {"status":200,"headers":{"content-type":"application/json","x-next-cache-tags":"_N_T_/layout,_N_T_/api/layout,_N_T_/api/slash-commands/layout,_N_T_/api/slash-commands/route,_N_T_/api/slash-commands"}}
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var e={};e.id=5695,e.ids=[5695],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")},80134:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>A,patchFetch:()=>h,requestAsyncStorage:()=>y,routeModule:()=>f,serverHooks:()=>g,staticGenerationAsyncStorage:()=>m});var n={};r.r(n),r.d(n,{GET:()=>x,POST:()=>b});var o=r(49303),s=r(88716),a=r(60670),u=r(87070),i=r(97425),p=r(75748),l=r(26063);function d(e){return{enabled:e?.enabled??!1,expiresAt:e?.enabled?e.expiresAt:null}}function c(e){let t=(0,i.n)();return(0,p.gU)(t,e)?null:u.NextResponse.json({error:`Worktree '${e}' not found`},{status:404})}async function x(e,{params:t}){try{let e=c(t.id);if(e)return e;let r=(0,l.bq)(t.id);return u.NextResponse.json(d(r))}catch(e){return console.error("Error getting auto-yes state:",e),u.NextResponse.json({error:"Failed to get auto-yes state"},{status:500})}}async function b(e,{params:t}){try{let r=c(t.id);if(r)return r;let n=await e.json();if("boolean"!=typeof n.enabled)return u.NextResponse.json({error:"enabled must be a boolean"},{status:400});let o=(0,l.bY)(t.id,n.enabled);return u.NextResponse.json(d(o))}catch(e){return console.error("Error setting auto-yes state:",e),u.NextResponse.json({error:"Failed to set auto-yes state"},{status:500})}}let f=new o.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/worktrees/[id]/auto-yes/route",pathname:"/api/worktrees/[id]/auto-yes",filename:"route",bundlePath:"app/api/worktrees/[id]/auto-yes/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/auto-yes/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:y,staticGenerationAsyncStorage:m,serverHooks:g}=f,A="/api/worktrees/[id]/auto-yes/route";function h(){return(0,a.patchFetch)({serverHooks:g,staticGenerationAsyncStorage:m})}},26063:(e,t,r)=>{r.d(t,{bY:()=>s,bq:()=>o});let n=new Map;function o(e){let t=n.get(e);if(!t)return null;if(Date.now()>t.expiresAt){let r={...t,enabled:!1};return n.set(e,r),r}return t}function s(e,t){if(t){let t=Date.now(),r={enabled:!0,enabledAt:t,expiresAt:t+36e5};return n.set(e,r),r}{let t=n.get(e),r={enabled:!1,enabledAt:t?.enabledAt??0,expiresAt:t?.expiresAt??0};return n.set(e,r),r}}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[8948,5972,7425],()=>r(80134));module.exports=n})();
@@ -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,2 @@
1
+ "use strict";(()=>{var e={};e.id=6521,e.ids=[6521],e.modules={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")},21764:e=>{e.exports=require("util")},30781:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>x,patchFetch:()=>y,requestAsyncStorage:()=>d,routeModule:()=>p,serverHooks:()=>l,staticGenerationAsyncStorage:()=>m});var s={};r.r(s),r.d(s,{POST:()=>c});var n=r(49303),o=r(88716),i=r(60670),a=r(87070),u=r(10927);async function c(e,{params:t}){try{var r;let{cliToolId:s,lines:n=1e3}=await e.json();if(!s)return a.NextResponse.json({error:"Missing cliToolId"},{status:400});let o=(r=t.id,`mcbd-${s}-${r}`);if(!await u.Hk(o))return a.NextResponse.json({output:`Session not running. Starting ${s} session...
2
+ `});let i=await u.xq(o,n);return a.NextResponse.json({output:i})}catch(e){return console.error("Capture API error:",e),a.NextResponse.json({error:e.message},{status:500})}}let p=new n.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/worktrees/[id]/capture/route",pathname:"/api/worktrees/[id]/capture",filename:"route",bundlePath:"app/api/worktrees/[id]/capture/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/capture/route.ts",nextConfigOutput:"",userland:s}),{requestAsyncStorage:d,staticGenerationAsyncStorage:m,serverHooks:l}=p,x="/api/worktrees/[id]/capture/route";function y(){return(0,i.patchFetch)({serverHooks:l,staticGenerationAsyncStorage:m})}},10927:(e,t,r)=>{r.d(t,{AJ:()=>c,Hk:()=>o,Is:()=>a,ZV:()=>p,ed:()=>i,xq:()=>u});var s=r(61282);let n=(0,r(21764).promisify)(s.exec);async function o(e){try{return await n(`tmux has-session -t "${e}"`,{timeout:5e3}),!0}catch{return!1}}async function i(e,t){let r,s,o;"string"==typeof e?(r=e,s=t,o=5e4):(r=e.sessionName,s=e.workingDirectory,o=e.historyLimit||5e4);try{await n(`tmux new-session -d -s "${r}" -c "${s}"`,{timeout:5e3}),await n(`tmux set-option -t "${r}" history-limit ${o}`,{timeout:5e3})}catch(t){let e=t instanceof Error?t.message:String(t);throw Error(`Failed to create tmux session: ${e}`)}}async function a(e,t,r=!0){let s=t.replace(/'/g,"'\\''"),o=r?`tmux send-keys -t "${e}" '${s}' C-m`:`tmux send-keys -t "${e}" '${s}'`;try{await n(o,{timeout:5e3})}catch(t){let e=t instanceof Error?t.message:String(t);throw Error(`Failed to send keys to tmux session: ${e}`)}}async function u(e,t){let r,s;"number"==typeof t?(r=-t,s="-"):t?(r=t.startLine??-1e4,s=t.endLine??"-"):(r=-1e3,s="-");try{let{stdout:t}=await n(`tmux capture-pane -t "${e}" -p -e -S ${r} -E ${s}`,{timeout:5e3,maxBuffer:10485760});return t}catch(t){let e=t instanceof Error?t.message:String(t);throw Error(`Failed to capture pane: ${e}`)}}async function c(e){try{return await n(`tmux kill-session -t "${e}"`,{timeout:5e3}),!0}catch(t){let e=t instanceof Error?t.message:String(t);if(e?.includes("no server running")||e?.includes("can't find session"))return!1;throw Error(`Failed to kill tmux session: ${e}`)}}async function p(e,t){try{await n(`tmux send-keys -t "${e}" ${t}`,{timeout:5e3})}catch(t){let e=t instanceof Error?t.message:String(t);throw Error(`Failed to send special key: ${e}`)}}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[8948,5972],()=>r(30781));module.exports=s})();
@@ -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/5972.js","../../../../../chunks/8948.js","../../../../../webpack-runtime.js"]}
@@ -0,0 +1 @@
1
+ "use strict";(()=>{var e={};e.id=3096,e.ids=[3096],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")},37514:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>I,patchFetch:()=>h,requestAsyncStorage:()=>c,routeModule:()=>p,serverHooks:()=>m,staticGenerationAsyncStorage:()=>x});var o={};t.r(o),t.d(o,{PATCH:()=>d});var s=t(49303),i=t(88716),n=t(60670),a=t(87070),u=t(97425),l=t(75748);async function d(e,{params:r}){try{let t=(0,u.n)(),o=(0,l.gU)(t,r.id);if(!o)return a.NextResponse.json({error:`Worktree '${r.id}' not found`},{status:404});let s=await e.json();if(!s.cliToolId)return a.NextResponse.json({error:"CLI tool ID is required"},{status:400});let i=["claude","codex","gemini"];if(!i.includes(s.cliToolId))return a.NextResponse.json({error:`Invalid CLI tool ID: ${s.cliToolId}. Valid values are: ${i.join(", ")}`},{status:400});let n={...o,cliToolId:s.cliToolId,updatedAt:new Date};return(0,l.ly)(t,n),a.NextResponse.json(n,{status:200})}catch(e){return console.error("Error updating CLI tool:",e),a.NextResponse.json({error:"Failed to update CLI tool"},{status:500})}}let p=new s.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/worktrees/[id]/cli-tool/route",pathname:"/api/worktrees/[id]/cli-tool",filename:"route",bundlePath:"app/api/worktrees/[id]/cli-tool/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/cli-tool/route.ts",nextConfigOutput:"",userland:o}),{requestAsyncStorage:c,staticGenerationAsyncStorage:x,serverHooks:m}=p,I="/api/worktrees/[id]/cli-tool/route";function h(){return(0,n.patchFetch)({serverHooks:m,staticGenerationAsyncStorage:x})}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8948,5972,7425],()=>t(37514));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=1991,e.ids=[1991],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")},26683:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>q,patchFetch:()=>k,requestAsyncStorage:()=>b,routeModule:()=>f,serverHooks:()=>A,staticGenerationAsyncStorage:()=>w});var n={};r.r(n),r.d(n,{GET:()=>h});var i=r(49303),o=r(88716),u=r(60670),s=r(87070),a=r(97425),p=r(75748),l=r(63661),d=r(97213),c=r(89194),g=r(19377),x=r(26063);let m=["claude","codex","gemini"];async function h(e,{params:t}){try{let r=(0,a.n)(),n=(0,p.gU)(r,t.id);if(!n)return s.NextResponse.json({error:`Worktree '${t.id}' not found`},{status:404});let i=new URL(e.url).searchParams.get("cliTool"),o=i&&m.includes(i)?i:n.cliToolId||"claude",u=d.g.getInstance().getTool(o);if(!await u.isRunning(t.id))return s.NextResponse.json({isRunning:!1,content:"",lineCount:0,cliToolId:o},{status:200});let h=(0,p.zl)(r,t.id,o),f=h?.lastCapturedLine||0,b=await (0,c.NA)(t.id,o,1e4),w=b.split("\n"),A=w.length,q=w.slice(Math.max(0,f)).join("\n"),k=w.map(e=>(0,g.vp)(e)).filter(e=>""!==e.trim()).slice(-15).join("\n"),v=(0,g.vp)(b),R=(0,l.F)(v),j=R.isPrompt,C=!j&&(0,g.Wg)(o,k),P=w.slice(-100).join("\n"),M=(0,x.bq)(t.id);return s.NextResponse.json({isRunning:!0,cliToolId:o,content:q,fullOutput:b,realtimeSnippet:P,lineCount:A,lastCapturedLine:f,isComplete:j,isGenerating:C,thinking:C,thinkingMessage:C?"Claude is thinking...":null,isPromptWaiting:j,promptData:j?R.promptData:null,autoYes:{enabled:M?.enabled??!1,expiresAt:M?.enabled?M.expiresAt:null}})}catch(e){return console.error("Error getting current output:",e),s.NextResponse.json({error:"Failed to get current output"},{status:500})}}let f=new i.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/worktrees/[id]/current-output/route",pathname:"/api/worktrees/[id]/current-output",filename:"route",bundlePath:"app/api/worktrees/[id]/current-output/route"},resolvedPagePath:"/home/runner/work/CommandMate/CommandMate/src/app/api/worktrees/[id]/current-output/route.ts",nextConfigOutput:"",userland:n}),{requestAsyncStorage:b,staticGenerationAsyncStorage:w,serverHooks:A}=f,q="/api/worktrees/[id]/current-output/route";function k(){return(0,u.patchFetch)({serverHooks:A,staticGenerationAsyncStorage:w})}},26063:(e,t,r)=>{r.d(t,{bY:()=>o,bq:()=>i});let n=new Map;function i(e){let t=n.get(e);if(!t)return null;if(Date.now()>t.expiresAt){let r={...t,enabled:!1};return n.set(e,r),r}return t}function o(e,t){if(t){let t=Date.now(),r={enabled:!0,enabledAt:t,expiresAt:t+36e5};return n.set(e,r),r}{let t=n.get(e),r={enabled:!1,enabledAt:t?.enabledAt??0,expiresAt:t?.expiresAt??0};return n.set(e,r),r}}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[8948,5972,7425,7213,1528],()=>r(26683));module.exports=n})();
@@ -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"]}