@ebowwa/claude-code-mcp 1.0.0 → 1.0.2

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 (48) hide show
  1. package/dist/__tests__/advanced.test.d.ts +6 -0
  2. package/dist/__tests__/advanced.test.d.ts.map +1 -0
  3. package/dist/__tests__/advanced.test.js +354 -0
  4. package/dist/__tests__/advanced.test.js.map +1 -0
  5. package/dist/advanced.d.ts +109 -0
  6. package/dist/advanced.d.ts.map +1 -0
  7. package/dist/advanced.js +427 -0
  8. package/dist/advanced.js.map +1 -0
  9. package/dist/cli-wrapper.d.ts +202 -0
  10. package/dist/cli-wrapper.d.ts.map +1 -0
  11. package/dist/cli-wrapper.js +347 -0
  12. package/dist/cli-wrapper.js.map +1 -0
  13. package/dist/cli-wrapper.test.d.ts +12 -0
  14. package/dist/cli-wrapper.test.d.ts.map +1 -0
  15. package/dist/cli-wrapper.test.js +354 -0
  16. package/dist/cli-wrapper.test.js.map +1 -0
  17. package/dist/cli.d.ts +16 -0
  18. package/dist/cli.d.ts.map +1 -0
  19. package/dist/cli.js +354 -0
  20. package/dist/cli.js.map +1 -0
  21. package/dist/index.d.ts +10 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +561 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/integration.test.d.ts +12 -0
  26. package/dist/integration.test.d.ts.map +1 -0
  27. package/dist/integration.test.js +716 -0
  28. package/dist/integration.test.js.map +1 -0
  29. package/dist/queue.d.ts +87 -0
  30. package/dist/queue.d.ts.map +1 -0
  31. package/dist/queue.js +273 -0
  32. package/dist/queue.js.map +1 -0
  33. package/dist/teammates-integration.d.ts +128 -0
  34. package/dist/teammates-integration.d.ts.map +1 -0
  35. package/dist/teammates-integration.js +353 -0
  36. package/dist/teammates-integration.js.map +1 -0
  37. package/dist/test-config.d.ts +104 -0
  38. package/dist/test-config.d.ts.map +1 -0
  39. package/dist/test-config.js +439 -0
  40. package/dist/test-config.js.map +1 -0
  41. package/dist/tools.d.ts +97 -0
  42. package/dist/tools.d.ts.map +1 -0
  43. package/dist/tools.js +627 -0
  44. package/dist/tools.js.map +1 -0
  45. package/package.json +7 -1
  46. package/ARCHITECTURE.md +0 -1802
  47. package/DOCUMENTATION.md +0 -747
  48. package/TESTING.md +0 -318
@@ -0,0 +1,354 @@
1
+ #!/usr/bin/env bun
2
+ /**
3
+ * CLI Wrapper Unit Tests
4
+ *
5
+ * Tests the ClaudeCodeWrapper class which handles:
6
+ * - Spawning Claude Code CLI processes
7
+ * - Doppler flag handling
8
+ * - Process lifecycle management
9
+ * - Output streaming
10
+ */
11
+ import { describe, it, expect, mock, beforeEach } from 'bun:test';
12
+ // Mock child_process for testing
13
+ const mockSpawn = mock(() => ({
14
+ stdout: { on: mock() },
15
+ stderr: { on: mock() },
16
+ on: mock(),
17
+ kill: mock(),
18
+ pid: 12345
19
+ }));
20
+ describe('ClaudeCodeWrapper', () => {
21
+ let ClaudeCodeWrapper;
22
+ let mockProcess;
23
+ beforeEach(() => {
24
+ // Reset mocks before each test
25
+ mockProcess = mockSpawn();
26
+ // Mock the module import
27
+ ClaudeCodeWrapper = class {
28
+ constructor(options) {
29
+ this.options = options;
30
+ this.process = null;
31
+ }
32
+ spawn(args) {
33
+ // Mock implementation
34
+ this.process = mockProcess;
35
+ this.process.pid = Math.floor(Math.random() * 100000);
36
+ return this.process;
37
+ }
38
+ kill(signal) {
39
+ if (this.process) {
40
+ this.process.killed = true;
41
+ this.process.kill(signal || 'SIGTERM');
42
+ this.process = null;
43
+ return true;
44
+ }
45
+ return false;
46
+ }
47
+ isAlive() {
48
+ return this.process !== null && !this.process?.killed;
49
+ }
50
+ };
51
+ });
52
+ describe('Constructor', () => {
53
+ it('should initialize with default options', () => {
54
+ const wrapper = new ClaudeCodeWrapper({});
55
+ expect(wrapper.options).toBeDefined();
56
+ expect(wrapper.options.useDoppler).toBe(false);
57
+ expect(wrapper.options.timeout).toBe(300000);
58
+ });
59
+ it('should accept custom options', () => {
60
+ const wrapper = new ClaudeCodeWrapper({
61
+ useDoppler: true,
62
+ timeout: 600000,
63
+ claudePath: '/custom/path/to/claude'
64
+ });
65
+ expect(wrapper.options.useDoppler).toBe(true);
66
+ expect(wrapper.options.timeout).toBe(600000);
67
+ expect(wrapper.options.claudePath).toBe('/custom/path/to/claude');
68
+ });
69
+ });
70
+ describe('spawn', () => {
71
+ it('should spawn Claude Code without Doppler by default', () => {
72
+ const wrapper = new ClaudeCodeWrapper({ useDoppler: false });
73
+ const process = wrapper.spawn(['--help']);
74
+ expect(process).toBeDefined();
75
+ expect(process.pid).toBeGreaterThan(0);
76
+ expect(wrapper.isAlive()).toBe(true);
77
+ });
78
+ it('should spawn with Doppler wrapper when enabled', () => {
79
+ const wrapper = new ClaudeCodeWrapper({ useDoppler: true });
80
+ const process = wrapper.spawn(['--resume', 'abc-123']);
81
+ expect(process).toBeDefined();
82
+ expect(wrapper.isAlive()).toBe(true);
83
+ });
84
+ it('should handle --resume flag with Doppler workaround', () => {
85
+ const wrapper = new ClaudeCodeWrapper({
86
+ useDoppler: true,
87
+ dopplerProject: 'test-project',
88
+ dopplerConfig: 'dev'
89
+ });
90
+ // When useDoppler is true and --resume is used
91
+ // The wrapper should construct: doppler run --command "claude --resume UUID"
92
+ const args = ['--resume', 'test-uuid-123'];
93
+ const process = wrapper.spawn(args);
94
+ expect(process).toBeDefined();
95
+ expect(wrapper.process.dopplerWrapped).toBe(true);
96
+ });
97
+ it('should pass through custom environment variables', () => {
98
+ const wrapper = new ClaudeCodeWrapper({
99
+ env: {
100
+ CUSTOM_VAR: 'test-value',
101
+ ANOTHER_VAR: 'another-value'
102
+ }
103
+ });
104
+ const process = wrapper.spawn(['--version']);
105
+ expect(process).toBeDefined();
106
+ });
107
+ });
108
+ describe('kill', () => {
109
+ it('should kill running process gracefully', () => {
110
+ const wrapper = new ClaudeCodeWrapper({});
111
+ wrapper.spawn(['--help']);
112
+ const killed = wrapper.kill();
113
+ expect(killed).toBe(true);
114
+ expect(wrapper.isAlive()).toBe(false);
115
+ });
116
+ it('should support force kill with SIGKILL', () => {
117
+ const wrapper = new ClaudeCodeWrapper({});
118
+ wrapper.spawn(['--help']);
119
+ const killed = wrapper.kill('SIGKILL');
120
+ expect(killed).toBe(true);
121
+ expect(wrapper.isAlive()).toBe(false);
122
+ });
123
+ it('should return false when no process is running', () => {
124
+ const wrapper = new ClaudeCodeWrapper({});
125
+ const killed = wrapper.kill();
126
+ expect(killed).toBe(false);
127
+ });
128
+ it('should handle multiple kill calls safely', () => {
129
+ const wrapper = new ClaudeCodeWrapper({});
130
+ wrapper.spawn(['--help']);
131
+ const firstKill = wrapper.kill();
132
+ const secondKill = wrapper.kill();
133
+ expect(firstKill).toBe(true);
134
+ expect(secondKill).toBe(false);
135
+ });
136
+ });
137
+ describe('isAlive', () => {
138
+ it('should return true when process is running', () => {
139
+ const wrapper = new ClaudeCodeWrapper({});
140
+ wrapper.spawn(['--help']);
141
+ expect(wrapper.isAlive()).toBe(true);
142
+ });
143
+ it('should return false when no process is running', () => {
144
+ const wrapper = new ClaudeCodeWrapper({});
145
+ expect(wrapper.isAlive()).toBe(false);
146
+ });
147
+ it('should return false after process is killed', () => {
148
+ const wrapper = new ClaudeCodeWrapper({});
149
+ wrapper.spawn(['--help']);
150
+ wrapper.kill();
151
+ expect(wrapper.isAlive()).toBe(false);
152
+ });
153
+ });
154
+ describe('Doppler Integration', () => {
155
+ it('should construct correct doppler command for --resume', () => {
156
+ const wrapper = new ClaudeCodeWrapper({
157
+ useDoppler: true,
158
+ dopplerProject: 'my-project',
159
+ dopplerConfig: 'prd'
160
+ });
161
+ const args = ['--resume', 'session-uuid'];
162
+ wrapper.spawn(args);
163
+ // Verify doppler wrapping was applied
164
+ expect(wrapper.process.dopplerWrapped).toBe(true);
165
+ });
166
+ it('should handle doppler with custom config', () => {
167
+ const wrapper = new ClaudeCodeWrapper({
168
+ useDoppler: true,
169
+ dopplerConfig: 'staging'
170
+ });
171
+ const process = wrapper.spawn(['--help']);
172
+ expect(process).toBeDefined();
173
+ });
174
+ });
175
+ describe('Error Handling', () => {
176
+ it('should handle spawn failures gracefully', () => {
177
+ const wrapper = new ClaudeCodeWrapper({
178
+ claudePath: '/nonexistent/path/to/claude'
179
+ });
180
+ expect(() => {
181
+ wrapper.spawn(['--help']);
182
+ }).not.toThrow();
183
+ });
184
+ it('should handle kill failures gracefully', () => {
185
+ const wrapper = new ClaudeCodeWrapper({});
186
+ const killed = wrapper.kill();
187
+ expect(killed).toBe(false); // No process to kill
188
+ });
189
+ });
190
+ });
191
+ describe('Doppler Flag Handling Edge Cases', () => {
192
+ describe('--resume with Doppler', () => {
193
+ it('should work with valid UUID', () => {
194
+ const uuid = 'abc-123-def-456';
195
+ const wrapper = new (class {
196
+ constructor() { this.useDoppler = true; }
197
+ buildResumeCommand(uuid) {
198
+ if (!this.useDoppler)
199
+ return ['claude', '--resume', uuid];
200
+ return ['doppler', 'run', '--command', `claude --resume ${uuid}`];
201
+ }
202
+ })();
203
+ const cmd = wrapper.buildResumeCommand(uuid);
204
+ expect(cmd).toContain('--resume');
205
+ expect(cmd).toContain(uuid);
206
+ });
207
+ it('should handle malformed UUID gracefully', () => {
208
+ const malformedUuids = [
209
+ '',
210
+ 'not-a-uuid',
211
+ 'abc-123',
212
+ '!!!invalid!!!'
213
+ ];
214
+ malformedUuids.forEach(uuid => {
215
+ const wrapper = new (class {
216
+ buildResumeCommand(uuid) {
217
+ // Should still construct command, validation happens at Claude level
218
+ return ['doppler', 'run', '--command', `claude --resume ${uuid}`];
219
+ }
220
+ })();
221
+ const cmd = wrapper.buildResumeCommand(uuid);
222
+ expect(cmd).toBeDefined();
223
+ });
224
+ });
225
+ it('should escape special characters in UUID if present', () => {
226
+ // UUIDs shouldn't have special chars, but test defensive coding
227
+ const uuid = 'abc-123-def-456'; // Standard UUID format
228
+ const wrapper = new (class {
229
+ buildResumeCommand(uuid) {
230
+ // Should not escape standard UUIDs
231
+ return ['doppler', 'run', '--command', `claude --resume ${uuid}`];
232
+ }
233
+ })();
234
+ const cmd = wrapper.buildResumeCommand(uuid);
235
+ expect(cmd).toContain(uuid);
236
+ });
237
+ });
238
+ describe('Doppler Configuration', () => {
239
+ it('should handle missing DOPPLER_PROJECT', () => {
240
+ const wrapper = new (class {
241
+ constructor() { this.dopplerProject = undefined; }
242
+ getDopplerCommand() {
243
+ return ['doppler', 'run'];
244
+ }
245
+ })();
246
+ const cmd = wrapper.getDopplerCommand();
247
+ expect(cmd).toContain('doppler');
248
+ expect(cmd).toContain('run');
249
+ });
250
+ it('should handle missing DOPPLER_CONFIG', () => {
251
+ const wrapper = new (class {
252
+ constructor() { this.dopplerConfig = undefined; }
253
+ getDopplerCommand() {
254
+ return ['doppler', 'run'];
255
+ }
256
+ })();
257
+ const cmd = wrapper.getDopplerCommand();
258
+ expect(cmd).toBeDefined();
259
+ });
260
+ it('should handle empty DOPPLER_TOKEN', () => {
261
+ const wrapper = new (class {
262
+ constructor() { this.dopplerToken = ''; }
263
+ shouldUseDoppler() {
264
+ return this.dopplerToken !== undefined;
265
+ }
266
+ })();
267
+ // Empty token should not prevent doppler usage
268
+ // (authentication will fail at runtime, which is correct)
269
+ expect(wrapper.shouldUseDoppler()).toBe(true);
270
+ });
271
+ });
272
+ describe('Message with Doppler', () => {
273
+ it('should escape quotes in message when using doppler --command', () => {
274
+ const message = 'Fix the "auth" bug';
275
+ const wrapper = new (class {
276
+ escapeMessageForDoppler(msg) {
277
+ return msg.replace(/"/g, '\\"');
278
+ }
279
+ })();
280
+ const escaped = wrapper.escapeMessageForDoppler(message);
281
+ expect(escaped).toBe('Fix the \\"auth\\" bug');
282
+ });
283
+ it('should handle newlines in message', () => {
284
+ const message = 'Line 1\nLine 2\nLine 3';
285
+ const wrapper = new (class {
286
+ escapeMessageForDoppler(msg) {
287
+ return msg.replace(/\n/g, '\\n');
288
+ }
289
+ })();
290
+ const escaped = wrapper.escapeMessageForDoppler(message);
291
+ expect(escaped).toBe('Line 1\\nLine 2\\nLine 3');
292
+ });
293
+ it('should handle empty message', () => {
294
+ const message = '';
295
+ const wrapper = new (class {
296
+ buildResumeCommand(uuid, message) {
297
+ if (!message)
298
+ return ['doppler', 'run', '--command', `claude --resume ${uuid}`];
299
+ return ['doppler', 'run', '--command', `claude --resume ${uuid} -- '${message}'`];
300
+ }
301
+ })();
302
+ const cmd = wrapper.buildResumeCommand('test-uuid');
303
+ expect(cmd).toBeDefined();
304
+ });
305
+ });
306
+ });
307
+ describe('Process Lifecycle', () => {
308
+ it('should track process state correctly', () => {
309
+ const wrapper = new (class {
310
+ constructor() {
311
+ this.process = null;
312
+ this.state = 'idle';
313
+ }
314
+ spawn() {
315
+ this.state = 'running';
316
+ this.process = { pid: 12345 };
317
+ return this.process;
318
+ }
319
+ kill() {
320
+ if (this.process) {
321
+ this.state = 'killed';
322
+ this.process = null;
323
+ return true;
324
+ }
325
+ return false;
326
+ }
327
+ getState() {
328
+ return this.state;
329
+ }
330
+ })();
331
+ expect(wrapper.getState()).toBe('idle');
332
+ wrapper.spawn();
333
+ expect(wrapper.getState()).toBe('running');
334
+ wrapper.kill();
335
+ expect(wrapper.getState()).toBe('killed');
336
+ });
337
+ it('should handle rapid spawn-kill cycles', () => {
338
+ const wrapper = new (class {
339
+ constructor() { this.processCount = 0; }
340
+ spawn() {
341
+ this.processCount++;
342
+ return { pid: 1000 + this.processCount };
343
+ }
344
+ kill() { return true; }
345
+ getCount() { return this.processCount; }
346
+ })();
347
+ for (let i = 0; i < 10; i++) {
348
+ wrapper.spawn();
349
+ wrapper.kill();
350
+ }
351
+ expect(wrapper.getCount()).toBe(10);
352
+ });
353
+ });
354
+ //# sourceMappingURL=cli-wrapper.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-wrapper.test.js","sourceRoot":"","sources":["../src/cli-wrapper.test.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Claude Code MCP CLI Launcher
4
+ *
5
+ * Standalone CLI for testing and running the Claude Code MCP server.
6
+ * This launcher can be used independently of MCP clients for development and testing.
7
+ *
8
+ * Usage:
9
+ * bun run src/cli.ts # Start MCP server on stdio
10
+ * bun run src/cli.ts start # Start a new Claude Code session
11
+ * bun run src/cli.ts list # List active sessions
12
+ * bun run src/cli.ts kill <sessionId> # Kill a session
13
+ * bun run src/cli.ts send <message> # Send message to session
14
+ */
15
+ export {};
16
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG"}