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.
- package/README.md +63 -8
- package/dist/cli.js +28 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/add.d.ts +49 -0
- package/dist/commands/add.js +129 -25
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/auth.js +33 -2
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/clone.js +112 -86
- package/dist/commands/clone.js.map +1 -1
- package/dist/commands/info.d.ts +2 -0
- package/dist/commands/info.js +124 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.js +280 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/integrate.js +282 -81
- package/dist/commands/integrate.js.map +1 -1
- package/dist/commands/list.d.ts +2 -0
- package/dist/commands/list.js +138 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/schema.d.ts +2 -0
- package/dist/commands/schema.js +213 -0
- package/dist/commands/schema.js.map +1 -0
- package/dist/commands/search.d.ts +2 -0
- package/dist/commands/search.js +120 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/skills.d.ts +2 -0
- package/dist/commands/skills.js +55 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/view.d.ts +2 -0
- package/dist/commands/view.js +27 -0
- package/dist/commands/view.js.map +1 -0
- package/dist/commands/whoami.d.ts +2 -0
- package/dist/commands/whoami.js +58 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/util/api.d.ts +4 -0
- package/dist/util/api.js +12 -0
- package/dist/util/api.js.map +1 -1
- package/dist/util/auth.js +5 -0
- package/dist/util/auth.js.map +1 -1
- package/dist/util/component.d.ts +8 -8
- package/dist/util/diff.d.ts +4 -0
- package/dist/util/diff.js +11 -3
- package/dist/util/diff.js.map +1 -1
- package/dist/util/integrate.d.ts +13 -2
- package/dist/util/integrate.js +111 -9
- package/dist/util/integrate.js.map +1 -1
- package/dist/util/output.d.ts +14 -0
- package/dist/util/output.js +27 -0
- package/dist/util/output.js.map +1 -0
- package/package.json +3 -2
- package/skills/magicpath-add-component/SKILL.md +49 -0
- package/skills/magicpath-integrate/SKILL.md +50 -0
- package/skills/magicpath-list/SKILL.md +38 -0
- package/skills/magicpath-shared/SKILL.md +34 -0
|
@@ -3,10 +3,10 @@ import path from 'path';
|
|
|
3
3
|
import fs from 'fs-extra';
|
|
4
4
|
import { enableDebugLogger } from '../util/logger.js';
|
|
5
5
|
import { MagicPathError } from '../util/error.js';
|
|
6
|
+
import { isJsonMode, jsonResult, jsonError } from '../util/output.js';
|
|
6
7
|
import { brandSpinner, BRAND_GREEN, ANSI_RESET, patchPromptsColor, } from '../util/ui.js';
|
|
7
|
-
import { reviewAndApplyChanges } from '../util/diff.js';
|
|
8
|
-
import { detectFramework, findCandidates, readTargetWithContext, requestIntegration, requestRetheme, gatherProjectFiles, detectProjectLanguage, detectLanguageFromExtension, getLanguageDisplayName, } from '../util/integrate.js';
|
|
9
|
-
import { fetchComponent, sanitizeComponentFolderName, resolveComponentsPath, } from '../util/component.js';
|
|
8
|
+
import { reviewAndApplyChanges, applyChanges } from '../util/diff.js';
|
|
9
|
+
import { detectFramework, findCandidates, readTargetWithContext, requestIntegration, requestRetheme, gatherProjectFiles, findThemeFile, detectProjectLanguage, detectLanguageFromExtension, getLanguageDisplayName, SkipFileError, } from '../util/integrate.js';
|
|
10
10
|
import { runLoginFlow } from './auth.js';
|
|
11
11
|
export function registerIntegrateCommand(program) {
|
|
12
12
|
program
|
|
@@ -14,11 +14,20 @@ export function registerIntegrateCommand(program) {
|
|
|
14
14
|
.description('Integrate a MagicPath component into your project using AI')
|
|
15
15
|
.argument('<generatedName>', 'The generated name of the component (e.g., wispy-river-5234)')
|
|
16
16
|
.option('-d, --debug', 'Enable debug logging', false)
|
|
17
|
+
.option('--batch [size]', 'Debug: process retheme in batches, pause between each')
|
|
18
|
+
.option('--no-review', 'Apply each file immediately without review or confirmation')
|
|
19
|
+
.option('-t, --target <file>', 'Target file to integrate into (skips interactive prompts)')
|
|
20
|
+
.option('--dry-run', 'Show what would happen without writing files', false)
|
|
17
21
|
.action(async (generatedName, options) => {
|
|
18
22
|
try {
|
|
19
23
|
if (options.debug)
|
|
20
24
|
enableDebugLogger();
|
|
25
|
+
const json = isJsonMode();
|
|
21
26
|
const cwd = process.cwd();
|
|
27
|
+
// In JSON mode, require --target
|
|
28
|
+
if (json && !options.target) {
|
|
29
|
+
throw new MagicPathError('In JSON mode, --target <file> is required for integrate.');
|
|
30
|
+
}
|
|
22
31
|
// Step 1: Detect project language and framework
|
|
23
32
|
const hasPackageJson = fs.existsSync(path.join(cwd, 'package.json'));
|
|
24
33
|
const framework = hasPackageJson
|
|
@@ -33,6 +42,9 @@ export function registerIntegrateCommand(program) {
|
|
|
33
42
|
getAuthHeaders();
|
|
34
43
|
}
|
|
35
44
|
catch {
|
|
45
|
+
if (json) {
|
|
46
|
+
throw new MagicPathError('Not authenticated. Set MAGICPATH_TOKEN or run `magicpath-ai login`.');
|
|
47
|
+
}
|
|
36
48
|
console.log('You need to be logged in to use AI integration.');
|
|
37
49
|
const { shouldLogin } = await prompts({
|
|
38
50
|
type: 'confirm',
|
|
@@ -50,6 +62,11 @@ export function registerIntegrateCommand(program) {
|
|
|
50
62
|
return;
|
|
51
63
|
}
|
|
52
64
|
}
|
|
65
|
+
// If --target is provided, skip interactive prompts and go straight to integrate
|
|
66
|
+
if (options.target) {
|
|
67
|
+
await runIntegrateFlow(generatedName, cwd, language, framework, options.target, json ? true : options.review === false, options.dryRun);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
53
70
|
// Step 3: Choose mode
|
|
54
71
|
const restoreColor = patchPromptsColor();
|
|
55
72
|
const { mode } = await prompts({
|
|
@@ -71,13 +88,20 @@ export function registerIntegrateCommand(program) {
|
|
|
71
88
|
return;
|
|
72
89
|
}
|
|
73
90
|
if (mode === 'retheme') {
|
|
74
|
-
|
|
91
|
+
const batchSize = options.batch != null
|
|
92
|
+
? options.batch === true
|
|
93
|
+
? 10
|
|
94
|
+
: parseInt(options.batch, 10)
|
|
95
|
+
: undefined;
|
|
96
|
+
await runRethemeFlow(generatedName, cwd, language, framework, batchSize, options.review === false);
|
|
75
97
|
return;
|
|
76
98
|
}
|
|
77
99
|
// ── Integrate flow ──
|
|
78
100
|
await runIntegrateFlow(generatedName, cwd, language, framework);
|
|
79
101
|
}
|
|
80
102
|
catch (err) {
|
|
103
|
+
if (isJsonMode())
|
|
104
|
+
jsonError(err);
|
|
81
105
|
if (err instanceof MagicPathError) {
|
|
82
106
|
console.error(`\n${err.message}`);
|
|
83
107
|
process.exit(1);
|
|
@@ -86,7 +110,7 @@ export function registerIntegrateCommand(program) {
|
|
|
86
110
|
}
|
|
87
111
|
});
|
|
88
112
|
}
|
|
89
|
-
async function runRethemeFlow(generatedName, cwd, language, framework) {
|
|
113
|
+
async function runRethemeFlow(generatedName, cwd, language, framework, batchSize, noReview) {
|
|
90
114
|
// Optional user instruction
|
|
91
115
|
const { userInstruction: rethemeInstruction } = await prompts({
|
|
92
116
|
type: 'text',
|
|
@@ -106,30 +130,57 @@ async function runRethemeFlow(generatedName, cwd, language, framework) {
|
|
|
106
130
|
if (projectFiles.length === 0) {
|
|
107
131
|
throw new MagicPathError('No UI files found in the project.');
|
|
108
132
|
}
|
|
133
|
+
// Detect theme file (globals.css etc.)
|
|
134
|
+
let themeFile = findThemeFile(cwd, language, framework);
|
|
135
|
+
if (themeFile) {
|
|
136
|
+
console.log(` Found theme file: ${themeFile.path}`);
|
|
137
|
+
}
|
|
138
|
+
// Sort files by directory so related files are processed together
|
|
139
|
+
if (batchSize) {
|
|
140
|
+
projectFiles.sort((a, b) => {
|
|
141
|
+
const dirA = path.dirname(a.path);
|
|
142
|
+
const dirB = path.dirname(b.path);
|
|
143
|
+
return dirA.localeCompare(dirB);
|
|
144
|
+
});
|
|
145
|
+
}
|
|
109
146
|
// Process files one by one
|
|
110
147
|
const totalFiles = projectFiles.length;
|
|
111
148
|
const allModifiedFiles = [];
|
|
149
|
+
let batchModifiedFiles = [];
|
|
112
150
|
const rethemeSpinner = brandSpinner('').start();
|
|
113
151
|
rethemeSpinner.spinner = {
|
|
114
152
|
frames: ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'].map((f) => `${BRAND_GREEN}${f}${ANSI_RESET}`),
|
|
115
153
|
};
|
|
116
154
|
const totalStart = Date.now();
|
|
117
155
|
const BAR_WIDTH = 20;
|
|
156
|
+
const fmtTime = (ms) => {
|
|
157
|
+
const s = Math.floor(ms / 1000);
|
|
158
|
+
const m = Math.floor(s / 60);
|
|
159
|
+
return m > 0 ? `${m}m ${s % 60}s` : `${s}s`;
|
|
160
|
+
};
|
|
118
161
|
const makeBar = (done, total) => {
|
|
119
162
|
const filled = Math.round((done / total) * BAR_WIDTH);
|
|
120
163
|
const filledStr = '█'.repeat(filled);
|
|
121
164
|
const emptyStr = '░'.repeat(BAR_WIDTH - filled);
|
|
122
165
|
return `\x1b[38;2;8;92;52m${filledStr}${emptyStr}\x1b[0m`;
|
|
123
166
|
};
|
|
167
|
+
let currentBatch = 0;
|
|
168
|
+
let appliedCount = 0;
|
|
169
|
+
let filesInCurrentBatch = 0;
|
|
170
|
+
const failedFiles = [];
|
|
171
|
+
const userSkippedFiles = [];
|
|
172
|
+
// Enable raw mode to capture 's' keypress for skipping files
|
|
173
|
+
const stdin = process.stdin;
|
|
174
|
+
const wasRaw = stdin.isRaw;
|
|
175
|
+
if (stdin.isTTY)
|
|
176
|
+
stdin.setRawMode(true);
|
|
177
|
+
stdin.resume();
|
|
178
|
+
stdin.setEncoding('utf8');
|
|
179
|
+
console.log(` Press ${BRAND_GREEN}s${ANSI_RESET} to skip the current file\n`);
|
|
124
180
|
try {
|
|
125
181
|
for (let i = 0; i < totalFiles; i++) {
|
|
126
182
|
const file = projectFiles[i];
|
|
127
183
|
const fileStart = Date.now();
|
|
128
|
-
const fmtTime = (ms) => {
|
|
129
|
-
const s = Math.floor(ms / 1000);
|
|
130
|
-
const m = Math.floor(s / 60);
|
|
131
|
-
return m > 0 ? `${m}m ${s % 60}s` : `${s}s`;
|
|
132
|
-
};
|
|
133
184
|
const fileElapsed = () => fmtTime(Date.now() - fileStart);
|
|
134
185
|
const totalElapsed = () => fmtTime(Date.now() - totalStart);
|
|
135
186
|
const status = () => `${makeBar(i, totalFiles)} ${i + 1}/${totalFiles} ${file.path} — ${fileElapsed()} (${totalElapsed()} total)`;
|
|
@@ -137,6 +188,19 @@ async function runRethemeFlow(generatedName, cwd, language, framework) {
|
|
|
137
188
|
const elapsedTimer = setInterval(() => {
|
|
138
189
|
rethemeSpinner.text = status();
|
|
139
190
|
}, 1000);
|
|
191
|
+
const controller = new AbortController();
|
|
192
|
+
const onKeypress = (key) => {
|
|
193
|
+
if (key === 's' || key === 'S')
|
|
194
|
+
controller.abort();
|
|
195
|
+
// Ctrl+C — restore stdin and exit
|
|
196
|
+
if (key === '\x03') {
|
|
197
|
+
if (stdin.isTTY)
|
|
198
|
+
stdin.setRawMode(wasRaw ?? false);
|
|
199
|
+
stdin.pause();
|
|
200
|
+
process.exit(130);
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
stdin.on('data', onKeypress);
|
|
140
204
|
let fileResult;
|
|
141
205
|
try {
|
|
142
206
|
fileResult = await requestRetheme({
|
|
@@ -146,58 +210,192 @@ async function runRethemeFlow(generatedName, cwd, language, framework) {
|
|
|
146
210
|
framework,
|
|
147
211
|
userInstruction: rethemeInstruction || undefined,
|
|
148
212
|
targetLanguage: language !== 'js' ? language : undefined,
|
|
149
|
-
|
|
213
|
+
themeFile: themeFile || undefined,
|
|
214
|
+
}, controller.signal);
|
|
215
|
+
}
|
|
216
|
+
catch (fileErr) {
|
|
217
|
+
clearInterval(elapsedTimer);
|
|
218
|
+
stdin.removeListener('data', onKeypress);
|
|
219
|
+
if (fileErr instanceof SkipFileError) {
|
|
220
|
+
userSkippedFiles.push(file.path);
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
failedFiles.push(file.path);
|
|
224
|
+
}
|
|
225
|
+
filesInCurrentBatch++;
|
|
226
|
+
continue;
|
|
150
227
|
}
|
|
151
228
|
finally {
|
|
152
229
|
clearInterval(elapsedTimer);
|
|
230
|
+
stdin.removeListener('data', onKeypress);
|
|
153
231
|
}
|
|
154
232
|
for (const modified of fileResult.modifiedFiles) {
|
|
233
|
+
// If the AI returned an updated theme file, accumulate it for subsequent iterations
|
|
234
|
+
if (themeFile && modified.path === themeFile.path) {
|
|
235
|
+
themeFile = { ...themeFile, content: modified.content };
|
|
236
|
+
}
|
|
155
237
|
allModifiedFiles.push(modified);
|
|
238
|
+
batchModifiedFiles.push(modified);
|
|
239
|
+
}
|
|
240
|
+
filesInCurrentBatch++;
|
|
241
|
+
// No-review mode: apply each file's changes immediately
|
|
242
|
+
if (noReview && !batchSize) {
|
|
243
|
+
applyChanges(fileResult.modifiedFiles, cwd);
|
|
244
|
+
appliedCount += fileResult.modifiedFiles.length;
|
|
245
|
+
}
|
|
246
|
+
// Batch mode: pause once we've hit batchSize AND we're at a directory boundary
|
|
247
|
+
if (batchSize && filesInCurrentBatch >= batchSize && i + 1 < totalFiles) {
|
|
248
|
+
const currentDir = path.dirname(file.path);
|
|
249
|
+
const nextDir = path.dirname(projectFiles[i + 1].path);
|
|
250
|
+
if (currentDir !== nextDir) {
|
|
251
|
+
currentBatch++;
|
|
252
|
+
rethemeSpinner.stop();
|
|
253
|
+
applyChanges(batchModifiedFiles, cwd);
|
|
254
|
+
appliedCount += batchModifiedFiles.length;
|
|
255
|
+
console.log(`\n Batch ${currentBatch} applied (${filesInCurrentBatch} files). Elapsed: ${fmtTime(Date.now() - totalStart)}`);
|
|
256
|
+
// Restore normal stdin for interactive prompt
|
|
257
|
+
if (stdin.isTTY)
|
|
258
|
+
stdin.setRawMode(false);
|
|
259
|
+
stdin.pause();
|
|
260
|
+
const { shouldContinue } = await prompts({
|
|
261
|
+
type: 'confirm',
|
|
262
|
+
name: 'shouldContinue',
|
|
263
|
+
message: 'Continue to next batch?',
|
|
264
|
+
initial: true,
|
|
265
|
+
});
|
|
266
|
+
if (!shouldContinue) {
|
|
267
|
+
console.log(`\n Stopped after batch ${currentBatch}. Applied ${appliedCount} files total.`);
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
// Re-enable raw mode for skip keypress
|
|
271
|
+
if (stdin.isTTY)
|
|
272
|
+
stdin.setRawMode(true);
|
|
273
|
+
stdin.resume();
|
|
274
|
+
batchModifiedFiles = [];
|
|
275
|
+
filesInCurrentBatch = 0;
|
|
276
|
+
rethemeSpinner.start();
|
|
277
|
+
}
|
|
156
278
|
}
|
|
157
279
|
}
|
|
158
280
|
const totalSeconds = Math.floor((Date.now() - totalStart) / 1000);
|
|
159
281
|
const minutes = Math.floor(totalSeconds / 60);
|
|
160
282
|
const seconds = totalSeconds % 60;
|
|
161
283
|
const timeStr = minutes > 0 ? `${minutes}m ${seconds}s` : `${totalSeconds}s`;
|
|
162
|
-
|
|
163
|
-
|
|
284
|
+
const failSuffix = failedFiles.length > 0 ? `, ${failedFiles.length} failed` : '';
|
|
285
|
+
const skipSuffix = userSkippedFiles.length > 0 ? `, ${userSkippedFiles.length} skipped` : '';
|
|
286
|
+
rethemeSpinner.succeed(`Retheme generated (${totalFiles} files in ${timeStr}${failSuffix}${skipSuffix})`);
|
|
287
|
+
if (failedFiles.length > 0) {
|
|
288
|
+
console.log(`\n Failed files:`);
|
|
289
|
+
for (const f of failedFiles) {
|
|
290
|
+
console.log(` ✖ ${f}`);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
if (userSkippedFiles.length > 0) {
|
|
294
|
+
console.log(`\n Skipped files:`);
|
|
295
|
+
for (const f of userSkippedFiles) {
|
|
296
|
+
console.log(` ⏭ ${f}`);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
// Deduplicate theme file in allModifiedFiles — only keep the last version
|
|
300
|
+
if (themeFile) {
|
|
301
|
+
let lastThemeIdx = -1;
|
|
302
|
+
for (let j = allModifiedFiles.length - 1; j >= 0; j--) {
|
|
303
|
+
if (allModifiedFiles[j].path === themeFile.path) {
|
|
304
|
+
if (lastThemeIdx === -1) {
|
|
305
|
+
lastThemeIdx = j;
|
|
306
|
+
}
|
|
307
|
+
else {
|
|
308
|
+
allModifiedFiles.splice(j, 1);
|
|
309
|
+
lastThemeIdx--;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
if (batchSize) {
|
|
315
|
+
// Deduplicate theme file in batchModifiedFiles as well
|
|
316
|
+
if (themeFile) {
|
|
317
|
+
let lastThemeIdx = -1;
|
|
318
|
+
for (let j = batchModifiedFiles.length - 1; j >= 0; j--) {
|
|
319
|
+
if (batchModifiedFiles[j].path === themeFile.path) {
|
|
320
|
+
if (lastThemeIdx === -1) {
|
|
321
|
+
lastThemeIdx = j;
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
batchModifiedFiles.splice(j, 1);
|
|
325
|
+
lastThemeIdx--;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
// Apply remaining files from the final (possibly partial) batch
|
|
331
|
+
if (batchModifiedFiles.length > 0) {
|
|
332
|
+
applyChanges(batchModifiedFiles, cwd);
|
|
333
|
+
appliedCount += batchModifiedFiles.length;
|
|
334
|
+
}
|
|
335
|
+
console.log(`\n✅ Retheme complete! Applied ${appliedCount} files.`);
|
|
336
|
+
}
|
|
337
|
+
else if (noReview) {
|
|
338
|
+
// Already applied per-file above; just print summary
|
|
339
|
+
console.log(`\n✅ Retheme complete! Applied ${appliedCount} files.`);
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
// Restore normal stdin for interactive review prompt
|
|
343
|
+
if (stdin.isTTY)
|
|
344
|
+
stdin.setRawMode(wasRaw ?? false);
|
|
345
|
+
stdin.pause();
|
|
346
|
+
await reviewAndApplyChanges(allModifiedFiles, cwd, 'Retheme');
|
|
347
|
+
}
|
|
164
348
|
}
|
|
165
349
|
catch (rethemeErr) {
|
|
166
350
|
rethemeSpinner.fail('Retheme failed');
|
|
167
351
|
throw rethemeErr;
|
|
168
352
|
}
|
|
353
|
+
finally {
|
|
354
|
+
// Restore stdin to normal mode (safe to call even if already restored)
|
|
355
|
+
if (stdin.isTTY && stdin.isRaw)
|
|
356
|
+
stdin.setRawMode(wasRaw ?? false);
|
|
357
|
+
stdin.pause();
|
|
358
|
+
}
|
|
169
359
|
}
|
|
170
|
-
async function runIntegrateFlow(generatedName, cwd, language, framework) {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
if (
|
|
174
|
-
|
|
360
|
+
async function runIntegrateFlow(generatedName, cwd, language, framework, providedTarget, noReview, dryRun) {
|
|
361
|
+
const json = isJsonMode();
|
|
362
|
+
let targetPath;
|
|
363
|
+
if (providedTarget) {
|
|
364
|
+
// Non-interactive: use provided target directly
|
|
365
|
+
targetPath = providedTarget;
|
|
175
366
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
367
|
+
else {
|
|
368
|
+
// Interactive: let user pick from candidates
|
|
369
|
+
const candidates = findCandidates(cwd, language, framework);
|
|
370
|
+
if (candidates.length === 0) {
|
|
371
|
+
throw new MagicPathError('No suitable files found for integration.');
|
|
372
|
+
}
|
|
373
|
+
const allChoices = candidates.map((c) => ({
|
|
374
|
+
title: `${c.relativePath}${c.label ? ` ${c.label}` : ''}`,
|
|
375
|
+
value: c.relativePath,
|
|
376
|
+
}));
|
|
377
|
+
const result = await prompts({
|
|
378
|
+
type: 'autocomplete',
|
|
379
|
+
name: 'targetPath',
|
|
380
|
+
message: 'Where do you want to use this component?',
|
|
381
|
+
choices: allChoices,
|
|
382
|
+
limit: 10,
|
|
383
|
+
suggest: async (input, _choices) => {
|
|
384
|
+
const query = input.toLowerCase();
|
|
385
|
+
if (!query)
|
|
386
|
+
return allChoices;
|
|
387
|
+
const filtered = allChoices.filter((c) => c.title.toLowerCase().includes(query));
|
|
388
|
+
if (filtered.length === 0) {
|
|
389
|
+
return [{ title: input, value: input }];
|
|
390
|
+
}
|
|
391
|
+
return filtered;
|
|
392
|
+
},
|
|
393
|
+
});
|
|
394
|
+
if (!result.targetPath) {
|
|
395
|
+
console.log('Integration cancelled.');
|
|
396
|
+
return;
|
|
397
|
+
}
|
|
398
|
+
targetPath = result.targetPath;
|
|
201
399
|
}
|
|
202
400
|
const absTarget = path.resolve(cwd, targetPath);
|
|
203
401
|
if (!fs.existsSync(absTarget)) {
|
|
@@ -208,46 +406,25 @@ async function runIntegrateFlow(generatedName, cwd, language, framework) {
|
|
|
208
406
|
if (fileLanguage !== 'unknown') {
|
|
209
407
|
language = fileLanguage;
|
|
210
408
|
}
|
|
211
|
-
if (language !== 'js') {
|
|
409
|
+
if (!json && language !== 'js') {
|
|
212
410
|
console.log(` Target language: ${getLanguageDisplayName(language)}`);
|
|
213
411
|
}
|
|
214
|
-
// Optional user instruction
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
// For JS targets, also fetch component from registry to follow its imports into user project
|
|
222
|
-
let componentFiles;
|
|
223
|
-
if (language === 'js') {
|
|
224
|
-
const fetchSpinner = brandSpinner(`Fetching component "${generatedName}"...`).start();
|
|
225
|
-
let componentData;
|
|
226
|
-
try {
|
|
227
|
-
componentData = await fetchComponent(generatedName);
|
|
228
|
-
fetchSpinner.succeed(`Found component: ${componentData.name}`);
|
|
229
|
-
}
|
|
230
|
-
catch (err) {
|
|
231
|
-
fetchSpinner.fail('Failed to fetch component');
|
|
232
|
-
if (err instanceof MagicPathError) {
|
|
233
|
-
throw err;
|
|
234
|
-
}
|
|
235
|
-
throw new MagicPathError('Something went wrong!');
|
|
236
|
-
}
|
|
237
|
-
const componentFolderName = sanitizeComponentFolderName(componentData.name);
|
|
238
|
-
const basePath = resolveComponentsPath(undefined, cwd);
|
|
239
|
-
const componentsPath = path.join(basePath, componentFolderName);
|
|
240
|
-
componentFiles = componentData.files.map((f) => {
|
|
241
|
-
const installedRelPath = path.relative(cwd, path.join(componentsPath, f.path));
|
|
242
|
-
return {
|
|
243
|
-
path: installedRelPath,
|
|
244
|
-
content: f.content,
|
|
245
|
-
};
|
|
412
|
+
// Optional user instruction (skip in non-interactive mode)
|
|
413
|
+
let userInstruction;
|
|
414
|
+
if (!providedTarget) {
|
|
415
|
+
const result = await prompts({
|
|
416
|
+
type: 'text',
|
|
417
|
+
name: 'userInstruction',
|
|
418
|
+
message: 'How should this component be used? (optional — press Enter to skip)',
|
|
246
419
|
});
|
|
420
|
+
userInstruction = result.userInstruction;
|
|
247
421
|
}
|
|
248
|
-
|
|
422
|
+
// Read target with context
|
|
423
|
+
const { targetFile, importedFiles, referencingFiles } = readTargetWithContext(targetPath, cwd, undefined, language);
|
|
249
424
|
// Call integrate API
|
|
250
|
-
const integrationSpinner =
|
|
425
|
+
const integrationSpinner = json
|
|
426
|
+
? null
|
|
427
|
+
: brandSpinner('Generating integration...').start();
|
|
251
428
|
try {
|
|
252
429
|
const result = await requestIntegration({
|
|
253
430
|
targetFile,
|
|
@@ -258,11 +435,35 @@ async function runIntegrateFlow(generatedName, cwd, language, framework) {
|
|
|
258
435
|
userInstruction: userInstruction || undefined,
|
|
259
436
|
targetLanguage: language !== 'js' ? language : undefined,
|
|
260
437
|
});
|
|
261
|
-
integrationSpinner
|
|
262
|
-
|
|
438
|
+
integrationSpinner?.succeed('Integration generated');
|
|
439
|
+
// JSON mode: return file contents without writing — the agent decides
|
|
440
|
+
if (json) {
|
|
441
|
+
jsonResult({
|
|
442
|
+
modifiedFiles: result.modifiedFiles.map((f) => ({
|
|
443
|
+
path: f.path,
|
|
444
|
+
content: f.content,
|
|
445
|
+
})),
|
|
446
|
+
framework,
|
|
447
|
+
});
|
|
448
|
+
}
|
|
449
|
+
// Dry run (human mode): show what would change
|
|
450
|
+
if (dryRun) {
|
|
451
|
+
console.log('\n[Dry run] Would modify:');
|
|
452
|
+
for (const f of result.modifiedFiles) {
|
|
453
|
+
console.log(` ${f.path}`);
|
|
454
|
+
}
|
|
455
|
+
return;
|
|
456
|
+
}
|
|
457
|
+
if (noReview) {
|
|
458
|
+
applyChanges(result.modifiedFiles, cwd);
|
|
459
|
+
console.log(` Applied ${result.modifiedFiles.length} file(s).`);
|
|
460
|
+
}
|
|
461
|
+
else {
|
|
462
|
+
await reviewAndApplyChanges(result.modifiedFiles, cwd, 'Integration');
|
|
463
|
+
}
|
|
263
464
|
}
|
|
264
465
|
catch (intErr) {
|
|
265
|
-
integrationSpinner
|
|
466
|
+
integrationSpinner?.fail('Integration failed');
|
|
266
467
|
throw intErr;
|
|
267
468
|
}
|
|
268
469
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrate.js","sourceRoot":"","sources":["../../src/commands/integrate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"integrate.js","sourceRoot":"","sources":["../../src/commands/integrate.ts"],"names":[],"mappings":"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"}
|