@bretwardjames/ghp-cli 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/commands/agents.d.ts.map +1 -1
  2. package/dist/commands/agents.js +3 -6
  3. package/dist/commands/agents.js.map +1 -1
  4. package/dist/commands/dashboard-pipeline.d.ts +13 -0
  5. package/dist/commands/dashboard-pipeline.d.ts.map +1 -0
  6. package/dist/commands/dashboard-pipeline.js +475 -0
  7. package/dist/commands/dashboard-pipeline.js.map +1 -0
  8. package/dist/commands/pipeline-commands.d.ts +11 -0
  9. package/dist/commands/pipeline-commands.d.ts.map +1 -0
  10. package/dist/commands/pipeline-commands.js +101 -0
  11. package/dist/commands/pipeline-commands.js.map +1 -0
  12. package/dist/commands/start.d.ts +2 -0
  13. package/dist/commands/start.d.ts.map +1 -1
  14. package/dist/commands/start.js +31 -9
  15. package/dist/commands/start.js.map +1 -1
  16. package/dist/commands/status.d.ts +28 -0
  17. package/dist/commands/status.d.ts.map +1 -0
  18. package/dist/commands/status.js +90 -0
  19. package/dist/commands/status.js.map +1 -0
  20. package/dist/commands/worktree-swap-state.d.ts +19 -0
  21. package/dist/commands/worktree-swap-state.d.ts.map +1 -0
  22. package/dist/commands/worktree-swap-state.js +29 -0
  23. package/dist/commands/worktree-swap-state.js.map +1 -0
  24. package/dist/commands/worktree-swap.d.ts +48 -0
  25. package/dist/commands/worktree-swap.d.ts.map +1 -0
  26. package/dist/commands/worktree-swap.js +456 -0
  27. package/dist/commands/worktree-swap.js.map +1 -0
  28. package/dist/config.d.ts +8 -42
  29. package/dist/config.d.ts.map +1 -1
  30. package/dist/config.js +0 -4
  31. package/dist/config.js.map +1 -1
  32. package/dist/exit.d.ts +5 -0
  33. package/dist/exit.d.ts.map +1 -1
  34. package/dist/exit.js +7 -0
  35. package/dist/exit.js.map +1 -1
  36. package/dist/git-utils.d.ts +9 -0
  37. package/dist/git-utils.d.ts.map +1 -1
  38. package/dist/git-utils.js +19 -0
  39. package/dist/git-utils.js.map +1 -1
  40. package/dist/index.js +57 -23
  41. package/dist/index.js.map +1 -1
  42. package/dist/pipeline-registry.d.ts +50 -0
  43. package/dist/pipeline-registry.d.ts.map +1 -0
  44. package/dist/pipeline-registry.js +186 -0
  45. package/dist/pipeline-registry.js.map +1 -0
  46. package/dist/terminal-utils.d.ts +21 -27
  47. package/dist/terminal-utils.d.ts.map +1 -1
  48. package/dist/terminal-utils.js +53 -135
  49. package/dist/terminal-utils.js.map +1 -1
  50. package/dist/worktree-utils.d.ts.map +1 -1
  51. package/dist/worktree-utils.js +3 -39
  52. package/dist/worktree-utils.js.map +1 -1
  53. package/package.json +1 -1
@@ -0,0 +1,186 @@
1
+ /**
2
+ * Pipeline registry — configurable stage-based workflow for worktrees.
3
+ *
4
+ * Stages are defined in ghp config under `pipeline.stages` as an ordered array
5
+ * of stage names. A worktree advances linearly through stages.
6
+ *
7
+ * Stored in .git/ghp-pipeline.json.
8
+ */
9
+ import { existsSync, readFileSync, writeFileSync } from 'fs';
10
+ import { execFileSync } from 'child_process';
11
+ import { join } from 'path';
12
+ import { getConfig } from './config.js';
13
+ // ---------------------------------------------------------------------------
14
+ // Default stages
15
+ // ---------------------------------------------------------------------------
16
+ const DEFAULT_STAGES = [
17
+ 'initiating',
18
+ 'planning',
19
+ 'plan_ready',
20
+ 'building_tests',
21
+ 'working',
22
+ 'needs_attention',
23
+ 'code_review',
24
+ 'ready_for_integration',
25
+ 'integration_testing',
26
+ 'code_review_loop',
27
+ 'writing_pr',
28
+ 'pr_submitted',
29
+ ];
30
+ // ---------------------------------------------------------------------------
31
+ // Stage configuration
32
+ // ---------------------------------------------------------------------------
33
+ /** Get the configured pipeline stages (or defaults). */
34
+ export function getPipelineStages() {
35
+ const config = getConfig('pipeline');
36
+ const stages = config?.stages;
37
+ if (Array.isArray(stages) && stages.length > 0)
38
+ return stages;
39
+ return DEFAULT_STAGES;
40
+ }
41
+ /** Get the stage name after which integration testing (swap to main) is triggered. */
42
+ export function getIntegrationTriggerStage() {
43
+ const config = getConfig('pipeline');
44
+ return config?.integrationAfter ?? 'ready_for_integration';
45
+ }
46
+ /** Get the index of a stage in the pipeline (-1 if not found). */
47
+ export function getStageIndex(stageName) {
48
+ return getPipelineStages().indexOf(stageName);
49
+ }
50
+ // ---------------------------------------------------------------------------
51
+ // Stage emoji mapping
52
+ // ---------------------------------------------------------------------------
53
+ const STAGE_EMOJIS = {
54
+ initiating: '⏳',
55
+ planning: '📋',
56
+ plan_ready: '📝',
57
+ building_tests: '🧪',
58
+ working: '🔨',
59
+ needs_attention: '🚨',
60
+ code_review: '👀',
61
+ ready_for_integration: '✅',
62
+ integration_testing: '🔄',
63
+ code_review_loop: '🔍',
64
+ writing_pr: '📤',
65
+ pr_submitted: '🏁',
66
+ };
67
+ /** Get the emoji for a pipeline stage. Returns empty string for unknown stages. */
68
+ export function getStageEmoji(stage) {
69
+ return STAGE_EMOJIS[stage] ?? '';
70
+ }
71
+ /** Rename the tmux window for an issue to reflect its current stage. */
72
+ function renameWorktreeWindow(issueNumber, stage) {
73
+ const emoji = getStageEmoji(stage);
74
+ const prefix = emoji ? `${emoji} ` : '';
75
+ const windowName = `ghp-${issueNumber}`;
76
+ try {
77
+ execFileSync('tmux', ['rename-window', '-t', windowName, `${prefix}${windowName}`], { stdio: 'ignore' });
78
+ }
79
+ catch { /* not in tmux or window doesn't exist — fine */ }
80
+ }
81
+ // ---------------------------------------------------------------------------
82
+ // Registry I/O
83
+ // ---------------------------------------------------------------------------
84
+ function getRegistryPath(repoRoot) {
85
+ return join(repoRoot, '.git', 'ghp-pipeline.json');
86
+ }
87
+ function loadRegistry(repoRoot) {
88
+ const path = getRegistryPath(repoRoot);
89
+ if (!existsSync(path))
90
+ return {};
91
+ try {
92
+ return JSON.parse(readFileSync(path, 'utf-8'));
93
+ }
94
+ catch {
95
+ return {};
96
+ }
97
+ }
98
+ function saveRegistry(repoRoot, registry) {
99
+ writeFileSync(getRegistryPath(repoRoot), JSON.stringify(registry, null, 2));
100
+ }
101
+ // ---------------------------------------------------------------------------
102
+ // Public API
103
+ // ---------------------------------------------------------------------------
104
+ /** Register a new worktree at the first stage (typically 'initiating'). */
105
+ export function registerWorktree(repoRoot, entry) {
106
+ const registry = loadRegistry(repoRoot);
107
+ const stages = getPipelineStages();
108
+ const now = new Date().toISOString();
109
+ const full = {
110
+ ...entry,
111
+ stage: stages[0],
112
+ stageEnteredAt: now,
113
+ registeredAt: now,
114
+ };
115
+ registry[String(entry.issueNumber)] = full;
116
+ saveRegistry(repoRoot, registry);
117
+ renameWorktreeWindow(entry.issueNumber, stages[0]);
118
+ return full;
119
+ }
120
+ /** Advance a worktree to the next stage in the pipeline. Returns null if not found or already at last stage. */
121
+ export function advanceWorktreeStage(repoRoot, issueNumber) {
122
+ const registry = loadRegistry(repoRoot);
123
+ const entry = registry[String(issueNumber)];
124
+ if (!entry)
125
+ return null;
126
+ const stages = getPipelineStages();
127
+ const currentIndex = stages.indexOf(entry.stage);
128
+ if (currentIndex < 0 || currentIndex >= stages.length - 1)
129
+ return entry;
130
+ entry.stage = stages[currentIndex + 1];
131
+ entry.stageEnteredAt = new Date().toISOString();
132
+ saveRegistry(repoRoot, registry);
133
+ renameWorktreeWindow(issueNumber, entry.stage);
134
+ return entry;
135
+ }
136
+ /** Set a worktree to a specific stage by name. */
137
+ export function setWorktreeStage(repoRoot, issueNumber, stageName) {
138
+ const registry = loadRegistry(repoRoot);
139
+ const entry = registry[String(issueNumber)];
140
+ if (!entry)
141
+ return null;
142
+ const stages = getPipelineStages();
143
+ if (!stages.includes(stageName))
144
+ return null;
145
+ entry.stage = stageName;
146
+ entry.stageEnteredAt = new Date().toISOString();
147
+ saveRegistry(repoRoot, registry);
148
+ renameWorktreeWindow(issueNumber, stageName);
149
+ return entry;
150
+ }
151
+ /** Remove a worktree from the pipeline. */
152
+ export function deregisterWorktree(repoRoot, issueNumber) {
153
+ const registry = loadRegistry(repoRoot);
154
+ delete registry[String(issueNumber)];
155
+ saveRegistry(repoRoot, registry);
156
+ }
157
+ /** Get a single entry. */
158
+ export function getPipelineEntry(repoRoot, issueNumber) {
159
+ return loadRegistry(repoRoot)[String(issueNumber)] ?? null;
160
+ }
161
+ /** Get all entries. */
162
+ export function getAllPipelineEntries(repoRoot) {
163
+ return Object.values(loadRegistry(repoRoot));
164
+ }
165
+ /** Get entries at a specific stage, sorted FIFO by stageEnteredAt. */
166
+ export function getWorktreesAtStage(repoRoot, stageName) {
167
+ return getAllPipelineEntries(repoRoot)
168
+ .filter(e => e.stage === stageName)
169
+ .sort((a, b) => a.stageEnteredAt.localeCompare(b.stageEnteredAt));
170
+ }
171
+ /**
172
+ * Get worktrees that have reached the integration trigger stage,
173
+ * sorted FIFO by stageEnteredAt.
174
+ */
175
+ export function getReadyWorktrees(repoRoot) {
176
+ const triggerStage = getIntegrationTriggerStage();
177
+ return getWorktreesAtStage(repoRoot, triggerStage);
178
+ }
179
+ /** Check if a stage is at or past the integration trigger point. */
180
+ export function isAtOrPastIntegration(stageName) {
181
+ const stages = getPipelineStages();
182
+ const triggerIndex = stages.indexOf(getIntegrationTriggerStage());
183
+ const stageIndex = stages.indexOf(stageName);
184
+ return stageIndex >= triggerIndex && triggerIndex >= 0;
185
+ }
186
+ //# sourceMappingURL=pipeline-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline-registry.js","sourceRoot":"","sources":["../src/pipeline-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,cAAc,GAAG;IACnB,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,gBAAgB;IAChB,SAAS;IACT,iBAAiB;IACjB,aAAa;IACb,uBAAuB;IACvB,qBAAqB;IACrB,kBAAkB;IAClB,YAAY;IACZ,cAAc;CACjB,CAAC;AAqBF,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,wDAAwD;AACxD,MAAM,UAAU,iBAAiB;IAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAQ,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9D,OAAO,cAAc,CAAC;AAC1B,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,0BAA0B;IACtC,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAQ,CAAC;IAC5C,OAAO,MAAM,EAAE,gBAAgB,IAAI,uBAAuB,CAAC;AAC/D,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC3C,OAAO,iBAAiB,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,MAAM,YAAY,GAA2B;IACzC,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,IAAI;IAChB,cAAc,EAAE,IAAI;IACpB,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,IAAI;IACrB,WAAW,EAAE,IAAI;IACjB,qBAAqB,EAAE,GAAG;IAC1B,mBAAmB,EAAE,IAAI;IACzB,gBAAgB,EAAE,IAAI;IACtB,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,IAAI;CACrB,CAAC;AAEF,mFAAmF;AACnF,MAAM,UAAU,aAAa,CAAC,KAAa;IACvC,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACrC,CAAC;AAED,wEAAwE;AACxE,SAAS,oBAAoB,CAAC,WAAmB,EAAE,KAAa;IAC5D,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,OAAO,WAAW,EAAE,CAAC;IACxC,IAAI,CAAC;QACD,YAAY,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7G,CAAC;IAAC,MAAM,CAAC,CAAC,gDAAgD,CAAC,CAAC;AAChE,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,SAAS,eAAe,CAAC,QAAgB;IACrC,OAAO,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB;IAClC,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAqB,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB,EAAE,QAA0B;IAC9D,aAAa,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,2EAA2E;AAC3E,MAAM,UAAU,gBAAgB,CAC5B,QAAgB,EAChB,KAAuE;IAEvE,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,IAAI,GAAkB;QACxB,GAAG,KAAK;QACR,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAChB,cAAc,EAAE,GAAG;QACnB,YAAY,EAAE,GAAG;KACpB,CAAC;IACF,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;IAC3C,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjC,oBAAoB,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,gHAAgH;AAChH,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,WAAmB;IACtE,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAExE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IACvC,KAAK,CAAC,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAChD,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,WAAmB,EAAE,SAAiB;IACrF,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7C,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;IACxB,KAAK,CAAC,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAChD,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjC,oBAAoB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC7C,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,WAAmB;IACpE,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IACrC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED,0BAA0B;AAC1B,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,WAAmB;IAClE,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,IAAI,CAAC;AAC/D,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IAClD,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,SAAiB;IACnE,OAAO,qBAAqB,CAAC,QAAQ,CAAC;SACjC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC;SAClC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAC9C,MAAM,YAAY,GAAG,0BAA0B,EAAE,CAAC;IAClD,OAAO,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACvD,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,qBAAqB,CAAC,SAAiB;IACnD,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,UAAU,IAAI,YAAY,IAAI,YAAY,IAAI,CAAC,CAAC;AAC3D,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type TerminalMode, type CustomLayoutPane } from './config.js';
1
+ import { type TerminalMode } from './config.js';
2
2
  import type { SubagentSpawnDirective } from './types.js';
3
3
  /**
4
4
  * Check if there are previous Claude sessions for a given directory.
@@ -27,7 +27,9 @@ export declare function isInsideTmux(): boolean;
27
27
  * @param command - Optional command to run
28
28
  * @param windowName - Optional window name (for tracking/killing later)
29
29
  */
30
- export declare function openTmuxTerminal(directory: string, command?: string, windowName?: string): Promise<{
30
+ export declare function openTmuxTerminal(directory: string, command?: string, windowName?: string, options?: {
31
+ background?: boolean;
32
+ }): Promise<{
31
33
  success: boolean;
32
34
  error?: string;
33
35
  }>;
@@ -68,25 +70,9 @@ export declare function buildNvimClaudeCommand(worktreePath: string, nvimCommand
68
70
  * @param command - Optional command to run
69
71
  * @param windowName - Optional window name for tmux (e.g., "ghp-39")
70
72
  */
71
- export declare function openTerminal(directory: string, command?: string, windowName?: string): Promise<{
72
- success: boolean;
73
- error?: string;
74
- }>;
75
- /**
76
- * Resolve template variables in a tmux window name.
77
- * Supported: {issueNumber}, {issueTitle}, {branch}
78
- */
79
- export declare function resolveWindowName(template: string, vars: {
80
- issueNumber: number;
81
- issueTitle: string;
82
- branch?: string;
83
- }): string;
84
- /**
85
- * Open a custom tmux layout defined by the user's customLayout config.
86
- * Creates a new named window then adds splits for each subsequent pane.
87
- * Only works inside tmux.
88
- */
89
- export declare function openCustomLayout(worktreePath: string, issueNumber: number, issueTitle: string, panes: CustomLayoutPane[], envPrefix: string): Promise<{
73
+ export declare function openTerminal(directory: string, command?: string, windowName?: string, options?: {
74
+ background?: boolean;
75
+ }): Promise<{
90
76
  success: boolean;
91
77
  error?: string;
92
78
  }>;
@@ -94,20 +80,28 @@ export declare function openCustomLayout(worktreePath: string, issueNumber: numb
94
80
  * Open a terminal for parallel work on an issue.
95
81
  * If autoResume is enabled and previous sessions exist, offers to resume.
96
82
  */
97
- export declare function openParallelWorkTerminal(worktreePath: string, issueNumber: number, issueTitle: string, spawnDirective: SubagentSpawnDirective, modeOverride?: TerminalMode): Promise<{
83
+ export declare function openParallelWorkTerminal(worktreePath: string, issueNumber: number, issueTitle: string, spawnDirective: SubagentSpawnDirective, modeOverride?: TerminalMode, options?: {
84
+ background?: boolean;
85
+ }): Promise<{
98
86
  success: boolean;
99
87
  error?: string;
100
88
  resumed?: boolean;
101
89
  }>;
102
90
  /**
103
- * Check if the admin pane (ghp agents watch) is already open
91
+ * Check if the pipeline dashboard is already open (as a pane or window).
92
+ */
93
+ export declare function isDashboardOpen(): Promise<boolean>;
94
+ /**
95
+ * Capture the current pane ID. Call this BEFORE spawning agent windows
96
+ * so openAdminPane can target the correct window even after focus has moved.
104
97
  */
105
- export declare function isAdminPaneOpen(): Promise<boolean>;
98
+ export declare function captureOriginPane(): string | null;
106
99
  /**
107
- * Open the admin pane (ghp agents watch) in a tmux window.
108
- * Only opens if not already open.
100
+ * Open the pipeline dashboard as a split pane in the specified target pane
101
+ * (or current pane if no target). Always splits the caller's window, never
102
+ * the agent window, regardless of which has focus.
109
103
  */
110
- export declare function openAdminPane(): Promise<{
104
+ export declare function openAdminPane(targetPaneId?: string | null): Promise<{
111
105
  success: boolean;
112
106
  alreadyOpen?: boolean;
113
107
  error?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-utils.d.ts","sourceRoot":"","sources":["../src/terminal-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-utils.d.ts","sourceRoot":"","sources":["../src/terminal-utils.ts"],"names":[],"mappings":"AAMA,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAYzD;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAchF;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAqBD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACnC,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAwC/C;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAyBtG;AA4CD;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAAC,CA8BzH;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAC9B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,aAAa,GAAE,OAAe,GAC/B,MAAM,CAgBR;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0B/D;AA2BD;;;GAGG;AACH,wBAAsB,sBAAsB,CACxC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,cAAc,GAAE,OAAe,GAChC,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAC9B,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACnC,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAkD/C;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC1C,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,sBAAsB,EACtC,YAAY,CAAC,EAAE,YAAY,EAC3B,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACnC,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAuClE;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAoBxD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CASjD;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAkCtI;AAED;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAiBhE"}
@@ -57,29 +57,21 @@ function getTmuxConfig() {
57
57
  * @param command - Optional command to run
58
58
  * @param windowName - Optional window name (for tracking/killing later)
59
59
  */
60
- export async function openTmuxTerminal(directory, command, windowName) {
60
+ export async function openTmuxTerminal(directory, command, windowName, options) {
61
61
  const tmuxConfig = getTmuxConfig();
62
+ const bg = options?.background ?? false;
62
63
  return new Promise((resolve) => {
63
64
  let tmuxArgs;
64
65
  if (tmuxConfig.mode === 'pane') {
65
66
  // Split current window into a new pane
66
67
  const splitFlag = tmuxConfig.paneDirection === 'vertical' ? '-v' : '-h';
67
- tmuxArgs = command
68
- ? ['split-window', splitFlag, '-c', directory, command]
69
- : ['split-window', splitFlag, '-c', directory];
68
+ const baseArgs = ['split-window', splitFlag, ...(bg ? ['-d'] : []), '-c', directory];
69
+ tmuxArgs = command ? [...baseArgs, command] : baseArgs;
70
70
  }
71
71
  else {
72
72
  // Create a new window (default) with optional name
73
- if (windowName) {
74
- tmuxArgs = command
75
- ? ['new-window', '-n', windowName, '-c', directory, command]
76
- : ['new-window', '-n', windowName, '-c', directory];
77
- }
78
- else {
79
- tmuxArgs = command
80
- ? ['new-window', '-c', directory, command]
81
- : ['new-window', '-c', directory];
82
- }
73
+ const baseArgs = ['new-window', ...(bg ? ['-d'] : []), ...(windowName ? ['-n', windowName] : []), '-c', directory];
74
+ tmuxArgs = command ? [...baseArgs, command] : baseArgs;
83
75
  }
84
76
  const child = spawn('tmux', tmuxArgs, {
85
77
  stdio: 'ignore',
@@ -295,7 +287,7 @@ export async function buildNvimClaudeCommand(worktreePath, nvimCommand, _resumeS
295
287
  * @param command - Optional command to run
296
288
  * @param windowName - Optional window name for tmux (e.g., "ghp-39")
297
289
  */
298
- export async function openTerminal(directory, command, windowName) {
290
+ export async function openTerminal(directory, command, windowName, options) {
299
291
  // Check if we should use tmux
300
292
  const parallelConfig = getConfig('parallelWork');
301
293
  const preferTmux = parallelConfig?.terminal === 'tmux';
@@ -309,7 +301,7 @@ export async function openTerminal(directory, command, windowName) {
309
301
  };
310
302
  }
311
303
  console.log(chalk.dim('Using tmux for parallel terminal...'));
312
- return openTmuxTerminal(directory, command, windowName);
304
+ return openTmuxTerminal(directory, command, windowName, options);
313
305
  }
314
306
  const terminal = await detectTerminal();
315
307
  if (!terminal) {
@@ -338,115 +330,17 @@ export async function openTerminal(directory, command, windowName) {
338
330
  }, 500);
339
331
  });
340
332
  }
341
- /**
342
- * Resolve template variables in a custom layout command string.
343
- * Supported: {worktreePath}, {issueNumber}, {issueTitle}, {claudeCommand}
344
- */
345
- function resolveLayoutCommand(command, vars) {
346
- return command
347
- .replace(/\{worktreePath\}/g, vars.worktreePath)
348
- .replace(/\{issueNumber\}/g, String(vars.issueNumber))
349
- .replace(/\{issueTitle\}/g, vars.issueTitle.replace(/"/g, '\\"'))
350
- .replace(/\{claudeCommand\}/g, vars.claudeCommand);
351
- }
352
- /**
353
- * Resolve template variables in a tmux window name.
354
- * Supported: {issueNumber}, {issueTitle}, {branch}
355
- */
356
- export function resolveWindowName(template, vars) {
357
- return template
358
- .replace(/\{issueNumber\}/g, String(vars.issueNumber))
359
- .replace(/\{issueTitle\}/g, vars.issueTitle)
360
- .replace(/\{branch\}/g, vars.branch ?? '');
361
- }
362
- /**
363
- * Open a custom tmux layout defined by the user's customLayout config.
364
- * Creates a new named window then adds splits for each subsequent pane.
365
- * Only works inside tmux.
366
- */
367
- export async function openCustomLayout(worktreePath, issueNumber, issueTitle, panes, envPrefix) {
368
- if (!isInsideTmux()) {
369
- return { success: false, error: 'custom layout requires a tmux session' };
370
- }
371
- if (panes.length === 0) {
372
- return { success: false, error: 'customLayout is empty — add at least one pane in config' };
373
- }
374
- // Resolve the {claudeCommand} variable by checking if a slash command exists
375
- const resolvedCmd = await getClaudeCommand();
376
- const claudeCommandVar = resolvedCmd ? `/${resolvedCmd} ${issueNumber}` : `start ${issueNumber}`;
377
- const vars = { worktreePath, issueNumber, issueTitle, claudeCommand: claudeCommandVar };
378
- const layoutConfig = getParallelWorkConfig();
379
- const windowName = resolveWindowName(layoutConfig.tmuxWindowName, { issueNumber, issueTitle });
380
- // Create the main window with the first pane's command
381
- const firstCommand = `${envPrefix} ${resolveLayoutCommand(panes[0].command, vars)}`;
382
- const mainResult = await openTmuxTerminal(worktreePath, firstCommand, windowName);
383
- if (!mainResult.success)
384
- return mainResult;
385
- // Add each subsequent pane as a split in the named window
386
- for (let i = 1; i < panes.length; i++) {
387
- const pane = panes[i];
388
- const splitFlag = pane.split === 'vertical' ? '-v' : '-h';
389
- const sizeFlag = pane.size !== undefined ? ['-p', String(pane.size)] : [];
390
- const cmd = resolveLayoutCommand(pane.command, vars);
391
- const result = await new Promise((resolve) => {
392
- const args = [
393
- 'split-window', splitFlag,
394
- '-t', windowName,
395
- '-c', worktreePath,
396
- ...sizeFlag,
397
- cmd,
398
- ];
399
- const child = spawn('tmux', args, { stdio: 'ignore' });
400
- child.on('error', (err) => resolve({ success: false, error: err.message }));
401
- child.on('close', (code) => {
402
- if (code === 0)
403
- resolve({ success: true });
404
- else
405
- resolve({ success: false, error: `tmux split-window exited with code ${code}` });
406
- });
407
- });
408
- if (!result.success) {
409
- // Non-fatal: warn and continue with remaining panes
410
- console.log(chalk.yellow('⚠'), `Could not open pane ${i + 1}: ${result.error}`);
411
- }
412
- }
413
- // Focus the marked pane (or pane 0 by default)
414
- const focusIndex = panes.findIndex(p => p.focus);
415
- const targetPane = focusIndex >= 0 ? focusIndex : 0;
416
- if (targetPane > 0) {
417
- await new Promise((resolve) => {
418
- const child = spawn('tmux', ['select-pane', '-t', `${windowName}.${targetPane}`], { stdio: 'ignore' });
419
- child.on('close', () => resolve());
420
- child.on('error', () => resolve());
421
- });
422
- }
423
- return { success: true };
424
- }
425
333
  /**
426
334
  * Open a terminal for parallel work on an issue.
427
335
  * If autoResume is enabled and previous sessions exist, offers to resume.
428
336
  */
429
- export async function openParallelWorkTerminal(worktreePath, issueNumber, issueTitle, spawnDirective, modeOverride) {
337
+ export async function openParallelWorkTerminal(worktreePath, issueNumber, issueTitle, spawnDirective, modeOverride, options) {
430
338
  const config = getParallelWorkConfig();
431
339
  const terminalMode = modeOverride ?? config.terminalMode;
432
340
  // Terminal-only mode: just open the terminal, no Claude
433
341
  if (terminalMode === 'terminal') {
434
- const windowName = resolveWindowName(config.tmuxWindowName, { issueNumber, issueTitle });
435
- const result = await openTerminal(worktreePath, undefined, windowName);
436
- return { ...result, resumed: false };
437
- }
438
- // Build the GHP_SPAWN_CONTEXT env prefix (used by all modes that run Claude)
439
- const envJson = JSON.stringify(spawnDirective);
440
- const envPrefix = `export GHP_SPAWN_CONTEXT='${envJson.replace(/'/g, "'\\''")}' &&`;
441
- // Custom layout mode: user-defined panes
442
- if (terminalMode === 'custom') {
443
- if (config.customLayout.length === 0) {
444
- return {
445
- success: false,
446
- error: 'terminalMode is "custom" but customLayout is empty. Add panes in config under parallelWork.customLayout.',
447
- };
448
- }
449
- const result = await openCustomLayout(worktreePath, issueNumber, issueTitle, config.customLayout, envPrefix);
342
+ const windowName = `ghp-${issueNumber}`;
343
+ const result = await openTerminal(worktreePath, undefined, windowName, options);
450
344
  return { ...result, resumed: false };
451
345
  }
452
346
  // Check if we should try to resume a previous session
@@ -468,20 +362,23 @@ export async function openParallelWorkTerminal(worktreePath, issueNumber, issueT
468
362
  const claudeCommand = await getClaudeCommand();
469
363
  command = buildClaudeCommand(issueNumber, issueTitle, worktreePath, claudeCommand, shouldResume);
470
364
  }
471
- const fullCommand = `${envPrefix} ${command}`;
472
- // Name the tmux window for tracking/cleanup
473
- const windowName = resolveWindowName(config.tmuxWindowName, { issueNumber, issueTitle });
474
- const result = await openTerminal(worktreePath, fullCommand, windowName);
365
+ // Set the spawn context as an environment variable for Claude to potentially use
366
+ const envJson = JSON.stringify(spawnDirective);
367
+ const fullCommand = `export GHP_SPAWN_CONTEXT='${envJson.replace(/'/g, "'\\''")}' && ${command}`;
368
+ // Name the tmux window with the issue number for tracking/cleanup
369
+ const windowName = `ghp-${issueNumber}`;
370
+ const result = await openTerminal(worktreePath, fullCommand, windowName, options);
475
371
  return { ...result, resumed: shouldResume };
476
372
  }
477
373
  /**
478
- * Check if the admin pane (ghp agents watch) is already open
374
+ * Check if the pipeline dashboard is already open (as a pane or window).
479
375
  */
480
- export async function isAdminPaneOpen() {
376
+ export async function isDashboardOpen() {
481
377
  if (!isInsideTmux())
482
378
  return false;
483
379
  return new Promise((resolve) => {
484
- const child = spawn('tmux', ['list-windows', '-F', '#{window_name}'], {
380
+ // Check both panes (for pane mode) and windows (for window mode)
381
+ const child = spawn('tmux', ['list-panes', '-a', '-F', '#{pane_current_command} #{window_name}'], {
485
382
  stdio: ['ignore', 'pipe', 'ignore'],
486
383
  });
487
384
  let output = '';
@@ -489,31 +386,52 @@ export async function isAdminPaneOpen() {
489
386
  output += data.toString();
490
387
  });
491
388
  child.on('close', () => {
492
- const windows = output.split('\n').map(w => w.trim());
493
- resolve(windows.includes('ghp-admin'));
389
+ const lines = output.split('\n');
390
+ // Check for ghp-admin window name or ghp pipeline process
391
+ resolve(lines.some(l => l.includes('ghp-admin')));
494
392
  });
495
393
  });
496
394
  }
497
395
  /**
498
- * Open the admin pane (ghp agents watch) in a tmux window.
499
- * Only opens if not already open.
396
+ * Capture the current pane ID. Call this BEFORE spawning agent windows
397
+ * so openAdminPane can target the correct window even after focus has moved.
500
398
  */
501
- export async function openAdminPane() {
399
+ export function captureOriginPane() {
400
+ if (!process.env.TMUX)
401
+ return null;
402
+ try {
403
+ const { execFileSync } = require('child_process');
404
+ return execFileSync('tmux', ['display-message', '-p', '#{pane_id}'])
405
+ .toString().trim() || null;
406
+ }
407
+ catch {
408
+ return null;
409
+ }
410
+ }
411
+ /**
412
+ * Open the pipeline dashboard as a split pane in the specified target pane
413
+ * (or current pane if no target). Always splits the caller's window, never
414
+ * the agent window, regardless of which has focus.
415
+ */
416
+ export async function openAdminPane(targetPaneId) {
502
417
  if (!isInsideTmux()) {
503
418
  return { success: false, error: 'Not inside tmux session' };
504
419
  }
505
- // Check if admin pane is already open
506
- if (await isAdminPaneOpen()) {
420
+ if (await isDashboardOpen()) {
507
421
  return { success: true, alreadyOpen: true };
508
422
  }
509
- // Open ghp agents watch in a new window named ghp-admin
510
- const command = 'ghp agents watch';
423
+ const command = 'ghp pipeline dashboard';
511
424
  return new Promise((resolve) => {
512
- const child = spawn('tmux', ['new-window', '-n', 'ghp-admin', command], {
425
+ // -h = horizontal split (side by side: claude left, dashboard right)
426
+ // -l 35% = dashboard gets 35% width
427
+ const tmuxArgs = targetPaneId
428
+ ? ['split-window', '-h', '-d', '-l', '50%', '-t', targetPaneId, command]
429
+ : ['split-window', '-h', '-d', '-l', '50%', command];
430
+ const child = spawn('tmux', tmuxArgs, {
513
431
  stdio: 'ignore',
514
432
  });
515
433
  child.on('error', (err) => {
516
- resolve({ success: false, error: `Failed to open admin pane: ${err.message}` });
434
+ resolve({ success: false, error: `Failed to open dashboard: ${err.message}` });
517
435
  });
518
436
  child.on('close', (code) => {
519
437
  if (code === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-utils.js","sourceRoot":"","sources":["../src/terminal-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal-utils.js","sourceRoot":"","sources":["../src/terminal-utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-utils.d.ts","sourceRoot":"","sources":["../src/worktree-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAOH,KAAK,YAAY,EACjB,KAAK,QAAQ,EAChB,MAAM,gBAAgB,CAAC;AAaxB;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkE3F;AAED,MAAM,MAAM,oBAAoB,GAAG;IAC/B,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,OAAO,CAAC;CAC3B,GAAG;IACA,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC,CAAA;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CACxC,IAAI,EAAE,QAAQ,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,oBAAoB,CAAC,CAoF/B;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAMxF"}
1
+ {"version":3,"file":"worktree-utils.d.ts","sourceRoot":"","sources":["../src/worktree-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAOH,KAAK,YAAY,EACjB,KAAK,QAAQ,EAChB,MAAM,gBAAgB,CAAC;AAIxB;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoC3F;AAED,MAAM,MAAM,oBAAoB,GAAG;IAC/B,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,OAAO,CAAC;CAC3B,GAAG;IACA,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC,CAAA;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CACxC,IAAI,EAAE,QAAQ,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,oBAAoB,CAAC,CAoF/B;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAMxF"}