@akiojin/gwt 2.13.0 → 3.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 (295) hide show
  1. package/README.ja.md +41 -0
  2. package/README.md +38 -0
  3. package/dist/claude.d.ts.map +1 -1
  4. package/dist/claude.js +17 -11
  5. package/dist/claude.js.map +1 -1
  6. package/dist/cli/ui/components/App.d.ts +0 -6
  7. package/dist/cli/ui/components/App.d.ts.map +1 -1
  8. package/dist/cli/ui/components/App.js +27 -88
  9. package/dist/cli/ui/components/App.js.map +1 -1
  10. package/dist/cli/ui/components/common/Select.js +2 -2
  11. package/dist/cli/ui/components/common/Select.js.map +1 -1
  12. package/dist/cli/ui/components/screens/BranchListScreen.d.ts.map +1 -1
  13. package/dist/cli/ui/components/screens/BranchListScreen.js.map +1 -1
  14. package/dist/cli/ui/components/screens/BranchQuickStartScreen.d.ts.map +1 -1
  15. package/dist/cli/ui/components/screens/BranchQuickStartScreen.js +3 -3
  16. package/dist/cli/ui/components/screens/BranchQuickStartScreen.js.map +1 -1
  17. package/dist/cli/ui/utils/continueSession.d.ts.map +1 -1
  18. package/dist/cli/ui/utils/continueSession.js +1 -1
  19. package/dist/cli/ui/utils/continueSession.js.map +1 -1
  20. package/dist/client/assets/index-DsDNCy5f.css +1 -0
  21. package/dist/client/assets/index-f5D2XwDh.js +72 -0
  22. package/dist/client/index.html +2 -2
  23. package/dist/codex.d.ts.map +1 -1
  24. package/dist/codex.js +21 -11
  25. package/dist/codex.js.map +1 -1
  26. package/dist/config/builtin-tools.d.ts.map +1 -1
  27. package/dist/config/builtin-tools.js +3 -2
  28. package/dist/config/builtin-tools.js.map +1 -1
  29. package/dist/config/shared-env.d.ts +41 -0
  30. package/dist/config/shared-env.d.ts.map +1 -0
  31. package/dist/config/shared-env.js +114 -0
  32. package/dist/config/shared-env.js.map +1 -0
  33. package/dist/gemini.d.ts.map +1 -1
  34. package/dist/gemini.js +20 -17
  35. package/dist/gemini.js.map +1 -1
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +13 -8
  38. package/dist/index.js.map +1 -1
  39. package/dist/logging/logger.d.ts.map +1 -1
  40. package/dist/logging/logger.js +4 -1
  41. package/dist/logging/logger.js.map +1 -1
  42. package/dist/qwen.d.ts.map +1 -1
  43. package/dist/qwen.js +15 -11
  44. package/dist/qwen.js.map +1 -1
  45. package/dist/services/aiToolResolver.d.ts +41 -0
  46. package/dist/services/aiToolResolver.d.ts.map +1 -0
  47. package/dist/services/aiToolResolver.js +194 -0
  48. package/dist/services/aiToolResolver.js.map +1 -0
  49. package/dist/services/customToolResolver.d.ts +10 -0
  50. package/dist/services/customToolResolver.d.ts.map +1 -0
  51. package/dist/services/customToolResolver.js +71 -0
  52. package/dist/services/customToolResolver.js.map +1 -0
  53. package/dist/shared/aiToolConstants.d.ts +9 -0
  54. package/dist/shared/aiToolConstants.d.ts.map +1 -0
  55. package/dist/shared/aiToolConstants.js +29 -0
  56. package/dist/shared/aiToolConstants.js.map +1 -0
  57. package/dist/types/tools.d.ts +12 -0
  58. package/dist/types/tools.d.ts.map +1 -1
  59. package/dist/utils/prompt.d.ts.map +1 -1
  60. package/dist/utils/prompt.js.map +1 -1
  61. package/dist/utils/session.d.ts.map +1 -1
  62. package/dist/utils/session.js +15 -6
  63. package/dist/utils/session.js.map +1 -1
  64. package/dist/utils/terminal.d.ts +12 -3
  65. package/dist/utils/terminal.d.ts.map +1 -1
  66. package/dist/utils/terminal.js +5 -34
  67. package/dist/utils/terminal.js.map +1 -1
  68. package/dist/utils/webui.d.ts +8 -0
  69. package/dist/utils/webui.d.ts.map +1 -0
  70. package/dist/utils/webui.js +35 -0
  71. package/dist/utils/webui.js.map +1 -0
  72. package/dist/web/client/src/components/AIToolLaunchModal.d.ts +9 -0
  73. package/dist/web/client/src/components/AIToolLaunchModal.d.ts.map +1 -0
  74. package/dist/web/client/src/components/AIToolLaunchModal.js +363 -0
  75. package/dist/web/client/src/components/AIToolLaunchModal.js.map +1 -0
  76. package/dist/web/client/src/components/BranchGraph.d.ts.map +1 -1
  77. package/dist/web/client/src/components/BranchGraph.js +46 -49
  78. package/dist/web/client/src/components/BranchGraph.js.map +1 -1
  79. package/dist/web/client/src/components/CustomToolForm.d.ts +23 -0
  80. package/dist/web/client/src/components/CustomToolForm.d.ts.map +1 -0
  81. package/dist/web/client/src/components/CustomToolForm.js +209 -0
  82. package/dist/web/client/src/components/CustomToolForm.js.map +1 -0
  83. package/dist/web/client/src/components/CustomToolList.d.ts +10 -0
  84. package/dist/web/client/src/components/CustomToolList.d.ts.map +1 -0
  85. package/dist/web/client/src/components/CustomToolList.js +57 -0
  86. package/dist/web/client/src/components/CustomToolList.js.map +1 -0
  87. package/dist/web/client/src/components/EnvEditor.d.ts.map +1 -1
  88. package/dist/web/client/src/components/EnvEditor.js +33 -26
  89. package/dist/web/client/src/components/EnvEditor.js.map +1 -1
  90. package/dist/web/client/src/components/EnvironmentEditor.d.ts +17 -0
  91. package/dist/web/client/src/components/EnvironmentEditor.d.ts.map +1 -0
  92. package/dist/web/client/src/components/EnvironmentEditor.js +22 -0
  93. package/dist/web/client/src/components/EnvironmentEditor.js.map +1 -0
  94. package/dist/web/client/src/components/Terminal.d.ts.map +1 -1
  95. package/dist/web/client/src/components/Terminal.js +10 -3
  96. package/dist/web/client/src/components/Terminal.js.map +1 -1
  97. package/dist/web/client/src/components/branch-detail/BranchInfoCards.d.ts +10 -0
  98. package/dist/web/client/src/components/branch-detail/BranchInfoCards.d.ts.map +1 -0
  99. package/dist/web/client/src/components/branch-detail/BranchInfoCards.js +104 -0
  100. package/dist/web/client/src/components/branch-detail/BranchInfoCards.js.map +1 -0
  101. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.d.ts +22 -0
  102. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.d.ts.map +1 -0
  103. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.js +79 -0
  104. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.js.map +1 -0
  105. package/dist/web/client/src/components/branch-detail/TerminalPanel.d.ts +11 -0
  106. package/dist/web/client/src/components/branch-detail/TerminalPanel.d.ts.map +1 -0
  107. package/dist/web/client/src/components/branch-detail/TerminalPanel.js +32 -0
  108. package/dist/web/client/src/components/branch-detail/TerminalPanel.js.map +1 -0
  109. package/dist/web/client/src/components/branch-detail/ToolLauncher.d.ts +40 -0
  110. package/dist/web/client/src/components/branch-detail/ToolLauncher.d.ts.map +1 -0
  111. package/dist/web/client/src/components/branch-detail/ToolLauncher.js +147 -0
  112. package/dist/web/client/src/components/branch-detail/ToolLauncher.js.map +1 -0
  113. package/dist/web/client/src/components/branch-detail/index.d.ts +5 -0
  114. package/dist/web/client/src/components/branch-detail/index.d.ts.map +1 -0
  115. package/dist/web/client/src/components/branch-detail/index.js +5 -0
  116. package/dist/web/client/src/components/branch-detail/index.js.map +1 -0
  117. package/dist/web/client/src/components/common/BranchCard.d.ts +17 -0
  118. package/dist/web/client/src/components/common/BranchCard.d.ts.map +1 -0
  119. package/dist/web/client/src/components/common/BranchCard.js +36 -0
  120. package/dist/web/client/src/components/common/BranchCard.js.map +1 -0
  121. package/dist/web/client/src/components/common/MetricCard.d.ts +10 -0
  122. package/dist/web/client/src/components/common/MetricCard.d.ts.map +1 -0
  123. package/dist/web/client/src/components/common/MetricCard.js +10 -0
  124. package/dist/web/client/src/components/common/MetricCard.js.map +1 -0
  125. package/dist/web/client/src/components/common/PageHeader.d.ts +12 -0
  126. package/dist/web/client/src/components/common/PageHeader.d.ts.map +1 -0
  127. package/dist/web/client/src/components/common/PageHeader.js +14 -0
  128. package/dist/web/client/src/components/common/PageHeader.js.map +1 -0
  129. package/dist/web/client/src/components/common/SearchInput.d.ts +14 -0
  130. package/dist/web/client/src/components/common/SearchInput.d.ts.map +1 -0
  131. package/dist/web/client/src/components/common/SearchInput.js +15 -0
  132. package/dist/web/client/src/components/common/SearchInput.js.map +1 -0
  133. package/dist/web/client/src/components/common/StatusBadge.d.ts +10 -0
  134. package/dist/web/client/src/components/common/StatusBadge.d.ts.map +1 -0
  135. package/dist/web/client/src/components/common/StatusBadge.js +15 -0
  136. package/dist/web/client/src/components/common/StatusBadge.js.map +1 -0
  137. package/dist/web/client/src/components/common/index.d.ts +6 -0
  138. package/dist/web/client/src/components/common/index.d.ts.map +1 -0
  139. package/dist/web/client/src/components/common/index.js +6 -0
  140. package/dist/web/client/src/components/common/index.js.map +1 -0
  141. package/dist/web/client/src/components/ui/alert.d.ts +9 -0
  142. package/dist/web/client/src/components/ui/alert.d.ts.map +1 -0
  143. package/dist/web/client/src/components/ui/alert.js +25 -0
  144. package/dist/web/client/src/components/ui/alert.js.map +1 -0
  145. package/dist/web/client/src/components/ui/badge.d.ts +10 -0
  146. package/dist/web/client/src/components/ui/badge.d.ts.map +1 -0
  147. package/dist/web/client/src/components/ui/badge.js +25 -0
  148. package/dist/web/client/src/components/ui/badge.js.map +1 -0
  149. package/dist/web/client/src/components/ui/button.d.ts +12 -0
  150. package/dist/web/client/src/components/ui/button.d.ts.map +1 -0
  151. package/dist/web/client/src/components/ui/button.js +33 -0
  152. package/dist/web/client/src/components/ui/button.js.map +1 -0
  153. package/dist/web/client/src/components/ui/card.d.ts +9 -0
  154. package/dist/web/client/src/components/ui/card.d.ts.map +1 -0
  155. package/dist/web/client/src/components/ui/card.js +16 -0
  156. package/dist/web/client/src/components/ui/card.js.map +1 -0
  157. package/dist/web/client/src/components/ui/index.d.ts +8 -0
  158. package/dist/web/client/src/components/ui/index.d.ts.map +1 -0
  159. package/dist/web/client/src/components/ui/index.js +8 -0
  160. package/dist/web/client/src/components/ui/index.js.map +1 -0
  161. package/dist/web/client/src/components/ui/input.d.ts +4 -0
  162. package/dist/web/client/src/components/ui/input.d.ts.map +1 -0
  163. package/dist/web/client/src/components/ui/input.js +8 -0
  164. package/dist/web/client/src/components/ui/input.js.map +1 -0
  165. package/dist/web/client/src/components/ui/select.d.ts +14 -0
  166. package/dist/web/client/src/components/ui/select.d.ts.map +1 -0
  167. package/dist/web/client/src/components/ui/select.js +39 -0
  168. package/dist/web/client/src/components/ui/select.js.map +1 -0
  169. package/dist/web/client/src/components/ui/table.d.ts +11 -0
  170. package/dist/web/client/src/components/ui/table.d.ts.map +1 -0
  171. package/dist/web/client/src/components/ui/table.js +21 -0
  172. package/dist/web/client/src/components/ui/table.js.map +1 -0
  173. package/dist/web/client/src/hooks/useSessions.d.ts.map +1 -1
  174. package/dist/web/client/src/hooks/useSessions.js +6 -1
  175. package/dist/web/client/src/hooks/useSessions.js.map +1 -1
  176. package/dist/web/client/src/lib/utils.d.ts +7 -0
  177. package/dist/web/client/src/lib/utils.d.ts.map +1 -0
  178. package/dist/web/client/src/lib/utils.js +10 -0
  179. package/dist/web/client/src/lib/utils.js.map +1 -0
  180. package/dist/web/client/src/lib/websocket.d.ts +7 -0
  181. package/dist/web/client/src/lib/websocket.d.ts.map +1 -1
  182. package/dist/web/client/src/lib/websocket.js +44 -0
  183. package/dist/web/client/src/lib/websocket.js.map +1 -1
  184. package/dist/web/client/src/pages/BranchDetailPage.d.ts.map +1 -1
  185. package/dist/web/client/src/pages/BranchDetailPage.js +125 -376
  186. package/dist/web/client/src/pages/BranchDetailPage.js.map +1 -1
  187. package/dist/web/client/src/pages/BranchListPage.d.ts.map +1 -1
  188. package/dist/web/client/src/pages/BranchListPage.js +89 -127
  189. package/dist/web/client/src/pages/BranchListPage.js.map +1 -1
  190. package/dist/web/client/src/pages/ConfigManagementPage.d.ts.map +1 -1
  191. package/dist/web/client/src/pages/ConfigManagementPage.js +46 -41
  192. package/dist/web/client/src/pages/ConfigManagementPage.js.map +1 -1
  193. package/dist/web/client/src/pages/ConfigPage.d.ts +3 -0
  194. package/dist/web/client/src/pages/ConfigPage.d.ts.map +1 -0
  195. package/dist/web/client/src/pages/ConfigPage.js +216 -0
  196. package/dist/web/client/src/pages/ConfigPage.js.map +1 -0
  197. package/dist/web/client/vite.config.d.ts.map +1 -1
  198. package/dist/web/client/vite.config.js +8 -1
  199. package/dist/web/client/vite.config.js.map +1 -1
  200. package/dist/web/server/index.d.ts +24 -2
  201. package/dist/web/server/index.d.ts.map +1 -1
  202. package/dist/web/server/index.js +46 -15
  203. package/dist/web/server/index.js.map +1 -1
  204. package/dist/web/server/pty/manager.d.ts +12 -10
  205. package/dist/web/server/pty/manager.d.ts.map +1 -1
  206. package/dist/web/server/pty/manager.js +76 -43
  207. package/dist/web/server/pty/manager.js.map +1 -1
  208. package/dist/web/server/routes/sessions.d.ts.map +1 -1
  209. package/dist/web/server/routes/sessions.js +35 -2
  210. package/dist/web/server/routes/sessions.js.map +1 -1
  211. package/dist/web/server/routes/worktrees.js +2 -2
  212. package/dist/web/server/routes/worktrees.js.map +1 -1
  213. package/dist/web/server/services/worktrees.d.ts.map +1 -1
  214. package/dist/web/server/services/worktrees.js +7 -1
  215. package/dist/web/server/services/worktrees.js.map +1 -1
  216. package/dist/web/server/tray.d.ts +25 -0
  217. package/dist/web/server/tray.d.ts.map +1 -0
  218. package/dist/web/server/tray.js +98 -0
  219. package/dist/web/server/tray.js.map +1 -0
  220. package/dist/web/server/websocket/handler.d.ts +18 -2
  221. package/dist/web/server/websocket/handler.d.ts.map +1 -1
  222. package/dist/web/server/websocket/handler.js +82 -9
  223. package/dist/web/server/websocket/handler.js.map +1 -1
  224. package/package.json +15 -2
  225. package/src/claude.ts +26 -15
  226. package/src/cli/ui/__tests__/components/App.protected-branch.test.tsx +1 -1
  227. package/src/cli/ui/__tests__/components/common/Select.test.tsx +11 -0
  228. package/src/cli/ui/__tests__/components/screens/BranchListScreen.test.tsx +3 -1
  229. package/src/cli/ui/__tests__/components/screens/BranchQuickStartScreen.test.tsx +4 -4
  230. package/src/cli/ui/components/App.tsx +33 -133
  231. package/src/cli/ui/components/common/Select.tsx +2 -2
  232. package/src/cli/ui/components/screens/BranchListScreen.tsx +28 -21
  233. package/src/cli/ui/components/screens/BranchQuickStartScreen.tsx +41 -46
  234. package/src/cli/ui/utils/continueSession.ts +1 -7
  235. package/src/codex.ts +31 -22
  236. package/src/config/builtin-tools.ts +6 -2
  237. package/src/config/shared-env.ts +139 -0
  238. package/src/gemini.ts +35 -22
  239. package/src/index.ts +13 -8
  240. package/src/logging/logger.ts +5 -2
  241. package/src/qwen.ts +28 -19
  242. package/src/services/aiToolResolver.ts +276 -0
  243. package/src/services/customToolResolver.ts +98 -0
  244. package/src/shared/aiToolConstants.ts +30 -0
  245. package/src/trayicon.d.ts +30 -0
  246. package/src/types/tools.ts +15 -0
  247. package/src/utils/prompt.ts +15 -9
  248. package/src/utils/session.ts +80 -26
  249. package/src/utils/terminal.ts +11 -41
  250. package/src/utils/webui.ts +43 -0
  251. package/src/web/client/components.json +21 -0
  252. package/src/web/client/src/components/AIToolLaunchModal.tsx +575 -0
  253. package/src/web/client/src/components/BranchGraph.tsx +95 -75
  254. package/src/web/client/src/components/CustomToolForm.tsx +386 -0
  255. package/src/web/client/src/components/CustomToolList.tsx +119 -0
  256. package/src/web/client/src/components/EnvEditor.tsx +91 -81
  257. package/src/web/client/src/components/EnvironmentEditor.tsx +97 -0
  258. package/src/web/client/src/components/Terminal.tsx +11 -3
  259. package/src/web/client/src/components/branch-detail/BranchInfoCards.tsx +179 -0
  260. package/src/web/client/src/components/branch-detail/SessionHistoryTable.tsx +181 -0
  261. package/src/web/client/src/components/branch-detail/TerminalPanel.tsx +92 -0
  262. package/src/web/client/src/components/branch-detail/ToolLauncher.tsx +327 -0
  263. package/src/web/client/src/components/branch-detail/index.ts +4 -0
  264. package/src/web/client/src/components/common/BranchCard.tsx +117 -0
  265. package/src/web/client/src/components/common/MetricCard.tsx +22 -0
  266. package/src/web/client/src/components/common/PageHeader.tsx +44 -0
  267. package/src/web/client/src/components/common/SearchInput.tsx +40 -0
  268. package/src/web/client/src/components/common/StatusBadge.tsx +37 -0
  269. package/src/web/client/src/components/common/index.ts +5 -0
  270. package/src/web/client/src/components/ui/alert.tsx +63 -0
  271. package/src/web/client/src/components/ui/badge.tsx +44 -0
  272. package/src/web/client/src/components/ui/button.tsx +57 -0
  273. package/src/web/client/src/components/ui/card.tsx +82 -0
  274. package/src/web/client/src/components/ui/index.ts +32 -0
  275. package/src/web/client/src/components/ui/input.tsx +21 -0
  276. package/src/web/client/src/components/ui/select.tsx +156 -0
  277. package/src/web/client/src/components/ui/table.tsx +119 -0
  278. package/src/web/client/src/hooks/useSessions.ts +10 -1
  279. package/src/web/client/src/index.css +46 -816
  280. package/src/web/client/src/lib/utils.ts +10 -0
  281. package/src/web/client/src/lib/websocket.ts +48 -1
  282. package/src/web/client/src/pages/BranchDetailPage.tsx +247 -723
  283. package/src/web/client/src/pages/BranchListPage.tsx +190 -236
  284. package/src/web/client/src/pages/ConfigManagementPage.tsx +94 -76
  285. package/src/web/client/src/pages/ConfigPage.tsx +362 -0
  286. package/src/web/client/vite.config.ts +8 -1
  287. package/src/web/server/index.ts +72 -15
  288. package/src/web/server/pty/manager.ts +128 -55
  289. package/src/web/server/routes/sessions.ts +59 -7
  290. package/src/web/server/routes/worktrees.ts +3 -3
  291. package/src/web/server/services/worktrees.ts +12 -4
  292. package/src/web/server/tray.ts +120 -0
  293. package/src/web/server/websocket/handler.ts +119 -13
  294. package/dist/client/assets/index-DeNwPosA.css +0 -1
  295. package/dist/client/assets/index-Dl798X5w.js +0 -32
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>gwt - Web UI</title>
7
- <script type="module" crossorigin src="/assets/index-Dl798X5w.js"></script>
8
- <link rel="stylesheet" crossorigin href="/assets/index-DeNwPosA.css">
7
+ <script type="module" crossorigin src="/assets/index-f5D2XwDh.js"></script>
8
+ <link rel="stylesheet" crossorigin href="/assets/index-DsDNCy5f.css">
9
9
  </head>
10
10
  <body>
11
11
  <div id="root"></div>
@@ -1 +1 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEvE,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,8BAA8B,EAAE,oBAA6B,CAAC;AAE3E,eAAO,MAAM,qBAAqB,GAChC,QAAO,MAA4B,EACnC,kBAAiB,oBAAqD,KACrE,MAAM,EAoBR,CAAC;AAEF,qBAAa,UAAW,SAAQ,KAAK;IAG1B,KAAK,CAAC,EAAE,OAAO;gBADtB,OAAO,EAAE,MAAM,EACR,KAAK,CAAC,EAAE,OAAO,YAAA;CAKzB;AAED,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,GACL,OAAO,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAuKxC;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAUzD"}
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEvE,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,8BAA8B,EAAE,oBAA6B,CAAC;AAE3E,eAAO,MAAM,qBAAqB,GAChC,QAAO,MAA4B,EACnC,kBAAiB,oBAAqD,KACrE,MAAM,EAoBR,CAAC;AAEF,qBAAa,UAAW,SAAQ,KAAK;IAG1B,KAAK,CAAC,EAAE,OAAO;gBADtB,OAAO,EAAE,MAAM,EACR,KAAK,CAAC,EAAE,OAAO,YAAA;CAKzB;AAED,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,GACL,OAAO,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAkLxC;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAWzD"}
package/dist/codex.js CHANGED
@@ -3,7 +3,7 @@ import chalk from "chalk";
3
3
  import { platform } from "os";
4
4
  import { existsSync } from "fs";
5
5
  import { createChildStdio, getTerminalStreams } from "./utils/terminal.js";
6
- import { findLatestCodexSession, waitForCodexSessionId, } from "./utils/session.js";
6
+ import { findLatestCodexSession } from "./utils/session.js";
7
7
  const CODEX_CLI_PACKAGE = "@openai/codex@latest";
8
8
  export const DEFAULT_CODEX_MODEL = "gpt-5.1-codex";
9
9
  export const DEFAULT_CODEX_REASONING_EFFORT = "high";
@@ -53,8 +53,8 @@ export async function launchCodexCLI(worktreePath, options = {}) {
53
53
  const resumeSessionId = options.sessionId && options.sessionId.trim().length > 0
54
54
  ? options.sessionId.trim()
55
55
  : null;
56
- // Start polling session files immediately to catch the session created right after launch.
57
- const sessionProbe = waitForCodexSessionId({ startedAt, cwd: worktreePath }).catch(() => null);
56
+ const usedExplicitSessionId = Boolean(resumeSessionId) &&
57
+ (options.mode === "continue" || options.mode === "resume");
58
58
  switch (options.mode) {
59
59
  case "continue":
60
60
  if (resumeSessionId) {
@@ -93,7 +93,10 @@ export async function launchCodexCLI(worktreePath, options = {}) {
93
93
  console.log(chalk.gray(` 📋 Args: ${args.join(" ")}`));
94
94
  terminal.exitRawMode();
95
95
  const childStdio = createChildStdio();
96
- const env = { ...process.env, ...(options.envOverrides ?? {}) };
96
+ const env = Object.fromEntries(Object.entries({
97
+ ...process.env,
98
+ ...(options.envOverrides ?? {}),
99
+ }).filter((entry) => typeof entry[1] === "string"));
97
100
  try {
98
101
  const execChild = async (child) => {
99
102
  try {
@@ -101,7 +104,8 @@ export async function launchCodexCLI(worktreePath, options = {}) {
101
104
  }
102
105
  catch (execError) {
103
106
  // Treat SIGINT/SIGTERM as normal exit (user pressed Ctrl+C)
104
- if (execError.signal === "SIGINT" || execError.signal === "SIGTERM") {
107
+ const signal = execError?.signal;
108
+ if (signal === "SIGINT" || signal === "SIGTERM") {
105
109
  return;
106
110
  }
107
111
  throw execError;
@@ -132,11 +136,14 @@ export async function launchCodexCLI(worktreePath, options = {}) {
132
136
  windowMs: 10 * 60 * 1000,
133
137
  cwd: worktreePath,
134
138
  });
135
- // Priority: latest on disk > resumeSessionId
136
- capturedSessionId = latest?.id ?? resumeSessionId ?? null;
139
+ const detectedSessionId = latest?.id ?? null;
140
+ // When we explicitly resumed a specific session, keep that ID as the source of truth.
141
+ capturedSessionId = usedExplicitSessionId
142
+ ? resumeSessionId
143
+ : detectedSessionId;
137
144
  }
138
145
  catch {
139
- capturedSessionId = resumeSessionId ?? null;
146
+ capturedSessionId = usedExplicitSessionId ? resumeSessionId : null;
140
147
  }
141
148
  if (capturedSessionId) {
142
149
  console.log(chalk.cyan(`\n 🆔 Session ID: ${capturedSessionId}`));
@@ -148,9 +155,11 @@ export async function launchCodexCLI(worktreePath, options = {}) {
148
155
  return capturedSessionId ? { sessionId: capturedSessionId } : {};
149
156
  }
150
157
  catch (error) {
151
- const errorMessage = error.code === "ENOENT"
158
+ const err = error;
159
+ const details = error instanceof Error ? error.message : String(error);
160
+ const errorMessage = err.code === "ENOENT"
152
161
  ? "bunx command not found. Please ensure Bun is installed so Codex CLI can run via bunx."
153
- : `Failed to launch Codex CLI: ${error.message || "Unknown error"}`;
162
+ : `Failed to launch Codex CLI: ${details || "Unknown error"}`;
154
163
  if (platform() === "win32") {
155
164
  console.error(chalk.red("\n💡 Windows troubleshooting tips:"));
156
165
  console.error(chalk.yellow(" 1. Confirm that Bun is installed and bunx is available"));
@@ -169,7 +178,8 @@ export async function isCodexAvailable() {
169
178
  return true;
170
179
  }
171
180
  catch (error) {
172
- if (error.code === "ENOENT") {
181
+ const err = error;
182
+ if (err.code === "ENOENT") {
173
183
  console.error(chalk.yellow("\n⚠️ bunx command not found"));
174
184
  }
175
185
  return false;
package/dist/codex.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AAIjD,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC;AACnD,MAAM,CAAC,MAAM,8BAA8B,GAAyB,MAAM,CAAC;AAE3E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,QAAgB,mBAAmB,EACnC,kBAAwC,8BAA8B,EAC5D,EAAE,CAAC;IACb,UAAU;IACV,oBAAoB;IACpB,UAAU;IACV,QAAQ;IACR,WAAW,KAAK,EAAE;IAClB,WAAW;IACX,iBAAiB;IACjB,IAAI;IACJ,0BAA0B,eAAe,EAAE;IAC3C,IAAI;IACJ,oCAAoC;IACpC,IAAI;IACJ,6CAA6C;IAC7C,IAAI;IACJ,sCAAsC;IACtC,IAAI;IACJ,uDAAuD;IACvD,IAAI;IACJ,wDAAwD;CACzD,CAAC;AAEF,MAAM,OAAO,UAAW,SAAQ,KAAK;IAG1B;IAFT,YACE,OAAe,EACR,KAAe;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFR,UAAK,GAAL,KAAK,CAAU;QAGtB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,YAAoB,EACpB,UAQI,EAAE;IAEN,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,iCAAiC,YAAY,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAC,CAAC;QAEjE,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,mBAAmB,CAAC;QACnD,MAAM,eAAe,GACnB,OAAO,CAAC,eAAe,IAAI,8BAA8B,CAAC;QAE5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,eAAe,EAAE,CAAC,CAAC,CAAC;QAEhE,MAAM,eAAe,GACnB,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YACtD,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;YAC1B,CAAC,CAAC,IAAI,CAAC;QAEX,2FAA2F;QAC3F,MAAM,YAAY,GAAG,qBAAqB,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,CAChF,GAAG,EAAE,CAAC,IAAI,CACX,CAAC;QAEF,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,UAAU;gBACb,IAAI,eAAe,EAAE,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;oBACrC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,2CAA2C,eAAe,EAAE,CAC7D,CACF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;gBAChE,CAAC;gBACD,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,eAAe,EAAE,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;oBACrC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,iCAAiC,eAAe,EAAE,CAAC,CAC/D,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBAClD,CAAC;gBACD,MAAM;YACR,KAAK,QAAQ,CAAC;YACd;gBACE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;gBACtD,MAAM;QACV,CAAC;QAED,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAEhE,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QAExB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAEzD,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEvB,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;QAEtC,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;QAEhE,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,KAAK,EAAE,KAAU,EAAE,EAAE;gBACrC,IAAI,CAAC;oBACH,MAAM,KAAK,CAAC;gBACd,CAAC;gBAAC,OAAO,SAAc,EAAE,CAAC;oBACxB,4DAA4D;oBAC5D,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBACpE,OAAO;oBACT,CAAC;oBACD,MAAM,SAAS,CAAC;gBAClB,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,EAAE;gBACxD,GAAG,EAAE,YAAY;gBACjB,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,GAAG;aACG,CAAC,CAAC;YACV,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QAED,wDAAwD;QACxD,yFAAyF;QACzF,IAAI,iBAAiB,GAAkB,IAAI,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC;gBAC1C,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,UAAU,GAAG,MAAM;gBAC1B,eAAe,EAAE,UAAU;gBAC3B,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;gBACxB,GAAG,EAAE,YAAY;aAClB,CAAC,CAAC;YACH,6CAA6C;YAC7C,iBAAiB,GAAG,MAAM,EAAE,EAAE,IAAI,eAAe,IAAI,IAAI,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB,GAAG,eAAe,IAAI,IAAI,CAAC;QAC9C,CAAC;QAED,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,iBAAiB,EAAE,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,mCAAmC,iBAAiB,EAAE,CAAC,CACnE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,8DAA8D,CAC/D,CACF,CAAC;QACJ,CAAC;QAED,OAAO,iBAAiB,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,YAAY,GAChB,KAAK,CAAC,IAAI,KAAK,QAAQ;YACrB,CAAC,CAAC,uFAAuF;YACzF,CAAC,CAAC,+BAA+B,KAAK,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC;QAExE,IAAI,QAAQ,EAAE,KAAK,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC;YAC/D,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,MAAM,CACV,2DAA2D,CAC5D,CACF,CAAC;YACF,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,MAAM,CACV,qEAAqE,CACtE,CACF,CAAC;YACF,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,MAAM,CAAC,oDAAoD,CAAC,CACnE,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,UAAU,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;YAAS,CAAC;QACT,QAAQ,CAAC,WAAW,EAAE,CAAC;IACzB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"builtin-tools.d.ts","sourceRoot":"","sources":["../../src/config/builtin-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,YAW9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,YAW5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,YAW7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,YAY3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,YAAY,EAKvC,CAAC"}
1
+ {"version":3,"file":"builtin-tools.d.ts","sourceRoot":"","sources":["../../src/config/builtin-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMtD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,YAW9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,YAW5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,YAW7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,YAY3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,YAAY,EAKvC,CAAC"}
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * Claude Code、Codex、Gemini、Qwen の CustomAITool 形式定義
5
5
  */
6
+ import { CLAUDE_PERMISSION_SKIP_ARGS, CODEX_DEFAULT_ARGS, } from "../shared/aiToolConstants.js";
6
7
  /**
7
8
  * Claude Code のビルトイン定義
8
9
  */
@@ -16,7 +17,7 @@ export const CLAUDE_CODE_TOOL = {
16
17
  continue: ["-c"],
17
18
  resume: ["-r"],
18
19
  },
19
- permissionSkipArgs: ["--yes"],
20
+ permissionSkipArgs: Array.from(CLAUDE_PERMISSION_SKIP_ARGS),
20
21
  };
21
22
  /**
22
23
  * Codex のビルトイン定義
@@ -26,7 +27,7 @@ export const CODEX_CLI_TOOL = {
26
27
  displayName: "Codex",
27
28
  type: "bunx",
28
29
  command: "@openai/codex@latest",
29
- defaultArgs: ["--auto-approve", "--verbose"],
30
+ defaultArgs: Array.from(CODEX_DEFAULT_ARGS),
30
31
  modeArgs: {
31
32
  normal: [],
32
33
  continue: ["resume", "--last"],
@@ -1 +1 @@
1
- {"version":3,"file":"builtin-tools.js","sourceRoot":"","sources":["../../src/config/builtin-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAiB;IAC5C,EAAE,EAAE,aAAa;IACjB,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,kCAAkC;IAC3C,QAAQ,EAAE;QACR,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,CAAC,IAAI,CAAC;QAChB,MAAM,EAAE,CAAC,IAAI,CAAC;KACf;IACD,kBAAkB,EAAE,CAAC,OAAO,CAAC;CAC9B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,EAAE,EAAE,WAAW;IACf,WAAW,EAAE,OAAO;IACpB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,sBAAsB;IAC/B,WAAW,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC;IAC5C,QAAQ,EAAE;QACR,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC9B,MAAM,EAAE,CAAC,QAAQ,CAAC;KACnB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAiB;IAC3C,EAAE,EAAE,YAAY;IAChB,WAAW,EAAE,QAAQ;IACrB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,2BAA2B;IACpC,QAAQ,EAAE;QACR,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;QAC1B,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;KACzB;IACD,kBAAkB,EAAE,CAAC,IAAI,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,EAAE,EAAE,UAAU;IACd,WAAW,EAAE,MAAM;IACnB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,6BAA6B;IACtC,WAAW,EAAE,CAAC,iBAAiB,CAAC;IAChC,QAAQ,EAAE;QACR,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;KACX;IACD,kBAAkB,EAAE,CAAC,QAAQ,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,gBAAgB;IAChB,cAAc;IACd,eAAe;IACf,aAAa;CACd,CAAC"}
1
+ {"version":3,"file":"builtin-tools.js","sourceRoot":"","sources":["../../src/config/builtin-tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAiB;IAC5C,EAAE,EAAE,aAAa;IACjB,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,kCAAkC;IAC3C,QAAQ,EAAE;QACR,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,CAAC,IAAI,CAAC;QAChB,MAAM,EAAE,CAAC,IAAI,CAAC;KACf;IACD,kBAAkB,EAAE,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC;CAC5D,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,EAAE,EAAE,WAAW;IACf,WAAW,EAAE,OAAO;IACpB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,sBAAsB;IAC/B,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC;IAC3C,QAAQ,EAAE;QACR,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC9B,MAAM,EAAE,CAAC,QAAQ,CAAC;KACnB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAiB;IAC3C,EAAE,EAAE,YAAY;IAChB,WAAW,EAAE,QAAQ;IACrB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,2BAA2B;IACpC,QAAQ,EAAE;QACR,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;QAC1B,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;KACzB;IACD,kBAAkB,EAAE,CAAC,IAAI,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,EAAE,EAAE,UAAU;IACd,WAAW,EAAE,MAAM;IACnB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,6BAA6B;IACtC,WAAW,EAAE,CAAC,iBAAiB,CAAC;IAChC,QAAQ,EAAE;QACR,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;KACX;IACD,kBAAkB,EAAE,CAAC,QAAQ,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C,gBAAgB;IAChB,cAAc;IACd,eAAe;IACf,aAAa;CACd,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Shared environment variable helpers.
3
+ *
4
+ * 管理画面やサーバー側の設定ロジックから共通で利用する
5
+ * 環境変数スキーマ/バリデーション/マージ処理を集約する。
6
+ */
7
+ declare const ENV_KEY_PATTERN: RegExp;
8
+ export type EnvironmentRecord = Record<string, string>;
9
+ /**
10
+ * 環境変数キーが有効かどうかを判定。
11
+ */
12
+ export declare function isValidEnvKey(key: string): boolean;
13
+ /**
14
+ * 許容されるキー長を取得。
15
+ */
16
+ export declare function getEnvConstraints(): {
17
+ maxKeyLength: number;
18
+ maxValueLength: number;
19
+ };
20
+ /**
21
+ * 任意のレコードをサニタイズして string -> string のみに整形する。
22
+ */
23
+ export declare function sanitizeEnvRecord(record?: Record<string, unknown>): EnvironmentRecord;
24
+ /**
25
+ * envレコードを検証し、フォーマットが不正な場合は例外を投げる。
26
+ */
27
+ export declare function validateEnvRecord(record: EnvironmentRecord): void;
28
+ /**
29
+ * 起動時にOSから読み取って取り込みたい環境変数キー一覧を返す。
30
+ * CLAUDE_WORKTREE_BOOTSTRAP_ENV_KEYS=KEY1,KEY2 で上書き可能。
31
+ */
32
+ export declare function getBootstrapEnvKeys(): string[];
33
+ /**
34
+ * 現在のenvレコードへ、指定されたキーのみOS環境変数から補完する。
35
+ */
36
+ export declare function mergeWithBootstrapEnv(current: EnvironmentRecord, sourceEnv: NodeJS.ProcessEnv, keys?: string[]): {
37
+ merged: EnvironmentRecord;
38
+ addedKeys: string[];
39
+ };
40
+ export { ENV_KEY_PATTERN };
41
+ //# sourceMappingURL=shared-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-env.d.ts","sourceRoot":"","sources":["../../src/config/shared-env.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,QAAA,MAAM,eAAe,QAAiB,CAAC;AAsBvC,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEvD;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQlD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB,CAKA;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,iBAAiB,CAYnB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAgBjE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAU9C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,MAAM,CAAC,UAAU,EAC5B,IAAI,GAAE,MAAM,EAA0B,GACrC;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAgBpD;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Shared environment variable helpers.
3
+ *
4
+ * 管理画面やサーバー側の設定ロジックから共通で利用する
5
+ * 環境変数スキーマ/バリデーション/マージ処理を集約する。
6
+ */
7
+ const ENV_KEY_PATTERN = /^[A-Z0-9_]+$/;
8
+ const MAX_KEY_LENGTH = 100;
9
+ const MAX_VALUE_LENGTH = 500;
10
+ const DEFAULT_BOOTSTRAP_ENV_KEYS = [
11
+ "ANTHROPIC_API_KEY",
12
+ "ANTHROPIC_API_KEY_PATH",
13
+ "ANTHROPIC_API_BASE",
14
+ "OPENAI_API_KEY",
15
+ "OPENAI_BASE_URL",
16
+ "OPENAI_API_BASE",
17
+ "OPENAI_ORG_ID",
18
+ "OPENAI_PROJECT",
19
+ "OPENAI_API_TYPE",
20
+ "OPENAI_API_VERSION",
21
+ "GITHUB_TOKEN",
22
+ "GH_TOKEN",
23
+ "GITLAB_TOKEN",
24
+ "AZURE_OPENAI_API_KEY",
25
+ "AZURE_OPENAI_ENDPOINT",
26
+ ];
27
+ /**
28
+ * 環境変数キーが有効かどうかを判定。
29
+ */
30
+ export function isValidEnvKey(key) {
31
+ if (!key || typeof key !== "string") {
32
+ return false;
33
+ }
34
+ if (key.length === 0 || key.length > MAX_KEY_LENGTH) {
35
+ return false;
36
+ }
37
+ return ENV_KEY_PATTERN.test(key);
38
+ }
39
+ /**
40
+ * 許容されるキー長を取得。
41
+ */
42
+ export function getEnvConstraints() {
43
+ return {
44
+ maxKeyLength: MAX_KEY_LENGTH,
45
+ maxValueLength: MAX_VALUE_LENGTH,
46
+ };
47
+ }
48
+ /**
49
+ * 任意のレコードをサニタイズして string -> string のみに整形する。
50
+ */
51
+ export function sanitizeEnvRecord(record) {
52
+ if (!record || typeof record !== "object") {
53
+ return {};
54
+ }
55
+ const result = {};
56
+ for (const [key, value] of Object.entries(record)) {
57
+ if (value === undefined || value === null) {
58
+ continue;
59
+ }
60
+ result[key] = String(value);
61
+ }
62
+ return result;
63
+ }
64
+ /**
65
+ * envレコードを検証し、フォーマットが不正な場合は例外を投げる。
66
+ */
67
+ export function validateEnvRecord(record) {
68
+ for (const [key, value] of Object.entries(record)) {
69
+ if (!isValidEnvKey(key)) {
70
+ throw new Error(`Invalid environment variable key: "${key}". Use 1-${MAX_KEY_LENGTH} characters (A-Z, 0-9, underscore).`);
71
+ }
72
+ if (value.length === 0) {
73
+ throw new Error(`Environment variable "${key}" must not be empty.`);
74
+ }
75
+ if (value.length > MAX_VALUE_LENGTH) {
76
+ throw new Error(`Environment variable "${key}" exceeds the maximum length (${MAX_VALUE_LENGTH}).`);
77
+ }
78
+ }
79
+ }
80
+ /**
81
+ * 起動時にOSから読み取って取り込みたい環境変数キー一覧を返す。
82
+ * CLAUDE_WORKTREE_BOOTSTRAP_ENV_KEYS=KEY1,KEY2 で上書き可能。
83
+ */
84
+ export function getBootstrapEnvKeys() {
85
+ const override = process.env.CLAUDE_WORKTREE_BOOTSTRAP_ENV_KEYS;
86
+ if (!override) {
87
+ return [...DEFAULT_BOOTSTRAP_ENV_KEYS];
88
+ }
89
+ return override
90
+ .split(",")
91
+ .map((entry) => entry.trim())
92
+ .filter(Boolean)
93
+ .map((entry) => entry.toUpperCase());
94
+ }
95
+ /**
96
+ * 現在のenvレコードへ、指定されたキーのみOS環境変数から補完する。
97
+ */
98
+ export function mergeWithBootstrapEnv(current, sourceEnv, keys = getBootstrapEnvKeys()) {
99
+ const merged = { ...current };
100
+ const addedKeys = [];
101
+ for (const key of keys) {
102
+ if (merged[key] !== undefined) {
103
+ continue; // 既に設定済み
104
+ }
105
+ const value = sourceEnv[key];
106
+ if (typeof value === "string" && value.length > 0) {
107
+ merged[key] = value;
108
+ addedKeys.push(key);
109
+ }
110
+ }
111
+ return { merged, addedKeys };
112
+ }
113
+ export { ENV_KEY_PATTERN };
114
+ //# sourceMappingURL=shared-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-env.js","sourceRoot":"","sources":["../../src/config/shared-env.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../src/gemini.ts"],"names":[],"mappings":"AAQA,qBAAa,WAAY,SAAQ,KAAK;IAG3B,KAAK,CAAC,EAAE,OAAO;gBADtB,OAAO,EAAE,MAAM,EACR,KAAK,CAAC,EAAE,OAAO,YAAA;CAKzB;AAED,wBAAsB,eAAe,CACnC,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE;IACP,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,GACL,OAAO,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAuRxC;AAsBD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAe7D"}
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../src/gemini.ts"],"names":[],"mappings":"AAQA,qBAAa,WAAY,SAAQ,KAAK;IAG3B,KAAK,CAAC,EAAE,OAAO;gBADtB,OAAO,EAAE,MAAM,EACR,KAAK,CAAC,EAAE,OAAO,YAAA;CAKzB;AAED,wBAAsB,eAAe,CACnC,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE;IACP,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,GACL,OAAO,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAmSxC;AAsBD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAgB7D"}
package/dist/gemini.js CHANGED
@@ -30,6 +30,8 @@ export async function launchGeminiCLI(worktreePath, options = {}) {
30
30
  const resumeSessionId = options.sessionId && options.sessionId.trim().length > 0
31
31
  ? options.sessionId.trim()
32
32
  : null;
33
+ const usedExplicitSessionId = Boolean(resumeSessionId) &&
34
+ (options.mode === "continue" || options.mode === "resume");
33
35
  const buildArgs = (useResumeId) => {
34
36
  const a = [];
35
37
  if (options.model) {
@@ -37,13 +39,6 @@ export async function launchGeminiCLI(worktreePath, options = {}) {
37
39
  }
38
40
  switch (options.mode) {
39
41
  case "continue":
40
- if (useResumeId && resumeSessionId) {
41
- a.push("--resume", resumeSessionId);
42
- }
43
- else {
44
- a.push("--resume");
45
- }
46
- break;
47
42
  case "resume":
48
43
  if (useResumeId && resumeSessionId) {
49
44
  a.push("--resume", resumeSessionId);
@@ -94,10 +89,10 @@ export async function launchGeminiCLI(worktreePath, options = {}) {
94
89
  console.log(chalk.yellow(" ⚠️ Auto-approving all actions (YOLO mode)"));
95
90
  }
96
91
  terminal.exitRawMode();
97
- const baseEnv = {
92
+ const baseEnv = Object.fromEntries(Object.entries({
98
93
  ...process.env,
99
94
  ...(options.envOverrides ?? {}),
100
- };
95
+ }).filter((entry) => typeof entry[1] === "string"));
101
96
  const childStdio = createChildStdio();
102
97
  // Auto-detect locally installed gemini command
103
98
  const hasLocalGemini = await isGeminiCommandAvailable();
@@ -156,6 +151,7 @@ export async function launchGeminiCLI(worktreePath, options = {}) {
156
151
  return await runWithCapture("bunx", [GEMINI_CLI_PACKAGE, ...runArgs]);
157
152
  };
158
153
  let output;
154
+ let fellBackToLatest = false;
159
155
  try {
160
156
  // Try with explicit session ID first (if any), then fallback to --resume (latest) once
161
157
  try {
@@ -165,6 +161,7 @@ export async function launchGeminiCLI(worktreePath, options = {}) {
165
161
  const shouldRetry = (options.mode === "resume" || options.mode === "continue") &&
166
162
  resumeSessionId;
167
163
  if (shouldRetry) {
164
+ fellBackToLatest = true;
168
165
  console.log(chalk.yellow(` ⚠️ Failed to resume session ${resumeSessionId}. Retrying with latest session...`));
169
166
  output = await runGemini(argsFallback);
170
167
  }
@@ -178,18 +175,21 @@ export async function launchGeminiCLI(worktreePath, options = {}) {
178
175
  }
179
176
  // Extract session ID from Gemini's exit summary output
180
177
  extractSessionId(output);
181
- // Fallback to file-based detection if stdout capture failed
178
+ const explicitResumeSucceeded = usedExplicitSessionId && !fellBackToLatest;
179
+ // If we explicitly resumed a specific session (and did not fall back), keep that ID.
180
+ if (explicitResumeSucceeded) {
181
+ capturedSessionId = resumeSessionId;
182
+ }
183
+ // Fallback to file-based detection if stdout capture failed (and we don't have an explicit-resume ID)
182
184
  if (!capturedSessionId) {
183
185
  try {
184
186
  capturedSessionId =
185
187
  (await findLatestGeminiSessionId(worktreePath, {
186
188
  cwd: worktreePath,
187
- })) ??
188
- resumeSessionId ??
189
- null;
189
+ })) ?? null;
190
190
  }
191
191
  catch {
192
- capturedSessionId = resumeSessionId ?? null;
192
+ capturedSessionId = null;
193
193
  }
194
194
  }
195
195
  if (capturedSessionId) {
@@ -204,7 +204,8 @@ export async function launchGeminiCLI(worktreePath, options = {}) {
204
204
  catch (error) {
205
205
  const hasLocalGemini = await isGeminiCommandAvailable();
206
206
  let errorMessage;
207
- if (error.code === "ENOENT") {
207
+ const err = error;
208
+ if (err.code === "ENOENT") {
208
209
  if (hasLocalGemini) {
209
210
  errorMessage =
210
211
  "gemini command not found. Please ensure Gemini CLI is properly installed.";
@@ -215,7 +216,8 @@ export async function launchGeminiCLI(worktreePath, options = {}) {
215
216
  }
216
217
  }
217
218
  else {
218
- errorMessage = `Failed to launch Gemini CLI: ${error.message || "Unknown error"}`;
219
+ const details = error instanceof Error ? error.message : String(error);
220
+ errorMessage = `Failed to launch Gemini CLI: ${details || "Unknown error"}`;
219
221
  }
220
222
  if (process.platform === "win32") {
221
223
  console.error(chalk.red("\n💡 Windows troubleshooting tips:"));
@@ -261,7 +263,8 @@ export async function isGeminiCLIAvailable() {
261
263
  return true;
262
264
  }
263
265
  catch (error) {
264
- if (error.code === "ENOENT") {
266
+ const err = error;
267
+ if (err.code === "ENOENT") {
265
268
  console.error(chalk.yellow("\n⚠️ bunx command not found"));
266
269
  console.error(chalk.gray(" Install Bun and confirm that bunx is available before continuing"));
267
270
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../src/gemini.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../src/gemini.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAwBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAiQlE;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,IAAI,CAAC,CAkff;AAED,KAAK,SAAS,GAAG,MAAM,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;AAC5D,KAAK,eAAe,GAAG,CAAC,SAAS,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAWrE,wBAAsB,kBAAkB,CACtC,SAAS,GAAE,SAAqB,EAChC,eAAe,GAAE,eAAsC,GACtD,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA6C1C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAwBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAqQlE;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,IAAI,CAAC,CAmff;AAED,KAAK,SAAS,GAAG,MAAM,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;AAC5D,KAAK,eAAe,GAAG,CAAC,SAAS,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAWrE,wBAAsB,kBAAkB,CACtC,SAAS,GAAE,SAAqB,EAChC,eAAe,GAAE,eAAsC,GACtD,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAED;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA6C1C"}
package/dist/index.js CHANGED
@@ -130,7 +130,10 @@ function showHelp() {
130
130
  console.log(`
131
131
  Worktree Manager
132
132
 
133
- Usage: gwt [options]
133
+ Usage: gwt [command] [options]
134
+
135
+ Commands:
136
+ serve Start Web UI server (http://localhost:3000)
134
137
 
135
138
  Options:
136
139
  -h, --help Show this help message
@@ -138,7 +141,8 @@ Options:
138
141
 
139
142
  Description:
140
143
  Interactive Git worktree manager with AI tool selection (Claude Code / Codex CLI) and graphical branch selection.
141
- Launch without additional options to open the interactive menu.
144
+ Launch without additional options to open the interactive CLI menu.
145
+ Use 'gwt serve' to start the Web UI server for browser-based management.
142
146
  `);
143
147
  }
144
148
  /**
@@ -384,11 +388,11 @@ export async function handleAIToolWorkflow(selectionResult) {
384
388
  timestamp: Date.now(),
385
389
  repositoryRoot: repoRoot,
386
390
  }, { skipHistory: true });
387
- // Lookup saved session ID for continue/resume
391
+ // Lookup saved session ID for Continue (auto attach)
388
392
  let resumeSessionId = selectedSessionId && selectedSessionId.length > 0
389
393
  ? selectedSessionId
390
394
  : null;
391
- if (mode === "continue" || mode === "resume") {
395
+ if (mode === "continue") {
392
396
  const existingSession = await loadSession(repoRoot);
393
397
  const history = existingSession?.history ?? [];
394
398
  resumeSessionId =
@@ -496,14 +500,15 @@ export async function handleAIToolWorkflow(selectionResult) {
496
500
  null;
497
501
  if (!finalSessionId && tool === "claude-code") {
498
502
  try {
499
- finalSessionId = (await findLatestClaudeSessionId(worktreePath)) ?? null;
503
+ finalSessionId =
504
+ (await findLatestClaudeSessionId(worktreePath)) ?? null;
500
505
  }
501
506
  catch {
502
507
  finalSessionId = null;
503
508
  }
504
509
  }
505
510
  const finishedAt = Date.now();
506
- if (tool === "codex-cli") {
511
+ if (!finalSessionId && tool === "codex-cli") {
507
512
  try {
508
513
  const latest = await findLatestCodexSession({
509
514
  since: launchStartedAt - 60_000,
@@ -520,7 +525,7 @@ export async function handleAIToolWorkflow(selectionResult) {
520
525
  // ignore fallback failure
521
526
  }
522
527
  }
523
- else if (tool === "claude-code") {
528
+ else if (!finalSessionId && tool === "claude-code") {
524
529
  try {
525
530
  const latestClaude = await findLatestClaudeSession(worktreePath, {
526
531
  since: launchStartedAt - 60_000,
@@ -536,7 +541,7 @@ export async function handleAIToolWorkflow(selectionResult) {
536
541
  // ignore
537
542
  }
538
543
  }
539
- else if (tool === "gemini-cli") {
544
+ else if (!finalSessionId && tool === "gemini-cli") {
540
545
  try {
541
546
  const latestGemini = await findLatestGeminiSession(worktreePath, {
542
547
  since: launchStartedAt - 60_000,