forge-cc 0.1.4 → 0.1.6

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 (52) hide show
  1. package/README.md +96 -10
  2. package/dist/cli.js +225 -7
  3. package/dist/cli.js.map +1 -1
  4. package/dist/go/auto-chain.d.ts +37 -5
  5. package/dist/go/auto-chain.js +220 -81
  6. package/dist/go/auto-chain.js.map +1 -1
  7. package/dist/go/executor.d.ts +2 -0
  8. package/dist/go/executor.js.map +1 -1
  9. package/dist/hooks/pre-commit.js +9 -3
  10. package/dist/hooks/pre-commit.js.map +1 -1
  11. package/dist/reporter/human.d.ts +5 -0
  12. package/dist/reporter/human.js +30 -0
  13. package/dist/reporter/human.js.map +1 -1
  14. package/dist/setup/templates.js +97 -122
  15. package/dist/setup/templates.js.map +1 -1
  16. package/dist/spec/generator.d.ts +20 -0
  17. package/dist/spec/generator.js +23 -2
  18. package/dist/spec/generator.js.map +1 -1
  19. package/dist/spec/interview.d.ts +20 -2
  20. package/dist/spec/interview.js +8 -0
  21. package/dist/spec/interview.js.map +1 -1
  22. package/dist/spec/scanner.d.ts +34 -0
  23. package/dist/spec/scanner.js +93 -0
  24. package/dist/spec/scanner.js.map +1 -1
  25. package/dist/spec/templates.d.ts +22 -0
  26. package/dist/spec/templates.js +8 -0
  27. package/dist/spec/templates.js.map +1 -1
  28. package/dist/utils/platform.d.ts +29 -0
  29. package/dist/utils/platform.js +90 -0
  30. package/dist/utils/platform.js.map +1 -0
  31. package/dist/worktree/identity.d.ts +9 -0
  32. package/dist/worktree/identity.js +32 -0
  33. package/dist/worktree/identity.js.map +1 -0
  34. package/dist/worktree/manager.d.ts +70 -0
  35. package/dist/worktree/manager.js +217 -0
  36. package/dist/worktree/manager.js.map +1 -0
  37. package/dist/worktree/parallel.d.ts +87 -0
  38. package/dist/worktree/parallel.js +328 -0
  39. package/dist/worktree/parallel.js.map +1 -0
  40. package/dist/worktree/session.d.ts +64 -0
  41. package/dist/worktree/session.js +193 -0
  42. package/dist/worktree/session.js.map +1 -0
  43. package/dist/worktree/state-merge.d.ts +43 -0
  44. package/dist/worktree/state-merge.js +162 -0
  45. package/dist/worktree/state-merge.js.map +1 -0
  46. package/hooks/pre-commit-verify.js +9 -3
  47. package/hooks/version-check.js +78 -78
  48. package/package.json +1 -1
  49. package/skills/forge-go.md +39 -0
  50. package/skills/forge-setup.md +183 -157
  51. package/skills/forge-spec.md +50 -12
  52. package/skills/forge-update.md +92 -72
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/spec/scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/spec/scanner.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,12 @@ export declare const MilestoneWaveSchema: z.ZodObject<{
45
45
  files: string[];
46
46
  }[];
47
47
  }>;
48
+ /**
49
+ * Milestones MUST fit in one agent context window. The maxContextWindowFit
50
+ * field is a hard constraint — if false, the milestone should be split.
51
+ * A milestone that requires more than ~4 agents across 2-3 waves is too
52
+ * large and risks context overflow during execution.
53
+ */
48
54
  export declare const MilestoneSchema: z.ZodObject<{
49
55
  number: z.ZodNumber;
50
56
  name: z.ZodString;
@@ -81,6 +87,8 @@ export declare const MilestoneSchema: z.ZodObject<{
81
87
  }[];
82
88
  }>, "many">;
83
89
  verificationCommands: z.ZodArray<z.ZodString, "many">;
90
+ maxContextWindowFit: z.ZodDefault<z.ZodBoolean>;
91
+ dependsOn: z.ZodDefault<z.ZodArray<z.ZodNumber, "many">>;
84
92
  }, "strip", z.ZodTypeAny, {
85
93
  number: number;
86
94
  name: string;
@@ -95,6 +103,8 @@ export declare const MilestoneSchema: z.ZodObject<{
95
103
  }[];
96
104
  }[];
97
105
  verificationCommands: string[];
106
+ maxContextWindowFit: boolean;
107
+ dependsOn: number[];
98
108
  }, {
99
109
  number: number;
100
110
  name: string;
@@ -109,6 +119,8 @@ export declare const MilestoneSchema: z.ZodObject<{
109
119
  }[];
110
120
  }[];
111
121
  verificationCommands: string[];
122
+ maxContextWindowFit?: boolean | undefined;
123
+ dependsOn?: number[] | undefined;
112
124
  }>;
113
125
  export declare const PRDSchema: z.ZodObject<{
114
126
  project: z.ZodString;
@@ -200,6 +212,8 @@ export declare const PRDSchema: z.ZodObject<{
200
212
  }[];
201
213
  }>, "many">;
202
214
  verificationCommands: z.ZodArray<z.ZodString, "many">;
215
+ maxContextWindowFit: z.ZodDefault<z.ZodBoolean>;
216
+ dependsOn: z.ZodDefault<z.ZodArray<z.ZodNumber, "many">>;
203
217
  }, "strip", z.ZodTypeAny, {
204
218
  number: number;
205
219
  name: string;
@@ -214,6 +228,8 @@ export declare const PRDSchema: z.ZodObject<{
214
228
  }[];
215
229
  }[];
216
230
  verificationCommands: string[];
231
+ maxContextWindowFit: boolean;
232
+ dependsOn: number[];
217
233
  }, {
218
234
  number: number;
219
235
  name: string;
@@ -228,6 +244,8 @@ export declare const PRDSchema: z.ZodObject<{
228
244
  }[];
229
245
  }[];
230
246
  verificationCommands: string[];
247
+ maxContextWindowFit?: boolean | undefined;
248
+ dependsOn?: number[] | undefined;
231
249
  }>, "many">;
232
250
  verification: z.ZodObject<{
233
251
  perMilestone: z.ZodArray<z.ZodString, "many">;
@@ -256,6 +274,8 @@ export declare const PRDSchema: z.ZodObject<{
256
274
  }[];
257
275
  }[];
258
276
  verificationCommands: string[];
277
+ maxContextWindowFit: boolean;
278
+ dependsOn: number[];
259
279
  }[];
260
280
  project: string;
261
281
  assignedTo: string;
@@ -301,6 +321,8 @@ export declare const PRDSchema: z.ZodObject<{
301
321
  }[];
302
322
  }[];
303
323
  verificationCommands: string[];
324
+ maxContextWindowFit?: boolean | undefined;
325
+ dependsOn?: number[] | undefined;
304
326
  }[];
305
327
  project: string;
306
328
  assignedTo: string;
@@ -14,6 +14,12 @@ export const MilestoneWaveSchema = z.object({
14
14
  files: z.array(z.string()),
15
15
  })),
16
16
  });
17
+ /**
18
+ * Milestones MUST fit in one agent context window. The maxContextWindowFit
19
+ * field is a hard constraint — if false, the milestone should be split.
20
+ * A milestone that requires more than ~4 agents across 2-3 waves is too
21
+ * large and risks context overflow during execution.
22
+ */
17
23
  export const MilestoneSchema = z.object({
18
24
  number: z.number(),
19
25
  name: z.string(),
@@ -21,6 +27,8 @@ export const MilestoneSchema = z.object({
21
27
  assignedTo: z.string(),
22
28
  waves: z.array(MilestoneWaveSchema),
23
29
  verificationCommands: z.array(z.string()),
30
+ maxContextWindowFit: z.boolean().default(true),
31
+ dependsOn: z.array(z.number()).default([]),
24
32
  });
25
33
  export const PRDSchema = z.object({
26
34
  project: z.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/spec/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/spec/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,wEAAwE;AAExE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CACxC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,MAAM,EAAE,CAAC,CAAC,KAAK,CACb,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KAC3B,CAAC,CACH;CACF,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC;IACnC,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACzC,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC9C,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC3C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KAC5B,CAAC;IACF,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IACrC,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC;QACxB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACvC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC5C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACpC,CAAC;IACF,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IACpC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KAC7B,CAAC;CACH,CAAC,CAAC;AASH,wEAAwE;AAExE;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa;IACvC,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,WAAmB;IAChD,OAAO;QACL,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/C,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,gBAAgB,EAAE,EAAE;QACpB,KAAK,EAAE;YACL,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,EAAE;SACX;QACD,WAAW,EAAE,EAAE;QACf,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE;YACZ,YAAY,EAAE,EAAE;YAChB,OAAO,EAAE,EAAE;SACZ;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Write content to a file atomically using temp+rename.
3
+ * On Windows, rename can fail if another process has the file open --
4
+ * retry with exponential backoff (3 attempts: 50ms, 100ms, 200ms).
5
+ */
6
+ export declare function atomicWriteFileSync(filePath: string, content: string): void;
7
+ /**
8
+ * Read and parse a JSON file. Returns null if the file doesn't exist.
9
+ * Throws on parse errors.
10
+ */
11
+ export declare function readJsonFileSync<T>(filePath: string): T | null;
12
+ /**
13
+ * Atomically write a JSON object to a file with pretty printing.
14
+ */
15
+ export declare function writeJsonFileSync(filePath: string, data: unknown): void;
16
+ /**
17
+ * Generate a short 8-character hex session ID from random bytes.
18
+ */
19
+ export declare function generateSessionId(): string;
20
+ /**
21
+ * Normalize a path using path.resolve and path.join.
22
+ * Ensures consistent separators on all platforms.
23
+ */
24
+ export declare function normalizePath(...segments: string[]): string;
25
+ /**
26
+ * Quote a string for safe shell usage.
27
+ * On Windows, uses double quotes. On POSIX, uses single quotes with escaping.
28
+ */
29
+ export declare function shellQuote(value: string): string;
@@ -0,0 +1,90 @@
1
+ import { writeFileSync, readFileSync, renameSync, unlinkSync, mkdirSync, existsSync, } from "node:fs";
2
+ import { join, resolve, dirname } from "node:path";
3
+ import { randomBytes } from "node:crypto";
4
+ /**
5
+ * Write content to a file atomically using temp+rename.
6
+ * On Windows, rename can fail if another process has the file open --
7
+ * retry with exponential backoff (3 attempts: 50ms, 100ms, 200ms).
8
+ */
9
+ export function atomicWriteFileSync(filePath, content) {
10
+ const resolved = resolve(filePath);
11
+ const dir = dirname(resolved);
12
+ if (!existsSync(dir)) {
13
+ mkdirSync(dir, { recursive: true });
14
+ }
15
+ const tmpFile = resolved + ".tmp." + randomBytes(4).toString("hex");
16
+ writeFileSync(tmpFile, content, "utf-8");
17
+ const delays = [50, 100, 200];
18
+ for (let attempt = 0; attempt < delays.length; attempt++) {
19
+ try {
20
+ renameSync(tmpFile, resolved);
21
+ return;
22
+ }
23
+ catch (err) {
24
+ const isLastAttempt = attempt === delays.length - 1;
25
+ if (isLastAttempt) {
26
+ // Clean up temp file on final failure, then rethrow
27
+ try {
28
+ unlinkSync(tmpFile);
29
+ }
30
+ catch {
31
+ // Ignore cleanup errors
32
+ }
33
+ throw err;
34
+ }
35
+ // Synchronous sleep for retry backoff
36
+ const waitUntil = Date.now() + delays[attempt];
37
+ while (Date.now() < waitUntil) {
38
+ // Busy-wait (sync context, no async available)
39
+ }
40
+ }
41
+ }
42
+ }
43
+ /**
44
+ * Read and parse a JSON file. Returns null if the file doesn't exist.
45
+ * Throws on parse errors.
46
+ */
47
+ export function readJsonFileSync(filePath) {
48
+ const resolved = resolve(filePath);
49
+ if (!existsSync(resolved)) {
50
+ return null;
51
+ }
52
+ const raw = readFileSync(resolved, "utf-8");
53
+ return JSON.parse(raw);
54
+ }
55
+ /**
56
+ * Atomically write a JSON object to a file with pretty printing.
57
+ */
58
+ export function writeJsonFileSync(filePath, data) {
59
+ const content = JSON.stringify(data, null, 2) + "\n";
60
+ atomicWriteFileSync(filePath, content);
61
+ }
62
+ /**
63
+ * Generate a short 8-character hex session ID from random bytes.
64
+ */
65
+ export function generateSessionId() {
66
+ return randomBytes(4).toString("hex");
67
+ }
68
+ /**
69
+ * Normalize a path using path.resolve and path.join.
70
+ * Ensures consistent separators on all platforms.
71
+ */
72
+ export function normalizePath(...segments) {
73
+ return resolve(join(...segments));
74
+ }
75
+ /**
76
+ * Quote a string for safe shell usage.
77
+ * On Windows, uses double quotes. On POSIX, uses single quotes with escaping.
78
+ */
79
+ export function shellQuote(value) {
80
+ if (process.platform === "win32") {
81
+ // Windows: wrap in double quotes, escape internal double quotes
82
+ const escaped = value.replace(/"/g, '\\"');
83
+ return `"${escaped}"`;
84
+ }
85
+ // POSIX: wrap in single quotes, escape internal single quotes
86
+ // Replace ' with '\'' (end quote, escaped quote, start quote)
87
+ const escaped = value.replace(/'/g, "'\\''");
88
+ return `'${escaped}'`;
89
+ }
90
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/utils/platform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface UserIdentity {
2
+ name: string;
3
+ email: string;
4
+ }
5
+ /**
6
+ * Get the current user's identity from git config.
7
+ * Falls back to OS username if git config is not set.
8
+ */
9
+ export declare function getCurrentUser(cwd?: string): UserIdentity;
@@ -0,0 +1,32 @@
1
+ import { execSync } from "node:child_process";
2
+ import { userInfo } from "node:os";
3
+ /**
4
+ * Get the current user's identity from git config.
5
+ * Falls back to OS username if git config is not set.
6
+ */
7
+ export function getCurrentUser(cwd) {
8
+ let name;
9
+ let email;
10
+ try {
11
+ name = execSync("git config user.name", {
12
+ cwd,
13
+ encoding: "utf-8",
14
+ stdio: "pipe",
15
+ }).trim();
16
+ }
17
+ catch {
18
+ name = userInfo().username;
19
+ }
20
+ try {
21
+ email = execSync("git config user.email", {
22
+ cwd,
23
+ encoding: "utf-8",
24
+ stdio: "pipe",
25
+ }).trim();
26
+ }
27
+ catch {
28
+ email = "unknown";
29
+ }
30
+ return { name, email };
31
+ }
32
+ //# sourceMappingURL=identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/worktree/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAOnC;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,IAAI,IAAY,CAAC;IACjB,IAAI,KAAa,CAAC;IAElB,IAAI,CAAC;QACH,IAAI,GAAG,QAAQ,CAAC,sBAAsB,EAAE;YACtC,GAAG;YACH,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,MAAM;SACd,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,GAAG,QAAQ,EAAE,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC;QACH,KAAK,GAAG,QAAQ,CAAC,uBAAuB,EAAE;YACxC,GAAG;YACH,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,MAAM;SACd,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,SAAS,CAAC;IACpB,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC"}
@@ -0,0 +1,70 @@
1
+ import type { Session } from "./session.js";
2
+ export interface WorktreeInfo {
3
+ path: string;
4
+ branch: string;
5
+ head: string;
6
+ isMain: boolean;
7
+ }
8
+ export interface CreateWorktreeOptions {
9
+ /** Base branch to create worktree from (default: current branch) */
10
+ baseBranch?: string;
11
+ /** Custom branch name. Default: forge/<user>/<slug> */
12
+ branchName?: string;
13
+ }
14
+ /**
15
+ * Get the root directory of the current git repository.
16
+ */
17
+ export declare function getRepoRoot(cwd?: string): string;
18
+ /**
19
+ * Compute the worktree base directory: ../.forge-wt/<repo-name>/
20
+ * Uses short paths to avoid Windows 260-char limit.
21
+ */
22
+ export declare function getWorktreeBaseDir(repoRoot: string): string;
23
+ /**
24
+ * Create a new git worktree with an auto-generated short session ID.
25
+ *
26
+ * Path: ../.forge-wt/<repo>/<8-char-id>/
27
+ * Branch: branchName or forge/<user>/<slug>
28
+ *
29
+ * Returns the absolute path to the new worktree and its branch name.
30
+ */
31
+ export declare function createWorktree(repoRoot: string, slug: string, userName: string, options?: CreateWorktreeOptions): {
32
+ worktreePath: string;
33
+ branch: string;
34
+ sessionId: string;
35
+ };
36
+ /**
37
+ * List all git worktrees for the repository.
38
+ *
39
+ * Parses the porcelain output of `git worktree list --porcelain`.
40
+ * Each block is separated by a blank line and contains lines like:
41
+ * worktree <path>
42
+ * HEAD <sha>
43
+ * branch refs/heads/<name>
44
+ */
45
+ export declare function listWorktrees(repoRoot: string): WorktreeInfo[];
46
+ /**
47
+ * Remove a git worktree and clean up its directory.
48
+ * Uses `git worktree remove --force` then prunes stale entries.
49
+ */
50
+ export declare function removeWorktree(repoRoot: string, worktreePath: string): void;
51
+ /**
52
+ * Check if a worktree path exists and is valid (still tracked by git).
53
+ */
54
+ export declare function isWorktreeValid(worktreePath: string): boolean;
55
+ export interface CleanupResult {
56
+ removed: Array<{
57
+ sessionId: string;
58
+ worktreePath: string;
59
+ branch: string;
60
+ }>;
61
+ errors: Array<{
62
+ sessionId: string;
63
+ error: string;
64
+ }>;
65
+ }
66
+ /**
67
+ * Remove worktrees associated with stale sessions.
68
+ * Idempotent — if a worktree is already gone, it counts as success.
69
+ */
70
+ export declare function cleanupStaleWorktrees(repoRoot: string, staleSessions: Session[]): CleanupResult;
@@ -0,0 +1,217 @@
1
+ import { execSync } from "node:child_process";
2
+ import { existsSync, rmSync } from "node:fs";
3
+ import { basename, dirname, resolve, join } from "node:path";
4
+ import { generateSessionId, normalizePath, shellQuote, } from "../utils/platform.js";
5
+ // ---------------------------------------------------------------------------
6
+ // Helpers
7
+ // ---------------------------------------------------------------------------
8
+ /** Run a git command and return trimmed stdout. */
9
+ function git(args, cwd) {
10
+ try {
11
+ return execSync(`git ${args}`, {
12
+ cwd,
13
+ encoding: "utf-8",
14
+ stdio: "pipe",
15
+ }).trim();
16
+ }
17
+ catch (err) {
18
+ const message = err instanceof Error ? err.message : String(err);
19
+ throw new Error(`git ${args.split(" ")[0]} failed: ${message}`);
20
+ }
21
+ }
22
+ // ---------------------------------------------------------------------------
23
+ // Public API
24
+ // ---------------------------------------------------------------------------
25
+ /**
26
+ * Get the root directory of the current git repository.
27
+ */
28
+ export function getRepoRoot(cwd) {
29
+ const raw = git("rev-parse --show-toplevel", cwd);
30
+ return normalizePath(raw);
31
+ }
32
+ /**
33
+ * Compute the worktree base directory: ../.forge-wt/<repo-name>/
34
+ * Uses short paths to avoid Windows 260-char limit.
35
+ */
36
+ export function getWorktreeBaseDir(repoRoot) {
37
+ const parent = dirname(resolve(repoRoot));
38
+ const repoName = basename(resolve(repoRoot));
39
+ return normalizePath(parent, ".forge-wt", repoName);
40
+ }
41
+ /**
42
+ * Create a new git worktree with an auto-generated short session ID.
43
+ *
44
+ * Path: ../.forge-wt/<repo>/<8-char-id>/
45
+ * Branch: branchName or forge/<user>/<slug>
46
+ *
47
+ * Returns the absolute path to the new worktree and its branch name.
48
+ */
49
+ export function createWorktree(repoRoot, slug, userName, options) {
50
+ const sessionId = generateSessionId();
51
+ const baseDir = getWorktreeBaseDir(repoRoot);
52
+ const worktreePath = join(baseDir, sessionId);
53
+ // Sanitize userName for use in branch refs — git rejects spaces and
54
+ // most special characters in branch names.
55
+ const safeName = userName
56
+ .toLowerCase()
57
+ .replace(/\s+/g, "-")
58
+ .replace(/[^a-z0-9._/-]/g, "");
59
+ const branch = options?.branchName ?? `forge/${safeName}/${slug}`;
60
+ // Build the git worktree add command.
61
+ // Try creating with a new branch first (-b). If the branch already exists
62
+ // the command will fail, so fall back to attaching to the existing branch.
63
+ const quotedPath = shellQuote(worktreePath);
64
+ const quotedBranch = shellQuote(branch);
65
+ const baseBranchArg = options?.baseBranch
66
+ ? ` ${shellQuote(options.baseBranch)}`
67
+ : "";
68
+ try {
69
+ // Attempt: create new branch
70
+ git(`worktree add -b ${quotedBranch} ${quotedPath}${baseBranchArg}`, repoRoot);
71
+ }
72
+ catch {
73
+ // Branch may already exist — try without -b
74
+ try {
75
+ git(`worktree add ${quotedPath} ${quotedBranch}`, repoRoot);
76
+ }
77
+ catch (err) {
78
+ const message = err instanceof Error ? err.message : String(err);
79
+ throw new Error(`Failed to create worktree at ${worktreePath} on branch ${branch}: ${message}`);
80
+ }
81
+ }
82
+ return { worktreePath: normalizePath(worktreePath), branch, sessionId };
83
+ }
84
+ /**
85
+ * List all git worktrees for the repository.
86
+ *
87
+ * Parses the porcelain output of `git worktree list --porcelain`.
88
+ * Each block is separated by a blank line and contains lines like:
89
+ * worktree <path>
90
+ * HEAD <sha>
91
+ * branch refs/heads/<name>
92
+ */
93
+ export function listWorktrees(repoRoot) {
94
+ const raw = git("worktree list --porcelain", repoRoot);
95
+ if (!raw)
96
+ return [];
97
+ const blocks = raw.split("\n\n").filter((b) => b.trim().length > 0);
98
+ const worktrees = [];
99
+ for (const block of blocks) {
100
+ const lines = block.split("\n");
101
+ let path = "";
102
+ let head = "";
103
+ let branch = "";
104
+ let isBare = false;
105
+ for (const line of lines) {
106
+ if (line.startsWith("worktree ")) {
107
+ path = line.slice("worktree ".length);
108
+ }
109
+ else if (line.startsWith("HEAD ")) {
110
+ head = line.slice("HEAD ".length);
111
+ }
112
+ else if (line.startsWith("branch ")) {
113
+ // branch refs/heads/<name> → <name>
114
+ const ref = line.slice("branch ".length);
115
+ branch = ref.replace(/^refs\/heads\//, "");
116
+ }
117
+ else if (line === "bare") {
118
+ isBare = true;
119
+ }
120
+ else if (line === "detached") {
121
+ branch = "(detached)";
122
+ }
123
+ }
124
+ if (path) {
125
+ worktrees.push({
126
+ path: normalizePath(path),
127
+ branch,
128
+ head,
129
+ isMain: worktrees.length === 0 || isBare,
130
+ });
131
+ }
132
+ }
133
+ return worktrees;
134
+ }
135
+ /**
136
+ * Remove a git worktree and clean up its directory.
137
+ * Uses `git worktree remove --force` then prunes stale entries.
138
+ */
139
+ export function removeWorktree(repoRoot, worktreePath) {
140
+ const resolved = normalizePath(worktreePath);
141
+ const quoted = shellQuote(resolved);
142
+ try {
143
+ git(`worktree remove --force ${quoted}`, repoRoot);
144
+ }
145
+ catch (err) {
146
+ // If the git command fails (e.g. worktree already partially removed),
147
+ // we still want to clean up the directory and prune.
148
+ const message = err instanceof Error ? err.message : String(err);
149
+ // Only throw if the directory still exists and we can't remove it
150
+ if (existsSync(resolved)) {
151
+ try {
152
+ rmSync(resolved, { recursive: true, force: true });
153
+ }
154
+ catch (rmErr) {
155
+ const rmMessage = rmErr instanceof Error ? rmErr.message : String(rmErr);
156
+ throw new Error(`Failed to remove worktree at ${resolved}: git error: ${message}, cleanup error: ${rmMessage}`);
157
+ }
158
+ }
159
+ }
160
+ // Clean up leftover directory if git remove succeeded but dir remains
161
+ if (existsSync(resolved)) {
162
+ rmSync(resolved, { recursive: true, force: true });
163
+ }
164
+ // Prune stale worktree entries
165
+ try {
166
+ git("worktree prune", repoRoot);
167
+ }
168
+ catch {
169
+ // Non-fatal: prune is best-effort cleanup
170
+ }
171
+ }
172
+ /**
173
+ * Check if a worktree path exists and is valid (still tracked by git).
174
+ */
175
+ export function isWorktreeValid(worktreePath) {
176
+ const resolved = normalizePath(worktreePath);
177
+ if (!existsSync(resolved)) {
178
+ return false;
179
+ }
180
+ // Determine the repo root from the worktree path itself.
181
+ // A valid worktree has a .git file pointing back to the main repo.
182
+ try {
183
+ const repoRoot = getRepoRoot(resolved);
184
+ const worktrees = listWorktrees(repoRoot);
185
+ return worktrees.some((wt) => wt.path === resolved);
186
+ }
187
+ catch {
188
+ return false;
189
+ }
190
+ }
191
+ /**
192
+ * Remove worktrees associated with stale sessions.
193
+ * Idempotent — if a worktree is already gone, it counts as success.
194
+ */
195
+ export function cleanupStaleWorktrees(repoRoot, staleSessions) {
196
+ const result = { removed: [], errors: [] };
197
+ for (const session of staleSessions) {
198
+ try {
199
+ // If the worktree directory still exists, remove it via git
200
+ if (existsSync(session.worktreePath)) {
201
+ removeWorktree(repoRoot, session.worktreePath);
202
+ }
203
+ // Whether it existed or not, record as successfully removed
204
+ result.removed.push({
205
+ sessionId: session.id,
206
+ worktreePath: session.worktreePath,
207
+ branch: session.branch,
208
+ });
209
+ }
210
+ catch (err) {
211
+ const message = err instanceof Error ? err.message : String(err);
212
+ result.errors.push({ sessionId: session.id, error: message });
213
+ }
214
+ }
215
+ return result;
216
+ }
217
+ //# sourceMappingURL=manager.js.map