@camaradesuk/git-worktree-tools 1.12.0 → 1.13.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 (62) hide show
  1. package/README.md +14 -14
  2. package/dist/api/create.d.ts.map +1 -1
  3. package/dist/api/create.js +30 -4
  4. package/dist/api/create.js.map +1 -1
  5. package/dist/cli/lswt.js +4 -0
  6. package/dist/cli/lswt.js.map +1 -1
  7. package/dist/cli/newpr.d.ts.map +1 -1
  8. package/dist/cli/newpr.js +53 -25
  9. package/dist/cli/newpr.js.map +1 -1
  10. package/dist/cli/prs.d.ts.map +1 -1
  11. package/dist/cli/prs.js +34 -2
  12. package/dist/cli/prs.js.map +1 -1
  13. package/dist/cli/wt/config.d.ts.map +1 -1
  14. package/dist/cli/wt/config.js +62 -58
  15. package/dist/cli/wt/config.js.map +1 -1
  16. package/dist/cli/wt/list.d.ts.map +1 -1
  17. package/dist/cli/wt/list.js +5 -0
  18. package/dist/cli/wt/list.js.map +1 -1
  19. package/dist/cli/wt/prs.d.ts.map +1 -1
  20. package/dist/cli/wt/prs.js +2 -0
  21. package/dist/cli/wt/prs.js.map +1 -1
  22. package/dist/cli/wtconfig.js +135 -107
  23. package/dist/cli/wtconfig.js.map +1 -1
  24. package/dist/cli/wtstate.js +27 -7
  25. package/dist/cli/wtstate.js.map +1 -1
  26. package/dist/lib/cleanpr/index.d.ts +2 -1
  27. package/dist/lib/cleanpr/index.d.ts.map +1 -1
  28. package/dist/lib/cleanpr/index.js +3 -1
  29. package/dist/lib/cleanpr/index.js.map +1 -1
  30. package/dist/lib/cleanpr/worktree-info.d.ts +0 -4
  31. package/dist/lib/cleanpr/worktree-info.d.ts.map +1 -1
  32. package/dist/lib/cleanpr/worktree-info.js +2 -28
  33. package/dist/lib/cleanpr/worktree-info.js.map +1 -1
  34. package/dist/lib/config.d.ts.map +1 -1
  35. package/dist/lib/config.js +13 -0
  36. package/dist/lib/config.js.map +1 -1
  37. package/dist/lib/lswt/formatters.d.ts +0 -4
  38. package/dist/lib/lswt/formatters.d.ts.map +1 -1
  39. package/dist/lib/lswt/formatters.js +0 -14
  40. package/dist/lib/lswt/formatters.js.map +1 -1
  41. package/dist/lib/lswt/index.d.ts +2 -1
  42. package/dist/lib/lswt/index.d.ts.map +1 -1
  43. package/dist/lib/lswt/index.js +3 -1
  44. package/dist/lib/lswt/index.js.map +1 -1
  45. package/dist/lib/lswt/types.d.ts +2 -0
  46. package/dist/lib/lswt/types.d.ts.map +1 -1
  47. package/dist/lib/lswt/worktree-info.d.ts.map +1 -1
  48. package/dist/lib/lswt/worktree-info.js +3 -2
  49. package/dist/lib/lswt/worktree-info.js.map +1 -1
  50. package/dist/lib/prs/command.d.ts.map +1 -1
  51. package/dist/lib/prs/command.js +22 -16
  52. package/dist/lib/prs/command.js.map +1 -1
  53. package/dist/lib/worktree-setup.d.ts +32 -0
  54. package/dist/lib/worktree-setup.d.ts.map +1 -0
  55. package/dist/lib/worktree-setup.js +114 -0
  56. package/dist/lib/worktree-setup.js.map +1 -0
  57. package/dist/lib/worktree-utils.d.ts +32 -0
  58. package/dist/lib/worktree-utils.d.ts.map +1 -0
  59. package/dist/lib/worktree-utils.js +101 -0
  60. package/dist/lib/worktree-utils.js.map +1 -0
  61. package/package.json +1 -1
  62. package/schemas/worktreerc.schema.json +2 -2
@@ -4,7 +4,9 @@
4
4
  // Argument parsing
5
5
  export { parseArgs, getHelpText } from './args.js';
6
6
  // Formatters
7
- export { extractPrNumber, isMainWorktree, formatTypeLabel, sortWorktrees, getDisplayPath, formatJsonOutput, } from './formatters.js';
7
+ export { isMainWorktree, formatTypeLabel, sortWorktrees, getDisplayPath, formatJsonOutput, } from './formatters.js';
8
+ // Shared worktree utilities
9
+ export { extractPrNumber, extractPrNumberAsync } from '../worktree-utils.js';
8
10
  export { gatherWorktreeInfo, createDefaultDeps } from './worktree-info.js';
9
11
  // Environment detection
10
12
  export { detectEnvironment, isCommandAvailable, getGitVersion, parseGitVersion, isGitVersionAtLeast, getDefaultTerminal, getShell, WORKTREE_MOVE_MIN_VERSION, } from './environment.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/lswt/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,mBAAmB;AACnB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEnD,aAAa;AACb,OAAO,EACL,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE3E,wBAAwB;AACxB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,EACR,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAE1B,UAAU;AACV,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAIjF,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAEpF,gBAAgB;AAChB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAe;AACf,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/lswt/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,mBAAmB;AACnB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEnD,aAAa;AACb,OAAO,EACL,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,4BAA4B;AAC5B,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAI7E,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE3E,wBAAwB;AACxB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,EACR,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAE1B,UAAU;AACV,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAIjF,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAEpF,gBAAgB;AAChB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAe;AACf,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
@@ -14,6 +14,8 @@ export interface ListOptions {
14
14
  quiet?: boolean;
15
15
  /** Disable colored output (--no-color flag) */
16
16
  noColor?: boolean;
17
+ /** Worktree naming pattern for PR number extraction */
18
+ worktreePattern?: string;
17
19
  }
18
20
  /**
19
21
  * Worktree display information
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/lswt/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/lswt/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-info.d.ts","sourceRoot":"","sources":["../../../src/lib/lswt/worktree-info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG/D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC3C,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;IAC5C,qBAAqB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;IACzD,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACvD,WAAW,EAAE,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CAC5C;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,eAAe,EAAE,CAAC,CAqD5B;AAiCD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,UAAU,CA2C9C"}
1
+ {"version":3,"file":"worktree-info.d.ts","sourceRoot":"","sources":["../../../src/lib/lswt/worktree-info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAI/D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC3C,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;IAC5C,qBAAqB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;IACzD,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACvD,WAAW,EAAE,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CAC5C;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,eAAe,EAAE,CAAC,CAqD5B;AAiCD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,UAAU,CA2C9C"}
@@ -4,7 +4,8 @@
4
4
  import * as path from 'path';
5
5
  import * as git from '../git.js';
6
6
  import * as github from '../github.js';
7
- import { extractPrNumber, isMainWorktree, sortWorktrees } from './formatters.js';
7
+ import { isMainWorktree, sortWorktrees } from './formatters.js';
8
+ import { extractPrNumber } from '../worktree-utils.js';
8
9
  /**
9
10
  * Gather worktree information - core business logic
10
11
  * Uses dependency injection for testability
@@ -14,7 +15,7 @@ export async function gatherWorktreeInfo(repoRoot, options, deps) {
14
15
  const result = [];
15
16
  for (const wt of worktrees) {
16
17
  const name = path.basename(wt.path);
17
- const prNumber = extractPrNumber(wt.path);
18
+ const prNumber = extractPrNumber(wt.path, { worktreePattern: options.worktreePattern });
18
19
  const isMain = isMainWorktree(wt.path, repoRoot);
19
20
  const hasChanges = deps.hasUncommittedChanges(wt.path);
20
21
  let type;
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-info.js","sourceRoot":"","sources":["../../../src/lib/lswt/worktree-info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree-info.js","sourceRoot":"","sources":["../../../src/lib/lswt/worktree-info.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/lib/prs/command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAaH,OAAO,EAEL,KAAK,iBAAiB,EAGvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAIL,SAAS,EAEV,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAGtE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiK7E"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/lib/prs/command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,OAAO,EAEL,KAAK,iBAAiB,EAGvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAIL,SAAS,EAEV,MAAM,mBAAmB,CAAC;AAG3B;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAGtE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuK7E"}
@@ -10,7 +10,6 @@
10
10
  */
11
11
  import * as path from 'path';
12
12
  import * as git from '../git.js';
13
- import * as colors from '../colors.js';
14
13
  import { loadConfig } from '../config.js';
15
14
  import { isGhInstalled, isAuthenticated, getRepoInfo } from '../github.js';
16
15
  import { fetchPrsWithWorktrees, applyFilters, clearPrCache, createDefaultDataDeps, } from './data.js';
@@ -18,6 +17,7 @@ import { createDefaultFilterState, } from './types.js';
18
17
  import { formatPrListHeader, formatPrSummary, formatPrTable } from './formatters.js';
19
18
  import { runPrInteractiveMode, createDefaultPrInteractiveDeps } from './interactive.js';
20
19
  import { createSuccessResult, createErrorResult, formatJsonResult, ErrorCode, getErrorSuggestion, } from '../json-output.js';
20
+ import { printError, print } from '../ui/index.js';
21
21
  /**
22
22
  * Output error in JSON format
23
23
  */
@@ -43,8 +43,10 @@ export async function runPrsCommand(options) {
43
43
  outputJsonError(ErrorCode.NOT_GIT_REPO, 'Not in a git repository');
44
44
  }
45
45
  else {
46
- console.error(colors.error('Not in a git repository'));
47
- console.error(colors.dim('Please run this command from within a git repository.'));
46
+ printError({
47
+ title: 'Not in a git repository',
48
+ hint: 'Please run this command from within a git repository.',
49
+ });
48
50
  }
49
51
  process.exit(1);
50
52
  }
@@ -53,8 +55,10 @@ export async function runPrsCommand(options) {
53
55
  outputJsonError(ErrorCode.GH_NOT_INSTALLED, 'GitHub CLI (gh) is not installed');
54
56
  }
55
57
  else {
56
- console.error(colors.error('GitHub CLI (gh) is not installed'));
57
- console.error(colors.dim('Install it from: https://cli.github.com/'));
58
+ printError({
59
+ title: 'GitHub CLI (gh) is not installed',
60
+ hint: 'Install it from: https://cli.github.com/',
61
+ });
58
62
  }
59
63
  process.exit(1);
60
64
  }
@@ -63,8 +67,10 @@ export async function runPrsCommand(options) {
63
67
  outputJsonError(ErrorCode.GH_NOT_AUTHENTICATED, 'Not authenticated with GitHub CLI');
64
68
  }
65
69
  else {
66
- console.error(colors.error('Not authenticated with GitHub CLI'));
67
- console.error(colors.dim('Run: gh auth login'));
70
+ printError({
71
+ title: 'Not authenticated with GitHub CLI',
72
+ hint: 'Run: gh auth login',
73
+ });
68
74
  }
69
75
  process.exit(1);
70
76
  }
@@ -97,10 +103,10 @@ export async function runPrsCommand(options) {
97
103
  outputJsonError(ErrorCode.GH_API_ERROR, error instanceof Error ? error.message : 'Failed to fetch PRs');
98
104
  }
99
105
  else {
100
- console.error(colors.error('Failed to fetch PRs from GitHub'));
101
- if (error instanceof Error) {
102
- console.error(colors.dim(error.message));
103
- }
106
+ printError({
107
+ title: 'Failed to fetch PRs from GitHub',
108
+ detail: error instanceof Error ? error.message : undefined,
109
+ });
104
110
  }
105
111
  process.exit(1);
106
112
  }
@@ -165,11 +171,11 @@ export async function runPrsCommand(options) {
165
171
  else {
166
172
  // Non-interactive table output - apply filters here
167
173
  const filteredPrs = applyFilters(prs, filterState);
168
- console.log(formatPrListHeader(repoName));
169
- console.log(formatPrSummary(filteredPrs));
170
- console.log();
171
- console.log(formatPrTable(filteredPrs, previewLabel));
172
- console.log();
174
+ print(formatPrListHeader(repoName));
175
+ print(formatPrSummary(filteredPrs));
176
+ print('');
177
+ print(formatPrTable(filteredPrs, previewLabel));
178
+ print('');
173
179
  }
174
180
  }
175
181
  //# sourceMappingURL=command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/lib/prs/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/lib/prs/command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,GAAG,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,wBAAwB,GAIzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,EACT,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAe,EAAE,OAAe;IAC9D,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5F,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA0B;IAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC;IACvC,0EAA0E;IAC1E,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1D,MAAM,WAAW,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC;IAEjE,sBAAsB;IACtB,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,QAAQ,EAAE,CAAC;YACb,eAAe,CAAC,SAAS,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,UAAU,CAAC;gBACT,KAAK,EAAE,yBAAyB;gBAChC,IAAI,EAAE,uDAAuD;aAC9D,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;QACrB,IAAI,QAAQ,EAAE,CAAC;YACb,eAAe,CAAC,SAAS,CAAC,gBAAgB,EAAE,kCAAkC,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YACN,UAAU,CAAC;gBACT,KAAK,EAAE,kCAAkC;gBACzC,IAAI,EAAE,0CAA0C;aACjD,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvB,IAAI,QAAQ,EAAE,CAAC;YACb,eAAe,CAAC,SAAS,CAAC,oBAAoB,EAAE,mCAAmC,CAAC,CAAC;QACvF,CAAC;aAAM,CAAC;YACN,UAAU,CAAC;gBACT,KAAK,EAAE,mCAAmC;gBAC1C,IAAI,EAAE,oBAAoB;aAC3B,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE3D,gCAAgC;IAChC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,SAAS,CAAC;IAEtD,YAAY;IACZ,MAAM,IAAI,GAAG,qBAAqB,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;IAE9C,IAAI,YAAY,EAAE,CAAC;QACjB,YAAY,EAAE,CAAC;IACjB,CAAC;IAED,IAAI,GAAoB,CAAC;IACzB,IAAI,CAAC;QACH,4DAA4D;QAC5D,wDAAwD;QACxD,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAEvD,GAAG,GAAG,qBAAqB,CACzB;YACE,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,+BAA+B;YACvD,MAAM,EAAE,OAAO,CAAC,KAAK;YACrB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,EACD,IAAI,EACJ,YAAY,EACZ,QAAQ,CACT,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,QAAQ,EAAE,CAAC;YACb,eAAe,CACb,SAAS,CAAC,YAAY,EACtB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAC/D,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,UAAU,CAAC;gBACT,KAAK,EAAE,iCAAiC;gBACxC,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC3D,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,0CAA0C;IAC1C,MAAM,WAAW,GAAG,wBAAwB,EAAE,CAAC;IAE/C,gCAAgC;IAChC,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QAC5B,WAAW,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7D,CAAC;SAAM,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACtC,WAAW,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3C,CAAC;SAAM,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACtC,WAAW,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,mBAAmB;IACnB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC;IAClC,CAAC;SAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,sBAAsB;IACtB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,uBAAuB;IACvB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,mBAAmB,CAAgB,KAAK,EAAE;YACvD,KAAK,EAAE,WAAW,CAAC,MAAM;YACzB,OAAO,EAAE;gBACP,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBACtC,UAAU,EAAE,WAAW,CAAC,UAAU;gBAClC,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,WAAW,EAAE,WAAW,CAAC,WAAW;aACrC;YACD,GAAG,EAAE,WAAW;SACjB,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,gDAAgD;QAChD,MAAM,eAAe,GAAG,8BAA8B,EAAE,CAAC;QACzD,eAAe,CAAC,UAAU,GAAG,KAAK,IAAI,EAAE;YACtC,YAAY,EAAE,CAAC;YACf,OAAO,qBAAqB,CAC1B;gBACE,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,+BAA+B;gBACvD,MAAM,EAAE,OAAO,CAAC,KAAK;gBACrB,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,EACD,IAAI,EACJ,IAAI,EACJ,QAAQ,CACT,CAAC;QACJ,CAAC,CAAC;QAEF,sEAAsE;QACtE,MAAM,oBAAoB,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;IACxF,CAAC;SAAM,CAAC;QACN,oDAAoD;QACpD,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACnD,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpC,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;QACpC,KAAK,CAAC,EAAE,CAAC,CAAC;QACV,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;QAChD,KAAK,CAAC,EAAE,CAAC,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Worktree parent directory auto-setup
3
+ *
4
+ * When worktreeParent resolves to a path inside the repo, automatically:
5
+ * 1. Create the directory (with confirmation in interactive mode)
6
+ * 2. Add it to .gitignore
7
+ */
8
+ export interface EnsureWorktreeParentOptions {
9
+ /** Resolved absolute path of the worktree parent directory */
10
+ resolvedParentDir: string;
11
+ /** Repository root path */
12
+ repoRoot: string;
13
+ /** Whether to prompt for confirmation (false = auto-proceed) */
14
+ interactive: boolean;
15
+ }
16
+ export interface EnsureWorktreeParentResult {
17
+ /** Whether the directory was created */
18
+ created: boolean;
19
+ /** Whether .gitignore was updated */
20
+ gitignoreUpdated: boolean;
21
+ /** Whether the user declined (only in interactive mode) */
22
+ declined: boolean;
23
+ }
24
+ /**
25
+ * Ensure the worktree parent directory exists and is gitignored (if inside repo).
26
+ *
27
+ * Only acts when the resolved parent dir is inside the repo root.
28
+ * In interactive mode, prompts for confirmation before making changes.
29
+ * In non-interactive mode, proceeds automatically.
30
+ */
31
+ export declare function ensureWorktreeParentDir(options: EnsureWorktreeParentOptions): Promise<EnsureWorktreeParentResult>;
32
+ //# sourceMappingURL=worktree-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-setup.d.ts","sourceRoot":"","sources":["../../src/lib/worktree-setup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,MAAM,WAAW,2BAA2B;IAC1C,8DAA8D;IAC9D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,2DAA2D;IAC3D,QAAQ,EAAE,OAAO,CAAC;CACnB;AAkDD;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC,CA+DrC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Worktree parent directory auto-setup
3
+ *
4
+ * When worktreeParent resolves to a path inside the repo, automatically:
5
+ * 1. Create the directory (with confirmation in interactive mode)
6
+ * 2. Add it to .gitignore
7
+ */
8
+ import fs from 'fs';
9
+ import path from 'path';
10
+ import { logger } from './logger.js';
11
+ import { promptConfirm } from './prompts.js';
12
+ /**
13
+ * Check if a path is inside the repo root
14
+ */
15
+ function isInsideRepo(dirPath, repoRoot) {
16
+ let resolved = path.resolve(dirPath);
17
+ let resolvedRoot = path.resolve(repoRoot);
18
+ if (process.platform === 'win32') {
19
+ resolved = resolved.toLowerCase();
20
+ resolvedRoot = resolvedRoot.toLowerCase();
21
+ }
22
+ return resolved.startsWith(resolvedRoot + path.sep) || resolved === resolvedRoot;
23
+ }
24
+ /**
25
+ * Get the relative path from repo root for gitignore entry.
26
+ * Always uses forward slashes regardless of platform (.gitignore standard).
27
+ */
28
+ function getGitignoreEntry(dirPath, repoRoot) {
29
+ return path.relative(repoRoot, dirPath).replace(/\\/g, '/');
30
+ }
31
+ /**
32
+ * Check if a gitignore entry already exists
33
+ */
34
+ function gitignoreContains(gitignorePath, entry) {
35
+ if (!fs.existsSync(gitignorePath)) {
36
+ return false;
37
+ }
38
+ const content = fs.readFileSync(gitignorePath, 'utf8');
39
+ const regex = new RegExp(`^\\/?${entry.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\s*$`, 'm');
40
+ return regex.test(content);
41
+ }
42
+ /**
43
+ * Add an entry to .gitignore
44
+ */
45
+ function addToGitignore(gitignorePath, entry) {
46
+ let content = '';
47
+ if (fs.existsSync(gitignorePath)) {
48
+ content = fs.readFileSync(gitignorePath, 'utf8');
49
+ }
50
+ const addition = `# git-worktree-tools worktree directory\n${entry}\n`;
51
+ const trimmed = content.trimEnd();
52
+ content = trimmed ? trimmed + '\n\n' + addition : addition;
53
+ fs.writeFileSync(gitignorePath, content, 'utf8');
54
+ }
55
+ /**
56
+ * Ensure the worktree parent directory exists and is gitignored (if inside repo).
57
+ *
58
+ * Only acts when the resolved parent dir is inside the repo root.
59
+ * In interactive mode, prompts for confirmation before making changes.
60
+ * In non-interactive mode, proceeds automatically.
61
+ */
62
+ export async function ensureWorktreeParentDir(options) {
63
+ const { resolvedParentDir, repoRoot, interactive } = options;
64
+ const result = {
65
+ created: false,
66
+ gitignoreUpdated: false,
67
+ declined: false,
68
+ };
69
+ // Only act for in-repo directories
70
+ if (!isInsideRepo(resolvedParentDir, repoRoot)) {
71
+ return result;
72
+ }
73
+ const dirExists = fs.existsSync(resolvedParentDir);
74
+ const gitignorePath = path.join(repoRoot, '.gitignore');
75
+ const gitignoreEntry = getGitignoreEntry(resolvedParentDir, repoRoot);
76
+ // If parent dir IS the repo root, relative path is empty — nothing to gitignore
77
+ if (!gitignoreEntry) {
78
+ return result;
79
+ }
80
+ const alreadyIgnored = gitignoreContains(gitignorePath, gitignoreEntry);
81
+ // Nothing to do
82
+ if (dirExists && alreadyIgnored) {
83
+ return result;
84
+ }
85
+ // Prompt in interactive mode
86
+ if (interactive && (!dirExists || !alreadyIgnored)) {
87
+ const actions = [];
88
+ if (!dirExists) {
89
+ actions.push(`create \`${gitignoreEntry}/\``);
90
+ }
91
+ if (!alreadyIgnored) {
92
+ actions.push(`add \`${gitignoreEntry}\` to .gitignore`);
93
+ }
94
+ const confirmed = await promptConfirm(`Will ${actions.join(' and ')}. Continue?`, true);
95
+ if (!confirmed) {
96
+ result.declined = true;
97
+ return result;
98
+ }
99
+ }
100
+ // Create directory
101
+ if (!dirExists) {
102
+ fs.mkdirSync(resolvedParentDir, { recursive: true });
103
+ result.created = true;
104
+ logger.info(`Created worktree directory: ${gitignoreEntry}/`);
105
+ }
106
+ // Update .gitignore
107
+ if (!alreadyIgnored) {
108
+ addToGitignore(gitignorePath, gitignoreEntry);
109
+ result.gitignoreUpdated = true;
110
+ logger.info(`Added ${gitignoreEntry} to .gitignore`);
111
+ }
112
+ return result;
113
+ }
114
+ //# sourceMappingURL=worktree-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-setup.js","sourceRoot":"","sources":["../../src/lib/worktree-setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Shared worktree utilities used by lswt, cleanpr, and other tools
3
+ */
4
+ /**
5
+ * Options for PR number extraction
6
+ */
7
+ export interface ExtractPrNumberOptions {
8
+ /** Configured worktree naming pattern */
9
+ worktreePattern?: string;
10
+ }
11
+ /**
12
+ * Extract PR number from a worktree path using config-aware pattern matching.
13
+ *
14
+ * Resolution chain:
15
+ * 1. Configured pattern (if provided)
16
+ * 2. Default pattern ({repo}.pr{number})
17
+ *
18
+ * For async extraction with gh CLI fallback, use extractPrNumberAsync.
19
+ */
20
+ export declare function extractPrNumber(worktreePath: string, options?: ExtractPrNumberOptions): number | null;
21
+ /**
22
+ * Extract PR number with gh CLI fallback.
23
+ *
24
+ * Resolution chain:
25
+ * 1. Configured pattern
26
+ * 2. Default pattern
27
+ * 3. gh CLI: look up branch from git worktree list, query gh pr list --head <branch>
28
+ */
29
+ export declare function extractPrNumberAsync(worktreePath: string, options?: ExtractPrNumberOptions & {
30
+ cwd?: string;
31
+ }): Promise<number | null>;
32
+ //# sourceMappingURL=worktree-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-utils.d.ts","sourceRoot":"","sources":["../../src/lib/worktree-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,yCAAyC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,sBAA2B,GACnC,MAAM,GAAG,IAAI,CA8Bf;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,sBAAsB,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GACtD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4BxB"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Shared worktree utilities used by lswt, cleanpr, and other tools
3
+ */
4
+ import * as path from 'path';
5
+ import { DEFAULT_WORKTREE_PATTERN } from './constants.js';
6
+ import * as github from './github.js';
7
+ import * as git from './git.js';
8
+ import { logger } from './logger.js';
9
+ /**
10
+ * Convert a worktree naming pattern to a regex for PR number extraction.
11
+ * Replaces {number} with a capture group and other placeholders with .*
12
+ */
13
+ function patternToRegex(pattern) {
14
+ if (!pattern.includes('{number}')) {
15
+ return null;
16
+ }
17
+ // Escape regex special characters first, then replace placeholders
18
+ let regexStr = pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
19
+ // Now replace escaped placeholder sequences
20
+ regexStr = regexStr.replace('\\{repo\\}', '.*?');
21
+ regexStr = regexStr.replace('\\{number\\}', '(\\d+)');
22
+ regexStr = regexStr.replace('\\{branch\\}', '.*?');
23
+ regexStr = regexStr.replace('\\{slug\\}', '.*?');
24
+ // Anchor to full string
25
+ regexStr = `^${regexStr}$`;
26
+ try {
27
+ return new RegExp(regexStr);
28
+ }
29
+ catch {
30
+ return null;
31
+ }
32
+ }
33
+ /**
34
+ * Extract PR number from a worktree path using config-aware pattern matching.
35
+ *
36
+ * Resolution chain:
37
+ * 1. Configured pattern (if provided)
38
+ * 2. Default pattern ({repo}.pr{number})
39
+ *
40
+ * For async extraction with gh CLI fallback, use extractPrNumberAsync.
41
+ */
42
+ export function extractPrNumber(worktreePath, options = {}) {
43
+ if (!worktreePath) {
44
+ return null;
45
+ }
46
+ const name = path.basename(worktreePath);
47
+ // 1. Try configured pattern
48
+ if (options.worktreePattern) {
49
+ const regex = patternToRegex(options.worktreePattern);
50
+ if (regex) {
51
+ const match = name.match(regex);
52
+ if (match) {
53
+ return parseInt(match[1], 10);
54
+ }
55
+ }
56
+ }
57
+ // 2. Try default pattern (skip if same as configured)
58
+ if (options.worktreePattern !== DEFAULT_WORKTREE_PATTERN) {
59
+ const defaultRegex = patternToRegex(DEFAULT_WORKTREE_PATTERN);
60
+ if (defaultRegex) {
61
+ const match = name.match(defaultRegex);
62
+ if (match) {
63
+ return parseInt(match[1], 10);
64
+ }
65
+ }
66
+ }
67
+ return null;
68
+ }
69
+ /**
70
+ * Extract PR number with gh CLI fallback.
71
+ *
72
+ * Resolution chain:
73
+ * 1. Configured pattern
74
+ * 2. Default pattern
75
+ * 3. gh CLI: look up branch from git worktree list, query gh pr list --head <branch>
76
+ */
77
+ export async function extractPrNumberAsync(worktreePath, options = {}) {
78
+ // Try synchronous extraction first
79
+ const syncResult = extractPrNumber(worktreePath, options);
80
+ if (syncResult !== null) {
81
+ return syncResult;
82
+ }
83
+ // 3. gh CLI fallback: find branch for this worktree, then query GitHub
84
+ try {
85
+ const worktrees = git.listWorktrees(options.cwd);
86
+ const resolvedPath = path.resolve(worktreePath);
87
+ const wt = worktrees.find((w) => path.resolve(w.path) === resolvedPath);
88
+ if (wt?.branch) {
89
+ logger.debug(`Falling back to gh CLI for PR extraction: branch=${wt.branch}`);
90
+ const prInfo = github.getPrByBranch(wt.branch, options.cwd);
91
+ if (prInfo) {
92
+ return prInfo.number;
93
+ }
94
+ }
95
+ }
96
+ catch (error) {
97
+ logger.debug('gh CLI fallback for PR extraction failed: %s', error instanceof Error ? error.message : String(error));
98
+ }
99
+ return null;
100
+ }
101
+ //# sourceMappingURL=worktree-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-utils.js","sourceRoot":"","sources":["../../src/lib/worktree-utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camaradesuk/git-worktree-tools",
3
- "version": "1.12.0",
3
+ "version": "1.13.0",
4
4
  "description": "Git worktree workflow tools: create PRs, manage worktrees, sync configs. Cross-platform CLI for Windows, macOS, and Linux.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -33,12 +33,12 @@
33
33
  "worktreePattern": {
34
34
  "type": "string",
35
35
  "default": "{repo}.pr{number}",
36
- "description": "Worktree directory naming pattern. Placeholders: {repo}, {number}, {branch}, {slug} ({slug} is the branch name after the first '/', filesystem-safe)"
36
+ "description": "Worktree directory naming pattern. Placeholders: {repo}, {number}, {branch}, {slug}. {slug} is the branch name after the first '/', made filesystem-safe. Doubled or trailing separators (., -, _) are cleaned automatically."
37
37
  },
38
38
  "worktreeParent": {
39
39
  "type": "string",
40
40
  "default": "..",
41
- "description": "Parent directory for worktrees (absolute or relative to repo root)"
41
+ "description": "Parent directory for worktrees (absolute or relative to repo root). When the resolved path is inside the repository, the directory will be auto-created and added to .gitignore."
42
42
  },
43
43
  "syncPatterns": {
44
44
  "type": "array",