cursor-agent-a2a 1.0.0 → 1.1.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.
package/README.md CHANGED
@@ -30,11 +30,44 @@ pnpm install
30
30
  ### As an NPM Package
31
31
 
32
32
  ```bash
33
+ # Global installation (recommended for CLI usage)
34
+ npm install -g cursor-agent-a2a
35
+ # or
36
+ pnpm add -g cursor-agent-a2a
37
+
38
+ # Local installation
33
39
  npm install cursor-agent-a2a
34
40
  # or
35
41
  pnpm add cursor-agent-a2a
36
42
  ```
37
43
 
44
+ ### CLI Tool
45
+
46
+ After global installation, you can use the `cursor-agent-a2a` command:
47
+
48
+ ```bash
49
+ # Install as system service
50
+ cursor-agent-a2a install --port 4300 --api-key your-api-key
51
+
52
+ # Manage service
53
+ cursor-agent-a2a start # Start the service
54
+ cursor-agent-a2a stop # Stop the service
55
+ cursor-agent-a2a restart # Restart the service
56
+ cursor-agent-a2a status # Check service status
57
+
58
+ # View logs
59
+ cursor-agent-a2a logs # View last 50 lines
60
+ cursor-agent-a2a logs --follow # Follow logs (like tail -f)
61
+ cursor-agent-a2a logs --lines 100 # View last 100 lines
62
+ cursor-agent-a2a logs --type stderr # View only stderr
63
+
64
+ # Upgrade
65
+ cursor-agent-a2a upgrade # Upgrade to latest version
66
+
67
+ # Uninstall
68
+ cursor-agent-a2a uninstall # Remove system service
69
+ ```
70
+
38
71
  ## Prerequisites
39
72
 
40
73
  ### Cursor CLI Setup
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Cursor Agent A2A CLI
4
+ *
5
+ * Command-line tool for managing cursor-agent-a2a service
6
+ *
7
+ * Commands:
8
+ * - install - Install as system service
9
+ * - uninstall - Remove system service
10
+ * - start - Start the service
11
+ * - stop - Stop the service
12
+ * - restart - Restart the service
13
+ * - status - Check service status
14
+ * - logs - View service logs
15
+ * - upgrade - Upgrade to latest version
16
+ */
17
+ export {};
18
+ //# sourceMappingURL=cursor-agent-a2a.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-agent-a2a.d.ts","sourceRoot":"","sources":["../../src/bin/cursor-agent-a2a.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG"}
@@ -0,0 +1,431 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Cursor Agent A2A CLI
4
+ *
5
+ * Command-line tool for managing cursor-agent-a2a service
6
+ *
7
+ * Commands:
8
+ * - install - Install as system service
9
+ * - uninstall - Remove system service
10
+ * - start - Start the service
11
+ * - stop - Stop the service
12
+ * - restart - Restart the service
13
+ * - status - Check service status
14
+ * - logs - View service logs
15
+ * - upgrade - Upgrade to latest version
16
+ */
17
+ import { Command } from 'commander';
18
+ import { homedir } from 'os';
19
+ import { join, dirname } from 'path';
20
+ import { existsSync, mkdirSync, readFileSync } from 'fs';
21
+ import { execSync } from 'child_process';
22
+ import { writeFile } from 'fs/promises';
23
+ import { fileURLToPath } from 'url';
24
+ // ESM __dirname equivalent
25
+ const __filename = fileURLToPath(import.meta.url);
26
+ const __dirname = dirname(__filename);
27
+ const program = new Command();
28
+ const SERVICE_NAME = 'com.jeffkit.cursor-agent-a2a';
29
+ const SERVICE_LABEL = 'Cursor Agent A2A Service';
30
+ // Get paths
31
+ const getLaunchdPlistPath = () => {
32
+ return join(homedir(), 'Library', 'LaunchAgents', `${SERVICE_NAME}.plist`);
33
+ };
34
+ const getServiceDir = () => {
35
+ return join(homedir(), '.cursor-agent-a2a');
36
+ };
37
+ const getLogDir = () => {
38
+ return join(getServiceDir(), 'logs');
39
+ };
40
+ const getConfigPath = () => {
41
+ return join(getServiceDir(), 'config.json');
42
+ };
43
+ // Get Node.js and service executable paths
44
+ const getNodePath = () => {
45
+ try {
46
+ return execSync('which node', { encoding: 'utf8' }).trim();
47
+ }
48
+ catch {
49
+ return '/usr/local/bin/node';
50
+ }
51
+ };
52
+ const getServiceExecutablePath = () => {
53
+ // Try to find the package installation path
54
+ // When installed via npm global, it's in node_modules
55
+ try {
56
+ // Check if we're in a global npm installation
57
+ const npmPrefix = execSync('npm prefix -g', { encoding: 'utf8' }).trim();
58
+ const globalPath = join(npmPrefix, 'lib', 'node_modules', 'cursor-agent-a2a', 'dist', 'index.js');
59
+ if (existsSync(globalPath)) {
60
+ return globalPath;
61
+ }
62
+ }
63
+ catch {
64
+ // Not a global install
65
+ }
66
+ // Try local node_modules (local install)
67
+ try {
68
+ const localPath = join(process.cwd(), 'node_modules', 'cursor-agent-a2a', 'dist', 'index.js');
69
+ if (existsSync(localPath)) {
70
+ return localPath;
71
+ }
72
+ }
73
+ catch {
74
+ // Not in node_modules
75
+ }
76
+ // Fallback to current directory (development or direct execution)
77
+ const devPath = join(__dirname, '..', 'index.js');
78
+ if (existsSync(devPath)) {
79
+ return devPath;
80
+ }
81
+ // Last resort: assume it's in the same directory structure
82
+ return join(__dirname, '..', 'index.js');
83
+ };
84
+ // Generate launchd plist
85
+ const generateLaunchdPlist = (config) => {
86
+ const nodePath = getNodePath();
87
+ const execPath = getServiceExecutablePath();
88
+ const logDir = getLogDir();
89
+ // Ensure log directory exists
90
+ if (!existsSync(logDir)) {
91
+ mkdirSync(logDir, { recursive: true });
92
+ }
93
+ return `<?xml version="1.0" encoding="UTF-8"?>
94
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
95
+ <plist version="1.0">
96
+ <dict>
97
+ <key>Label</key>
98
+ <string>${SERVICE_NAME}</string>
99
+
100
+ <key>ProgramArguments</key>
101
+ <array>
102
+ <string>${nodePath}</string>
103
+ <string>${execPath}</string>
104
+ </array>
105
+
106
+ <key>EnvironmentVariables</key>
107
+ <dict>
108
+ <key>PORT</key>
109
+ <string>${config.port}</string>
110
+ <key>NODE_ENV</key>
111
+ <string>production</string>
112
+ <key>PATH</key>
113
+ <string>/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
114
+ <key>HOME</key>
115
+ <string>${homedir()}</string>
116
+ ${config.apiKey ? `<key>CURSOR_AGENT_API_KEY</key>
117
+ <string>${config.apiKey}</string>` : ''}
118
+ </dict>
119
+
120
+ <key>WorkingDirectory</key>
121
+ <string>${getServiceDir()}</string>
122
+
123
+ <key>RunAtLoad</key>
124
+ <true/>
125
+
126
+ <key>KeepAlive</key>
127
+ <true/>
128
+
129
+ <key>StandardOutPath</key>
130
+ <string>${join(logDir, 'stdout.log')}</string>
131
+
132
+ <key>StandardErrorPath</key>
133
+ <string>${join(logDir, 'stderr.log')}</string>
134
+
135
+ <key>ProcessType</key>
136
+ <string>Background</string>
137
+ </dict>
138
+ </plist>`;
139
+ };
140
+ // Install service
141
+ const installService = async (options) => {
142
+ console.log('📦 Installing Cursor Agent A2A Service...');
143
+ const serviceDir = getServiceDir();
144
+ if (!existsSync(serviceDir)) {
145
+ mkdirSync(serviceDir, { recursive: true });
146
+ }
147
+ const config = {
148
+ port: options.port || 4300,
149
+ apiKey: options.apiKey,
150
+ };
151
+ // Save config
152
+ await writeFile(getConfigPath(), JSON.stringify(config, null, 2));
153
+ // Generate and install plist
154
+ const plistPath = getLaunchdPlistPath();
155
+ const plistDir = join(plistPath, '..');
156
+ if (!existsSync(plistDir)) {
157
+ mkdirSync(plistDir, { recursive: true });
158
+ }
159
+ const plistContent = generateLaunchdPlist(config);
160
+ await writeFile(plistPath, plistContent);
161
+ console.log(`✅ Service file created: ${plistPath}`);
162
+ // Load service
163
+ try {
164
+ execSync(`launchctl load "${plistPath}"`, { stdio: 'inherit' });
165
+ console.log('✅ Service installed and started');
166
+ console.log(`\n📋 Service running on http://localhost:${config.port}`);
167
+ }
168
+ catch (error) {
169
+ console.error('❌ Failed to load service:', error);
170
+ throw error;
171
+ }
172
+ };
173
+ // Uninstall service
174
+ const uninstallService = () => {
175
+ console.log('🗑️ Uninstalling Cursor Agent A2A Service...');
176
+ const plistPath = getLaunchdPlistPath();
177
+ // Unload service
178
+ try {
179
+ execSync(`launchctl unload "${plistPath}" 2>/dev/null`, { stdio: 'ignore' });
180
+ }
181
+ catch {
182
+ // Service might not be loaded
183
+ }
184
+ // Remove plist
185
+ if (existsSync(plistPath)) {
186
+ execSync(`rm "${plistPath}"`, { stdio: 'inherit' });
187
+ console.log('✅ Service file removed');
188
+ }
189
+ console.log('✅ Service uninstalled');
190
+ };
191
+ // Start service
192
+ const startService = () => {
193
+ const plistPath = getLaunchdPlistPath();
194
+ if (!existsSync(plistPath)) {
195
+ console.error('❌ Service not installed. Run "cursor-agent-a2a install" first.');
196
+ process.exit(1);
197
+ }
198
+ try {
199
+ execSync(`launchctl load "${plistPath}"`, { stdio: 'inherit' });
200
+ console.log('✅ Service started');
201
+ }
202
+ catch (error) {
203
+ console.error('❌ Failed to start service:', error);
204
+ process.exit(1);
205
+ }
206
+ };
207
+ // Stop service
208
+ const stopService = () => {
209
+ const plistPath = getLaunchdPlistPath();
210
+ if (!existsSync(plistPath)) {
211
+ console.error('❌ Service not installed.');
212
+ process.exit(1);
213
+ }
214
+ try {
215
+ execSync(`launchctl unload "${plistPath}"`, { stdio: 'inherit' });
216
+ console.log('✅ Service stopped');
217
+ }
218
+ catch (error) {
219
+ console.error('❌ Failed to stop service:', error);
220
+ process.exit(1);
221
+ }
222
+ };
223
+ // Restart service
224
+ const restartService = () => {
225
+ console.log('🔄 Restarting service...');
226
+ stopService();
227
+ startService();
228
+ };
229
+ // Check status
230
+ const checkStatus = () => {
231
+ const plistPath = getLaunchdPlistPath();
232
+ if (!existsSync(plistPath)) {
233
+ console.log('❌ Service not installed');
234
+ return;
235
+ }
236
+ try {
237
+ const result = execSync(`launchctl list | grep ${SERVICE_NAME}`, {
238
+ encoding: 'utf8',
239
+ stdio: 'pipe',
240
+ });
241
+ if (result.trim()) {
242
+ const [pid, exitCode] = result.trim().split(/\s+/);
243
+ if (exitCode === '0') {
244
+ console.log(`✅ Service is running (PID: ${pid})`);
245
+ }
246
+ else {
247
+ console.log(`⚠️ Service is loaded but not running (Exit code: ${exitCode})`);
248
+ }
249
+ }
250
+ else {
251
+ console.log('⚠️ Service is not running');
252
+ }
253
+ // Show config
254
+ const configPath = getConfigPath();
255
+ if (existsSync(configPath)) {
256
+ const config = JSON.parse(readFileSync(configPath, 'utf8'));
257
+ console.log(`\n📋 Configuration:`);
258
+ console.log(` Port: ${config.port}`);
259
+ console.log(` API Key: ${config.apiKey ? '***' : 'Not set (using default)'}`);
260
+ }
261
+ }
262
+ catch (error) {
263
+ console.log('⚠️ Service is not running');
264
+ }
265
+ };
266
+ // View logs
267
+ const viewLogs = (options) => {
268
+ const logDir = getLogDir();
269
+ const logType = options.type || 'all';
270
+ const lines = options.lines || 50;
271
+ if (!existsSync(logDir)) {
272
+ console.error('❌ Log directory not found. Service may not be installed.');
273
+ process.exit(1);
274
+ }
275
+ const stdoutLog = join(logDir, 'stdout.log');
276
+ const stderrLog = join(logDir, 'stderr.log');
277
+ if (options.follow) {
278
+ console.log('📋 Following logs (Press Ctrl+C to stop)...\n');
279
+ if (logType === 'all' || logType === 'stdout') {
280
+ if (existsSync(stdoutLog)) {
281
+ execSync(`tail -f "${stdoutLog}"`, { stdio: 'inherit' });
282
+ }
283
+ }
284
+ if (logType === 'all' || logType === 'stderr') {
285
+ if (existsSync(stderrLog)) {
286
+ execSync(`tail -f "${stderrLog}"`, { stdio: 'inherit' });
287
+ }
288
+ }
289
+ }
290
+ else {
291
+ if (logType === 'all' || logType === 'stdout') {
292
+ if (existsSync(stdoutLog)) {
293
+ console.log('📋 STDOUT:');
294
+ execSync(`tail -n ${lines} "${stdoutLog}"`, { stdio: 'inherit' });
295
+ }
296
+ }
297
+ if (logType === 'all' || logType === 'stderr') {
298
+ if (existsSync(stderrLog)) {
299
+ console.log('\n📋 STDERR:');
300
+ execSync(`tail -n ${lines} "${stderrLog}"`, { stdio: 'inherit' });
301
+ }
302
+ }
303
+ }
304
+ };
305
+ // Upgrade service
306
+ const upgradeService = async () => {
307
+ console.log('⬆️ Upgrading Cursor Agent A2A Service...');
308
+ // Check current version
309
+ let currentVersion = 'unknown';
310
+ try {
311
+ // Try to find package.json
312
+ const packagePaths = [
313
+ join(__dirname, '..', '..', 'package.json'), // Development
314
+ join(process.cwd(), 'package.json'), // Current dir
315
+ ];
316
+ for (const pkgPath of packagePaths) {
317
+ if (existsSync(pkgPath)) {
318
+ const packageJson = JSON.parse(readFileSync(pkgPath, 'utf8'));
319
+ if (packageJson.name === 'cursor-agent-a2a') {
320
+ currentVersion = packageJson.version;
321
+ break;
322
+ }
323
+ }
324
+ }
325
+ }
326
+ catch {
327
+ // Version not found
328
+ }
329
+ console.log(`Current version: ${currentVersion}`);
330
+ // Install latest version
331
+ try {
332
+ // Detect package manager
333
+ const npmUserAgent = process.env.npm_config_user_agent || '';
334
+ let upgradeCommand;
335
+ if (npmUserAgent.includes('pnpm')) {
336
+ upgradeCommand = 'pnpm add -g cursor-agent-a2a@latest';
337
+ }
338
+ else if (npmUserAgent.includes('yarn')) {
339
+ upgradeCommand = 'yarn global add cursor-agent-a2a@latest';
340
+ }
341
+ else {
342
+ upgradeCommand = 'npm install -g cursor-agent-a2a@latest';
343
+ }
344
+ console.log(`Running: ${upgradeCommand}`);
345
+ execSync(upgradeCommand, { stdio: 'inherit' });
346
+ console.log('✅ Service upgraded');
347
+ // Restart if running
348
+ const plistPath = getLaunchdPlistPath();
349
+ if (existsSync(plistPath)) {
350
+ console.log('🔄 Restarting service with new version...');
351
+ restartService();
352
+ }
353
+ }
354
+ catch (error) {
355
+ console.error('❌ Failed to upgrade:', error);
356
+ process.exit(1);
357
+ }
358
+ };
359
+ // CLI setup
360
+ program
361
+ .name('cursor-agent-a2a')
362
+ .description('CLI tool for managing Cursor Agent A2A Service')
363
+ .version('1.0.0');
364
+ program
365
+ .command('install')
366
+ .description('Install as system service')
367
+ .option('-p, --port <port>', 'Service port', '4300')
368
+ .option('-k, --api-key <key>', 'API key for authentication')
369
+ .action(async (options) => {
370
+ try {
371
+ await installService({
372
+ port: parseInt(options.port, 10),
373
+ apiKey: options.apiKey,
374
+ });
375
+ }
376
+ catch (error) {
377
+ console.error('Installation failed:', error);
378
+ process.exit(1);
379
+ }
380
+ });
381
+ program
382
+ .command('uninstall')
383
+ .description('Remove system service')
384
+ .action(() => {
385
+ uninstallService();
386
+ });
387
+ program
388
+ .command('start')
389
+ .description('Start the service')
390
+ .action(() => {
391
+ startService();
392
+ });
393
+ program
394
+ .command('stop')
395
+ .description('Stop the service')
396
+ .action(() => {
397
+ stopService();
398
+ });
399
+ program
400
+ .command('restart')
401
+ .description('Restart the service')
402
+ .action(() => {
403
+ restartService();
404
+ });
405
+ program
406
+ .command('status')
407
+ .description('Check service status')
408
+ .action(() => {
409
+ checkStatus();
410
+ });
411
+ program
412
+ .command('logs')
413
+ .description('View service logs')
414
+ .option('-f, --follow', 'Follow log output')
415
+ .option('-n, --lines <number>', 'Number of lines to show', '50')
416
+ .option('-t, --type <type>', 'Log type: stdout, stderr, or all', 'all')
417
+ .action((options) => {
418
+ viewLogs({
419
+ follow: options.follow,
420
+ lines: parseInt(options.lines, 10),
421
+ type: options.type,
422
+ });
423
+ });
424
+ program
425
+ .command('upgrade')
426
+ .description('Upgrade to latest version')
427
+ .action(async () => {
428
+ await upgradeService();
429
+ });
430
+ program.parse();
431
+ //# sourceMappingURL=cursor-agent-a2a.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-agent-a2a.js","sourceRoot":"","sources":["../../src/bin/cursor-agent-a2a.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,13 @@
1
1
  {
2
2
  "name": "cursor-agent-a2a",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Independent A2A-compatible service wrapping Cursor CLI agent command",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "type": "module",
8
+ "bin": {
9
+ "cursor-agent-a2a": "./dist/bin/cursor-agent-a2a.js"
10
+ },
8
11
  "files": [
9
12
  "dist",
10
13
  "README.md",
@@ -46,6 +49,7 @@
46
49
  "access": "public"
47
50
  },
48
51
  "dependencies": {
52
+ "commander": "^11.1.0",
49
53
  "express": "^4.18.2",
50
54
  "cors": "^2.8.5",
51
55
  "uuid": "^9.0.1",