cluttry 1.0.3 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/README.md +203 -300
  3. package/dist/commands/completions.d.ts +16 -0
  4. package/dist/commands/completions.d.ts.map +1 -0
  5. package/dist/commands/completions.js +46 -0
  6. package/dist/commands/completions.js.map +1 -0
  7. package/dist/commands/explain-copy.d.ts +11 -0
  8. package/dist/commands/explain-copy.d.ts.map +1 -0
  9. package/dist/commands/explain-copy.js +34 -0
  10. package/dist/commands/explain-copy.js.map +1 -0
  11. package/dist/commands/finish.d.ts +20 -0
  12. package/dist/commands/finish.d.ts.map +1 -0
  13. package/dist/commands/finish.js +817 -0
  14. package/dist/commands/finish.js.map +1 -0
  15. package/dist/commands/gc.d.ts +22 -0
  16. package/dist/commands/gc.d.ts.map +1 -0
  17. package/dist/commands/gc.js +163 -0
  18. package/dist/commands/gc.js.map +1 -0
  19. package/dist/commands/init.d.ts.map +1 -1
  20. package/dist/commands/init.js +1 -0
  21. package/dist/commands/init.js.map +1 -1
  22. package/dist/commands/open.d.ts +15 -1
  23. package/dist/commands/open.d.ts.map +1 -1
  24. package/dist/commands/open.js +99 -17
  25. package/dist/commands/open.js.map +1 -1
  26. package/dist/commands/resume.d.ts +21 -0
  27. package/dist/commands/resume.d.ts.map +1 -0
  28. package/dist/commands/resume.js +106 -0
  29. package/dist/commands/resume.js.map +1 -0
  30. package/dist/commands/rm.d.ts.map +1 -1
  31. package/dist/commands/rm.js +6 -14
  32. package/dist/commands/rm.js.map +1 -1
  33. package/dist/commands/spawn.d.ts +3 -0
  34. package/dist/commands/spawn.d.ts.map +1 -1
  35. package/dist/commands/spawn.js +182 -19
  36. package/dist/commands/spawn.js.map +1 -1
  37. package/dist/index.d.ts +4 -0
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +198 -9
  40. package/dist/index.js.map +1 -1
  41. package/dist/lib/completions.d.ts +35 -0
  42. package/dist/lib/completions.d.ts.map +1 -0
  43. package/dist/lib/completions.js +368 -0
  44. package/dist/lib/completions.js.map +1 -0
  45. package/dist/lib/config.d.ts.map +1 -1
  46. package/dist/lib/config.js +2 -0
  47. package/dist/lib/config.js.map +1 -1
  48. package/dist/lib/errors.d.ts +43 -0
  49. package/dist/lib/errors.d.ts.map +1 -0
  50. package/dist/lib/errors.js +251 -0
  51. package/dist/lib/errors.js.map +1 -0
  52. package/dist/lib/git.d.ts +17 -0
  53. package/dist/lib/git.d.ts.map +1 -1
  54. package/dist/lib/git.js +78 -10
  55. package/dist/lib/git.js.map +1 -1
  56. package/dist/lib/safety.d.ts +79 -0
  57. package/dist/lib/safety.d.ts.map +1 -0
  58. package/dist/lib/safety.js +133 -0
  59. package/dist/lib/safety.js.map +1 -0
  60. package/dist/lib/secrets.d.ts +29 -0
  61. package/dist/lib/secrets.d.ts.map +1 -1
  62. package/dist/lib/secrets.js +115 -0
  63. package/dist/lib/secrets.js.map +1 -1
  64. package/dist/lib/session.d.ts +93 -0
  65. package/dist/lib/session.d.ts.map +1 -0
  66. package/dist/lib/session.js +254 -0
  67. package/dist/lib/session.js.map +1 -0
  68. package/dist/lib/types.d.ts +6 -1
  69. package/dist/lib/types.d.ts.map +1 -1
  70. package/package.json +1 -1
  71. package/.claude/settings.local.json +0 -7
  72. package/src/commands/doctor.ts +0 -222
  73. package/src/commands/init.ts +0 -120
  74. package/src/commands/list.ts +0 -133
  75. package/src/commands/open.ts +0 -78
  76. package/src/commands/prune.ts +0 -36
  77. package/src/commands/rm.ts +0 -125
  78. package/src/commands/shell.ts +0 -99
  79. package/src/commands/spawn.ts +0 -169
  80. package/src/index.ts +0 -123
  81. package/src/lib/config.ts +0 -120
  82. package/src/lib/git.ts +0 -243
  83. package/src/lib/output.ts +0 -102
  84. package/src/lib/paths.ts +0 -108
  85. package/src/lib/secrets.ts +0 -193
  86. package/src/lib/types.ts +0 -69
  87. package/tests/config.test.ts +0 -102
  88. package/tests/paths.test.ts +0 -155
  89. package/tests/secrets.test.ts +0 -150
  90. package/tsconfig.json +0 -20
  91. package/vitest.config.ts +0 -15
@@ -1 +1 @@
1
- {"version":3,"file":"rm.d.ts","sourceRoot":"","sources":["../../src/commands/rm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,UAAU,SAAS;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAgBD,wBAAsB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAqFhF"}
1
+ {"version":3,"file":"rm.d.ts","sourceRoot":"","sources":["../../src/commands/rm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,UAAU,SAAS;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAgBD,wBAAsB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA4EhF"}
@@ -7,6 +7,7 @@ import { createInterface } from 'node:readline';
7
7
  import { isGitRepo, getRepoRoot, listWorktrees, removeWorktree, deleteBranch, isWorktreeDirty, getCurrentBranch, } from '../lib/git.js';
8
8
  import { resolveBranchOrPath } from '../lib/paths.js';
9
9
  import * as out from '../lib/output.js';
10
+ import { fail, errors } from '../lib/errors.js';
10
11
  async function confirm(message) {
11
12
  const rl = createInterface({
12
13
  input: process.stdin,
@@ -22,8 +23,7 @@ async function confirm(message) {
22
23
  export async function rm(branchOrPath, options) {
23
24
  // Check if we're in a git repo
24
25
  if (!isGitRepo()) {
25
- out.error('Not a git repository. Run this command from within a git repo.');
26
- process.exit(1);
26
+ fail(errors.notGitRepo());
27
27
  }
28
28
  const repoRoot = getRepoRoot();
29
29
  const worktrees = listWorktrees(repoRoot);
@@ -35,26 +35,18 @@ export async function rm(branchOrPath, options) {
35
35
  // Resolve the worktree
36
36
  const resolved = resolveBranchOrPath(branchOrPath, wtList, repoRoot);
37
37
  if (!resolved) {
38
- out.error(`Worktree not found: ${branchOrPath}`);
39
- out.info('Available worktrees:');
40
- for (const wt of wtList) {
41
- out.log(` • ${wt.branch ?? '(detached)'} → ${wt.path}`);
42
- }
43
- process.exit(1);
38
+ const available = wtList.map(w => w.branch ?? w.path);
39
+ fail(errors.worktreeNotFound(branchOrPath, available));
44
40
  }
45
41
  const { path: wtPath, branch } = resolved;
46
42
  // Check if it's the main worktree (the original checkout)
47
43
  if (wtPath === repoRoot) {
48
- out.error('Cannot remove the main worktree.');
49
- out.info('This is your primary repository checkout.');
50
- process.exit(1);
44
+ fail(errors.cannotRemoveMainWorktree());
51
45
  }
52
46
  // Check if dirty
53
47
  const dirty = isWorktreeDirty(wtPath);
54
48
  if (dirty && !options.force) {
55
- out.error('Worktree has uncommitted changes.');
56
- out.info('Use --force to remove anyway (changes will be lost).');
57
- process.exit(1);
49
+ fail(errors.dirtyWorkingTree(branch ?? branchOrPath));
58
50
  }
59
51
  // Warn and confirm if dirty and force
60
52
  if (dirty && options.force && !options.yes) {
@@ -1 +1 @@
1
- {"version":3,"file":"rm.js","sourceRoot":"","sources":["../../src/commands/rm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rm.js","sourceRoot":"","sources":["../../src/commands/rm.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,12 @@ interface SpawnOptions {
8
8
  new?: boolean;
9
9
  path?: string;
10
10
  base?: string;
11
+ baseBranch?: string;
11
12
  mode?: SecretMode;
12
13
  run?: string;
13
14
  agent?: string;
15
+ finishOnExit?: boolean;
16
+ dryRun?: boolean;
14
17
  }
15
18
  export declare function spawn(branch: string, options: SpawnOptions): Promise<void>;
16
19
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../src/commands/spawn.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,UAAU,YAAY;IACpB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAuIhF"}
1
+ {"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../src/commands/spawn.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwBH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD,UAAU,YAAY;IACpB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA6GD,wBAAsB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA4MhF"}
@@ -4,16 +4,107 @@
4
4
  * Create a worktree for a branch with optional secrets handling and hooks.
5
5
  */
6
6
  import { existsSync } from 'node:fs';
7
- import { isGitRepo, getRepoRoot, getRepoName, branchExists, addWorktree, listWorktrees, runCommand, commandExists, } from '../lib/git.js';
7
+ import { spawn as spawnProcess } from 'node:child_process';
8
+ import { isGitRepo, getRepoRoot, getRepoName, branchExists, addWorktree, listWorktrees, runCommand, commandExists, getCurrentBranch, isDetachedHead, getDefaultBranch, } from '../lib/git.js';
8
9
  import { getMergedConfig, configExists } from '../lib/config.js';
9
10
  import { getDefaultWorktreePath } from '../lib/paths.js';
10
- import { processSecrets } from '../lib/secrets.js';
11
+ import { processSecrets, generateCopyPlan, formatCopyPlan } from '../lib/secrets.js';
12
+ import { createSessionManifest } from '../lib/session.js';
11
13
  import * as out from '../lib/output.js';
14
+ import { fail, errors } from '../lib/errors.js';
15
+ import { finish } from './finish.js';
16
+ /**
17
+ * Run an agent command and wait for it to exit
18
+ * Returns the exit code and whether it was interrupted
19
+ */
20
+ async function runAgentWithExitHandling(command, cwd) {
21
+ return new Promise((resolve) => {
22
+ const isWindows = process.platform === 'win32';
23
+ const shell = isWindows ? 'cmd.exe' : '/bin/sh';
24
+ const shellArgs = isWindows ? ['/c', command] : ['-c', command];
25
+ let interrupted = false;
26
+ const child = spawnProcess(shell, shellArgs, {
27
+ cwd,
28
+ stdio: 'inherit',
29
+ env: process.env,
30
+ });
31
+ // Handle Ctrl+C gracefully
32
+ const sigintHandler = () => {
33
+ interrupted = true;
34
+ child.kill('SIGINT');
35
+ };
36
+ const sigtermHandler = () => {
37
+ interrupted = true;
38
+ child.kill('SIGTERM');
39
+ };
40
+ process.on('SIGINT', sigintHandler);
41
+ process.on('SIGTERM', sigtermHandler);
42
+ child.on('close', (code) => {
43
+ // Clean up signal handlers
44
+ process.removeListener('SIGINT', sigintHandler);
45
+ process.removeListener('SIGTERM', sigtermHandler);
46
+ resolve({ exitCode: code ?? 1, interrupted });
47
+ });
48
+ child.on('error', () => {
49
+ process.removeListener('SIGINT', sigintHandler);
50
+ process.removeListener('SIGTERM', sigtermHandler);
51
+ resolve({ exitCode: 1, interrupted });
52
+ });
53
+ });
54
+ }
55
+ /**
56
+ * Show post-agent menu and handle user choice
57
+ */
58
+ async function showPostAgentMenu(worktreePath, agentExitCode, interrupted) {
59
+ const readline = await import('node:readline');
60
+ // Change to worktree directory for finish command
61
+ process.chdir(worktreePath);
62
+ out.newline();
63
+ out.header('Agent Session Ended');
64
+ if (interrupted) {
65
+ out.log(out.fmt.yellow(' Agent was interrupted (Ctrl+C)'));
66
+ }
67
+ else if (agentExitCode !== 0) {
68
+ out.log(out.fmt.yellow(` Agent exited with error (code ${agentExitCode})`));
69
+ }
70
+ else {
71
+ out.log(out.fmt.green(' Agent exited successfully'));
72
+ }
73
+ out.newline();
74
+ out.log('What would you like to do?');
75
+ out.log(` ${out.fmt.bold('f')}) Finish session (commit, PR, cleanup)`);
76
+ out.log(` ${out.fmt.bold('c')}) Cleanup only (remove worktree)`);
77
+ out.log(` ${out.fmt.bold('n')}) Do nothing (exit)`);
78
+ const rl = readline.createInterface({
79
+ input: process.stdin,
80
+ output: process.stdout,
81
+ });
82
+ const answer = await new Promise((resolve) => {
83
+ rl.question('Choice [f/c/n]: ', (ans) => {
84
+ rl.close();
85
+ resolve(ans.toLowerCase().trim());
86
+ });
87
+ });
88
+ if (answer === 'f' || answer === 'finish') {
89
+ // Run finish in interactive mode
90
+ await finish({});
91
+ }
92
+ else if (answer === 'c' || answer === 'cleanup') {
93
+ // Run finish with cleanup only, skip PR
94
+ await finish({
95
+ skipCommit: true,
96
+ cleanup: true,
97
+ });
98
+ }
99
+ else {
100
+ out.log(out.fmt.dim('Exiting without cleanup.'));
101
+ out.log(` ${out.fmt.dim('Run')} cry finish ${out.fmt.dim('later to complete the session.')}`);
102
+ }
103
+ }
12
104
  export async function spawn(branch, options) {
13
105
  // Check if we're in a git repo
14
106
  if (!isGitRepo()) {
15
- out.error('Not a git repository. Run this command from within a git repo.');
16
- process.exit(1);
107
+ fail(errors.notGitRepo());
17
108
  }
18
109
  const repoRoot = getRepoRoot();
19
110
  const repoName = getRepoName();
@@ -35,26 +126,70 @@ export async function spawn(branch, options) {
35
126
  });
36
127
  // Check if destination already exists
37
128
  if (existsSync(worktreePath)) {
38
- out.error(`Destination already exists: ${worktreePath}`);
39
- out.info('Remove it first or choose a different path with --path');
40
- process.exit(1);
129
+ fail(errors.destinationExists(worktreePath));
41
130
  }
42
131
  // Check if worktree already exists for this branch
43
132
  const existingWorktrees = listWorktrees(repoRoot);
44
133
  const existingForBranch = existingWorktrees.find((w) => w.branch === branch);
45
134
  if (existingForBranch) {
46
- out.error(`A worktree already exists for branch '${branch}'`);
47
- out.info(`Path: ${existingForBranch.worktree}`);
48
- out.info('Remove it first with: cry rm ' + branch);
49
- process.exit(1);
135
+ fail(errors.worktreeAlreadyExists(branch, existingForBranch.worktree));
50
136
  }
51
137
  // Determine if we need to create the branch
52
138
  const needsNewBranch = options.new || !branchExists(branch, repoRoot);
139
+ // Determine base branch with proper fallback chain:
140
+ // 1. User-provided --base-branch option
141
+ // 2. Current branch (if not detached)
142
+ // 3. Default branch (origin/HEAD or main/master)
143
+ // 4. Error if detached HEAD and no fallback
144
+ let baseBranch;
145
+ if (options.baseBranch) {
146
+ baseBranch = options.baseBranch;
147
+ }
148
+ else if (isDetachedHead(repoRoot)) {
149
+ // Try to get default branch as fallback
150
+ const defaultBranch = getDefaultBranch(repoRoot);
151
+ if (defaultBranch) {
152
+ baseBranch = defaultBranch;
153
+ out.warn(`Detached HEAD detected. Using default branch '${defaultBranch}' as base.`);
154
+ }
155
+ else {
156
+ fail(errors.detachedHead());
157
+ }
158
+ }
159
+ else {
160
+ const currentBranch = getCurrentBranch(repoRoot);
161
+ if (currentBranch) {
162
+ baseBranch = currentBranch;
163
+ }
164
+ else {
165
+ // Fallback to default branch
166
+ const defaultBranch = getDefaultBranch(repoRoot);
167
+ baseBranch = defaultBranch ?? 'main';
168
+ }
169
+ }
53
170
  out.header('Creating worktree');
54
171
  out.log(` Branch: ${out.fmt.branch(branch)}${needsNewBranch ? out.fmt.gray(' (new)') : ''}`);
172
+ out.log(` Base: ${out.fmt.branch(baseBranch)}`);
55
173
  out.log(` Path: ${out.fmt.path(worktreePath)}`);
56
174
  out.log(` Mode: ${out.fmt.cyan(mode)}`);
57
175
  out.newline();
176
+ // Handle dry-run mode
177
+ if (options.dryRun) {
178
+ out.header('Dry Run - Copy Plan');
179
+ if (mode === 'none') {
180
+ out.log(out.fmt.dim(' Secret mode is "none" — no files will be copied/symlinked'));
181
+ }
182
+ else if (config.include.length === 0) {
183
+ out.log(out.fmt.dim(' No include patterns configured'));
184
+ }
185
+ else {
186
+ const plan = await generateCopyPlan(config.include, repoRoot);
187
+ out.log(formatCopyPlan(plan, mode));
188
+ }
189
+ out.newline();
190
+ out.log(out.fmt.dim('Dry run complete. No changes were made.'));
191
+ return;
192
+ }
58
193
  // Create the worktree
59
194
  try {
60
195
  addWorktree(worktreePath, branch, needsNewBranch, repoRoot);
@@ -64,6 +199,22 @@ export async function spawn(branch, options) {
64
199
  out.error(`Failed to create worktree: ${error.message}`);
65
200
  process.exit(1);
66
201
  }
202
+ // Create session manifest
203
+ const agentChoice = options.agent ?? 'none';
204
+ try {
205
+ const session = createSessionManifest({
206
+ repoRoot,
207
+ branch,
208
+ baseBranch,
209
+ worktreePath,
210
+ agent: agentChoice !== 'none' ? agentChoice : undefined,
211
+ });
212
+ out.success(`Session created: ${out.fmt.dim(session.id)}`);
213
+ }
214
+ catch (error) {
215
+ // Non-fatal: session manifest is helpful but not required
216
+ out.warn(`Could not create session manifest: ${error.message}`);
217
+ }
67
218
  // Handle secrets
68
219
  if (mode !== 'none' && config.include.length > 0) {
69
220
  out.newline();
@@ -106,22 +257,34 @@ export async function spawn(branch, options) {
106
257
  }
107
258
  }
108
259
  // Handle agent launch
109
- const agentChoice = options.agent ?? 'none';
110
- if (agentChoice === 'claude') {
111
- const agentCmd = config.agentCommand;
260
+ if (agentChoice === 'claude' || agentChoice === 'cursor') {
261
+ // Determine the actual command to run
262
+ // For 'claude', use config.agentCommand (defaults to 'claude')
263
+ // For 'cursor', use 'cursor' command
264
+ const agentCmd = agentChoice === 'cursor' ? 'cursor' : config.agentCommand;
112
265
  out.newline();
113
266
  if (commandExists(agentCmd)) {
114
267
  out.log(`Launching ${agentCmd}...`);
115
- await runCommand(agentCmd, worktreePath);
268
+ if (options.finishOnExit) {
269
+ // Use special handler that waits for exit and shows menu
270
+ const { exitCode, interrupted } = await runAgentWithExitHandling(agentCmd, worktreePath);
271
+ await showPostAgentMenu(worktreePath, exitCode, interrupted);
272
+ }
273
+ else {
274
+ // Just run the command normally
275
+ await runCommand(agentCmd, worktreePath);
276
+ }
116
277
  }
117
278
  else {
118
279
  out.warn(`Agent command '${agentCmd}' not found.`);
119
280
  out.info('Install Claude Code: https://docs.anthropic.com/claude-code');
120
281
  }
121
282
  }
122
- // Final summary
123
- out.newline();
124
- out.header('Worktree ready');
125
- out.log(` ${out.fmt.dim('cd')} ${worktreePath}`);
283
+ // Final summary (only if not using finish-on-exit, since finish handles its own output)
284
+ if (!options.finishOnExit || agentChoice === 'none') {
285
+ out.newline();
286
+ out.header('Worktree ready');
287
+ out.log(` ${out.fmt.dim('cd')} ${worktreePath}`);
288
+ }
126
289
  }
127
290
  //# sourceMappingURL=spawn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../src/commands/spawn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../src/commands/spawn.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,10 @@
3
3
  * cry - Git worktrees made painless for vibecoders
4
4
  *
5
5
  * A CLI tool for managing git worktrees with parallel AI-agent sessions in mind.
6
+ *
7
+ * Shorthand syntax:
8
+ * cry <name> → cry spawn <name> --new
9
+ * cry <name> claude → cry spawn <name> --new --agent claude
6
10
  */
7
11
  export {};
8
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;GAIG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG"}