@akiojin/gwt 4.12.1 → 6.0.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 (860) hide show
  1. package/README.ja.md +173 -203
  2. package/README.md +170 -212
  3. package/bin/gwt +0 -0
  4. package/bin/gwt.js +42 -33
  5. package/package.json +20 -107
  6. package/scripts/postinstall.js +152 -0
  7. package/dist/claude-history.d.ts +0 -60
  8. package/dist/claude-history.d.ts.map +0 -1
  9. package/dist/claude-history.js +0 -606
  10. package/dist/claude-history.js.map +0 -1
  11. package/dist/claude.d.ts +0 -42
  12. package/dist/claude.d.ts.map +0 -1
  13. package/dist/claude.js +0 -429
  14. package/dist/claude.js.map +0 -1
  15. package/dist/cli/ui/App.solid.d.ts +0 -29
  16. package/dist/cli/ui/App.solid.d.ts.map +0 -1
  17. package/dist/cli/ui/App.solid.js +0 -1427
  18. package/dist/cli/ui/App.solid.js.map +0 -1
  19. package/dist/cli/ui/components/solid/Footer.d.ts +0 -10
  20. package/dist/cli/ui/components/solid/Footer.d.ts.map +0 -1
  21. package/dist/cli/ui/components/solid/Footer.js +0 -10
  22. package/dist/cli/ui/components/solid/Footer.js.map +0 -1
  23. package/dist/cli/ui/components/solid/Header.d.ts +0 -32
  24. package/dist/cli/ui/components/solid/Header.d.ts.map +0 -1
  25. package/dist/cli/ui/components/solid/Header.js +0 -13
  26. package/dist/cli/ui/components/solid/Header.js.map +0 -1
  27. package/dist/cli/ui/components/solid/HelpOverlay.d.ts +0 -8
  28. package/dist/cli/ui/components/solid/HelpOverlay.d.ts.map +0 -1
  29. package/dist/cli/ui/components/solid/HelpOverlay.js +0 -118
  30. package/dist/cli/ui/components/solid/HelpOverlay.js.map +0 -1
  31. package/dist/cli/ui/components/solid/QuickStartStep.d.ts +0 -17
  32. package/dist/cli/ui/components/solid/QuickStartStep.d.ts.map +0 -1
  33. package/dist/cli/ui/components/solid/QuickStartStep.js +0 -152
  34. package/dist/cli/ui/components/solid/QuickStartStep.js.map +0 -1
  35. package/dist/cli/ui/components/solid/SelectInput.d.ts +0 -22
  36. package/dist/cli/ui/components/solid/SelectInput.d.ts.map +0 -1
  37. package/dist/cli/ui/components/solid/SelectInput.js +0 -45
  38. package/dist/cli/ui/components/solid/SelectInput.js.map +0 -1
  39. package/dist/cli/ui/components/solid/TextInput.d.ts +0 -12
  40. package/dist/cli/ui/components/solid/TextInput.d.ts.map +0 -1
  41. package/dist/cli/ui/components/solid/TextInput.js +0 -9
  42. package/dist/cli/ui/components/solid/TextInput.js.map +0 -1
  43. package/dist/cli/ui/components/solid/WizardController.d.ts +0 -34
  44. package/dist/cli/ui/components/solid/WizardController.d.ts.map +0 -1
  45. package/dist/cli/ui/components/solid/WizardController.js +0 -269
  46. package/dist/cli/ui/components/solid/WizardController.js.map +0 -1
  47. package/dist/cli/ui/components/solid/WizardPopup.d.ts +0 -26
  48. package/dist/cli/ui/components/solid/WizardPopup.d.ts.map +0 -1
  49. package/dist/cli/ui/components/solid/WizardPopup.js +0 -68
  50. package/dist/cli/ui/components/solid/WizardPopup.js.map +0 -1
  51. package/dist/cli/ui/components/solid/WizardSteps.d.ts +0 -57
  52. package/dist/cli/ui/components/solid/WizardSteps.d.ts.map +0 -1
  53. package/dist/cli/ui/components/solid/WizardSteps.js +0 -442
  54. package/dist/cli/ui/components/solid/WizardSteps.js.map +0 -1
  55. package/dist/cli/ui/core/index.d.ts +0 -12
  56. package/dist/cli/ui/core/index.d.ts.map +0 -1
  57. package/dist/cli/ui/core/index.js +0 -15
  58. package/dist/cli/ui/core/index.js.map +0 -1
  59. package/dist/cli/ui/core/keybindings.d.ts +0 -106
  60. package/dist/cli/ui/core/keybindings.d.ts.map +0 -1
  61. package/dist/cli/ui/core/keybindings.js +0 -270
  62. package/dist/cli/ui/core/keybindings.js.map +0 -1
  63. package/dist/cli/ui/core/theme.d.ts +0 -123
  64. package/dist/cli/ui/core/theme.d.ts.map +0 -1
  65. package/dist/cli/ui/core/theme.js +0 -191
  66. package/dist/cli/ui/core/theme.js.map +0 -1
  67. package/dist/cli/ui/core/types.d.ts +0 -156
  68. package/dist/cli/ui/core/types.d.ts.map +0 -1
  69. package/dist/cli/ui/core/types.js +0 -10
  70. package/dist/cli/ui/core/types.js.map +0 -1
  71. package/dist/cli/ui/hooks/solid/useScrollableList.d.ts +0 -26
  72. package/dist/cli/ui/hooks/solid/useScrollableList.d.ts.map +0 -1
  73. package/dist/cli/ui/hooks/solid/useScrollableList.js +0 -89
  74. package/dist/cli/ui/hooks/solid/useScrollableList.js.map +0 -1
  75. package/dist/cli/ui/hooks/solid/useTerminalSize.d.ts +0 -10
  76. package/dist/cli/ui/hooks/solid/useTerminalSize.d.ts.map +0 -1
  77. package/dist/cli/ui/hooks/solid/useTerminalSize.js +0 -16
  78. package/dist/cli/ui/hooks/solid/useTerminalSize.js.map +0 -1
  79. package/dist/cli/ui/index.solid.d.ts +0 -5
  80. package/dist/cli/ui/index.solid.d.ts.map +0 -1
  81. package/dist/cli/ui/index.solid.js +0 -21
  82. package/dist/cli/ui/index.solid.js.map +0 -1
  83. package/dist/cli/ui/screens/solid/BranchListScreen.d.ts +0 -53
  84. package/dist/cli/ui/screens/solid/BranchListScreen.d.ts.map +0 -1
  85. package/dist/cli/ui/screens/solid/BranchListScreen.js +0 -829
  86. package/dist/cli/ui/screens/solid/BranchListScreen.js.map +0 -1
  87. package/dist/cli/ui/screens/solid/ConfirmScreen.d.ts +0 -11
  88. package/dist/cli/ui/screens/solid/ConfirmScreen.d.ts.map +0 -1
  89. package/dist/cli/ui/screens/solid/ConfirmScreen.js +0 -45
  90. package/dist/cli/ui/screens/solid/ConfirmScreen.js.map +0 -1
  91. package/dist/cli/ui/screens/solid/EnvironmentScreen.d.ts +0 -14
  92. package/dist/cli/ui/screens/solid/EnvironmentScreen.d.ts.map +0 -1
  93. package/dist/cli/ui/screens/solid/EnvironmentScreen.js +0 -90
  94. package/dist/cli/ui/screens/solid/EnvironmentScreen.js.map +0 -1
  95. package/dist/cli/ui/screens/solid/ErrorScreen.d.ts +0 -8
  96. package/dist/cli/ui/screens/solid/ErrorScreen.d.ts.map +0 -1
  97. package/dist/cli/ui/screens/solid/ErrorScreen.js +0 -18
  98. package/dist/cli/ui/screens/solid/ErrorScreen.js.map +0 -1
  99. package/dist/cli/ui/screens/solid/InputScreen.d.ts +0 -13
  100. package/dist/cli/ui/screens/solid/InputScreen.d.ts.map +0 -1
  101. package/dist/cli/ui/screens/solid/InputScreen.js +0 -17
  102. package/dist/cli/ui/screens/solid/InputScreen.js.map +0 -1
  103. package/dist/cli/ui/screens/solid/LoadingIndicator.d.ts +0 -9
  104. package/dist/cli/ui/screens/solid/LoadingIndicator.d.ts.map +0 -1
  105. package/dist/cli/ui/screens/solid/LoadingIndicator.js +0 -43
  106. package/dist/cli/ui/screens/solid/LoadingIndicator.js.map +0 -1
  107. package/dist/cli/ui/screens/solid/LogDetailScreen.d.ts +0 -14
  108. package/dist/cli/ui/screens/solid/LogDetailScreen.d.ts.map +0 -1
  109. package/dist/cli/ui/screens/solid/LogDetailScreen.js +0 -34
  110. package/dist/cli/ui/screens/solid/LogDetailScreen.js.map +0 -1
  111. package/dist/cli/ui/screens/solid/LogScreen.d.ts +0 -25
  112. package/dist/cli/ui/screens/solid/LogScreen.d.ts.map +0 -1
  113. package/dist/cli/ui/screens/solid/LogScreen.js +0 -333
  114. package/dist/cli/ui/screens/solid/LogScreen.js.map +0 -1
  115. package/dist/cli/ui/screens/solid/ProfileEnvScreen.d.ts +0 -17
  116. package/dist/cli/ui/screens/solid/ProfileEnvScreen.d.ts.map +0 -1
  117. package/dist/cli/ui/screens/solid/ProfileEnvScreen.js +0 -115
  118. package/dist/cli/ui/screens/solid/ProfileEnvScreen.js.map +0 -1
  119. package/dist/cli/ui/screens/solid/ProfileScreen.d.ts +0 -17
  120. package/dist/cli/ui/screens/solid/ProfileScreen.d.ts.map +0 -1
  121. package/dist/cli/ui/screens/solid/ProfileScreen.js +0 -50
  122. package/dist/cli/ui/screens/solid/ProfileScreen.js.map +0 -1
  123. package/dist/cli/ui/screens/solid/SelectorScreen.d.ts +0 -20
  124. package/dist/cli/ui/screens/solid/SelectorScreen.d.ts.map +0 -1
  125. package/dist/cli/ui/screens/solid/SelectorScreen.js +0 -98
  126. package/dist/cli/ui/screens/solid/SelectorScreen.js.map +0 -1
  127. package/dist/cli/ui/screens/solid/WorktreeCreateScreen.d.ts +0 -13
  128. package/dist/cli/ui/screens/solid/WorktreeCreateScreen.d.ts.map +0 -1
  129. package/dist/cli/ui/screens/solid/WorktreeCreateScreen.js +0 -59
  130. package/dist/cli/ui/screens/solid/WorktreeCreateScreen.js.map +0 -1
  131. package/dist/cli/ui/stores/appStore.d.ts +0 -143
  132. package/dist/cli/ui/stores/appStore.d.ts.map +0 -1
  133. package/dist/cli/ui/stores/appStore.js +0 -158
  134. package/dist/cli/ui/stores/appStore.js.map +0 -1
  135. package/dist/cli/ui/stores/branchStore.d.ts +0 -159
  136. package/dist/cli/ui/stores/branchStore.d.ts.map +0 -1
  137. package/dist/cli/ui/stores/branchStore.js +0 -275
  138. package/dist/cli/ui/stores/branchStore.js.map +0 -1
  139. package/dist/cli/ui/stores/index.d.ts +0 -11
  140. package/dist/cli/ui/stores/index.d.ts.map +0 -1
  141. package/dist/cli/ui/stores/index.js +0 -14
  142. package/dist/cli/ui/stores/index.js.map +0 -1
  143. package/dist/cli/ui/stores/uiStore.d.ts +0 -146
  144. package/dist/cli/ui/stores/uiStore.d.ts.map +0 -1
  145. package/dist/cli/ui/stores/uiStore.js +0 -166
  146. package/dist/cli/ui/stores/uiStore.js.map +0 -1
  147. package/dist/cli/ui/types.d.ts +0 -293
  148. package/dist/cli/ui/types.d.ts.map +0 -1
  149. package/dist/cli/ui/types.js +0 -2
  150. package/dist/cli/ui/types.js.map +0 -1
  151. package/dist/cli/ui/utils/baseBranch.d.ts +0 -4
  152. package/dist/cli/ui/utils/baseBranch.d.ts.map +0 -1
  153. package/dist/cli/ui/utils/baseBranch.js +0 -17
  154. package/dist/cli/ui/utils/baseBranch.js.map +0 -1
  155. package/dist/cli/ui/utils/branchFormatter.d.ts +0 -19
  156. package/dist/cli/ui/utils/branchFormatter.d.ts.map +0 -1
  157. package/dist/cli/ui/utils/branchFormatter.js +0 -199
  158. package/dist/cli/ui/utils/branchFormatter.js.map +0 -1
  159. package/dist/cli/ui/utils/clipboard.d.ts +0 -7
  160. package/dist/cli/ui/utils/clipboard.d.ts.map +0 -1
  161. package/dist/cli/ui/utils/clipboard.js +0 -21
  162. package/dist/cli/ui/utils/clipboard.js.map +0 -1
  163. package/dist/cli/ui/utils/continueSession.d.ts +0 -36
  164. package/dist/cli/ui/utils/continueSession.d.ts.map +0 -1
  165. package/dist/cli/ui/utils/continueSession.js +0 -155
  166. package/dist/cli/ui/utils/continueSession.js.map +0 -1
  167. package/dist/cli/ui/utils/installedVersionCache.d.ts +0 -33
  168. package/dist/cli/ui/utils/installedVersionCache.d.ts.map +0 -1
  169. package/dist/cli/ui/utils/installedVersionCache.js +0 -59
  170. package/dist/cli/ui/utils/installedVersionCache.js.map +0 -1
  171. package/dist/cli/ui/utils/modelOptions.d.ts +0 -10
  172. package/dist/cli/ui/utils/modelOptions.d.ts.map +0 -1
  173. package/dist/cli/ui/utils/modelOptions.js +0 -155
  174. package/dist/cli/ui/utils/modelOptions.js.map +0 -1
  175. package/dist/cli/ui/utils/statisticsCalculator.d.ts +0 -9
  176. package/dist/cli/ui/utils/statisticsCalculator.d.ts.map +0 -1
  177. package/dist/cli/ui/utils/statisticsCalculator.js +0 -37
  178. package/dist/cli/ui/utils/statisticsCalculator.js.map +0 -1
  179. package/dist/cli/ui/utils/versionCache.d.ts +0 -37
  180. package/dist/cli/ui/utils/versionCache.d.ts.map +0 -1
  181. package/dist/cli/ui/utils/versionCache.js +0 -70
  182. package/dist/cli/ui/utils/versionCache.js.map +0 -1
  183. package/dist/cli/ui/utils/versionFetcher.d.ts +0 -41
  184. package/dist/cli/ui/utils/versionFetcher.d.ts.map +0 -1
  185. package/dist/cli/ui/utils/versionFetcher.js +0 -89
  186. package/dist/cli/ui/utils/versionFetcher.js.map +0 -1
  187. package/dist/client/assets/index-BbfV7Wuj.css +0 -1
  188. package/dist/client/assets/index-CoAyq5x1.js +0 -78
  189. package/dist/client/index.html +0 -13
  190. package/dist/codex.d.ts +0 -55
  191. package/dist/codex.d.ts.map +0 -1
  192. package/dist/codex.js +0 -329
  193. package/dist/codex.js.map +0 -1
  194. package/dist/config/builtin-coding-agents.d.ts +0 -27
  195. package/dist/config/builtin-coding-agents.d.ts.map +0 -1
  196. package/dist/config/builtin-coding-agents.js +0 -78
  197. package/dist/config/builtin-coding-agents.js.map +0 -1
  198. package/dist/config/constants.d.ts +0 -76
  199. package/dist/config/constants.d.ts.map +0 -1
  200. package/dist/config/constants.js +0 -92
  201. package/dist/config/constants.js.map +0 -1
  202. package/dist/config/env-history.d.ts +0 -4
  203. package/dist/config/env-history.d.ts.map +0 -1
  204. package/dist/config/env-history.js +0 -34
  205. package/dist/config/env-history.js.map +0 -1
  206. package/dist/config/index.d.ts +0 -51
  207. package/dist/config/index.d.ts.map +0 -1
  208. package/dist/config/index.js +0 -225
  209. package/dist/config/index.js.map +0 -1
  210. package/dist/config/profiles.d.ts +0 -94
  211. package/dist/config/profiles.d.ts.map +0 -1
  212. package/dist/config/profiles.js +0 -284
  213. package/dist/config/profiles.js.map +0 -1
  214. package/dist/config/shared-env.d.ts +0 -41
  215. package/dist/config/shared-env.d.ts.map +0 -1
  216. package/dist/config/shared-env.js +0 -114
  217. package/dist/config/shared-env.js.map +0 -1
  218. package/dist/config/tools.d.ts +0 -50
  219. package/dist/config/tools.d.ts.map +0 -1
  220. package/dist/config/tools.js +0 -239
  221. package/dist/config/tools.js.map +0 -1
  222. package/dist/gemini.d.ts +0 -35
  223. package/dist/gemini.d.ts.map +0 -1
  224. package/dist/gemini.js +0 -299
  225. package/dist/gemini.js.map +0 -1
  226. package/dist/git.d.ts +0 -154
  227. package/dist/git.d.ts.map +0 -1
  228. package/dist/git.js +0 -1012
  229. package/dist/git.js.map +0 -1
  230. package/dist/github.d.ts +0 -14
  231. package/dist/github.d.ts.map +0 -1
  232. package/dist/github.js +0 -123
  233. package/dist/github.js.map +0 -1
  234. package/dist/index.d.ts +0 -16
  235. package/dist/index.d.ts.map +0 -1
  236. package/dist/index.js +0 -782
  237. package/dist/index.js.map +0 -1
  238. package/dist/launcher.d.ts +0 -30
  239. package/dist/launcher.d.ts.map +0 -1
  240. package/dist/launcher.js +0 -185
  241. package/dist/launcher.js.map +0 -1
  242. package/dist/logging/agentOutput.d.ts +0 -21
  243. package/dist/logging/agentOutput.d.ts.map +0 -1
  244. package/dist/logging/agentOutput.js +0 -164
  245. package/dist/logging/agentOutput.js.map +0 -1
  246. package/dist/logging/formatter.d.ts +0 -15
  247. package/dist/logging/formatter.d.ts.map +0 -1
  248. package/dist/logging/formatter.js +0 -95
  249. package/dist/logging/formatter.js.map +0 -1
  250. package/dist/logging/logger.d.ts +0 -24
  251. package/dist/logging/logger.d.ts.map +0 -1
  252. package/dist/logging/logger.js +0 -79
  253. package/dist/logging/logger.js.map +0 -1
  254. package/dist/logging/reader.d.ts +0 -34
  255. package/dist/logging/reader.d.ts.map +0 -1
  256. package/dist/logging/reader.js +0 -178
  257. package/dist/logging/reader.js.map +0 -1
  258. package/dist/logging/rotation.d.ts +0 -6
  259. package/dist/logging/rotation.d.ts.map +0 -1
  260. package/dist/logging/rotation.js +0 -26
  261. package/dist/logging/rotation.js.map +0 -1
  262. package/dist/opentui/highlights-eq9cgrbb.scm +0 -604
  263. package/dist/opentui/highlights-ghv9g403.scm +0 -205
  264. package/dist/opentui/highlights-hk7bwhj4.scm +0 -284
  265. package/dist/opentui/highlights-r812a2qc.scm +0 -150
  266. package/dist/opentui/highlights-x6tmsnaa.scm +0 -115
  267. package/dist/opentui/index.solid.d.ts +0 -2
  268. package/dist/opentui/index.solid.d.ts.map +0 -1
  269. package/dist/opentui/index.solid.js +0 -53721
  270. package/dist/opentui/index.solid.js.map +0 -1
  271. package/dist/opentui/injections-73j83es3.scm +0 -27
  272. package/dist/opentui/tree-sitter-javascript-nd0q4pe9.wasm +0 -0
  273. package/dist/opentui/tree-sitter-markdown-411r6y9b.wasm +0 -0
  274. package/dist/opentui/tree-sitter-markdown_inline-j5349f42.wasm +0 -0
  275. package/dist/opentui/tree-sitter-typescript-zxjzwt75.wasm +0 -0
  276. package/dist/opentui/tree-sitter-zig-e78zbjpm.wasm +0 -0
  277. package/dist/repositories/git.repository.d.ts +0 -38
  278. package/dist/repositories/git.repository.d.ts.map +0 -1
  279. package/dist/repositories/git.repository.js +0 -117
  280. package/dist/repositories/git.repository.js.map +0 -1
  281. package/dist/repositories/github.repository.d.ts +0 -16
  282. package/dist/repositories/github.repository.d.ts.map +0 -1
  283. package/dist/repositories/github.repository.js +0 -61
  284. package/dist/repositories/github.repository.js.map +0 -1
  285. package/dist/repositories/worktree.repository.d.ts +0 -19
  286. package/dist/repositories/worktree.repository.d.ts.map +0 -1
  287. package/dist/repositories/worktree.repository.js +0 -64
  288. package/dist/repositories/worktree.repository.js.map +0 -1
  289. package/dist/services/BatchMergeService.d.ts +0 -45
  290. package/dist/services/BatchMergeService.d.ts.map +0 -1
  291. package/dist/services/BatchMergeService.js +0 -197
  292. package/dist/services/BatchMergeService.js.map +0 -1
  293. package/dist/services/WorktreeOrchestrator.d.ts +0 -37
  294. package/dist/services/WorktreeOrchestrator.d.ts.map +0 -1
  295. package/dist/services/WorktreeOrchestrator.js +0 -74
  296. package/dist/services/WorktreeOrchestrator.js.map +0 -1
  297. package/dist/services/codingAgentCommandResolver.d.ts +0 -10
  298. package/dist/services/codingAgentCommandResolver.d.ts.map +0 -1
  299. package/dist/services/codingAgentCommandResolver.js +0 -81
  300. package/dist/services/codingAgentCommandResolver.js.map +0 -1
  301. package/dist/services/codingAgentResolver.d.ts +0 -43
  302. package/dist/services/codingAgentResolver.d.ts.map +0 -1
  303. package/dist/services/codingAgentResolver.js +0 -269
  304. package/dist/services/codingAgentResolver.js.map +0 -1
  305. package/dist/services/dependency-installer.d.ts +0 -26
  306. package/dist/services/dependency-installer.d.ts.map +0 -1
  307. package/dist/services/dependency-installer.js +0 -134
  308. package/dist/services/dependency-installer.js.map +0 -1
  309. package/dist/services/git.service.d.ts +0 -27
  310. package/dist/services/git.service.d.ts.map +0 -1
  311. package/dist/services/git.service.js +0 -97
  312. package/dist/services/git.service.js.map +0 -1
  313. package/dist/services/github.service.d.ts +0 -14
  314. package/dist/services/github.service.d.ts.map +0 -1
  315. package/dist/services/github.service.js +0 -52
  316. package/dist/services/github.service.js.map +0 -1
  317. package/dist/services/worktree.service.d.ts +0 -20
  318. package/dist/services/worktree.service.d.ts.map +0 -1
  319. package/dist/services/worktree.service.js +0 -52
  320. package/dist/services/worktree.service.js.map +0 -1
  321. package/dist/shared/codingAgentConstants.d.ts +0 -12
  322. package/dist/shared/codingAgentConstants.d.ts.map +0 -1
  323. package/dist/shared/codingAgentConstants.js +0 -95
  324. package/dist/shared/codingAgentConstants.js.map +0 -1
  325. package/dist/types/api.d.ts +0 -225
  326. package/dist/types/api.d.ts.map +0 -1
  327. package/dist/types/api.js +0 -8
  328. package/dist/types/api.js.map +0 -1
  329. package/dist/types/coding-agent.d.ts +0 -62
  330. package/dist/types/coding-agent.d.ts.map +0 -1
  331. package/dist/types/coding-agent.js +0 -29
  332. package/dist/types/coding-agent.js.map +0 -1
  333. package/dist/types/profiles.d.ts +0 -54
  334. package/dist/types/profiles.d.ts.map +0 -1
  335. package/dist/types/profiles.js +0 -33
  336. package/dist/types/profiles.js.map +0 -1
  337. package/dist/types/tools.d.ts +0 -230
  338. package/dist/types/tools.d.ts.map +0 -1
  339. package/dist/types/tools.js +0 -8
  340. package/dist/types/tools.js.map +0 -1
  341. package/dist/utils/bun-runtime.d.ts +0 -12
  342. package/dist/utils/bun-runtime.d.ts.map +0 -1
  343. package/dist/utils/bun-runtime.js +0 -13
  344. package/dist/utils/bun-runtime.js.map +0 -1
  345. package/dist/utils/coding-agent-colors.d.ts +0 -88
  346. package/dist/utils/coding-agent-colors.d.ts.map +0 -1
  347. package/dist/utils/coding-agent-colors.js +0 -137
  348. package/dist/utils/coding-agent-colors.js.map +0 -1
  349. package/dist/utils/command.d.ts +0 -62
  350. package/dist/utils/command.d.ts.map +0 -1
  351. package/dist/utils/command.js +0 -186
  352. package/dist/utils/command.js.map +0 -1
  353. package/dist/utils/error-utils.d.ts +0 -27
  354. package/dist/utils/error-utils.d.ts.map +0 -1
  355. package/dist/utils/error-utils.js +0 -98
  356. package/dist/utils/error-utils.js.map +0 -1
  357. package/dist/utils/npmRegistry.d.ts +0 -61
  358. package/dist/utils/npmRegistry.d.ts.map +0 -1
  359. package/dist/utils/npmRegistry.js +0 -180
  360. package/dist/utils/npmRegistry.js.map +0 -1
  361. package/dist/utils/prompt.d.ts +0 -18
  362. package/dist/utils/prompt.d.ts.map +0 -1
  363. package/dist/utils/prompt.js +0 -107
  364. package/dist/utils/prompt.js.map +0 -1
  365. package/dist/utils/session/common.d.ts +0 -108
  366. package/dist/utils/session/common.d.ts.map +0 -1
  367. package/dist/utils/session/common.js +0 -439
  368. package/dist/utils/session/common.js.map +0 -1
  369. package/dist/utils/session/index.d.ts +0 -16
  370. package/dist/utils/session/index.d.ts.map +0 -1
  371. package/dist/utils/session/index.js +0 -20
  372. package/dist/utils/session/index.js.map +0 -1
  373. package/dist/utils/session/parsers/claude.d.ts +0 -62
  374. package/dist/utils/session/parsers/claude.d.ts.map +0 -1
  375. package/dist/utils/session/parsers/claude.js +0 -224
  376. package/dist/utils/session/parsers/claude.js.map +0 -1
  377. package/dist/utils/session/parsers/codex.d.ts +0 -37
  378. package/dist/utils/session/parsers/codex.d.ts.map +0 -1
  379. package/dist/utils/session/parsers/codex.js +0 -139
  380. package/dist/utils/session/parsers/codex.js.map +0 -1
  381. package/dist/utils/session/parsers/gemini.d.ts +0 -22
  382. package/dist/utils/session/parsers/gemini.d.ts.map +0 -1
  383. package/dist/utils/session/parsers/gemini.js +0 -118
  384. package/dist/utils/session/parsers/gemini.js.map +0 -1
  385. package/dist/utils/session/parsers/index.d.ts +0 -8
  386. package/dist/utils/session/parsers/index.d.ts.map +0 -1
  387. package/dist/utils/session/parsers/index.js +0 -12
  388. package/dist/utils/session/parsers/index.js.map +0 -1
  389. package/dist/utils/session/parsers/opencode.d.ts +0 -23
  390. package/dist/utils/session/parsers/opencode.d.ts.map +0 -1
  391. package/dist/utils/session/parsers/opencode.js +0 -126
  392. package/dist/utils/session/parsers/opencode.js.map +0 -1
  393. package/dist/utils/session/types.d.ts +0 -49
  394. package/dist/utils/session/types.d.ts.map +0 -1
  395. package/dist/utils/session/types.js +0 -5
  396. package/dist/utils/session/types.js.map +0 -1
  397. package/dist/utils/session.d.ts +0 -16
  398. package/dist/utils/session.d.ts.map +0 -1
  399. package/dist/utils/session.js +0 -16
  400. package/dist/utils/session.js.map +0 -1
  401. package/dist/utils/spinner.d.ts +0 -6
  402. package/dist/utils/spinner.d.ts.map +0 -1
  403. package/dist/utils/spinner.js +0 -47
  404. package/dist/utils/spinner.js.map +0 -1
  405. package/dist/utils/terminal.d.ts +0 -64
  406. package/dist/utils/terminal.d.ts.map +0 -1
  407. package/dist/utils/terminal.js +0 -270
  408. package/dist/utils/terminal.js.map +0 -1
  409. package/dist/utils/webui.d.ts +0 -8
  410. package/dist/utils/webui.d.ts.map +0 -1
  411. package/dist/utils/webui.js +0 -35
  412. package/dist/utils/webui.js.map +0 -1
  413. package/dist/utils.d.ts +0 -18
  414. package/dist/utils.d.ts.map +0 -1
  415. package/dist/utils.js +0 -79
  416. package/dist/utils.js.map +0 -1
  417. package/dist/web/client/src/components/BranchGraph.d.ts +0 -13
  418. package/dist/web/client/src/components/BranchGraph.d.ts.map +0 -1
  419. package/dist/web/client/src/components/BranchGraph.js +0 -49
  420. package/dist/web/client/src/components/BranchGraph.js.map +0 -1
  421. package/dist/web/client/src/components/CodingAgentLaunchModal.d.ts +0 -9
  422. package/dist/web/client/src/components/CodingAgentLaunchModal.d.ts.map +0 -1
  423. package/dist/web/client/src/components/CodingAgentLaunchModal.js +0 -354
  424. package/dist/web/client/src/components/CodingAgentLaunchModal.js.map +0 -1
  425. package/dist/web/client/src/components/CustomCodingAgentForm.d.ts +0 -23
  426. package/dist/web/client/src/components/CustomCodingAgentForm.d.ts.map +0 -1
  427. package/dist/web/client/src/components/CustomCodingAgentForm.js +0 -209
  428. package/dist/web/client/src/components/CustomCodingAgentForm.js.map +0 -1
  429. package/dist/web/client/src/components/CustomCodingAgentList.d.ts +0 -10
  430. package/dist/web/client/src/components/CustomCodingAgentList.d.ts.map +0 -1
  431. package/dist/web/client/src/components/CustomCodingAgentList.js +0 -57
  432. package/dist/web/client/src/components/CustomCodingAgentList.js.map +0 -1
  433. package/dist/web/client/src/components/EnvEditor.d.ts +0 -20
  434. package/dist/web/client/src/components/EnvEditor.d.ts.map +0 -1
  435. package/dist/web/client/src/components/EnvEditor.js +0 -75
  436. package/dist/web/client/src/components/EnvEditor.js.map +0 -1
  437. package/dist/web/client/src/components/EnvironmentEditor.d.ts +0 -17
  438. package/dist/web/client/src/components/EnvironmentEditor.d.ts.map +0 -1
  439. package/dist/web/client/src/components/EnvironmentEditor.js +0 -22
  440. package/dist/web/client/src/components/EnvironmentEditor.js.map +0 -1
  441. package/dist/web/client/src/components/Terminal.d.ts +0 -15
  442. package/dist/web/client/src/components/Terminal.d.ts.map +0 -1
  443. package/dist/web/client/src/components/Terminal.js +0 -119
  444. package/dist/web/client/src/components/Terminal.js.map +0 -1
  445. package/dist/web/client/src/components/branch-detail/BranchInfoCards.d.ts +0 -10
  446. package/dist/web/client/src/components/branch-detail/BranchInfoCards.d.ts.map +0 -1
  447. package/dist/web/client/src/components/branch-detail/BranchInfoCards.js +0 -107
  448. package/dist/web/client/src/components/branch-detail/BranchInfoCards.js.map +0 -1
  449. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.d.ts +0 -22
  450. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.d.ts.map +0 -1
  451. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.js +0 -80
  452. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.js.map +0 -1
  453. package/dist/web/client/src/components/branch-detail/TerminalPanel.d.ts +0 -11
  454. package/dist/web/client/src/components/branch-detail/TerminalPanel.d.ts.map +0 -1
  455. package/dist/web/client/src/components/branch-detail/TerminalPanel.js +0 -32
  456. package/dist/web/client/src/components/branch-detail/TerminalPanel.js.map +0 -1
  457. package/dist/web/client/src/components/branch-detail/ToolLauncher.d.ts +0 -40
  458. package/dist/web/client/src/components/branch-detail/ToolLauncher.d.ts.map +0 -1
  459. package/dist/web/client/src/components/branch-detail/ToolLauncher.js +0 -147
  460. package/dist/web/client/src/components/branch-detail/ToolLauncher.js.map +0 -1
  461. package/dist/web/client/src/components/branch-detail/index.d.ts +0 -5
  462. package/dist/web/client/src/components/branch-detail/index.d.ts.map +0 -1
  463. package/dist/web/client/src/components/branch-detail/index.js +0 -5
  464. package/dist/web/client/src/components/branch-detail/index.js.map +0 -1
  465. package/dist/web/client/src/components/common/BranchCard.d.ts +0 -17
  466. package/dist/web/client/src/components/common/BranchCard.d.ts.map +0 -1
  467. package/dist/web/client/src/components/common/BranchCard.js +0 -36
  468. package/dist/web/client/src/components/common/BranchCard.js.map +0 -1
  469. package/dist/web/client/src/components/common/MetricCard.d.ts +0 -10
  470. package/dist/web/client/src/components/common/MetricCard.d.ts.map +0 -1
  471. package/dist/web/client/src/components/common/MetricCard.js +0 -10
  472. package/dist/web/client/src/components/common/MetricCard.js.map +0 -1
  473. package/dist/web/client/src/components/common/PageHeader.d.ts +0 -12
  474. package/dist/web/client/src/components/common/PageHeader.d.ts.map +0 -1
  475. package/dist/web/client/src/components/common/PageHeader.js +0 -14
  476. package/dist/web/client/src/components/common/PageHeader.js.map +0 -1
  477. package/dist/web/client/src/components/common/SearchInput.d.ts +0 -14
  478. package/dist/web/client/src/components/common/SearchInput.d.ts.map +0 -1
  479. package/dist/web/client/src/components/common/SearchInput.js +0 -15
  480. package/dist/web/client/src/components/common/SearchInput.js.map +0 -1
  481. package/dist/web/client/src/components/common/StatusBadge.d.ts +0 -10
  482. package/dist/web/client/src/components/common/StatusBadge.d.ts.map +0 -1
  483. package/dist/web/client/src/components/common/StatusBadge.js +0 -15
  484. package/dist/web/client/src/components/common/StatusBadge.js.map +0 -1
  485. package/dist/web/client/src/components/common/index.d.ts +0 -6
  486. package/dist/web/client/src/components/common/index.d.ts.map +0 -1
  487. package/dist/web/client/src/components/common/index.js +0 -6
  488. package/dist/web/client/src/components/common/index.js.map +0 -1
  489. package/dist/web/client/src/components/graph/BranchDetailPanel.d.ts +0 -15
  490. package/dist/web/client/src/components/graph/BranchDetailPanel.d.ts.map +0 -1
  491. package/dist/web/client/src/components/graph/BranchDetailPanel.js +0 -57
  492. package/dist/web/client/src/components/graph/BranchDetailPanel.js.map +0 -1
  493. package/dist/web/client/src/components/graph/BranchNode.d.ts +0 -13
  494. package/dist/web/client/src/components/graph/BranchNode.d.ts.map +0 -1
  495. package/dist/web/client/src/components/graph/BranchNode.js +0 -103
  496. package/dist/web/client/src/components/graph/BranchNode.js.map +0 -1
  497. package/dist/web/client/src/components/graph/ClusterNode.d.ts +0 -13
  498. package/dist/web/client/src/components/graph/ClusterNode.d.ts.map +0 -1
  499. package/dist/web/client/src/components/graph/ClusterNode.js +0 -109
  500. package/dist/web/client/src/components/graph/ClusterNode.js.map +0 -1
  501. package/dist/web/client/src/components/graph/SynapticCanvas.d.ts +0 -17
  502. package/dist/web/client/src/components/graph/SynapticCanvas.d.ts.map +0 -1
  503. package/dist/web/client/src/components/graph/SynapticCanvas.js +0 -94
  504. package/dist/web/client/src/components/graph/SynapticCanvas.js.map +0 -1
  505. package/dist/web/client/src/components/graph/SynapticEdge.d.ts +0 -13
  506. package/dist/web/client/src/components/graph/SynapticEdge.d.ts.map +0 -1
  507. package/dist/web/client/src/components/graph/SynapticEdge.js +0 -113
  508. package/dist/web/client/src/components/graph/SynapticEdge.js.map +0 -1
  509. package/dist/web/client/src/components/graph/graphUtils.d.ts +0 -67
  510. package/dist/web/client/src/components/graph/graphUtils.d.ts.map +0 -1
  511. package/dist/web/client/src/components/graph/graphUtils.js +0 -175
  512. package/dist/web/client/src/components/graph/graphUtils.js.map +0 -1
  513. package/dist/web/client/src/components/graph/index.d.ts +0 -10
  514. package/dist/web/client/src/components/graph/index.d.ts.map +0 -1
  515. package/dist/web/client/src/components/graph/index.js +0 -10
  516. package/dist/web/client/src/components/graph/index.js.map +0 -1
  517. package/dist/web/client/src/components/ui/alert.d.ts +0 -9
  518. package/dist/web/client/src/components/ui/alert.d.ts.map +0 -1
  519. package/dist/web/client/src/components/ui/alert.js +0 -25
  520. package/dist/web/client/src/components/ui/alert.js.map +0 -1
  521. package/dist/web/client/src/components/ui/badge.d.ts +0 -10
  522. package/dist/web/client/src/components/ui/badge.d.ts.map +0 -1
  523. package/dist/web/client/src/components/ui/badge.js +0 -25
  524. package/dist/web/client/src/components/ui/badge.js.map +0 -1
  525. package/dist/web/client/src/components/ui/button.d.ts +0 -12
  526. package/dist/web/client/src/components/ui/button.d.ts.map +0 -1
  527. package/dist/web/client/src/components/ui/button.js +0 -33
  528. package/dist/web/client/src/components/ui/button.js.map +0 -1
  529. package/dist/web/client/src/components/ui/card.d.ts +0 -9
  530. package/dist/web/client/src/components/ui/card.d.ts.map +0 -1
  531. package/dist/web/client/src/components/ui/card.js +0 -16
  532. package/dist/web/client/src/components/ui/card.js.map +0 -1
  533. package/dist/web/client/src/components/ui/index.d.ts +0 -8
  534. package/dist/web/client/src/components/ui/index.d.ts.map +0 -1
  535. package/dist/web/client/src/components/ui/index.js +0 -8
  536. package/dist/web/client/src/components/ui/index.js.map +0 -1
  537. package/dist/web/client/src/components/ui/input.d.ts +0 -4
  538. package/dist/web/client/src/components/ui/input.d.ts.map +0 -1
  539. package/dist/web/client/src/components/ui/input.js +0 -8
  540. package/dist/web/client/src/components/ui/input.js.map +0 -1
  541. package/dist/web/client/src/components/ui/select.d.ts +0 -14
  542. package/dist/web/client/src/components/ui/select.d.ts.map +0 -1
  543. package/dist/web/client/src/components/ui/select.js +0 -39
  544. package/dist/web/client/src/components/ui/select.js.map +0 -1
  545. package/dist/web/client/src/components/ui/table.d.ts +0 -11
  546. package/dist/web/client/src/components/ui/table.d.ts.map +0 -1
  547. package/dist/web/client/src/components/ui/table.js +0 -21
  548. package/dist/web/client/src/components/ui/table.js.map +0 -1
  549. package/dist/web/client/src/hooks/useBranches.d.ts +0 -16
  550. package/dist/web/client/src/hooks/useBranches.d.ts.map +0 -1
  551. package/dist/web/client/src/hooks/useBranches.js +0 -35
  552. package/dist/web/client/src/hooks/useBranches.js.map +0 -1
  553. package/dist/web/client/src/hooks/useConfig.d.ts +0 -13
  554. package/dist/web/client/src/hooks/useConfig.d.ts.map +0 -1
  555. package/dist/web/client/src/hooks/useConfig.js +0 -27
  556. package/dist/web/client/src/hooks/useConfig.js.map +0 -1
  557. package/dist/web/client/src/hooks/useSessions.d.ts +0 -21
  558. package/dist/web/client/src/hooks/useSessions.d.ts.map +0 -1
  559. package/dist/web/client/src/hooks/useSessions.js +0 -54
  560. package/dist/web/client/src/hooks/useSessions.js.map +0 -1
  561. package/dist/web/client/src/hooks/useWorktrees.d.ts +0 -17
  562. package/dist/web/client/src/hooks/useWorktrees.d.ts.map +0 -1
  563. package/dist/web/client/src/hooks/useWorktrees.js +0 -41
  564. package/dist/web/client/src/hooks/useWorktrees.js.map +0 -1
  565. package/dist/web/client/src/lib/api.d.ts +0 -82
  566. package/dist/web/client/src/lib/api.d.ts.map +0 -1
  567. package/dist/web/client/src/lib/api.js +0 -147
  568. package/dist/web/client/src/lib/api.js.map +0 -1
  569. package/dist/web/client/src/lib/coding-agent-colors.d.ts +0 -86
  570. package/dist/web/client/src/lib/coding-agent-colors.d.ts.map +0 -1
  571. package/dist/web/client/src/lib/coding-agent-colors.js +0 -135
  572. package/dist/web/client/src/lib/coding-agent-colors.js.map +0 -1
  573. package/dist/web/client/src/lib/utils.d.ts +0 -7
  574. package/dist/web/client/src/lib/utils.d.ts.map +0 -1
  575. package/dist/web/client/src/lib/utils.js +0 -10
  576. package/dist/web/client/src/lib/utils.js.map +0 -1
  577. package/dist/web/client/src/lib/websocket.d.ts +0 -59
  578. package/dist/web/client/src/lib/websocket.d.ts.map +0 -1
  579. package/dist/web/client/src/lib/websocket.js +0 -182
  580. package/dist/web/client/src/lib/websocket.js.map +0 -1
  581. package/dist/web/client/src/main.d.ts +0 -2
  582. package/dist/web/client/src/main.d.ts.map +0 -1
  583. package/dist/web/client/src/main.js +0 -23
  584. package/dist/web/client/src/main.js.map +0 -1
  585. package/dist/web/client/src/pages/BranchDetailPage.d.ts +0 -3
  586. package/dist/web/client/src/pages/BranchDetailPage.d.ts.map +0 -1
  587. package/dist/web/client/src/pages/BranchDetailPage.js +0 -365
  588. package/dist/web/client/src/pages/BranchDetailPage.js.map +0 -1
  589. package/dist/web/client/src/pages/BranchListPage.d.ts +0 -3
  590. package/dist/web/client/src/pages/BranchListPage.d.ts.map +0 -1
  591. package/dist/web/client/src/pages/BranchListPage.js +0 -118
  592. package/dist/web/client/src/pages/BranchListPage.js.map +0 -1
  593. package/dist/web/client/src/pages/ConfigManagementPage.d.ts +0 -3
  594. package/dist/web/client/src/pages/ConfigManagementPage.d.ts.map +0 -1
  595. package/dist/web/client/src/pages/ConfigManagementPage.js +0 -132
  596. package/dist/web/client/src/pages/ConfigManagementPage.js.map +0 -1
  597. package/dist/web/client/src/pages/ConfigPage.d.ts +0 -3
  598. package/dist/web/client/src/pages/ConfigPage.d.ts.map +0 -1
  599. package/dist/web/client/src/pages/ConfigPage.js +0 -220
  600. package/dist/web/client/src/pages/ConfigPage.js.map +0 -1
  601. package/dist/web/client/src/router.d.ts +0 -9
  602. package/dist/web/client/src/router.d.ts.map +0 -1
  603. package/dist/web/client/src/router.js +0 -27
  604. package/dist/web/client/src/router.js.map +0 -1
  605. package/dist/web/client/vite.config.d.ts +0 -3
  606. package/dist/web/client/vite.config.d.ts.map +0 -1
  607. package/dist/web/client/vite.config.js +0 -28
  608. package/dist/web/client/vite.config.js.map +0 -1
  609. package/dist/web/server/env/importer.d.ts +0 -3
  610. package/dist/web/server/env/importer.d.ts.map +0 -1
  611. package/dist/web/server/env/importer.js +0 -51
  612. package/dist/web/server/env/importer.js.map +0 -1
  613. package/dist/web/server/index.d.ts +0 -33
  614. package/dist/web/server/index.d.ts.map +0 -1
  615. package/dist/web/server/index.js +0 -102
  616. package/dist/web/server/index.js.map +0 -1
  617. package/dist/web/server/pty/manager.d.ts +0 -54
  618. package/dist/web/server/pty/manager.d.ts.map +0 -1
  619. package/dist/web/server/pty/manager.js +0 -303
  620. package/dist/web/server/pty/manager.js.map +0 -1
  621. package/dist/web/server/routes/branches.d.ts +0 -11
  622. package/dist/web/server/routes/branches.d.ts.map +0 -1
  623. package/dist/web/server/routes/branches.js +0 -97
  624. package/dist/web/server/routes/branches.js.map +0 -1
  625. package/dist/web/server/routes/config.d.ts +0 -6
  626. package/dist/web/server/routes/config.d.ts.map +0 -1
  627. package/dist/web/server/routes/config.js +0 -162
  628. package/dist/web/server/routes/config.js.map +0 -1
  629. package/dist/web/server/routes/index.d.ts +0 -13
  630. package/dist/web/server/routes/index.d.ts.map +0 -1
  631. package/dist/web/server/routes/index.js +0 -29
  632. package/dist/web/server/routes/index.js.map +0 -1
  633. package/dist/web/server/routes/sessions.d.ts +0 -12
  634. package/dist/web/server/routes/sessions.d.ts.map +0 -1
  635. package/dist/web/server/routes/sessions.js +0 -176
  636. package/dist/web/server/routes/sessions.js.map +0 -1
  637. package/dist/web/server/routes/worktrees.d.ts +0 -11
  638. package/dist/web/server/routes/worktrees.d.ts.map +0 -1
  639. package/dist/web/server/routes/worktrees.js +0 -80
  640. package/dist/web/server/routes/worktrees.js.map +0 -1
  641. package/dist/web/server/services/branches.d.ts +0 -17
  642. package/dist/web/server/services/branches.d.ts.map +0 -1
  643. package/dist/web/server/services/branches.js +0 -275
  644. package/dist/web/server/services/branches.js.map +0 -1
  645. package/dist/web/server/services/worktrees.d.ts +0 -24
  646. package/dist/web/server/services/worktrees.d.ts.map +0 -1
  647. package/dist/web/server/services/worktrees.js +0 -66
  648. package/dist/web/server/services/worktrees.js.map +0 -1
  649. package/dist/web/server/tray.d.ts +0 -25
  650. package/dist/web/server/tray.d.ts.map +0 -1
  651. package/dist/web/server/tray.js +0 -116
  652. package/dist/web/server/tray.js.map +0 -1
  653. package/dist/web/server/types.d.ts +0 -4
  654. package/dist/web/server/types.d.ts.map +0 -1
  655. package/dist/web/server/types.js +0 -2
  656. package/dist/web/server/types.js.map +0 -1
  657. package/dist/web/server/websocket/handler.d.ts +0 -57
  658. package/dist/web/server/websocket/handler.d.ts.map +0 -1
  659. package/dist/web/server/websocket/handler.js +0 -220
  660. package/dist/web/server/websocket/handler.js.map +0 -1
  661. package/dist/worktree.d.ts +0 -117
  662. package/dist/worktree.d.ts.map +0 -1
  663. package/dist/worktree.js +0 -788
  664. package/dist/worktree.js.map +0 -1
  665. package/src/claude-history.ts +0 -717
  666. package/src/claude.ts +0 -557
  667. package/src/cli/ui/App.solid.tsx +0 -2145
  668. package/src/cli/ui/__tests__/solid/AppSolid.cleanup.test.tsx +0 -1175
  669. package/src/cli/ui/__tests__/solid/BranchListScreen.test.tsx +0 -343
  670. package/src/cli/ui/__tests__/solid/ConfirmScreen.test.tsx +0 -77
  671. package/src/cli/ui/__tests__/solid/LogScreen.test.tsx +0 -351
  672. package/src/cli/ui/__tests__/solid/components/QuickStartStep.test.tsx +0 -308
  673. package/src/cli/ui/__tests__/solid/components/WizardController.test.tsx +0 -71
  674. package/src/cli/ui/__tests__/solid/components/WizardPopup.test.tsx +0 -231
  675. package/src/cli/ui/__tests__/solid/components/WizardSteps.test.tsx +0 -331
  676. package/src/cli/ui/__tests__/utils/branchFormatter.test.ts +0 -702
  677. package/src/cli/ui/__tests__/utils/clipboard.test.ts +0 -65
  678. package/src/cli/ui/__tests__/utils/statisticsCalculator.test.ts +0 -243
  679. package/src/cli/ui/components/solid/Footer.tsx +0 -36
  680. package/src/cli/ui/components/solid/Header.tsx +0 -67
  681. package/src/cli/ui/components/solid/HelpOverlay.tsx +0 -194
  682. package/src/cli/ui/components/solid/QuickStartStep.tsx +0 -209
  683. package/src/cli/ui/components/solid/ScrollableList.tsx +0 -23
  684. package/src/cli/ui/components/solid/SearchInput.tsx +0 -42
  685. package/src/cli/ui/components/solid/SelectInput.tsx +0 -88
  686. package/src/cli/ui/components/solid/Stats.tsx +0 -92
  687. package/src/cli/ui/components/solid/TextInput.tsx +0 -49
  688. package/src/cli/ui/components/solid/WizardController.tsx +0 -457
  689. package/src/cli/ui/components/solid/WizardPopup.tsx +0 -135
  690. package/src/cli/ui/components/solid/WizardSteps.tsx +0 -781
  691. package/src/cli/ui/core/index.ts +0 -17
  692. package/src/cli/ui/core/keybindings.ts +0 -367
  693. package/src/cli/ui/core/theme.ts +0 -266
  694. package/src/cli/ui/core/types.ts +0 -235
  695. package/src/cli/ui/hooks/solid/useAsyncOperation.ts +0 -78
  696. package/src/cli/ui/hooks/solid/useFilter.ts +0 -86
  697. package/src/cli/ui/hooks/solid/useGitOperations.ts +0 -81
  698. package/src/cli/ui/hooks/solid/useKeyHandler.ts +0 -103
  699. package/src/cli/ui/hooks/solid/useScrollableList.ts +0 -149
  700. package/src/cli/ui/hooks/solid/useSelection.ts +0 -77
  701. package/src/cli/ui/hooks/solid/useTerminalSize.ts +0 -22
  702. package/src/cli/ui/index.solid.ts +0 -28
  703. package/src/cli/ui/screens/solid/BranchListScreen.tsx +0 -1153
  704. package/src/cli/ui/screens/solid/ConfirmScreen.tsx +0 -86
  705. package/src/cli/ui/screens/solid/EnvironmentScreen.tsx +0 -161
  706. package/src/cli/ui/screens/solid/ErrorScreen.tsx +0 -42
  707. package/src/cli/ui/screens/solid/InputScreen.tsx +0 -55
  708. package/src/cli/ui/screens/solid/LoadingIndicator.tsx +0 -77
  709. package/src/cli/ui/screens/solid/LogDetailScreen.tsx +0 -75
  710. package/src/cli/ui/screens/solid/LogScreen.tsx +0 -504
  711. package/src/cli/ui/screens/solid/ProfileEnvScreen.tsx +0 -196
  712. package/src/cli/ui/screens/solid/ProfileScreen.tsx +0 -98
  713. package/src/cli/ui/screens/solid/SelectorScreen.tsx +0 -181
  714. package/src/cli/ui/screens/solid/SettingsScreen.tsx +0 -52
  715. package/src/cli/ui/screens/solid/WorktreeCreateScreen.tsx +0 -136
  716. package/src/cli/ui/screens/solid/WorktreeDeleteScreen.tsx +0 -40
  717. package/src/cli/ui/stores/appStore.ts +0 -208
  718. package/src/cli/ui/stores/branchStore.ts +0 -357
  719. package/src/cli/ui/stores/index.ts +0 -31
  720. package/src/cli/ui/stores/uiStore.ts +0 -226
  721. package/src/cli/ui/types.ts +0 -371
  722. package/src/cli/ui/utils/__tests__/branchFormatter.test.ts +0 -227
  723. package/src/cli/ui/utils/__tests__/installedVersionCache.test.ts +0 -46
  724. package/src/cli/ui/utils/baseBranch.ts +0 -34
  725. package/src/cli/ui/utils/branchFormatter.ts +0 -222
  726. package/src/cli/ui/utils/clipboard.ts +0 -31
  727. package/src/cli/ui/utils/continueSession.ts +0 -231
  728. package/src/cli/ui/utils/installedVersionCache.ts +0 -84
  729. package/src/cli/ui/utils/modelOptions.test.ts +0 -98
  730. package/src/cli/ui/utils/modelOptions.ts +0 -169
  731. package/src/cli/ui/utils/statisticsCalculator.ts +0 -44
  732. package/src/cli/ui/utils/versionCache.ts +0 -93
  733. package/src/cli/ui/utils/versionFetcher.ts +0 -120
  734. package/src/codex.ts +0 -445
  735. package/src/config/__tests__/saveSession.test.ts +0 -143
  736. package/src/config/builtin-coding-agents.ts +0 -87
  737. package/src/config/constants.ts +0 -102
  738. package/src/config/env-history.ts +0 -45
  739. package/src/config/index.ts +0 -311
  740. package/src/config/profiles.ts +0 -359
  741. package/src/config/shared-env.ts +0 -139
  742. package/src/config/tools.ts +0 -319
  743. package/src/gemini.ts +0 -405
  744. package/src/git.ts +0 -1263
  745. package/src/github.ts +0 -158
  746. package/src/index.test.ts +0 -93
  747. package/src/index.ts +0 -1024
  748. package/src/launcher.ts +0 -235
  749. package/src/logging/agentOutput.ts +0 -216
  750. package/src/logging/formatter.ts +0 -125
  751. package/src/logging/logger.ts +0 -106
  752. package/src/logging/reader.ts +0 -240
  753. package/src/logging/rotation.ts +0 -25
  754. package/src/opentui/index.solid.ts +0 -1
  755. package/src/repositories/git.repository.ts +0 -129
  756. package/src/repositories/github.repository.ts +0 -83
  757. package/src/repositories/worktree.repository.ts +0 -77
  758. package/src/services/BatchMergeService.ts +0 -251
  759. package/src/services/WorktreeOrchestrator.ts +0 -115
  760. package/src/services/__tests__/BatchMergeService.test.ts +0 -534
  761. package/src/services/__tests__/WorktreeOrchestrator.test.ts +0 -259
  762. package/src/services/codingAgentCommandResolver.ts +0 -118
  763. package/src/services/codingAgentResolver.ts +0 -375
  764. package/src/services/dependency-installer.ts +0 -192
  765. package/src/services/git.service.ts +0 -115
  766. package/src/services/github.service.ts +0 -61
  767. package/src/services/worktree.service.ts +0 -66
  768. package/src/shared/codingAgentConstants.ts +0 -103
  769. package/src/trayicon.d.ts +0 -30
  770. package/src/types/api.ts +0 -256
  771. package/src/types/coding-agent.ts +0 -85
  772. package/src/types/profiles.ts +0 -64
  773. package/src/types/tools.ts +0 -269
  774. package/src/utils/__tests__/npmRegistry.test.ts +0 -250
  775. package/src/utils/__tests__/prompt.test.ts +0 -125
  776. package/src/utils/bun-runtime.ts +0 -29
  777. package/src/utils/coding-agent-colors.ts +0 -165
  778. package/src/utils/command.ts +0 -234
  779. package/src/utils/error-utils.ts +0 -133
  780. package/src/utils/npmRegistry.ts +0 -249
  781. package/src/utils/prompt.ts +0 -149
  782. package/src/utils/session/common.ts +0 -474
  783. package/src/utils/session/index.ts +0 -50
  784. package/src/utils/session/parsers/claude.ts +0 -283
  785. package/src/utils/session/parsers/codex.ts +0 -166
  786. package/src/utils/session/parsers/gemini.ts +0 -135
  787. package/src/utils/session/parsers/index.ts +0 -31
  788. package/src/utils/session/parsers/opencode.ts +0 -151
  789. package/src/utils/session/types.ts +0 -51
  790. package/src/utils/session.ts +0 -16
  791. package/src/utils/spinner.ts +0 -54
  792. package/src/utils/terminal.ts +0 -327
  793. package/src/utils/webui.ts +0 -43
  794. package/src/utils.test.ts +0 -43
  795. package/src/utils.ts +0 -93
  796. package/src/web/client/components.json +0 -21
  797. package/src/web/client/index.html +0 -12
  798. package/src/web/client/src/components/BranchGraph.tsx +0 -95
  799. package/src/web/client/src/components/CodingAgentLaunchModal.tsx +0 -570
  800. package/src/web/client/src/components/CustomCodingAgentForm.tsx +0 -386
  801. package/src/web/client/src/components/CustomCodingAgentList.tsx +0 -119
  802. package/src/web/client/src/components/EnvEditor.tsx +0 -188
  803. package/src/web/client/src/components/EnvironmentEditor.tsx +0 -97
  804. package/src/web/client/src/components/Terminal.tsx +0 -145
  805. package/src/web/client/src/components/branch-detail/BranchInfoCards.tsx +0 -193
  806. package/src/web/client/src/components/branch-detail/SessionHistoryTable.tsx +0 -187
  807. package/src/web/client/src/components/branch-detail/TerminalPanel.tsx +0 -92
  808. package/src/web/client/src/components/branch-detail/ToolLauncher.tsx +0 -332
  809. package/src/web/client/src/components/branch-detail/index.ts +0 -4
  810. package/src/web/client/src/components/common/BranchCard.tsx +0 -117
  811. package/src/web/client/src/components/common/MetricCard.tsx +0 -22
  812. package/src/web/client/src/components/common/PageHeader.tsx +0 -44
  813. package/src/web/client/src/components/common/SearchInput.tsx +0 -40
  814. package/src/web/client/src/components/common/StatusBadge.tsx +0 -37
  815. package/src/web/client/src/components/common/index.ts +0 -5
  816. package/src/web/client/src/components/graph/BranchDetailPanel.tsx +0 -152
  817. package/src/web/client/src/components/graph/BranchNode.tsx +0 -200
  818. package/src/web/client/src/components/graph/ClusterNode.tsx +0 -211
  819. package/src/web/client/src/components/graph/SynapticCanvas.tsx +0 -171
  820. package/src/web/client/src/components/graph/SynapticEdge.tsx +0 -311
  821. package/src/web/client/src/components/graph/graphUtils.ts +0 -265
  822. package/src/web/client/src/components/graph/index.ts +0 -10
  823. package/src/web/client/src/components/ui/alert.tsx +0 -63
  824. package/src/web/client/src/components/ui/badge.tsx +0 -44
  825. package/src/web/client/src/components/ui/button.tsx +0 -57
  826. package/src/web/client/src/components/ui/card.tsx +0 -82
  827. package/src/web/client/src/components/ui/index.ts +0 -32
  828. package/src/web/client/src/components/ui/input.tsx +0 -21
  829. package/src/web/client/src/components/ui/select.tsx +0 -156
  830. package/src/web/client/src/components/ui/table.tsx +0 -119
  831. package/src/web/client/src/hooks/useBranches.ts +0 -41
  832. package/src/web/client/src/hooks/useConfig.ts +0 -31
  833. package/src/web/client/src/hooks/useSessions.ts +0 -68
  834. package/src/web/client/src/hooks/useWorktrees.ts +0 -47
  835. package/src/web/client/src/index.css +0 -349
  836. package/src/web/client/src/lib/api.ts +0 -184
  837. package/src/web/client/src/lib/coding-agent-colors.ts +0 -149
  838. package/src/web/client/src/lib/utils.ts +0 -10
  839. package/src/web/client/src/lib/websocket.ts +0 -222
  840. package/src/web/client/src/main.tsx +0 -29
  841. package/src/web/client/src/pages/BranchDetailPage.tsx +0 -555
  842. package/src/web/client/src/pages/BranchListPage.tsx +0 -242
  843. package/src/web/client/src/pages/ConfigManagementPage.tsx +0 -248
  844. package/src/web/client/src/pages/ConfigPage.tsx +0 -368
  845. package/src/web/client/src/router.tsx +0 -27
  846. package/src/web/client/vite.config.ts +0 -28
  847. package/src/web/server/env/importer.ts +0 -62
  848. package/src/web/server/index.ts +0 -143
  849. package/src/web/server/pty/manager.ts +0 -443
  850. package/src/web/server/routes/branches.ts +0 -126
  851. package/src/web/server/routes/config.ts +0 -226
  852. package/src/web/server/routes/index.ts +0 -37
  853. package/src/web/server/routes/sessions.ts +0 -252
  854. package/src/web/server/routes/worktrees.ts +0 -108
  855. package/src/web/server/services/branches.ts +0 -387
  856. package/src/web/server/services/worktrees.ts +0 -93
  857. package/src/web/server/tray.ts +0 -136
  858. package/src/web/server/types.ts +0 -14
  859. package/src/web/server/websocket/handler.ts +0 -299
  860. package/src/worktree.ts +0 -1109
package/src/index.ts DELETED
@@ -1,1024 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- import path from "node:path";
4
- import { fileURLToPath } from "node:url";
5
- import {
6
- isGitRepository,
7
- getRepositoryRoot,
8
- branchExists,
9
- fetchAllRemotes,
10
- pullFastForward,
11
- getBranchDivergenceStatuses,
12
- hasUncommittedChanges,
13
- hasUnpushedCommits,
14
- getUncommittedChangesCount,
15
- getUnpushedCommitsCount,
16
- } from "./git.js";
17
- import { launchClaudeCode } from "./claude.js";
18
- import { launchCodexCLI, type CodexReasoningEffort } from "./codex.js";
19
- import { launchGeminiCLI } from "./gemini.js";
20
- import {
21
- WorktreeOrchestrator,
22
- type EnsureWorktreeOptions,
23
- } from "./services/WorktreeOrchestrator.js";
24
- import chalk from "chalk";
25
- import type { SelectionResult } from "./cli/ui/App.solid.js";
26
- import {
27
- isProtectedBranchName,
28
- switchToProtectedBranch,
29
- resolveWorktreePathForBranch,
30
- listAllWorktrees,
31
- repairWorktreePath,
32
- } from "./worktree.js";
33
- import {
34
- getTerminalStreams,
35
- resetTerminalModes,
36
- waitForUserAcknowledgement,
37
- writeTerminalLine,
38
- } from "./utils/terminal.js";
39
- import { createLogger } from "./logging/logger.js";
40
- import { getCodingAgentById, getSharedEnvironment } from "./config/tools.js";
41
- import { launchCodingAgent } from "./launcher.js";
42
- import { saveSession, loadSession } from "./config/index.js";
43
- import {
44
- findLatestCodexSession,
45
- findLatestClaudeSession,
46
- findLatestGeminiSession,
47
- } from "./utils/session.js";
48
- import {
49
- getPackageVersion,
50
- setupExitHandlers,
51
- registerExitCleanup,
52
- clearExitCleanup,
53
- } from "./utils.js";
54
- import { findLatestClaudeSessionId } from "./utils/session.js";
55
- import { resolveContinueSessionId } from "./cli/ui/utils/continueSession.js";
56
- import { normalizeModelId } from "./cli/ui/utils/modelOptions.js";
57
- import {
58
- installDependenciesForWorktree,
59
- DependencyInstallError,
60
- type DependencyInstallResult,
61
- } from "./services/dependency-installer.js";
62
- import { isGitRelatedError, isRecoverableError } from "./utils/error-utils.js";
63
-
64
- const ERROR_PROMPT = chalk.yellow(
65
- "Review the error details, then press Enter to continue.",
66
- );
67
- const SUCCESS_PROMPT = chalk.green("Press Enter to return to main menu...");
68
- const POST_SESSION_DELAY_MS = 500;
69
-
70
- // Category: cli
71
- const appLogger = createLogger({ category: "cli" });
72
-
73
- async function waitForErrorAcknowledgement(): Promise<void> {
74
- await waitForUserAcknowledgement(ERROR_PROMPT);
75
- }
76
-
77
- /**
78
- * Simple print functions (replacing legacy UI display functions)
79
- */
80
- function printError(message: string): void {
81
- writeTerminalLine(chalk.red(`❌ ${message}`), "stderr");
82
- appLogger.error({ message });
83
- }
84
-
85
- function printInfo(message: string): void {
86
- writeTerminalLine(chalk.blue(`ℹ️ ${message}`));
87
- appLogger.info({ message });
88
- }
89
-
90
- function printWarning(message: string): void {
91
- writeTerminalLine(chalk.yellow(`⚠️ ${message}`), "stderr");
92
- appLogger.warn({ message });
93
- }
94
-
95
- type GitStepResult<T> = { ok: true; value: T } | { ok: false };
96
-
97
- // Note: isGitRelatedError and isRecoverableError are now imported from ./utils/error-utils.js
98
-
99
- async function runGitStep<T>(
100
- description: string,
101
- step: () => Promise<T>,
102
- ): Promise<GitStepResult<T>> {
103
- try {
104
- const value = await step();
105
- return { ok: true, value };
106
- } catch (error) {
107
- if (isGitRelatedError(error)) {
108
- const details = error instanceof Error ? error.message : String(error);
109
- printWarning(`Git operation failed (${description}). Error: ${details}`);
110
- await waitForErrorAcknowledgement();
111
- return { ok: false };
112
- }
113
- throw error;
114
- }
115
- }
116
-
117
- async function runDependencyInstallStep<T extends DependencyInstallResult>(
118
- description: string,
119
- step: () => Promise<T>,
120
- ): Promise<{ ok: true; value: T }> {
121
- try {
122
- const value = await step();
123
- return { ok: true, value };
124
- } catch (error) {
125
- if (error instanceof DependencyInstallError) {
126
- const details = error.message ?? "";
127
- // 依存インストールが失敗してもワークフロー自体は継続させる
128
- printError(`Failed to complete ${description}. ${details}`);
129
- await waitForErrorAcknowledgement();
130
-
131
- const fallbackResult = {
132
- skipped: true,
133
- manager: null,
134
- lockfile: null,
135
- reason: "unknown-error",
136
- message: details,
137
- } as T;
138
-
139
- return { ok: true, value: fallbackResult };
140
- }
141
-
142
- throw error;
143
- }
144
- }
145
-
146
- function showHelp(): void {
147
- console.log(`
148
- Worktree Manager
149
-
150
- Usage: gwt [command] [options]
151
-
152
- Commands:
153
- serve Start Web UI server (http://localhost:3001)
154
-
155
- Options:
156
- -h, --help Show this help message
157
- -v, --version Show version information
158
-
159
- Description:
160
- Interactive Git worktree manager with AI tool selection (Claude Code / Codex CLI) and graphical branch selection.
161
- Launch without additional options to open the interactive CLI menu.
162
- Use 'gwt serve' to start the Web UI server for browser-based management.
163
- `);
164
- }
165
-
166
- /**
167
- * Display application version
168
- * Reads version from package.json and outputs to stdout
169
- * Exits with code 1 if version cannot be retrieved
170
- */
171
- async function showVersion(): Promise<void> {
172
- const version = await getPackageVersion();
173
- if (version) {
174
- console.log(version);
175
- } else {
176
- console.error("Error: Unable to retrieve version information");
177
- await waitForErrorAcknowledgement();
178
- process.exit(1);
179
- }
180
- }
181
-
182
- /**
183
- * Performs terminal cleanup when exiting.
184
- */
185
- function performTerminalCleanup(): void {
186
- const terminal = getTerminalStreams();
187
- terminal.exitRawMode();
188
- resetTerminalModes(terminal.stdout);
189
- }
190
-
191
- /**
192
- * Main function for OpenTUI UI
193
- * Returns SelectionResult if user made selections, undefined if user quit
194
- */
195
- async function mainSolidUI(): Promise<SelectionResult | undefined> {
196
- if (!("Bun" in globalThis)) {
197
- throw new Error(
198
- "OpenTUI requires the Bun runtime. Run with Bun (e.g. bunx @akiojin/gwt@latest).",
199
- );
200
- }
201
- const { renderSolidApp } = await import("./opentui/index.solid.js");
202
- const terminal = getTerminalStreams();
203
-
204
- // Register cleanup for signal handlers
205
- registerExitCleanup(performTerminalCleanup);
206
- let selectionResult: SelectionResult | undefined;
207
- // マウスキャプチャを有効にしてSelection APIで選択終了時にクリップボードへコピー
208
- const useMouse = true;
209
- const enableMouseMovement = false;
210
- const altScreenPreference =
211
- process.env.GWT_UI_ALT_SCREEN?.trim().toLowerCase();
212
- // Ink.js版ではalternate screenを使用していなかったため、デフォルトをfalseに
213
- // alternate screenを使用するとコーディングエージェント起動/終了ログが見えなくなる
214
- const useAlternateScreen =
215
- altScreenPreference === "true" || altScreenPreference === "1";
216
-
217
- if (typeof terminal.stdin.resume === "function") {
218
- terminal.stdin.resume();
219
- }
220
- if (typeof terminal.stdin.setRawMode === "function") {
221
- try {
222
- terminal.stdin.setRawMode(true);
223
- } catch {
224
- // Ignore raw mode errors and let OpenTUI handle setup.
225
- }
226
- }
227
-
228
- try {
229
- await renderSolidApp(
230
- {
231
- onExit: (result?: SelectionResult) => {
232
- selectionResult = result;
233
- },
234
- },
235
- {
236
- stdin: terminal.stdin,
237
- stdout: terminal.stdout,
238
- exitOnCtrlC: true,
239
- useAlternateScreen,
240
- useMouse,
241
- enableMouseMovement,
242
- },
243
- );
244
- } finally {
245
- performTerminalCleanup();
246
- if (typeof terminal.stdin.pause === "function") {
247
- terminal.stdin.pause();
248
- }
249
- terminal.stdin.removeAllListeners?.("data");
250
- terminal.stdin.removeAllListeners?.("keypress");
251
- terminal.stdin.removeAllListeners?.("readable");
252
- clearExitCleanup();
253
- }
254
-
255
- return selectionResult;
256
- }
257
-
258
- /**
259
- * Handle AI tool workflow
260
- */
261
- export async function handleAIToolWorkflow(
262
- selectionResult: SelectionResult,
263
- ): Promise<void> {
264
- const {
265
- branch,
266
- displayName,
267
- branchType,
268
- remoteBranch,
269
- baseBranch,
270
- isNewBranch,
271
- tool,
272
- mode,
273
- skipPermissions,
274
- model,
275
- inferenceLevel,
276
- sessionId: selectedSessionId,
277
- toolVersion,
278
- } = selectionResult;
279
-
280
- const branchLabel = displayName ?? branch;
281
- const normalizedModel = normalizeModelId(tool, model ?? null);
282
- const modelInfo =
283
- normalizedModel || inferenceLevel
284
- ? `, model=${normalizedModel ?? "default"}${inferenceLevel ? `/${inferenceLevel}` : ""}`
285
- : "";
286
- printInfo(
287
- `Selected: ${branchLabel} with ${tool} (${mode} mode${modelInfo}, skipPermissions: ${skipPermissions})`,
288
- );
289
-
290
- try {
291
- // Get repository root
292
- const repoRootResult = await runGitStep("retrieve repository root", () =>
293
- getRepositoryRoot(),
294
- );
295
- if (!repoRootResult.ok) {
296
- return;
297
- }
298
- const repoRoot = repoRootResult.value;
299
-
300
- // Determine ensure options (local vs remote branch)
301
- const ensureOptions: EnsureWorktreeOptions = {};
302
-
303
- if (isNewBranch) {
304
- ensureOptions.isNewBranch = true;
305
- if (baseBranch) {
306
- ensureOptions.baseBranch = baseBranch;
307
- }
308
- }
309
-
310
- if (branchType === "remote" && !isNewBranch) {
311
- const remoteRef = remoteBranch ?? branch;
312
- const localExists = await branchExists(branch);
313
-
314
- ensureOptions.baseBranch = remoteRef;
315
- ensureOptions.isNewBranch = !localExists;
316
- }
317
-
318
- let existingWorktreeResolution = await resolveWorktreePathForBranch(branch);
319
- let existingWorktree = existingWorktreeResolution.path;
320
-
321
- // mismatch検出時に自動修復を試みる (FR-009〜FR-013)
322
- if (!existingWorktree && existingWorktreeResolution.mismatch) {
323
- const actualBranch =
324
- existingWorktreeResolution.mismatch.actualBranch ?? "unknown";
325
- printWarning(
326
- `Worktree mismatch detected: ${existingWorktreeResolution.mismatch.path} is checked out to '${actualBranch}'. Attempting to repair...`,
327
- );
328
-
329
- // 共通修復関数を使用してパス修復を試みる
330
- const repairResult = await repairWorktreePath(
331
- branch,
332
- existingWorktreeResolution.mismatch.path,
333
- repoRoot,
334
- );
335
-
336
- if (repairResult.repaired) {
337
- // FR-012: 修復成功時のメッセージ
338
- printInfo(`Worktree path repaired: ${repairResult.newPath}`);
339
-
340
- // 修復後に再度解決を試みる
341
- existingWorktreeResolution = await resolveWorktreePathForBranch(branch);
342
- existingWorktree = existingWorktreeResolution.path;
343
- } else if (repairResult.removed) {
344
- // FR-013: メタデータ削除成功時のメッセージ
345
- printInfo(`Stale worktree metadata removed. Creating new worktree...`);
346
- } else {
347
- printWarning(`Failed to repair worktree for '${branch}'.`);
348
- }
349
- }
350
-
351
- const isProtectedBranch =
352
- isProtectedBranchName(branch) ||
353
- (remoteBranch ? isProtectedBranchName(remoteBranch) : false);
354
-
355
- let protectedCheckoutResult: "none" | "local" | "remote" = "none";
356
- if (isProtectedBranch) {
357
- const protectedRemoteRef =
358
- remoteBranch ??
359
- (branchType === "remote" ? (displayName ?? branch) : null);
360
- const switchResult = await runGitStep(
361
- `check out protected branch '${branch}'`,
362
- () =>
363
- switchToProtectedBranch({
364
- branchName: branch,
365
- repoRoot,
366
- remoteRef: protectedRemoteRef ?? null,
367
- }),
368
- );
369
- if (!switchResult.ok) {
370
- return;
371
- }
372
- protectedCheckoutResult = switchResult.value;
373
- ensureOptions.isNewBranch = false;
374
- }
375
-
376
- const willCreateWorktree = !existingWorktree && !isProtectedBranch;
377
-
378
- const orchestrator = new WorktreeOrchestrator();
379
-
380
- // Ensure worktree exists (using orchestrator)
381
- if (willCreateWorktree) {
382
- const targetLabel = ensureOptions.isNewBranch
383
- ? `base ${ensureOptions.baseBranch ?? branch}`
384
- : `branch ${branch}`;
385
- printInfo(
386
- `Creating worktree for ${targetLabel}. Progress indicator running...`,
387
- );
388
- }
389
-
390
- const worktreeResult = await runGitStep(
391
- `prepare worktree (${branch})`,
392
- () => orchestrator.ensureWorktree(branch, repoRoot, ensureOptions),
393
- );
394
- if (!worktreeResult.ok) {
395
- return;
396
- }
397
- const worktreePath = worktreeResult.value;
398
-
399
- if (isProtectedBranch) {
400
- if (protectedCheckoutResult === "remote" && remoteBranch) {
401
- printInfo(
402
- `Created local tracking branch '${branch}' from ${remoteBranch} in repository root.`,
403
- );
404
- } else if (protectedCheckoutResult === "local") {
405
- printInfo(
406
- `Checked out protected branch '${branch}' in repository root.`,
407
- );
408
- } else {
409
- printInfo(`Using repository root for protected branch '${branch}'.`);
410
- }
411
- } else if (existingWorktree) {
412
- printInfo(`Reusing existing worktree: ${existingWorktree}`);
413
- } else if (ensureOptions.isNewBranch) {
414
- const base = ensureOptions.baseBranch ?? "";
415
- printInfo(`Created new worktree from ${base}: ${worktreePath}`);
416
- } else if (willCreateWorktree) {
417
- printInfo(`Created worktree: ${worktreePath}`);
418
- }
419
-
420
- printInfo(`Worktree ready: ${worktreePath}`);
421
-
422
- const dependencyResult = await runDependencyInstallStep(
423
- `dependency installation (${branch})`,
424
- () => installDependenciesForWorktree(worktreePath),
425
- );
426
- if (!dependencyResult.ok) {
427
- return;
428
- }
429
- const dependencyStatus = dependencyResult.value;
430
-
431
- if (dependencyStatus.skipped) {
432
- let warningMessage: string;
433
- switch (dependencyStatus.reason) {
434
- case "missing-lockfile":
435
- warningMessage =
436
- "Skipping automatic install because no lockfiles (bun.lock / pnpm-lock.yaml / package-lock.json) or package.json could be found. Run the appropriate package-manager install command manually if needed.";
437
- break;
438
- case "missing-binary":
439
- warningMessage = `Package manager '${dependencyStatus.manager ?? "unknown"}' is not available in this environment; skipping automatic install.`;
440
- break;
441
- case "install-failed":
442
- warningMessage = `Dependency installation failed via ${dependencyStatus.manager ?? "unknown"}. Continuing without reinstall.`;
443
- break;
444
- case "lockfile-access-error":
445
- warningMessage =
446
- "Unable to read dependency lockfiles due to a filesystem error. Continuing without reinstall.";
447
- break;
448
- default:
449
- warningMessage =
450
- "Skipping automatic dependency install due to an unexpected error. Continuing without reinstall.";
451
- }
452
-
453
- if (dependencyStatus.message) {
454
- warningMessage = `${warningMessage}\nDetails: ${dependencyStatus.message}`;
455
- }
456
-
457
- printWarning(warningMessage);
458
- } else {
459
- printInfo(`Dependencies synced via ${dependencyStatus.manager}.`);
460
- }
461
-
462
- // Update remotes and attempt fast-forward pull
463
- const fetchResult = await runGitStep("fetch remotes", () =>
464
- fetchAllRemotes({ cwd: repoRoot }),
465
- );
466
- if (!fetchResult.ok) {
467
- return;
468
- }
469
-
470
- let fastForwardError: Error | null = null;
471
- try {
472
- await pullFastForward(worktreePath);
473
- printInfo(`Fast-forward pull finished for ${branch}.`);
474
- } catch (error) {
475
- fastForwardError =
476
- error instanceof Error ? error : new Error(String(error));
477
- printWarning(
478
- `Fast-forward pull failed for ${branch}. Checking for divergence before continuing...`,
479
- );
480
- }
481
-
482
- const divergenceBranches = new Set<string>();
483
- const sanitizeBranchName = (value: string | null | undefined) => {
484
- if (!value) return null;
485
- return value.replace(/^origin\//, "");
486
- };
487
-
488
- const sanitizedBranch = sanitizeBranchName(branch);
489
- if (sanitizedBranch) {
490
- divergenceBranches.add(sanitizedBranch);
491
- }
492
-
493
- const sanitizedRemoteBranch = sanitizeBranchName(remoteBranch);
494
- if (sanitizedRemoteBranch) {
495
- divergenceBranches.add(sanitizedRemoteBranch);
496
- }
497
-
498
- let divergenceStatuses: Awaited<
499
- ReturnType<typeof getBranchDivergenceStatuses>
500
- > = [];
501
- try {
502
- divergenceStatuses = await getBranchDivergenceStatuses({
503
- cwd: repoRoot,
504
- branches: Array.from(divergenceBranches),
505
- });
506
- } catch (error) {
507
- const details = error instanceof Error ? error.message : String(error);
508
- printWarning(
509
- `Failed to check branch divergence. Error: ${details}. Continuing without blocking.`,
510
- );
511
- divergenceStatuses = [];
512
- }
513
- const divergedBranches = divergenceStatuses.filter(
514
- (status) => status.remoteAhead > 0 && status.localAhead > 0,
515
- );
516
-
517
- if (divergedBranches.length > 0) {
518
- printWarning(
519
- "Potential merge conflicts detected when pulling the following local branches:",
520
- );
521
-
522
- divergedBranches.forEach(
523
- ({ branch: divergedBranch, remoteAhead, localAhead }) => {
524
- const highlight =
525
- divergedBranch === branch ? " (selected branch)" : "";
526
- writeTerminalLine(
527
- chalk.yellow(
528
- ` • ${divergedBranch}${highlight} remote:+${remoteAhead} local:+${localAhead}`,
529
- ),
530
- "stderr",
531
- );
532
- },
533
- );
534
-
535
- printWarning(
536
- "Resolve these divergences (e.g., rebase or merge) to avoid conflicts. Continuing without blocking.",
537
- );
538
- } else if (fastForwardError) {
539
- printWarning(
540
- `Fast-forward pull could not complete (${fastForwardError.message}). Continuing without blocking.`,
541
- );
542
- }
543
-
544
- // Get coding agent definition and shared environment overrides
545
- const [agentConfig, sharedEnv] = await Promise.all([
546
- getCodingAgentById(tool),
547
- getSharedEnvironment(),
548
- ]);
549
-
550
- if (!agentConfig) {
551
- throw new Error(`Coding agent not found: ${tool}`);
552
- }
553
-
554
- // Save selection immediately (including history) so "last agent" is reflected
555
- // even if the agent is interrupted or killed mid-run (e.g., Ctrl+C).
556
- // FR-042: Record timestamp to session history immediately on agent start.
557
- await saveSession({
558
- lastWorktreePath: worktreePath,
559
- lastBranch: branch,
560
- lastUsedTool: tool,
561
- toolLabel: agentConfig.displayName ?? tool,
562
- mode,
563
- model: normalizedModel ?? null,
564
- reasoningLevel: inferenceLevel ?? null,
565
- skipPermissions: skipPermissions ?? null,
566
- toolVersion: toolVersion ?? null,
567
- timestamp: Date.now(),
568
- repositoryRoot: repoRoot,
569
- });
570
-
571
- // Lookup saved session ID for Continue (auto attach)
572
- let resumeSessionId: string | null =
573
- selectedSessionId && selectedSessionId.length > 0
574
- ? selectedSessionId
575
- : null;
576
- if (mode === "continue") {
577
- const existingSession = await loadSession(repoRoot);
578
- const history = existingSession?.history ?? [];
579
-
580
- resumeSessionId =
581
- resumeSessionId ??
582
- (await resolveContinueSessionId({
583
- history,
584
- sessionData: existingSession,
585
- branch,
586
- toolId: tool,
587
- repoRoot,
588
- }));
589
-
590
- if (!resumeSessionId) {
591
- printWarning(
592
- "No saved session ID found for this branch/tool. Falling back to tool default.",
593
- );
594
- }
595
- }
596
-
597
- const launchStartedAt = Date.now();
598
-
599
- // FR-043: Start periodic timestamp update timer (30 seconds interval)
600
- // This ensures the latest activity time is updated even if the tool is force-killed
601
- const SESSION_UPDATE_INTERVAL_MS = 30_000;
602
- const updateTimer = setInterval(async () => {
603
- try {
604
- await saveSession(
605
- {
606
- lastWorktreePath: worktreePath,
607
- lastBranch: branch,
608
- lastUsedTool: tool,
609
- toolLabel: agentConfig.displayName ?? tool,
610
- mode,
611
- model: normalizedModel ?? null,
612
- reasoningLevel: inferenceLevel ?? null,
613
- skipPermissions: skipPermissions ?? null,
614
- toolVersion: toolVersion ?? null,
615
- timestamp: Date.now(),
616
- repositoryRoot: repoRoot,
617
- },
618
- { skipHistory: true }, // Don't add to history, just update timestamp
619
- );
620
- } catch {
621
- // Ignore errors during periodic update
622
- }
623
- }, SESSION_UPDATE_INTERVAL_MS);
624
-
625
- // Launch selected coding agent
626
- // Builtin agents use their dedicated launch functions
627
- // Custom agents use the generic launchCodingAgent function
628
- let launchResult: { sessionId?: string | null } | void;
629
- try {
630
- if (tool === "claude-code") {
631
- const launchOptions: {
632
- mode?: "normal" | "continue" | "resume";
633
- skipPermissions?: boolean;
634
- envOverrides?: Record<string, string>;
635
- model?: string;
636
- sessionId?: string | null;
637
- chrome?: boolean;
638
- branch?: string | null;
639
- version?: string | null;
640
- } = {
641
- mode:
642
- mode === "resume"
643
- ? "resume"
644
- : mode === "continue"
645
- ? "continue"
646
- : "normal",
647
- skipPermissions,
648
- envOverrides: sharedEnv,
649
- sessionId: resumeSessionId,
650
- chrome: true,
651
- branch,
652
- version: toolVersion ?? null,
653
- };
654
- if (normalizedModel) {
655
- launchOptions.model = normalizedModel;
656
- }
657
- launchResult = await launchClaudeCode(worktreePath, launchOptions);
658
- } else if (tool === "codex-cli") {
659
- const launchOptions: {
660
- mode?: "normal" | "continue" | "resume";
661
- bypassApprovals?: boolean;
662
- envOverrides?: Record<string, string>;
663
- model?: string;
664
- reasoningEffort?: CodexReasoningEffort;
665
- sessionId?: string | null;
666
- branch?: string | null;
667
- version?: string | null;
668
- } = {
669
- mode:
670
- mode === "resume"
671
- ? "resume"
672
- : mode === "continue"
673
- ? "continue"
674
- : "normal",
675
- bypassApprovals: skipPermissions,
676
- envOverrides: sharedEnv,
677
- sessionId: resumeSessionId,
678
- branch,
679
- version: toolVersion ?? null,
680
- };
681
- if (normalizedModel) {
682
- launchOptions.model = normalizedModel;
683
- }
684
- if (inferenceLevel) {
685
- launchOptions.reasoningEffort =
686
- inferenceLevel as CodexReasoningEffort;
687
- }
688
- launchResult = await launchCodexCLI(worktreePath, launchOptions);
689
- } else if (tool === "gemini-cli") {
690
- const launchOptions: {
691
- mode?: "normal" | "continue" | "resume";
692
- skipPermissions?: boolean;
693
- envOverrides?: Record<string, string>;
694
- model?: string;
695
- sessionId?: string | null;
696
- branch?: string | null;
697
- version?: string | null;
698
- } = {
699
- mode:
700
- mode === "resume"
701
- ? "resume"
702
- : mode === "continue"
703
- ? "continue"
704
- : "normal",
705
- skipPermissions,
706
- envOverrides: sharedEnv,
707
- sessionId: resumeSessionId,
708
- branch,
709
- version: toolVersion ?? null,
710
- };
711
- if (normalizedModel) {
712
- launchOptions.model = normalizedModel;
713
- }
714
- launchResult = await launchGeminiCLI(worktreePath, launchOptions);
715
- } else {
716
- // Custom coding agent (including OpenCode)
717
- printInfo(`Launching custom agent: ${agentConfig.displayName}`);
718
- const customLaunchOptions: import("./types/tools.js").CodingAgentLaunchOptions =
719
- {
720
- mode:
721
- mode === "resume"
722
- ? "resume"
723
- : mode === "continue"
724
- ? "continue"
725
- : "normal",
726
- skipPermissions,
727
- cwd: worktreePath,
728
- sharedEnv,
729
- };
730
- if (tool === "opencode" && normalizedModel) {
731
- customLaunchOptions.extraArgs = ["-m", normalizedModel];
732
- }
733
- if (toolVersion) {
734
- customLaunchOptions.version = toolVersion;
735
- }
736
- launchResult = await launchCodingAgent(
737
- agentConfig,
738
- customLaunchOptions,
739
- );
740
- }
741
- } finally {
742
- // FR-043: Clear the periodic timestamp update timer
743
- clearInterval(updateTimer);
744
- }
745
-
746
- // Persist session with captured session ID (if any)
747
- let finalSessionId =
748
- (launchResult as { sessionId?: string | null } | undefined)?.sessionId ??
749
- resumeSessionId ??
750
- null;
751
-
752
- let resolvedWorktrees: { path: string; branch: string }[] | null = null;
753
- if (branch) {
754
- try {
755
- const allWorktrees = await listAllWorktrees();
756
- resolvedWorktrees = allWorktrees
757
- .filter((entry) => entry?.path && entry?.branch)
758
- .map((entry) => ({ path: entry.path, branch: entry.branch }));
759
- } catch {
760
- resolvedWorktrees = null;
761
- }
762
- }
763
- const worktreeLookupOptions =
764
- resolvedWorktrees && resolvedWorktrees.length > 0
765
- ? { worktrees: resolvedWorktrees }
766
- : {};
767
-
768
- if (!finalSessionId && tool === "claude-code") {
769
- try {
770
- finalSessionId =
771
- (await findLatestClaudeSessionId(worktreePath, {
772
- branch,
773
- ...worktreeLookupOptions,
774
- })) ?? null;
775
- } catch {
776
- finalSessionId = null;
777
- }
778
- }
779
- const finishedAt = Date.now();
780
-
781
- if (!finalSessionId && tool === "codex-cli") {
782
- try {
783
- const latest = await findLatestCodexSession({
784
- since: launchStartedAt - 60_000,
785
- until: finishedAt + 60_000,
786
- preferClosestTo: finishedAt,
787
- windowMs: 60 * 60 * 1000,
788
- cwd: worktreePath,
789
- branch,
790
- ...worktreeLookupOptions,
791
- });
792
- if (latest) {
793
- finalSessionId = latest.id;
794
- }
795
- } catch {
796
- // ignore fallback failure
797
- }
798
- } else if (!finalSessionId && tool === "claude-code") {
799
- try {
800
- const latestClaude = await findLatestClaudeSession(worktreePath, {
801
- since: launchStartedAt - 60_000,
802
- until: finishedAt + 60_000,
803
- preferClosestTo: finishedAt,
804
- windowMs: 60 * 60 * 1000,
805
- branch,
806
- ...worktreeLookupOptions,
807
- });
808
- if (latestClaude) {
809
- finalSessionId = latestClaude.id;
810
- }
811
- } catch {
812
- // ignore
813
- }
814
- } else if (!finalSessionId && tool === "gemini-cli") {
815
- try {
816
- const latestGemini = await findLatestGeminiSession({
817
- since: launchStartedAt - 60_000,
818
- until: finishedAt + 60_000,
819
- preferClosestTo: finishedAt,
820
- windowMs: 60 * 60 * 1000,
821
- cwd: worktreePath,
822
- branch,
823
- ...worktreeLookupOptions,
824
- });
825
- if (latestGemini) {
826
- finalSessionId = latestGemini.id;
827
- }
828
- } catch {
829
- // ignore
830
- }
831
- }
832
-
833
- await saveSession({
834
- lastWorktreePath: worktreePath,
835
- lastBranch: branch,
836
- lastUsedTool: tool,
837
- toolLabel: agentConfig.displayName ?? tool,
838
- mode,
839
- model: normalizedModel ?? null,
840
- reasoningLevel: inferenceLevel ?? null,
841
- skipPermissions: skipPermissions ?? null,
842
- toolVersion: toolVersion ?? null,
843
- timestamp: Date.now(),
844
- repositoryRoot: repoRoot,
845
- lastSessionId: finalSessionId,
846
- });
847
-
848
- try {
849
- const [hasUncommitted, hasUnpushed] = await Promise.all([
850
- hasUncommittedChanges(worktreePath),
851
- hasUnpushedCommits(worktreePath, branch),
852
- ]);
853
-
854
- if (hasUncommitted) {
855
- const uncommittedCount = await getUncommittedChangesCount(worktreePath);
856
- const countLabel =
857
- uncommittedCount > 0
858
- ? ` (${uncommittedCount} ${
859
- uncommittedCount === 1 ? "change" : "changes"
860
- })`
861
- : "";
862
- printWarning(`Uncommitted changes detected${countLabel}.`);
863
- }
864
-
865
- if (hasUnpushed) {
866
- const unpushedCount = await getUnpushedCommitsCount(
867
- worktreePath,
868
- branch,
869
- );
870
- const countLabel =
871
- unpushedCount > 0
872
- ? ` (${unpushedCount} ${
873
- unpushedCount === 1 ? "commit" : "commits"
874
- })`
875
- : "";
876
- printWarning(`Unpushed commits detected${countLabel}.`);
877
- }
878
- } catch (error) {
879
- const details = error instanceof Error ? error.message : String(error);
880
- printWarning(`Failed to check git status after session: ${details}`);
881
- }
882
-
883
- // Small buffer before returning to branch list to avoid abrupt screen swap
884
- await new Promise((resolve) => setTimeout(resolve, POST_SESSION_DELAY_MS));
885
- printInfo("Session completed successfully.");
886
- await waitForUserAcknowledgement(SUCCESS_PROMPT);
887
- return;
888
- } catch (error) {
889
- // Handle recoverable errors (Git, Worktree, Codex errors)
890
- if (isRecoverableError(error)) {
891
- const details = error instanceof Error ? error.message : String(error);
892
- printError(`Error during workflow: ${details}`);
893
- await waitForErrorAcknowledgement();
894
- return;
895
- }
896
- // Re-throw non-recoverable errors
897
- throw error;
898
- }
899
- }
900
-
901
- type UIHandler = () => Promise<SelectionResult | undefined>;
902
- type WorkflowHandler = (selection: SelectionResult) => Promise<void>;
903
-
904
- function resolveUIHandler(): UIHandler {
905
- return mainSolidUI;
906
- }
907
-
908
- function logLoopError(error: unknown, context: "ui" | "workflow"): void {
909
- const label = context === "ui" ? "UI" : "workflow";
910
- if (error instanceof Error) {
911
- printError(`${label} error: ${error.message}`);
912
- } else {
913
- printError(`${label} error: ${String(error)}`);
914
- }
915
- }
916
-
917
- export async function runInteractiveLoop(
918
- uiHandler: UIHandler = resolveUIHandler(),
919
- workflowHandler: WorkflowHandler = handleAIToolWorkflow,
920
- ): Promise<void> {
921
- // Main loop: UI → Coding Agent → back to UI
922
- while (true) {
923
- let selectionResult: SelectionResult | undefined;
924
-
925
- try {
926
- selectionResult = await uiHandler();
927
- } catch (error) {
928
- logLoopError(error, "ui");
929
- await waitForErrorAcknowledgement();
930
- continue;
931
- }
932
-
933
- if (!selectionResult) {
934
- // User quit (pressed q without making selections)
935
- printInfo("Goodbye!");
936
- break;
937
- }
938
-
939
- try {
940
- await workflowHandler(selectionResult);
941
- } catch (error) {
942
- logLoopError(error, "workflow");
943
- await waitForErrorAcknowledgement();
944
- }
945
- }
946
- }
947
-
948
- /**
949
- * Main entry point
950
- */
951
- export async function main(): Promise<void> {
952
- // Setup global signal handlers for clean exit
953
- setupExitHandlers();
954
-
955
- // Parse command line arguments
956
- const args = process.argv.slice(2);
957
- const showVersionFlag = args.includes("-v") || args.includes("--version");
958
- const showHelpFlag = args.includes("-h") || args.includes("--help");
959
- const serveCommand = args.includes("serve");
960
-
961
- // Version flag has higher priority than help
962
- if (showVersionFlag) {
963
- await showVersion();
964
- return;
965
- }
966
-
967
- if (showHelpFlag) {
968
- showHelp();
969
- return;
970
- }
971
-
972
- // Start Web UI server if 'serve' command is provided
973
- if (serveCommand) {
974
- const { startWebServer } = await import("./web/server/index.js");
975
- await startWebServer();
976
- return;
977
- }
978
-
979
- // Check if current directory is a Git repository
980
- if (!(await isGitRepository())) {
981
- printError(`Current directory is not a Git repository: ${process.cwd()}`);
982
- printInfo(
983
- "Please run this command from within a Git repository or worktree directory.",
984
- );
985
-
986
- // Docker環境でよくある問題: safe.directory設定
987
- printInfo(
988
- "\\nIf you're running in Docker, you may need to configure Git safe.directory:",
989
- );
990
- printInfo(" git config --global --add safe.directory '*'");
991
- printInfo("\\nOr run with DEBUG=1 for more information:");
992
- printInfo(" DEBUG=1 bun run start");
993
-
994
- await waitForErrorAcknowledgement();
995
- process.exit(1);
996
- }
997
-
998
- await runInteractiveLoop();
999
-
1000
- // Ensure clean exit with code 0
1001
- process.exit(0);
1002
- }
1003
-
1004
- export function isEntryPoint(metaUrl: string, argv1?: string): boolean {
1005
- if (!argv1) {
1006
- return false;
1007
- }
1008
- try {
1009
- return fileURLToPath(metaUrl) === path.resolve(argv1);
1010
- } catch {
1011
- return false;
1012
- }
1013
- }
1014
-
1015
- // Run the application if this module is executed directly
1016
- if (isEntryPoint(import.meta.url, process.argv[1])) {
1017
- main().catch(async (error) => {
1018
- const details =
1019
- error instanceof Error ? (error.stack ?? error.message) : String(error);
1020
- writeTerminalLine(`Fatal error: ${details}`, "stderr");
1021
- await waitForErrorAcknowledgement();
1022
- process.exit(1);
1023
- });
1024
- }