@akiojin/gwt 2.0.0 → 2.0.1
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/dist/claude-history.d.ts +60 -0
- package/dist/claude-history.d.ts.map +1 -0
- package/dist/claude-history.js +606 -0
- package/dist/claude-history.js.map +1 -0
- package/dist/claude.d.ts +12 -0
- package/dist/claude.d.ts.map +1 -0
- package/dist/claude.js +222 -0
- package/dist/claude.js.map +1 -0
- package/dist/cli/ui/components/App.d.ts +22 -0
- package/dist/cli/ui/components/App.d.ts.map +1 -0
- package/dist/cli/ui/components/App.js +557 -0
- package/dist/cli/ui/components/App.js.map +1 -0
- package/dist/cli/ui/components/common/Confirm.d.ts +13 -0
- package/dist/cli/ui/components/common/Confirm.d.ts.map +1 -0
- package/dist/cli/ui/components/common/Confirm.js +20 -0
- package/dist/cli/ui/components/common/Confirm.js.map +1 -0
- package/dist/cli/ui/components/common/ErrorBoundary.d.ts +23 -0
- package/dist/cli/ui/components/common/ErrorBoundary.d.ts.map +1 -0
- package/dist/cli/ui/components/common/ErrorBoundary.js +37 -0
- package/dist/cli/ui/components/common/ErrorBoundary.js.map +1 -0
- package/dist/cli/ui/components/common/Input.d.ts +14 -0
- package/dist/cli/ui/components/common/Input.d.ts.map +1 -0
- package/dist/cli/ui/components/common/Input.js +14 -0
- package/dist/cli/ui/components/common/Input.js.map +1 -0
- package/dist/cli/ui/components/common/LoadingIndicator.d.ts +19 -0
- package/dist/cli/ui/components/common/LoadingIndicator.d.ts.map +1 -0
- package/dist/cli/ui/components/common/LoadingIndicator.js +61 -0
- package/dist/cli/ui/components/common/LoadingIndicator.js.map +1 -0
- package/dist/cli/ui/components/common/Select.d.ts +30 -0
- package/dist/cli/ui/components/common/Select.d.ts.map +1 -0
- package/dist/cli/ui/components/common/Select.js +140 -0
- package/dist/cli/ui/components/common/Select.js.map +1 -0
- package/dist/cli/ui/components/parts/Footer.d.ts +15 -0
- package/dist/cli/ui/components/parts/Footer.d.ts.map +1 -0
- package/dist/cli/ui/components/parts/Footer.js +20 -0
- package/dist/cli/ui/components/parts/Footer.js.map +1 -0
- package/dist/cli/ui/components/parts/Header.d.ts +29 -0
- package/dist/cli/ui/components/parts/Header.d.ts.map +1 -0
- package/dist/cli/ui/components/parts/Header.js +19 -0
- package/dist/cli/ui/components/parts/Header.js.map +1 -0
- package/dist/cli/ui/components/parts/MergeStatusList.d.ts +13 -0
- package/dist/cli/ui/components/parts/MergeStatusList.d.ts.map +1 -0
- package/dist/cli/ui/components/parts/MergeStatusList.js +52 -0
- package/dist/cli/ui/components/parts/MergeStatusList.js.map +1 -0
- package/dist/cli/ui/components/parts/ProgressBar.d.ts +13 -0
- package/dist/cli/ui/components/parts/ProgressBar.d.ts.map +1 -0
- package/dist/cli/ui/components/parts/ProgressBar.js +53 -0
- package/dist/cli/ui/components/parts/ProgressBar.js.map +1 -0
- package/dist/cli/ui/components/parts/ScrollableList.d.ts +12 -0
- package/dist/cli/ui/components/parts/ScrollableList.d.ts.map +1 -0
- package/dist/cli/ui/components/parts/ScrollableList.js +11 -0
- package/dist/cli/ui/components/parts/ScrollableList.js.map +1 -0
- package/dist/cli/ui/components/parts/Stats.d.ts +13 -0
- package/dist/cli/ui/components/parts/Stats.d.ts.map +1 -0
- package/dist/cli/ui/components/parts/Stats.js +42 -0
- package/dist/cli/ui/components/parts/Stats.js.map +1 -0
- package/dist/cli/ui/components/screens/AIToolSelectorScreen.d.ts +20 -0
- package/dist/cli/ui/components/screens/AIToolSelectorScreen.d.ts.map +1 -0
- package/dist/cli/ui/components/screens/AIToolSelectorScreen.js +77 -0
- package/dist/cli/ui/components/screens/AIToolSelectorScreen.js.map +1 -0
- package/dist/cli/ui/components/screens/BatchMergeProgressScreen.d.ts +14 -0
- package/dist/cli/ui/components/screens/BatchMergeProgressScreen.d.ts.map +1 -0
- package/dist/cli/ui/components/screens/BatchMergeProgressScreen.js +41 -0
- package/dist/cli/ui/components/screens/BatchMergeProgressScreen.js.map +1 -0
- package/dist/cli/ui/components/screens/BatchMergeResultScreen.d.ts +14 -0
- package/dist/cli/ui/components/screens/BatchMergeResultScreen.d.ts.map +1 -0
- package/dist/cli/ui/components/screens/BatchMergeResultScreen.js +71 -0
- package/dist/cli/ui/components/screens/BatchMergeResultScreen.js.map +1 -0
- package/dist/cli/ui/components/screens/BranchCreatorScreen.d.ts +15 -0
- package/dist/cli/ui/components/screens/BranchCreatorScreen.d.ts.map +1 -0
- package/dist/cli/ui/components/screens/BranchCreatorScreen.js +142 -0
- package/dist/cli/ui/components/screens/BranchCreatorScreen.js.map +1 -0
- package/dist/cli/ui/components/screens/BranchListScreen.d.ts +39 -0
- package/dist/cli/ui/components/screens/BranchListScreen.d.ts.map +1 -0
- package/dist/cli/ui/components/screens/BranchListScreen.js +172 -0
- package/dist/cli/ui/components/screens/BranchListScreen.js.map +1 -0
- package/dist/cli/ui/components/screens/ExecutionModeSelectorScreen.d.ts +29 -0
- package/dist/cli/ui/components/screens/ExecutionModeSelectorScreen.d.ts.map +1 -0
- package/dist/cli/ui/components/screens/ExecutionModeSelectorScreen.js +92 -0
- package/dist/cli/ui/components/screens/ExecutionModeSelectorScreen.js.map +1 -0
- package/dist/cli/ui/components/screens/PRCleanupScreen.d.ts +23 -0
- package/dist/cli/ui/components/screens/PRCleanupScreen.d.ts.map +1 -0
- package/dist/cli/ui/components/screens/PRCleanupScreen.js +94 -0
- package/dist/cli/ui/components/screens/PRCleanupScreen.js.map +1 -0
- package/dist/cli/ui/components/screens/SessionSelectorScreen.d.ts +17 -0
- package/dist/cli/ui/components/screens/SessionSelectorScreen.d.ts.map +1 -0
- package/dist/cli/ui/components/screens/SessionSelectorScreen.js +55 -0
- package/dist/cli/ui/components/screens/SessionSelectorScreen.js.map +1 -0
- package/dist/cli/ui/components/screens/WorktreeManagerScreen.d.ts +20 -0
- package/dist/cli/ui/components/screens/WorktreeManagerScreen.d.ts.map +1 -0
- package/dist/cli/ui/components/screens/WorktreeManagerScreen.js +65 -0
- package/dist/cli/ui/components/screens/WorktreeManagerScreen.js.map +1 -0
- package/dist/cli/ui/hooks/useBatchMerge.d.ts +17 -0
- package/dist/cli/ui/hooks/useBatchMerge.d.ts.map +1 -0
- package/dist/cli/ui/hooks/useBatchMerge.js +77 -0
- package/dist/cli/ui/hooks/useBatchMerge.js.map +1 -0
- package/dist/cli/ui/hooks/useGitData.d.ts +20 -0
- package/dist/cli/ui/hooks/useGitData.d.ts.map +1 -0
- package/dist/cli/ui/hooks/useGitData.js +116 -0
- package/dist/cli/ui/hooks/useGitData.js.map +1 -0
- package/dist/cli/ui/hooks/useScreenState.d.ts +12 -0
- package/dist/cli/ui/hooks/useScreenState.d.ts.map +1 -0
- package/dist/cli/ui/hooks/useScreenState.js +30 -0
- package/dist/cli/ui/hooks/useScreenState.js.map +1 -0
- package/dist/cli/ui/hooks/useTerminalSize.d.ts +9 -0
- package/dist/cli/ui/hooks/useTerminalSize.d.ts.map +1 -0
- package/dist/cli/ui/hooks/useTerminalSize.js +24 -0
- package/dist/cli/ui/hooks/useTerminalSize.js.map +1 -0
- package/dist/cli/ui/screens/BranchActionSelectorScreen.d.ts +21 -0
- package/dist/cli/ui/screens/BranchActionSelectorScreen.d.ts.map +1 -0
- package/dist/cli/ui/screens/BranchActionSelectorScreen.js +61 -0
- package/dist/cli/ui/screens/BranchActionSelectorScreen.js.map +1 -0
- package/dist/cli/ui/types.d.ts +245 -0
- package/dist/cli/ui/types.d.ts.map +1 -0
- package/dist/cli/ui/types.js +2 -0
- package/dist/cli/ui/types.js.map +1 -0
- package/dist/cli/ui/utils/baseBranch.d.ts +4 -0
- package/dist/cli/ui/utils/baseBranch.d.ts.map +1 -0
- package/dist/cli/ui/utils/baseBranch.js +17 -0
- package/dist/cli/ui/utils/baseBranch.js.map +1 -0
- package/dist/cli/ui/utils/branchFormatter.d.ts +13 -0
- package/dist/cli/ui/utils/branchFormatter.d.ts.map +1 -0
- package/dist/cli/ui/utils/branchFormatter.js +202 -0
- package/dist/cli/ui/utils/branchFormatter.js.map +1 -0
- package/dist/cli/ui/utils/statisticsCalculator.d.ts +9 -0
- package/dist/cli/ui/utils/statisticsCalculator.d.ts.map +1 -0
- package/dist/cli/ui/utils/statisticsCalculator.js +37 -0
- package/dist/cli/ui/utils/statisticsCalculator.js.map +1 -0
- package/dist/client/assets/index-CqaYsI0z.js +81 -0
- package/dist/client/assets/index-Dy3OxWpP.css +32 -0
- package/dist/client/index.html +13 -0
- package/dist/codex.d.ts +12 -0
- package/dist/codex.d.ts.map +1 -0
- package/dist/codex.js +106 -0
- package/dist/codex.js.map +1 -0
- package/dist/config/builtin-tools.d.ts +19 -0
- package/dist/config/builtin-tools.d.ts.map +1 -0
- package/dist/config/builtin-tools.js +40 -0
- package/dist/config/builtin-tools.js.map +1 -0
- package/dist/config/constants.d.ts +74 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +90 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/env-history.d.ts +4 -0
- package/dist/config/env-history.d.ts.map +1 -0
- package/dist/config/env-history.js +34 -0
- package/dist/config/env-history.js.map +1 -0
- package/dist/config/index.d.ts +24 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +144 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/tools.d.ts +40 -0
- package/dist/config/tools.d.ts.map +1 -0
- package/dist/config/tools.js +238 -0
- package/dist/config/tools.js.map +1 -0
- package/dist/git.d.ts +145 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +871 -0
- package/dist/git.js.map +1 -0
- package/dist/github.d.ts +14 -0
- package/dist/github.d.ts.map +1 -0
- package/dist/github.js +123 -0
- package/dist/github.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +510 -0
- package/dist/index.js.map +1 -0
- package/dist/launcher.d.ts +30 -0
- package/dist/launcher.d.ts.map +1 -0
- package/dist/launcher.js +116 -0
- package/dist/launcher.js.map +1 -0
- package/dist/repositories/git.repository.d.ts +38 -0
- package/dist/repositories/git.repository.d.ts.map +1 -0
- package/dist/repositories/git.repository.js +117 -0
- package/dist/repositories/git.repository.js.map +1 -0
- package/dist/repositories/github.repository.d.ts +16 -0
- package/dist/repositories/github.repository.d.ts.map +1 -0
- package/dist/repositories/github.repository.js +61 -0
- package/dist/repositories/github.repository.js.map +1 -0
- package/dist/repositories/worktree.repository.d.ts +18 -0
- package/dist/repositories/worktree.repository.d.ts.map +1 -0
- package/dist/repositories/worktree.repository.js +57 -0
- package/dist/repositories/worktree.repository.js.map +1 -0
- package/dist/services/BatchMergeService.d.ts +45 -0
- package/dist/services/BatchMergeService.d.ts.map +1 -0
- package/dist/services/BatchMergeService.js +197 -0
- package/dist/services/BatchMergeService.js.map +1 -0
- package/dist/services/WorktreeOrchestrator.d.ts +37 -0
- package/dist/services/WorktreeOrchestrator.d.ts.map +1 -0
- package/dist/services/WorktreeOrchestrator.js +74 -0
- package/dist/services/WorktreeOrchestrator.js.map +1 -0
- package/dist/services/dependency-installer.d.ts +26 -0
- package/dist/services/dependency-installer.d.ts.map +1 -0
- package/dist/services/dependency-installer.js +139 -0
- package/dist/services/dependency-installer.js.map +1 -0
- package/dist/services/git.service.d.ts +27 -0
- package/dist/services/git.service.d.ts.map +1 -0
- package/dist/services/git.service.js +95 -0
- package/dist/services/git.service.js.map +1 -0
- package/dist/services/github.service.d.ts +14 -0
- package/dist/services/github.service.d.ts.map +1 -0
- package/dist/services/github.service.js +52 -0
- package/dist/services/github.service.js.map +1 -0
- package/dist/services/worktree.service.d.ts +20 -0
- package/dist/services/worktree.service.d.ts.map +1 -0
- package/dist/services/worktree.service.js +52 -0
- package/dist/services/worktree.service.js.map +1 -0
- package/dist/types/api.d.ts +211 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +8 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/tools.d.ts +201 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +8 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/utils/spinner.d.ts +6 -0
- package/dist/utils/spinner.d.ts.map +1 -0
- package/dist/utils/spinner.js +47 -0
- package/dist/utils/spinner.js.map +1 -0
- package/dist/utils/terminal.d.ts +20 -0
- package/dist/utils/terminal.d.ts.map +1 -0
- package/dist/utils/terminal.js +232 -0
- package/dist/utils/terminal.js.map +1 -0
- package/dist/utils.d.ts +9 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +48 -0
- package/dist/utils.js.map +1 -0
- package/dist/web/client/src/components/BranchGraph.d.ts +8 -0
- package/dist/web/client/src/components/BranchGraph.d.ts.map +1 -0
- package/dist/web/client/src/components/BranchGraph.js +125 -0
- package/dist/web/client/src/components/BranchGraph.js.map +1 -0
- package/dist/web/client/src/components/EnvEditor.d.ts +20 -0
- package/dist/web/client/src/components/EnvEditor.d.ts.map +1 -0
- package/dist/web/client/src/components/EnvEditor.js +65 -0
- package/dist/web/client/src/components/EnvEditor.js.map +1 -0
- package/dist/web/client/src/components/Terminal.d.ts +15 -0
- package/dist/web/client/src/components/Terminal.d.ts.map +1 -0
- package/dist/web/client/src/components/Terminal.js +112 -0
- package/dist/web/client/src/components/Terminal.js.map +1 -0
- package/dist/web/client/src/hooks/useBranches.d.ts +16 -0
- package/dist/web/client/src/hooks/useBranches.d.ts.map +1 -0
- package/dist/web/client/src/hooks/useBranches.js +35 -0
- package/dist/web/client/src/hooks/useBranches.js.map +1 -0
- package/dist/web/client/src/hooks/useConfig.d.ts +13 -0
- package/dist/web/client/src/hooks/useConfig.d.ts.map +1 -0
- package/dist/web/client/src/hooks/useConfig.js +27 -0
- package/dist/web/client/src/hooks/useConfig.js.map +1 -0
- package/dist/web/client/src/hooks/useSessions.d.ts +21 -0
- package/dist/web/client/src/hooks/useSessions.d.ts.map +1 -0
- package/dist/web/client/src/hooks/useSessions.js +49 -0
- package/dist/web/client/src/hooks/useSessions.js.map +1 -0
- package/dist/web/client/src/hooks/useWorktrees.d.ts +17 -0
- package/dist/web/client/src/hooks/useWorktrees.d.ts.map +1 -0
- package/dist/web/client/src/hooks/useWorktrees.js +41 -0
- package/dist/web/client/src/hooks/useWorktrees.js.map +1 -0
- package/dist/web/client/src/lib/api.d.ts +82 -0
- package/dist/web/client/src/lib/api.d.ts.map +1 -0
- package/dist/web/client/src/lib/api.js +147 -0
- package/dist/web/client/src/lib/api.js.map +1 -0
- package/dist/web/client/src/lib/websocket.d.ts +52 -0
- package/dist/web/client/src/lib/websocket.d.ts.map +1 -0
- package/dist/web/client/src/lib/websocket.js +137 -0
- package/dist/web/client/src/lib/websocket.js.map +1 -0
- package/dist/web/client/src/main.d.ts +2 -0
- package/dist/web/client/src/main.d.ts.map +1 -0
- package/dist/web/client/src/main.js +23 -0
- package/dist/web/client/src/main.js.map +1 -0
- package/dist/web/client/src/pages/BranchDetailPage.d.ts +3 -0
- package/dist/web/client/src/pages/BranchDetailPage.d.ts.map +1 -0
- package/dist/web/client/src/pages/BranchDetailPage.js +519 -0
- package/dist/web/client/src/pages/BranchDetailPage.js.map +1 -0
- package/dist/web/client/src/pages/BranchListPage.d.ts +3 -0
- package/dist/web/client/src/pages/BranchListPage.d.ts.map +1 -0
- package/dist/web/client/src/pages/BranchListPage.js +150 -0
- package/dist/web/client/src/pages/BranchListPage.js.map +1 -0
- package/dist/web/client/src/pages/ConfigManagementPage.d.ts +3 -0
- package/dist/web/client/src/pages/ConfigManagementPage.d.ts.map +1 -0
- package/dist/web/client/src/pages/ConfigManagementPage.js +125 -0
- package/dist/web/client/src/pages/ConfigManagementPage.js.map +1 -0
- package/dist/web/client/src/router.d.ts +9 -0
- package/dist/web/client/src/router.d.ts.map +1 -0
- package/dist/web/client/src/router.js +27 -0
- package/dist/web/client/src/router.js.map +1 -0
- package/dist/web/client/vite.config.d.ts +3 -0
- package/dist/web/client/vite.config.d.ts.map +1 -0
- package/dist/web/client/vite.config.js +21 -0
- package/dist/web/client/vite.config.js.map +1 -0
- package/dist/web/server/env/importer.d.ts +3 -0
- package/dist/web/server/env/importer.d.ts.map +1 -0
- package/dist/web/server/env/importer.js +47 -0
- package/dist/web/server/env/importer.js.map +1 -0
- package/dist/web/server/index.d.ts +11 -0
- package/dist/web/server/index.d.ts.map +1 -0
- package/dist/web/server/index.js +62 -0
- package/dist/web/server/index.js.map +1 -0
- package/dist/web/server/pty/manager.d.ts +50 -0
- package/dist/web/server/pty/manager.d.ts.map +1 -0
- package/dist/web/server/pty/manager.js +143 -0
- package/dist/web/server/pty/manager.js.map +1 -0
- package/dist/web/server/routes/branches.d.ts +11 -0
- package/dist/web/server/routes/branches.d.ts.map +1 -0
- package/dist/web/server/routes/branches.js +97 -0
- package/dist/web/server/routes/branches.js.map +1 -0
- package/dist/web/server/routes/config.d.ts +6 -0
- package/dist/web/server/routes/config.d.ts.map +1 -0
- package/dist/web/server/routes/config.js +162 -0
- package/dist/web/server/routes/config.js.map +1 -0
- package/dist/web/server/routes/index.d.ts +13 -0
- package/dist/web/server/routes/index.d.ts.map +1 -0
- package/dist/web/server/routes/index.js +29 -0
- package/dist/web/server/routes/index.js.map +1 -0
- package/dist/web/server/routes/sessions.d.ts +12 -0
- package/dist/web/server/routes/sessions.d.ts.map +1 -0
- package/dist/web/server/routes/sessions.js +95 -0
- package/dist/web/server/routes/sessions.js.map +1 -0
- package/dist/web/server/routes/worktrees.d.ts +11 -0
- package/dist/web/server/routes/worktrees.d.ts.map +1 -0
- package/dist/web/server/routes/worktrees.js +80 -0
- package/dist/web/server/routes/worktrees.js.map +1 -0
- package/dist/web/server/services/branches.d.ts +17 -0
- package/dist/web/server/services/branches.d.ts.map +1 -0
- package/dist/web/server/services/branches.js +262 -0
- package/dist/web/server/services/branches.js.map +1 -0
- package/dist/web/server/services/worktrees.d.ts +24 -0
- package/dist/web/server/services/worktrees.d.ts.map +1 -0
- package/dist/web/server/services/worktrees.js +60 -0
- package/dist/web/server/services/worktrees.js.map +1 -0
- package/dist/web/server/websocket/handler.d.ts +41 -0
- package/dist/web/server/websocket/handler.d.ts.map +1 -0
- package/dist/web/server/websocket/handler.js +143 -0
- package/dist/web/server/websocket/handler.js.map +1 -0
- package/dist/worktree.d.ts +53 -0
- package/dist/worktree.d.ts.map +1 -0
- package/dist/worktree.js +489 -0
- package/dist/worktree.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
export interface WorktreeInfo {
|
|
2
|
+
path: string;
|
|
3
|
+
locked: boolean;
|
|
4
|
+
prunable: boolean;
|
|
5
|
+
isAccessible?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface BranchInfo {
|
|
8
|
+
name: string;
|
|
9
|
+
type: "local" | "remote";
|
|
10
|
+
branchType: "feature" | "hotfix" | "release" | "main" | "develop" | "other";
|
|
11
|
+
isCurrent: boolean;
|
|
12
|
+
description?: string;
|
|
13
|
+
worktree?: WorktreeInfo;
|
|
14
|
+
hasUnpushedCommits?: boolean;
|
|
15
|
+
openPR?: {
|
|
16
|
+
number: number;
|
|
17
|
+
title: string;
|
|
18
|
+
};
|
|
19
|
+
mergedPR?: {
|
|
20
|
+
number: number;
|
|
21
|
+
mergedAt: string;
|
|
22
|
+
};
|
|
23
|
+
latestCommitTimestamp?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface BranchChoice {
|
|
26
|
+
name: string;
|
|
27
|
+
value: string;
|
|
28
|
+
description?: string;
|
|
29
|
+
disabled?: boolean | string;
|
|
30
|
+
}
|
|
31
|
+
export interface EnhancedBranchChoice extends BranchChoice {
|
|
32
|
+
hasWorktree: boolean;
|
|
33
|
+
worktreePath?: string;
|
|
34
|
+
branchType: BranchInfo["branchType"];
|
|
35
|
+
branchDataType: "local" | "remote";
|
|
36
|
+
isCurrent: boolean;
|
|
37
|
+
}
|
|
38
|
+
export type BranchType = "feature" | "hotfix" | "release" | "main" | "develop" | "other";
|
|
39
|
+
export interface NewBranchConfig {
|
|
40
|
+
type: BranchType;
|
|
41
|
+
taskName: string;
|
|
42
|
+
branchName: string;
|
|
43
|
+
}
|
|
44
|
+
export interface WorktreeConfig {
|
|
45
|
+
branchName: string;
|
|
46
|
+
worktreePath: string;
|
|
47
|
+
repoRoot: string;
|
|
48
|
+
isNewBranch: boolean;
|
|
49
|
+
baseBranch: string;
|
|
50
|
+
}
|
|
51
|
+
export interface CleanupResult {
|
|
52
|
+
hasChanges: boolean;
|
|
53
|
+
committed: boolean;
|
|
54
|
+
pushed: boolean;
|
|
55
|
+
worktreeRemoved: boolean;
|
|
56
|
+
}
|
|
57
|
+
export interface BranchGroup {
|
|
58
|
+
title: string;
|
|
59
|
+
branches: EnhancedBranchChoice[];
|
|
60
|
+
priority: number;
|
|
61
|
+
}
|
|
62
|
+
export interface SelectedBranchState {
|
|
63
|
+
name: string;
|
|
64
|
+
displayName: string;
|
|
65
|
+
branchType: "local" | "remote";
|
|
66
|
+
branchCategory: BranchInfo["branchType"];
|
|
67
|
+
remoteBranch?: string;
|
|
68
|
+
}
|
|
69
|
+
export interface UIFilter {
|
|
70
|
+
showWithWorktree: boolean;
|
|
71
|
+
showWithoutWorktree: boolean;
|
|
72
|
+
branchTypes: BranchInfo["branchType"][];
|
|
73
|
+
showLocal: boolean;
|
|
74
|
+
showRemote: boolean;
|
|
75
|
+
}
|
|
76
|
+
export interface PullRequest {
|
|
77
|
+
number: number;
|
|
78
|
+
title: string;
|
|
79
|
+
state: "OPEN" | "CLOSED" | "MERGED";
|
|
80
|
+
branch: string;
|
|
81
|
+
mergedAt: string | null;
|
|
82
|
+
author: string;
|
|
83
|
+
baseRefName?: string | null;
|
|
84
|
+
}
|
|
85
|
+
export interface MergedPullRequest {
|
|
86
|
+
number: number;
|
|
87
|
+
title: string;
|
|
88
|
+
branch: string;
|
|
89
|
+
mergedAt: string;
|
|
90
|
+
author: string;
|
|
91
|
+
}
|
|
92
|
+
export interface WorktreeWithPR {
|
|
93
|
+
worktreePath: string;
|
|
94
|
+
branch: string;
|
|
95
|
+
pullRequest: PullRequest | null;
|
|
96
|
+
}
|
|
97
|
+
export type CleanupReason = "merged-pr" | "no-diff-with-base";
|
|
98
|
+
export interface CleanupTarget {
|
|
99
|
+
worktreePath: string | null;
|
|
100
|
+
branch: string;
|
|
101
|
+
pullRequest: MergedPullRequest | null;
|
|
102
|
+
hasUncommittedChanges: boolean;
|
|
103
|
+
hasUnpushedCommits: boolean;
|
|
104
|
+
cleanupType: "worktree-and-branch" | "branch-only";
|
|
105
|
+
hasRemoteBranch?: boolean;
|
|
106
|
+
isAccessible?: boolean;
|
|
107
|
+
invalidReason?: string;
|
|
108
|
+
reasons?: CleanupReason[];
|
|
109
|
+
}
|
|
110
|
+
export interface GitHubPRAuthor {
|
|
111
|
+
id?: string;
|
|
112
|
+
is_bot?: boolean;
|
|
113
|
+
login?: string;
|
|
114
|
+
name?: string;
|
|
115
|
+
}
|
|
116
|
+
export interface GitHubPRResponse {
|
|
117
|
+
number: number;
|
|
118
|
+
title: string;
|
|
119
|
+
state: string;
|
|
120
|
+
headRefName: string;
|
|
121
|
+
mergedAt: string | null;
|
|
122
|
+
author: GitHubPRAuthor | null;
|
|
123
|
+
baseRefName?: string | null;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Screen types for Ink.js UI
|
|
127
|
+
*/
|
|
128
|
+
export type ScreenType = "branch-list" | "worktree-manager" | "branch-creator" | "branch-action-selector" | "ai-tool-selector" | "session-selector" | "execution-mode-selector" | "batch-merge-progress" | "batch-merge-result";
|
|
129
|
+
/**
|
|
130
|
+
* Branch action types for action selector screen
|
|
131
|
+
*/
|
|
132
|
+
export type BranchAction = "use-existing" | "create-new";
|
|
133
|
+
export type ScreenState = "active" | "hidden";
|
|
134
|
+
export interface Screen {
|
|
135
|
+
type: ScreenType;
|
|
136
|
+
state: ScreenState;
|
|
137
|
+
data?: unknown;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* BranchItem - Extended BranchInfo for display purposes
|
|
141
|
+
*/
|
|
142
|
+
export type WorktreeStatus = "active" | "inaccessible" | undefined;
|
|
143
|
+
export interface BranchItem extends BranchInfo {
|
|
144
|
+
icons: string[];
|
|
145
|
+
worktreeStatus?: WorktreeStatus;
|
|
146
|
+
hasChanges: boolean;
|
|
147
|
+
label: string;
|
|
148
|
+
value: string;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Statistics - Real-time statistics
|
|
152
|
+
*/
|
|
153
|
+
export interface Statistics {
|
|
154
|
+
localCount: number;
|
|
155
|
+
remoteCount: number;
|
|
156
|
+
worktreeCount: number;
|
|
157
|
+
changesCount: number;
|
|
158
|
+
lastUpdated: Date;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Layout - Dynamic layout information
|
|
162
|
+
*/
|
|
163
|
+
export interface Layout {
|
|
164
|
+
terminalHeight: number;
|
|
165
|
+
terminalWidth: number;
|
|
166
|
+
headerLines: number;
|
|
167
|
+
footerLines: number;
|
|
168
|
+
contentHeight: number;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* BatchMergeConfig - Configuration for batch merge execution
|
|
172
|
+
* @see specs/SPEC-ee33ca26/data-model.md
|
|
173
|
+
*/
|
|
174
|
+
export interface BatchMergeConfig {
|
|
175
|
+
sourceBranch: string;
|
|
176
|
+
targetBranches: string[];
|
|
177
|
+
dryRun: boolean;
|
|
178
|
+
autoPush: boolean;
|
|
179
|
+
remote?: string;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* MergePhase - Current phase of merge operation
|
|
183
|
+
* @see specs/SPEC-ee33ca26/data-model.md
|
|
184
|
+
*/
|
|
185
|
+
export type MergePhase = "fetch" | "worktree" | "merge" | "push" | "cleanup";
|
|
186
|
+
/**
|
|
187
|
+
* BatchMergeProgress - Real-time progress information
|
|
188
|
+
* @see specs/SPEC-ee33ca26/data-model.md
|
|
189
|
+
*/
|
|
190
|
+
export interface BatchMergeProgress {
|
|
191
|
+
currentBranch: string;
|
|
192
|
+
currentIndex: number;
|
|
193
|
+
totalBranches: number;
|
|
194
|
+
percentage: number;
|
|
195
|
+
elapsedSeconds: number;
|
|
196
|
+
estimatedRemainingSeconds?: number;
|
|
197
|
+
currentPhase: MergePhase;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* MergeStatus - Status of individual branch merge
|
|
201
|
+
* @see specs/SPEC-ee33ca26/data-model.md
|
|
202
|
+
*/
|
|
203
|
+
export type MergeStatus = "success" | "skipped" | "failed";
|
|
204
|
+
/**
|
|
205
|
+
* PushStatus - Status of push operation
|
|
206
|
+
* @see specs/SPEC-ee33ca26/data-model.md
|
|
207
|
+
*/
|
|
208
|
+
export type PushStatus = "success" | "failed" | "not_executed";
|
|
209
|
+
/**
|
|
210
|
+
* BranchMergeStatus - Individual branch merge result
|
|
211
|
+
* @see specs/SPEC-ee33ca26/data-model.md
|
|
212
|
+
*/
|
|
213
|
+
export interface BranchMergeStatus {
|
|
214
|
+
branchName: string;
|
|
215
|
+
status: MergeStatus;
|
|
216
|
+
error?: string;
|
|
217
|
+
conflictFiles?: string[];
|
|
218
|
+
pushStatus?: PushStatus;
|
|
219
|
+
worktreeCreated: boolean;
|
|
220
|
+
durationSeconds: number;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* BatchMergeSummary - Summary statistics
|
|
224
|
+
* @see specs/SPEC-ee33ca26/data-model.md
|
|
225
|
+
*/
|
|
226
|
+
export interface BatchMergeSummary {
|
|
227
|
+
totalCount: number;
|
|
228
|
+
successCount: number;
|
|
229
|
+
skippedCount: number;
|
|
230
|
+
failedCount: number;
|
|
231
|
+
pushedCount: number;
|
|
232
|
+
pushFailedCount: number;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* BatchMergeResult - Final batch merge result
|
|
236
|
+
* @see specs/SPEC-ee33ca26/data-model.md
|
|
237
|
+
*/
|
|
238
|
+
export interface BatchMergeResult {
|
|
239
|
+
statuses: BranchMergeStatus[];
|
|
240
|
+
summary: BatchMergeSummary;
|
|
241
|
+
totalDurationSeconds: number;
|
|
242
|
+
cancelled: boolean;
|
|
243
|
+
config: BatchMergeConfig;
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cli/ui/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { SelectedBranchState } from "../types.js";
|
|
2
|
+
export declare function resolveBaseBranchRef(creationSource: SelectedBranchState | null, selectedBranch: SelectedBranchState | null, resolveDefault: () => string): string;
|
|
3
|
+
export declare function resolveBaseBranchLabel(creationSource: SelectedBranchState | null, selectedBranch: SelectedBranchState | null, resolveDefault: () => string): string;
|
|
4
|
+
//# sourceMappingURL=baseBranch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseBranch.d.ts","sourceRoot":"","sources":["../../../../src/cli/ui/utils/baseBranch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAWvD,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,mBAAmB,GAAG,IAAI,EAC1C,cAAc,EAAE,mBAAmB,GAAG,IAAI,EAC1C,cAAc,EAAE,MAAM,MAAM,GAC3B,MAAM,CAMR;AAED,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,mBAAmB,GAAG,IAAI,EAC1C,cAAc,EAAE,mBAAmB,GAAG,IAAI,EAC1C,cAAc,EAAE,MAAM,MAAM,GAC3B,MAAM,CAMR"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
function getBranchRef(branch) {
|
|
2
|
+
if (!branch) {
|
|
3
|
+
return null;
|
|
4
|
+
}
|
|
5
|
+
return branch.remoteBranch ?? branch.name;
|
|
6
|
+
}
|
|
7
|
+
export function resolveBaseBranchRef(creationSource, selectedBranch, resolveDefault) {
|
|
8
|
+
return (getBranchRef(creationSource) ??
|
|
9
|
+
getBranchRef(selectedBranch) ??
|
|
10
|
+
resolveDefault());
|
|
11
|
+
}
|
|
12
|
+
export function resolveBaseBranchLabel(creationSource, selectedBranch, resolveDefault) {
|
|
13
|
+
return (creationSource?.displayName ??
|
|
14
|
+
selectedBranch?.displayName ??
|
|
15
|
+
resolveDefault());
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=baseBranch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseBranch.js","sourceRoot":"","sources":["../../../../src/cli/ui/utils/baseBranch.ts"],"names":[],"mappings":"AAEA,SAAS,YAAY,CACnB,MAA8C;IAE9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,cAA0C,EAC1C,cAA0C,EAC1C,cAA4B;IAE5B,OAAO,CACL,YAAY,CAAC,cAAc,CAAC;QAC5B,YAAY,CAAC,cAAc,CAAC;QAC5B,cAAc,EAAE,CACjB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,cAA0C,EAC1C,cAA0C,EAC1C,cAA4B;IAE5B,OAAO,CACL,cAAc,EAAE,WAAW;QAC3B,cAAc,EAAE,WAAW;QAC3B,cAAc,EAAE,CACjB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { BranchInfo, BranchItem, WorktreeInfo } from "../types.js";
|
|
2
|
+
export interface FormatOptions {
|
|
3
|
+
hasChanges?: boolean;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Converts BranchInfo to BranchItem with display properties
|
|
7
|
+
*/
|
|
8
|
+
export declare function formatBranchItem(branch: BranchInfo, options?: FormatOptions): BranchItem;
|
|
9
|
+
/**
|
|
10
|
+
* Converts an array of BranchInfo to BranchItem array with sorting
|
|
11
|
+
*/
|
|
12
|
+
export declare function formatBranchItems(branches: BranchInfo[], worktreeMap?: Map<string, WorktreeInfo>): BranchItem[];
|
|
13
|
+
//# sourceMappingURL=branchFormatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branchFormatter.d.ts","sourceRoot":"","sources":["../../../../src/cli/ui/utils/branchFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EAGV,YAAY,EACb,MAAM,aAAa,CAAC;AAyCrB,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,aAAkB,GAC1B,UAAU,CAiGZ;AA0DD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,UAAU,EAAE,EACtB,WAAW,GAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAa,GACjD,UAAU,EAAE,CAGd"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import stringWidth from "string-width";
|
|
2
|
+
// Icon mappings
|
|
3
|
+
const branchIcons = {
|
|
4
|
+
main: "⚡",
|
|
5
|
+
develop: "⚡",
|
|
6
|
+
feature: "✨",
|
|
7
|
+
hotfix: "🔥",
|
|
8
|
+
release: "🚀",
|
|
9
|
+
other: "📌",
|
|
10
|
+
};
|
|
11
|
+
const worktreeIcons = {
|
|
12
|
+
active: "🟢",
|
|
13
|
+
inaccessible: "🟠",
|
|
14
|
+
};
|
|
15
|
+
const changeIcons = {
|
|
16
|
+
current: "⭐",
|
|
17
|
+
hasChanges: "✏️",
|
|
18
|
+
unpushed: "⬆️",
|
|
19
|
+
openPR: "🔀",
|
|
20
|
+
mergedPR: "✅",
|
|
21
|
+
warning: "⚠️",
|
|
22
|
+
};
|
|
23
|
+
const remoteIcon = "☁";
|
|
24
|
+
// Some icons are treated as double-width by string-width even though they render
|
|
25
|
+
// as a single column in many terminals (e.g. ☁). Provide explicit overrides to
|
|
26
|
+
// keep the column layout consistent across environments.
|
|
27
|
+
const iconWidthOverrides = {
|
|
28
|
+
[remoteIcon]: 1,
|
|
29
|
+
"☁️": 1,
|
|
30
|
+
"☁︎": 1,
|
|
31
|
+
"⬆️": 1,
|
|
32
|
+
"⬆︎": 1,
|
|
33
|
+
"⬆": 1,
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Converts BranchInfo to BranchItem with display properties
|
|
37
|
+
*/
|
|
38
|
+
export function formatBranchItem(branch, options = {}) {
|
|
39
|
+
const hasChanges = options.hasChanges ?? false;
|
|
40
|
+
const COLUMN_WIDTH = 2; // Fixed width for each icon column
|
|
41
|
+
// Helper to pad icon to fixed width
|
|
42
|
+
const padIcon = (icon) => {
|
|
43
|
+
const width = iconWidthOverrides[icon] ?? stringWidth(icon);
|
|
44
|
+
const padding = Math.max(0, COLUMN_WIDTH - width);
|
|
45
|
+
return icon + " ".repeat(padding);
|
|
46
|
+
};
|
|
47
|
+
// Column 1: Branch type icon (always present)
|
|
48
|
+
const branchTypeIcon = padIcon(branchIcons[branch.branchType]);
|
|
49
|
+
// Column 2: Worktree status icon
|
|
50
|
+
let worktreeStatus;
|
|
51
|
+
let worktreeIcon;
|
|
52
|
+
if (branch.worktree) {
|
|
53
|
+
if (branch.worktree.isAccessible === false) {
|
|
54
|
+
worktreeStatus = "inaccessible";
|
|
55
|
+
worktreeIcon = padIcon(worktreeIcons.inaccessible);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
worktreeStatus = "active";
|
|
59
|
+
worktreeIcon = padIcon(worktreeIcons.active);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
worktreeIcon = " ".repeat(COLUMN_WIDTH);
|
|
64
|
+
}
|
|
65
|
+
// Column 3: Change status icon (priority: ✏️ > ⬆️ > 🔀 > ✅ > ⚠️ > ⭐)
|
|
66
|
+
let changesIcon;
|
|
67
|
+
if (hasChanges) {
|
|
68
|
+
changesIcon = padIcon(changeIcons.hasChanges);
|
|
69
|
+
}
|
|
70
|
+
else if (branch.hasUnpushedCommits) {
|
|
71
|
+
changesIcon = padIcon(changeIcons.unpushed);
|
|
72
|
+
}
|
|
73
|
+
else if (branch.openPR) {
|
|
74
|
+
changesIcon = padIcon(changeIcons.openPR);
|
|
75
|
+
}
|
|
76
|
+
else if (branch.mergedPR) {
|
|
77
|
+
changesIcon = padIcon(changeIcons.mergedPR);
|
|
78
|
+
}
|
|
79
|
+
else if (branch.worktree?.isAccessible === false) {
|
|
80
|
+
changesIcon = padIcon(changeIcons.warning);
|
|
81
|
+
}
|
|
82
|
+
else if (branch.isCurrent) {
|
|
83
|
+
changesIcon = padIcon(changeIcons.current);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
changesIcon = " ".repeat(COLUMN_WIDTH);
|
|
87
|
+
}
|
|
88
|
+
// Column 4: Remote icon
|
|
89
|
+
let remoteIconStr;
|
|
90
|
+
if (branch.type === "remote") {
|
|
91
|
+
remoteIconStr = padIcon(remoteIcon);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
remoteIconStr = " ".repeat(COLUMN_WIDTH);
|
|
95
|
+
}
|
|
96
|
+
// Build label with fixed-width columns
|
|
97
|
+
// Format: [Type][Worktree][Changes][Remote] BranchName
|
|
98
|
+
const label = `${branchTypeIcon}${worktreeIcon}${changesIcon}${remoteIconStr}${branch.name}`;
|
|
99
|
+
// Collect icons for compatibility
|
|
100
|
+
const icons = [];
|
|
101
|
+
icons.push(branchIcons[branch.branchType]);
|
|
102
|
+
if (worktreeStatus) {
|
|
103
|
+
icons.push(worktreeStatus === "active"
|
|
104
|
+
? worktreeIcons.active
|
|
105
|
+
: worktreeIcons.inaccessible);
|
|
106
|
+
}
|
|
107
|
+
// Add change icon based on priority
|
|
108
|
+
if (hasChanges) {
|
|
109
|
+
icons.push(changeIcons.hasChanges);
|
|
110
|
+
}
|
|
111
|
+
else if (branch.hasUnpushedCommits) {
|
|
112
|
+
icons.push(changeIcons.unpushed);
|
|
113
|
+
}
|
|
114
|
+
else if (branch.openPR) {
|
|
115
|
+
icons.push(changeIcons.openPR);
|
|
116
|
+
}
|
|
117
|
+
else if (branch.mergedPR) {
|
|
118
|
+
icons.push(changeIcons.mergedPR);
|
|
119
|
+
}
|
|
120
|
+
else if (branch.worktree?.isAccessible === false) {
|
|
121
|
+
icons.push(changeIcons.warning);
|
|
122
|
+
}
|
|
123
|
+
else if (branch.isCurrent) {
|
|
124
|
+
icons.push(changeIcons.current);
|
|
125
|
+
}
|
|
126
|
+
if (branch.type === "remote") {
|
|
127
|
+
icons.push(remoteIcon);
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
// Copy all properties from BranchInfo
|
|
131
|
+
...branch,
|
|
132
|
+
// Add display properties
|
|
133
|
+
icons,
|
|
134
|
+
worktreeStatus,
|
|
135
|
+
hasChanges,
|
|
136
|
+
label,
|
|
137
|
+
value: branch.name,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Sorts branches according to the priority rules:
|
|
142
|
+
* 1. Current branch (highest priority)
|
|
143
|
+
* 2. main branch
|
|
144
|
+
* 3. develop branch (only if main exists)
|
|
145
|
+
* 4. Branches with worktree
|
|
146
|
+
* 5. Latest commit timestamp (descending) within same worktree status
|
|
147
|
+
* 6. Local branches
|
|
148
|
+
* 7. Alphabetical order by name
|
|
149
|
+
*/
|
|
150
|
+
function sortBranches(branches, worktreeMap) {
|
|
151
|
+
// Check if main branch exists
|
|
152
|
+
const hasMainBranch = branches.some((b) => b.branchType === "main");
|
|
153
|
+
return [...branches].sort((a, b) => {
|
|
154
|
+
// 1. Current branch is highest priority
|
|
155
|
+
if (a.isCurrent && !b.isCurrent)
|
|
156
|
+
return -1;
|
|
157
|
+
if (!a.isCurrent && b.isCurrent)
|
|
158
|
+
return 1;
|
|
159
|
+
// 2. main branch is second priority
|
|
160
|
+
if (a.branchType === "main" && b.branchType !== "main")
|
|
161
|
+
return -1;
|
|
162
|
+
if (a.branchType !== "main" && b.branchType === "main")
|
|
163
|
+
return 1;
|
|
164
|
+
// 3. develop branch is third priority (only if main exists)
|
|
165
|
+
if (hasMainBranch) {
|
|
166
|
+
if (a.branchType === "develop" && b.branchType !== "develop")
|
|
167
|
+
return -1;
|
|
168
|
+
if (a.branchType !== "develop" && b.branchType === "develop")
|
|
169
|
+
return 1;
|
|
170
|
+
}
|
|
171
|
+
// 4. Branches with worktree are prioritized
|
|
172
|
+
const aHasWorktree = worktreeMap.has(a.name) || !!a.worktree;
|
|
173
|
+
const bHasWorktree = worktreeMap.has(b.name) || !!b.worktree;
|
|
174
|
+
if (aHasWorktree && !bHasWorktree)
|
|
175
|
+
return -1;
|
|
176
|
+
if (!aHasWorktree && bHasWorktree)
|
|
177
|
+
return 1;
|
|
178
|
+
// 5. Prioritize most recent commit within same worktree status
|
|
179
|
+
const aCommit = a.latestCommitTimestamp ?? 0;
|
|
180
|
+
const bCommit = b.latestCommitTimestamp ?? 0;
|
|
181
|
+
if (aCommit !== bCommit) {
|
|
182
|
+
return bCommit - aCommit;
|
|
183
|
+
}
|
|
184
|
+
// 6. Local branches are prioritized over remote-only
|
|
185
|
+
const aIsLocal = a.type === "local";
|
|
186
|
+
const bIsLocal = b.type === "local";
|
|
187
|
+
if (aIsLocal && !bIsLocal)
|
|
188
|
+
return -1;
|
|
189
|
+
if (!aIsLocal && bIsLocal)
|
|
190
|
+
return 1;
|
|
191
|
+
// 7. Alphabetical order by name
|
|
192
|
+
return a.name.localeCompare(b.name);
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Converts an array of BranchInfo to BranchItem array with sorting
|
|
197
|
+
*/
|
|
198
|
+
export function formatBranchItems(branches, worktreeMap = new Map()) {
|
|
199
|
+
const sortedBranches = sortBranches(branches, worktreeMap);
|
|
200
|
+
return sortedBranches.map((branch) => formatBranchItem(branch));
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=branchFormatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branchFormatter.js","sourceRoot":"","sources":["../../../../src/cli/ui/utils/branchFormatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BranchInfo, Statistics } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Calculates statistics from branch data
|
|
4
|
+
* @param branches Array of BranchInfo
|
|
5
|
+
* @param changedBranches Optional set of branch names with uncommitted changes
|
|
6
|
+
* @returns Statistics object
|
|
7
|
+
*/
|
|
8
|
+
export declare function calculateStatistics(branches: BranchInfo[], changedBranches?: Set<string>): Statistics;
|
|
9
|
+
//# sourceMappingURL=statisticsCalculator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statisticsCalculator.d.ts","sourceRoot":"","sources":["../../../../src/cli/ui/utils/statisticsCalculator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,UAAU,EAAE,EACtB,eAAe,GAAE,GAAG,CAAC,MAAM,CAAa,GACvC,UAAU,CAgCZ"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculates statistics from branch data
|
|
3
|
+
* @param branches Array of BranchInfo
|
|
4
|
+
* @param changedBranches Optional set of branch names with uncommitted changes
|
|
5
|
+
* @returns Statistics object
|
|
6
|
+
*/
|
|
7
|
+
export function calculateStatistics(branches, changedBranches = new Set()) {
|
|
8
|
+
let localCount = 0;
|
|
9
|
+
let remoteCount = 0;
|
|
10
|
+
let worktreeCount = 0;
|
|
11
|
+
let changesCount = 0;
|
|
12
|
+
for (const branch of branches) {
|
|
13
|
+
// Count by type
|
|
14
|
+
if (branch.type === "local") {
|
|
15
|
+
localCount++;
|
|
16
|
+
// Count worktrees (only for local branches)
|
|
17
|
+
if (branch.worktree) {
|
|
18
|
+
worktreeCount++;
|
|
19
|
+
// Count changes (only for branches with worktrees)
|
|
20
|
+
if (changedBranches.has(branch.name)) {
|
|
21
|
+
changesCount++;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
else if (branch.type === "remote") {
|
|
26
|
+
remoteCount++;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
localCount,
|
|
31
|
+
remoteCount,
|
|
32
|
+
worktreeCount,
|
|
33
|
+
changesCount,
|
|
34
|
+
lastUpdated: new Date(),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=statisticsCalculator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statisticsCalculator.js","sourceRoot":"","sources":["../../../../src/cli/ui/utils/statisticsCalculator.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAsB,EACtB,kBAA+B,IAAI,GAAG,EAAE;IAExC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,gBAAgB;QAChB,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,UAAU,EAAE,CAAC;YAEb,4CAA4C;YAC5C,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,aAAa,EAAE,CAAC;gBAEhB,mDAAmD;gBACnD,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrC,YAAY,EAAE,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpC,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO;QACL,UAAU;QACV,WAAW;QACX,aAAa;QACb,YAAY;QACZ,WAAW,EAAE,IAAI,IAAI,EAAE;KACxB,CAAC;AACJ,CAAC"}
|