claude-code-plus-plus 0.2.1 → 0.2.2
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/package.json +1 -1
- package/dist/app.d.ts +0 -52
- package/dist/app.d.ts.map +0 -1
- package/dist/app.js +0 -318
- package/dist/app.js.map +0 -1
- package/dist/core/index.d.ts +0 -14
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -14
- package/dist/core/index.js.map +0 -1
- package/dist/core/session/index.d.ts +0 -7
- package/dist/core/session/index.d.ts.map +0 -1
- package/dist/core/session/index.js +0 -6
- package/dist/core/session/index.js.map +0 -1
- package/dist/core/session/session-manager.d.ts +0 -46
- package/dist/core/session/session-manager.d.ts.map +0 -1
- package/dist/core/session/session-manager.js +0 -245
- package/dist/core/session/session-manager.js.map +0 -1
- package/dist/core/session/session.d.ts +0 -44
- package/dist/core/session/session.d.ts.map +0 -1
- package/dist/core/session/session.js +0 -78
- package/dist/core/session/session.js.map +0 -1
- package/dist/core/terminal/index.d.ts +0 -7
- package/dist/core/terminal/index.d.ts.map +0 -1
- package/dist/core/terminal/index.js +0 -6
- package/dist/core/terminal/index.js.map +0 -1
- package/dist/core/terminal/terminal-manager.d.ts +0 -36
- package/dist/core/terminal/terminal-manager.d.ts.map +0 -1
- package/dist/core/terminal/terminal-manager.js +0 -182
- package/dist/core/terminal/terminal-manager.js.map +0 -1
- package/dist/core/terminal/terminal.d.ts +0 -27
- package/dist/core/terminal/terminal.d.ts.map +0 -1
- package/dist/core/terminal/terminal.js +0 -38
- package/dist/core/terminal/terminal.js.map +0 -1
- package/dist/core/workspace/index.d.ts +0 -7
- package/dist/core/workspace/index.d.ts.map +0 -1
- package/dist/core/workspace/index.js +0 -6
- package/dist/core/workspace/index.js.map +0 -1
- package/dist/core/workspace/workspace-manager.d.ts +0 -59
- package/dist/core/workspace/workspace-manager.d.ts.map +0 -1
- package/dist/core/workspace/workspace-manager.js +0 -224
- package/dist/core/workspace/workspace-manager.js.map +0 -1
- package/dist/core/workspace/workspace.d.ts +0 -56
- package/dist/core/workspace/workspace.d.ts.map +0 -1
- package/dist/core/workspace/workspace.js +0 -96
- package/dist/core/workspace/workspace.js.map +0 -1
- package/dist/core/worktree/index.d.ts +0 -7
- package/dist/core/worktree/index.d.ts.map +0 -1
- package/dist/core/worktree/index.js +0 -6
- package/dist/core/worktree/index.js.map +0 -1
- package/dist/core/worktree/worktree-manager.d.ts +0 -47
- package/dist/core/worktree/worktree-manager.d.ts.map +0 -1
- package/dist/core/worktree/worktree-manager.js +0 -170
- package/dist/core/worktree/worktree-manager.js.map +0 -1
- package/dist/core/worktree/worktree.d.ts +0 -35
- package/dist/core/worktree/worktree.d.ts.map +0 -1
- package/dist/core/worktree/worktree.js +0 -50
- package/dist/core/worktree/worktree.js.map +0 -1
- package/dist/core/worktree-manager.d.ts +0 -26
- package/dist/core/worktree-manager.d.ts.map +0 -1
- package/dist/core/worktree-manager.js +0 -177
- package/dist/core/worktree-manager.js.map +0 -1
- package/dist/events/bus.d.ts +0 -76
- package/dist/events/bus.d.ts.map +0 -1
- package/dist/events/bus.js +0 -223
- package/dist/events/bus.js.map +0 -1
- package/dist/events/handlers/index.d.ts +0 -28
- package/dist/events/handlers/index.d.ts.map +0 -1
- package/dist/events/handlers/index.js +0 -44
- package/dist/events/handlers/index.js.map +0 -1
- package/dist/events/handlers/session-events.d.ts +0 -12
- package/dist/events/handlers/session-events.d.ts.map +0 -1
- package/dist/events/handlers/session-events.js +0 -38
- package/dist/events/handlers/session-events.js.map +0 -1
- package/dist/events/handlers/terminal-events.d.ts +0 -12
- package/dist/events/handlers/terminal-events.d.ts.map +0 -1
- package/dist/events/handlers/terminal-events.js +0 -37
- package/dist/events/handlers/terminal-events.js.map +0 -1
- package/dist/events/handlers/ui-events.d.ts +0 -11
- package/dist/events/handlers/ui-events.d.ts.map +0 -1
- package/dist/events/handlers/ui-events.js +0 -202
- package/dist/events/handlers/ui-events.js.map +0 -1
- package/dist/events/index.d.ts +0 -9
- package/dist/events/index.d.ts.map +0 -1
- package/dist/events/index.js +0 -10
- package/dist/events/index.js.map +0 -1
- package/dist/multiplexer/base.d.ts +0 -73
- package/dist/multiplexer/base.d.ts.map +0 -1
- package/dist/multiplexer/base.js +0 -68
- package/dist/multiplexer/base.js.map +0 -1
- package/dist/multiplexer/factory.d.ts +0 -28
- package/dist/multiplexer/factory.d.ts.map +0 -1
- package/dist/multiplexer/factory.js +0 -72
- package/dist/multiplexer/factory.js.map +0 -1
- package/dist/multiplexer/index.d.ts +0 -14
- package/dist/multiplexer/index.d.ts.map +0 -1
- package/dist/multiplexer/index.js +0 -15
- package/dist/multiplexer/index.js.map +0 -1
- package/dist/multiplexer/tmux/index.d.ts +0 -9
- package/dist/multiplexer/tmux/index.d.ts.map +0 -1
- package/dist/multiplexer/tmux/index.js +0 -7
- package/dist/multiplexer/tmux/index.js.map +0 -1
- package/dist/multiplexer/tmux/tmux-commands.d.ts +0 -96
- package/dist/multiplexer/tmux/tmux-commands.d.ts.map +0 -1
- package/dist/multiplexer/tmux/tmux-commands.js +0 -282
- package/dist/multiplexer/tmux/tmux-commands.js.map +0 -1
- package/dist/multiplexer/tmux/tmux-config.d.ts +0 -57
- package/dist/multiplexer/tmux/tmux-config.d.ts.map +0 -1
- package/dist/multiplexer/tmux/tmux-config.js +0 -103
- package/dist/multiplexer/tmux/tmux-config.js.map +0 -1
- package/dist/multiplexer/tmux/tmux-multiplexer.d.ts +0 -94
- package/dist/multiplexer/tmux/tmux-multiplexer.d.ts.map +0 -1
- package/dist/multiplexer/tmux/tmux-multiplexer.js +0 -302
- package/dist/multiplexer/tmux/tmux-multiplexer.js.map +0 -1
- package/dist/multiplexer/windows/index.d.ts +0 -5
- package/dist/multiplexer/windows/index.d.ts.map +0 -1
- package/dist/multiplexer/windows/index.js +0 -5
- package/dist/multiplexer/windows/index.js.map +0 -1
- package/dist/multiplexer/windows/windows-multiplexer.d.ts +0 -61
- package/dist/multiplexer/windows/windows-multiplexer.d.ts.map +0 -1
- package/dist/multiplexer/windows/windows-multiplexer.js +0 -151
- package/dist/multiplexer/windows/windows-multiplexer.js.map +0 -1
- package/dist/services/claude/claude-detector.d.ts +0 -37
- package/dist/services/claude/claude-detector.d.ts.map +0 -1
- package/dist/services/claude/claude-detector.js +0 -83
- package/dist/services/claude/claude-detector.js.map +0 -1
- package/dist/services/claude/claude-service.d.ts +0 -57
- package/dist/services/claude/claude-service.d.ts.map +0 -1
- package/dist/services/claude/claude-service.js +0 -108
- package/dist/services/claude/claude-service.js.map +0 -1
- package/dist/services/claude/index.d.ts +0 -7
- package/dist/services/claude/index.d.ts.map +0 -1
- package/dist/services/claude/index.js +0 -6
- package/dist/services/claude/index.js.map +0 -1
- package/dist/services/git/branch-service.d.ts +0 -64
- package/dist/services/git/branch-service.d.ts.map +0 -1
- package/dist/services/git/branch-service.js +0 -217
- package/dist/services/git/branch-service.js.map +0 -1
- package/dist/services/git/git-service.d.ts +0 -44
- package/dist/services/git/git-service.d.ts.map +0 -1
- package/dist/services/git/git-service.js +0 -145
- package/dist/services/git/git-service.js.map +0 -1
- package/dist/services/git/index.d.ts +0 -8
- package/dist/services/git/index.d.ts.map +0 -1
- package/dist/services/git/index.js +0 -7
- package/dist/services/git/index.js.map +0 -1
- package/dist/services/git/worktree-service.d.ts +0 -61
- package/dist/services/git/worktree-service.d.ts.map +0 -1
- package/dist/services/git/worktree-service.js +0 -243
- package/dist/services/git/worktree-service.js.map +0 -1
- package/dist/services/index.d.ts +0 -12
- package/dist/services/index.d.ts.map +0 -1
- package/dist/services/index.js +0 -12
- package/dist/services/index.js.map +0 -1
- package/dist/services/process/index.d.ts +0 -8
- package/dist/services/process/index.d.ts.map +0 -1
- package/dist/services/process/index.js +0 -6
- package/dist/services/process/index.js.map +0 -1
- package/dist/services/process/process-monitor.d.ts +0 -98
- package/dist/services/process/process-monitor.d.ts.map +0 -1
- package/dist/services/process/process-monitor.js +0 -173
- package/dist/services/process/process-monitor.js.map +0 -1
- package/dist/services/process/process-spawner.d.ts +0 -55
- package/dist/services/process/process-spawner.d.ts.map +0 -1
- package/dist/services/process/process-spawner.js +0 -93
- package/dist/services/process/process-spawner.js.map +0 -1
- package/dist/sidebar.d.ts +0 -13
- package/dist/sidebar.d.ts.map +0 -1
- package/dist/sidebar.js +0 -1535
- package/dist/sidebar.js.map +0 -1
- package/dist/state/actions.d.ts +0 -49
- package/dist/state/actions.d.ts.map +0 -1
- package/dist/state/actions.js +0 -512
- package/dist/state/actions.js.map +0 -1
- package/dist/state/index.d.ts +0 -16
- package/dist/state/index.d.ts.map +0 -1
- package/dist/state/index.js +0 -28
- package/dist/state/index.js.map +0 -1
- package/dist/state/middleware/index.d.ts +0 -7
- package/dist/state/middleware/index.d.ts.map +0 -1
- package/dist/state/middleware/index.js +0 -6
- package/dist/state/middleware/index.js.map +0 -1
- package/dist/state/middleware/logger.d.ts +0 -22
- package/dist/state/middleware/logger.d.ts.map +0 -1
- package/dist/state/middleware/logger.js +0 -45
- package/dist/state/middleware/logger.js.map +0 -1
- package/dist/state/middleware/persistence.d.ts +0 -29
- package/dist/state/middleware/persistence.d.ts.map +0 -1
- package/dist/state/middleware/persistence.js +0 -71
- package/dist/state/middleware/persistence.js.map +0 -1
- package/dist/state/persistence/file-adapter.d.ts +0 -48
- package/dist/state/persistence/file-adapter.d.ts.map +0 -1
- package/dist/state/persistence/file-adapter.js +0 -96
- package/dist/state/persistence/file-adapter.js.map +0 -1
- package/dist/state/persistence/index.d.ts +0 -8
- package/dist/state/persistence/index.d.ts.map +0 -1
- package/dist/state/persistence/index.js +0 -6
- package/dist/state/persistence/index.js.map +0 -1
- package/dist/state/persistence/serializer.d.ts +0 -41
- package/dist/state/persistence/serializer.d.ts.map +0 -1
- package/dist/state/persistence/serializer.js +0 -114
- package/dist/state/persistence/serializer.js.map +0 -1
- package/dist/state/selectors.d.ts +0 -67
- package/dist/state/selectors.d.ts.map +0 -1
- package/dist/state/selectors.js +0 -177
- package/dist/state/selectors.js.map +0 -1
- package/dist/state/store.d.ts +0 -86
- package/dist/state/store.d.ts.map +0 -1
- package/dist/state/store.js +0 -161
- package/dist/state/store.js.map +0 -1
- package/dist/state/types.d.ts +0 -269
- package/dist/state/types.d.ts.map +0 -1
- package/dist/state/types.js +0 -7
- package/dist/state/types.js.map +0 -1
- package/dist/state.d.ts +0 -53
- package/dist/state.d.ts.map +0 -1
- package/dist/state.js +0 -101
- package/dist/state.js.map +0 -1
- package/dist/terminal-manager.d.ts +0 -16
- package/dist/terminal-manager.d.ts.map +0 -1
- package/dist/terminal-manager.js +0 -364
- package/dist/terminal-manager.js.map +0 -1
- package/dist/tmux.d.ts +0 -163
- package/dist/tmux.d.ts.map +0 -1
- package/dist/tmux.js +0 -360
- package/dist/tmux.js.map +0 -1
- package/dist/types/config.d.ts +0 -103
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types/config.js +0 -7
- package/dist/types/config.js.map +0 -1
- package/dist/types/entities.d.ts +0 -88
- package/dist/types/entities.d.ts.map +0 -1
- package/dist/types/entities.js +0 -8
- package/dist/types/entities.js.map +0 -1
- package/dist/types/events.d.ts +0 -156
- package/dist/types/events.d.ts.map +0 -1
- package/dist/types/events.js +0 -8
- package/dist/types/events.js.map +0 -1
- package/dist/types/index.d.ts +0 -11
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -8
- package/dist/types/index.js.map +0 -1
- package/dist/types/multiplexer.d.ts +0 -238
- package/dist/types/multiplexer.d.ts.map +0 -1
- package/dist/types/multiplexer.js +0 -8
- package/dist/types/multiplexer.js.map +0 -1
- package/dist/ui/components/base.d.ts +0 -155
- package/dist/ui/components/base.d.ts.map +0 -1
- package/dist/ui/components/base.js +0 -269
- package/dist/ui/components/base.js.map +0 -1
- package/dist/ui/components/index.d.ts +0 -10
- package/dist/ui/components/index.d.ts.map +0 -1
- package/dist/ui/components/index.js +0 -10
- package/dist/ui/components/index.js.map +0 -1
- package/dist/ui/components/input-field.d.ts +0 -98
- package/dist/ui/components/input-field.d.ts.map +0 -1
- package/dist/ui/components/input-field.js +0 -274
- package/dist/ui/components/input-field.js.map +0 -1
- package/dist/ui/components/list.d.ts +0 -94
- package/dist/ui/components/list.d.ts.map +0 -1
- package/dist/ui/components/list.js +0 -294
- package/dist/ui/components/list.js.map +0 -1
- package/dist/ui/components/modal.d.ts +0 -83
- package/dist/ui/components/modal.d.ts.map +0 -1
- package/dist/ui/components/modal.js +0 -249
- package/dist/ui/components/modal.js.map +0 -1
- package/dist/ui/components/tabs.d.ts +0 -97
- package/dist/ui/components/tabs.d.ts.map +0 -1
- package/dist/ui/components/tabs.js +0 -252
- package/dist/ui/components/tabs.js.map +0 -1
- package/dist/ui/components/text.d.ts +0 -60
- package/dist/ui/components/text.d.ts.map +0 -1
- package/dist/ui/components/text.js +0 -224
- package/dist/ui/components/text.js.map +0 -1
- package/dist/ui/index.d.ts +0 -12
- package/dist/ui/index.d.ts.map +0 -1
- package/dist/ui/index.js +0 -18
- package/dist/ui/index.js.map +0 -1
- package/dist/ui/input/index.d.ts +0 -8
- package/dist/ui/input/index.d.ts.map +0 -1
- package/dist/ui/input/index.js +0 -8
- package/dist/ui/input/index.js.map +0 -1
- package/dist/ui/input/input-manager.d.ts +0 -83
- package/dist/ui/input/input-manager.d.ts.map +0 -1
- package/dist/ui/input/input-manager.js +0 -200
- package/dist/ui/input/input-manager.js.map +0 -1
- package/dist/ui/input/keybindings.d.ts +0 -47
- package/dist/ui/input/keybindings.d.ts.map +0 -1
- package/dist/ui/input/keybindings.js +0 -168
- package/dist/ui/input/keybindings.js.map +0 -1
- package/dist/ui/input/keyboard.d.ts +0 -24
- package/dist/ui/input/keyboard.d.ts.map +0 -1
- package/dist/ui/input/keyboard.js +0 -230
- package/dist/ui/input/keyboard.js.map +0 -1
- package/dist/ui/input/mouse.d.ts +0 -44
- package/dist/ui/input/mouse.d.ts.map +0 -1
- package/dist/ui/input/mouse.js +0 -161
- package/dist/ui/input/mouse.js.map +0 -1
- package/dist/ui/layout/box.d.ts +0 -63
- package/dist/ui/layout/box.d.ts.map +0 -1
- package/dist/ui/layout/box.js +0 -160
- package/dist/ui/layout/box.js.map +0 -1
- package/dist/ui/layout/constraints.d.ts +0 -77
- package/dist/ui/layout/constraints.d.ts.map +0 -1
- package/dist/ui/layout/constraints.js +0 -154
- package/dist/ui/layout/constraints.js.map +0 -1
- package/dist/ui/layout/flex.d.ts +0 -59
- package/dist/ui/layout/flex.d.ts.map +0 -1
- package/dist/ui/layout/flex.js +0 -163
- package/dist/ui/layout/flex.js.map +0 -1
- package/dist/ui/layout/index.d.ts +0 -7
- package/dist/ui/layout/index.d.ts.map +0 -1
- package/dist/ui/layout/index.js +0 -7
- package/dist/ui/layout/index.js.map +0 -1
- package/dist/ui/modals/delete-modal.d.ts +0 -27
- package/dist/ui/modals/delete-modal.d.ts.map +0 -1
- package/dist/ui/modals/delete-modal.js +0 -59
- package/dist/ui/modals/delete-modal.js.map +0 -1
- package/dist/ui/modals/index.d.ts +0 -7
- package/dist/ui/modals/index.d.ts.map +0 -1
- package/dist/ui/modals/index.js +0 -7
- package/dist/ui/modals/index.js.map +0 -1
- package/dist/ui/modals/input-modal.d.ts +0 -66
- package/dist/ui/modals/input-modal.d.ts.map +0 -1
- package/dist/ui/modals/input-modal.js +0 -185
- package/dist/ui/modals/input-modal.js.map +0 -1
- package/dist/ui/modals/quit-modal.d.ts +0 -30
- package/dist/ui/modals/quit-modal.d.ts.map +0 -1
- package/dist/ui/modals/quit-modal.js +0 -65
- package/dist/ui/modals/quit-modal.js.map +0 -1
- package/dist/ui/renderer/ansi.d.ts +0 -206
- package/dist/ui/renderer/ansi.d.ts.map +0 -1
- package/dist/ui/renderer/ansi.js +0 -318
- package/dist/ui/renderer/ansi.js.map +0 -1
- package/dist/ui/renderer/canvas.d.ts +0 -126
- package/dist/ui/renderer/canvas.d.ts.map +0 -1
- package/dist/ui/renderer/canvas.js +0 -346
- package/dist/ui/renderer/canvas.js.map +0 -1
- package/dist/ui/renderer/colors.d.ts +0 -65
- package/dist/ui/renderer/colors.d.ts.map +0 -1
- package/dist/ui/renderer/colors.js +0 -260
- package/dist/ui/renderer/colors.js.map +0 -1
- package/dist/ui/renderer/index.d.ts +0 -8
- package/dist/ui/renderer/index.d.ts.map +0 -1
- package/dist/ui/renderer/index.js +0 -8
- package/dist/ui/renderer/index.js.map +0 -1
- package/dist/ui/renderer/symbols.d.ts +0 -176
- package/dist/ui/renderer/symbols.d.ts.map +0 -1
- package/dist/ui/renderer/symbols.js +0 -246
- package/dist/ui/renderer/symbols.js.map +0 -1
- package/dist/ui/views/index.d.ts +0 -7
- package/dist/ui/views/index.d.ts.map +0 -1
- package/dist/ui/views/index.js +0 -7
- package/dist/ui/views/index.js.map +0 -1
- package/dist/ui/views/sidebar-view.d.ts +0 -89
- package/dist/ui/views/sidebar-view.d.ts.map +0 -1
- package/dist/ui/views/sidebar-view.js +0 -259
- package/dist/ui/views/sidebar-view.js.map +0 -1
- package/dist/ui/views/terminal-bar-view.d.ts +0 -67
- package/dist/ui/views/terminal-bar-view.d.ts.map +0 -1
- package/dist/ui/views/terminal-bar-view.js +0 -172
- package/dist/ui/views/terminal-bar-view.js.map +0 -1
- package/dist/ui/views/welcome-view.d.ts +0 -34
- package/dist/ui/views/welcome-view.d.ts.map +0 -1
- package/dist/ui/views/welcome-view.js +0 -116
- package/dist/ui/views/welcome-view.js.map +0 -1
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Worktree Manager
|
|
3
|
-
*
|
|
4
|
-
* Manages the lifecycle of git worktrees.
|
|
5
|
-
*/
|
|
6
|
-
import { getLogger, WorktreeError } from '../../utils';
|
|
7
|
-
import { getEventBus } from '../../events';
|
|
8
|
-
import { getStore, actions, selectWorktreeById } from '../../state';
|
|
9
|
-
import { getWorktreeService, getBranchService, getGitService } from '../../services';
|
|
10
|
-
import { getNewWorktreePath } from '../../config';
|
|
11
|
-
import { createWorktree, worktreesFromInfoList } from './worktree';
|
|
12
|
-
const logger = getLogger().child('worktree-manager');
|
|
13
|
-
/**
|
|
14
|
-
* Worktree manager class
|
|
15
|
-
*/
|
|
16
|
-
export class WorktreeManager {
|
|
17
|
-
repoPath;
|
|
18
|
-
worktreesBasePath;
|
|
19
|
-
constructor(repoPath, worktreesBasePath) {
|
|
20
|
-
this.repoPath = repoPath;
|
|
21
|
-
this.worktreesBasePath = worktreesBasePath;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Load all worktrees from git
|
|
25
|
-
*/
|
|
26
|
-
loadWorktrees() {
|
|
27
|
-
const worktreeService = getWorktreeService();
|
|
28
|
-
const infos = worktreeService.list(this.repoPath);
|
|
29
|
-
return worktreesFromInfoList(infos);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Create a new worktree
|
|
33
|
-
*/
|
|
34
|
-
async create(branch) {
|
|
35
|
-
const eventBus = getEventBus();
|
|
36
|
-
const store = getStore();
|
|
37
|
-
const worktreeService = getWorktreeService();
|
|
38
|
-
const branchService = getBranchService();
|
|
39
|
-
const gitService = getGitService();
|
|
40
|
-
logger.debug('Creating worktree', { branch });
|
|
41
|
-
// Check if branch already exists
|
|
42
|
-
if (branchService.exists(this.repoPath, branch)) {
|
|
43
|
-
// Check if it already has a worktree
|
|
44
|
-
if (worktreeService.hasBranchWorktree(this.repoPath, branch)) {
|
|
45
|
-
throw new WorktreeError(`Branch ${branch} already has a worktree`, {
|
|
46
|
-
branch,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
// Determine worktree path
|
|
51
|
-
const repoName = gitService.getRepositoryName(this.repoPath);
|
|
52
|
-
const worktreePath = getNewWorktreePath(this.worktreesBasePath, repoName, branch);
|
|
53
|
-
// Create the worktree
|
|
54
|
-
worktreeService.create(this.repoPath, worktreePath, branch, {
|
|
55
|
-
createBranch: true,
|
|
56
|
-
});
|
|
57
|
-
// Create worktree entity
|
|
58
|
-
const worktree = createWorktree({
|
|
59
|
-
path: worktreePath,
|
|
60
|
-
branch,
|
|
61
|
-
isMain: false,
|
|
62
|
-
});
|
|
63
|
-
// Update state
|
|
64
|
-
store.dispatch(actions.createWorktree(worktree));
|
|
65
|
-
// Emit event
|
|
66
|
-
eventBus.emit('worktree:created', { worktree });
|
|
67
|
-
logger.debug('Worktree created', { worktreeId: worktree.id, branch });
|
|
68
|
-
return worktree;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Delete a worktree
|
|
72
|
-
*/
|
|
73
|
-
async delete(worktreeId) {
|
|
74
|
-
const eventBus = getEventBus();
|
|
75
|
-
const store = getStore();
|
|
76
|
-
const state = store.getState();
|
|
77
|
-
const worktreeService = getWorktreeService();
|
|
78
|
-
const worktree = selectWorktreeById(state, worktreeId);
|
|
79
|
-
if (!worktree) {
|
|
80
|
-
throw new WorktreeError('Worktree not found', { worktreePath: worktreeId });
|
|
81
|
-
}
|
|
82
|
-
if (worktree.isMain) {
|
|
83
|
-
throw new WorktreeError('Cannot delete main worktree');
|
|
84
|
-
}
|
|
85
|
-
logger.debug('Deleting worktree', { worktreeId, path: worktree.path });
|
|
86
|
-
// Delete the worktree from git
|
|
87
|
-
worktreeService.remove(worktree.path, true);
|
|
88
|
-
// Update state
|
|
89
|
-
store.dispatch(actions.deleteWorktree(worktreeId));
|
|
90
|
-
// Emit event
|
|
91
|
-
eventBus.emit('worktree:deleted', {
|
|
92
|
-
worktreeId,
|
|
93
|
-
path: worktree.path,
|
|
94
|
-
});
|
|
95
|
-
logger.debug('Worktree deleted', { worktreeId });
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Rename a worktree (renames branch and moves directory)
|
|
99
|
-
*/
|
|
100
|
-
async rename(worktreeId, newBranch) {
|
|
101
|
-
const eventBus = getEventBus();
|
|
102
|
-
const store = getStore();
|
|
103
|
-
const state = store.getState();
|
|
104
|
-
const worktreeService = getWorktreeService();
|
|
105
|
-
const branchService = getBranchService();
|
|
106
|
-
const gitService = getGitService();
|
|
107
|
-
const worktree = selectWorktreeById(state, worktreeId);
|
|
108
|
-
if (!worktree) {
|
|
109
|
-
throw new WorktreeError('Worktree not found');
|
|
110
|
-
}
|
|
111
|
-
if (worktree.isMain) {
|
|
112
|
-
throw new WorktreeError('Cannot rename main worktree');
|
|
113
|
-
}
|
|
114
|
-
const oldBranch = worktree.branch;
|
|
115
|
-
const oldPath = worktree.path;
|
|
116
|
-
logger.debug('Renaming worktree', { worktreeId, oldBranch, newBranch });
|
|
117
|
-
// Rename the branch
|
|
118
|
-
branchService.rename(worktree.path, oldBranch, newBranch);
|
|
119
|
-
// Calculate new path
|
|
120
|
-
const repoName = gitService.getRepositoryName(this.repoPath);
|
|
121
|
-
const newPath = getNewWorktreePath(this.worktreesBasePath, repoName, newBranch);
|
|
122
|
-
// Move the worktree
|
|
123
|
-
if (newPath !== oldPath) {
|
|
124
|
-
worktreeService.move(oldPath, newPath);
|
|
125
|
-
}
|
|
126
|
-
// Update state
|
|
127
|
-
store.dispatch(actions.renameWorktree(worktreeId, newBranch, newPath));
|
|
128
|
-
// Emit event
|
|
129
|
-
eventBus.emit('worktree:renamed', {
|
|
130
|
-
worktreeId,
|
|
131
|
-
oldBranch,
|
|
132
|
-
newBranch,
|
|
133
|
-
});
|
|
134
|
-
logger.debug('Worktree renamed', { worktreeId, newBranch });
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Get a worktree by ID
|
|
138
|
-
*/
|
|
139
|
-
get(worktreeId) {
|
|
140
|
-
const state = getStore().getState();
|
|
141
|
-
return selectWorktreeById(state, worktreeId);
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Get all worktrees
|
|
145
|
-
*/
|
|
146
|
-
getAll() {
|
|
147
|
-
const state = getStore().getState();
|
|
148
|
-
return state.workspace?.worktrees ?? [];
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Check if a branch name is available
|
|
152
|
-
*/
|
|
153
|
-
isBranchAvailable(branch) {
|
|
154
|
-
const branchService = getBranchService();
|
|
155
|
-
const worktreeService = getWorktreeService();
|
|
156
|
-
// Check if branch exists
|
|
157
|
-
if (!branchService.exists(this.repoPath, branch)) {
|
|
158
|
-
return true; // Branch doesn't exist, so it's available for creation
|
|
159
|
-
}
|
|
160
|
-
// Branch exists, check if it has a worktree
|
|
161
|
-
return !worktreeService.hasBranchWorktree(this.repoPath, branch);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Create a worktree manager
|
|
166
|
-
*/
|
|
167
|
-
export function createWorktreeManager(repoPath, worktreesBasePath) {
|
|
168
|
-
return new WorktreeManager(repoPath, worktreesBasePath);
|
|
169
|
-
}
|
|
170
|
-
//# sourceMappingURL=worktree-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-manager.js","sourceRoot":"","sources":["../../../src/core/worktree/worktree-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Worktree Entity
|
|
3
|
-
*
|
|
4
|
-
* Factory functions for creating Worktree objects.
|
|
5
|
-
*/
|
|
6
|
-
import type { Worktree, WorktreeInfo } from '../../types';
|
|
7
|
-
/**
|
|
8
|
-
* Options for creating a new worktree
|
|
9
|
-
*/
|
|
10
|
-
export interface CreateWorktreeOptions {
|
|
11
|
-
path: string;
|
|
12
|
-
branch: string;
|
|
13
|
-
isMain?: boolean;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Create a new worktree entity from options
|
|
17
|
-
*/
|
|
18
|
-
export declare function createWorktree(options: CreateWorktreeOptions): Worktree;
|
|
19
|
-
/**
|
|
20
|
-
* Create a worktree entity from git WorktreeInfo
|
|
21
|
-
*/
|
|
22
|
-
export declare function worktreeFromInfo(info: WorktreeInfo): Worktree;
|
|
23
|
-
/**
|
|
24
|
-
* Convert multiple WorktreeInfo to Worktree entities
|
|
25
|
-
*/
|
|
26
|
-
export declare function worktreesFromInfoList(infos: WorktreeInfo[]): Worktree[];
|
|
27
|
-
/**
|
|
28
|
-
* Check if a worktree has any sessions
|
|
29
|
-
*/
|
|
30
|
-
export declare function hasSessions(worktree: Worktree): boolean;
|
|
31
|
-
/**
|
|
32
|
-
* Get the session count for a worktree
|
|
33
|
-
*/
|
|
34
|
-
export declare function getSessionCount(worktree: Worktree): number;
|
|
35
|
-
//# sourceMappingURL=worktree.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../../src/core/worktree/worktree.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG1D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,QAAQ,CAUvE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CAQ7D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,QAAQ,EAAE,CAEvE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAE1D"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Worktree Entity
|
|
3
|
-
*
|
|
4
|
-
* Factory functions for creating Worktree objects.
|
|
5
|
-
*/
|
|
6
|
-
import { generateId } from '../../utils';
|
|
7
|
-
/**
|
|
8
|
-
* Create a new worktree entity from options
|
|
9
|
-
*/
|
|
10
|
-
export function createWorktree(options) {
|
|
11
|
-
const { path, branch, isMain = false } = options;
|
|
12
|
-
return {
|
|
13
|
-
id: isMain ? 'main' : generateId(8),
|
|
14
|
-
path,
|
|
15
|
-
branch,
|
|
16
|
-
isMain,
|
|
17
|
-
sessions: [],
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Create a worktree entity from git WorktreeInfo
|
|
22
|
-
*/
|
|
23
|
-
export function worktreeFromInfo(info) {
|
|
24
|
-
return {
|
|
25
|
-
id: info.isMain ? 'main' : generateId(8),
|
|
26
|
-
path: info.path,
|
|
27
|
-
branch: info.branch,
|
|
28
|
-
isMain: info.isMain,
|
|
29
|
-
sessions: [],
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Convert multiple WorktreeInfo to Worktree entities
|
|
34
|
-
*/
|
|
35
|
-
export function worktreesFromInfoList(infos) {
|
|
36
|
-
return infos.map(worktreeFromInfo);
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Check if a worktree has any sessions
|
|
40
|
-
*/
|
|
41
|
-
export function hasSessions(worktree) {
|
|
42
|
-
return worktree.sessions.length > 0;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Get the session count for a worktree
|
|
46
|
-
*/
|
|
47
|
-
export function getSessionCount(worktree) {
|
|
48
|
-
return worktree.sessions.length;
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=worktree.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../../src/core/worktree/worktree.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAWzC;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAA8B;IAC3D,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAEjD,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACnC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAkB;IACjD,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACxC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAqB;IACzD,OAAO,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAkB;IAChD,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;AAClC,CAAC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { Worktree } from '../types.js';
|
|
2
|
-
export declare class WorktreeManager {
|
|
3
|
-
private basePath;
|
|
4
|
-
private repoPath;
|
|
5
|
-
private git;
|
|
6
|
-
constructor(repoPath: string, basePath?: string);
|
|
7
|
-
private generateId;
|
|
8
|
-
private ensureBaseDir;
|
|
9
|
-
list(): Promise<Worktree[]>;
|
|
10
|
-
create(branch: string, newBranch?: boolean): Promise<Worktree>;
|
|
11
|
-
remove(path: string, force?: boolean): Promise<void>;
|
|
12
|
-
prune(): Promise<void>;
|
|
13
|
-
/**
|
|
14
|
-
* Rename a worktree's branch and move its directory atomically.
|
|
15
|
-
* If either operation fails, rollback any changes.
|
|
16
|
-
*/
|
|
17
|
-
rename(worktreePath: string, oldBranch: string, newBranch: string): Promise<string>;
|
|
18
|
-
/**
|
|
19
|
-
* Get the path of a worktree by branch name
|
|
20
|
-
*/
|
|
21
|
-
getWorktreePath(branch: string): Promise<string | null>;
|
|
22
|
-
getBranches(): Promise<string[]>;
|
|
23
|
-
getRepoPath(): string;
|
|
24
|
-
getBasePath(): string;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=worktree-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-manager.d.ts","sourceRoot":"","sources":["../../src/core/worktree-manager.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAO5C,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,GAAG,CAAY;gBAEX,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAA8B;IAMtE,OAAO,CAAC,UAAU;YAIJ,aAAa;IAQrB,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IA4C3B,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,OAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;IAyBrE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB3D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;;OAGG;IACG,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BzF;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAMvD,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAStC,WAAW,IAAI,MAAM;IAIrB,WAAW,IAAI,MAAM;CAGtB"}
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
import { simpleGit } from 'simple-git';
|
|
2
|
-
import { homedir } from 'os';
|
|
3
|
-
import { join, basename } from 'path';
|
|
4
|
-
import { mkdir, rm, access } from 'fs/promises';
|
|
5
|
-
import { appendFileSync } from 'fs';
|
|
6
|
-
function debugLog(...args) {
|
|
7
|
-
const msg = `[${new Date().toISOString()}] [WorktreeManager] ${args.map(a => typeof a === 'object' ? JSON.stringify(a) : String(a)).join(' ')}\n`;
|
|
8
|
-
appendFileSync('/tmp/claude-pp-debug.log', msg);
|
|
9
|
-
}
|
|
10
|
-
export class WorktreeManager {
|
|
11
|
-
basePath;
|
|
12
|
-
repoPath;
|
|
13
|
-
git;
|
|
14
|
-
constructor(repoPath, basePath = '~/.claude-worktrees') {
|
|
15
|
-
this.repoPath = repoPath;
|
|
16
|
-
this.basePath = basePath.replace('~', homedir());
|
|
17
|
-
this.git = simpleGit(repoPath);
|
|
18
|
-
}
|
|
19
|
-
generateId() {
|
|
20
|
-
return Math.random().toString(36).substring(2, 10);
|
|
21
|
-
}
|
|
22
|
-
async ensureBaseDir() {
|
|
23
|
-
try {
|
|
24
|
-
await access(this.basePath);
|
|
25
|
-
}
|
|
26
|
-
catch {
|
|
27
|
-
await mkdir(this.basePath, { recursive: true });
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
async list() {
|
|
31
|
-
try {
|
|
32
|
-
const result = await this.git.raw(['worktree', 'list', '--porcelain']);
|
|
33
|
-
const worktrees = [];
|
|
34
|
-
const blocks = result.trim().split('\n\n');
|
|
35
|
-
for (const block of blocks) {
|
|
36
|
-
if (!block.trim())
|
|
37
|
-
continue;
|
|
38
|
-
const lines = block.split('\n');
|
|
39
|
-
let path = '';
|
|
40
|
-
let branch = '';
|
|
41
|
-
for (const line of lines) {
|
|
42
|
-
if (line.startsWith('worktree ')) {
|
|
43
|
-
path = line.substring(9);
|
|
44
|
-
}
|
|
45
|
-
else if (line.startsWith('branch ')) {
|
|
46
|
-
branch = line.substring(7).replace('refs/heads/', '');
|
|
47
|
-
}
|
|
48
|
-
else if (line === 'detached') {
|
|
49
|
-
branch = '(detached)';
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
if (path) {
|
|
53
|
-
const isMain = path === this.repoPath;
|
|
54
|
-
worktrees.push({
|
|
55
|
-
id: isMain ? 'main' : this.generateId(),
|
|
56
|
-
path,
|
|
57
|
-
branch: branch || basename(path),
|
|
58
|
-
isMain,
|
|
59
|
-
sessions: [],
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return worktrees;
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
// If not a git repo or worktree command fails, return empty
|
|
67
|
-
console.error('Failed to list worktrees:', error);
|
|
68
|
-
return [];
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
async create(branch, newBranch = false) {
|
|
72
|
-
await this.ensureBaseDir();
|
|
73
|
-
const sanitizedBranch = branch.replace(/[^a-zA-Z0-9-_]/g, '-');
|
|
74
|
-
const worktreePath = join(this.basePath, `${basename(this.repoPath)}-${sanitizedBranch}`);
|
|
75
|
-
try {
|
|
76
|
-
if (newBranch) {
|
|
77
|
-
await this.git.raw(['worktree', 'add', '-b', branch, worktreePath]);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
await this.git.raw(['worktree', 'add', worktreePath, branch]);
|
|
81
|
-
}
|
|
82
|
-
return {
|
|
83
|
-
id: this.generateId(),
|
|
84
|
-
path: worktreePath,
|
|
85
|
-
branch,
|
|
86
|
-
isMain: false,
|
|
87
|
-
sessions: [],
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
catch (error) {
|
|
91
|
-
throw new Error(`Failed to create worktree for branch '${branch}': ${error}`);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
async remove(path, force = false) {
|
|
95
|
-
debugLog('remove called with path:', path, 'force:', force);
|
|
96
|
-
try {
|
|
97
|
-
const args = ['worktree', 'remove'];
|
|
98
|
-
if (force)
|
|
99
|
-
args.push('--force');
|
|
100
|
-
args.push(path);
|
|
101
|
-
debugLog('Running git', args.join(' '));
|
|
102
|
-
await this.git.raw(args);
|
|
103
|
-
debugLog('git worktree remove succeeded');
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
debugLog('git worktree remove failed:', error);
|
|
107
|
-
// Try to clean up manually if git worktree remove fails
|
|
108
|
-
if (force) {
|
|
109
|
-
debugLog('Attempting manual cleanup');
|
|
110
|
-
await rm(path, { recursive: true, force: true });
|
|
111
|
-
await this.git.raw(['worktree', 'prune']);
|
|
112
|
-
debugLog('Manual cleanup succeeded');
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
throw new Error(`Failed to remove worktree at '${path}': ${error}`);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
async prune() {
|
|
120
|
-
await this.git.raw(['worktree', 'prune']);
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Rename a worktree's branch and move its directory atomically.
|
|
124
|
-
* If either operation fails, rollback any changes.
|
|
125
|
-
*/
|
|
126
|
-
async rename(worktreePath, oldBranch, newBranch) {
|
|
127
|
-
const sanitizedNewBranch = newBranch.replace(/[^a-zA-Z0-9-_]/g, '-');
|
|
128
|
-
const newWorktreePath = join(this.basePath, `${basename(this.repoPath)}-${sanitizedNewBranch}`);
|
|
129
|
-
// Step 1: Rename the branch
|
|
130
|
-
try {
|
|
131
|
-
await this.git.raw(['branch', '-m', oldBranch, newBranch]);
|
|
132
|
-
}
|
|
133
|
-
catch (error) {
|
|
134
|
-
throw new Error(`Failed to rename branch '${oldBranch}' to '${newBranch}': ${error}`);
|
|
135
|
-
}
|
|
136
|
-
// Step 2: Move the worktree directory
|
|
137
|
-
try {
|
|
138
|
-
await this.git.raw(['worktree', 'move', worktreePath, newWorktreePath]);
|
|
139
|
-
}
|
|
140
|
-
catch (error) {
|
|
141
|
-
// Rollback: rename branch back
|
|
142
|
-
try {
|
|
143
|
-
await this.git.raw(['branch', '-m', newBranch, oldBranch]);
|
|
144
|
-
}
|
|
145
|
-
catch (rollbackError) {
|
|
146
|
-
// Rollback failed - we're in an inconsistent state
|
|
147
|
-
throw new Error(`Failed to move worktree and rollback failed. Manual intervention required. Original error: ${error}`);
|
|
148
|
-
}
|
|
149
|
-
throw new Error(`Failed to move worktree from '${worktreePath}' to '${newWorktreePath}': ${error}`);
|
|
150
|
-
}
|
|
151
|
-
return newWorktreePath;
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Get the path of a worktree by branch name
|
|
155
|
-
*/
|
|
156
|
-
async getWorktreePath(branch) {
|
|
157
|
-
const worktrees = await this.list();
|
|
158
|
-
const wt = worktrees.find(w => w.branch === branch);
|
|
159
|
-
return wt?.path || null;
|
|
160
|
-
}
|
|
161
|
-
async getBranches() {
|
|
162
|
-
try {
|
|
163
|
-
const result = await this.git.branch(['-a']);
|
|
164
|
-
return result.all;
|
|
165
|
-
}
|
|
166
|
-
catch {
|
|
167
|
-
return [];
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
getRepoPath() {
|
|
171
|
-
return this.repoPath;
|
|
172
|
-
}
|
|
173
|
-
getBasePath() {
|
|
174
|
-
return this.basePath;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
//# sourceMappingURL=worktree-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-manager.js","sourceRoot":"","sources":["../../src/core/worktree-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/events/bus.d.ts
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Event Bus Implementation
|
|
3
|
-
*
|
|
4
|
-
* Provides a typed event bus for decoupled communication between modules.
|
|
5
|
-
*/
|
|
6
|
-
import type { AppEventType, EventType, EventOfType } from '../types';
|
|
7
|
-
import type { Unsubscribe } from '../utils';
|
|
8
|
-
/**
|
|
9
|
-
* Event bus for application-wide event handling
|
|
10
|
-
*/
|
|
11
|
-
export declare class EventBus {
|
|
12
|
-
private listeners;
|
|
13
|
-
private allListeners;
|
|
14
|
-
private debugMode;
|
|
15
|
-
/**
|
|
16
|
-
* Enable debug mode to log all events
|
|
17
|
-
*/
|
|
18
|
-
setDebugMode(enabled: boolean): void;
|
|
19
|
-
/**
|
|
20
|
-
* Emit an event to all registered listeners
|
|
21
|
-
*/
|
|
22
|
-
emit<T extends EventType>(type: T, payload: Omit<EventOfType<T>, 'type' | 'timestamp'>): void;
|
|
23
|
-
/**
|
|
24
|
-
* Subscribe to events of a specific type
|
|
25
|
-
*/
|
|
26
|
-
on<T extends EventType>(type: T, handler: (event: EventOfType<T>) => void | Promise<void>): Unsubscribe;
|
|
27
|
-
/**
|
|
28
|
-
* Subscribe to a single event occurrence
|
|
29
|
-
*/
|
|
30
|
-
once<T extends EventType>(type: T, handler: (event: EventOfType<T>) => void | Promise<void>): Unsubscribe;
|
|
31
|
-
/**
|
|
32
|
-
* Remove a specific handler for an event type
|
|
33
|
-
*/
|
|
34
|
-
off<T extends EventType>(type: T, handler: (event: EventOfType<T>) => void | Promise<void>): void;
|
|
35
|
-
/**
|
|
36
|
-
* Subscribe to all events
|
|
37
|
-
*/
|
|
38
|
-
onAll(handler: (event: AppEventType) => void): Unsubscribe;
|
|
39
|
-
/**
|
|
40
|
-
* Wait for a specific event type
|
|
41
|
-
*/
|
|
42
|
-
waitFor<T extends EventType>(type: T, timeout?: number): Promise<EventOfType<T>>;
|
|
43
|
-
/**
|
|
44
|
-
* Wait for an event matching a predicate
|
|
45
|
-
*/
|
|
46
|
-
waitForMatch<T extends EventType>(type: T, predicate: (event: EventOfType<T>) => boolean, timeout?: number): Promise<EventOfType<T>>;
|
|
47
|
-
/**
|
|
48
|
-
* Remove all listeners for a specific event type
|
|
49
|
-
*/
|
|
50
|
-
removeAllListeners(type?: EventType): void;
|
|
51
|
-
/**
|
|
52
|
-
* Get the count of listeners for a specific event type
|
|
53
|
-
*/
|
|
54
|
-
listenerCount(type: EventType): number;
|
|
55
|
-
/**
|
|
56
|
-
* Get all registered event types
|
|
57
|
-
*/
|
|
58
|
-
eventTypes(): string[];
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Create an event with timestamp
|
|
62
|
-
*/
|
|
63
|
-
export declare function createEvent<T extends EventType>(type: T, payload: Omit<EventOfType<T>, 'type' | 'timestamp'>): EventOfType<T>;
|
|
64
|
-
/**
|
|
65
|
-
* Get the global event bus
|
|
66
|
-
*/
|
|
67
|
-
export declare function getEventBus(): EventBus;
|
|
68
|
-
/**
|
|
69
|
-
* Set the global event bus
|
|
70
|
-
*/
|
|
71
|
-
export declare function setEventBus(bus: EventBus): void;
|
|
72
|
-
/**
|
|
73
|
-
* Create a new event bus instance
|
|
74
|
-
*/
|
|
75
|
-
export declare function createEventBus(): EventBus;
|
|
76
|
-
//# sourceMappingURL=bus.d.ts.map
|
package/dist/events/bus.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bus.d.ts","sourceRoot":"","sources":["../../src/events/bus.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,WAAW,EAEZ,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAgB5C;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,SAAS,CAAkB;IAEnC;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIpC;;OAEG;IACH,IAAI,CAAC,CAAC,SAAS,SAAS,EACtB,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,GAClD,IAAI;IA+CP;;OAEG;IACH,EAAE,CAAC,CAAC,SAAS,SAAS,EACpB,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACvD,WAAW;IAiBd;;OAEG;IACH,IAAI,CAAC,CAAC,SAAS,SAAS,EACtB,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACvD,WAAW;IAiBd;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,SAAS,EACrB,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACvD,IAAI;IAYP;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,WAAW;IAO1D;;OAEG;IACH,OAAO,CAAC,CAAC,SAAS,SAAS,EACzB,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAoB1B;;OAEG;IACH,YAAY,CAAC,CAAC,SAAS,SAAS,EAC9B,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,EAC7C,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IA0B1B;;OAEG;IACH,kBAAkB,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI;IAS1C;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAItC;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;CAGvB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,EAC7C,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,GAClD,WAAW,CAAC,CAAC,CAAC,CAMhB;AAKD;;GAEG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAKtC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAE/C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,QAAQ,CAEzC"}
|