magicpath-ai 1.4.1 → 1.5.0-beta.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.
Files changed (88) hide show
  1. package/dist/cli.js +137 -52
  2. package/package.json +6 -7
  3. package/dist/cli.d.ts +0 -2
  4. package/dist/cli.js.map +0 -1
  5. package/dist/commands/add.d.ts +0 -48
  6. package/dist/commands/add.js +0 -451
  7. package/dist/commands/add.js.map +0 -1
  8. package/dist/commands/auth.d.ts +0 -7
  9. package/dist/commands/auth.js +0 -189
  10. package/dist/commands/auth.js.map +0 -1
  11. package/dist/commands/clone.d.ts +0 -2
  12. package/dist/commands/clone.js +0 -241
  13. package/dist/commands/clone.js.map +0 -1
  14. package/dist/commands/get-theme.d.ts +0 -2
  15. package/dist/commands/get-theme.js +0 -132
  16. package/dist/commands/get-theme.js.map +0 -1
  17. package/dist/commands/info.d.ts +0 -2
  18. package/dist/commands/info.js +0 -134
  19. package/dist/commands/info.js.map +0 -1
  20. package/dist/commands/inspect.d.ts +0 -53
  21. package/dist/commands/inspect.js +0 -122
  22. package/dist/commands/inspect.js.map +0 -1
  23. package/dist/commands/list-installed.d.ts +0 -2
  24. package/dist/commands/list-installed.js +0 -112
  25. package/dist/commands/list-installed.js.map +0 -1
  26. package/dist/commands/list-themes.d.ts +0 -2
  27. package/dist/commands/list-themes.js +0 -94
  28. package/dist/commands/list-themes.js.map +0 -1
  29. package/dist/commands/list.d.ts +0 -2
  30. package/dist/commands/list.js +0 -216
  31. package/dist/commands/list.js.map +0 -1
  32. package/dist/commands/schema.d.ts +0 -2
  33. package/dist/commands/schema.js +0 -292
  34. package/dist/commands/schema.js.map +0 -1
  35. package/dist/commands/search.d.ts +0 -2
  36. package/dist/commands/search.js +0 -124
  37. package/dist/commands/search.js.map +0 -1
  38. package/dist/commands/selection.d.ts +0 -2
  39. package/dist/commands/selection.js +0 -157
  40. package/dist/commands/selection.js.map +0 -1
  41. package/dist/commands/setup-skills.d.ts +0 -2
  42. package/dist/commands/setup-skills.js +0 -13
  43. package/dist/commands/setup-skills.js.map +0 -1
  44. package/dist/commands/view.d.ts +0 -2
  45. package/dist/commands/view.js +0 -27
  46. package/dist/commands/view.js.map +0 -1
  47. package/dist/commands/whoami.d.ts +0 -2
  48. package/dist/commands/whoami.js +0 -66
  49. package/dist/commands/whoami.js.map +0 -1
  50. package/dist/util/api.d.ts +0 -17
  51. package/dist/util/api.js +0 -49
  52. package/dist/util/api.js.map +0 -1
  53. package/dist/util/auth.d.ts +0 -26
  54. package/dist/util/auth.js +0 -113
  55. package/dist/util/auth.js.map +0 -1
  56. package/dist/util/authError.d.ts +0 -4
  57. package/dist/util/authError.js +0 -7
  58. package/dist/util/authError.js.map +0 -1
  59. package/dist/util/banner.d.ts +0 -1
  60. package/dist/util/banner.js +0 -79
  61. package/dist/util/banner.js.map +0 -1
  62. package/dist/util/component.d.ts +0 -186
  63. package/dist/util/component.js +0 -349
  64. package/dist/util/component.js.map +0 -1
  65. package/dist/util/dependencies.d.ts +0 -12
  66. package/dist/util/dependencies.js +0 -93
  67. package/dist/util/dependencies.js.map +0 -1
  68. package/dist/util/error.d.ts +0 -9
  69. package/dist/util/error.js +0 -10
  70. package/dist/util/error.js.map +0 -1
  71. package/dist/util/ide.d.ts +0 -3
  72. package/dist/util/ide.js +0 -145
  73. package/dist/util/ide.js.map +0 -1
  74. package/dist/util/liveblocks.d.ts +0 -24
  75. package/dist/util/liveblocks.js +0 -112
  76. package/dist/util/liveblocks.js.map +0 -1
  77. package/dist/util/logger.d.ts +0 -7
  78. package/dist/util/logger.js +0 -21
  79. package/dist/util/logger.js.map +0 -1
  80. package/dist/util/output.d.ts +0 -15
  81. package/dist/util/output.js +0 -36
  82. package/dist/util/output.js.map +0 -1
  83. package/dist/util/project.d.ts +0 -3
  84. package/dist/util/project.js +0 -64
  85. package/dist/util/project.js.map +0 -1
  86. package/dist/util/ui.d.ts +0 -11
  87. package/dist/util/ui.js +0 -30
  88. package/dist/util/ui.js.map +0 -1
@@ -1,451 +0,0 @@
1
- import prompts from 'prompts';
2
- import { z } from 'zod';
3
- import path from 'path';
4
- import fs from 'fs-extra';
5
- import { enableDebugLogger, logger } from '../util/logger.js';
6
- import { MagicPathError } from '../util/error.js';
7
- import { AuthRequiredError } from '../util/authError.js';
8
- import { brandSpinner } from '../util/ui.js';
9
- import { isJsonMode, jsonResult, jsonError } from '../util/output.js';
10
- import { fetchComponent, checkExistingFiles, writeComponentFiles, checkUtilsExists, writeUtilsFile, resolveComponentsPath, resolveUtilsPath, sanitizeComponentFolderName, extractComponentExports, generateImportStatement, generateUsageExample, writeUsageFile, DEFAULT_COMPONENTS_PATH, } from '../util/component.js';
11
- import { installPackages } from '../util/dependencies.js';
12
- import { runLoginFlow } from './auth.js';
13
- export const addOptionsSchema = z.object({
14
- yes: z.boolean().default(false),
15
- overwrite: z.boolean().default(false),
16
- path: z.string().optional(),
17
- debug: z.boolean().default(false),
18
- dryRun: z.boolean().default(false),
19
- });
20
- export const addOutputSchema = z.object({
21
- component: z.string(),
22
- generatedName: z.string(),
23
- filesWritten: z.array(z.string()),
24
- dependenciesInstalled: z.array(z.string()),
25
- importStatement: z.string().optional(),
26
- usage: z.string().optional(),
27
- dryRun: z.boolean(),
28
- });
29
- export function registerAddCommand(program) {
30
- program
31
- .command('add')
32
- .description('Add a MagicPath component to your project')
33
- .argument('<generatedNames...>', 'One or more generated names of components (e.g., wispy-river-5234 bold-moon-2031)')
34
- .option('-y, --yes', 'Skip confirmation prompts', false)
35
- .option('--overwrite', 'Overwrite existing files', false)
36
- .option('-p, --path <path>', `Custom path for components (default: ${DEFAULT_COMPONENTS_PATH})`)
37
- .option('-d, --debug', 'Enable debug logging', false)
38
- .option('--dry-run', 'Show what would happen without writing files', false)
39
- .action(async (generatedNames, options) => {
40
- try {
41
- let addOptions;
42
- try {
43
- addOptions = addOptionsSchema.parse(options);
44
- }
45
- catch {
46
- throw new Error('Invalid CLI options for add command.');
47
- }
48
- if (addOptions.debug)
49
- enableDebugLogger();
50
- // In JSON mode, imply --yes (skip prompts)
51
- const json = isJsonMode();
52
- if (json)
53
- addOptions.yes = true;
54
- const isBatch = generatedNames.length > 1;
55
- // For batch mode, force --yes to avoid repetitive prompts
56
- if (isBatch) {
57
- addOptions.yes = true;
58
- }
59
- logger.debug({ generatedNames, options: addOptions });
60
- const cwd = process.cwd();
61
- // Check if we're in a valid project directory
62
- const packageJsonPath = path.join(cwd, 'package.json');
63
- if (!fs.existsSync(packageJsonPath)) {
64
- throw new MagicPathError('No package.json found. Please run this command from the root of your React project.', {
65
- code: 'MISSING_PACKAGE_JSON',
66
- suggestion: 'Run this command from the root of your project where package.json is located.',
67
- });
68
- }
69
- // Batch results collector
70
- const batchResults = [];
71
- if (isBatch && !json) {
72
- console.log(`\n Adding ${generatedNames.length} components...\n`);
73
- }
74
- for (const generatedName of generatedNames) {
75
- try {
76
- // Step 1: Fetch component from registry
77
- const fetchSpinner = json
78
- ? null
79
- : brandSpinner(`Fetching component "${generatedName}"...`).start();
80
- let componentData;
81
- try {
82
- componentData = await fetchComponent(generatedName);
83
- fetchSpinner?.succeed(`Found component: ${componentData.name}`);
84
- }
85
- catch (err) {
86
- if (err instanceof AuthRequiredError) {
87
- fetchSpinner?.fail('Not logged in');
88
- if (json || isBatch) {
89
- throw new MagicPathError('Not authenticated. Set MAGICPATH_TOKEN or run `magicpath-ai login`.', {
90
- code: 'NOT_AUTHENTICATED',
91
- suggestion: 'Run `magicpath-ai login` or set the MAGICPATH_TOKEN environment variable.',
92
- });
93
- }
94
- const { shouldLogin } = await prompts({
95
- type: 'confirm',
96
- name: 'shouldLogin',
97
- message: 'You need to be logged in to install components. Log in now?',
98
- initial: true,
99
- });
100
- if (!shouldLogin) {
101
- console.log('Installation cancelled.');
102
- return;
103
- }
104
- const loggedIn = await runLoginFlow();
105
- if (!loggedIn) {
106
- console.log('Installation cancelled.');
107
- return;
108
- }
109
- // Retry fetch after login
110
- const retrySpinner = brandSpinner(`Fetching component "${generatedName}"...`).start();
111
- try {
112
- componentData = await fetchComponent(generatedName);
113
- retrySpinner.succeed(`Found component: ${componentData.name}`);
114
- }
115
- catch (retryErr) {
116
- retrySpinner.fail('Failed to fetch component');
117
- if (retryErr instanceof MagicPathError) {
118
- throw retryErr;
119
- }
120
- throw new MagicPathError('Something went wrong!');
121
- }
122
- }
123
- else {
124
- fetchSpinner?.fail('Failed to fetch component');
125
- if (isBatch) {
126
- const errMsg = err instanceof MagicPathError
127
- ? err.message
128
- : 'Something went wrong!';
129
- batchResults.push({
130
- component: generatedName,
131
- generatedName,
132
- filesWritten: [],
133
- dependenciesInstalled: [],
134
- dryRun: addOptions.dryRun,
135
- error: errMsg,
136
- });
137
- if (!json)
138
- console.log(` āš ļø Skipping "${generatedName}": ${errMsg}`);
139
- continue;
140
- }
141
- if (err instanceof MagicPathError) {
142
- throw err;
143
- }
144
- throw new MagicPathError('Something went wrong!');
145
- }
146
- }
147
- // Resolve paths - include component-specific subfolder
148
- const basePath = resolveComponentsPath(addOptions.path, cwd);
149
- const componentFolderName = sanitizeComponentFolderName(componentData.name);
150
- const componentsPath = path.join(basePath, componentFolderName);
151
- const utilsPath = resolveUtilsPath(cwd);
152
- logger.debug({
153
- basePath,
154
- componentFolderName,
155
- componentsPath,
156
- utilsPath,
157
- });
158
- // Step 2: Check for existing files
159
- const existingFiles = checkExistingFiles(componentData.files, componentsPath);
160
- if (existingFiles.length > 0 && !addOptions.overwrite) {
161
- if (!json) {
162
- console.log('\nThe following files already exist:');
163
- existingFiles.forEach((file) => console.log(` - ${file}`));
164
- }
165
- if (!addOptions.yes) {
166
- const { shouldOverwrite } = await prompts({
167
- type: 'confirm',
168
- name: 'shouldOverwrite',
169
- message: 'Do you want to overwrite these files?',
170
- initial: false,
171
- });
172
- if (!shouldOverwrite) {
173
- console.log('Installation cancelled.');
174
- return;
175
- }
176
- }
177
- else {
178
- if (isBatch) {
179
- if (!json)
180
- console.log(` āš ļø Skipping "${componentData.name}": files already exist. Use --overwrite.`);
181
- batchResults.push({
182
- component: componentData.name,
183
- generatedName: componentData.generatedName,
184
- filesWritten: [],
185
- dependenciesInstalled: [],
186
- dryRun: addOptions.dryRun,
187
- error: 'Files already exist. Use --overwrite to replace.',
188
- });
189
- continue;
190
- }
191
- if (json) {
192
- throw new MagicPathError(`Files already exist: ${existingFiles.join(', ')}. Use --overwrite to replace.`, {
193
- code: 'FILES_EXIST',
194
- suggestion: 'Pass `--overwrite` to replace existing files.',
195
- });
196
- }
197
- console.log('Use --overwrite to replace existing files.');
198
- return;
199
- }
200
- }
201
- // Step 3: Confirm installation (unless --yes flag)
202
- if (!addOptions.yes && existingFiles.length === 0) {
203
- console.log(`\nThis will install:`);
204
- console.log(` Component: ${componentData.name}`);
205
- console.log(` Files: ${componentData.files.length} file(s) to ${path.relative(cwd, componentsPath) || '.'}`);
206
- console.log(` Dependencies: ${componentData.dependencies.length} package(s)`);
207
- const { shouldProceed } = await prompts({
208
- type: 'confirm',
209
- name: 'shouldProceed',
210
- message: 'Proceed with installation?',
211
- initial: true,
212
- });
213
- if (!shouldProceed) {
214
- console.log('Installation cancelled.');
215
- return;
216
- }
217
- }
218
- // Build result data for JSON output
219
- const filesWritten = componentData.files.map((f) => path.relative(cwd, path.join(componentsPath, f.path)));
220
- // Extract import info
221
- const mainFile = componentData.files[0];
222
- let importStatement;
223
- let usageStr;
224
- if (mainFile) {
225
- const fileName = mainFile.name.replace(/\.tsx?$/, '');
226
- const importPath = addOptions.path
227
- ? `@/${addOptions.path}/${componentFolderName}/${fileName}`
228
- : `@/components/magicpath/${componentFolderName}/${fileName}`;
229
- const exportInfo = extractComponentExports(mainFile.content);
230
- if (exportInfo) {
231
- importStatement = generateImportStatement(exportInfo, importPath);
232
- usageStr = generateUsageExample(exportInfo);
233
- }
234
- else {
235
- importStatement = `import { ${fileName} } from '${importPath}';`;
236
- }
237
- }
238
- // Dry run: return what would happen without writing
239
- if (addOptions.dryRun) {
240
- const fileContents = json
241
- ? componentData.files.map((f) => ({
242
- path: f.path,
243
- name: f.name,
244
- content: f.content,
245
- }))
246
- : undefined;
247
- if (!isBatch && json) {
248
- jsonResult({
249
- component: componentData.name,
250
- generatedName: componentData.generatedName,
251
- filesWritten,
252
- files: fileContents,
253
- dependenciesInstalled: componentData.dependencies,
254
- importStatement,
255
- usage: usageStr,
256
- dryRun: true,
257
- });
258
- }
259
- batchResults.push({
260
- component: componentData.name,
261
- generatedName: componentData.generatedName,
262
- filesWritten,
263
- dependenciesInstalled: componentData.dependencies,
264
- importStatement,
265
- usage: usageStr,
266
- dryRun: true,
267
- });
268
- if (!json) {
269
- console.log('\n[Dry run] Would install:');
270
- console.log(` Component: ${componentData.name}`);
271
- console.log(` Files: ${filesWritten.join(', ')}`);
272
- console.log(` Dependencies: ${componentData.dependencies.join(', ') || 'none'}`);
273
- if (importStatement)
274
- console.log(` Import: ${importStatement}`);
275
- }
276
- continue;
277
- }
278
- // Step 4: Write component files
279
- const writeSpinner = json
280
- ? null
281
- : brandSpinner('Writing component files...').start();
282
- try {
283
- writeComponentFiles(componentData.files, componentsPath, true);
284
- writeSpinner?.succeed(`Wrote ${componentData.files.length} file(s) to ${path.relative(cwd, componentsPath) || '.'}`);
285
- }
286
- catch (err) {
287
- writeSpinner?.fail('Failed to write component files');
288
- if (isBatch) {
289
- batchResults.push({
290
- component: componentData.name,
291
- generatedName: componentData.generatedName,
292
- filesWritten: [],
293
- dependenciesInstalled: [],
294
- dryRun: false,
295
- error: 'Failed to write component files.',
296
- });
297
- continue;
298
- }
299
- throw new MagicPathError('Failed to write component files. Please check permissions and try again.');
300
- }
301
- // Step 5: Install utils if needed
302
- const utilsExists = checkUtilsExists(utilsPath);
303
- if (!utilsExists && componentData.utils.content) {
304
- const utilsSpinner = json
305
- ? null
306
- : brandSpinner('Installing utilities...').start();
307
- try {
308
- writeUtilsFile(componentData.utils.content, utilsPath);
309
- utilsSpinner?.succeed(`Wrote utils.ts to ${path.relative(cwd, utilsPath) || '.'}`);
310
- }
311
- catch (err) {
312
- utilsSpinner?.fail('Failed to write utils file');
313
- logger.debug({ err });
314
- if (!json) {
315
- console.log(' Warning: Could not write utils.ts. You may need to create it manually.');
316
- }
317
- }
318
- }
319
- // Step 6: Install dependencies
320
- const installedDeps = [];
321
- if (componentData.dependencies.length > 0) {
322
- try {
323
- const { installed, skipped } = installPackages(componentData.dependencies, cwd);
324
- installedDeps.push(...installed);
325
- if (skipped.length > 0) {
326
- logger.debug({
327
- message: 'Skipped already installed packages',
328
- skipped,
329
- });
330
- }
331
- }
332
- catch (err) {
333
- if (err instanceof MagicPathError) {
334
- if (!json)
335
- console.log(`\nāš ļø ${err.message}`);
336
- }
337
- }
338
- }
339
- batchResults.push({
340
- component: componentData.name,
341
- generatedName: componentData.generatedName,
342
- filesWritten,
343
- dependenciesInstalled: installedDeps,
344
- importStatement,
345
- usage: usageStr,
346
- dryRun: false,
347
- });
348
- // Single-component JSON output (non-batch)
349
- if (!isBatch && json) {
350
- jsonResult({
351
- component: componentData.name,
352
- generatedName: componentData.generatedName,
353
- filesWritten,
354
- dependenciesInstalled: installedDeps,
355
- importStatement,
356
- usage: usageStr,
357
- dryRun: false,
358
- });
359
- }
360
- // Step 7: Show success message and write usage file
361
- if (!json) {
362
- console.log(`\nāœ… Successfully added "${componentData.name}" to your project!`);
363
- if (!isBatch) {
364
- console.log(`\nUsage:`);
365
- }
366
- }
367
- if (mainFile) {
368
- const fileName = mainFile.name.replace(/\.tsx?$/, '');
369
- const importPath = addOptions.path
370
- ? `@/${addOptions.path}/${componentFolderName}/${fileName}`
371
- : `@/components/magicpath/${componentFolderName}/${fileName}`;
372
- const exportInfo = extractComponentExports(mainFile.content);
373
- if (!isBatch && !json) {
374
- if (exportInfo) {
375
- console.log(` ${generateImportStatement(exportInfo, importPath)}`);
376
- console.log('');
377
- console.log(` ${generateUsageExample(exportInfo)}`);
378
- if (exportInfo.requiredProps.length > 0) {
379
- console.log('');
380
- console.log(` Required props: ${exportInfo.requiredProps.join(', ')}`);
381
- }
382
- }
383
- else {
384
- console.log(` import { ${fileName} } from '${importPath}';`);
385
- }
386
- }
387
- try {
388
- writeUsageFile(componentsPath, {
389
- componentName: componentData.name,
390
- importPath,
391
- exportInfo,
392
- fileName,
393
- });
394
- if (!isBatch && !json) {
395
- console.log(`\nšŸ“„ Usage documentation written to ${path.relative(cwd, path.join(componentsPath, 'usage.md'))}`);
396
- }
397
- }
398
- catch (err) {
399
- logger.debug({ err });
400
- }
401
- }
402
- }
403
- catch (err) {
404
- // In batch mode, record error and continue
405
- if (isBatch) {
406
- const errMsg = err instanceof Error ? err.message : String(err);
407
- batchResults.push({
408
- component: generatedName,
409
- generatedName,
410
- filesWritten: [],
411
- dependenciesInstalled: [],
412
- dryRun: addOptions.dryRun,
413
- error: errMsg,
414
- });
415
- if (!json)
416
- console.log(` āš ļø Failed "${generatedName}": ${errMsg}`);
417
- continue;
418
- }
419
- throw err;
420
- }
421
- }
422
- // Batch summary
423
- if (isBatch) {
424
- if (json) {
425
- jsonResult({
426
- results: batchResults,
427
- total: batchResults.length,
428
- succeeded: batchResults.filter((r) => !r.error).length,
429
- failed: batchResults.filter((r) => r.error).length,
430
- });
431
- }
432
- const succeeded = batchResults.filter((r) => !r.error);
433
- const failed = batchResults.filter((r) => r.error);
434
- console.log(`\n ${succeeded.length} of ${batchResults.length} component(s) added successfully.`);
435
- if (failed.length > 0) {
436
- console.log(` ${failed.length} failed: ${failed.map((f) => f.generatedName).join(', ')}`);
437
- }
438
- }
439
- }
440
- catch (err) {
441
- if (isJsonMode())
442
- jsonError(err);
443
- if (err instanceof MagicPathError) {
444
- console.error(`\n${err.message}`);
445
- process.exit(1);
446
- }
447
- throw err;
448
- }
449
- });
450
- }
451
- //# sourceMappingURL=add.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import type { Command } from 'commander';
2
- /**
3
- * Run the interactive login flow: start localhost server, open browser, receive callback with code.
4
- * Returns true if login succeeded, false if cancelled/timed out.
5
- */
6
- export declare function runLoginFlow(): Promise<boolean>;
7
- export declare function registerAuthCommands(program: Command): void;