magicpath-ai 1.4.0 → 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 (82) hide show
  1. package/dist/cli.js +137 -50
  2. package/package.json +9 -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 -134
  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 -128
  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 -282
  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/setup-skills.d.ts +0 -2
  39. package/dist/commands/setup-skills.js +0 -13
  40. package/dist/commands/setup-skills.js.map +0 -1
  41. package/dist/commands/view.d.ts +0 -2
  42. package/dist/commands/view.js +0 -27
  43. package/dist/commands/view.js.map +0 -1
  44. package/dist/commands/whoami.d.ts +0 -2
  45. package/dist/commands/whoami.js +0 -66
  46. package/dist/commands/whoami.js.map +0 -1
  47. package/dist/util/api.d.ts +0 -14
  48. package/dist/util/api.js +0 -40
  49. package/dist/util/api.js.map +0 -1
  50. package/dist/util/auth.d.ts +0 -25
  51. package/dist/util/auth.js +0 -106
  52. package/dist/util/auth.js.map +0 -1
  53. package/dist/util/authError.d.ts +0 -4
  54. package/dist/util/authError.js +0 -7
  55. package/dist/util/authError.js.map +0 -1
  56. package/dist/util/banner.d.ts +0 -1
  57. package/dist/util/banner.js +0 -79
  58. package/dist/util/banner.js.map +0 -1
  59. package/dist/util/component.d.ts +0 -186
  60. package/dist/util/component.js +0 -349
  61. package/dist/util/component.js.map +0 -1
  62. package/dist/util/dependencies.d.ts +0 -12
  63. package/dist/util/dependencies.js +0 -93
  64. package/dist/util/dependencies.js.map +0 -1
  65. package/dist/util/error.d.ts +0 -9
  66. package/dist/util/error.js +0 -10
  67. package/dist/util/error.js.map +0 -1
  68. package/dist/util/ide.d.ts +0 -3
  69. package/dist/util/ide.js +0 -145
  70. package/dist/util/ide.js.map +0 -1
  71. package/dist/util/logger.d.ts +0 -7
  72. package/dist/util/logger.js +0 -21
  73. package/dist/util/logger.js.map +0 -1
  74. package/dist/util/output.d.ts +0 -15
  75. package/dist/util/output.js +0 -36
  76. package/dist/util/output.js.map +0 -1
  77. package/dist/util/project.d.ts +0 -3
  78. package/dist/util/project.js +0 -64
  79. package/dist/util/project.js.map +0 -1
  80. package/dist/util/ui.d.ts +0 -11
  81. package/dist/util/ui.js +0 -30
  82. package/dist/util/ui.js.map +0 -1
@@ -1,7 +0,0 @@
1
- export declare function enableDebugLogger(): void;
2
- export declare const logger: {
3
- info: (object: unknown) => void;
4
- debug: (object: unknown) => void;
5
- warn: (object: unknown) => void;
6
- error: (object: unknown) => void;
7
- };
@@ -1,21 +0,0 @@
1
- import { pino } from 'pino';
2
- let defaultLogger = pino();
3
- export function enableDebugLogger() {
4
- defaultLogger = pino({ level: 'debug' });
5
- defaultLogger.debug({ message: 'DEBUG logger enabled. ' });
6
- }
7
- export const logger = {
8
- info: (object) => {
9
- defaultLogger.info(object);
10
- },
11
- debug: (object) => {
12
- defaultLogger.debug(object);
13
- },
14
- warn: (object) => {
15
- defaultLogger.warn(object);
16
- },
17
- error: (object) => {
18
- defaultLogger.error(object);
19
- },
20
- };
21
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/util/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,IAAI,aAAa,GAAG,IAAI,EAAE,CAAC;AAE3B,MAAM,UAAU,iBAAiB;IAC/B,aAAa,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IACzC,aAAa,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,CAAC,MAAe,EAAE,EAAE;QACxB,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IACD,KAAK,EAAE,CAAC,MAAe,EAAE,EAAE;QACzB,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,EAAE,CAAC,MAAe,EAAE,EAAE;QACxB,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IACD,KAAK,EAAE,CAAC,MAAe,EAAE,EAAE;QACzB,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Output context for controlling JSON vs human-friendly output.
3
- * When JSON mode is active, spinners and interactive prompts are suppressed.
4
- */
5
- export declare function setJsonMode(enabled: boolean): void;
6
- export declare function isJsonMode(): boolean;
7
- /**
8
- * Print a JSON result to stdout and exit with code 0.
9
- */
10
- export declare function jsonResult(data: unknown): never;
11
- /**
12
- * Print a JSON error to stderr and exit with code 1.
13
- * Includes `code` and `suggestion` fields when the error is a MagicPathError.
14
- */
15
- export declare function jsonError(err: unknown): never;
@@ -1,36 +0,0 @@
1
- /**
2
- * Output context for controlling JSON vs human-friendly output.
3
- * When JSON mode is active, spinners and interactive prompts are suppressed.
4
- */
5
- import { MagicPathError } from './error.js';
6
- let jsonMode = false;
7
- export function setJsonMode(enabled) {
8
- jsonMode = enabled;
9
- }
10
- export function isJsonMode() {
11
- return jsonMode;
12
- }
13
- /**
14
- * Print a JSON result to stdout and exit with code 0.
15
- */
16
- export function jsonResult(data) {
17
- console.log(JSON.stringify(data, null, 2));
18
- process.exit(0);
19
- }
20
- /**
21
- * Print a JSON error to stderr and exit with code 1.
22
- * Includes `code` and `suggestion` fields when the error is a MagicPathError.
23
- */
24
- export function jsonError(err) {
25
- const message = err instanceof Error ? err.message : String(err);
26
- const payload = { error: message };
27
- if (err instanceof MagicPathError) {
28
- if (err.code)
29
- payload.code = err.code;
30
- if (err.suggestion)
31
- payload.suggestion = err.suggestion;
32
- }
33
- console.error(JSON.stringify(payload, null, 2));
34
- process.exit(1);
35
- }
36
- //# sourceMappingURL=output.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/util/output.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,QAAQ,GAAG,OAAO,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAY;IACpC,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,MAAM,OAAO,GAA2B,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAE3D,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;QAClC,IAAI,GAAG,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACtC,IAAI,GAAG,CAAC,UAAU;YAAE,OAAO,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;IAC1D,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
@@ -1,3 +0,0 @@
1
- export declare function downloadProject(key: string): Promise<string>;
2
- export declare function releaseProject(filename: string): void;
3
- export declare function unpackProject(filename: string, name: string, targetDir: string): string;
@@ -1,64 +0,0 @@
1
- import axios from 'axios';
2
- import path from 'path';
3
- import os from 'os';
4
- import fs from 'fs-extra';
5
- import AdmZip from 'adm-zip';
6
- import { v4 as uuidv4 } from 'uuid';
7
- import { MagicPathError } from './error.js';
8
- import { APIVersion, makeUrl } from './api.js';
9
- export async function downloadProject(key) {
10
- const url = makeUrl(APIVersion.V1, 'components/repository');
11
- const filename = `${uuidv4()}.zip`;
12
- const filepath = path.join(os.tmpdir(), filename);
13
- try {
14
- const response = await axios({
15
- url,
16
- params: { key },
17
- method: 'GET',
18
- responseType: 'stream',
19
- });
20
- await fs.ensureDir(path.dirname(filepath));
21
- await new Promise(async (resolve, reject) => {
22
- try {
23
- response.data
24
- .pipe(fs.createWriteStream(filepath))
25
- .on('error', reject)
26
- .once('close', () => resolve(filepath));
27
- }
28
- catch (err) {
29
- reject(err);
30
- }
31
- });
32
- return filepath;
33
- }
34
- catch {
35
- throw new MagicPathError('Failed to download project. Make sure your key is valid.');
36
- }
37
- }
38
- export function releaseProject(filename) {
39
- try {
40
- fs.removeSync(filename);
41
- }
42
- catch {
43
- // do nothing
44
- }
45
- }
46
- export function unpackProject(filename, name, targetDir) {
47
- try {
48
- let projectDir = path.join(targetDir, name);
49
- let counter = 1;
50
- while (fs.existsSync(projectDir)) {
51
- counter++;
52
- projectDir = path.join(targetDir, `${name}-${counter}`);
53
- }
54
- fs.mkdirSync(projectDir, { recursive: true });
55
- const zip = new AdmZip(filename);
56
- zip.extractAllTo(projectDir, true);
57
- releaseProject(filename);
58
- return projectDir;
59
- }
60
- catch (err) {
61
- throw new MagicPathError('Failed to extract project. Please try again.');
62
- }
63
- }
64
- //# sourceMappingURL=project.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/util/project.ts"],"names":[],"mappings":"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"}
package/dist/util/ui.d.ts DELETED
@@ -1,11 +0,0 @@
1
- export declare const BRAND_GREEN = "\u001B[38;2;32;140;80m";
2
- export declare const ANSI_RESET = "\u001B[0m";
3
- export declare const GREEN_CHECK = "\u001B[38;2;32;140;80m\u2714\u001B[0m";
4
- /** Create an ora spinner whose succeed() checkmark uses our brand green. */
5
- export declare function brandSpinner(text: string): import("ora").Ora;
6
- /**
7
- * Temporarily patch stdout.write so that the cyan ANSI code (\x1b[36m)
8
- * emitted by `prompts` select menus is replaced with our brand green.
9
- * Returns a restore function that undoes the patch.
10
- */
11
- export declare function patchPromptsColor(): () => void;
package/dist/util/ui.js DELETED
@@ -1,30 +0,0 @@
1
- import ora from 'ora';
2
- export const BRAND_GREEN = '\x1b[38;2;32;140;80m';
3
- export const ANSI_RESET = '\x1b[0m';
4
- export const GREEN_CHECK = `${BRAND_GREEN}✔${ANSI_RESET}`;
5
- /** Create an ora spinner whose succeed() checkmark uses our brand green. */
6
- export function brandSpinner(text) {
7
- const s = ora(text);
8
- const origStop = s.stopAndPersist.bind(s);
9
- s.succeed = (t) => origStop({ symbol: GREEN_CHECK, text: t });
10
- return s;
11
- }
12
- /**
13
- * Temporarily patch stdout.write so that the cyan ANSI code (\x1b[36m)
14
- * emitted by `prompts` select menus is replaced with our brand green.
15
- * Returns a restore function that undoes the patch.
16
- */
17
- export function patchPromptsColor() {
18
- const origWrite = process.stdout.write.bind(process.stdout);
19
- const patchedWrite = ((chunk, ...args) => {
20
- if (typeof chunk === 'string') {
21
- chunk = chunk.replace(/\x1b\[36m/g, BRAND_GREEN);
22
- }
23
- return origWrite(chunk, ...args);
24
- });
25
- process.stdout.write = patchedWrite;
26
- return () => {
27
- process.stdout.write = origWrite;
28
- };
29
- }
30
- //# sourceMappingURL=ui.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/util/ui.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,MAAM,CAAC,MAAM,WAAW,GAAG,sBAAsB,CAAC;AAClD,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AACpC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,WAAW,IAAI,UAAU,EAAE,CAAC;AAE1D,4EAA4E;AAC5E,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,MAAM,QAAQ,GAAG,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,OAAO,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IACvE,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAgC,CAAC,CACjD,KAAU,EACV,GAAG,IAAW,EACd,EAAE;QACF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACnD,CAAC;QACD,OAAQ,SAAiB,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAQ,CAAC;IACV,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC;IAEpC,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC"}