@claudetree/cli 0.4.4 → 0.4.5

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 (113) hide show
  1. package/dist/commands/batch.js +1 -1
  2. package/dist/commands/batch.js.map +1 -1
  3. package/dist/commands/batch.test.d.ts +2 -0
  4. package/dist/commands/batch.test.d.ts.map +1 -0
  5. package/dist/commands/batch.test.js +230 -0
  6. package/dist/commands/batch.test.js.map +1 -0
  7. package/dist/commands/bustercall/index.d.ts +4 -0
  8. package/dist/commands/bustercall/index.d.ts.map +1 -0
  9. package/dist/commands/bustercall/index.js +4 -0
  10. package/dist/commands/bustercall/index.js.map +1 -0
  11. package/dist/commands/bustercall/issueFilters.d.ts +21 -0
  12. package/dist/commands/bustercall/issueFilters.d.ts.map +1 -0
  13. package/dist/commands/bustercall/issueFilters.js +62 -0
  14. package/dist/commands/bustercall/issueFilters.js.map +1 -0
  15. package/dist/commands/bustercall/issueFilters.test.d.ts +2 -0
  16. package/dist/commands/bustercall/issueFilters.test.d.ts.map +1 -0
  17. package/dist/commands/bustercall/issueFilters.test.js +151 -0
  18. package/dist/commands/bustercall/issueFilters.test.js.map +1 -0
  19. package/dist/commands/bustercall/sessionManager.d.ts +14 -0
  20. package/dist/commands/bustercall/sessionManager.d.ts.map +1 -0
  21. package/dist/commands/bustercall/sessionManager.js +34 -0
  22. package/dist/commands/bustercall/sessionManager.js.map +1 -0
  23. package/dist/commands/bustercall/sessionManager.test.d.ts +2 -0
  24. package/dist/commands/bustercall/sessionManager.test.d.ts.map +1 -0
  25. package/dist/commands/bustercall/sessionManager.test.js +79 -0
  26. package/dist/commands/bustercall/sessionManager.test.js.map +1 -0
  27. package/dist/commands/bustercall/statusDisplay.d.ts +15 -0
  28. package/dist/commands/bustercall/statusDisplay.d.ts.map +1 -0
  29. package/dist/commands/bustercall/statusDisplay.js +39 -0
  30. package/dist/commands/bustercall/statusDisplay.js.map +1 -0
  31. package/dist/commands/bustercall/statusDisplay.test.d.ts +2 -0
  32. package/dist/commands/bustercall/statusDisplay.test.d.ts.map +1 -0
  33. package/dist/commands/bustercall/statusDisplay.test.js +111 -0
  34. package/dist/commands/bustercall/statusDisplay.test.js.map +1 -0
  35. package/dist/commands/bustercall.d.ts.map +1 -1
  36. package/dist/commands/bustercall.js +1 -88
  37. package/dist/commands/bustercall.js.map +1 -1
  38. package/dist/commands/bustercall.test.d.ts +2 -0
  39. package/dist/commands/bustercall.test.d.ts.map +1 -0
  40. package/dist/commands/bustercall.test.js +258 -0
  41. package/dist/commands/bustercall.test.js.map +1 -0
  42. package/dist/commands/chain/chainDisplay.d.ts +18 -0
  43. package/dist/commands/chain/chainDisplay.d.ts.map +1 -0
  44. package/dist/commands/chain/chainDisplay.js +71 -0
  45. package/dist/commands/chain/chainDisplay.js.map +1 -0
  46. package/dist/commands/chain/chainDisplay.test.d.ts +2 -0
  47. package/dist/commands/chain/chainDisplay.test.d.ts.map +1 -0
  48. package/dist/commands/chain/chainDisplay.test.js +128 -0
  49. package/dist/commands/chain/chainDisplay.test.js.map +1 -0
  50. package/dist/commands/chain/chainSession.d.ts +26 -0
  51. package/dist/commands/chain/chainSession.d.ts.map +1 -0
  52. package/dist/commands/chain/chainSession.js +47 -0
  53. package/dist/commands/chain/chainSession.js.map +1 -0
  54. package/dist/commands/chain/chainSession.test.d.ts +2 -0
  55. package/dist/commands/chain/chainSession.test.d.ts.map +1 -0
  56. package/dist/commands/chain/chainSession.test.js +93 -0
  57. package/dist/commands/chain/chainSession.test.js.map +1 -0
  58. package/dist/commands/chain/index.d.ts +3 -0
  59. package/dist/commands/chain/index.d.ts.map +1 -0
  60. package/dist/commands/chain/index.js +3 -0
  61. package/dist/commands/chain/index.js.map +1 -0
  62. package/dist/commands/chain.d.ts.map +1 -1
  63. package/dist/commands/chain.js +2 -91
  64. package/dist/commands/chain.js.map +1 -1
  65. package/dist/commands/chain.test.d.ts +2 -0
  66. package/dist/commands/chain.test.d.ts.map +1 -0
  67. package/dist/commands/chain.test.js +216 -0
  68. package/dist/commands/chain.test.js.map +1 -0
  69. package/dist/commands/clean.test.d.ts +2 -0
  70. package/dist/commands/clean.test.d.ts.map +1 -0
  71. package/dist/commands/clean.test.js +193 -0
  72. package/dist/commands/clean.test.js.map +1 -0
  73. package/dist/commands/demo.d.ts.map +1 -1
  74. package/dist/commands/demo.js +4 -2
  75. package/dist/commands/demo.js.map +1 -1
  76. package/dist/commands/demo.test.d.ts +2 -0
  77. package/dist/commands/demo.test.d.ts.map +1 -0
  78. package/dist/commands/demo.test.js +34 -0
  79. package/dist/commands/demo.test.js.map +1 -0
  80. package/dist/commands/doctor.test.d.ts +2 -0
  81. package/dist/commands/doctor.test.d.ts.map +1 -0
  82. package/dist/commands/doctor.test.js +324 -0
  83. package/dist/commands/doctor.test.js.map +1 -0
  84. package/dist/commands/resume.test.d.ts +2 -0
  85. package/dist/commands/resume.test.d.ts.map +1 -0
  86. package/dist/commands/resume.test.js +362 -0
  87. package/dist/commands/resume.test.js.map +1 -0
  88. package/dist/commands/start/index.d.ts +2 -0
  89. package/dist/commands/start/index.d.ts.map +1 -1
  90. package/dist/commands/start/index.js +2 -0
  91. package/dist/commands/start/index.js.map +1 -1
  92. package/dist/commands/start/progressTracker.d.ts +18 -0
  93. package/dist/commands/start/progressTracker.d.ts.map +1 -0
  94. package/dist/commands/start/progressTracker.js +72 -0
  95. package/dist/commands/start/progressTracker.js.map +1 -0
  96. package/dist/commands/start/progressTracker.test.d.ts +2 -0
  97. package/dist/commands/start/progressTracker.test.d.ts.map +1 -0
  98. package/dist/commands/start/progressTracker.test.js +100 -0
  99. package/dist/commands/start/progressTracker.test.js.map +1 -0
  100. package/dist/commands/start/validationGates.d.ts +7 -0
  101. package/dist/commands/start/validationGates.d.ts.map +1 -0
  102. package/dist/commands/start/validationGates.js +48 -0
  103. package/dist/commands/start/validationGates.js.map +1 -0
  104. package/dist/commands/start/validationGates.test.d.ts +2 -0
  105. package/dist/commands/start/validationGates.test.d.ts.map +1 -0
  106. package/dist/commands/start/validationGates.test.js +66 -0
  107. package/dist/commands/start/validationGates.test.js.map +1 -0
  108. package/dist/commands/start.d.ts.map +1 -1
  109. package/dist/commands/start.js +3 -75
  110. package/dist/commands/start.js.map +1 -1
  111. package/dist/commands/stop.js +1 -1
  112. package/dist/commands/stop.js.map +1 -1
  113. package/package.json +7 -7
@@ -87,7 +87,7 @@ export const batchCommand = new Command('batch')
87
87
  .filter((line) => line && !line.startsWith('#'));
88
88
  issues.push(...fileIssues);
89
89
  }
90
- catch (err) {
90
+ catch {
91
91
  console.error(`Error reading file: ${options.file}`);
92
92
  process.exit(1);
93
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/commands/batch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/commands/batch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=batch.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.test.d.ts","sourceRoot":"","sources":["../../src/commands/batch.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,230 @@
1
+ import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
2
+ import { mkdtemp, rm, mkdir, writeFile } from 'node:fs/promises';
3
+ import { tmpdir } from 'node:os';
4
+ import { join } from 'node:path';
5
+ // Mock spawn
6
+ const mockSpawn = vi.fn();
7
+ vi.mock('node:child_process', () => ({
8
+ spawn: (...args) => mockSpawn(...args),
9
+ }));
10
+ // Mock GitHubAdapter and SlackNotifier
11
+ const mockListIssues = vi.fn();
12
+ const mockNotifyBatch = vi.fn();
13
+ vi.mock('@claudetree/core', () => ({
14
+ GitHubAdapter: vi.fn().mockImplementation(() => ({
15
+ listIssues: mockListIssues,
16
+ })),
17
+ SlackNotifier: vi.fn().mockImplementation(() => ({
18
+ notifyBatch: mockNotifyBatch,
19
+ })),
20
+ }));
21
+ import { batchCommand } from './batch.js';
22
+ describe('batchCommand', () => {
23
+ let testDir;
24
+ let originalCwd;
25
+ let originalExit;
26
+ let consoleLogSpy;
27
+ let consoleErrorSpy;
28
+ let consoleClearSpy;
29
+ let originalEnv;
30
+ beforeEach(async () => {
31
+ testDir = await mkdtemp(join(tmpdir(), 'claudetree-batch-test-'));
32
+ originalCwd = process.cwd();
33
+ process.chdir(testDir);
34
+ originalExit = process.exit;
35
+ process.exit = vi.fn();
36
+ originalEnv = { ...process.env };
37
+ consoleLogSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
38
+ consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
39
+ consoleClearSpy = vi.spyOn(console, 'clear').mockImplementation(() => { });
40
+ mockSpawn.mockReset();
41
+ mockListIssues.mockReset();
42
+ mockNotifyBatch.mockReset();
43
+ });
44
+ afterEach(async () => {
45
+ process.chdir(originalCwd);
46
+ process.exit = originalExit;
47
+ process.env = originalEnv;
48
+ consoleLogSpy.mockRestore();
49
+ consoleErrorSpy.mockRestore();
50
+ consoleClearSpy.mockRestore();
51
+ vi.clearAllMocks();
52
+ await rm(testDir, { recursive: true, force: true });
53
+ });
54
+ describe('when not initialized', () => {
55
+ it('should display error and exit with code 1', async () => {
56
+ const exitError = new Error('process.exit called');
57
+ process.exit.mockImplementation(() => {
58
+ throw exitError;
59
+ });
60
+ await expect(batchCommand.parseAsync(['node', 'test', '101', '102'])).rejects.toThrow('process.exit called');
61
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Error: claudetree not initialized. Run "claudetree init" first.');
62
+ expect(process.exit).toHaveBeenCalledWith(1);
63
+ });
64
+ });
65
+ describe('when initialized', () => {
66
+ beforeEach(async () => {
67
+ await mkdir(join(testDir, '.claudetree'), { recursive: true });
68
+ await writeFile(join(testDir, '.claudetree', 'config.json'), JSON.stringify({
69
+ worktreeDir: '.worktrees',
70
+ github: {
71
+ token: 'test-token',
72
+ owner: 'test-owner',
73
+ repo: 'test-repo',
74
+ },
75
+ }));
76
+ });
77
+ describe('when no issues specified', () => {
78
+ it('should display error and exit with code 1', async () => {
79
+ const exitError = new Error('process.exit called');
80
+ process.exit.mockImplementation(() => {
81
+ throw exitError;
82
+ });
83
+ await expect(batchCommand.parseAsync(['node', 'test'])).rejects.toThrow('process.exit called');
84
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Error: No issues specified.');
85
+ expect(process.exit).toHaveBeenCalledWith(1);
86
+ });
87
+ });
88
+ describe('with issue arguments', () => {
89
+ it('should process provided issue numbers', async () => {
90
+ const mockProc = {
91
+ unref: vi.fn(),
92
+ on: vi.fn(),
93
+ };
94
+ mockSpawn.mockReturnValue(mockProc);
95
+ await batchCommand.parseAsync(['node', 'test', '101', '102', '--dry-run']);
96
+ expect(consoleLogSpy).toHaveBeenCalledWith(expect.stringContaining('[Dry Run]'));
97
+ });
98
+ it('should deduplicate issues', async () => {
99
+ await batchCommand.parseAsync([
100
+ 'node',
101
+ 'test',
102
+ '101',
103
+ '101',
104
+ '102',
105
+ '--dry-run',
106
+ ]);
107
+ // Should show only 2 unique issues
108
+ const logCalls = consoleLogSpy.mock.calls.flat().join('\n');
109
+ expect(logCalls).toContain('101');
110
+ expect(logCalls).toContain('102');
111
+ });
112
+ });
113
+ describe('with --file option', () => {
114
+ it('should read issues from file', async () => {
115
+ const issuesFile = join(testDir, 'issues.txt');
116
+ await writeFile(issuesFile, '101\n102\n103\n');
117
+ await batchCommand.parseAsync([
118
+ 'node',
119
+ 'test',
120
+ '--file',
121
+ issuesFile,
122
+ '--dry-run',
123
+ ]);
124
+ expect(consoleLogSpy).toHaveBeenCalledWith(expect.stringContaining('[Dry Run]'));
125
+ });
126
+ it('should ignore comments in file', async () => {
127
+ const issuesFile = join(testDir, 'issues.txt');
128
+ await writeFile(issuesFile, '# comment\n101\n102\n');
129
+ await batchCommand.parseAsync([
130
+ 'node',
131
+ 'test',
132
+ '--file',
133
+ issuesFile,
134
+ '--dry-run',
135
+ ]);
136
+ const logCalls = consoleLogSpy.mock.calls.flat().join('\n');
137
+ expect(logCalls).not.toContain('comment');
138
+ });
139
+ it('should error when file not found', async () => {
140
+ const exitError = new Error('process.exit called');
141
+ process.exit.mockImplementation(() => {
142
+ throw exitError;
143
+ });
144
+ await expect(batchCommand.parseAsync([
145
+ 'node',
146
+ 'test',
147
+ '--file',
148
+ 'nonexistent.txt',
149
+ ])).rejects.toThrow('process.exit called');
150
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Error reading file: nonexistent.txt');
151
+ expect(process.exit).toHaveBeenCalledWith(1);
152
+ });
153
+ });
154
+ describe('with --label option', () => {
155
+ it('should fetch issues from GitHub by label', async () => {
156
+ mockListIssues.mockResolvedValue([
157
+ { number: 101 },
158
+ { number: 102 },
159
+ { number: 103 },
160
+ ]);
161
+ await batchCommand.parseAsync([
162
+ 'node',
163
+ 'test',
164
+ '--label',
165
+ 'bug',
166
+ '--dry-run',
167
+ ]);
168
+ expect(mockListIssues).toHaveBeenCalledWith('test-owner', 'test-repo', {
169
+ labels: 'bug',
170
+ state: 'open',
171
+ });
172
+ });
173
+ it('should error when GitHub config is missing', async () => {
174
+ await writeFile(join(testDir, '.claudetree', 'config.json'), JSON.stringify({ worktreeDir: '.worktrees' }));
175
+ delete process.env.GITHUB_TOKEN;
176
+ const exitError = new Error('process.exit called');
177
+ process.exit.mockImplementation(() => {
178
+ throw exitError;
179
+ });
180
+ await expect(batchCommand.parseAsync(['node', 'test', '--label', 'bug'])).rejects.toThrow('process.exit called');
181
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Error: GitHub token and repo config required for --label');
182
+ expect(process.exit).toHaveBeenCalledWith(1);
183
+ });
184
+ });
185
+ describe('with --limit option', () => {
186
+ it('should limit number of issues processed', async () => {
187
+ await batchCommand.parseAsync([
188
+ 'node',
189
+ 'test',
190
+ '101',
191
+ '102',
192
+ '103',
193
+ '104',
194
+ '105',
195
+ '--limit',
196
+ '3',
197
+ '--dry-run',
198
+ ]);
199
+ expect(consoleLogSpy).toHaveBeenCalledWith(expect.stringContaining('Limiting to 3 issues'));
200
+ });
201
+ });
202
+ describe('with --dry-run option', () => {
203
+ it('should not start sessions', async () => {
204
+ await batchCommand.parseAsync([
205
+ 'node',
206
+ 'test',
207
+ '101',
208
+ '102',
209
+ '--dry-run',
210
+ ]);
211
+ expect(mockSpawn).not.toHaveBeenCalled();
212
+ expect(consoleLogSpy).toHaveBeenCalledWith(expect.stringContaining('[Dry Run]'));
213
+ });
214
+ });
215
+ describe('with --template option', () => {
216
+ it('should pass template to session start', async () => {
217
+ await batchCommand.parseAsync([
218
+ 'node',
219
+ 'test',
220
+ '101',
221
+ '--template',
222
+ 'bugfix',
223
+ '--dry-run',
224
+ ]);
225
+ expect(consoleLogSpy).toHaveBeenCalledWith(expect.stringContaining('Template: bugfix'));
226
+ });
227
+ });
228
+ });
229
+ });
230
+ //# sourceMappingURL=batch.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.test.js","sourceRoot":"","sources":["../../src/commands/batch.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { detectPotentialConflict, groupIssuesByConflict, CONFLICT_KEYWORDS, DEFAULT_CONFLICT_LABELS, } from './issueFilters.js';
2
+ export { truncate, printStatus, type BustercallItem } from './statusDisplay.js';
3
+ export { getSessionsForIssue, waitForSessionCreated, type SessionInfo, } from './sessionManager.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/bustercall/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEhF,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,WAAW,GACjB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { detectPotentialConflict, groupIssuesByConflict, CONFLICT_KEYWORDS, DEFAULT_CONFLICT_LABELS, } from './issueFilters.js';
2
+ export { truncate, printStatus } from './statusDisplay.js';
3
+ export { getSessionsForIssue, waitForSessionCreated, } from './sessionManager.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/bustercall/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAuB,MAAM,oBAAoB,CAAC;AAEhF,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GAEtB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { Issue } from '@claudetree/shared';
2
+ /**
3
+ * Keywords that indicate potential conflicts with config/shared files
4
+ */
5
+ export declare const CONFLICT_KEYWORDS: string[];
6
+ /**
7
+ * Labels that typically indicate config/infra changes
8
+ */
9
+ export declare const DEFAULT_CONFLICT_LABELS: string[];
10
+ /**
11
+ * Check if an issue might conflict with config/shared files
12
+ */
13
+ export declare function detectPotentialConflict(issue: Issue, conflictLabels: string[]): boolean;
14
+ /**
15
+ * Group issues by conflict potential
16
+ */
17
+ export declare function groupIssuesByConflict(issues: Issue[], conflictLabels: string[]): {
18
+ conflicting: Issue[];
19
+ safe: Issue[];
20
+ };
21
+ //# sourceMappingURL=issueFilters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issueFilters.d.ts","sourceRoot":"","sources":["../../../src/commands/bustercall/issueFilters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,iBAAiB,UAiB7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,UASnC,CAAC;AAEF;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAavF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,KAAK,EAAE,EACf,cAAc,EAAE,MAAM,EAAE,GACvB;IAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAAC,IAAI,EAAE,KAAK,EAAE,CAAA;CAAE,CAazC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Keywords that indicate potential conflicts with config/shared files
3
+ */
4
+ export const CONFLICT_KEYWORDS = [
5
+ 'package.json',
6
+ 'tsconfig',
7
+ 'vitest',
8
+ 'eslint',
9
+ 'config',
10
+ 'dependencies',
11
+ 'devDependencies',
12
+ 'workspace',
13
+ 'monorepo',
14
+ 'pnpm-lock',
15
+ 'package-lock',
16
+ 'yarn.lock',
17
+ 'infrastructure',
18
+ '설정', // Korean: config
19
+ '의존성', // Korean: dependencies
20
+ '패키지', // Korean: package
21
+ ];
22
+ /**
23
+ * Labels that typically indicate config/infra changes
24
+ */
25
+ export const DEFAULT_CONFLICT_LABELS = [
26
+ 'dependencies',
27
+ 'infrastructure',
28
+ 'config',
29
+ 'setup',
30
+ 'tooling',
31
+ 'build',
32
+ 'ci',
33
+ 'chore',
34
+ ];
35
+ /**
36
+ * Check if an issue might conflict with config/shared files
37
+ */
38
+ export function detectPotentialConflict(issue, conflictLabels) {
39
+ // Check labels
40
+ const hasConflictLabel = issue.labels.some((label) => conflictLabels.some((cl) => label.toLowerCase().includes(cl.toLowerCase())));
41
+ // Check title for conflict keywords
42
+ const titleLower = issue.title.toLowerCase();
43
+ const hasConflictKeyword = CONFLICT_KEYWORDS.some((kw) => titleLower.includes(kw.toLowerCase()));
44
+ return hasConflictLabel || hasConflictKeyword;
45
+ }
46
+ /**
47
+ * Group issues by conflict potential
48
+ */
49
+ export function groupIssuesByConflict(issues, conflictLabels) {
50
+ const conflicting = [];
51
+ const safe = [];
52
+ for (const issue of issues) {
53
+ if (detectPotentialConflict(issue, conflictLabels)) {
54
+ conflicting.push(issue);
55
+ }
56
+ else {
57
+ safe.push(issue);
58
+ }
59
+ }
60
+ return { conflicting, safe };
61
+ }
62
+ //# sourceMappingURL=issueFilters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issueFilters.js","sourceRoot":"","sources":["../../../src/commands/bustercall/issueFilters.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,cAAc;IACd,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,cAAc;IACd,iBAAiB;IACjB,WAAW;IACX,UAAU;IACV,WAAW;IACX,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,uBAAuB;IAC9B,KAAK,EAAE,kBAAkB;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,cAAc;IACd,gBAAgB;IAChB,QAAQ;IACR,OAAO;IACP,SAAS;IACT,OAAO;IACP,IAAI;IACJ,OAAO;CACR,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAY,EAAE,cAAwB;IAC5E,eAAe;IACf,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACnD,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAC5E,CAAC;IAEF,oCAAoC;IACpC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAC7C,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CACvD,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CACtC,CAAC;IAEF,OAAO,gBAAgB,IAAI,kBAAkB,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAe,EACf,cAAwB;IAExB,MAAM,WAAW,GAAY,EAAE,CAAC;IAChC,MAAM,IAAI,GAAY,EAAE,CAAC;IAEzB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,uBAAuB,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC;YACnD,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=issueFilters.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issueFilters.test.d.ts","sourceRoot":"","sources":["../../../src/commands/bustercall/issueFilters.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,151 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { detectPotentialConflict, groupIssuesByConflict, DEFAULT_CONFLICT_LABELS, CONFLICT_KEYWORDS, } from './issueFilters.js';
3
+ describe('issueFilters', () => {
4
+ describe('detectPotentialConflict', () => {
5
+ it('should detect conflict by label', () => {
6
+ const issue = {
7
+ number: 1,
8
+ title: 'Add new feature',
9
+ body: 'Feature description',
10
+ labels: ['dependencies'],
11
+ state: 'open',
12
+ url: 'https://github.com/owner/repo/issues/1',
13
+ };
14
+ const result = detectPotentialConflict(issue, DEFAULT_CONFLICT_LABELS);
15
+ expect(result).toBe(true);
16
+ });
17
+ it('should detect conflict by keyword in title', () => {
18
+ const issue = {
19
+ number: 2,
20
+ title: 'Update package.json dependencies',
21
+ body: 'Need to update deps',
22
+ labels: ['enhancement'],
23
+ state: 'open',
24
+ url: 'https://github.com/owner/repo/issues/2',
25
+ };
26
+ const result = detectPotentialConflict(issue, DEFAULT_CONFLICT_LABELS);
27
+ expect(result).toBe(true);
28
+ });
29
+ it('should detect Korean conflict keywords', () => {
30
+ const issue = {
31
+ number: 3,
32
+ title: '설정 파일 업데이트',
33
+ body: 'Config update',
34
+ labels: [],
35
+ state: 'open',
36
+ url: '',
37
+ };
38
+ const result = detectPotentialConflict(issue, DEFAULT_CONFLICT_LABELS);
39
+ expect(result).toBe(true);
40
+ });
41
+ it('should return false for safe issues', () => {
42
+ const issue = {
43
+ number: 4,
44
+ title: 'Add user profile page',
45
+ body: 'New feature for user profiles',
46
+ labels: ['feature'],
47
+ state: 'open',
48
+ url: '',
49
+ };
50
+ const result = detectPotentialConflict(issue, DEFAULT_CONFLICT_LABELS);
51
+ expect(result).toBe(false);
52
+ });
53
+ it('should handle case insensitive label matching', () => {
54
+ const issue = {
55
+ number: 5,
56
+ title: 'Some task',
57
+ body: '',
58
+ labels: ['INFRASTRUCTURE'],
59
+ state: 'open',
60
+ url: '',
61
+ };
62
+ const result = detectPotentialConflict(issue, DEFAULT_CONFLICT_LABELS);
63
+ expect(result).toBe(true);
64
+ });
65
+ });
66
+ describe('groupIssuesByConflict', () => {
67
+ it('should separate conflicting and safe issues', () => {
68
+ const issues = [
69
+ {
70
+ number: 1,
71
+ title: 'Update tsconfig',
72
+ body: '',
73
+ labels: [],
74
+ state: 'open',
75
+ url: '',
76
+ },
77
+ {
78
+ number: 2,
79
+ title: 'Add login page',
80
+ body: '',
81
+ labels: [],
82
+ state: 'open',
83
+ url: '',
84
+ },
85
+ {
86
+ number: 3,
87
+ title: 'Fix button',
88
+ body: '',
89
+ labels: ['dependencies'],
90
+ state: 'open',
91
+ url: '',
92
+ },
93
+ {
94
+ number: 4,
95
+ title: 'Add dashboard',
96
+ body: '',
97
+ labels: ['feature'],
98
+ state: 'open',
99
+ url: '',
100
+ },
101
+ ];
102
+ const { conflicting, safe } = groupIssuesByConflict(issues, DEFAULT_CONFLICT_LABELS);
103
+ expect(conflicting).toHaveLength(2);
104
+ expect(conflicting.map(i => i.number)).toEqual([1, 3]);
105
+ expect(safe).toHaveLength(2);
106
+ expect(safe.map(i => i.number)).toEqual([2, 4]);
107
+ });
108
+ it('should handle empty input', () => {
109
+ const { conflicting, safe } = groupIssuesByConflict([], DEFAULT_CONFLICT_LABELS);
110
+ expect(conflicting).toHaveLength(0);
111
+ expect(safe).toHaveLength(0);
112
+ });
113
+ it('should use custom conflict labels', () => {
114
+ const issues = [
115
+ {
116
+ number: 1,
117
+ title: 'Task A',
118
+ body: '',
119
+ labels: ['urgent'],
120
+ state: 'open',
121
+ url: '',
122
+ },
123
+ {
124
+ number: 2,
125
+ title: 'Task B',
126
+ body: '',
127
+ labels: ['normal'],
128
+ state: 'open',
129
+ url: '',
130
+ },
131
+ ];
132
+ const { conflicting, safe } = groupIssuesByConflict(issues, ['urgent']);
133
+ expect(conflicting).toHaveLength(1);
134
+ expect(conflicting[0]?.number).toBe(1);
135
+ expect(safe).toHaveLength(1);
136
+ });
137
+ });
138
+ describe('exported constants', () => {
139
+ it('should export DEFAULT_CONFLICT_LABELS', () => {
140
+ expect(DEFAULT_CONFLICT_LABELS).toBeInstanceOf(Array);
141
+ expect(DEFAULT_CONFLICT_LABELS).toContain('dependencies');
142
+ expect(DEFAULT_CONFLICT_LABELS).toContain('infrastructure');
143
+ });
144
+ it('should export CONFLICT_KEYWORDS', () => {
145
+ expect(CONFLICT_KEYWORDS).toBeInstanceOf(Array);
146
+ expect(CONFLICT_KEYWORDS).toContain('package.json');
147
+ expect(CONFLICT_KEYWORDS).toContain('tsconfig');
148
+ });
149
+ });
150
+ });
151
+ //# sourceMappingURL=issueFilters.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issueFilters.test.js","sourceRoot":"","sources":["../../../src/commands/bustercall/issueFilters.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export interface SessionInfo {
2
+ issueNumber?: number;
3
+ status?: string;
4
+ }
5
+ /**
6
+ * Get all sessions for a specific issue number
7
+ */
8
+ export declare function getSessionsForIssue(cwd: string, issueNumber: number): Promise<SessionInfo[]>;
9
+ /**
10
+ * Wait for a session to be created for a specific issue
11
+ * Returns true if session is found within timeout, false otherwise
12
+ */
13
+ export declare function waitForSessionCreated(cwd: string, issueNumber: number, timeoutMs: number): Promise<boolean>;
14
+ //# sourceMappingURL=sessionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionManager.d.ts","sourceRoot":"","sources":["../../../src/commands/bustercall/sessionManager.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CASlG;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAWlB"}
@@ -0,0 +1,34 @@
1
+ import { join } from 'node:path';
2
+ import { readFile } from 'node:fs/promises';
3
+ const CONFIG_DIR = '.claudetree';
4
+ /**
5
+ * Get all sessions for a specific issue number
6
+ */
7
+ export async function getSessionsForIssue(cwd, issueNumber) {
8
+ try {
9
+ const sessionsPath = join(cwd, CONFIG_DIR, 'sessions.json');
10
+ const content = await readFile(sessionsPath, 'utf-8');
11
+ const sessions = JSON.parse(content);
12
+ return sessions.filter((s) => s.issueNumber === issueNumber);
13
+ }
14
+ catch {
15
+ return [];
16
+ }
17
+ }
18
+ /**
19
+ * Wait for a session to be created for a specific issue
20
+ * Returns true if session is found within timeout, false otherwise
21
+ */
22
+ export async function waitForSessionCreated(cwd, issueNumber, timeoutMs) {
23
+ const startTime = Date.now();
24
+ while (Date.now() - startTime < timeoutMs) {
25
+ const sessions = await getSessionsForIssue(cwd, issueNumber);
26
+ // Check if there's a running session for this issue
27
+ if (sessions.some((s) => s.status === 'running')) {
28
+ return true;
29
+ }
30
+ await new Promise((r) => setTimeout(r, 1000));
31
+ }
32
+ return false;
33
+ }
34
+ //# sourceMappingURL=sessionManager.js.map