magicpath-ai 1.3.0-beta.8 → 1.3.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 +24 -26
- package/dist/cli.js +15 -8
- package/dist/cli.js.map +1 -1
- package/dist/commands/add.d.ts +0 -3
- package/dist/commands/add.js +347 -246
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/auth.js +14 -2
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/info.js +9 -5
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/inspect.d.ts +53 -0
- package/dist/commands/inspect.js +122 -0
- package/dist/commands/inspect.js.map +1 -0
- package/dist/commands/list-installed.d.ts +2 -0
- package/dist/commands/list-installed.js +112 -0
- package/dist/commands/list-installed.js.map +1 -0
- package/dist/commands/list.js +6 -2
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/schema.js +11 -24
- package/dist/commands/schema.js.map +1 -1
- package/dist/commands/search.js +2 -1
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/setup-skills.d.ts +2 -0
- package/dist/commands/setup-skills.js +13 -0
- package/dist/commands/setup-skills.js.map +1 -0
- package/dist/commands/whoami.js +5 -13
- package/dist/commands/whoami.js.map +1 -1
- package/dist/util/auth.d.ts +19 -6
- package/dist/util/auth.js +70 -10
- package/dist/util/auth.js.map +1 -1
- package/dist/util/banner.d.ts +1 -0
- package/dist/util/banner.js +79 -0
- package/dist/util/banner.js.map +1 -0
- package/package.json +3 -5
- package/dist/commands/init.d.ts +0 -2
- package/dist/commands/init.js +0 -113
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/integrate.d.ts +0 -2
- package/dist/commands/integrate.js +0 -202
- package/dist/commands/integrate.js.map +0 -1
- package/dist/commands/retheme.d.ts +0 -2
- package/dist/commands/retheme.js +0 -327
- package/dist/commands/retheme.js.map +0 -1
- package/dist/commands/skills.d.ts +0 -2
- package/dist/commands/skills.js +0 -55
- package/dist/commands/skills.js.map +0 -1
- package/dist/util/diff.d.ts +0 -13
- package/dist/util/diff.js +0 -63
- package/dist/util/diff.js.map +0 -1
- package/dist/util/integrate.d.ts +0 -84
- package/dist/util/integrate.js +0 -762
- package/dist/util/integrate.js.map +0 -1
- package/skills/cli-reference.md +0 -146
- package/skills/guide.md +0 -63
package/dist/commands/schema.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { inspectInputSchema, inspectOutputSchema } from './inspect.js';
|
|
2
3
|
// ── Command schemas ──
|
|
3
4
|
const addInputSchema = z.object({
|
|
4
5
|
generatedName: z
|
|
@@ -27,23 +28,6 @@ const addOutputSchema = z.object({
|
|
|
27
28
|
usage: z.string().optional().describe('JSX usage example'),
|
|
28
29
|
dryRun: z.boolean().describe('Whether this was a dry run'),
|
|
29
30
|
});
|
|
30
|
-
const integrateInputSchema = z.object({
|
|
31
|
-
generatedName: z.string().describe('The generated name of the component'),
|
|
32
|
-
target: z.string().describe('Target file to integrate into'),
|
|
33
|
-
dryRun: z
|
|
34
|
-
.boolean()
|
|
35
|
-
.default(false)
|
|
36
|
-
.describe('Show what would happen without writing files'),
|
|
37
|
-
});
|
|
38
|
-
const integrateOutputSchema = z.object({
|
|
39
|
-
modifiedFiles: z
|
|
40
|
-
.array(z.object({
|
|
41
|
-
path: z.string().describe('File path relative to project root'),
|
|
42
|
-
content: z.string().describe('Full file content after integration'),
|
|
43
|
-
}))
|
|
44
|
-
.describe('Files modified by the integration (not written to disk — agent applies)'),
|
|
45
|
-
framework: z.string().describe('Detected project framework'),
|
|
46
|
-
});
|
|
47
31
|
const cloneInputSchema = z.object({
|
|
48
32
|
key: z.string().describe('One-time access key'),
|
|
49
33
|
dir: z.string().describe('Target directory'),
|
|
@@ -67,10 +51,12 @@ const listProjectsOutputSchema = z.object({
|
|
|
67
51
|
createdAt: z.string(),
|
|
68
52
|
updatedAt: z.string(),
|
|
69
53
|
componentCount: z.number(),
|
|
70
|
-
owner: z
|
|
54
|
+
owner: z
|
|
55
|
+
.object({
|
|
71
56
|
displayName: z.string(),
|
|
72
57
|
email: z.string(),
|
|
73
|
-
})
|
|
58
|
+
})
|
|
59
|
+
.nullable(),
|
|
74
60
|
isActive: z.boolean(),
|
|
75
61
|
isDefaultLibrary: z.boolean(),
|
|
76
62
|
})),
|
|
@@ -96,6 +82,7 @@ const listComponentsOutputSchema = z.object({
|
|
|
96
82
|
viewCount: z.number(),
|
|
97
83
|
likeCount: z.number(),
|
|
98
84
|
remixCount: z.number(),
|
|
85
|
+
previewImageUrl: z.string().nullable(),
|
|
99
86
|
})),
|
|
100
87
|
pagination: z.object({
|
|
101
88
|
limit: z.number(),
|
|
@@ -121,10 +108,10 @@ const schemas = {
|
|
|
121
108
|
input: addInputSchema,
|
|
122
109
|
output: addOutputSchema,
|
|
123
110
|
},
|
|
124
|
-
|
|
125
|
-
description:
|
|
126
|
-
input:
|
|
127
|
-
output:
|
|
111
|
+
inspect: {
|
|
112
|
+
description: "Inspect a MagicPath component's source code without installing",
|
|
113
|
+
input: inspectInputSchema,
|
|
114
|
+
output: inspectOutputSchema,
|
|
128
115
|
},
|
|
129
116
|
clone: {
|
|
130
117
|
description: 'Clone/download a MagicPath project',
|
|
@@ -201,7 +188,7 @@ export function registerSchemaCommand(program) {
|
|
|
201
188
|
program
|
|
202
189
|
.command('schema')
|
|
203
190
|
.description("Show JSON Schema for a command's input/output")
|
|
204
|
-
.argument('[command]', 'Command name (e.g., add,
|
|
191
|
+
.argument('[command]', 'Command name (e.g., add, view)')
|
|
205
192
|
.option('--all', 'Show schemas for all commands')
|
|
206
193
|
.action((commandName, options) => {
|
|
207
194
|
if (options?.all) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/commands/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/commands/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEvE,wBAAwB;AAExB,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,CAAC,8DAA8D,CAAC;IAC3E,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACrE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC1E,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gEAAgE,CAAC;IAC7E,MAAM,EAAE,CAAC;SACN,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,8CAA8C,CAAC;CAC5D,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACxD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC9D,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACpE,qBAAqB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACzE,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,oCAAoC,CAAC;IACjD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC1D,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;CAC3D,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC/C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;CAC1C,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CAC/D,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,KAAK,CACf,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;QACtB,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE;QAC7B,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE;QAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;QAC1B,KAAK,EAAE,CAAC;aACL,MAAM,CAAC;YACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;YACvB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;SAClB,CAAC;aACD,QAAQ,EAAE;QACb,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;QACrB,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE;KAC9B,CAAC,CACH;IACD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;KACrB,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,UAAU,EAAE,CAAC,CAAC,KAAK,CACjB,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;QACzB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;QACzB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;QACtB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACvC,CAAC,CACH;IACD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC9B,CAAC;CACH,CAAC,CAAC;AAUH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;CAC1E,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC5D,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;CAC1B,CAAC,CAAC;AAEH,MAAM,OAAO,GAAkC;IAC7C,IAAI,EAAE;QACJ,WAAW,EAAE,+CAA+C;QAC5D,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,gBAAgB;KACzB;IACD,GAAG,EAAE;QACH,WAAW,EAAE,2CAA2C;QACxD,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,eAAe;KACxB;IACD,OAAO,EAAE;QACP,WAAW,EACT,gEAAgE;QAClE,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,mBAAmB;KAC5B;IACD,KAAK,EAAE;QACL,WAAW,EAAE,oCAAoC;QACjD,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE,iBAAiB;KAC1B;IACD,MAAM,EAAE;QACN,WAAW,EAAE,uCAAuC;QACpD,MAAM,EAAE,kBAAkB;KAC3B;IACD,eAAe,EAAE;QACf,WAAW,EAAE,wCAAwC;QACrD,MAAM,EAAE,wBAAwB;KACjC;IACD,iBAAiB,EAAE;QACjB,WAAW,EAAE,8BAA8B;QAC3C,KAAK,EAAE,yBAAyB;QAChC,MAAM,EAAE,0BAA0B;KACnC;CACF,CAAC;AAEF,SAAS,eAAe,CAAC,MAAiB;IACxC,2CAA2C;IAC3C,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,aAAa,CAAC,MAAiB;IACtC,MAAM,GAAG,GAAI,MAAc,CAAC,IAAI,CAAC;IACjC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IAEpB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,MAAM,MAAM,GAAQ,EAAE,CAAC;IAEvB,IAAI,GAAG,CAAC,WAAW;QAAE,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;IAE1D,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW;YACd,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;YACvB,MAAM;QACR,KAAK,WAAW;YACd,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;YACvB,MAAM;QACR,KAAK,YAAY;YACf,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;YACxB,MAAM;QACR,KAAK,aAAa;YAChB,OAAO,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtC,KAAK,YAAY;YACf,OAAO,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC;QAC1E,KAAK,UAAU;YACb,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;YACtB,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM;QACR,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;YACvB,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;YAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAkB,CAAC,CAAC;gBAC3D,MAAM,QAAQ,GAAI,KAAa,CAAC,IAAI,CAAC;gBACrC,IACE,QAAQ,EAAE,QAAQ,KAAK,aAAa;oBACpC,QAAQ,EAAE,QAAQ,KAAK,YAAY,EACnC,CAAC;oBACD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACpD,MAAM;QACR,CAAC;QACD;YACE,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,+CAA+C,CAAC;SAC5D,QAAQ,CAAC,WAAW,EAAE,gCAAgC,CAAC;SACvD,MAAM,CAAC,OAAO,EAAE,+BAA+B,CAAC;SAChD,MAAM,CAAC,CAAC,WAAoB,EAAE,OAA2B,EAAE,EAAE;QAC5D,IAAI,OAAO,EAAE,GAAG,EAAE,CAAC;YACjB,MAAM,UAAU,GAAwB,EAAE,CAAC;YAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1D,UAAU,CAAC,IAAI,CAAC,GAAG;oBACjB,WAAW,EAAE,WAAW,CAAC,WAAW;oBACpC,KAAK,EAAE,WAAW,CAAC,KAAK;wBACtB,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC;wBACpC,CAAC,CAAC,SAAS;oBACb,MAAM,EAAE,WAAW,CAAC,MAAM;wBACxB,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC;wBACrC,CAAC,CAAC,SAAS;iBACd,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,oBAAoB,WAAW,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAQ;YAClB,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC;QACF,IAAI,MAAM,CAAC,KAAK;YAAE,MAAM,CAAC,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,MAAM;YAAE,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAElE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/commands/search.js
CHANGED
|
@@ -45,7 +45,7 @@ export function registerSearchCommand(program) {
|
|
|
45
45
|
// Fetch components from all projects in parallel
|
|
46
46
|
const componentResults = await Promise.all(projects.map(async (project) => {
|
|
47
47
|
try {
|
|
48
|
-
const url = `${getProjectComponentsUrl(project.id)}?limit=100&revisionStatus=COMPLETED`;
|
|
48
|
+
const url = `${getProjectComponentsUrl(project.id)}?limit=100&revisionStatus=COMPLETED&slim=true`;
|
|
49
49
|
const response = await axios.get(url, { headers });
|
|
50
50
|
const components = response.data.data?.components ??
|
|
51
51
|
response.data.components ??
|
|
@@ -73,6 +73,7 @@ export function registerSearchCommand(program) {
|
|
|
73
73
|
id: c.id,
|
|
74
74
|
projectName: project.name,
|
|
75
75
|
projectId: project.id,
|
|
76
|
+
previewImageUrl: c.previewImageUrl ?? null,
|
|
76
77
|
});
|
|
77
78
|
}
|
|
78
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { execSync } from 'child_process';
|
|
2
|
+
export function registerSetupSkillsCommand(program) {
|
|
3
|
+
program
|
|
4
|
+
.command('setup-skills')
|
|
5
|
+
.description('Set up MagicPath for AI agents')
|
|
6
|
+
.action(async () => {
|
|
7
|
+
console.log('Installing MagicPath skills...');
|
|
8
|
+
execSync('npx skills add https://github.com/MagicPathAI/agent-skills -y', {
|
|
9
|
+
stdio: 'inherit',
|
|
10
|
+
});
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=setup-skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-skills.js","sourceRoot":"","sources":["../../src/commands/setup-skills.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,QAAQ,CACN,+DAA+D,EAC/D;YACE,KAAK,EAAE,SAAS;SACjB,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/commands/whoami.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import { brandSpinner } from '../util/ui.js';
|
|
3
3
|
import { MagicPathError } from '../util/error.js';
|
|
4
|
-
import { getAuthHeaders } from '../util/auth.js';
|
|
4
|
+
import { getAuthHeaders, cacheUserFromResponse } from '../util/auth.js';
|
|
5
5
|
import { getUserUrl } from '../util/api.js';
|
|
6
6
|
import { isJsonMode, jsonResult, jsonError } from '../util/output.js';
|
|
7
7
|
export function registerWhoamiCommand(program) {
|
|
@@ -28,23 +28,15 @@ export function registerWhoamiCommand(program) {
|
|
|
28
28
|
const response = await axios.get(getUserUrl(), { headers });
|
|
29
29
|
const user = response.data.user ?? response.data;
|
|
30
30
|
spinner?.succeed('Authenticated');
|
|
31
|
+
const cached = cacheUserFromResponse(user);
|
|
31
32
|
if (json) {
|
|
32
33
|
jsonResult(user);
|
|
33
34
|
}
|
|
34
|
-
console.log(`\n Name: ${
|
|
35
|
-
console.log(` Email: ${
|
|
35
|
+
console.log(`\n Name: ${cached.name || 'N/A'}`);
|
|
36
|
+
console.log(` Email: ${cached.email || 'N/A'}`);
|
|
36
37
|
if (user.id)
|
|
37
38
|
console.log(` ID: ${user.id}`);
|
|
38
|
-
|
|
39
|
-
if (user.subscription?.active) {
|
|
40
|
-
const tier = user.subscription.type?.startsWith('PRO')
|
|
41
|
-
? 'Pro'
|
|
42
|
-
: 'Creator';
|
|
43
|
-
console.log(` Plan: ${tier}`);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
console.log(` Plan: Free`);
|
|
47
|
-
}
|
|
39
|
+
console.log(` Plan: ${cached.plan}`);
|
|
48
40
|
}
|
|
49
41
|
catch (err) {
|
|
50
42
|
spinner?.fail('Failed to fetch user info');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"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"}
|
package/dist/util/auth.d.ts
CHANGED
|
@@ -1,11 +1,24 @@
|
|
|
1
|
-
interface
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export interface CachedUserInfo {
|
|
2
|
+
name?: string;
|
|
3
|
+
email?: string;
|
|
4
|
+
plan?: string;
|
|
4
5
|
}
|
|
5
6
|
export declare function saveTokens(accessToken: string, refreshToken: string): void;
|
|
6
|
-
export declare function loadTokens():
|
|
7
|
-
|
|
7
|
+
export declare function loadTokens(): {
|
|
8
|
+
accessToken: string;
|
|
9
|
+
refreshToken: string;
|
|
10
|
+
} | null;
|
|
11
|
+
export declare function clearSession(): void;
|
|
12
|
+
/** @deprecated Use clearSession() instead. */
|
|
13
|
+
export declare const clearTokens: typeof clearSession;
|
|
14
|
+
/** @deprecated Use clearSession() instead. */
|
|
15
|
+
export declare const clearUserInfo: typeof clearSession;
|
|
16
|
+
export declare function saveUserInfo(info: CachedUserInfo): void;
|
|
17
|
+
export declare function loadUserInfo(): CachedUserInfo | null;
|
|
8
18
|
export declare function getAuthHeaders(): {
|
|
9
19
|
Authorization: string;
|
|
10
20
|
};
|
|
11
|
-
|
|
21
|
+
/** Extract CachedUserInfo from a raw API user object and save to session. */
|
|
22
|
+
export declare function cacheUserFromResponse(user: any): CachedUserInfo;
|
|
23
|
+
/** Fetch current user from API, cache the result, and return it. */
|
|
24
|
+
export declare function fetchAndCacheUser(): Promise<CachedUserInfo>;
|
package/dist/util/auth.js
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import fs from 'fs-extra';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import os from 'os';
|
|
4
|
+
import axios from 'axios';
|
|
5
|
+
import { getUserUrl } from './api.js';
|
|
4
6
|
const CONFIG_DIR = path.join(os.homedir(), '.magicpath');
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
fs.writeJsonSync(AUTH_FILE, { accessToken, refreshToken });
|
|
9
|
-
}
|
|
10
|
-
export function loadTokens() {
|
|
7
|
+
const SESSION_FILE = path.join(CONFIG_DIR, 'session.json');
|
|
8
|
+
// ── Internal helpers ─────────────────────────────────────
|
|
9
|
+
function loadSession() {
|
|
11
10
|
try {
|
|
12
|
-
if (!fs.existsSync(
|
|
11
|
+
if (!fs.existsSync(SESSION_FILE))
|
|
13
12
|
return null;
|
|
14
|
-
const data = fs.readJsonSync(
|
|
13
|
+
const data = fs.readJsonSync(SESSION_FILE);
|
|
15
14
|
if (data.accessToken && data.refreshToken)
|
|
16
15
|
return data;
|
|
17
16
|
return null;
|
|
@@ -20,14 +19,52 @@ export function loadTokens() {
|
|
|
20
19
|
return null;
|
|
21
20
|
}
|
|
22
21
|
}
|
|
23
|
-
|
|
22
|
+
function saveSession(session) {
|
|
23
|
+
fs.ensureDirSync(CONFIG_DIR);
|
|
24
|
+
fs.writeJsonSync(SESSION_FILE, session);
|
|
25
|
+
}
|
|
26
|
+
// ── Public API ───────────────────────────────────────────
|
|
27
|
+
export function saveTokens(accessToken, refreshToken) {
|
|
28
|
+
const existing = loadSession();
|
|
29
|
+
saveSession({ accessToken, refreshToken, user: existing?.user });
|
|
30
|
+
}
|
|
31
|
+
export function loadTokens() {
|
|
32
|
+
const session = loadSession();
|
|
33
|
+
if (!session)
|
|
34
|
+
return null;
|
|
35
|
+
return {
|
|
36
|
+
accessToken: session.accessToken,
|
|
37
|
+
refreshToken: session.refreshToken,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export function clearSession() {
|
|
24
41
|
try {
|
|
25
|
-
fs.removeSync(
|
|
42
|
+
fs.removeSync(SESSION_FILE);
|
|
26
43
|
}
|
|
27
44
|
catch {
|
|
28
45
|
// Ignore if file doesn't exist
|
|
29
46
|
}
|
|
30
47
|
}
|
|
48
|
+
/** @deprecated Use clearSession() instead. */
|
|
49
|
+
export const clearTokens = clearSession;
|
|
50
|
+
/** @deprecated Use clearSession() instead. */
|
|
51
|
+
export const clearUserInfo = clearSession;
|
|
52
|
+
export function saveUserInfo(info) {
|
|
53
|
+
try {
|
|
54
|
+
const session = loadSession();
|
|
55
|
+
if (session) {
|
|
56
|
+
session.user = info;
|
|
57
|
+
saveSession(session);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// non-critical, ignore
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
export function loadUserInfo() {
|
|
65
|
+
const session = loadSession();
|
|
66
|
+
return session?.user ?? null;
|
|
67
|
+
}
|
|
31
68
|
export function getAuthHeaders() {
|
|
32
69
|
// Environment variable takes precedence (for CI/CD and AI agents)
|
|
33
70
|
const envToken = process.env.MAGICPATH_TOKEN;
|
|
@@ -40,4 +77,27 @@ export function getAuthHeaders() {
|
|
|
40
77
|
}
|
|
41
78
|
return { Authorization: `Bearer ${tokens.accessToken}` };
|
|
42
79
|
}
|
|
80
|
+
/** Extract CachedUserInfo from a raw API user object and save to session. */
|
|
81
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
82
|
+
export function cacheUserFromResponse(user) {
|
|
83
|
+
const plan = user.subscription?.active
|
|
84
|
+
? user.subscription.type?.startsWith('PRO')
|
|
85
|
+
? 'Pro'
|
|
86
|
+
: 'Creator'
|
|
87
|
+
: 'Free';
|
|
88
|
+
const info = {
|
|
89
|
+
name: user.name || user.firstName || user.displayName,
|
|
90
|
+
email: user.email,
|
|
91
|
+
plan,
|
|
92
|
+
};
|
|
93
|
+
saveUserInfo(info);
|
|
94
|
+
return info;
|
|
95
|
+
}
|
|
96
|
+
/** Fetch current user from API, cache the result, and return it. */
|
|
97
|
+
export async function fetchAndCacheUser() {
|
|
98
|
+
const headers = getAuthHeaders();
|
|
99
|
+
const response = await axios.get(getUserUrl(), { headers });
|
|
100
|
+
const user = response.data.user ?? response.data;
|
|
101
|
+
return cacheUserFromResponse(user);
|
|
102
|
+
}
|
|
43
103
|
//# sourceMappingURL=auth.js.map
|
package/dist/util/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/util/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/util/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function showBanner(version: string): void;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { loadTokens, loadUserInfo } from './auth.js';
|
|
3
|
+
const GRADIENT_HEX = [
|
|
4
|
+
'#95D5B2',
|
|
5
|
+
'#74C69D',
|
|
6
|
+
'#52B788',
|
|
7
|
+
'#40916C',
|
|
8
|
+
'#2D6A4F',
|
|
9
|
+
'#1B4332',
|
|
10
|
+
];
|
|
11
|
+
function gradientColor(step) {
|
|
12
|
+
return chalk.hex(GRADIENT_HEX[Math.min(step, GRADIENT_HEX.length - 1)]);
|
|
13
|
+
}
|
|
14
|
+
const G1 = chalk.hex('#2D6A4F');
|
|
15
|
+
const G2 = chalk.hex('#1B4332');
|
|
16
|
+
const WH = chalk.hex('#E8F5E9');
|
|
17
|
+
const DM = chalk.hex('#888888');
|
|
18
|
+
const MAGIC = [
|
|
19
|
+
'███╗ ███╗ █████╗ ██████╗ ██╗ ██████╗',
|
|
20
|
+
'████╗ ████║██╔══██╗██╔════╝ ██║██╔════╝',
|
|
21
|
+
'██╔████╔██║███████║██║ ███╗██║██║ ',
|
|
22
|
+
'██║╚██╔╝██║██╔══██║██║ ██║██║██║ ',
|
|
23
|
+
'██║ ╚═╝ ██║██║ ██║╚██████╔╝██║╚██████╗',
|
|
24
|
+
'╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝',
|
|
25
|
+
];
|
|
26
|
+
const PATH = [
|
|
27
|
+
'██████╗ █████╗ ████████╗██╗ ██╗',
|
|
28
|
+
'██╔══██╗██╔══██╗╚══██╔══╝██║ ██║',
|
|
29
|
+
'██████╔╝███████║ ██║ ███████║',
|
|
30
|
+
'██╔═══╝ ██╔══██║ ██║ ██╔══██║',
|
|
31
|
+
'██║ ██║ ██║ ██║ ██║ ██║',
|
|
32
|
+
'╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝',
|
|
33
|
+
];
|
|
34
|
+
const SPRITE = MAGIC.map((row, i) => row + ' ' + PATH[i]);
|
|
35
|
+
function styleSprite(rows) {
|
|
36
|
+
return rows.map((row, y) => {
|
|
37
|
+
const colorFn = gradientColor(y);
|
|
38
|
+
let out = '';
|
|
39
|
+
for (const ch of row) {
|
|
40
|
+
out += ch === ' ' ? ch : colorFn(ch);
|
|
41
|
+
}
|
|
42
|
+
return out;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
export function showBanner(version) {
|
|
46
|
+
const loggedIn = !!loadTokens();
|
|
47
|
+
const user = loggedIn ? loadUserInfo() : null;
|
|
48
|
+
console.log();
|
|
49
|
+
for (const row of styleSprite(SPRITE)) {
|
|
50
|
+
console.log(row);
|
|
51
|
+
}
|
|
52
|
+
console.log();
|
|
53
|
+
if (loggedIn && user) {
|
|
54
|
+
const planLabel = user.plan ? ` · ${user.plan}` : '';
|
|
55
|
+
console.log(' ' +
|
|
56
|
+
G1('●') +
|
|
57
|
+
' ' +
|
|
58
|
+
chalk.bold(WH(user.name ?? 'MagicPath User')) +
|
|
59
|
+
G2(' ' + (user.email ?? '') + planLabel));
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
console.log(' ' + DM('○ Not logged in · run') + ' ' + G1('magicpath-ai login'));
|
|
63
|
+
}
|
|
64
|
+
console.log();
|
|
65
|
+
const CMD_W = 20;
|
|
66
|
+
const cmds = [
|
|
67
|
+
['search <query>', 'Search components'],
|
|
68
|
+
['add <name>', 'Add to project'],
|
|
69
|
+
['list-projects', 'Your projects'],
|
|
70
|
+
['setup-skills', 'Set up AI agents'],
|
|
71
|
+
];
|
|
72
|
+
for (const [cmd, desc] of cmds) {
|
|
73
|
+
console.log(' ' + G1(cmd.padEnd(CMD_W)) + DM(desc));
|
|
74
|
+
}
|
|
75
|
+
console.log();
|
|
76
|
+
console.log(' ' + DM(`v${version} ─ magicpath-ai --help`));
|
|
77
|
+
console.log();
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../src/util/banner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "magicpath-ai",
|
|
3
|
-
"version": "1.3.0
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Node CLI for MagicPath",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -41,7 +41,6 @@
|
|
|
41
41
|
"homepage": "https://github.com/newcompute-ai/magicpath-node-cli#readme",
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/adm-zip": "^0.5.7",
|
|
44
|
-
"@types/diff": "^7.0.2",
|
|
45
44
|
"@types/fs-extra": "^11.0.4",
|
|
46
45
|
"@types/lodash": "^4.17.0",
|
|
47
46
|
"@types/prompts": "^2.4.9",
|
|
@@ -52,14 +51,13 @@
|
|
|
52
51
|
"typescript": "^5.8.3"
|
|
53
52
|
},
|
|
54
53
|
"files": [
|
|
55
|
-
"dist"
|
|
56
|
-
"skills"
|
|
54
|
+
"dist"
|
|
57
55
|
],
|
|
58
56
|
"dependencies": {
|
|
59
57
|
"adm-zip": "^0.5.16",
|
|
60
58
|
"axios": "^1.9.0",
|
|
59
|
+
"chalk": "^5.6.2",
|
|
61
60
|
"commander": "^14.0.0",
|
|
62
|
-
"diff": "^8.0.3",
|
|
63
61
|
"fs-extra": "^11.3.0",
|
|
64
62
|
"lodash": "^4.17.21",
|
|
65
63
|
"ora": "^8.2.0",
|
package/dist/commands/init.d.ts
DELETED
package/dist/commands/init.js
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import path from 'path';
|
|
2
|
-
import fs from 'fs-extra';
|
|
3
|
-
import { fileURLToPath } from 'url';
|
|
4
|
-
import { isJsonMode, jsonResult } from '../util/output.js';
|
|
5
|
-
import { GREEN_CHECK } from '../util/ui.js';
|
|
6
|
-
// ── Resolve skills directory (single source of truth) ────────────────
|
|
7
|
-
function getSkillsDir() {
|
|
8
|
-
const thisFile = fileURLToPath(import.meta.url);
|
|
9
|
-
// src/commands/init.ts -> package root is ../../
|
|
10
|
-
return path.resolve(path.dirname(thisFile), '..', '..', 'skills');
|
|
11
|
-
}
|
|
12
|
-
function readSkillFile(filename) {
|
|
13
|
-
const filePath = path.join(getSkillsDir(), filename);
|
|
14
|
-
return fs.readFileSync(filePath, 'utf8');
|
|
15
|
-
}
|
|
16
|
-
// ── Editor-specific metadata (not part of skill content) ─────────────
|
|
17
|
-
const DESCRIPTION = 'MagicPath is an external platform where the user builds and stores UI components. Use this when the user mentions "magicpath", wants to find/browse/search their MagicPath components, add a MagicPath component, preview a MagicPath component, or integrate one into their project. MagicPath components are NOT in the local git repo — they live on the MagicPath platform and must be fetched via the CLI.';
|
|
18
|
-
// ── Editor-specific content builders ─────────────────────────────────
|
|
19
|
-
function buildClaudeSkill() {
|
|
20
|
-
const guide = readSkillFile('guide.md');
|
|
21
|
-
return `---
|
|
22
|
-
name: magicpath
|
|
23
|
-
description: ${DESCRIPTION} Also triggers for magicpath-ai CLI usage.
|
|
24
|
-
user-invocable: true
|
|
25
|
-
allowed-tools: Bash(magicpath-ai *)
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
${guide}
|
|
29
|
-
|
|
30
|
-
## Current Project Context
|
|
31
|
-
|
|
32
|
-
\`\`\`json
|
|
33
|
-
!\`magicpath-ai info --json 2>/dev/null || echo '{"error": "magicpath-ai not found. Run: npx magicpath-ai info --json"}'\`
|
|
34
|
-
\`\`\`
|
|
35
|
-
|
|
36
|
-
The JSON above contains auth status, projects, and CLI version. If auth.authenticated is false, the user needs to log in before any other operations.
|
|
37
|
-
|
|
38
|
-
## Detailed References
|
|
39
|
-
|
|
40
|
-
- [cli.md](./cli.md) — Full CLI command reference with all flags
|
|
41
|
-
`;
|
|
42
|
-
}
|
|
43
|
-
function buildCursorRule() {
|
|
44
|
-
const guide = readSkillFile('guide.md');
|
|
45
|
-
const cliReference = readSkillFile('cli-reference.md');
|
|
46
|
-
// Use single quotes to avoid escaping double quotes in YAML
|
|
47
|
-
const yamlDesc = DESCRIPTION.replace(/'/g, "''");
|
|
48
|
-
return `---
|
|
49
|
-
description: '${yamlDesc}'
|
|
50
|
-
alwaysApply: false
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
${guide}
|
|
54
|
-
|
|
55
|
-
## CLI Reference
|
|
56
|
-
|
|
57
|
-
${cliReference}
|
|
58
|
-
`;
|
|
59
|
-
}
|
|
60
|
-
function buildCopilotInstructions() {
|
|
61
|
-
const guide = readSkillFile('guide.md');
|
|
62
|
-
const cliReference = readSkillFile('cli-reference.md');
|
|
63
|
-
return `---
|
|
64
|
-
applyTo: "**"
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
${guide}
|
|
68
|
-
|
|
69
|
-
## CLI Reference
|
|
70
|
-
|
|
71
|
-
${cliReference}
|
|
72
|
-
`;
|
|
73
|
-
}
|
|
74
|
-
function getFileTargets() {
|
|
75
|
-
const cliReference = readSkillFile('cli-reference.md');
|
|
76
|
-
return [
|
|
77
|
-
// Claude Code
|
|
78
|
-
{ path: '.claude/skills/magicpath/SKILL.md', content: buildClaudeSkill() },
|
|
79
|
-
{ path: '.claude/skills/magicpath/cli.md', content: cliReference + '\n' },
|
|
80
|
-
// Cursor
|
|
81
|
-
{ path: '.cursor/rules/magicpath.mdc', content: buildCursorRule() },
|
|
82
|
-
// GitHub Copilot
|
|
83
|
-
{
|
|
84
|
-
path: '.github/instructions/magicpath.instructions.md',
|
|
85
|
-
content: buildCopilotInstructions(),
|
|
86
|
-
},
|
|
87
|
-
];
|
|
88
|
-
}
|
|
89
|
-
// ── Command ───────────────────────────────────────────────────────────
|
|
90
|
-
export function registerInitCommand(program) {
|
|
91
|
-
program
|
|
92
|
-
.command('init')
|
|
93
|
-
.description('Set up MagicPath for AI agents (Claude Code, Cursor, GitHub Copilot)')
|
|
94
|
-
.action(async () => {
|
|
95
|
-
const cwd = process.cwd();
|
|
96
|
-
const json = isJsonMode();
|
|
97
|
-
const created = [];
|
|
98
|
-
// Write all editor rule files
|
|
99
|
-
for (const target of getFileTargets()) {
|
|
100
|
-
const absPath = path.join(cwd, target.path);
|
|
101
|
-
fs.ensureDirSync(path.dirname(absPath));
|
|
102
|
-
fs.writeFileSync(absPath, target.content, 'utf8');
|
|
103
|
-
created.push(target.path);
|
|
104
|
-
if (!json)
|
|
105
|
-
console.log(`${GREEN_CHECK} Created ${target.path}`);
|
|
106
|
-
}
|
|
107
|
-
if (json) {
|
|
108
|
-
jsonResult({ created }); // exits process
|
|
109
|
-
}
|
|
110
|
-
console.log('\nMagicPath is ready for AI agents (Claude Code, Cursor, GitHub Copilot).');
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=init.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|