magicpath-ai 1.3.0-beta.2 → 1.3.0-beta.4

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 (56) hide show
  1. package/README.md +63 -8
  2. package/dist/cli.js +28 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/add.d.ts +49 -0
  5. package/dist/commands/add.js +129 -25
  6. package/dist/commands/add.js.map +1 -1
  7. package/dist/commands/auth.js +33 -2
  8. package/dist/commands/auth.js.map +1 -1
  9. package/dist/commands/clone.js +112 -86
  10. package/dist/commands/clone.js.map +1 -1
  11. package/dist/commands/info.d.ts +2 -0
  12. package/dist/commands/info.js +124 -0
  13. package/dist/commands/info.js.map +1 -0
  14. package/dist/commands/init.d.ts +2 -0
  15. package/dist/commands/init.js +280 -0
  16. package/dist/commands/init.js.map +1 -0
  17. package/dist/commands/integrate.js +282 -81
  18. package/dist/commands/integrate.js.map +1 -1
  19. package/dist/commands/list.d.ts +2 -0
  20. package/dist/commands/list.js +138 -0
  21. package/dist/commands/list.js.map +1 -0
  22. package/dist/commands/schema.d.ts +2 -0
  23. package/dist/commands/schema.js +213 -0
  24. package/dist/commands/schema.js.map +1 -0
  25. package/dist/commands/search.d.ts +2 -0
  26. package/dist/commands/search.js +120 -0
  27. package/dist/commands/search.js.map +1 -0
  28. package/dist/commands/skills.d.ts +2 -0
  29. package/dist/commands/skills.js +55 -0
  30. package/dist/commands/skills.js.map +1 -0
  31. package/dist/commands/view.d.ts +2 -0
  32. package/dist/commands/view.js +27 -0
  33. package/dist/commands/view.js.map +1 -0
  34. package/dist/commands/whoami.d.ts +2 -0
  35. package/dist/commands/whoami.js +58 -0
  36. package/dist/commands/whoami.js.map +1 -0
  37. package/dist/util/api.d.ts +4 -0
  38. package/dist/util/api.js +12 -0
  39. package/dist/util/api.js.map +1 -1
  40. package/dist/util/auth.js +5 -0
  41. package/dist/util/auth.js.map +1 -1
  42. package/dist/util/component.d.ts +8 -8
  43. package/dist/util/diff.d.ts +4 -0
  44. package/dist/util/diff.js +11 -3
  45. package/dist/util/diff.js.map +1 -1
  46. package/dist/util/integrate.d.ts +13 -2
  47. package/dist/util/integrate.js +111 -9
  48. package/dist/util/integrate.js.map +1 -1
  49. package/dist/util/output.d.ts +14 -0
  50. package/dist/util/output.js +27 -0
  51. package/dist/util/output.js.map +1 -0
  52. package/package.json +3 -2
  53. package/skills/magicpath-add-component/SKILL.md +49 -0
  54. package/skills/magicpath-integrate/SKILL.md +50 -0
  55. package/skills/magicpath-list/SKILL.md +38 -0
  56. package/skills/magicpath-shared/SKILL.md +34 -0
@@ -6,6 +6,7 @@ import os from 'os';
6
6
  import fs from 'fs-extra';
7
7
  import { enableDebugLogger, logger } from '../util/logger.js';
8
8
  import { MagicPathError } from '../util/error.js';
9
+ import { isJsonMode, jsonResult, jsonError } from '../util/output.js';
9
10
  import { downloadProject, releaseProject, unpackProject, } from '../util/project.js';
10
11
  import { installDependencies } from '../util/dependencies.js';
11
12
  import { openInIDE, openInFileManager } from '../util/ide.js';
@@ -13,6 +14,8 @@ const cloneOptionsSchema = z.object({
13
14
  key: z.string(),
14
15
  debug: z.boolean().default(false),
15
16
  ide: z.enum(['cursor', 'antigravity', 'vscode', 'webstorm']).optional(),
17
+ dir: z.string().optional(),
18
+ name: z.string().optional(),
16
19
  });
17
20
  export function registerCloneCommand(program) {
18
21
  program
@@ -21,6 +24,8 @@ export function registerCloneCommand(program) {
21
24
  .requiredOption('-k, --key <accessKey>', '🔑 One-time magic access key to unlock and download your project')
22
25
  .option('-d, --debug', 'Get verbose debug logs in the CLI')
23
26
  .option('-i, --ide <ide>', 'Pre-select IDE to open project in (cursor, antigravity, vscode, webstorm)')
27
+ .option('--dir <directory>', 'Target directory for non-interactive use')
28
+ .option('--name <projectName>', 'Project name for non-interactive use')
24
29
  .action(async (options) => {
25
30
  let cloneOptions;
26
31
  try {
@@ -31,103 +36,119 @@ export function registerCloneCommand(program) {
31
36
  }
32
37
  if (cloneOptions.debug)
33
38
  enableDebugLogger();
39
+ const json = isJsonMode();
40
+ // In JSON mode, require --dir and --name
41
+ if (json && (!cloneOptions.dir || !cloneOptions.name)) {
42
+ jsonError(new Error('In JSON mode, --dir and --name are required for clone.'));
43
+ }
34
44
  logger.debug({ options });
35
45
  logger.debug({ options: cloneOptions });
36
- // Step 1: Ask the user where to drop their fresh code
37
- const homeDir = os.homedir();
38
- const commonDirs = [
39
- { name: 'Documents', path: path.join(homeDir, 'Documents') },
40
- { name: 'Desktop', path: path.join(homeDir, 'Desktop') },
41
- { name: 'Downloads', path: path.join(homeDir, 'Downloads') },
42
- ];
43
- // Filter to only include directories that actually exist
44
- const existingDirs = await Promise.all(commonDirs.map(async (dir) => {
45
- try {
46
- const exists = await fs.pathExists(dir.path);
47
- return exists ? dir : null;
46
+ let finalTargetDir;
47
+ let projectName;
48
+ if (cloneOptions.dir && cloneOptions.name) {
49
+ // Non-interactive mode
50
+ finalTargetDir = path.resolve(cloneOptions.dir);
51
+ projectName = cloneOptions.name;
52
+ await fs.ensureDir(finalTargetDir);
53
+ }
54
+ else {
55
+ // Step 1: Ask the user where to drop their fresh code
56
+ const homeDir = os.homedir();
57
+ const commonDirs = [
58
+ { name: 'Documents', path: path.join(homeDir, 'Documents') },
59
+ { name: 'Desktop', path: path.join(homeDir, 'Desktop') },
60
+ { name: 'Downloads', path: path.join(homeDir, 'Downloads') },
61
+ ];
62
+ // Filter to only include directories that actually exist
63
+ const existingDirs = await Promise.all(commonDirs.map(async (dir) => {
64
+ try {
65
+ const exists = await fs.pathExists(dir.path);
66
+ return exists ? dir : null;
67
+ }
68
+ catch {
69
+ return null;
70
+ }
71
+ }));
72
+ const validDirs = existingDirs.filter((dir) => dir !== null);
73
+ // Build choices array starting with current directory and home directory
74
+ const choices = [
75
+ {
76
+ title: `Right here (current folder: ${process.cwd()})`,
77
+ value: process.cwd(),
78
+ },
79
+ { title: `Home directory (${homeDir})`, value: homeDir },
80
+ ];
81
+ // Add existing standard directories
82
+ validDirs.forEach((dir) => {
83
+ choices.push({ title: dir.name, value: dir.path });
84
+ });
85
+ // Add option for custom directory
86
+ choices.push({ title: 'Other (specify custom path)', value: 'custom' });
87
+ const { targetDir } = await prompts({
88
+ type: 'select',
89
+ name: 'targetDir',
90
+ message: 'Where should we put your code?',
91
+ choices,
92
+ initial: 0,
93
+ });
94
+ finalTargetDir = targetDir;
95
+ // Handle custom directory selection
96
+ if (targetDir === 'custom') {
97
+ const { customPath } = await prompts({
98
+ type: 'text',
99
+ name: 'customPath',
100
+ message: 'Enter the full path where you want to create your project:',
101
+ initial: homeDir,
102
+ validate: (value) => {
103
+ if (!value)
104
+ return 'Please enter a path';
105
+ try {
106
+ path.resolve(value);
107
+ return true;
108
+ }
109
+ catch {
110
+ return 'Please enter a valid path';
111
+ }
112
+ },
113
+ });
114
+ if (!customPath) {
115
+ throw new MagicPathError('Project creation cancelled');
116
+ }
117
+ finalTargetDir = path.resolve(customPath);
118
+ try {
119
+ await fs.ensureDir(finalTargetDir);
120
+ }
121
+ catch (err) {
122
+ throw new MagicPathError(`Failed to create or access directory: ${finalTargetDir}`);
123
+ }
48
124
  }
49
- catch {
50
- return null;
125
+ if (!finalTargetDir) {
126
+ throw new MagicPathError('Download cancelled');
51
127
  }
52
- }));
53
- const validDirs = existingDirs.filter((dir) => dir !== null);
54
- // Build choices array starting with current directory and home directory
55
- const choices = [
56
- {
57
- title: `Right here (current folder: ${process.cwd()})`,
58
- value: process.cwd(),
59
- },
60
- { title: `Home directory (${homeDir})`, value: homeDir },
61
- ];
62
- // Add existing standard directories
63
- validDirs.forEach((dir) => {
64
- choices.push({ title: dir.name, value: dir.path });
65
- });
66
- // Add option for custom directory
67
- choices.push({ title: 'Other (specify custom path)', value: 'custom' });
68
- const { targetDir } = await prompts({
69
- type: 'select',
70
- name: 'targetDir',
71
- message: 'Where should we put your code?',
72
- choices,
73
- initial: 0,
74
- });
75
- let finalTargetDir = targetDir;
76
- // Handle custom directory selection
77
- if (targetDir === 'custom') {
78
- const { customPath } = await prompts({
128
+ // Step 2: Ask for project name
129
+ const nameResult = await prompts({
79
130
  type: 'text',
80
- name: 'customPath',
81
- message: 'Enter the full path where you want to create your project:',
82
- initial: homeDir,
83
- validate: (value) => {
84
- if (!value)
85
- return 'Please enter a path';
86
- try {
87
- // Try to resolve the path to check if it's valid
88
- const resolvedPath = path.resolve(value);
89
- return true;
90
- }
91
- catch {
92
- return 'Please enter a valid path';
93
- }
94
- },
131
+ name: 'projectName',
132
+ message: 'What would you like to name your project?',
133
+ initial: 'magicpath-project',
95
134
  });
96
- if (!customPath) {
135
+ projectName = nameResult.projectName;
136
+ if (!projectName) {
97
137
  throw new MagicPathError('Project creation cancelled');
98
138
  }
99
- finalTargetDir = path.resolve(customPath);
100
- // Ensure the custom directory exists, create if it doesn't
101
- try {
102
- await fs.ensureDir(finalTargetDir);
103
- }
104
- catch (err) {
105
- throw new MagicPathError(`Failed to create or access directory: ${finalTargetDir}`);
106
- }
107
- }
108
- if (!finalTargetDir) {
109
- throw new MagicPathError('Download cancelled');
110
- }
111
- // Step 2: Ask for project name
112
- const { projectName } = await prompts({
113
- type: 'text',
114
- name: 'projectName',
115
- message: 'What would you like to name your project?',
116
- initial: 'magicpath-project',
117
- });
118
- if (!projectName) {
119
- throw new MagicPathError('Project creation cancelled');
120
139
  }
121
140
  let filename;
122
141
  // Step 3: Download project
123
- const downloadSpinner = ora('📥 Downloading project...').start();
142
+ const downloadSpinner = json
143
+ ? null
144
+ : ora('📥 Downloading project...').start();
124
145
  try {
125
146
  filename = await downloadProject(cloneOptions.key);
126
147
  logger.debug({ filename });
127
- downloadSpinner.succeed('Project downloaded');
148
+ downloadSpinner?.succeed('Project downloaded');
128
149
  }
129
150
  catch (err) {
130
- downloadSpinner.fail('Download failed');
151
+ downloadSpinner?.fail('Download failed');
131
152
  if (err instanceof MagicPathError) {
132
153
  throw err;
133
154
  }
@@ -135,15 +156,17 @@ export function registerCloneCommand(program) {
135
156
  throw new MagicPathError('Something went wrong!');
136
157
  }
137
158
  }
138
- // Step 3: Unpack project
139
- const unpackSpinner = ora('📦 Unpacking project...').start();
159
+ // Step 4: Unpack project
160
+ const unpackSpinner = json
161
+ ? null
162
+ : ora('📦 Unpacking project...').start();
140
163
  let projectDir;
141
164
  try {
142
165
  projectDir = unpackProject(filename, projectName, finalTargetDir);
143
- unpackSpinner.succeed(`Project unpacked to ${projectName}`);
166
+ unpackSpinner?.succeed(`Project unpacked to ${projectName}`);
144
167
  }
145
168
  catch (err) {
146
- unpackSpinner.fail('Failed to unpack project');
169
+ unpackSpinner?.fail('Failed to unpack project');
147
170
  releaseProject(filename);
148
171
  if (err instanceof MagicPathError) {
149
172
  throw err;
@@ -164,6 +187,10 @@ export function registerCloneCommand(program) {
164
187
  throw new MagicPathError('Something went wrong!');
165
188
  }
166
189
  }
190
+ // JSON mode: return result
191
+ if (json) {
192
+ jsonResult({ projectDir });
193
+ }
167
194
  // Step 6: Ask which IDE to open the project in (or use pre-selected one)
168
195
  const ideChoices = [
169
196
  { title: 'Cursor', value: 'cursor' },
@@ -200,7 +227,6 @@ export function registerCloneCommand(program) {
200
227
  }
201
228
  catch (err) {
202
229
  logger.debug({ err });
203
- // Don't throw error if opening fails, just continue
204
230
  if (err instanceof MagicPathError) {
205
231
  console.log(err.message);
206
232
  }
@@ -1 +1 @@
1
- {"version":3,"file":"clone.js","sourceRoot":"","sources":["../../src/commands/clone.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clone.js","sourceRoot":"","sources":["../../src/commands/clone.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerInfoCommand(program: Command): void;
@@ -0,0 +1,124 @@
1
+ import axios from 'axios';
2
+ import { readFileSync } from 'fs';
3
+ import { getAuthHeaders, loadTokens } from '../util/auth.js';
4
+ import { getUserUrl, getUserProjectsUrl } from '../util/api.js';
5
+ import { isJsonMode, jsonResult, jsonError } from '../util/output.js';
6
+ const pkg = JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf8'));
7
+ export function registerInfoCommand(program) {
8
+ program
9
+ .command('info')
10
+ .description('Show project and auth status (useful for agent context injection)')
11
+ .action(async () => {
12
+ const json = isJsonMode();
13
+ try {
14
+ // Determine auth method
15
+ let authMethod = null;
16
+ let authenticated = false;
17
+ let headers = null;
18
+ if (process.env.MAGICPATH_TOKEN) {
19
+ authMethod = 'environment';
20
+ authenticated = true;
21
+ headers = getAuthHeaders();
22
+ }
23
+ else if (loadTokens()) {
24
+ authMethod = 'stored';
25
+ authenticated = true;
26
+ headers = getAuthHeaders();
27
+ }
28
+ // Fetch user info
29
+ let user = null;
30
+ if (authenticated && headers) {
31
+ try {
32
+ const response = await axios.get(getUserUrl(), { headers });
33
+ const u = response.data.user ?? response.data;
34
+ user = { id: u.id, name: u.name, email: u.email };
35
+ }
36
+ catch {
37
+ // user fetch failed, leave null
38
+ }
39
+ }
40
+ // Fetch projects
41
+ let projects = null;
42
+ if (authenticated && headers) {
43
+ try {
44
+ const response = await axios.get(getUserProjectsUrl(), { headers });
45
+ const raw = response.data.data?.projects ??
46
+ response.data.projects ??
47
+ response.data;
48
+ if (Array.isArray(raw)) {
49
+ projects = raw.map((p) => ({
50
+ id: p.id,
51
+ name: p.name,
52
+ componentCount: p.componentCount ?? p._count?.components ?? 0,
53
+ }));
54
+ }
55
+ }
56
+ catch {
57
+ // projects fetch failed, leave null
58
+ }
59
+ }
60
+ const result = {
61
+ auth: {
62
+ authenticated,
63
+ method: authMethod,
64
+ user,
65
+ },
66
+ projects,
67
+ cli: {
68
+ version: pkg.version,
69
+ commands: [
70
+ 'add',
71
+ 'view',
72
+ 'search',
73
+ 'list-projects',
74
+ 'list-components',
75
+ 'integrate',
76
+ 'login',
77
+ 'logout',
78
+ 'whoami',
79
+ 'info',
80
+ 'init',
81
+ 'schema',
82
+ ],
83
+ },
84
+ };
85
+ if (json) {
86
+ jsonResult(result);
87
+ }
88
+ // Human-readable output
89
+ console.log('');
90
+ console.log(` MagicPath CLI v${pkg.version}`);
91
+ console.log('');
92
+ if (authenticated && user) {
93
+ console.log(` Authenticated: yes (${authMethod})`);
94
+ console.log(` User: ${user.name} <${user.email}>`);
95
+ }
96
+ else if (authenticated) {
97
+ console.log(` Authenticated: yes (${authMethod})`);
98
+ console.log(' User: (could not fetch)');
99
+ }
100
+ else {
101
+ console.log(' Authenticated: no');
102
+ console.log(' Run `magicpath-ai login` to authenticate.');
103
+ }
104
+ console.log('');
105
+ if (projects && projects.length > 0) {
106
+ console.log(` Projects: ${projects.length}`);
107
+ for (const p of projects) {
108
+ console.log(` - ${p.name} (${p.componentCount} components)`);
109
+ }
110
+ }
111
+ else if (authenticated) {
112
+ console.log(' Projects: none');
113
+ }
114
+ console.log('');
115
+ }
116
+ catch (err) {
117
+ if (json)
118
+ jsonError(err);
119
+ console.error(`Error: ${err instanceof Error ? err.message : String(err)}`);
120
+ process.exit(1);
121
+ }
122
+ });
123
+ }
124
+ //# sourceMappingURL=info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerInitCommand(program: Command): void;