@akiojin/gwt 4.12.1 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (859) hide show
  1. package/README.ja.md +173 -203
  2. package/README.md +170 -212
  3. package/bin/gwt.js +42 -33
  4. package/package.json +20 -107
  5. package/scripts/postinstall.js +152 -0
  6. package/dist/claude-history.d.ts +0 -60
  7. package/dist/claude-history.d.ts.map +0 -1
  8. package/dist/claude-history.js +0 -606
  9. package/dist/claude-history.js.map +0 -1
  10. package/dist/claude.d.ts +0 -42
  11. package/dist/claude.d.ts.map +0 -1
  12. package/dist/claude.js +0 -429
  13. package/dist/claude.js.map +0 -1
  14. package/dist/cli/ui/App.solid.d.ts +0 -29
  15. package/dist/cli/ui/App.solid.d.ts.map +0 -1
  16. package/dist/cli/ui/App.solid.js +0 -1427
  17. package/dist/cli/ui/App.solid.js.map +0 -1
  18. package/dist/cli/ui/components/solid/Footer.d.ts +0 -10
  19. package/dist/cli/ui/components/solid/Footer.d.ts.map +0 -1
  20. package/dist/cli/ui/components/solid/Footer.js +0 -10
  21. package/dist/cli/ui/components/solid/Footer.js.map +0 -1
  22. package/dist/cli/ui/components/solid/Header.d.ts +0 -32
  23. package/dist/cli/ui/components/solid/Header.d.ts.map +0 -1
  24. package/dist/cli/ui/components/solid/Header.js +0 -13
  25. package/dist/cli/ui/components/solid/Header.js.map +0 -1
  26. package/dist/cli/ui/components/solid/HelpOverlay.d.ts +0 -8
  27. package/dist/cli/ui/components/solid/HelpOverlay.d.ts.map +0 -1
  28. package/dist/cli/ui/components/solid/HelpOverlay.js +0 -118
  29. package/dist/cli/ui/components/solid/HelpOverlay.js.map +0 -1
  30. package/dist/cli/ui/components/solid/QuickStartStep.d.ts +0 -17
  31. package/dist/cli/ui/components/solid/QuickStartStep.d.ts.map +0 -1
  32. package/dist/cli/ui/components/solid/QuickStartStep.js +0 -152
  33. package/dist/cli/ui/components/solid/QuickStartStep.js.map +0 -1
  34. package/dist/cli/ui/components/solid/SelectInput.d.ts +0 -22
  35. package/dist/cli/ui/components/solid/SelectInput.d.ts.map +0 -1
  36. package/dist/cli/ui/components/solid/SelectInput.js +0 -45
  37. package/dist/cli/ui/components/solid/SelectInput.js.map +0 -1
  38. package/dist/cli/ui/components/solid/TextInput.d.ts +0 -12
  39. package/dist/cli/ui/components/solid/TextInput.d.ts.map +0 -1
  40. package/dist/cli/ui/components/solid/TextInput.js +0 -9
  41. package/dist/cli/ui/components/solid/TextInput.js.map +0 -1
  42. package/dist/cli/ui/components/solid/WizardController.d.ts +0 -34
  43. package/dist/cli/ui/components/solid/WizardController.d.ts.map +0 -1
  44. package/dist/cli/ui/components/solid/WizardController.js +0 -269
  45. package/dist/cli/ui/components/solid/WizardController.js.map +0 -1
  46. package/dist/cli/ui/components/solid/WizardPopup.d.ts +0 -26
  47. package/dist/cli/ui/components/solid/WizardPopup.d.ts.map +0 -1
  48. package/dist/cli/ui/components/solid/WizardPopup.js +0 -68
  49. package/dist/cli/ui/components/solid/WizardPopup.js.map +0 -1
  50. package/dist/cli/ui/components/solid/WizardSteps.d.ts +0 -57
  51. package/dist/cli/ui/components/solid/WizardSteps.d.ts.map +0 -1
  52. package/dist/cli/ui/components/solid/WizardSteps.js +0 -442
  53. package/dist/cli/ui/components/solid/WizardSteps.js.map +0 -1
  54. package/dist/cli/ui/core/index.d.ts +0 -12
  55. package/dist/cli/ui/core/index.d.ts.map +0 -1
  56. package/dist/cli/ui/core/index.js +0 -15
  57. package/dist/cli/ui/core/index.js.map +0 -1
  58. package/dist/cli/ui/core/keybindings.d.ts +0 -106
  59. package/dist/cli/ui/core/keybindings.d.ts.map +0 -1
  60. package/dist/cli/ui/core/keybindings.js +0 -270
  61. package/dist/cli/ui/core/keybindings.js.map +0 -1
  62. package/dist/cli/ui/core/theme.d.ts +0 -123
  63. package/dist/cli/ui/core/theme.d.ts.map +0 -1
  64. package/dist/cli/ui/core/theme.js +0 -191
  65. package/dist/cli/ui/core/theme.js.map +0 -1
  66. package/dist/cli/ui/core/types.d.ts +0 -156
  67. package/dist/cli/ui/core/types.d.ts.map +0 -1
  68. package/dist/cli/ui/core/types.js +0 -10
  69. package/dist/cli/ui/core/types.js.map +0 -1
  70. package/dist/cli/ui/hooks/solid/useScrollableList.d.ts +0 -26
  71. package/dist/cli/ui/hooks/solid/useScrollableList.d.ts.map +0 -1
  72. package/dist/cli/ui/hooks/solid/useScrollableList.js +0 -89
  73. package/dist/cli/ui/hooks/solid/useScrollableList.js.map +0 -1
  74. package/dist/cli/ui/hooks/solid/useTerminalSize.d.ts +0 -10
  75. package/dist/cli/ui/hooks/solid/useTerminalSize.d.ts.map +0 -1
  76. package/dist/cli/ui/hooks/solid/useTerminalSize.js +0 -16
  77. package/dist/cli/ui/hooks/solid/useTerminalSize.js.map +0 -1
  78. package/dist/cli/ui/index.solid.d.ts +0 -5
  79. package/dist/cli/ui/index.solid.d.ts.map +0 -1
  80. package/dist/cli/ui/index.solid.js +0 -21
  81. package/dist/cli/ui/index.solid.js.map +0 -1
  82. package/dist/cli/ui/screens/solid/BranchListScreen.d.ts +0 -53
  83. package/dist/cli/ui/screens/solid/BranchListScreen.d.ts.map +0 -1
  84. package/dist/cli/ui/screens/solid/BranchListScreen.js +0 -829
  85. package/dist/cli/ui/screens/solid/BranchListScreen.js.map +0 -1
  86. package/dist/cli/ui/screens/solid/ConfirmScreen.d.ts +0 -11
  87. package/dist/cli/ui/screens/solid/ConfirmScreen.d.ts.map +0 -1
  88. package/dist/cli/ui/screens/solid/ConfirmScreen.js +0 -45
  89. package/dist/cli/ui/screens/solid/ConfirmScreen.js.map +0 -1
  90. package/dist/cli/ui/screens/solid/EnvironmentScreen.d.ts +0 -14
  91. package/dist/cli/ui/screens/solid/EnvironmentScreen.d.ts.map +0 -1
  92. package/dist/cli/ui/screens/solid/EnvironmentScreen.js +0 -90
  93. package/dist/cli/ui/screens/solid/EnvironmentScreen.js.map +0 -1
  94. package/dist/cli/ui/screens/solid/ErrorScreen.d.ts +0 -8
  95. package/dist/cli/ui/screens/solid/ErrorScreen.d.ts.map +0 -1
  96. package/dist/cli/ui/screens/solid/ErrorScreen.js +0 -18
  97. package/dist/cli/ui/screens/solid/ErrorScreen.js.map +0 -1
  98. package/dist/cli/ui/screens/solid/InputScreen.d.ts +0 -13
  99. package/dist/cli/ui/screens/solid/InputScreen.d.ts.map +0 -1
  100. package/dist/cli/ui/screens/solid/InputScreen.js +0 -17
  101. package/dist/cli/ui/screens/solid/InputScreen.js.map +0 -1
  102. package/dist/cli/ui/screens/solid/LoadingIndicator.d.ts +0 -9
  103. package/dist/cli/ui/screens/solid/LoadingIndicator.d.ts.map +0 -1
  104. package/dist/cli/ui/screens/solid/LoadingIndicator.js +0 -43
  105. package/dist/cli/ui/screens/solid/LoadingIndicator.js.map +0 -1
  106. package/dist/cli/ui/screens/solid/LogDetailScreen.d.ts +0 -14
  107. package/dist/cli/ui/screens/solid/LogDetailScreen.d.ts.map +0 -1
  108. package/dist/cli/ui/screens/solid/LogDetailScreen.js +0 -34
  109. package/dist/cli/ui/screens/solid/LogDetailScreen.js.map +0 -1
  110. package/dist/cli/ui/screens/solid/LogScreen.d.ts +0 -25
  111. package/dist/cli/ui/screens/solid/LogScreen.d.ts.map +0 -1
  112. package/dist/cli/ui/screens/solid/LogScreen.js +0 -333
  113. package/dist/cli/ui/screens/solid/LogScreen.js.map +0 -1
  114. package/dist/cli/ui/screens/solid/ProfileEnvScreen.d.ts +0 -17
  115. package/dist/cli/ui/screens/solid/ProfileEnvScreen.d.ts.map +0 -1
  116. package/dist/cli/ui/screens/solid/ProfileEnvScreen.js +0 -115
  117. package/dist/cli/ui/screens/solid/ProfileEnvScreen.js.map +0 -1
  118. package/dist/cli/ui/screens/solid/ProfileScreen.d.ts +0 -17
  119. package/dist/cli/ui/screens/solid/ProfileScreen.d.ts.map +0 -1
  120. package/dist/cli/ui/screens/solid/ProfileScreen.js +0 -50
  121. package/dist/cli/ui/screens/solid/ProfileScreen.js.map +0 -1
  122. package/dist/cli/ui/screens/solid/SelectorScreen.d.ts +0 -20
  123. package/dist/cli/ui/screens/solid/SelectorScreen.d.ts.map +0 -1
  124. package/dist/cli/ui/screens/solid/SelectorScreen.js +0 -98
  125. package/dist/cli/ui/screens/solid/SelectorScreen.js.map +0 -1
  126. package/dist/cli/ui/screens/solid/WorktreeCreateScreen.d.ts +0 -13
  127. package/dist/cli/ui/screens/solid/WorktreeCreateScreen.d.ts.map +0 -1
  128. package/dist/cli/ui/screens/solid/WorktreeCreateScreen.js +0 -59
  129. package/dist/cli/ui/screens/solid/WorktreeCreateScreen.js.map +0 -1
  130. package/dist/cli/ui/stores/appStore.d.ts +0 -143
  131. package/dist/cli/ui/stores/appStore.d.ts.map +0 -1
  132. package/dist/cli/ui/stores/appStore.js +0 -158
  133. package/dist/cli/ui/stores/appStore.js.map +0 -1
  134. package/dist/cli/ui/stores/branchStore.d.ts +0 -159
  135. package/dist/cli/ui/stores/branchStore.d.ts.map +0 -1
  136. package/dist/cli/ui/stores/branchStore.js +0 -275
  137. package/dist/cli/ui/stores/branchStore.js.map +0 -1
  138. package/dist/cli/ui/stores/index.d.ts +0 -11
  139. package/dist/cli/ui/stores/index.d.ts.map +0 -1
  140. package/dist/cli/ui/stores/index.js +0 -14
  141. package/dist/cli/ui/stores/index.js.map +0 -1
  142. package/dist/cli/ui/stores/uiStore.d.ts +0 -146
  143. package/dist/cli/ui/stores/uiStore.d.ts.map +0 -1
  144. package/dist/cli/ui/stores/uiStore.js +0 -166
  145. package/dist/cli/ui/stores/uiStore.js.map +0 -1
  146. package/dist/cli/ui/types.d.ts +0 -293
  147. package/dist/cli/ui/types.d.ts.map +0 -1
  148. package/dist/cli/ui/types.js +0 -2
  149. package/dist/cli/ui/types.js.map +0 -1
  150. package/dist/cli/ui/utils/baseBranch.d.ts +0 -4
  151. package/dist/cli/ui/utils/baseBranch.d.ts.map +0 -1
  152. package/dist/cli/ui/utils/baseBranch.js +0 -17
  153. package/dist/cli/ui/utils/baseBranch.js.map +0 -1
  154. package/dist/cli/ui/utils/branchFormatter.d.ts +0 -19
  155. package/dist/cli/ui/utils/branchFormatter.d.ts.map +0 -1
  156. package/dist/cli/ui/utils/branchFormatter.js +0 -199
  157. package/dist/cli/ui/utils/branchFormatter.js.map +0 -1
  158. package/dist/cli/ui/utils/clipboard.d.ts +0 -7
  159. package/dist/cli/ui/utils/clipboard.d.ts.map +0 -1
  160. package/dist/cli/ui/utils/clipboard.js +0 -21
  161. package/dist/cli/ui/utils/clipboard.js.map +0 -1
  162. package/dist/cli/ui/utils/continueSession.d.ts +0 -36
  163. package/dist/cli/ui/utils/continueSession.d.ts.map +0 -1
  164. package/dist/cli/ui/utils/continueSession.js +0 -155
  165. package/dist/cli/ui/utils/continueSession.js.map +0 -1
  166. package/dist/cli/ui/utils/installedVersionCache.d.ts +0 -33
  167. package/dist/cli/ui/utils/installedVersionCache.d.ts.map +0 -1
  168. package/dist/cli/ui/utils/installedVersionCache.js +0 -59
  169. package/dist/cli/ui/utils/installedVersionCache.js.map +0 -1
  170. package/dist/cli/ui/utils/modelOptions.d.ts +0 -10
  171. package/dist/cli/ui/utils/modelOptions.d.ts.map +0 -1
  172. package/dist/cli/ui/utils/modelOptions.js +0 -155
  173. package/dist/cli/ui/utils/modelOptions.js.map +0 -1
  174. package/dist/cli/ui/utils/statisticsCalculator.d.ts +0 -9
  175. package/dist/cli/ui/utils/statisticsCalculator.d.ts.map +0 -1
  176. package/dist/cli/ui/utils/statisticsCalculator.js +0 -37
  177. package/dist/cli/ui/utils/statisticsCalculator.js.map +0 -1
  178. package/dist/cli/ui/utils/versionCache.d.ts +0 -37
  179. package/dist/cli/ui/utils/versionCache.d.ts.map +0 -1
  180. package/dist/cli/ui/utils/versionCache.js +0 -70
  181. package/dist/cli/ui/utils/versionCache.js.map +0 -1
  182. package/dist/cli/ui/utils/versionFetcher.d.ts +0 -41
  183. package/dist/cli/ui/utils/versionFetcher.d.ts.map +0 -1
  184. package/dist/cli/ui/utils/versionFetcher.js +0 -89
  185. package/dist/cli/ui/utils/versionFetcher.js.map +0 -1
  186. package/dist/client/assets/index-BbfV7Wuj.css +0 -1
  187. package/dist/client/assets/index-CoAyq5x1.js +0 -78
  188. package/dist/client/index.html +0 -13
  189. package/dist/codex.d.ts +0 -55
  190. package/dist/codex.d.ts.map +0 -1
  191. package/dist/codex.js +0 -329
  192. package/dist/codex.js.map +0 -1
  193. package/dist/config/builtin-coding-agents.d.ts +0 -27
  194. package/dist/config/builtin-coding-agents.d.ts.map +0 -1
  195. package/dist/config/builtin-coding-agents.js +0 -78
  196. package/dist/config/builtin-coding-agents.js.map +0 -1
  197. package/dist/config/constants.d.ts +0 -76
  198. package/dist/config/constants.d.ts.map +0 -1
  199. package/dist/config/constants.js +0 -92
  200. package/dist/config/constants.js.map +0 -1
  201. package/dist/config/env-history.d.ts +0 -4
  202. package/dist/config/env-history.d.ts.map +0 -1
  203. package/dist/config/env-history.js +0 -34
  204. package/dist/config/env-history.js.map +0 -1
  205. package/dist/config/index.d.ts +0 -51
  206. package/dist/config/index.d.ts.map +0 -1
  207. package/dist/config/index.js +0 -225
  208. package/dist/config/index.js.map +0 -1
  209. package/dist/config/profiles.d.ts +0 -94
  210. package/dist/config/profiles.d.ts.map +0 -1
  211. package/dist/config/profiles.js +0 -284
  212. package/dist/config/profiles.js.map +0 -1
  213. package/dist/config/shared-env.d.ts +0 -41
  214. package/dist/config/shared-env.d.ts.map +0 -1
  215. package/dist/config/shared-env.js +0 -114
  216. package/dist/config/shared-env.js.map +0 -1
  217. package/dist/config/tools.d.ts +0 -50
  218. package/dist/config/tools.d.ts.map +0 -1
  219. package/dist/config/tools.js +0 -239
  220. package/dist/config/tools.js.map +0 -1
  221. package/dist/gemini.d.ts +0 -35
  222. package/dist/gemini.d.ts.map +0 -1
  223. package/dist/gemini.js +0 -299
  224. package/dist/gemini.js.map +0 -1
  225. package/dist/git.d.ts +0 -154
  226. package/dist/git.d.ts.map +0 -1
  227. package/dist/git.js +0 -1012
  228. package/dist/git.js.map +0 -1
  229. package/dist/github.d.ts +0 -14
  230. package/dist/github.d.ts.map +0 -1
  231. package/dist/github.js +0 -123
  232. package/dist/github.js.map +0 -1
  233. package/dist/index.d.ts +0 -16
  234. package/dist/index.d.ts.map +0 -1
  235. package/dist/index.js +0 -782
  236. package/dist/index.js.map +0 -1
  237. package/dist/launcher.d.ts +0 -30
  238. package/dist/launcher.d.ts.map +0 -1
  239. package/dist/launcher.js +0 -185
  240. package/dist/launcher.js.map +0 -1
  241. package/dist/logging/agentOutput.d.ts +0 -21
  242. package/dist/logging/agentOutput.d.ts.map +0 -1
  243. package/dist/logging/agentOutput.js +0 -164
  244. package/dist/logging/agentOutput.js.map +0 -1
  245. package/dist/logging/formatter.d.ts +0 -15
  246. package/dist/logging/formatter.d.ts.map +0 -1
  247. package/dist/logging/formatter.js +0 -95
  248. package/dist/logging/formatter.js.map +0 -1
  249. package/dist/logging/logger.d.ts +0 -24
  250. package/dist/logging/logger.d.ts.map +0 -1
  251. package/dist/logging/logger.js +0 -79
  252. package/dist/logging/logger.js.map +0 -1
  253. package/dist/logging/reader.d.ts +0 -34
  254. package/dist/logging/reader.d.ts.map +0 -1
  255. package/dist/logging/reader.js +0 -178
  256. package/dist/logging/reader.js.map +0 -1
  257. package/dist/logging/rotation.d.ts +0 -6
  258. package/dist/logging/rotation.d.ts.map +0 -1
  259. package/dist/logging/rotation.js +0 -26
  260. package/dist/logging/rotation.js.map +0 -1
  261. package/dist/opentui/highlights-eq9cgrbb.scm +0 -604
  262. package/dist/opentui/highlights-ghv9g403.scm +0 -205
  263. package/dist/opentui/highlights-hk7bwhj4.scm +0 -284
  264. package/dist/opentui/highlights-r812a2qc.scm +0 -150
  265. package/dist/opentui/highlights-x6tmsnaa.scm +0 -115
  266. package/dist/opentui/index.solid.d.ts +0 -2
  267. package/dist/opentui/index.solid.d.ts.map +0 -1
  268. package/dist/opentui/index.solid.js +0 -53721
  269. package/dist/opentui/index.solid.js.map +0 -1
  270. package/dist/opentui/injections-73j83es3.scm +0 -27
  271. package/dist/opentui/tree-sitter-javascript-nd0q4pe9.wasm +0 -0
  272. package/dist/opentui/tree-sitter-markdown-411r6y9b.wasm +0 -0
  273. package/dist/opentui/tree-sitter-markdown_inline-j5349f42.wasm +0 -0
  274. package/dist/opentui/tree-sitter-typescript-zxjzwt75.wasm +0 -0
  275. package/dist/opentui/tree-sitter-zig-e78zbjpm.wasm +0 -0
  276. package/dist/repositories/git.repository.d.ts +0 -38
  277. package/dist/repositories/git.repository.d.ts.map +0 -1
  278. package/dist/repositories/git.repository.js +0 -117
  279. package/dist/repositories/git.repository.js.map +0 -1
  280. package/dist/repositories/github.repository.d.ts +0 -16
  281. package/dist/repositories/github.repository.d.ts.map +0 -1
  282. package/dist/repositories/github.repository.js +0 -61
  283. package/dist/repositories/github.repository.js.map +0 -1
  284. package/dist/repositories/worktree.repository.d.ts +0 -19
  285. package/dist/repositories/worktree.repository.d.ts.map +0 -1
  286. package/dist/repositories/worktree.repository.js +0 -64
  287. package/dist/repositories/worktree.repository.js.map +0 -1
  288. package/dist/services/BatchMergeService.d.ts +0 -45
  289. package/dist/services/BatchMergeService.d.ts.map +0 -1
  290. package/dist/services/BatchMergeService.js +0 -197
  291. package/dist/services/BatchMergeService.js.map +0 -1
  292. package/dist/services/WorktreeOrchestrator.d.ts +0 -37
  293. package/dist/services/WorktreeOrchestrator.d.ts.map +0 -1
  294. package/dist/services/WorktreeOrchestrator.js +0 -74
  295. package/dist/services/WorktreeOrchestrator.js.map +0 -1
  296. package/dist/services/codingAgentCommandResolver.d.ts +0 -10
  297. package/dist/services/codingAgentCommandResolver.d.ts.map +0 -1
  298. package/dist/services/codingAgentCommandResolver.js +0 -81
  299. package/dist/services/codingAgentCommandResolver.js.map +0 -1
  300. package/dist/services/codingAgentResolver.d.ts +0 -43
  301. package/dist/services/codingAgentResolver.d.ts.map +0 -1
  302. package/dist/services/codingAgentResolver.js +0 -269
  303. package/dist/services/codingAgentResolver.js.map +0 -1
  304. package/dist/services/dependency-installer.d.ts +0 -26
  305. package/dist/services/dependency-installer.d.ts.map +0 -1
  306. package/dist/services/dependency-installer.js +0 -134
  307. package/dist/services/dependency-installer.js.map +0 -1
  308. package/dist/services/git.service.d.ts +0 -27
  309. package/dist/services/git.service.d.ts.map +0 -1
  310. package/dist/services/git.service.js +0 -97
  311. package/dist/services/git.service.js.map +0 -1
  312. package/dist/services/github.service.d.ts +0 -14
  313. package/dist/services/github.service.d.ts.map +0 -1
  314. package/dist/services/github.service.js +0 -52
  315. package/dist/services/github.service.js.map +0 -1
  316. package/dist/services/worktree.service.d.ts +0 -20
  317. package/dist/services/worktree.service.d.ts.map +0 -1
  318. package/dist/services/worktree.service.js +0 -52
  319. package/dist/services/worktree.service.js.map +0 -1
  320. package/dist/shared/codingAgentConstants.d.ts +0 -12
  321. package/dist/shared/codingAgentConstants.d.ts.map +0 -1
  322. package/dist/shared/codingAgentConstants.js +0 -95
  323. package/dist/shared/codingAgentConstants.js.map +0 -1
  324. package/dist/types/api.d.ts +0 -225
  325. package/dist/types/api.d.ts.map +0 -1
  326. package/dist/types/api.js +0 -8
  327. package/dist/types/api.js.map +0 -1
  328. package/dist/types/coding-agent.d.ts +0 -62
  329. package/dist/types/coding-agent.d.ts.map +0 -1
  330. package/dist/types/coding-agent.js +0 -29
  331. package/dist/types/coding-agent.js.map +0 -1
  332. package/dist/types/profiles.d.ts +0 -54
  333. package/dist/types/profiles.d.ts.map +0 -1
  334. package/dist/types/profiles.js +0 -33
  335. package/dist/types/profiles.js.map +0 -1
  336. package/dist/types/tools.d.ts +0 -230
  337. package/dist/types/tools.d.ts.map +0 -1
  338. package/dist/types/tools.js +0 -8
  339. package/dist/types/tools.js.map +0 -1
  340. package/dist/utils/bun-runtime.d.ts +0 -12
  341. package/dist/utils/bun-runtime.d.ts.map +0 -1
  342. package/dist/utils/bun-runtime.js +0 -13
  343. package/dist/utils/bun-runtime.js.map +0 -1
  344. package/dist/utils/coding-agent-colors.d.ts +0 -88
  345. package/dist/utils/coding-agent-colors.d.ts.map +0 -1
  346. package/dist/utils/coding-agent-colors.js +0 -137
  347. package/dist/utils/coding-agent-colors.js.map +0 -1
  348. package/dist/utils/command.d.ts +0 -62
  349. package/dist/utils/command.d.ts.map +0 -1
  350. package/dist/utils/command.js +0 -186
  351. package/dist/utils/command.js.map +0 -1
  352. package/dist/utils/error-utils.d.ts +0 -27
  353. package/dist/utils/error-utils.d.ts.map +0 -1
  354. package/dist/utils/error-utils.js +0 -98
  355. package/dist/utils/error-utils.js.map +0 -1
  356. package/dist/utils/npmRegistry.d.ts +0 -61
  357. package/dist/utils/npmRegistry.d.ts.map +0 -1
  358. package/dist/utils/npmRegistry.js +0 -180
  359. package/dist/utils/npmRegistry.js.map +0 -1
  360. package/dist/utils/prompt.d.ts +0 -18
  361. package/dist/utils/prompt.d.ts.map +0 -1
  362. package/dist/utils/prompt.js +0 -107
  363. package/dist/utils/prompt.js.map +0 -1
  364. package/dist/utils/session/common.d.ts +0 -108
  365. package/dist/utils/session/common.d.ts.map +0 -1
  366. package/dist/utils/session/common.js +0 -439
  367. package/dist/utils/session/common.js.map +0 -1
  368. package/dist/utils/session/index.d.ts +0 -16
  369. package/dist/utils/session/index.d.ts.map +0 -1
  370. package/dist/utils/session/index.js +0 -20
  371. package/dist/utils/session/index.js.map +0 -1
  372. package/dist/utils/session/parsers/claude.d.ts +0 -62
  373. package/dist/utils/session/parsers/claude.d.ts.map +0 -1
  374. package/dist/utils/session/parsers/claude.js +0 -224
  375. package/dist/utils/session/parsers/claude.js.map +0 -1
  376. package/dist/utils/session/parsers/codex.d.ts +0 -37
  377. package/dist/utils/session/parsers/codex.d.ts.map +0 -1
  378. package/dist/utils/session/parsers/codex.js +0 -139
  379. package/dist/utils/session/parsers/codex.js.map +0 -1
  380. package/dist/utils/session/parsers/gemini.d.ts +0 -22
  381. package/dist/utils/session/parsers/gemini.d.ts.map +0 -1
  382. package/dist/utils/session/parsers/gemini.js +0 -118
  383. package/dist/utils/session/parsers/gemini.js.map +0 -1
  384. package/dist/utils/session/parsers/index.d.ts +0 -8
  385. package/dist/utils/session/parsers/index.d.ts.map +0 -1
  386. package/dist/utils/session/parsers/index.js +0 -12
  387. package/dist/utils/session/parsers/index.js.map +0 -1
  388. package/dist/utils/session/parsers/opencode.d.ts +0 -23
  389. package/dist/utils/session/parsers/opencode.d.ts.map +0 -1
  390. package/dist/utils/session/parsers/opencode.js +0 -126
  391. package/dist/utils/session/parsers/opencode.js.map +0 -1
  392. package/dist/utils/session/types.d.ts +0 -49
  393. package/dist/utils/session/types.d.ts.map +0 -1
  394. package/dist/utils/session/types.js +0 -5
  395. package/dist/utils/session/types.js.map +0 -1
  396. package/dist/utils/session.d.ts +0 -16
  397. package/dist/utils/session.d.ts.map +0 -1
  398. package/dist/utils/session.js +0 -16
  399. package/dist/utils/session.js.map +0 -1
  400. package/dist/utils/spinner.d.ts +0 -6
  401. package/dist/utils/spinner.d.ts.map +0 -1
  402. package/dist/utils/spinner.js +0 -47
  403. package/dist/utils/spinner.js.map +0 -1
  404. package/dist/utils/terminal.d.ts +0 -64
  405. package/dist/utils/terminal.d.ts.map +0 -1
  406. package/dist/utils/terminal.js +0 -270
  407. package/dist/utils/terminal.js.map +0 -1
  408. package/dist/utils/webui.d.ts +0 -8
  409. package/dist/utils/webui.d.ts.map +0 -1
  410. package/dist/utils/webui.js +0 -35
  411. package/dist/utils/webui.js.map +0 -1
  412. package/dist/utils.d.ts +0 -18
  413. package/dist/utils.d.ts.map +0 -1
  414. package/dist/utils.js +0 -79
  415. package/dist/utils.js.map +0 -1
  416. package/dist/web/client/src/components/BranchGraph.d.ts +0 -13
  417. package/dist/web/client/src/components/BranchGraph.d.ts.map +0 -1
  418. package/dist/web/client/src/components/BranchGraph.js +0 -49
  419. package/dist/web/client/src/components/BranchGraph.js.map +0 -1
  420. package/dist/web/client/src/components/CodingAgentLaunchModal.d.ts +0 -9
  421. package/dist/web/client/src/components/CodingAgentLaunchModal.d.ts.map +0 -1
  422. package/dist/web/client/src/components/CodingAgentLaunchModal.js +0 -354
  423. package/dist/web/client/src/components/CodingAgentLaunchModal.js.map +0 -1
  424. package/dist/web/client/src/components/CustomCodingAgentForm.d.ts +0 -23
  425. package/dist/web/client/src/components/CustomCodingAgentForm.d.ts.map +0 -1
  426. package/dist/web/client/src/components/CustomCodingAgentForm.js +0 -209
  427. package/dist/web/client/src/components/CustomCodingAgentForm.js.map +0 -1
  428. package/dist/web/client/src/components/CustomCodingAgentList.d.ts +0 -10
  429. package/dist/web/client/src/components/CustomCodingAgentList.d.ts.map +0 -1
  430. package/dist/web/client/src/components/CustomCodingAgentList.js +0 -57
  431. package/dist/web/client/src/components/CustomCodingAgentList.js.map +0 -1
  432. package/dist/web/client/src/components/EnvEditor.d.ts +0 -20
  433. package/dist/web/client/src/components/EnvEditor.d.ts.map +0 -1
  434. package/dist/web/client/src/components/EnvEditor.js +0 -75
  435. package/dist/web/client/src/components/EnvEditor.js.map +0 -1
  436. package/dist/web/client/src/components/EnvironmentEditor.d.ts +0 -17
  437. package/dist/web/client/src/components/EnvironmentEditor.d.ts.map +0 -1
  438. package/dist/web/client/src/components/EnvironmentEditor.js +0 -22
  439. package/dist/web/client/src/components/EnvironmentEditor.js.map +0 -1
  440. package/dist/web/client/src/components/Terminal.d.ts +0 -15
  441. package/dist/web/client/src/components/Terminal.d.ts.map +0 -1
  442. package/dist/web/client/src/components/Terminal.js +0 -119
  443. package/dist/web/client/src/components/Terminal.js.map +0 -1
  444. package/dist/web/client/src/components/branch-detail/BranchInfoCards.d.ts +0 -10
  445. package/dist/web/client/src/components/branch-detail/BranchInfoCards.d.ts.map +0 -1
  446. package/dist/web/client/src/components/branch-detail/BranchInfoCards.js +0 -107
  447. package/dist/web/client/src/components/branch-detail/BranchInfoCards.js.map +0 -1
  448. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.d.ts +0 -22
  449. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.d.ts.map +0 -1
  450. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.js +0 -80
  451. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.js.map +0 -1
  452. package/dist/web/client/src/components/branch-detail/TerminalPanel.d.ts +0 -11
  453. package/dist/web/client/src/components/branch-detail/TerminalPanel.d.ts.map +0 -1
  454. package/dist/web/client/src/components/branch-detail/TerminalPanel.js +0 -32
  455. package/dist/web/client/src/components/branch-detail/TerminalPanel.js.map +0 -1
  456. package/dist/web/client/src/components/branch-detail/ToolLauncher.d.ts +0 -40
  457. package/dist/web/client/src/components/branch-detail/ToolLauncher.d.ts.map +0 -1
  458. package/dist/web/client/src/components/branch-detail/ToolLauncher.js +0 -147
  459. package/dist/web/client/src/components/branch-detail/ToolLauncher.js.map +0 -1
  460. package/dist/web/client/src/components/branch-detail/index.d.ts +0 -5
  461. package/dist/web/client/src/components/branch-detail/index.d.ts.map +0 -1
  462. package/dist/web/client/src/components/branch-detail/index.js +0 -5
  463. package/dist/web/client/src/components/branch-detail/index.js.map +0 -1
  464. package/dist/web/client/src/components/common/BranchCard.d.ts +0 -17
  465. package/dist/web/client/src/components/common/BranchCard.d.ts.map +0 -1
  466. package/dist/web/client/src/components/common/BranchCard.js +0 -36
  467. package/dist/web/client/src/components/common/BranchCard.js.map +0 -1
  468. package/dist/web/client/src/components/common/MetricCard.d.ts +0 -10
  469. package/dist/web/client/src/components/common/MetricCard.d.ts.map +0 -1
  470. package/dist/web/client/src/components/common/MetricCard.js +0 -10
  471. package/dist/web/client/src/components/common/MetricCard.js.map +0 -1
  472. package/dist/web/client/src/components/common/PageHeader.d.ts +0 -12
  473. package/dist/web/client/src/components/common/PageHeader.d.ts.map +0 -1
  474. package/dist/web/client/src/components/common/PageHeader.js +0 -14
  475. package/dist/web/client/src/components/common/PageHeader.js.map +0 -1
  476. package/dist/web/client/src/components/common/SearchInput.d.ts +0 -14
  477. package/dist/web/client/src/components/common/SearchInput.d.ts.map +0 -1
  478. package/dist/web/client/src/components/common/SearchInput.js +0 -15
  479. package/dist/web/client/src/components/common/SearchInput.js.map +0 -1
  480. package/dist/web/client/src/components/common/StatusBadge.d.ts +0 -10
  481. package/dist/web/client/src/components/common/StatusBadge.d.ts.map +0 -1
  482. package/dist/web/client/src/components/common/StatusBadge.js +0 -15
  483. package/dist/web/client/src/components/common/StatusBadge.js.map +0 -1
  484. package/dist/web/client/src/components/common/index.d.ts +0 -6
  485. package/dist/web/client/src/components/common/index.d.ts.map +0 -1
  486. package/dist/web/client/src/components/common/index.js +0 -6
  487. package/dist/web/client/src/components/common/index.js.map +0 -1
  488. package/dist/web/client/src/components/graph/BranchDetailPanel.d.ts +0 -15
  489. package/dist/web/client/src/components/graph/BranchDetailPanel.d.ts.map +0 -1
  490. package/dist/web/client/src/components/graph/BranchDetailPanel.js +0 -57
  491. package/dist/web/client/src/components/graph/BranchDetailPanel.js.map +0 -1
  492. package/dist/web/client/src/components/graph/BranchNode.d.ts +0 -13
  493. package/dist/web/client/src/components/graph/BranchNode.d.ts.map +0 -1
  494. package/dist/web/client/src/components/graph/BranchNode.js +0 -103
  495. package/dist/web/client/src/components/graph/BranchNode.js.map +0 -1
  496. package/dist/web/client/src/components/graph/ClusterNode.d.ts +0 -13
  497. package/dist/web/client/src/components/graph/ClusterNode.d.ts.map +0 -1
  498. package/dist/web/client/src/components/graph/ClusterNode.js +0 -109
  499. package/dist/web/client/src/components/graph/ClusterNode.js.map +0 -1
  500. package/dist/web/client/src/components/graph/SynapticCanvas.d.ts +0 -17
  501. package/dist/web/client/src/components/graph/SynapticCanvas.d.ts.map +0 -1
  502. package/dist/web/client/src/components/graph/SynapticCanvas.js +0 -94
  503. package/dist/web/client/src/components/graph/SynapticCanvas.js.map +0 -1
  504. package/dist/web/client/src/components/graph/SynapticEdge.d.ts +0 -13
  505. package/dist/web/client/src/components/graph/SynapticEdge.d.ts.map +0 -1
  506. package/dist/web/client/src/components/graph/SynapticEdge.js +0 -113
  507. package/dist/web/client/src/components/graph/SynapticEdge.js.map +0 -1
  508. package/dist/web/client/src/components/graph/graphUtils.d.ts +0 -67
  509. package/dist/web/client/src/components/graph/graphUtils.d.ts.map +0 -1
  510. package/dist/web/client/src/components/graph/graphUtils.js +0 -175
  511. package/dist/web/client/src/components/graph/graphUtils.js.map +0 -1
  512. package/dist/web/client/src/components/graph/index.d.ts +0 -10
  513. package/dist/web/client/src/components/graph/index.d.ts.map +0 -1
  514. package/dist/web/client/src/components/graph/index.js +0 -10
  515. package/dist/web/client/src/components/graph/index.js.map +0 -1
  516. package/dist/web/client/src/components/ui/alert.d.ts +0 -9
  517. package/dist/web/client/src/components/ui/alert.d.ts.map +0 -1
  518. package/dist/web/client/src/components/ui/alert.js +0 -25
  519. package/dist/web/client/src/components/ui/alert.js.map +0 -1
  520. package/dist/web/client/src/components/ui/badge.d.ts +0 -10
  521. package/dist/web/client/src/components/ui/badge.d.ts.map +0 -1
  522. package/dist/web/client/src/components/ui/badge.js +0 -25
  523. package/dist/web/client/src/components/ui/badge.js.map +0 -1
  524. package/dist/web/client/src/components/ui/button.d.ts +0 -12
  525. package/dist/web/client/src/components/ui/button.d.ts.map +0 -1
  526. package/dist/web/client/src/components/ui/button.js +0 -33
  527. package/dist/web/client/src/components/ui/button.js.map +0 -1
  528. package/dist/web/client/src/components/ui/card.d.ts +0 -9
  529. package/dist/web/client/src/components/ui/card.d.ts.map +0 -1
  530. package/dist/web/client/src/components/ui/card.js +0 -16
  531. package/dist/web/client/src/components/ui/card.js.map +0 -1
  532. package/dist/web/client/src/components/ui/index.d.ts +0 -8
  533. package/dist/web/client/src/components/ui/index.d.ts.map +0 -1
  534. package/dist/web/client/src/components/ui/index.js +0 -8
  535. package/dist/web/client/src/components/ui/index.js.map +0 -1
  536. package/dist/web/client/src/components/ui/input.d.ts +0 -4
  537. package/dist/web/client/src/components/ui/input.d.ts.map +0 -1
  538. package/dist/web/client/src/components/ui/input.js +0 -8
  539. package/dist/web/client/src/components/ui/input.js.map +0 -1
  540. package/dist/web/client/src/components/ui/select.d.ts +0 -14
  541. package/dist/web/client/src/components/ui/select.d.ts.map +0 -1
  542. package/dist/web/client/src/components/ui/select.js +0 -39
  543. package/dist/web/client/src/components/ui/select.js.map +0 -1
  544. package/dist/web/client/src/components/ui/table.d.ts +0 -11
  545. package/dist/web/client/src/components/ui/table.d.ts.map +0 -1
  546. package/dist/web/client/src/components/ui/table.js +0 -21
  547. package/dist/web/client/src/components/ui/table.js.map +0 -1
  548. package/dist/web/client/src/hooks/useBranches.d.ts +0 -16
  549. package/dist/web/client/src/hooks/useBranches.d.ts.map +0 -1
  550. package/dist/web/client/src/hooks/useBranches.js +0 -35
  551. package/dist/web/client/src/hooks/useBranches.js.map +0 -1
  552. package/dist/web/client/src/hooks/useConfig.d.ts +0 -13
  553. package/dist/web/client/src/hooks/useConfig.d.ts.map +0 -1
  554. package/dist/web/client/src/hooks/useConfig.js +0 -27
  555. package/dist/web/client/src/hooks/useConfig.js.map +0 -1
  556. package/dist/web/client/src/hooks/useSessions.d.ts +0 -21
  557. package/dist/web/client/src/hooks/useSessions.d.ts.map +0 -1
  558. package/dist/web/client/src/hooks/useSessions.js +0 -54
  559. package/dist/web/client/src/hooks/useSessions.js.map +0 -1
  560. package/dist/web/client/src/hooks/useWorktrees.d.ts +0 -17
  561. package/dist/web/client/src/hooks/useWorktrees.d.ts.map +0 -1
  562. package/dist/web/client/src/hooks/useWorktrees.js +0 -41
  563. package/dist/web/client/src/hooks/useWorktrees.js.map +0 -1
  564. package/dist/web/client/src/lib/api.d.ts +0 -82
  565. package/dist/web/client/src/lib/api.d.ts.map +0 -1
  566. package/dist/web/client/src/lib/api.js +0 -147
  567. package/dist/web/client/src/lib/api.js.map +0 -1
  568. package/dist/web/client/src/lib/coding-agent-colors.d.ts +0 -86
  569. package/dist/web/client/src/lib/coding-agent-colors.d.ts.map +0 -1
  570. package/dist/web/client/src/lib/coding-agent-colors.js +0 -135
  571. package/dist/web/client/src/lib/coding-agent-colors.js.map +0 -1
  572. package/dist/web/client/src/lib/utils.d.ts +0 -7
  573. package/dist/web/client/src/lib/utils.d.ts.map +0 -1
  574. package/dist/web/client/src/lib/utils.js +0 -10
  575. package/dist/web/client/src/lib/utils.js.map +0 -1
  576. package/dist/web/client/src/lib/websocket.d.ts +0 -59
  577. package/dist/web/client/src/lib/websocket.d.ts.map +0 -1
  578. package/dist/web/client/src/lib/websocket.js +0 -182
  579. package/dist/web/client/src/lib/websocket.js.map +0 -1
  580. package/dist/web/client/src/main.d.ts +0 -2
  581. package/dist/web/client/src/main.d.ts.map +0 -1
  582. package/dist/web/client/src/main.js +0 -23
  583. package/dist/web/client/src/main.js.map +0 -1
  584. package/dist/web/client/src/pages/BranchDetailPage.d.ts +0 -3
  585. package/dist/web/client/src/pages/BranchDetailPage.d.ts.map +0 -1
  586. package/dist/web/client/src/pages/BranchDetailPage.js +0 -365
  587. package/dist/web/client/src/pages/BranchDetailPage.js.map +0 -1
  588. package/dist/web/client/src/pages/BranchListPage.d.ts +0 -3
  589. package/dist/web/client/src/pages/BranchListPage.d.ts.map +0 -1
  590. package/dist/web/client/src/pages/BranchListPage.js +0 -118
  591. package/dist/web/client/src/pages/BranchListPage.js.map +0 -1
  592. package/dist/web/client/src/pages/ConfigManagementPage.d.ts +0 -3
  593. package/dist/web/client/src/pages/ConfigManagementPage.d.ts.map +0 -1
  594. package/dist/web/client/src/pages/ConfigManagementPage.js +0 -132
  595. package/dist/web/client/src/pages/ConfigManagementPage.js.map +0 -1
  596. package/dist/web/client/src/pages/ConfigPage.d.ts +0 -3
  597. package/dist/web/client/src/pages/ConfigPage.d.ts.map +0 -1
  598. package/dist/web/client/src/pages/ConfigPage.js +0 -220
  599. package/dist/web/client/src/pages/ConfigPage.js.map +0 -1
  600. package/dist/web/client/src/router.d.ts +0 -9
  601. package/dist/web/client/src/router.d.ts.map +0 -1
  602. package/dist/web/client/src/router.js +0 -27
  603. package/dist/web/client/src/router.js.map +0 -1
  604. package/dist/web/client/vite.config.d.ts +0 -3
  605. package/dist/web/client/vite.config.d.ts.map +0 -1
  606. package/dist/web/client/vite.config.js +0 -28
  607. package/dist/web/client/vite.config.js.map +0 -1
  608. package/dist/web/server/env/importer.d.ts +0 -3
  609. package/dist/web/server/env/importer.d.ts.map +0 -1
  610. package/dist/web/server/env/importer.js +0 -51
  611. package/dist/web/server/env/importer.js.map +0 -1
  612. package/dist/web/server/index.d.ts +0 -33
  613. package/dist/web/server/index.d.ts.map +0 -1
  614. package/dist/web/server/index.js +0 -102
  615. package/dist/web/server/index.js.map +0 -1
  616. package/dist/web/server/pty/manager.d.ts +0 -54
  617. package/dist/web/server/pty/manager.d.ts.map +0 -1
  618. package/dist/web/server/pty/manager.js +0 -303
  619. package/dist/web/server/pty/manager.js.map +0 -1
  620. package/dist/web/server/routes/branches.d.ts +0 -11
  621. package/dist/web/server/routes/branches.d.ts.map +0 -1
  622. package/dist/web/server/routes/branches.js +0 -97
  623. package/dist/web/server/routes/branches.js.map +0 -1
  624. package/dist/web/server/routes/config.d.ts +0 -6
  625. package/dist/web/server/routes/config.d.ts.map +0 -1
  626. package/dist/web/server/routes/config.js +0 -162
  627. package/dist/web/server/routes/config.js.map +0 -1
  628. package/dist/web/server/routes/index.d.ts +0 -13
  629. package/dist/web/server/routes/index.d.ts.map +0 -1
  630. package/dist/web/server/routes/index.js +0 -29
  631. package/dist/web/server/routes/index.js.map +0 -1
  632. package/dist/web/server/routes/sessions.d.ts +0 -12
  633. package/dist/web/server/routes/sessions.d.ts.map +0 -1
  634. package/dist/web/server/routes/sessions.js +0 -176
  635. package/dist/web/server/routes/sessions.js.map +0 -1
  636. package/dist/web/server/routes/worktrees.d.ts +0 -11
  637. package/dist/web/server/routes/worktrees.d.ts.map +0 -1
  638. package/dist/web/server/routes/worktrees.js +0 -80
  639. package/dist/web/server/routes/worktrees.js.map +0 -1
  640. package/dist/web/server/services/branches.d.ts +0 -17
  641. package/dist/web/server/services/branches.d.ts.map +0 -1
  642. package/dist/web/server/services/branches.js +0 -275
  643. package/dist/web/server/services/branches.js.map +0 -1
  644. package/dist/web/server/services/worktrees.d.ts +0 -24
  645. package/dist/web/server/services/worktrees.d.ts.map +0 -1
  646. package/dist/web/server/services/worktrees.js +0 -66
  647. package/dist/web/server/services/worktrees.js.map +0 -1
  648. package/dist/web/server/tray.d.ts +0 -25
  649. package/dist/web/server/tray.d.ts.map +0 -1
  650. package/dist/web/server/tray.js +0 -116
  651. package/dist/web/server/tray.js.map +0 -1
  652. package/dist/web/server/types.d.ts +0 -4
  653. package/dist/web/server/types.d.ts.map +0 -1
  654. package/dist/web/server/types.js +0 -2
  655. package/dist/web/server/types.js.map +0 -1
  656. package/dist/web/server/websocket/handler.d.ts +0 -57
  657. package/dist/web/server/websocket/handler.d.ts.map +0 -1
  658. package/dist/web/server/websocket/handler.js +0 -220
  659. package/dist/web/server/websocket/handler.js.map +0 -1
  660. package/dist/worktree.d.ts +0 -117
  661. package/dist/worktree.d.ts.map +0 -1
  662. package/dist/worktree.js +0 -788
  663. package/dist/worktree.js.map +0 -1
  664. package/src/claude-history.ts +0 -717
  665. package/src/claude.ts +0 -557
  666. package/src/cli/ui/App.solid.tsx +0 -2145
  667. package/src/cli/ui/__tests__/solid/AppSolid.cleanup.test.tsx +0 -1175
  668. package/src/cli/ui/__tests__/solid/BranchListScreen.test.tsx +0 -343
  669. package/src/cli/ui/__tests__/solid/ConfirmScreen.test.tsx +0 -77
  670. package/src/cli/ui/__tests__/solid/LogScreen.test.tsx +0 -351
  671. package/src/cli/ui/__tests__/solid/components/QuickStartStep.test.tsx +0 -308
  672. package/src/cli/ui/__tests__/solid/components/WizardController.test.tsx +0 -71
  673. package/src/cli/ui/__tests__/solid/components/WizardPopup.test.tsx +0 -231
  674. package/src/cli/ui/__tests__/solid/components/WizardSteps.test.tsx +0 -331
  675. package/src/cli/ui/__tests__/utils/branchFormatter.test.ts +0 -702
  676. package/src/cli/ui/__tests__/utils/clipboard.test.ts +0 -65
  677. package/src/cli/ui/__tests__/utils/statisticsCalculator.test.ts +0 -243
  678. package/src/cli/ui/components/solid/Footer.tsx +0 -36
  679. package/src/cli/ui/components/solid/Header.tsx +0 -67
  680. package/src/cli/ui/components/solid/HelpOverlay.tsx +0 -194
  681. package/src/cli/ui/components/solid/QuickStartStep.tsx +0 -209
  682. package/src/cli/ui/components/solid/ScrollableList.tsx +0 -23
  683. package/src/cli/ui/components/solid/SearchInput.tsx +0 -42
  684. package/src/cli/ui/components/solid/SelectInput.tsx +0 -88
  685. package/src/cli/ui/components/solid/Stats.tsx +0 -92
  686. package/src/cli/ui/components/solid/TextInput.tsx +0 -49
  687. package/src/cli/ui/components/solid/WizardController.tsx +0 -457
  688. package/src/cli/ui/components/solid/WizardPopup.tsx +0 -135
  689. package/src/cli/ui/components/solid/WizardSteps.tsx +0 -781
  690. package/src/cli/ui/core/index.ts +0 -17
  691. package/src/cli/ui/core/keybindings.ts +0 -367
  692. package/src/cli/ui/core/theme.ts +0 -266
  693. package/src/cli/ui/core/types.ts +0 -235
  694. package/src/cli/ui/hooks/solid/useAsyncOperation.ts +0 -78
  695. package/src/cli/ui/hooks/solid/useFilter.ts +0 -86
  696. package/src/cli/ui/hooks/solid/useGitOperations.ts +0 -81
  697. package/src/cli/ui/hooks/solid/useKeyHandler.ts +0 -103
  698. package/src/cli/ui/hooks/solid/useScrollableList.ts +0 -149
  699. package/src/cli/ui/hooks/solid/useSelection.ts +0 -77
  700. package/src/cli/ui/hooks/solid/useTerminalSize.ts +0 -22
  701. package/src/cli/ui/index.solid.ts +0 -28
  702. package/src/cli/ui/screens/solid/BranchListScreen.tsx +0 -1153
  703. package/src/cli/ui/screens/solid/ConfirmScreen.tsx +0 -86
  704. package/src/cli/ui/screens/solid/EnvironmentScreen.tsx +0 -161
  705. package/src/cli/ui/screens/solid/ErrorScreen.tsx +0 -42
  706. package/src/cli/ui/screens/solid/InputScreen.tsx +0 -55
  707. package/src/cli/ui/screens/solid/LoadingIndicator.tsx +0 -77
  708. package/src/cli/ui/screens/solid/LogDetailScreen.tsx +0 -75
  709. package/src/cli/ui/screens/solid/LogScreen.tsx +0 -504
  710. package/src/cli/ui/screens/solid/ProfileEnvScreen.tsx +0 -196
  711. package/src/cli/ui/screens/solid/ProfileScreen.tsx +0 -98
  712. package/src/cli/ui/screens/solid/SelectorScreen.tsx +0 -181
  713. package/src/cli/ui/screens/solid/SettingsScreen.tsx +0 -52
  714. package/src/cli/ui/screens/solid/WorktreeCreateScreen.tsx +0 -136
  715. package/src/cli/ui/screens/solid/WorktreeDeleteScreen.tsx +0 -40
  716. package/src/cli/ui/stores/appStore.ts +0 -208
  717. package/src/cli/ui/stores/branchStore.ts +0 -357
  718. package/src/cli/ui/stores/index.ts +0 -31
  719. package/src/cli/ui/stores/uiStore.ts +0 -226
  720. package/src/cli/ui/types.ts +0 -371
  721. package/src/cli/ui/utils/__tests__/branchFormatter.test.ts +0 -227
  722. package/src/cli/ui/utils/__tests__/installedVersionCache.test.ts +0 -46
  723. package/src/cli/ui/utils/baseBranch.ts +0 -34
  724. package/src/cli/ui/utils/branchFormatter.ts +0 -222
  725. package/src/cli/ui/utils/clipboard.ts +0 -31
  726. package/src/cli/ui/utils/continueSession.ts +0 -231
  727. package/src/cli/ui/utils/installedVersionCache.ts +0 -84
  728. package/src/cli/ui/utils/modelOptions.test.ts +0 -98
  729. package/src/cli/ui/utils/modelOptions.ts +0 -169
  730. package/src/cli/ui/utils/statisticsCalculator.ts +0 -44
  731. package/src/cli/ui/utils/versionCache.ts +0 -93
  732. package/src/cli/ui/utils/versionFetcher.ts +0 -120
  733. package/src/codex.ts +0 -445
  734. package/src/config/__tests__/saveSession.test.ts +0 -143
  735. package/src/config/builtin-coding-agents.ts +0 -87
  736. package/src/config/constants.ts +0 -102
  737. package/src/config/env-history.ts +0 -45
  738. package/src/config/index.ts +0 -311
  739. package/src/config/profiles.ts +0 -359
  740. package/src/config/shared-env.ts +0 -139
  741. package/src/config/tools.ts +0 -319
  742. package/src/gemini.ts +0 -405
  743. package/src/git.ts +0 -1263
  744. package/src/github.ts +0 -158
  745. package/src/index.test.ts +0 -93
  746. package/src/index.ts +0 -1024
  747. package/src/launcher.ts +0 -235
  748. package/src/logging/agentOutput.ts +0 -216
  749. package/src/logging/formatter.ts +0 -125
  750. package/src/logging/logger.ts +0 -106
  751. package/src/logging/reader.ts +0 -240
  752. package/src/logging/rotation.ts +0 -25
  753. package/src/opentui/index.solid.ts +0 -1
  754. package/src/repositories/git.repository.ts +0 -129
  755. package/src/repositories/github.repository.ts +0 -83
  756. package/src/repositories/worktree.repository.ts +0 -77
  757. package/src/services/BatchMergeService.ts +0 -251
  758. package/src/services/WorktreeOrchestrator.ts +0 -115
  759. package/src/services/__tests__/BatchMergeService.test.ts +0 -534
  760. package/src/services/__tests__/WorktreeOrchestrator.test.ts +0 -259
  761. package/src/services/codingAgentCommandResolver.ts +0 -118
  762. package/src/services/codingAgentResolver.ts +0 -375
  763. package/src/services/dependency-installer.ts +0 -192
  764. package/src/services/git.service.ts +0 -115
  765. package/src/services/github.service.ts +0 -61
  766. package/src/services/worktree.service.ts +0 -66
  767. package/src/shared/codingAgentConstants.ts +0 -103
  768. package/src/trayicon.d.ts +0 -30
  769. package/src/types/api.ts +0 -256
  770. package/src/types/coding-agent.ts +0 -85
  771. package/src/types/profiles.ts +0 -64
  772. package/src/types/tools.ts +0 -269
  773. package/src/utils/__tests__/npmRegistry.test.ts +0 -250
  774. package/src/utils/__tests__/prompt.test.ts +0 -125
  775. package/src/utils/bun-runtime.ts +0 -29
  776. package/src/utils/coding-agent-colors.ts +0 -165
  777. package/src/utils/command.ts +0 -234
  778. package/src/utils/error-utils.ts +0 -133
  779. package/src/utils/npmRegistry.ts +0 -249
  780. package/src/utils/prompt.ts +0 -149
  781. package/src/utils/session/common.ts +0 -474
  782. package/src/utils/session/index.ts +0 -50
  783. package/src/utils/session/parsers/claude.ts +0 -283
  784. package/src/utils/session/parsers/codex.ts +0 -166
  785. package/src/utils/session/parsers/gemini.ts +0 -135
  786. package/src/utils/session/parsers/index.ts +0 -31
  787. package/src/utils/session/parsers/opencode.ts +0 -151
  788. package/src/utils/session/types.ts +0 -51
  789. package/src/utils/session.ts +0 -16
  790. package/src/utils/spinner.ts +0 -54
  791. package/src/utils/terminal.ts +0 -327
  792. package/src/utils/webui.ts +0 -43
  793. package/src/utils.test.ts +0 -43
  794. package/src/utils.ts +0 -93
  795. package/src/web/client/components.json +0 -21
  796. package/src/web/client/index.html +0 -12
  797. package/src/web/client/src/components/BranchGraph.tsx +0 -95
  798. package/src/web/client/src/components/CodingAgentLaunchModal.tsx +0 -570
  799. package/src/web/client/src/components/CustomCodingAgentForm.tsx +0 -386
  800. package/src/web/client/src/components/CustomCodingAgentList.tsx +0 -119
  801. package/src/web/client/src/components/EnvEditor.tsx +0 -188
  802. package/src/web/client/src/components/EnvironmentEditor.tsx +0 -97
  803. package/src/web/client/src/components/Terminal.tsx +0 -145
  804. package/src/web/client/src/components/branch-detail/BranchInfoCards.tsx +0 -193
  805. package/src/web/client/src/components/branch-detail/SessionHistoryTable.tsx +0 -187
  806. package/src/web/client/src/components/branch-detail/TerminalPanel.tsx +0 -92
  807. package/src/web/client/src/components/branch-detail/ToolLauncher.tsx +0 -332
  808. package/src/web/client/src/components/branch-detail/index.ts +0 -4
  809. package/src/web/client/src/components/common/BranchCard.tsx +0 -117
  810. package/src/web/client/src/components/common/MetricCard.tsx +0 -22
  811. package/src/web/client/src/components/common/PageHeader.tsx +0 -44
  812. package/src/web/client/src/components/common/SearchInput.tsx +0 -40
  813. package/src/web/client/src/components/common/StatusBadge.tsx +0 -37
  814. package/src/web/client/src/components/common/index.ts +0 -5
  815. package/src/web/client/src/components/graph/BranchDetailPanel.tsx +0 -152
  816. package/src/web/client/src/components/graph/BranchNode.tsx +0 -200
  817. package/src/web/client/src/components/graph/ClusterNode.tsx +0 -211
  818. package/src/web/client/src/components/graph/SynapticCanvas.tsx +0 -171
  819. package/src/web/client/src/components/graph/SynapticEdge.tsx +0 -311
  820. package/src/web/client/src/components/graph/graphUtils.ts +0 -265
  821. package/src/web/client/src/components/graph/index.ts +0 -10
  822. package/src/web/client/src/components/ui/alert.tsx +0 -63
  823. package/src/web/client/src/components/ui/badge.tsx +0 -44
  824. package/src/web/client/src/components/ui/button.tsx +0 -57
  825. package/src/web/client/src/components/ui/card.tsx +0 -82
  826. package/src/web/client/src/components/ui/index.ts +0 -32
  827. package/src/web/client/src/components/ui/input.tsx +0 -21
  828. package/src/web/client/src/components/ui/select.tsx +0 -156
  829. package/src/web/client/src/components/ui/table.tsx +0 -119
  830. package/src/web/client/src/hooks/useBranches.ts +0 -41
  831. package/src/web/client/src/hooks/useConfig.ts +0 -31
  832. package/src/web/client/src/hooks/useSessions.ts +0 -68
  833. package/src/web/client/src/hooks/useWorktrees.ts +0 -47
  834. package/src/web/client/src/index.css +0 -349
  835. package/src/web/client/src/lib/api.ts +0 -184
  836. package/src/web/client/src/lib/coding-agent-colors.ts +0 -149
  837. package/src/web/client/src/lib/utils.ts +0 -10
  838. package/src/web/client/src/lib/websocket.ts +0 -222
  839. package/src/web/client/src/main.tsx +0 -29
  840. package/src/web/client/src/pages/BranchDetailPage.tsx +0 -555
  841. package/src/web/client/src/pages/BranchListPage.tsx +0 -242
  842. package/src/web/client/src/pages/ConfigManagementPage.tsx +0 -248
  843. package/src/web/client/src/pages/ConfigPage.tsx +0 -368
  844. package/src/web/client/src/router.tsx +0 -27
  845. package/src/web/client/vite.config.ts +0 -28
  846. package/src/web/server/env/importer.ts +0 -62
  847. package/src/web/server/index.ts +0 -143
  848. package/src/web/server/pty/manager.ts +0 -443
  849. package/src/web/server/routes/branches.ts +0 -126
  850. package/src/web/server/routes/config.ts +0 -226
  851. package/src/web/server/routes/index.ts +0 -37
  852. package/src/web/server/routes/sessions.ts +0 -252
  853. package/src/web/server/routes/worktrees.ts +0 -108
  854. package/src/web/server/services/branches.ts +0 -387
  855. package/src/web/server/services/worktrees.ts +0 -93
  856. package/src/web/server/tray.ts +0 -136
  857. package/src/web/server/types.ts +0 -14
  858. package/src/web/server/websocket/handler.ts +0 -299
  859. package/src/worktree.ts +0 -1109
package/dist/git.js DELETED
@@ -1,1012 +0,0 @@
1
- import { execa } from "execa";
2
- import path from "node:path";
3
- import { GIT_CONFIG } from "./config/constants.js";
4
- export class GitError extends Error {
5
- cause;
6
- constructor(message, cause) {
7
- super(message);
8
- this.cause = cause;
9
- this.name = "GitError";
10
- }
11
- }
12
- /**
13
- * 現在のディレクトリがGitリポジトリかどうかを確認
14
- * Worktree環境でも動作するように、.gitファイルの存在も確認します
15
- * @returns {Promise<boolean>} Gitリポジトリの場合true
16
- */
17
- export async function isGitRepository() {
18
- try {
19
- // まず.gitの存在を確認(ディレクトリまたはファイル)
20
- const fs = await import("node:fs");
21
- const gitPath = path.join(process.cwd(), ".git");
22
- if (fs.existsSync(gitPath)) {
23
- // .gitが存在する場合、Git環境として認識
24
- if (process.env.DEBUG) {
25
- const stats = fs.statSync(gitPath);
26
- console.error(`[DEBUG] .git exists: ${gitPath} (${stats.isDirectory() ? "directory" : "file"})`);
27
- }
28
- return true;
29
- }
30
- // .gitが存在しない場合、git rev-parseで確認
31
- const result = await execa("git", ["rev-parse", "--git-dir"]);
32
- if (process.env.DEBUG) {
33
- console.error(`[DEBUG] git rev-parse --git-dir: ${result.stdout}`);
34
- }
35
- return true;
36
- }
37
- catch (error) {
38
- // Debug: log the error for troubleshooting
39
- if (process.env.DEBUG) {
40
- const message = error instanceof Error ? error.message : String(error);
41
- const stderr = typeof error === "object" && error !== null && "stderr" in error
42
- ? error.stderr
43
- : undefined;
44
- console.error(`[DEBUG] git rev-parse --git-dir failed:`, message);
45
- if (stderr) {
46
- console.error(`[DEBUG] stderr:`, stderr);
47
- }
48
- }
49
- return false;
50
- }
51
- }
52
- /**
53
- * Gitリポジトリのルートディレクトリを取得
54
- * @returns {Promise<string>} リポジトリのルートパス
55
- * @throws {GitError} リポジトリルートの取得に失敗した場合
56
- */
57
- export async function getRepositoryRoot() {
58
- const fs = await import("node:fs");
59
- const path = await import("node:path");
60
- const toExistingDir = (p) => {
61
- let current = path.resolve(p);
62
- while (!fs.existsSync(current) && path.dirname(current) !== current) {
63
- current = path.dirname(current);
64
- }
65
- if (!fs.existsSync(current)) {
66
- return current;
67
- }
68
- try {
69
- const stat = fs.statSync(current);
70
- return stat.isDirectory() ? current : path.dirname(current);
71
- }
72
- catch {
73
- return current;
74
- }
75
- };
76
- // 1) show-toplevel を最優先
77
- try {
78
- const { stdout } = await execa("git", ["rev-parse", "--show-toplevel"]);
79
- const top = stdout.trim();
80
- if (top) {
81
- const marker = `${path.sep}.worktrees${path.sep}`;
82
- const idx = top.indexOf(marker);
83
- if (idx >= 0) {
84
- // /repo/.worktrees/<name> → repo root = /repo
85
- const parent = top.slice(0, idx);
86
- const upTwo = path.resolve(top, "..", "..");
87
- if (fs.existsSync(parent))
88
- return toExistingDir(parent);
89
- if (fs.existsSync(upTwo))
90
- return toExistingDir(upTwo);
91
- }
92
- if (fs.existsSync(top)) {
93
- return toExistingDir(top);
94
- }
95
- return toExistingDir(path.resolve(top, ".."));
96
- }
97
- }
98
- catch {
99
- // fallback
100
- }
101
- // 2) git-common-dir 経由
102
- try {
103
- const { stdout: gitCommonDir } = await execa("git", [
104
- "rev-parse",
105
- "--git-common-dir",
106
- ]);
107
- const gitDir = path.resolve(gitCommonDir.trim());
108
- const parts = gitDir.split(path.sep);
109
- const idxWorktrees = parts.lastIndexOf("worktrees");
110
- if (idxWorktrees > 0) {
111
- const repo = parts.slice(0, idxWorktrees).join(path.sep);
112
- if (fs.existsSync(repo))
113
- return toExistingDir(repo);
114
- }
115
- const idxGit = parts.lastIndexOf(".git");
116
- if (idxGit > 0) {
117
- const repo = parts.slice(0, idxGit).join(path.sep);
118
- if (fs.existsSync(repo))
119
- return toExistingDir(repo);
120
- }
121
- return toExistingDir(path.dirname(gitDir));
122
- }
123
- catch {
124
- // fallback
125
- }
126
- // 3) .git を上に辿って探す
127
- let current = process.cwd();
128
- const root = path.parse(current).root;
129
- while (true) {
130
- const candidate = path.join(current, ".git");
131
- if (fs.existsSync(candidate)) {
132
- if (fs.statSync(candidate).isDirectory()) {
133
- return toExistingDir(current);
134
- }
135
- try {
136
- const content = fs.readFileSync(candidate, "utf-8");
137
- const match = content.match(/gitdir:\s*(.+)\s*/i);
138
- const gitDirMatch = match?.[1];
139
- if (gitDirMatch) {
140
- const gitDirPath = path.resolve(current, gitDirMatch.trim());
141
- const parts = gitDirPath.split(path.sep);
142
- const idxWT = parts.lastIndexOf("worktrees");
143
- if (idxWT > 0) {
144
- const repo = parts.slice(0, idxWT).join(path.sep);
145
- return toExistingDir(repo);
146
- }
147
- return toExistingDir(path.dirname(gitDirPath));
148
- }
149
- }
150
- catch {
151
- // ignore and continue
152
- }
153
- }
154
- if (current === root)
155
- break;
156
- current = path.dirname(current);
157
- }
158
- throw new GitError("Failed to get repository root");
159
- }
160
- /**
161
- * 現在の作業ツリー(root branch か worktree かを問わず)のルートディレクトリを取得
162
- * @returns {Promise<string>} カレントWorktreeのルートパス
163
- * @throws {GitError} 取得に失敗した場合
164
- */
165
- export async function getWorktreeRoot() {
166
- try {
167
- const { stdout } = await execa("git", ["rev-parse", "--show-toplevel"]);
168
- return stdout.trim();
169
- }
170
- catch (error) {
171
- throw new GitError("Failed to get worktree root", error);
172
- }
173
- }
174
- export async function getCurrentBranch(cwd) {
175
- try {
176
- const workDir = cwd ?? (await getRepositoryRoot());
177
- const { stdout } = await execa("git", ["branch", "--show-current"], {
178
- cwd: workDir,
179
- });
180
- return stdout.trim() || null;
181
- }
182
- catch {
183
- try {
184
- const { stdout } = await execa("git", ["branch", "--show-current"]);
185
- return stdout.trim() || null;
186
- }
187
- catch {
188
- return null;
189
- }
190
- }
191
- }
192
- async function getBranchCommitTimestamps(refs, cwd) {
193
- try {
194
- const { stdout = "" } = (await execa("git", [
195
- "for-each-ref",
196
- "--format=%(refname:short)%00%(committerdate:unix)",
197
- ...refs,
198
- ], cwd ? { cwd } : undefined)) ?? { stdout: "" };
199
- const map = new Map();
200
- for (const line of stdout.split("\n")) {
201
- if (!line)
202
- continue;
203
- const [ref, timestamp] = line.split("\0");
204
- if (!ref || !timestamp)
205
- continue;
206
- if (ref.endsWith("/HEAD"))
207
- continue;
208
- const parsed = Number.parseInt(timestamp, 10);
209
- if (Number.isNaN(parsed))
210
- continue;
211
- map.set(ref, parsed);
212
- }
213
- return map;
214
- }
215
- catch (error) {
216
- throw new GitError("Failed to get branch commit timestamps", error);
217
- }
218
- }
219
- export async function getLocalBranches(cwd) {
220
- try {
221
- const execOptions = cwd ? { cwd } : undefined;
222
- const commitMap = await getBranchCommitTimestamps(["refs/heads"], cwd);
223
- const { stdout = "" } = (await execa("git", ["branch", "--format=%(refname:short)"], execOptions)) ?? { stdout: "" };
224
- return stdout
225
- .split("\n")
226
- .filter((line) => line.trim())
227
- .map((name) => {
228
- const trimmed = name.trim();
229
- const timestamp = commitMap.get(trimmed);
230
- return {
231
- name: trimmed,
232
- type: "local",
233
- branchType: getBranchType(trimmed),
234
- isCurrent: false,
235
- ...(timestamp !== undefined
236
- ? { latestCommitTimestamp: timestamp }
237
- : {}),
238
- };
239
- });
240
- }
241
- catch (primaryError) {
242
- throw new GitError("Failed to get local branches", primaryError);
243
- }
244
- }
245
- export async function getRemoteBranches(cwd) {
246
- try {
247
- const execOptions = cwd ? { cwd } : undefined;
248
- const commitMap = await getBranchCommitTimestamps(["refs/remotes"], cwd);
249
- const { stdout = "" } = (await execa("git", ["branch", "-r", "--format=%(refname:short)"], execOptions)) ?? { stdout: "" };
250
- return stdout
251
- .split("\n")
252
- .filter((line) => line.trim() && !line.includes("HEAD"))
253
- .map((line) => {
254
- const name = line.trim();
255
- const branchName = name.replace(/^origin\//, "");
256
- const timestamp = commitMap.get(name);
257
- return {
258
- name,
259
- type: "remote",
260
- branchType: getBranchType(branchName),
261
- isCurrent: false,
262
- ...(timestamp !== undefined
263
- ? { latestCommitTimestamp: timestamp }
264
- : {}),
265
- };
266
- });
267
- }
268
- catch (primaryError) {
269
- throw new GitError("Failed to get remote branches", primaryError);
270
- }
271
- }
272
- /**
273
- * ローカルとリモートのすべてのブランチ情報を取得
274
- * @param cwd - 作業ディレクトリ(省略時はリポジトリルート)
275
- * @returns {Promise<BranchInfo[]>} ブランチ情報の配列
276
- */
277
- export async function getAllBranches(cwd) {
278
- const [localBranches, remoteBranches, currentBranch] = await Promise.all([
279
- getLocalBranches(cwd),
280
- getRemoteBranches(cwd),
281
- getCurrentBranch(cwd),
282
- ]);
283
- // 現在のブランチ情報を設定
284
- if (currentBranch) {
285
- localBranches.forEach((branch) => {
286
- if (branch.name === currentBranch) {
287
- branch.isCurrent = true;
288
- }
289
- });
290
- }
291
- return [...localBranches, ...remoteBranches];
292
- }
293
- /**
294
- * ローカルブランチのupstream(追跡ブランチ)情報を取得
295
- * @param cwd - 作業ディレクトリ(省略時はリポジトリルート)
296
- * @returns Map<ローカルブランチ名, upstreamブランチ名>
297
- */
298
- export async function collectUpstreamMap(cwd) {
299
- const workDir = cwd ?? (await getRepositoryRoot());
300
- try {
301
- const { stdout } = await execa("git", [
302
- "for-each-ref",
303
- "--format=%(refname:short)|%(upstream:short)",
304
- "refs/heads",
305
- ], { cwd: workDir });
306
- return stdout
307
- .split("\n")
308
- .filter((line) => line.includes("|"))
309
- .reduce((map, line) => {
310
- const [branch, upstream] = line.split("|");
311
- if (branch?.trim() && upstream?.trim()) {
312
- map.set(branch.trim(), upstream.trim());
313
- }
314
- return map;
315
- }, new Map());
316
- }
317
- catch {
318
- return new Map();
319
- }
320
- }
321
- export async function createBranch(branchName, baseBranch = "main") {
322
- try {
323
- await execa("git", ["checkout", "-b", branchName, baseBranch]);
324
- }
325
- catch (error) {
326
- throw new GitError(`Failed to create branch ${branchName}`, error);
327
- }
328
- }
329
- export async function branchExists(branchName) {
330
- try {
331
- await execa("git", [
332
- "show-ref",
333
- "--verify",
334
- "--quiet",
335
- `refs/heads/${branchName}`,
336
- ]);
337
- return true;
338
- }
339
- catch {
340
- return false;
341
- }
342
- }
343
- export async function deleteBranch(branchName, force = false) {
344
- try {
345
- const args = ["branch", force ? "-D" : "-d", branchName];
346
- await execa("git", args);
347
- }
348
- catch (error) {
349
- throw new GitError(`Failed to delete branch ${branchName}`, error);
350
- }
351
- }
352
- async function getWorkdirStatus(worktreePath) {
353
- try {
354
- // ファイルシステムの存在確認のためにfs.existsSyncを使用
355
- const fs = await import("node:fs");
356
- if (!fs.existsSync(worktreePath)) {
357
- // worktreeパスが存在しない場合はデフォルト値を返す
358
- return {
359
- hasChanges: false,
360
- changedFilesCount: 0,
361
- };
362
- }
363
- const { stdout } = await execa("git", ["status", "--porcelain"], {
364
- cwd: worktreePath,
365
- });
366
- const lines = stdout.split("\n").filter((line) => line.trim());
367
- return {
368
- hasChanges: lines.length > 0,
369
- changedFilesCount: lines.length,
370
- };
371
- }
372
- catch (error) {
373
- throw new GitError(`Failed to get worktree status for path: ${worktreePath}`, error);
374
- }
375
- }
376
- export async function hasUncommittedChanges(worktreePath) {
377
- const status = await getWorkdirStatus(worktreePath);
378
- return status.hasChanges;
379
- }
380
- export async function getChangedFilesCount(worktreePath) {
381
- const status = await getWorkdirStatus(worktreePath);
382
- return status.changedFilesCount;
383
- }
384
- export async function showStatus(worktreePath) {
385
- try {
386
- const { stdout } = await execa("git", ["status"], { cwd: worktreePath });
387
- return stdout;
388
- }
389
- catch (error) {
390
- throw new GitError("Failed to show status", error);
391
- }
392
- }
393
- export async function stashChanges(worktreePath, message) {
394
- try {
395
- const args = message ? ["stash", "push", "-m", message] : ["stash"];
396
- await execa("git", args, { cwd: worktreePath });
397
- }
398
- catch (error) {
399
- throw new GitError("Failed to stash changes", error);
400
- }
401
- }
402
- export async function discardAllChanges(worktreePath) {
403
- try {
404
- // Reset tracked files
405
- await execa("git", ["reset", "--hard"], { cwd: worktreePath });
406
- // Clean untracked files
407
- await execa("git", ["clean", "-fd"], { cwd: worktreePath });
408
- }
409
- catch (error) {
410
- throw new GitError("Failed to discard changes", error);
411
- }
412
- }
413
- export async function commitChanges(worktreePath, message) {
414
- try {
415
- // Add all changes
416
- await execa("git", ["add", "-A"], { cwd: worktreePath });
417
- // Commit
418
- await execa("git", ["commit", "-m", message], { cwd: worktreePath });
419
- }
420
- catch (error) {
421
- throw new GitError("Failed to commit changes", error);
422
- }
423
- }
424
- function getBranchType(branchName) {
425
- if (branchName === "main" || branchName === "master")
426
- return "main";
427
- if (branchName === "develop" || branchName === "dev")
428
- return "develop";
429
- if (branchName.startsWith("feature/"))
430
- return "feature";
431
- if (branchName.startsWith("bugfix/") || branchName.startsWith("bug/"))
432
- return "bugfix";
433
- if (branchName.startsWith("hotfix/"))
434
- return "hotfix";
435
- if (branchName.startsWith("release/"))
436
- return "release";
437
- return "other";
438
- }
439
- async function hasUnpushedCommitsInternal(branch, options = {}) {
440
- const { cwd } = options;
441
- const execOptions = cwd ? { cwd } : undefined;
442
- try {
443
- const { stdout } = await execa("git", ["log", `origin/${branch}..${branch}`, "--oneline"], execOptions);
444
- return stdout.trim().length > 0;
445
- }
446
- catch {
447
- const candidates = [
448
- `origin/${branch}`,
449
- "origin/main",
450
- "origin/master",
451
- "origin/develop",
452
- "origin/dev",
453
- branch,
454
- "main",
455
- "master",
456
- "develop",
457
- "dev",
458
- ];
459
- for (const candidate of candidates) {
460
- try {
461
- await execa("git", ["rev-parse", "--verify", candidate], execOptions);
462
- // If we are checking the same branch again, we already know the remote ref is missing.
463
- if (candidate === `origin/${branch}` || candidate === branch) {
464
- continue;
465
- }
466
- try {
467
- await execa("git", ["merge-base", "--is-ancestor", branch, candidate], execOptions);
468
- return false;
469
- }
470
- catch {
471
- // Not merged into this candidate, try next one.
472
- }
473
- }
474
- catch {
475
- // Candidate ref does not exist. Try the next candidate.
476
- }
477
- }
478
- // Could not prove that the branch is merged anywhere safe, treat as unpushed commits.
479
- return true;
480
- }
481
- }
482
- export async function hasUnpushedCommits(worktreePath, branch) {
483
- return hasUnpushedCommitsInternal(branch, { cwd: worktreePath });
484
- }
485
- export async function hasUnpushedCommitsInRepo(branch, repoRoot) {
486
- return hasUnpushedCommitsInternal(branch, repoRoot ? { cwd: repoRoot } : {});
487
- }
488
- export async function branchHasUniqueCommitsComparedToBase(branch, baseBranch, repoRoot) {
489
- const execOptions = repoRoot ? { cwd: repoRoot } : undefined;
490
- try {
491
- await execa("git", ["rev-parse", "--verify", branch], execOptions);
492
- }
493
- catch {
494
- return true;
495
- }
496
- const normalizedBase = baseBranch.trim();
497
- if (!normalizedBase) {
498
- return true;
499
- }
500
- const candidates = new Set();
501
- candidates.add(normalizedBase);
502
- if (!normalizedBase.startsWith("origin/")) {
503
- candidates.add(`origin/${normalizedBase}`);
504
- }
505
- else {
506
- const localEquivalent = normalizedBase.replace(/^origin\//, "");
507
- if (localEquivalent) {
508
- candidates.add(localEquivalent);
509
- }
510
- }
511
- for (const candidate of candidates) {
512
- try {
513
- await execa("git", ["rev-parse", "--verify", candidate], execOptions);
514
- }
515
- catch {
516
- continue;
517
- }
518
- try {
519
- const { stdout } = await execa("git", ["log", `${candidate}..${branch}`, "--oneline"], execOptions);
520
- if (stdout.trim().length > 0) {
521
- return true;
522
- }
523
- return false;
524
- }
525
- catch {
526
- // Comparison failed for this candidate, try next one.
527
- }
528
- }
529
- // If no valid base candidate was found, treat the branch as having unique commits.
530
- return true;
531
- }
532
- /**
533
- * Get the latest commit message for a specific branch in a worktree
534
- */
535
- export async function getLatestCommitMessage(worktreePath, branch) {
536
- try {
537
- const { stdout } = await execa("git", ["log", "-1", "--pretty=format:%s", branch], { cwd: worktreePath });
538
- return stdout.trim() || null;
539
- }
540
- catch {
541
- return null;
542
- }
543
- }
544
- /**
545
- * Get the count of unpushed commits
546
- */
547
- export async function getUnpushedCommitsCount(worktreePath, branch) {
548
- try {
549
- const { stdout } = await execa("git", ["rev-list", "--count", `origin/${branch}..${branch}`], { cwd: worktreePath });
550
- return parseInt(stdout.trim(), 10) || 0;
551
- }
552
- catch {
553
- return 0;
554
- }
555
- }
556
- /**
557
- * Get the count of uncommitted changes (staged + unstaged)
558
- */
559
- export async function getUncommittedChangesCount(worktreePath) {
560
- try {
561
- const { stdout } = await execa("git", ["status", "--porcelain"], {
562
- cwd: worktreePath,
563
- });
564
- return stdout
565
- .trim()
566
- .split("\n")
567
- .filter((line) => line.trim()).length;
568
- }
569
- catch {
570
- return 0;
571
- }
572
- }
573
- /**
574
- * Get enhanced session information for display
575
- */
576
- export async function getEnhancedSessionInfo(worktreePath, branch) {
577
- try {
578
- const [hasUncommitted, uncommittedCount, hasUnpushed, unpushedCount, latestCommit,] = await Promise.all([
579
- hasUncommittedChanges(worktreePath),
580
- getUncommittedChangesCount(worktreePath),
581
- hasUnpushedCommits(worktreePath, branch),
582
- getUnpushedCommitsCount(worktreePath, branch),
583
- getLatestCommitMessage(worktreePath, branch),
584
- ]);
585
- // Determine branch type based on branch name
586
- let branchType = "other";
587
- const lowerBranch = branch.toLowerCase();
588
- if (lowerBranch.startsWith("feature/") || lowerBranch.startsWith("feat/")) {
589
- branchType = "feature";
590
- }
591
- else if (lowerBranch.startsWith("bugfix/") ||
592
- lowerBranch.startsWith("bug/") ||
593
- lowerBranch.startsWith("fix/")) {
594
- branchType = "bugfix";
595
- }
596
- else if (lowerBranch.startsWith("hotfix/")) {
597
- branchType = "hotfix";
598
- }
599
- else if (lowerBranch === "develop" || lowerBranch === "development") {
600
- branchType = "develop";
601
- }
602
- else if (lowerBranch === "main") {
603
- branchType = "main";
604
- }
605
- else if (lowerBranch === "master") {
606
- branchType = "master";
607
- }
608
- return {
609
- hasUncommittedChanges: hasUncommitted,
610
- uncommittedChangesCount: uncommittedCount,
611
- hasUnpushedCommits: hasUnpushed,
612
- unpushedCommitsCount: unpushedCount,
613
- latestCommitMessage: latestCommit,
614
- branchType,
615
- };
616
- }
617
- catch {
618
- // Return safe defaults if any operation fails
619
- return {
620
- hasUncommittedChanges: false,
621
- uncommittedChangesCount: 0,
622
- hasUnpushedCommits: false,
623
- unpushedCommitsCount: 0,
624
- latestCommitMessage: null,
625
- branchType: "other",
626
- };
627
- }
628
- }
629
- export async function fetchAllRemotes(options) {
630
- try {
631
- const execOptions = options?.cwd ? { cwd: options.cwd } : {};
632
- const timeoutMs = options?.timeoutMs ?? GIT_CONFIG.FETCH_TIMEOUT;
633
- const allowPrompt = options?.allowPrompt === true;
634
- const env = allowPrompt
635
- ? process.env
636
- : {
637
- ...process.env,
638
- GIT_TERMINAL_PROMPT: "0",
639
- GCM_INTERACTIVE: "Never",
640
- };
641
- const args = ["fetch", "--all", "--prune"];
642
- await execa("git", args, {
643
- ...execOptions,
644
- timeout: timeoutMs,
645
- env,
646
- stdin: allowPrompt ? "inherit" : "ignore",
647
- });
648
- }
649
- catch (error) {
650
- throw new GitError("Failed to fetch remote branches", error);
651
- }
652
- }
653
- export async function getCurrentVersion(repoRoot) {
654
- try {
655
- const packageJsonPath = path.join(repoRoot, "package.json");
656
- const fs = await import("node:fs");
657
- const packageJson = JSON.parse(await fs.promises.readFile(packageJsonPath, "utf-8"));
658
- return packageJson.version || "0.0.0";
659
- }
660
- catch {
661
- // package.jsonが存在しない場合はデフォルトバージョンを返す
662
- return "0.0.0";
663
- }
664
- }
665
- export function calculateNewVersion(currentVersion, versionBump) {
666
- const versionParts = currentVersion.split(".");
667
- const major = parseInt(versionParts[0] || "0", 10);
668
- const minor = parseInt(versionParts[1] || "0", 10);
669
- const patch = parseInt(versionParts[2] || "0", 10);
670
- switch (versionBump) {
671
- case "major":
672
- return `${major + 1}.0.0`;
673
- case "minor":
674
- return `${major}.${minor + 1}.0`;
675
- case "patch":
676
- return `${major}.${minor}.${patch + 1}`;
677
- }
678
- }
679
- export async function executeNpmVersionInWorktree(worktreePath, newVersion) {
680
- try {
681
- // まずpackage.jsonが存在するか確認
682
- const fs = await import("node:fs");
683
- const packageJsonPath = path.join(worktreePath, "package.json");
684
- if (!fs.existsSync(packageJsonPath)) {
685
- // package.jsonが存在しない場合は作成
686
- const packageJson = {
687
- name: path.basename(worktreePath),
688
- version: newVersion,
689
- description: "",
690
- main: "index.js",
691
- scripts: {},
692
- keywords: [],
693
- author: "",
694
- license: "ISC",
695
- };
696
- await fs.promises.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2) + "\n");
697
- // 新規作成したpackage.jsonをコミット
698
- await execa("git", ["add", "package.json"], { cwd: worktreePath });
699
- await execa("git", [
700
- "commit",
701
- "-m",
702
- `chore: create package.json with version ${newVersion}`,
703
- ], { cwd: worktreePath });
704
- }
705
- else {
706
- // package.json の version を直接書き換え(外部PMに依存しない)
707
- const content = await fs.promises.readFile(packageJsonPath, "utf-8");
708
- const json = JSON.parse(content);
709
- json.version = newVersion;
710
- await fs.promises.writeFile(packageJsonPath, JSON.stringify(json, null, 2) + "\n");
711
- // 変更をコミット
712
- await execa("git", ["add", "package.json"], { cwd: worktreePath });
713
- await execa("git", ["commit", "-m", `chore: bump version to ${newVersion}`], { cwd: worktreePath });
714
- }
715
- }
716
- catch (error) {
717
- // エラーの詳細情報を含める
718
- const errorMessage = error instanceof Error ? error.message : String(error);
719
- const stderr = typeof error === "object" && error !== null && "stderr" in error
720
- ? error.stderr
721
- : undefined;
722
- const stdout = typeof error === "object" && error !== null && "stdout" in error
723
- ? error.stdout
724
- : undefined;
725
- const errorDetails = stderr ? ` (stderr: ${stderr})` : "";
726
- const errorStdout = stdout ? ` (stdout: ${stdout})` : "";
727
- throw new GitError(`Failed to update version to ${newVersion} in worktree: ${errorMessage}${errorDetails}${errorStdout}`, error);
728
- }
729
- }
730
- export async function deleteRemoteBranch(branchName, remote = "origin") {
731
- try {
732
- await execa("git", ["push", remote, "--delete", branchName]);
733
- }
734
- catch (error) {
735
- throw new GitError(`Failed to delete remote branch ${remote}/${branchName}`, error);
736
- }
737
- }
738
- export async function getCurrentBranchName(worktreePath) {
739
- try {
740
- const { stdout } = await execa("git", ["branch", "--show-current"], {
741
- cwd: worktreePath,
742
- });
743
- return stdout.trim();
744
- }
745
- catch (error) {
746
- throw new GitError("Failed to get current branch name", error);
747
- }
748
- }
749
- export async function pushBranchToRemote(worktreePath, branchName, remote = "origin") {
750
- try {
751
- // Check if the remote branch exists
752
- const remoteBranchExists = await checkRemoteBranchExists(branchName, remote, { cwd: worktreePath });
753
- if (remoteBranchExists) {
754
- // Push to existing remote branch
755
- await execa("git", ["push", remote, branchName], { cwd: worktreePath });
756
- }
757
- else {
758
- // Push and set upstream for new remote branch
759
- await execa("git", ["push", "--set-upstream", remote, branchName], {
760
- cwd: worktreePath,
761
- });
762
- }
763
- }
764
- catch (error) {
765
- throw new GitError(`Failed to push branch ${branchName} to ${remote}`, error);
766
- }
767
- }
768
- export async function checkRemoteBranchExists(branchName, remote = "origin", options) {
769
- try {
770
- const execOptions = options?.cwd ? { cwd: options.cwd } : undefined;
771
- const args = [
772
- "show-ref",
773
- "--verify",
774
- "--quiet",
775
- `refs/remotes/${remote}/${branchName}`,
776
- ];
777
- if (execOptions) {
778
- await execa("git", args, execOptions);
779
- }
780
- else {
781
- await execa("git", args);
782
- }
783
- return true;
784
- }
785
- catch {
786
- return false;
787
- }
788
- }
789
- /**
790
- * 現在のディレクトリがworktreeディレクトリかどうかを確認
791
- * @returns {Promise<boolean>} worktreeディレクトリの場合true
792
- */
793
- export async function isInWorktree() {
794
- try {
795
- // git rev-parse --show-toplevelとgit rev-parse --git-common-dirの結果を比較
796
- const [toplevelResult, gitCommonDirResult] = await Promise.all([
797
- execa("git", ["rev-parse", "--show-toplevel"]),
798
- execa("git", ["rev-parse", "--git-common-dir"]),
799
- ]);
800
- const toplevel = toplevelResult.stdout.trim();
801
- const gitCommonDir = gitCommonDirResult.stdout.trim();
802
- // gitCommonDirが絶対パスで、toplevelと異なる親ディレクトリを持つ場合はworktree
803
- const path = await import("node:path");
804
- if (path.isAbsolute(gitCommonDir)) {
805
- const mainRepoRoot = path.dirname(gitCommonDir);
806
- return toplevel !== mainRepoRoot;
807
- }
808
- // gitCommonDirが相対パス(.git)の場合はメインリポジトリ
809
- return false;
810
- }
811
- catch {
812
- return false;
813
- }
814
- }
815
- /**
816
- * .gitignoreファイルに指定されたエントリーが存在することを保証します
817
- * エントリーが既に存在する場合は何もしません
818
- * @param {string} repoRoot - リポジトリのルートディレクトリ
819
- * @param {string} entry - 追加するエントリー(例: ".worktrees/")
820
- * @throws {GitError} ファイルの読み書きに失敗した場合
821
- */
822
- // ========================================
823
- // Batch Merge Operations (SPEC-ee33ca26)
824
- // ========================================
825
- /**
826
- * Merge from source branch to current branch in worktree
827
- * @param worktreePath - Path to worktree directory
828
- * @param sourceBranch - Source branch to merge from
829
- * @param dryRun - If true, use --no-commit flag for dry-run mode
830
- * @see specs/SPEC-ee33ca26/research.md - Decision 3: Dry-run implementation
831
- */
832
- export async function mergeFromBranch(worktreePath, sourceBranch, dryRun = false) {
833
- try {
834
- const args = ["merge"];
835
- if (dryRun) {
836
- args.push("--no-commit");
837
- }
838
- args.push(sourceBranch);
839
- await execa("git", args, { cwd: worktreePath });
840
- }
841
- catch (error) {
842
- throw new GitError(`Failed to merge from ${sourceBranch} in ${worktreePath}`, error);
843
- }
844
- }
845
- /**
846
- * Check if there is a merge in progress in worktree
847
- * @param worktreePath - Path to worktree directory
848
- * @returns true if MERGE_HEAD exists (merge in progress)
849
- * @see specs/SPEC-ee33ca26/research.md - Best practices: Git state confirmation
850
- */
851
- export async function hasMergeConflict(worktreePath) {
852
- try {
853
- await execa("git", ["rev-parse", "--git-path", "MERGE_HEAD"], {
854
- cwd: worktreePath,
855
- });
856
- return true;
857
- }
858
- catch {
859
- return false;
860
- }
861
- }
862
- /**
863
- * Abort current merge operation in worktree
864
- * @param worktreePath - Path to worktree directory
865
- * @see specs/SPEC-ee33ca26/research.md - Decision 3: Dry-run rollback
866
- */
867
- export async function abortMerge(worktreePath) {
868
- try {
869
- await execa("git", ["merge", "--abort"], { cwd: worktreePath });
870
- }
871
- catch (error) {
872
- throw new GitError(`Failed to abort merge in ${worktreePath}`, error);
873
- }
874
- }
875
- /**
876
- * Get current merge status in worktree
877
- * @param worktreePath - Path to worktree directory
878
- * @returns Object with inProgress and hasConflict flags
879
- * @see specs/SPEC-ee33ca26/research.md - Best practices: Git state confirmation
880
- */
881
- export async function getMergeStatus(worktreePath) {
882
- // Check if merge is in progress (MERGE_HEAD exists)
883
- const inProgress = await hasMergeConflict(worktreePath);
884
- // Check if there are conflicts (git status --porcelain shows UU)
885
- let hasConflict = false;
886
- if (inProgress) {
887
- try {
888
- const { stdout } = await execa("git", ["status", "--porcelain"], {
889
- cwd: worktreePath,
890
- });
891
- // UU indicates unmerged paths (conflicts)
892
- hasConflict = stdout.includes("UU ");
893
- }
894
- catch {
895
- hasConflict = false;
896
- }
897
- }
898
- return {
899
- inProgress,
900
- hasConflict,
901
- };
902
- }
903
- /**
904
- * Reset worktree to HEAD (rollback all changes)
905
- * Used for dry-run cleanup after git merge --no-commit
906
- * @param worktreePath - Path to worktree directory
907
- * @see specs/SPEC-ee33ca26/research.md - Dry-run implementation: --no-commit + rollback
908
- */
909
- export async function resetToHead(worktreePath) {
910
- try {
911
- await execa("git", ["reset", "--hard", "HEAD"], {
912
- cwd: worktreePath,
913
- });
914
- }
915
- catch (error) {
916
- throw new GitError(`Failed to reset worktree to HEAD in ${worktreePath}`, error);
917
- }
918
- }
919
- export async function getBranchDivergenceStatuses(options) {
920
- const cwd = options?.cwd;
921
- const remote = options?.remote ?? "origin";
922
- const execOptions = cwd ? { cwd } : undefined;
923
- const branchFilter = options?.branches?.filter((name) => name.trim().length > 0);
924
- const filterSet = branchFilter && branchFilter.length > 0 ? new Set(branchFilter) : null;
925
- const branchArgs = ["branch", "--format=%(refname:short)"];
926
- const { stdout: localBranchOutput } = execOptions
927
- ? await execa("git", branchArgs, execOptions)
928
- : await execa("git", branchArgs);
929
- const branchNames = localBranchOutput
930
- .split("\n")
931
- .map((name) => name.trim())
932
- .filter(Boolean)
933
- .filter((name) => !filterSet || filterSet.has(name));
934
- if (filterSet && branchNames.length === 0) {
935
- return [];
936
- }
937
- const results = [];
938
- for (const branchName of branchNames) {
939
- const remoteExists = await checkRemoteBranchExists(branchName, remote, cwd ? { cwd } : undefined);
940
- if (!remoteExists) {
941
- continue;
942
- }
943
- try {
944
- const revListArgs = [
945
- "rev-list",
946
- "--left-right",
947
- "--count",
948
- `${remote}/${branchName}...${branchName}`,
949
- ];
950
- const { stdout } = execOptions
951
- ? await execa("git", revListArgs, execOptions)
952
- : await execa("git", revListArgs);
953
- const [remoteAheadRaw, localAheadRaw] = stdout.trim().split(/\s+/);
954
- const remoteAhead = Number.parseInt(remoteAheadRaw || "0", 10) || 0;
955
- const localAhead = Number.parseInt(localAheadRaw || "0", 10) || 0;
956
- results.push({ branch: branchName, remoteAhead, localAhead });
957
- }
958
- catch (error) {
959
- throw new GitError(`Failed to inspect divergence for ${branchName}`, error);
960
- }
961
- }
962
- return results;
963
- }
964
- export async function pullFastForward(worktreePath, remote = "origin") {
965
- try {
966
- await execa("git", ["pull", "--ff-only", remote], {
967
- cwd: worktreePath,
968
- });
969
- }
970
- catch (error) {
971
- throw new GitError(`Failed to fast-forward pull in ${worktreePath}`, error);
972
- }
973
- }
974
- export async function ensureGitignoreEntry(repoRoot, entry) {
975
- const fs = await import("node:fs/promises");
976
- const gitignorePath = path.join(repoRoot, ".gitignore");
977
- try {
978
- // .gitignoreファイルを読み込む(存在しない場合は空文字列)
979
- let content = "";
980
- let eol = "\n";
981
- try {
982
- content = await fs.readFile(gitignorePath, "utf-8");
983
- if (content.includes("\r\n")) {
984
- eol = "\r\n";
985
- }
986
- }
987
- catch (error) {
988
- // ENOENTエラー(ファイルが存在しない)は無視
989
- const code = typeof error === "object" && error !== null && "code" in error
990
- ? error.code
991
- : undefined;
992
- if (code !== "ENOENT") {
993
- throw error;
994
- }
995
- }
996
- const normalizedEntry = entry.trim();
997
- const normalizedLines = content.split(/\r?\n/).map((line) => line.trim());
998
- if (normalizedLines.includes(normalizedEntry)) {
999
- // 既に存在する場合は何もしない
1000
- return;
1001
- }
1002
- const needsSeparator = content.length > 0 && !content.endsWith("\n") && !content.endsWith("\r");
1003
- const separator = needsSeparator ? eol : "";
1004
- const newContent = `${content}${separator}${entry}${eol}`;
1005
- await fs.writeFile(gitignorePath, newContent, "utf-8");
1006
- }
1007
- catch (error) {
1008
- const message = error instanceof Error ? error.message : String(error);
1009
- throw new GitError(`Failed to update .gitignore: ${message}`, error);
1010
- }
1011
- }
1012
- //# sourceMappingURL=git.js.map