247-cli 2.32.2 → 2.33.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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Project-related API routes: listing and folder scanning.
2
+ * Project-related API routes: listing, folder scanning, and git clone.
3
3
  */
4
4
  import { Router } from 'express';
5
5
  export declare function isProjectAllowed(project: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/routes/projects.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAIjC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAIzD;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CA4B5C"}
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/routes/projects.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAKjC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAIzD;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CA4H5C"}
@@ -1,7 +1,8 @@
1
1
  /**
2
- * Project-related API routes: listing and folder scanning.
2
+ * Project-related API routes: listing, folder scanning, and git clone.
3
3
  */
4
4
  import { Router } from 'express';
5
+ import { spawn } from 'child_process';
5
6
  import { config } from '../config.js';
6
7
  // Helper to check if project is allowed (whitelist empty = allow any)
7
8
  export function isProjectAllowed(project) {
@@ -32,6 +33,94 @@ export function createProjectRoutes() {
32
33
  res.status(500).json({ error: 'Failed to list folders' });
33
34
  }
34
35
  });
36
+ // Clone a git repository
37
+ router.post('/clone', async (req, res) => {
38
+ const { url } = req.body;
39
+ if (!url) {
40
+ return res.status(400).json({ success: false, error: 'URL is required' });
41
+ }
42
+ // Validate URL format (https:// or git@)
43
+ const httpsPattern = /^https:\/\/.+\/.+/;
44
+ const sshPattern = /^git@.+:.+/;
45
+ if (!httpsPattern.test(url) && !sshPattern.test(url)) {
46
+ return res.status(400).json({ success: false, error: 'Invalid URL format' });
47
+ }
48
+ // Extract repo name from URL
49
+ let repoName;
50
+ try {
51
+ if (url.startsWith('git@')) {
52
+ // git@github.com:user/repo.git -> repo
53
+ const match = url.match(/:([^/]+\/)?(.+?)(\.git)?$/);
54
+ repoName = match?.[2] || '';
55
+ }
56
+ else {
57
+ // https://github.com/user/repo.git -> repo
58
+ const urlObj = new URL(url);
59
+ const pathParts = urlObj.pathname.split('/').filter(Boolean);
60
+ repoName = pathParts[pathParts.length - 1]?.replace(/\.git$/, '') || '';
61
+ }
62
+ if (!repoName) {
63
+ return res
64
+ .status(400)
65
+ .json({ success: false, error: 'Could not extract repo name from URL' });
66
+ }
67
+ }
68
+ catch (_err) {
69
+ return res.status(400).json({ success: false, error: 'Invalid URL format' });
70
+ }
71
+ const fs = await import('fs/promises');
72
+ const path = await import('path');
73
+ const basePath = config.projects.basePath.replace('~', process.env.HOME);
74
+ const targetPath = path.join(basePath, repoName);
75
+ // Check if folder already exists
76
+ try {
77
+ await fs.access(targetPath);
78
+ return res.status(400).json({
79
+ success: false,
80
+ error: `Folder "${repoName}" already exists`,
81
+ });
82
+ }
83
+ catch (_err) {
84
+ // Folder doesn't exist, good to proceed
85
+ }
86
+ // Clone the repository
87
+ return new Promise((resolve) => {
88
+ const gitProcess = spawn('git', ['clone', url, repoName], {
89
+ cwd: basePath,
90
+ env: process.env,
91
+ });
92
+ let stderr = '';
93
+ gitProcess.stderr.on('data', (data) => {
94
+ stderr += data.toString();
95
+ });
96
+ gitProcess.on('close', (code) => {
97
+ if (code === 0) {
98
+ console.log(`Successfully cloned ${url} to ${targetPath}`);
99
+ res.json({
100
+ success: true,
101
+ project: repoName,
102
+ path: targetPath,
103
+ });
104
+ }
105
+ else {
106
+ console.error(`Git clone failed: ${stderr}`);
107
+ res.status(500).json({
108
+ success: false,
109
+ error: stderr.trim() || 'Git clone failed',
110
+ });
111
+ }
112
+ resolve();
113
+ });
114
+ gitProcess.on('error', (err) => {
115
+ console.error('Failed to spawn git:', err);
116
+ res.status(500).json({
117
+ success: false,
118
+ error: 'Failed to execute git command',
119
+ });
120
+ resolve();
121
+ });
122
+ });
123
+ });
35
124
  return router;
36
125
  }
37
126
  //# sourceMappingURL=projects.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/routes/projects.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,sEAAsE;AACtE,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAqB,CAAC;IACxD,MAAM,YAAY,GAAG,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACvD,OAAO,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,4BAA4B;IAC5B,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACpC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,0DAA0D;IAC1D,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QACzC,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,IAAK,CAAC,CAAC;YAE1E,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACpE,MAAM,OAAO,GAAG,OAAO;iBACpB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;iBACrE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;iBAC1B,IAAI,EAAE,CAAC;YAEV,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;YAC9C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/routes/projects.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"updater.d.ts","sourceRoot":"","sources":["../src/updater.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAwFzD"}
1
+ {"version":3,"file":"updater.d.ts","sourceRoot":"","sources":["../src/updater.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAqGzD"}
@@ -60,6 +60,13 @@ cd /tmp
60
60
  # Wait for agent to fully exit
61
61
  sleep 2
62
62
 
63
+ # Load nvm if available (required for Linux VMs using nvm)
64
+ export NVM_DIR="${'$'}{NVM_DIR:-${'$'}HOME/.nvm}"
65
+ if [ -s "${'$'}NVM_DIR/nvm.sh" ]; then
66
+ source "${'$'}NVM_DIR/nvm.sh"
67
+ echo "[247] Loaded nvm from ${'$'}NVM_DIR"
68
+ fi
69
+
63
70
  echo "[247] Installing version ${targetVersion}..."
64
71
  npm install -g ${PACKAGE_NAME}@${targetVersion}
65
72
 
@@ -89,14 +96,19 @@ rm -f "${UPDATE_SCRIPT}"
89
96
  updateInProgress = false;
90
97
  return;
91
98
  }
99
+ // Build PATH with common locations for npm
100
+ const nvmPath = process.env.NVM_BIN || '';
101
+ const basePath = '/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin';
102
+ const extraPath = process.env.PATH || '';
92
103
  // Spawn detached updater process
93
104
  const updater = spawn('bash', [UPDATE_SCRIPT], {
94
105
  detached: true,
95
106
  stdio: 'ignore',
96
107
  env: {
97
108
  ...process.env,
98
- // Ensure npm and 247 are in PATH
99
- PATH: '/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:' + (process.env.PATH || ''),
109
+ // Ensure npm and 247 are in PATH (nvm paths + homebrew + standard)
110
+ PATH: `${nvmPath}:${basePath}:${extraPath}`,
111
+ NVM_DIR: process.env.NVM_DIR || `${process.env.HOME}/.nvm`,
100
112
  },
101
113
  });
102
114
  updater.unref();
@@ -1 +1 @@
1
- {"version":3,"file":"updater.js","sourceRoot":"","sources":["../src/updater.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updater.js","sourceRoot":"","sources":["../src/updater.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "247-shared",
3
- "version": "2.32.2",
3
+ "version": "2.33.1",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "exports": {
package/dist/index.js CHANGED
@@ -15,7 +15,7 @@ const program = new Command();
15
15
  program
16
16
  .name('247')
17
17
  .description('247 - Access Claude Code from anywhere 24/7\nby The Vibe Company')
18
- .version('2.32.2')
18
+ .version('2.33.1')
19
19
  .option('-P, --profile <name>', 'Use a specific profile (dev, prod, etc.)');
20
20
  // Add commands
21
21
  program.addCommand(initCommand);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "247-cli",
3
- "version": "2.32.2",
3
+ "version": "2.33.1",
4
4
  "description": "247 - Access Claude Code from anywhere 24/7",
5
5
  "keywords": [
6
6
  "claude",