@akiojin/gwt 2.0.0 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. package/dist/claude-history.d.ts +60 -0
  2. package/dist/claude-history.d.ts.map +1 -0
  3. package/dist/claude-history.js +606 -0
  4. package/dist/claude-history.js.map +1 -0
  5. package/dist/claude.d.ts +12 -0
  6. package/dist/claude.d.ts.map +1 -0
  7. package/dist/claude.js +222 -0
  8. package/dist/claude.js.map +1 -0
  9. package/dist/cli/ui/components/App.d.ts +22 -0
  10. package/dist/cli/ui/components/App.d.ts.map +1 -0
  11. package/dist/cli/ui/components/App.js +557 -0
  12. package/dist/cli/ui/components/App.js.map +1 -0
  13. package/dist/cli/ui/components/common/Confirm.d.ts +13 -0
  14. package/dist/cli/ui/components/common/Confirm.d.ts.map +1 -0
  15. package/dist/cli/ui/components/common/Confirm.js +20 -0
  16. package/dist/cli/ui/components/common/Confirm.js.map +1 -0
  17. package/dist/cli/ui/components/common/ErrorBoundary.d.ts +23 -0
  18. package/dist/cli/ui/components/common/ErrorBoundary.d.ts.map +1 -0
  19. package/dist/cli/ui/components/common/ErrorBoundary.js +37 -0
  20. package/dist/cli/ui/components/common/ErrorBoundary.js.map +1 -0
  21. package/dist/cli/ui/components/common/Input.d.ts +14 -0
  22. package/dist/cli/ui/components/common/Input.d.ts.map +1 -0
  23. package/dist/cli/ui/components/common/Input.js +14 -0
  24. package/dist/cli/ui/components/common/Input.js.map +1 -0
  25. package/dist/cli/ui/components/common/LoadingIndicator.d.ts +19 -0
  26. package/dist/cli/ui/components/common/LoadingIndicator.d.ts.map +1 -0
  27. package/dist/cli/ui/components/common/LoadingIndicator.js +61 -0
  28. package/dist/cli/ui/components/common/LoadingIndicator.js.map +1 -0
  29. package/dist/cli/ui/components/common/Select.d.ts +30 -0
  30. package/dist/cli/ui/components/common/Select.d.ts.map +1 -0
  31. package/dist/cli/ui/components/common/Select.js +140 -0
  32. package/dist/cli/ui/components/common/Select.js.map +1 -0
  33. package/dist/cli/ui/components/parts/Footer.d.ts +15 -0
  34. package/dist/cli/ui/components/parts/Footer.d.ts.map +1 -0
  35. package/dist/cli/ui/components/parts/Footer.js +20 -0
  36. package/dist/cli/ui/components/parts/Footer.js.map +1 -0
  37. package/dist/cli/ui/components/parts/Header.d.ts +29 -0
  38. package/dist/cli/ui/components/parts/Header.d.ts.map +1 -0
  39. package/dist/cli/ui/components/parts/Header.js +19 -0
  40. package/dist/cli/ui/components/parts/Header.js.map +1 -0
  41. package/dist/cli/ui/components/parts/MergeStatusList.d.ts +13 -0
  42. package/dist/cli/ui/components/parts/MergeStatusList.d.ts.map +1 -0
  43. package/dist/cli/ui/components/parts/MergeStatusList.js +52 -0
  44. package/dist/cli/ui/components/parts/MergeStatusList.js.map +1 -0
  45. package/dist/cli/ui/components/parts/ProgressBar.d.ts +13 -0
  46. package/dist/cli/ui/components/parts/ProgressBar.d.ts.map +1 -0
  47. package/dist/cli/ui/components/parts/ProgressBar.js +53 -0
  48. package/dist/cli/ui/components/parts/ProgressBar.js.map +1 -0
  49. package/dist/cli/ui/components/parts/ScrollableList.d.ts +12 -0
  50. package/dist/cli/ui/components/parts/ScrollableList.d.ts.map +1 -0
  51. package/dist/cli/ui/components/parts/ScrollableList.js +11 -0
  52. package/dist/cli/ui/components/parts/ScrollableList.js.map +1 -0
  53. package/dist/cli/ui/components/parts/Stats.d.ts +13 -0
  54. package/dist/cli/ui/components/parts/Stats.d.ts.map +1 -0
  55. package/dist/cli/ui/components/parts/Stats.js +42 -0
  56. package/dist/cli/ui/components/parts/Stats.js.map +1 -0
  57. package/dist/cli/ui/components/screens/AIToolSelectorScreen.d.ts +20 -0
  58. package/dist/cli/ui/components/screens/AIToolSelectorScreen.d.ts.map +1 -0
  59. package/dist/cli/ui/components/screens/AIToolSelectorScreen.js +77 -0
  60. package/dist/cli/ui/components/screens/AIToolSelectorScreen.js.map +1 -0
  61. package/dist/cli/ui/components/screens/BatchMergeProgressScreen.d.ts +14 -0
  62. package/dist/cli/ui/components/screens/BatchMergeProgressScreen.d.ts.map +1 -0
  63. package/dist/cli/ui/components/screens/BatchMergeProgressScreen.js +41 -0
  64. package/dist/cli/ui/components/screens/BatchMergeProgressScreen.js.map +1 -0
  65. package/dist/cli/ui/components/screens/BatchMergeResultScreen.d.ts +14 -0
  66. package/dist/cli/ui/components/screens/BatchMergeResultScreen.d.ts.map +1 -0
  67. package/dist/cli/ui/components/screens/BatchMergeResultScreen.js +71 -0
  68. package/dist/cli/ui/components/screens/BatchMergeResultScreen.js.map +1 -0
  69. package/dist/cli/ui/components/screens/BranchCreatorScreen.d.ts +15 -0
  70. package/dist/cli/ui/components/screens/BranchCreatorScreen.d.ts.map +1 -0
  71. package/dist/cli/ui/components/screens/BranchCreatorScreen.js +142 -0
  72. package/dist/cli/ui/components/screens/BranchCreatorScreen.js.map +1 -0
  73. package/dist/cli/ui/components/screens/BranchListScreen.d.ts +39 -0
  74. package/dist/cli/ui/components/screens/BranchListScreen.d.ts.map +1 -0
  75. package/dist/cli/ui/components/screens/BranchListScreen.js +172 -0
  76. package/dist/cli/ui/components/screens/BranchListScreen.js.map +1 -0
  77. package/dist/cli/ui/components/screens/ExecutionModeSelectorScreen.d.ts +29 -0
  78. package/dist/cli/ui/components/screens/ExecutionModeSelectorScreen.d.ts.map +1 -0
  79. package/dist/cli/ui/components/screens/ExecutionModeSelectorScreen.js +92 -0
  80. package/dist/cli/ui/components/screens/ExecutionModeSelectorScreen.js.map +1 -0
  81. package/dist/cli/ui/components/screens/PRCleanupScreen.d.ts +23 -0
  82. package/dist/cli/ui/components/screens/PRCleanupScreen.d.ts.map +1 -0
  83. package/dist/cli/ui/components/screens/PRCleanupScreen.js +94 -0
  84. package/dist/cli/ui/components/screens/PRCleanupScreen.js.map +1 -0
  85. package/dist/cli/ui/components/screens/SessionSelectorScreen.d.ts +17 -0
  86. package/dist/cli/ui/components/screens/SessionSelectorScreen.d.ts.map +1 -0
  87. package/dist/cli/ui/components/screens/SessionSelectorScreen.js +55 -0
  88. package/dist/cli/ui/components/screens/SessionSelectorScreen.js.map +1 -0
  89. package/dist/cli/ui/components/screens/WorktreeManagerScreen.d.ts +20 -0
  90. package/dist/cli/ui/components/screens/WorktreeManagerScreen.d.ts.map +1 -0
  91. package/dist/cli/ui/components/screens/WorktreeManagerScreen.js +65 -0
  92. package/dist/cli/ui/components/screens/WorktreeManagerScreen.js.map +1 -0
  93. package/dist/cli/ui/hooks/useBatchMerge.d.ts +17 -0
  94. package/dist/cli/ui/hooks/useBatchMerge.d.ts.map +1 -0
  95. package/dist/cli/ui/hooks/useBatchMerge.js +77 -0
  96. package/dist/cli/ui/hooks/useBatchMerge.js.map +1 -0
  97. package/dist/cli/ui/hooks/useGitData.d.ts +20 -0
  98. package/dist/cli/ui/hooks/useGitData.d.ts.map +1 -0
  99. package/dist/cli/ui/hooks/useGitData.js +116 -0
  100. package/dist/cli/ui/hooks/useGitData.js.map +1 -0
  101. package/dist/cli/ui/hooks/useScreenState.d.ts +12 -0
  102. package/dist/cli/ui/hooks/useScreenState.d.ts.map +1 -0
  103. package/dist/cli/ui/hooks/useScreenState.js +30 -0
  104. package/dist/cli/ui/hooks/useScreenState.js.map +1 -0
  105. package/dist/cli/ui/hooks/useTerminalSize.d.ts +9 -0
  106. package/dist/cli/ui/hooks/useTerminalSize.d.ts.map +1 -0
  107. package/dist/cli/ui/hooks/useTerminalSize.js +24 -0
  108. package/dist/cli/ui/hooks/useTerminalSize.js.map +1 -0
  109. package/dist/cli/ui/screens/BranchActionSelectorScreen.d.ts +21 -0
  110. package/dist/cli/ui/screens/BranchActionSelectorScreen.d.ts.map +1 -0
  111. package/dist/cli/ui/screens/BranchActionSelectorScreen.js +61 -0
  112. package/dist/cli/ui/screens/BranchActionSelectorScreen.js.map +1 -0
  113. package/dist/cli/ui/types.d.ts +245 -0
  114. package/dist/cli/ui/types.d.ts.map +1 -0
  115. package/dist/cli/ui/types.js +2 -0
  116. package/dist/cli/ui/types.js.map +1 -0
  117. package/dist/cli/ui/utils/baseBranch.d.ts +4 -0
  118. package/dist/cli/ui/utils/baseBranch.d.ts.map +1 -0
  119. package/dist/cli/ui/utils/baseBranch.js +17 -0
  120. package/dist/cli/ui/utils/baseBranch.js.map +1 -0
  121. package/dist/cli/ui/utils/branchFormatter.d.ts +13 -0
  122. package/dist/cli/ui/utils/branchFormatter.d.ts.map +1 -0
  123. package/dist/cli/ui/utils/branchFormatter.js +202 -0
  124. package/dist/cli/ui/utils/branchFormatter.js.map +1 -0
  125. package/dist/cli/ui/utils/statisticsCalculator.d.ts +9 -0
  126. package/dist/cli/ui/utils/statisticsCalculator.d.ts.map +1 -0
  127. package/dist/cli/ui/utils/statisticsCalculator.js +37 -0
  128. package/dist/cli/ui/utils/statisticsCalculator.js.map +1 -0
  129. package/dist/client/assets/index-CqaYsI0z.js +81 -0
  130. package/dist/client/assets/index-Dy3OxWpP.css +32 -0
  131. package/dist/client/index.html +13 -0
  132. package/dist/codex.d.ts +12 -0
  133. package/dist/codex.d.ts.map +1 -0
  134. package/dist/codex.js +106 -0
  135. package/dist/codex.js.map +1 -0
  136. package/dist/config/builtin-tools.d.ts +19 -0
  137. package/dist/config/builtin-tools.d.ts.map +1 -0
  138. package/dist/config/builtin-tools.js +40 -0
  139. package/dist/config/builtin-tools.js.map +1 -0
  140. package/dist/config/constants.d.ts +74 -0
  141. package/dist/config/constants.d.ts.map +1 -0
  142. package/dist/config/constants.js +90 -0
  143. package/dist/config/constants.js.map +1 -0
  144. package/dist/config/env-history.d.ts +4 -0
  145. package/dist/config/env-history.d.ts.map +1 -0
  146. package/dist/config/env-history.js +34 -0
  147. package/dist/config/env-history.js.map +1 -0
  148. package/dist/config/index.d.ts +24 -0
  149. package/dist/config/index.d.ts.map +1 -0
  150. package/dist/config/index.js +144 -0
  151. package/dist/config/index.js.map +1 -0
  152. package/dist/config/tools.d.ts +40 -0
  153. package/dist/config/tools.d.ts.map +1 -0
  154. package/dist/config/tools.js +238 -0
  155. package/dist/config/tools.js.map +1 -0
  156. package/dist/git.d.ts +145 -0
  157. package/dist/git.d.ts.map +1 -0
  158. package/dist/git.js +871 -0
  159. package/dist/git.js.map +1 -0
  160. package/dist/github.d.ts +14 -0
  161. package/dist/github.d.ts.map +1 -0
  162. package/dist/github.js +123 -0
  163. package/dist/github.js.map +1 -0
  164. package/dist/index.d.ts +15 -0
  165. package/dist/index.d.ts.map +1 -0
  166. package/dist/index.js +510 -0
  167. package/dist/index.js.map +1 -0
  168. package/dist/launcher.d.ts +30 -0
  169. package/dist/launcher.d.ts.map +1 -0
  170. package/dist/launcher.js +116 -0
  171. package/dist/launcher.js.map +1 -0
  172. package/dist/repositories/git.repository.d.ts +38 -0
  173. package/dist/repositories/git.repository.d.ts.map +1 -0
  174. package/dist/repositories/git.repository.js +117 -0
  175. package/dist/repositories/git.repository.js.map +1 -0
  176. package/dist/repositories/github.repository.d.ts +16 -0
  177. package/dist/repositories/github.repository.d.ts.map +1 -0
  178. package/dist/repositories/github.repository.js +61 -0
  179. package/dist/repositories/github.repository.js.map +1 -0
  180. package/dist/repositories/worktree.repository.d.ts +18 -0
  181. package/dist/repositories/worktree.repository.d.ts.map +1 -0
  182. package/dist/repositories/worktree.repository.js +57 -0
  183. package/dist/repositories/worktree.repository.js.map +1 -0
  184. package/dist/services/BatchMergeService.d.ts +45 -0
  185. package/dist/services/BatchMergeService.d.ts.map +1 -0
  186. package/dist/services/BatchMergeService.js +197 -0
  187. package/dist/services/BatchMergeService.js.map +1 -0
  188. package/dist/services/WorktreeOrchestrator.d.ts +37 -0
  189. package/dist/services/WorktreeOrchestrator.d.ts.map +1 -0
  190. package/dist/services/WorktreeOrchestrator.js +74 -0
  191. package/dist/services/WorktreeOrchestrator.js.map +1 -0
  192. package/dist/services/dependency-installer.d.ts +26 -0
  193. package/dist/services/dependency-installer.d.ts.map +1 -0
  194. package/dist/services/dependency-installer.js +139 -0
  195. package/dist/services/dependency-installer.js.map +1 -0
  196. package/dist/services/git.service.d.ts +27 -0
  197. package/dist/services/git.service.d.ts.map +1 -0
  198. package/dist/services/git.service.js +95 -0
  199. package/dist/services/git.service.js.map +1 -0
  200. package/dist/services/github.service.d.ts +14 -0
  201. package/dist/services/github.service.d.ts.map +1 -0
  202. package/dist/services/github.service.js +52 -0
  203. package/dist/services/github.service.js.map +1 -0
  204. package/dist/services/worktree.service.d.ts +20 -0
  205. package/dist/services/worktree.service.d.ts.map +1 -0
  206. package/dist/services/worktree.service.js +52 -0
  207. package/dist/services/worktree.service.js.map +1 -0
  208. package/dist/types/api.d.ts +211 -0
  209. package/dist/types/api.d.ts.map +1 -0
  210. package/dist/types/api.js +8 -0
  211. package/dist/types/api.js.map +1 -0
  212. package/dist/types/tools.d.ts +201 -0
  213. package/dist/types/tools.d.ts.map +1 -0
  214. package/dist/types/tools.js +8 -0
  215. package/dist/types/tools.js.map +1 -0
  216. package/dist/utils/spinner.d.ts +6 -0
  217. package/dist/utils/spinner.d.ts.map +1 -0
  218. package/dist/utils/spinner.js +47 -0
  219. package/dist/utils/spinner.js.map +1 -0
  220. package/dist/utils/terminal.d.ts +20 -0
  221. package/dist/utils/terminal.d.ts.map +1 -0
  222. package/dist/utils/terminal.js +232 -0
  223. package/dist/utils/terminal.js.map +1 -0
  224. package/dist/utils.d.ts +9 -0
  225. package/dist/utils.d.ts.map +1 -0
  226. package/dist/utils.js +48 -0
  227. package/dist/utils.js.map +1 -0
  228. package/dist/web/client/src/components/BranchGraph.d.ts +8 -0
  229. package/dist/web/client/src/components/BranchGraph.d.ts.map +1 -0
  230. package/dist/web/client/src/components/BranchGraph.js +125 -0
  231. package/dist/web/client/src/components/BranchGraph.js.map +1 -0
  232. package/dist/web/client/src/components/EnvEditor.d.ts +20 -0
  233. package/dist/web/client/src/components/EnvEditor.d.ts.map +1 -0
  234. package/dist/web/client/src/components/EnvEditor.js +65 -0
  235. package/dist/web/client/src/components/EnvEditor.js.map +1 -0
  236. package/dist/web/client/src/components/Terminal.d.ts +15 -0
  237. package/dist/web/client/src/components/Terminal.d.ts.map +1 -0
  238. package/dist/web/client/src/components/Terminal.js +112 -0
  239. package/dist/web/client/src/components/Terminal.js.map +1 -0
  240. package/dist/web/client/src/hooks/useBranches.d.ts +16 -0
  241. package/dist/web/client/src/hooks/useBranches.d.ts.map +1 -0
  242. package/dist/web/client/src/hooks/useBranches.js +35 -0
  243. package/dist/web/client/src/hooks/useBranches.js.map +1 -0
  244. package/dist/web/client/src/hooks/useConfig.d.ts +13 -0
  245. package/dist/web/client/src/hooks/useConfig.d.ts.map +1 -0
  246. package/dist/web/client/src/hooks/useConfig.js +27 -0
  247. package/dist/web/client/src/hooks/useConfig.js.map +1 -0
  248. package/dist/web/client/src/hooks/useSessions.d.ts +21 -0
  249. package/dist/web/client/src/hooks/useSessions.d.ts.map +1 -0
  250. package/dist/web/client/src/hooks/useSessions.js +49 -0
  251. package/dist/web/client/src/hooks/useSessions.js.map +1 -0
  252. package/dist/web/client/src/hooks/useWorktrees.d.ts +17 -0
  253. package/dist/web/client/src/hooks/useWorktrees.d.ts.map +1 -0
  254. package/dist/web/client/src/hooks/useWorktrees.js +41 -0
  255. package/dist/web/client/src/hooks/useWorktrees.js.map +1 -0
  256. package/dist/web/client/src/lib/api.d.ts +82 -0
  257. package/dist/web/client/src/lib/api.d.ts.map +1 -0
  258. package/dist/web/client/src/lib/api.js +147 -0
  259. package/dist/web/client/src/lib/api.js.map +1 -0
  260. package/dist/web/client/src/lib/websocket.d.ts +52 -0
  261. package/dist/web/client/src/lib/websocket.d.ts.map +1 -0
  262. package/dist/web/client/src/lib/websocket.js +137 -0
  263. package/dist/web/client/src/lib/websocket.js.map +1 -0
  264. package/dist/web/client/src/main.d.ts +2 -0
  265. package/dist/web/client/src/main.d.ts.map +1 -0
  266. package/dist/web/client/src/main.js +23 -0
  267. package/dist/web/client/src/main.js.map +1 -0
  268. package/dist/web/client/src/pages/BranchDetailPage.d.ts +3 -0
  269. package/dist/web/client/src/pages/BranchDetailPage.d.ts.map +1 -0
  270. package/dist/web/client/src/pages/BranchDetailPage.js +519 -0
  271. package/dist/web/client/src/pages/BranchDetailPage.js.map +1 -0
  272. package/dist/web/client/src/pages/BranchListPage.d.ts +3 -0
  273. package/dist/web/client/src/pages/BranchListPage.d.ts.map +1 -0
  274. package/dist/web/client/src/pages/BranchListPage.js +150 -0
  275. package/dist/web/client/src/pages/BranchListPage.js.map +1 -0
  276. package/dist/web/client/src/pages/ConfigManagementPage.d.ts +3 -0
  277. package/dist/web/client/src/pages/ConfigManagementPage.d.ts.map +1 -0
  278. package/dist/web/client/src/pages/ConfigManagementPage.js +125 -0
  279. package/dist/web/client/src/pages/ConfigManagementPage.js.map +1 -0
  280. package/dist/web/client/src/router.d.ts +9 -0
  281. package/dist/web/client/src/router.d.ts.map +1 -0
  282. package/dist/web/client/src/router.js +27 -0
  283. package/dist/web/client/src/router.js.map +1 -0
  284. package/dist/web/client/vite.config.d.ts +3 -0
  285. package/dist/web/client/vite.config.d.ts.map +1 -0
  286. package/dist/web/client/vite.config.js +21 -0
  287. package/dist/web/client/vite.config.js.map +1 -0
  288. package/dist/web/server/env/importer.d.ts +3 -0
  289. package/dist/web/server/env/importer.d.ts.map +1 -0
  290. package/dist/web/server/env/importer.js +47 -0
  291. package/dist/web/server/env/importer.js.map +1 -0
  292. package/dist/web/server/index.d.ts +11 -0
  293. package/dist/web/server/index.d.ts.map +1 -0
  294. package/dist/web/server/index.js +62 -0
  295. package/dist/web/server/index.js.map +1 -0
  296. package/dist/web/server/pty/manager.d.ts +50 -0
  297. package/dist/web/server/pty/manager.d.ts.map +1 -0
  298. package/dist/web/server/pty/manager.js +143 -0
  299. package/dist/web/server/pty/manager.js.map +1 -0
  300. package/dist/web/server/routes/branches.d.ts +11 -0
  301. package/dist/web/server/routes/branches.d.ts.map +1 -0
  302. package/dist/web/server/routes/branches.js +97 -0
  303. package/dist/web/server/routes/branches.js.map +1 -0
  304. package/dist/web/server/routes/config.d.ts +6 -0
  305. package/dist/web/server/routes/config.d.ts.map +1 -0
  306. package/dist/web/server/routes/config.js +162 -0
  307. package/dist/web/server/routes/config.js.map +1 -0
  308. package/dist/web/server/routes/index.d.ts +13 -0
  309. package/dist/web/server/routes/index.d.ts.map +1 -0
  310. package/dist/web/server/routes/index.js +29 -0
  311. package/dist/web/server/routes/index.js.map +1 -0
  312. package/dist/web/server/routes/sessions.d.ts +12 -0
  313. package/dist/web/server/routes/sessions.d.ts.map +1 -0
  314. package/dist/web/server/routes/sessions.js +95 -0
  315. package/dist/web/server/routes/sessions.js.map +1 -0
  316. package/dist/web/server/routes/worktrees.d.ts +11 -0
  317. package/dist/web/server/routes/worktrees.d.ts.map +1 -0
  318. package/dist/web/server/routes/worktrees.js +80 -0
  319. package/dist/web/server/routes/worktrees.js.map +1 -0
  320. package/dist/web/server/services/branches.d.ts +17 -0
  321. package/dist/web/server/services/branches.d.ts.map +1 -0
  322. package/dist/web/server/services/branches.js +262 -0
  323. package/dist/web/server/services/branches.js.map +1 -0
  324. package/dist/web/server/services/worktrees.d.ts +24 -0
  325. package/dist/web/server/services/worktrees.d.ts.map +1 -0
  326. package/dist/web/server/services/worktrees.js +60 -0
  327. package/dist/web/server/services/worktrees.js.map +1 -0
  328. package/dist/web/server/websocket/handler.d.ts +41 -0
  329. package/dist/web/server/websocket/handler.d.ts.map +1 -0
  330. package/dist/web/server/websocket/handler.js +143 -0
  331. package/dist/web/server/websocket/handler.js.map +1 -0
  332. package/dist/worktree.d.ts +53 -0
  333. package/dist/worktree.d.ts.map +1 -0
  334. package/dist/worktree.js +489 -0
  335. package/dist/worktree.js.map +1 -0
  336. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/web/server/websocket/handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACP;IAApB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE9C;;OAEG;IACI,MAAM,CAAC,UAAqB,EAAE,OAAuB;QAC1D,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,OAAO,CAAC,GAAG,EACX,UAAU,OAAO,CAAC,QAAQ,IAAI,WAAW,EAAE,CAC5C,CAAC;QACF,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,6BAA6B,CAAC,CAAC;YAC1D,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,sBAAsB,SAAS,EAAE,CAAC,CAAC;YAC9D,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;QAEhC,gBAAgB;QAChB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAEnD,4BAA4B;QAC5B,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,gBAAgB;QAChB,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;YACzC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC/D,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC5C,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,oBAAoB;QACpB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,EAAE;YACtC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAkB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACjE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,2BAA2B,QAAQ,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,YAAY;QACZ,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/B,OAAO,CAAC,KAAK,CAAC,+BAA+B,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;YAClE,IAAI,CAAC,UAAU,CAAC,YAAY,CAC1B,SAAS,EACT,QAAQ,EACR,SAAS,EACT,KAAK,CAAC,OAAO,CACd,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,aAAa;QACb,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC1B,OAAO,CAAC,GAAG,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;YACzD,4BAA4B;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,mBAAmB,CACzB,OAAsB,EACtB,UAAuD,EACvD,UAAqB;QAErB,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,QAAQ,GAAG,OAAuB,CAAC;gBACzC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM;YACR,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,SAAS,GAAG,OAAwB,CAAC;gBAC3C,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5D,MAAM;YACR,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC1B,MAAM;YACR,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,UAAU,GAAG,OAA2B,CAAC;gBAC/C,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,yBAAyB,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvE,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,UAAqB,EAAE,IAAY;QACpD,MAAM,OAAO,GAAkB;YAC7B,IAAI,EAAE,QAAQ;YACd,IAAI;YACJ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QACF,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,UAAqB,EAAE,IAAY,EAAE,MAAe;QACnE,MAAM,QAAQ,GAAsC,EAAE,IAAI,EAAE,CAAC;QAC7D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,OAAO,GAAgB;YAC3B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QACF,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,UAAqB,EAAE,QAAgB;QACvD,MAAM,OAAO,GAAiB;YAC5B,IAAI,EAAE,OAAO;YACb,IAAI,EAAE;gBACJ,OAAO,EAAE,QAAQ;aAClB;YACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QACF,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,UAAqB;QACpC,MAAM,OAAO,GAAgB;YAC3B,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QACF,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,CAAC;CACF"}
@@ -0,0 +1,53 @@
1
+ import { WorktreeConfig, CleanupTarget } from "./cli/ui/types.js";
2
+ export type { WorktreeConfig };
3
+ export declare const PROTECTED_BRANCHES: string[];
4
+ export declare function isProtectedBranchName(branchName: string): boolean;
5
+ export declare function switchToProtectedBranch({ branchName, repoRoot, remoteRef, }: {
6
+ branchName: string;
7
+ repoRoot: string;
8
+ remoteRef?: string | null;
9
+ }): Promise<"none" | "local" | "remote">;
10
+ export declare class WorktreeError extends Error {
11
+ cause?: unknown | undefined;
12
+ constructor(message: string, cause?: unknown | undefined);
13
+ }
14
+ export interface WorktreeInfo {
15
+ path: string;
16
+ branch: string;
17
+ head: string;
18
+ isAccessible?: boolean;
19
+ invalidReason?: string;
20
+ }
21
+ /**
22
+ * 追加のworktree(メインworktreeを除く)の一覧を取得
23
+ * @returns {Promise<WorktreeInfo[]>} worktree情報の配列
24
+ * @throws {WorktreeError} worktree一覧の取得に失敗した場合
25
+ */
26
+ export declare function listAdditionalWorktrees(): Promise<WorktreeInfo[]>;
27
+ export declare function worktreeExists(branchName: string): Promise<string | null>;
28
+ export declare function generateWorktreePath(repoRoot: string, branchName: string): Promise<string>;
29
+ /**
30
+ * 指定されたパスに既存のworktreeが存在するか確認
31
+ * @param {string} targetPath - 確認するパス
32
+ * @returns {Promise<WorktreeInfo | null>} 既存のworktree情報、または存在しない場合はnull
33
+ */
34
+ export declare function checkWorktreePathConflict(targetPath: string): Promise<WorktreeInfo | null>;
35
+ /**
36
+ * 衝突を避けるため、代替のworktreeパスを生成
37
+ * @param {string} basePath - 元のパス
38
+ * @returns {Promise<string>} 利用可能な代替パス
39
+ */
40
+ export declare function generateAlternativeWorktreePath(basePath: string): Promise<string>;
41
+ /**
42
+ * 新しいworktreeを作成
43
+ * @param {WorktreeConfig} config - worktreeの設定
44
+ * @throws {WorktreeError} worktreeの作成に失敗した場合
45
+ */
46
+ export declare function createWorktree(config: WorktreeConfig): Promise<void>;
47
+ export declare function removeWorktree(worktreePath: string, force?: boolean): Promise<void>;
48
+ /**
49
+ * マージ済みPRに関連するworktreeおよびローカルブランチのクリーンアップ候補を取得
50
+ * @returns {Promise<CleanupTarget[]>} クリーンアップ候補の配列
51
+ */
52
+ export declare function getMergedPRWorktrees(): Promise<CleanupTarget[]>;
53
+ //# sourceMappingURL=worktree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../src/worktree.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,cAAc,EAEd,aAAa,EAGd,MAAM,mBAAmB,CAAC;AAoB3B,YAAY,EAAE,cAAc,EAAE,CAAC;AAG/B,eAAO,MAAM,kBAAkB,UAAgC,CAAC;AAEhE,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAKjE;AAED,wBAAsB,uBAAuB,CAAC,EAC5C,UAAU,EACV,QAAQ,EACR,SAAS,GACV,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC,CA6BvC;AACD,qBAAa,aAAc,SAAQ,KAAK;IAG7B,KAAK,CAAC,EAAE,OAAO;gBADtB,OAAO,EAAE,MAAM,EACR,KAAK,CAAC,EAAE,OAAO,YAAA;CAKzB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAsCD;;;;GAIG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAgCvE;AAED,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAIxB;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAI9B;AAED;;;;GAIG;AACH,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAiI1E;AAED,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,EACpB,KAAK,UAAQ,GACZ,OAAO,CAAC,IAAI,CAAC,CAef;AAgLD;;;GAGG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAiJrE"}
@@ -0,0 +1,489 @@
1
+ import { execa } from "execa";
2
+ import fs from "node:fs/promises";
3
+ import path from "node:path";
4
+ import chalk from "chalk";
5
+ import { getPullRequestByBranch, getMergedPullRequests } from "./github.js";
6
+ import { hasUncommittedChanges, hasUnpushedCommits, hasUnpushedCommitsInRepo, getLocalBranches, checkRemoteBranchExists, branchHasUniqueCommitsComparedToBase, getRepositoryRoot, getWorktreeRoot, ensureGitignoreEntry, branchExists, getCurrentBranch, } from "./git.js";
7
+ import { getConfig } from "./config/index.js";
8
+ import { GIT_CONFIG } from "./config/constants.js";
9
+ import { startSpinner } from "./utils/spinner.js";
10
+ // 保護対象のブランチ(クリーンアップから除外)
11
+ export const PROTECTED_BRANCHES = ["main", "master", "develop"];
12
+ export function isProtectedBranchName(branchName) {
13
+ const normalized = branchName
14
+ .replace(/^refs\/heads\//, "")
15
+ .replace(/^origin\//, "");
16
+ return PROTECTED_BRANCHES.includes(normalized);
17
+ }
18
+ export async function switchToProtectedBranch({ branchName, repoRoot, remoteRef, }) {
19
+ const currentBranch = await getCurrentBranch();
20
+ if (currentBranch === branchName) {
21
+ return "none";
22
+ }
23
+ const runGit = async (args) => {
24
+ try {
25
+ await execa("git", args, { cwd: repoRoot });
26
+ }
27
+ catch (error) {
28
+ throw new WorktreeError(`Failed to execute git ${args.join(" ")} for protected branch ${branchName}`, error);
29
+ }
30
+ };
31
+ if (await branchExists(branchName)) {
32
+ await runGit(["checkout", branchName]);
33
+ return "local";
34
+ }
35
+ const targetRemote = remoteRef ?? `origin/${branchName}`;
36
+ const fetchRef = targetRemote.replace(/^origin\//, "");
37
+ await runGit(["fetch", "origin", fetchRef]);
38
+ await runGit(["checkout", "-b", branchName, targetRemote]);
39
+ return "remote";
40
+ }
41
+ export class WorktreeError extends Error {
42
+ cause;
43
+ constructor(message, cause) {
44
+ super(message);
45
+ this.cause = cause;
46
+ this.name = "WorktreeError";
47
+ }
48
+ }
49
+ async function listWorktrees() {
50
+ try {
51
+ const { stdout } = await execa("git", ["worktree", "list", "--porcelain"]);
52
+ const worktrees = [];
53
+ const lines = stdout.split("\n");
54
+ let currentWorktree = {};
55
+ for (const line of lines) {
56
+ if (line.startsWith("worktree ")) {
57
+ if (currentWorktree.path) {
58
+ worktrees.push(currentWorktree);
59
+ }
60
+ currentWorktree = { path: line.substring(9) };
61
+ }
62
+ else if (line.startsWith("HEAD ")) {
63
+ currentWorktree.head = line.substring(5);
64
+ }
65
+ else if (line.startsWith("branch ")) {
66
+ currentWorktree.branch = line.substring(7).replace("refs/heads/", "");
67
+ }
68
+ else if (line === "") {
69
+ if (currentWorktree.path) {
70
+ worktrees.push(currentWorktree);
71
+ currentWorktree = {};
72
+ }
73
+ }
74
+ }
75
+ if (currentWorktree.path) {
76
+ worktrees.push(currentWorktree);
77
+ }
78
+ return worktrees;
79
+ }
80
+ catch (error) {
81
+ throw new WorktreeError("Failed to list worktrees", error);
82
+ }
83
+ }
84
+ /**
85
+ * 追加のworktree(メインworktreeを除く)の一覧を取得
86
+ * @returns {Promise<WorktreeInfo[]>} worktree情報の配列
87
+ * @throws {WorktreeError} worktree一覧の取得に失敗した場合
88
+ */
89
+ export async function listAdditionalWorktrees() {
90
+ try {
91
+ const [allWorktrees, repoRoot] = await Promise.all([
92
+ listWorktrees(),
93
+ import("./git.js").then((m) => m.getRepositoryRoot()),
94
+ ]);
95
+ const fs = await import("node:fs");
96
+ // Filter out the main worktree (repository root) and add accessibility info
97
+ const additionalWorktrees = allWorktrees
98
+ .filter((worktree) => worktree.path !== repoRoot)
99
+ .map((worktree) => {
100
+ // パスの存在を確認
101
+ const isAccessible = fs.existsSync(worktree.path);
102
+ const result = {
103
+ ...worktree,
104
+ isAccessible,
105
+ };
106
+ if (!isAccessible) {
107
+ result.invalidReason = "Path not accessible in current environment";
108
+ }
109
+ return result;
110
+ });
111
+ return additionalWorktrees;
112
+ }
113
+ catch (error) {
114
+ throw new WorktreeError("Failed to list additional worktrees", error);
115
+ }
116
+ }
117
+ export async function worktreeExists(branchName) {
118
+ const worktrees = await listWorktrees();
119
+ const worktree = worktrees.find((w) => w.branch === branchName);
120
+ return worktree ? worktree.path : null;
121
+ }
122
+ export async function generateWorktreePath(repoRoot, branchName) {
123
+ const sanitizedBranchName = branchName.replace(/[/\\:*?"<>|]/g, "-");
124
+ const worktreeDir = path.join(repoRoot, ".worktrees");
125
+ return path.join(worktreeDir, sanitizedBranchName);
126
+ }
127
+ /**
128
+ * 指定されたパスに既存のworktreeが存在するか確認
129
+ * @param {string} targetPath - 確認するパス
130
+ * @returns {Promise<WorktreeInfo | null>} 既存のworktree情報、または存在しない場合はnull
131
+ */
132
+ export async function checkWorktreePathConflict(targetPath) {
133
+ const worktrees = await listWorktrees();
134
+ const existingWorktree = worktrees.find((w) => w.path === targetPath);
135
+ return existingWorktree || null;
136
+ }
137
+ /**
138
+ * 衝突を避けるため、代替のworktreeパスを生成
139
+ * @param {string} basePath - 元のパス
140
+ * @returns {Promise<string>} 利用可能な代替パス
141
+ */
142
+ export async function generateAlternativeWorktreePath(basePath) {
143
+ let counter = 2;
144
+ let alternativePath = `${basePath}-${counter}`;
145
+ // 衝突しないパスが見つかるまで試行
146
+ while (await checkWorktreePathConflict(alternativePath)) {
147
+ counter++;
148
+ alternativePath = `${basePath}-${counter}`;
149
+ }
150
+ return alternativePath;
151
+ }
152
+ /**
153
+ * 新しいworktreeを作成
154
+ * @param {WorktreeConfig} config - worktreeの設定
155
+ * @throws {WorktreeError} worktreeの作成に失敗した場合
156
+ */
157
+ export async function createWorktree(config) {
158
+ if (isProtectedBranchName(config.branchName)) {
159
+ throw new WorktreeError(`Branch "${config.branchName}" is protected and cannot be used to create a worktree`);
160
+ }
161
+ try {
162
+ const worktreeParentDir = path.dirname(config.worktreePath);
163
+ try {
164
+ await fs.mkdir(worktreeParentDir, { recursive: true });
165
+ }
166
+ catch (error) {
167
+ const errorWithCode = error;
168
+ const code = errorWithCode && typeof errorWithCode.code === "string"
169
+ ? errorWithCode.code
170
+ : undefined;
171
+ const message = error instanceof Error
172
+ ? error.message
173
+ : typeof errorWithCode?.message === "string"
174
+ ? errorWithCode.message
175
+ : String(error);
176
+ const reason = code === "EEXIST"
177
+ ? `${worktreeParentDir} already exists and is not a directory`
178
+ : message;
179
+ throw new WorktreeError(`Failed to prepare worktree directory for ${config.branchName}: ${reason}`, error);
180
+ }
181
+ const args = ["worktree", "add"];
182
+ if (config.isNewBranch) {
183
+ args.push("-b", config.branchName);
184
+ }
185
+ args.push(config.worktreePath);
186
+ if (config.isNewBranch) {
187
+ args.push(config.baseBranch);
188
+ }
189
+ else {
190
+ args.push(config.branchName);
191
+ }
192
+ const spinnerMessage = `Creating worktree for ${config.branchName}`;
193
+ let stopSpinner;
194
+ try {
195
+ stopSpinner = startSpinner(spinnerMessage);
196
+ }
197
+ catch {
198
+ stopSpinner = undefined;
199
+ }
200
+ const stopActiveSpinner = () => {
201
+ if (stopSpinner) {
202
+ stopSpinner();
203
+ stopSpinner = undefined;
204
+ }
205
+ };
206
+ const gitProcess = execa("git", args);
207
+ // パイプでリアルタイムに進捗を表示する
208
+ const childProcess = gitProcess;
209
+ const attachStream = (stream, pipeTarget) => {
210
+ if (!stream)
211
+ return;
212
+ if (typeof stream.once === "function") {
213
+ stream.once("data", stopActiveSpinner);
214
+ }
215
+ if (typeof stream.pipe === "function") {
216
+ stream.pipe(pipeTarget);
217
+ }
218
+ };
219
+ attachStream(childProcess.stdout, process.stdout);
220
+ attachStream(childProcess.stderr, process.stderr);
221
+ try {
222
+ await gitProcess;
223
+ }
224
+ finally {
225
+ stopActiveSpinner();
226
+ }
227
+ // .gitignoreに.worktrees/を追加(エラーは警告として扱う)
228
+ try {
229
+ let gitignoreRoot = config.repoRoot;
230
+ try {
231
+ gitignoreRoot = await getWorktreeRoot();
232
+ }
233
+ catch (resolveError) {
234
+ if (process.env.DEBUG) {
235
+ const reason = resolveError instanceof Error
236
+ ? resolveError.message
237
+ : String(resolveError);
238
+ console.warn(`Debug: Failed to resolve current worktree root for .gitignore update. Falling back to ${gitignoreRoot}. Reason: ${reason}`);
239
+ }
240
+ }
241
+ await ensureGitignoreEntry(gitignoreRoot, ".worktrees/");
242
+ }
243
+ catch (error) {
244
+ const message = error instanceof Error ? error.message : String(error);
245
+ // .gitignoreの更新失敗は警告としてログに出すが、worktree作成は成功とする
246
+ console.warn(`Warning: Failed to update .gitignore: ${message}`);
247
+ }
248
+ }
249
+ catch (error) {
250
+ // Extract more detailed error information from git command
251
+ const errorOutput = (value) => typeof value === "string" && value.trim().length > 0 ? value : null;
252
+ const gitError = errorOutput(error?.stderr) ??
253
+ errorOutput(error?.stdout) ??
254
+ (error instanceof Error ? error.message : String(error));
255
+ const errorMessage = `Failed to create worktree for ${config.branchName}\nGit error: ${gitError}`;
256
+ throw new WorktreeError(errorMessage, error);
257
+ }
258
+ }
259
+ export async function removeWorktree(worktreePath, force = false) {
260
+ try {
261
+ const args = ["worktree", "remove"];
262
+ if (force) {
263
+ args.push("--force");
264
+ }
265
+ args.push(worktreePath);
266
+ await execa("git", args);
267
+ }
268
+ catch (error) {
269
+ throw new WorktreeError(`Failed to remove worktree at ${worktreePath}`, error);
270
+ }
271
+ }
272
+ async function getWorktreesWithPRStatus() {
273
+ const worktrees = await listAdditionalWorktrees();
274
+ const worktreesWithPR = [];
275
+ for (const worktree of worktrees) {
276
+ if (worktree.branch) {
277
+ const pullRequest = await getPullRequestByBranch(worktree.branch);
278
+ worktreesWithPR.push({
279
+ worktreePath: worktree.path,
280
+ branch: worktree.branch,
281
+ pullRequest,
282
+ });
283
+ }
284
+ }
285
+ return worktreesWithPR;
286
+ }
287
+ /**
288
+ * worktreeに存在しないローカルブランチの中でマージ済みPRに関連するクリーンアップ候補を取得
289
+ * @returns {Promise<CleanupTarget[]>} クリーンアップ候補の配列
290
+ */
291
+ async function getOrphanedLocalBranches({ mergedPRs, baseBranch, repoRoot, }) {
292
+ try {
293
+ // 並列実行で高速化
294
+ const [localBranches, worktrees] = await Promise.all([
295
+ getLocalBranches(),
296
+ listAdditionalWorktrees(),
297
+ ]);
298
+ const cleanupTargets = [];
299
+ const worktreeBranches = new Set(worktrees.map((w) => w.branch).filter(Boolean));
300
+ if (process.env.DEBUG_CLEANUP) {
301
+ console.log(chalk.cyan("Debug: Orphaned branch scan - Available local branches:"));
302
+ localBranches.forEach((b) => console.log(` ${b.name} (type: ${b.type})`));
303
+ console.log(chalk.cyan(`Debug: Worktree branches: ${Array.from(worktreeBranches).join(", ")}`));
304
+ }
305
+ for (const localBranch of localBranches) {
306
+ // 保護対象ブランチはスキップ
307
+ if (isProtectedBranchName(localBranch.name)) {
308
+ if (process.env.DEBUG_CLEANUP) {
309
+ console.log(chalk.yellow(`Debug: Skipping protected branch ${localBranch.name}`));
310
+ }
311
+ continue;
312
+ }
313
+ // worktreeに存在しないローカルブランチのみ対象
314
+ if (!worktreeBranches.has(localBranch.name)) {
315
+ const mergedPR = findMatchingPR(localBranch.name, mergedPRs);
316
+ let hasUnpushed = false;
317
+ try {
318
+ hasUnpushed = await hasUnpushedCommitsInRepo(localBranch.name, repoRoot);
319
+ }
320
+ catch {
321
+ hasUnpushed = true;
322
+ }
323
+ const reasons = [];
324
+ if (mergedPR) {
325
+ reasons.push("merged-pr");
326
+ }
327
+ if (!hasUnpushed) {
328
+ const hasUniqueCommits = await branchHasUniqueCommitsComparedToBase(localBranch.name, baseBranch, repoRoot);
329
+ if (!hasUniqueCommits) {
330
+ reasons.push("no-diff-with-base");
331
+ }
332
+ }
333
+ if (process.env.DEBUG_CLEANUP) {
334
+ console.log(chalk.gray(`Debug: Checking orphaned branch ${localBranch.name} -> PR: ${mergedPR ? "MATCH" : "NO MATCH"}, reasons: ${reasons.join(", ")}`));
335
+ }
336
+ if (reasons.length > 0) {
337
+ let hasRemoteBranch = false;
338
+ try {
339
+ hasRemoteBranch = await checkRemoteBranchExists(localBranch.name);
340
+ }
341
+ catch {
342
+ hasRemoteBranch = false;
343
+ }
344
+ cleanupTargets.push({
345
+ worktreePath: null, // worktreeは存在しない
346
+ branch: localBranch.name,
347
+ pullRequest: mergedPR ?? null,
348
+ hasUncommittedChanges: false, // worktreeが存在しないため常にfalse
349
+ hasUnpushedCommits: hasUnpushed,
350
+ cleanupType: "branch-only",
351
+ hasRemoteBranch,
352
+ reasons,
353
+ });
354
+ }
355
+ }
356
+ }
357
+ if (process.env.DEBUG_CLEANUP) {
358
+ console.log(chalk.cyan(`Debug: Found ${cleanupTargets.length} orphaned branch cleanup targets`));
359
+ }
360
+ return cleanupTargets;
361
+ }
362
+ catch (error) {
363
+ console.error(chalk.red("Error: Failed to get orphaned local branches"));
364
+ if (process.env.DEBUG_CLEANUP) {
365
+ console.error(chalk.red("Debug: Full error details:"), error);
366
+ }
367
+ return [];
368
+ }
369
+ }
370
+ function normalizeBranchName(branchName) {
371
+ return branchName
372
+ .replace(/^origin\//, "")
373
+ .replace(/^refs\/heads\//, "")
374
+ .replace(/^refs\/remotes\/origin\//, "")
375
+ .trim();
376
+ }
377
+ function findMatchingPR(worktreeBranch, mergedPRs) {
378
+ const normalizedWorktreeBranch = normalizeBranchName(worktreeBranch);
379
+ for (const pr of mergedPRs) {
380
+ const normalizedPRBranch = normalizeBranchName(pr.branch);
381
+ if (normalizedWorktreeBranch === normalizedPRBranch) {
382
+ return pr;
383
+ }
384
+ }
385
+ return null;
386
+ }
387
+ /**
388
+ * マージ済みPRに関連するworktreeおよびローカルブランチのクリーンアップ候補を取得
389
+ * @returns {Promise<CleanupTarget[]>} クリーンアップ候補の配列
390
+ */
391
+ export async function getMergedPRWorktrees() {
392
+ const [config, repoRoot] = await Promise.all([
393
+ getConfig(),
394
+ getRepositoryRoot(),
395
+ ]);
396
+ const baseBranch = config.defaultBaseBranch || GIT_CONFIG.DEFAULT_BASE_BRANCH;
397
+ // 並列実行で高速化 - worktreeとマージ済みPRの両方を取得
398
+ const [mergedPRs, worktreesWithPR] = await Promise.all([
399
+ getMergedPullRequests(),
400
+ getWorktreesWithPRStatus(),
401
+ ]);
402
+ const orphanedBranches = await getOrphanedLocalBranches({
403
+ mergedPRs,
404
+ baseBranch,
405
+ repoRoot,
406
+ });
407
+ const cleanupTargets = [];
408
+ if (process.env.DEBUG_CLEANUP) {
409
+ console.log(chalk.cyan("Debug: Available worktrees:"));
410
+ worktreesWithPR.forEach((w) => console.log(` ${w.branch} -> ${w.worktreePath}`));
411
+ console.log(chalk.cyan("Debug: Merged PRs:"));
412
+ mergedPRs.forEach((pr) => console.log(` ${pr.branch} (PR #${pr.number})`));
413
+ }
414
+ for (const worktree of worktreesWithPR) {
415
+ // 保護対象ブランチはスキップ
416
+ if (isProtectedBranchName(worktree.branch)) {
417
+ if (process.env.DEBUG_CLEANUP) {
418
+ console.log(chalk.yellow(`Debug: Skipping protected branch ${worktree.branch}`));
419
+ }
420
+ continue;
421
+ }
422
+ const mergedPR = findMatchingPR(worktree.branch, mergedPRs);
423
+ if (process.env.DEBUG_CLEANUP) {
424
+ const normalizedWorktree = normalizeBranchName(worktree.branch);
425
+ console.log(chalk.gray(`Debug: Checking worktree ${worktree.branch} (normalized: ${normalizedWorktree}) -> ${mergedPR ? "MATCH" : "NO MATCH"}`));
426
+ }
427
+ const cleanupReasons = [];
428
+ if (mergedPR) {
429
+ cleanupReasons.push("merged-pr");
430
+ }
431
+ // worktreeパスの存在を確認
432
+ const fs = await import("node:fs");
433
+ const isAccessible = fs.existsSync(worktree.worktreePath);
434
+ let hasUncommitted = false;
435
+ let hasUnpushed = false;
436
+ if (isAccessible) {
437
+ // worktreeが存在する場合のみ状態をチェック
438
+ try {
439
+ [hasUncommitted, hasUnpushed] = await Promise.all([
440
+ hasUncommittedChanges(worktree.worktreePath),
441
+ hasUnpushedCommits(worktree.worktreePath, worktree.branch),
442
+ ]);
443
+ }
444
+ catch (error) {
445
+ // エラーが発生した場合はデフォルト値を使用
446
+ if (process.env.DEBUG_CLEANUP) {
447
+ console.log(chalk.yellow(`Debug: Failed to check status for worktree ${worktree.worktreePath}: ${error instanceof Error ? error.message : String(error)}`));
448
+ }
449
+ }
450
+ }
451
+ if (!hasUnpushed) {
452
+ const hasUniqueCommits = await branchHasUniqueCommitsComparedToBase(worktree.branch, baseBranch, repoRoot);
453
+ if (!hasUniqueCommits) {
454
+ cleanupReasons.push("no-diff-with-base");
455
+ }
456
+ }
457
+ if (process.env.DEBUG_CLEANUP) {
458
+ console.log(chalk.gray(`Debug: Cleanup reasons for ${worktree.branch}: ${cleanupReasons.length > 0 ? cleanupReasons.join(", ") : "none"}`));
459
+ }
460
+ if (cleanupReasons.length === 0) {
461
+ continue;
462
+ }
463
+ const hasRemoteBranch = await checkRemoteBranchExists(worktree.branch);
464
+ const target = {
465
+ worktreePath: worktree.worktreePath,
466
+ branch: worktree.branch,
467
+ pullRequest: mergedPR ?? null,
468
+ hasUncommittedChanges: hasUncommitted,
469
+ hasUnpushedCommits: hasUnpushed,
470
+ cleanupType: "worktree-and-branch",
471
+ hasRemoteBranch,
472
+ isAccessible,
473
+ reasons: cleanupReasons,
474
+ };
475
+ if (!isAccessible) {
476
+ target.invalidReason = "Path not accessible in current environment";
477
+ }
478
+ cleanupTargets.push(target);
479
+ }
480
+ // orphanedBranches (ローカルブランチのみの削除対象) を追加
481
+ cleanupTargets.push(...orphanedBranches);
482
+ if (process.env.DEBUG_CLEANUP) {
483
+ const worktreeTargets = cleanupTargets.filter((t) => t.cleanupType === "worktree-and-branch").length;
484
+ const branchOnlyTargets = cleanupTargets.filter((t) => t.cleanupType === "branch-only").length;
485
+ console.log(chalk.cyan(`Debug: Found ${cleanupTargets.length} cleanup targets (${worktreeTargets} worktree+branch, ${branchOnlyTargets} branch-only)`));
486
+ }
487
+ return cleanupTargets;
488
+ }
489
+ //# sourceMappingURL=worktree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree.js","sourceRoot":"","sources":["../src/worktree.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akiojin/gwt",
3
- "version": "2.0.0",
3
+ "version": "2.0.3",
4
4
  "description": "Interactive Git worktree manager for Claude Code with graphical branch selection",
5
5
  "main": "dist/index.js",
6
6
  "bin": {