@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.
- package/README.ja.md +41 -0
- package/README.md +38 -0
- package/dist/claude.d.ts.map +1 -1
- package/dist/claude.js +17 -11
- package/dist/claude.js.map +1 -1
- package/dist/cli/ui/components/App.d.ts +0 -6
- package/dist/cli/ui/components/App.d.ts.map +1 -1
- package/dist/cli/ui/components/App.js +27 -88
- package/dist/cli/ui/components/App.js.map +1 -1
- package/dist/cli/ui/components/common/Select.js +2 -2
- package/dist/cli/ui/components/common/Select.js.map +1 -1
- package/dist/cli/ui/components/screens/BranchListScreen.d.ts.map +1 -1
- package/dist/cli/ui/components/screens/BranchListScreen.js.map +1 -1
- package/dist/cli/ui/components/screens/BranchQuickStartScreen.d.ts.map +1 -1
- package/dist/cli/ui/components/screens/BranchQuickStartScreen.js +3 -3
- package/dist/cli/ui/components/screens/BranchQuickStartScreen.js.map +1 -1
- package/dist/cli/ui/utils/continueSession.d.ts.map +1 -1
- package/dist/cli/ui/utils/continueSession.js +1 -1
- package/dist/cli/ui/utils/continueSession.js.map +1 -1
- package/dist/client/assets/index-DsDNCy5f.css +1 -0
- package/dist/client/assets/index-f5D2XwDh.js +72 -0
- package/dist/client/index.html +2 -2
- package/dist/codex.d.ts.map +1 -1
- package/dist/codex.js +21 -11
- package/dist/codex.js.map +1 -1
- package/dist/config/builtin-tools.d.ts.map +1 -1
- package/dist/config/builtin-tools.js +3 -2
- package/dist/config/builtin-tools.js.map +1 -1
- package/dist/config/shared-env.d.ts +41 -0
- package/dist/config/shared-env.d.ts.map +1 -0
- package/dist/config/shared-env.js +114 -0
- package/dist/config/shared-env.js.map +1 -0
- package/dist/gemini.d.ts.map +1 -1
- package/dist/gemini.js +20 -17
- package/dist/gemini.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -8
- package/dist/index.js.map +1 -1
- package/dist/logging/logger.d.ts.map +1 -1
- package/dist/logging/logger.js +4 -1
- package/dist/logging/logger.js.map +1 -1
- package/dist/qwen.d.ts.map +1 -1
- package/dist/qwen.js +15 -11
- package/dist/qwen.js.map +1 -1
- package/dist/services/aiToolResolver.d.ts +41 -0
- package/dist/services/aiToolResolver.d.ts.map +1 -0
- package/dist/services/aiToolResolver.js +194 -0
- package/dist/services/aiToolResolver.js.map +1 -0
- package/dist/services/customToolResolver.d.ts +10 -0
- package/dist/services/customToolResolver.d.ts.map +1 -0
- package/dist/services/customToolResolver.js +71 -0
- package/dist/services/customToolResolver.js.map +1 -0
- package/dist/shared/aiToolConstants.d.ts +9 -0
- package/dist/shared/aiToolConstants.d.ts.map +1 -0
- package/dist/shared/aiToolConstants.js +29 -0
- package/dist/shared/aiToolConstants.js.map +1 -0
- package/dist/types/tools.d.ts +12 -0
- package/dist/types/tools.d.ts.map +1 -1
- package/dist/utils/prompt.d.ts.map +1 -1
- package/dist/utils/prompt.js.map +1 -1
- package/dist/utils/session.d.ts.map +1 -1
- package/dist/utils/session.js +15 -6
- package/dist/utils/session.js.map +1 -1
- package/dist/utils/terminal.d.ts +12 -3
- package/dist/utils/terminal.d.ts.map +1 -1
- package/dist/utils/terminal.js +5 -34
- package/dist/utils/terminal.js.map +1 -1
- package/dist/utils/webui.d.ts +8 -0
- package/dist/utils/webui.d.ts.map +1 -0
- package/dist/utils/webui.js +35 -0
- package/dist/utils/webui.js.map +1 -0
- package/dist/web/client/src/components/AIToolLaunchModal.d.ts +9 -0
- package/dist/web/client/src/components/AIToolLaunchModal.d.ts.map +1 -0
- package/dist/web/client/src/components/AIToolLaunchModal.js +363 -0
- package/dist/web/client/src/components/AIToolLaunchModal.js.map +1 -0
- package/dist/web/client/src/components/BranchGraph.d.ts.map +1 -1
- package/dist/web/client/src/components/BranchGraph.js +46 -49
- package/dist/web/client/src/components/BranchGraph.js.map +1 -1
- package/dist/web/client/src/components/CustomToolForm.d.ts +23 -0
- package/dist/web/client/src/components/CustomToolForm.d.ts.map +1 -0
- package/dist/web/client/src/components/CustomToolForm.js +209 -0
- package/dist/web/client/src/components/CustomToolForm.js.map +1 -0
- package/dist/web/client/src/components/CustomToolList.d.ts +10 -0
- package/dist/web/client/src/components/CustomToolList.d.ts.map +1 -0
- package/dist/web/client/src/components/CustomToolList.js +57 -0
- package/dist/web/client/src/components/CustomToolList.js.map +1 -0
- package/dist/web/client/src/components/EnvEditor.d.ts.map +1 -1
- package/dist/web/client/src/components/EnvEditor.js +33 -26
- package/dist/web/client/src/components/EnvEditor.js.map +1 -1
- package/dist/web/client/src/components/EnvironmentEditor.d.ts +17 -0
- package/dist/web/client/src/components/EnvironmentEditor.d.ts.map +1 -0
- package/dist/web/client/src/components/EnvironmentEditor.js +22 -0
- package/dist/web/client/src/components/EnvironmentEditor.js.map +1 -0
- package/dist/web/client/src/components/Terminal.d.ts.map +1 -1
- package/dist/web/client/src/components/Terminal.js +10 -3
- package/dist/web/client/src/components/Terminal.js.map +1 -1
- package/dist/web/client/src/components/branch-detail/BranchInfoCards.d.ts +10 -0
- package/dist/web/client/src/components/branch-detail/BranchInfoCards.d.ts.map +1 -0
- package/dist/web/client/src/components/branch-detail/BranchInfoCards.js +104 -0
- package/dist/web/client/src/components/branch-detail/BranchInfoCards.js.map +1 -0
- package/dist/web/client/src/components/branch-detail/SessionHistoryTable.d.ts +22 -0
- package/dist/web/client/src/components/branch-detail/SessionHistoryTable.d.ts.map +1 -0
- package/dist/web/client/src/components/branch-detail/SessionHistoryTable.js +79 -0
- package/dist/web/client/src/components/branch-detail/SessionHistoryTable.js.map +1 -0
- package/dist/web/client/src/components/branch-detail/TerminalPanel.d.ts +11 -0
- package/dist/web/client/src/components/branch-detail/TerminalPanel.d.ts.map +1 -0
- package/dist/web/client/src/components/branch-detail/TerminalPanel.js +32 -0
- package/dist/web/client/src/components/branch-detail/TerminalPanel.js.map +1 -0
- package/dist/web/client/src/components/branch-detail/ToolLauncher.d.ts +40 -0
- package/dist/web/client/src/components/branch-detail/ToolLauncher.d.ts.map +1 -0
- package/dist/web/client/src/components/branch-detail/ToolLauncher.js +147 -0
- package/dist/web/client/src/components/branch-detail/ToolLauncher.js.map +1 -0
- package/dist/web/client/src/components/branch-detail/index.d.ts +5 -0
- package/dist/web/client/src/components/branch-detail/index.d.ts.map +1 -0
- package/dist/web/client/src/components/branch-detail/index.js +5 -0
- package/dist/web/client/src/components/branch-detail/index.js.map +1 -0
- package/dist/web/client/src/components/common/BranchCard.d.ts +17 -0
- package/dist/web/client/src/components/common/BranchCard.d.ts.map +1 -0
- package/dist/web/client/src/components/common/BranchCard.js +36 -0
- package/dist/web/client/src/components/common/BranchCard.js.map +1 -0
- package/dist/web/client/src/components/common/MetricCard.d.ts +10 -0
- package/dist/web/client/src/components/common/MetricCard.d.ts.map +1 -0
- package/dist/web/client/src/components/common/MetricCard.js +10 -0
- package/dist/web/client/src/components/common/MetricCard.js.map +1 -0
- package/dist/web/client/src/components/common/PageHeader.d.ts +12 -0
- package/dist/web/client/src/components/common/PageHeader.d.ts.map +1 -0
- package/dist/web/client/src/components/common/PageHeader.js +14 -0
- package/dist/web/client/src/components/common/PageHeader.js.map +1 -0
- package/dist/web/client/src/components/common/SearchInput.d.ts +14 -0
- package/dist/web/client/src/components/common/SearchInput.d.ts.map +1 -0
- package/dist/web/client/src/components/common/SearchInput.js +15 -0
- package/dist/web/client/src/components/common/SearchInput.js.map +1 -0
- package/dist/web/client/src/components/common/StatusBadge.d.ts +10 -0
- package/dist/web/client/src/components/common/StatusBadge.d.ts.map +1 -0
- package/dist/web/client/src/components/common/StatusBadge.js +15 -0
- package/dist/web/client/src/components/common/StatusBadge.js.map +1 -0
- package/dist/web/client/src/components/common/index.d.ts +6 -0
- package/dist/web/client/src/components/common/index.d.ts.map +1 -0
- package/dist/web/client/src/components/common/index.js +6 -0
- package/dist/web/client/src/components/common/index.js.map +1 -0
- package/dist/web/client/src/components/ui/alert.d.ts +9 -0
- package/dist/web/client/src/components/ui/alert.d.ts.map +1 -0
- package/dist/web/client/src/components/ui/alert.js +25 -0
- package/dist/web/client/src/components/ui/alert.js.map +1 -0
- package/dist/web/client/src/components/ui/badge.d.ts +10 -0
- package/dist/web/client/src/components/ui/badge.d.ts.map +1 -0
- package/dist/web/client/src/components/ui/badge.js +25 -0
- package/dist/web/client/src/components/ui/badge.js.map +1 -0
- package/dist/web/client/src/components/ui/button.d.ts +12 -0
- package/dist/web/client/src/components/ui/button.d.ts.map +1 -0
- package/dist/web/client/src/components/ui/button.js +33 -0
- package/dist/web/client/src/components/ui/button.js.map +1 -0
- package/dist/web/client/src/components/ui/card.d.ts +9 -0
- package/dist/web/client/src/components/ui/card.d.ts.map +1 -0
- package/dist/web/client/src/components/ui/card.js +16 -0
- package/dist/web/client/src/components/ui/card.js.map +1 -0
- package/dist/web/client/src/components/ui/index.d.ts +8 -0
- package/dist/web/client/src/components/ui/index.d.ts.map +1 -0
- package/dist/web/client/src/components/ui/index.js +8 -0
- package/dist/web/client/src/components/ui/index.js.map +1 -0
- package/dist/web/client/src/components/ui/input.d.ts +4 -0
- package/dist/web/client/src/components/ui/input.d.ts.map +1 -0
- package/dist/web/client/src/components/ui/input.js +8 -0
- package/dist/web/client/src/components/ui/input.js.map +1 -0
- package/dist/web/client/src/components/ui/select.d.ts +14 -0
- package/dist/web/client/src/components/ui/select.d.ts.map +1 -0
- package/dist/web/client/src/components/ui/select.js +39 -0
- package/dist/web/client/src/components/ui/select.js.map +1 -0
- package/dist/web/client/src/components/ui/table.d.ts +11 -0
- package/dist/web/client/src/components/ui/table.d.ts.map +1 -0
- package/dist/web/client/src/components/ui/table.js +21 -0
- package/dist/web/client/src/components/ui/table.js.map +1 -0
- package/dist/web/client/src/hooks/useSessions.d.ts.map +1 -1
- package/dist/web/client/src/hooks/useSessions.js +6 -1
- package/dist/web/client/src/hooks/useSessions.js.map +1 -1
- package/dist/web/client/src/lib/utils.d.ts +7 -0
- package/dist/web/client/src/lib/utils.d.ts.map +1 -0
- package/dist/web/client/src/lib/utils.js +10 -0
- package/dist/web/client/src/lib/utils.js.map +1 -0
- package/dist/web/client/src/lib/websocket.d.ts +7 -0
- package/dist/web/client/src/lib/websocket.d.ts.map +1 -1
- package/dist/web/client/src/lib/websocket.js +44 -0
- package/dist/web/client/src/lib/websocket.js.map +1 -1
- package/dist/web/client/src/pages/BranchDetailPage.d.ts.map +1 -1
- package/dist/web/client/src/pages/BranchDetailPage.js +125 -376
- package/dist/web/client/src/pages/BranchDetailPage.js.map +1 -1
- package/dist/web/client/src/pages/BranchListPage.d.ts.map +1 -1
- package/dist/web/client/src/pages/BranchListPage.js +89 -127
- package/dist/web/client/src/pages/BranchListPage.js.map +1 -1
- package/dist/web/client/src/pages/ConfigManagementPage.d.ts.map +1 -1
- package/dist/web/client/src/pages/ConfigManagementPage.js +46 -41
- package/dist/web/client/src/pages/ConfigManagementPage.js.map +1 -1
- package/dist/web/client/src/pages/ConfigPage.d.ts +3 -0
- package/dist/web/client/src/pages/ConfigPage.d.ts.map +1 -0
- package/dist/web/client/src/pages/ConfigPage.js +216 -0
- package/dist/web/client/src/pages/ConfigPage.js.map +1 -0
- package/dist/web/client/vite.config.d.ts.map +1 -1
- package/dist/web/client/vite.config.js +8 -1
- package/dist/web/client/vite.config.js.map +1 -1
- package/dist/web/server/index.d.ts +24 -2
- package/dist/web/server/index.d.ts.map +1 -1
- package/dist/web/server/index.js +46 -15
- package/dist/web/server/index.js.map +1 -1
- package/dist/web/server/pty/manager.d.ts +12 -10
- package/dist/web/server/pty/manager.d.ts.map +1 -1
- package/dist/web/server/pty/manager.js +76 -43
- package/dist/web/server/pty/manager.js.map +1 -1
- package/dist/web/server/routes/sessions.d.ts.map +1 -1
- package/dist/web/server/routes/sessions.js +35 -2
- package/dist/web/server/routes/sessions.js.map +1 -1
- package/dist/web/server/routes/worktrees.js +2 -2
- package/dist/web/server/routes/worktrees.js.map +1 -1
- package/dist/web/server/services/worktrees.d.ts.map +1 -1
- package/dist/web/server/services/worktrees.js +7 -1
- package/dist/web/server/services/worktrees.js.map +1 -1
- package/dist/web/server/tray.d.ts +25 -0
- package/dist/web/server/tray.d.ts.map +1 -0
- package/dist/web/server/tray.js +98 -0
- package/dist/web/server/tray.js.map +1 -0
- package/dist/web/server/websocket/handler.d.ts +18 -2
- package/dist/web/server/websocket/handler.d.ts.map +1 -1
- package/dist/web/server/websocket/handler.js +82 -9
- package/dist/web/server/websocket/handler.js.map +1 -1
- package/package.json +15 -2
- package/src/claude.ts +26 -15
- package/src/cli/ui/__tests__/components/App.protected-branch.test.tsx +1 -1
- package/src/cli/ui/__tests__/components/common/Select.test.tsx +11 -0
- package/src/cli/ui/__tests__/components/screens/BranchListScreen.test.tsx +3 -1
- package/src/cli/ui/__tests__/components/screens/BranchQuickStartScreen.test.tsx +4 -4
- package/src/cli/ui/components/App.tsx +33 -133
- package/src/cli/ui/components/common/Select.tsx +2 -2
- package/src/cli/ui/components/screens/BranchListScreen.tsx +28 -21
- package/src/cli/ui/components/screens/BranchQuickStartScreen.tsx +41 -46
- package/src/cli/ui/utils/continueSession.ts +1 -7
- package/src/codex.ts +31 -22
- package/src/config/builtin-tools.ts +6 -2
- package/src/config/shared-env.ts +139 -0
- package/src/gemini.ts +35 -22
- package/src/index.ts +13 -8
- package/src/logging/logger.ts +5 -2
- package/src/qwen.ts +28 -19
- package/src/services/aiToolResolver.ts +276 -0
- package/src/services/customToolResolver.ts +98 -0
- package/src/shared/aiToolConstants.ts +30 -0
- package/src/trayicon.d.ts +30 -0
- package/src/types/tools.ts +15 -0
- package/src/utils/prompt.ts +15 -9
- package/src/utils/session.ts +80 -26
- package/src/utils/terminal.ts +11 -41
- package/src/utils/webui.ts +43 -0
- package/src/web/client/components.json +21 -0
- package/src/web/client/src/components/AIToolLaunchModal.tsx +575 -0
- package/src/web/client/src/components/BranchGraph.tsx +95 -75
- package/src/web/client/src/components/CustomToolForm.tsx +386 -0
- package/src/web/client/src/components/CustomToolList.tsx +119 -0
- package/src/web/client/src/components/EnvEditor.tsx +91 -81
- package/src/web/client/src/components/EnvironmentEditor.tsx +97 -0
- package/src/web/client/src/components/Terminal.tsx +11 -3
- package/src/web/client/src/components/branch-detail/BranchInfoCards.tsx +179 -0
- package/src/web/client/src/components/branch-detail/SessionHistoryTable.tsx +181 -0
- package/src/web/client/src/components/branch-detail/TerminalPanel.tsx +92 -0
- package/src/web/client/src/components/branch-detail/ToolLauncher.tsx +327 -0
- package/src/web/client/src/components/branch-detail/index.ts +4 -0
- package/src/web/client/src/components/common/BranchCard.tsx +117 -0
- package/src/web/client/src/components/common/MetricCard.tsx +22 -0
- package/src/web/client/src/components/common/PageHeader.tsx +44 -0
- package/src/web/client/src/components/common/SearchInput.tsx +40 -0
- package/src/web/client/src/components/common/StatusBadge.tsx +37 -0
- package/src/web/client/src/components/common/index.ts +5 -0
- package/src/web/client/src/components/ui/alert.tsx +63 -0
- package/src/web/client/src/components/ui/badge.tsx +44 -0
- package/src/web/client/src/components/ui/button.tsx +57 -0
- package/src/web/client/src/components/ui/card.tsx +82 -0
- package/src/web/client/src/components/ui/index.ts +32 -0
- package/src/web/client/src/components/ui/input.tsx +21 -0
- package/src/web/client/src/components/ui/select.tsx +156 -0
- package/src/web/client/src/components/ui/table.tsx +119 -0
- package/src/web/client/src/hooks/useSessions.ts +10 -1
- package/src/web/client/src/index.css +46 -816
- package/src/web/client/src/lib/utils.ts +10 -0
- package/src/web/client/src/lib/websocket.ts +48 -1
- package/src/web/client/src/pages/BranchDetailPage.tsx +247 -723
- package/src/web/client/src/pages/BranchListPage.tsx +190 -236
- package/src/web/client/src/pages/ConfigManagementPage.tsx +94 -76
- package/src/web/client/src/pages/ConfigPage.tsx +362 -0
- package/src/web/client/vite.config.ts +8 -1
- package/src/web/server/index.ts +72 -15
- package/src/web/server/pty/manager.ts +128 -55
- package/src/web/server/routes/sessions.ts +59 -7
- package/src/web/server/routes/worktrees.ts +3 -3
- package/src/web/server/services/worktrees.ts +12 -4
- package/src/web/server/tray.ts +120 -0
- package/src/web/server/websocket/handler.ts +119 -13
- package/dist/client/assets/index-DeNwPosA.css +0 -1
- package/dist/client/assets/index-Dl798X5w.js +0 -32
package/dist/client/index.html
CHANGED
|
@@ -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-
|
|
8
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
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>
|
package/dist/codex.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../src/codex.ts"],"names":[],"mappings":"
|
|
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
|
|
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
|
-
|
|
57
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
136
|
-
|
|
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
|
|
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
|
|
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: ${
|
|
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
|
-
|
|
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,
|
|
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;
|
|
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:
|
|
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:
|
|
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;
|
|
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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"}
|
package/dist/gemini.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
}
|
package/dist/gemini.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../src/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AAEvD,MAAM,OAAO,WAAY,SAAQ,KAAK;IAG3B;IAFT,YACE,OAAe,EACR,KAAe;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFR,UAAK,GAAL,KAAK,CAAU;QAGtB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,YAAoB,EACpB,UAOI,EAAE;IAEN,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IAEtC,IAAI,CAAC;QACH,oCAAoC;QACpC,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,4BAA4B,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAC,CAAC;QAEjE,MAAM,IAAI,GAAa,EAAE,CAAC;QAE1B,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,wBAAwB;QACxB,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;
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../src/gemini.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
|
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"
|
|
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 =
|
|
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,
|