@nikelyh/metamorph 2.0.7 → 2.0.8
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/dist/index.js +29 -6
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1837,25 +1837,34 @@ var managePackagesProcessor = {
|
|
|
1837
1837
|
}
|
|
1838
1838
|
const packageJsonPath = path4.join(shadowDir, "package.json");
|
|
1839
1839
|
if (fs5.existsSync(packageJsonPath)) {
|
|
1840
|
-
const {
|
|
1841
|
-
const
|
|
1840
|
+
const { spawn } = await import("child_process");
|
|
1841
|
+
const runCommandAsync = (cmd, args) => {
|
|
1842
|
+
return new Promise((resolve3, reject) => {
|
|
1843
|
+
const proc = spawn(cmd, args, { cwd: shadowDir, stdio: "inherit", shell: true });
|
|
1844
|
+
proc.on("close", (code) => {
|
|
1845
|
+
if (code === 0) resolve3();
|
|
1846
|
+
else reject(new Error(`Command ${cmd} ${args.join(" ")} failed with code ${code}`));
|
|
1847
|
+
});
|
|
1848
|
+
proc.on("error", reject);
|
|
1849
|
+
});
|
|
1850
|
+
};
|
|
1842
1851
|
try {
|
|
1843
1852
|
let toRemove = [];
|
|
1844
1853
|
if (catalogEntry.dependenciesToRemove) toRemove.push(...catalogEntry.dependenciesToRemove);
|
|
1845
1854
|
if (catalogEntry.devDependenciesToRemove) toRemove.push(...catalogEntry.devDependenciesToRemove);
|
|
1846
1855
|
if (toRemove.length > 0) {
|
|
1847
1856
|
console.log(`[PackageManagerAgent] Uninstalling: ${toRemove.join(" ")}`);
|
|
1848
|
-
|
|
1857
|
+
await runCommandAsync("npm", ["uninstall", ...toRemove]);
|
|
1849
1858
|
}
|
|
1850
1859
|
if (catalogEntry.dependenciesToAdd && Object.keys(catalogEntry.dependenciesToAdd).length > 0) {
|
|
1851
1860
|
const deps = Object.entries(catalogEntry.dependenciesToAdd).map(([pkg, ver]) => `${pkg}@${ver}`);
|
|
1852
1861
|
console.log(`[PackageManagerAgent] Installing dependencies: ${deps.join(" ")}`);
|
|
1853
|
-
|
|
1862
|
+
await runCommandAsync("npm", ["install", ...deps]);
|
|
1854
1863
|
}
|
|
1855
1864
|
if (catalogEntry.devDependenciesToAdd && Object.keys(catalogEntry.devDependenciesToAdd).length > 0) {
|
|
1856
1865
|
const devDeps = Object.entries(catalogEntry.devDependenciesToAdd).map(([pkg, ver]) => `${pkg}@${ver}`);
|
|
1857
1866
|
console.log(`[PackageManagerAgent] Installing devDependencies: ${devDeps.join(" ")}`);
|
|
1858
|
-
|
|
1867
|
+
await runCommandAsync("npm", ["install", "-D", ...devDeps]);
|
|
1859
1868
|
}
|
|
1860
1869
|
console.log(`[PackageManagerAgent] Successfully updated dependencies via npm.`);
|
|
1861
1870
|
} catch (err) {
|
|
@@ -2200,7 +2209,12 @@ program.command("run [path]").description("Run a migration on the specified dire
|
|
|
2200
2209
|
console.log(chalk.gray(`Target: ${targetPath} | ${from} -> ${to}
|
|
2201
2210
|
`));
|
|
2202
2211
|
if (!process.env.OPENAI_API_KEY && !process.env.ANTHROPIC_API_KEY) {
|
|
2203
|
-
console.log(chalk.yellow(
|
|
2212
|
+
console.log(chalk.yellow(`
|
|
2213
|
+
\u26A0\uFE0F WARNING: No LLM API key detected (OPENAI_API_KEY or ANTHROPIC_API_KEY).`));
|
|
2214
|
+
console.log(chalk.yellow(`AI Worker agents will fail if you don't configure a valid key before starting the migration.`));
|
|
2215
|
+
console.log(chalk.yellow(`Please set your API key as an environment variable in your terminal. For example:`));
|
|
2216
|
+
console.log(chalk.yellow(` Linux/macOS: export OPENAI_API_KEY="sk-..."`));
|
|
2217
|
+
console.log(chalk.yellow(` Windows (PowerShell): $env:OPENAI_API_KEY="sk-..."
|
|
2204
2218
|
`));
|
|
2205
2219
|
}
|
|
2206
2220
|
const spinner = ora("Initializing...").start();
|
|
@@ -2305,6 +2319,15 @@ program.command("ui").description("Start the Metamorph Dashboard API server").op
|
|
|
2305
2319
|
const getPort = (await import("get-port")).default;
|
|
2306
2320
|
const open = (await import("open")).default;
|
|
2307
2321
|
const port = await getPort({ port: desiredPort });
|
|
2322
|
+
if (!process.env.OPENAI_API_KEY && !process.env.ANTHROPIC_API_KEY) {
|
|
2323
|
+
console.log(chalk.yellow(`
|
|
2324
|
+
\u26A0\uFE0F WARNING: No LLM API key detected (OPENAI_API_KEY or ANTHROPIC_API_KEY).`));
|
|
2325
|
+
console.log(chalk.yellow(`AI Worker agents will fail if you don't configure a valid key before starting the migration.`));
|
|
2326
|
+
console.log(chalk.yellow(`Please set your API key as an environment variable in your terminal. For example:`));
|
|
2327
|
+
console.log(chalk.yellow(` Linux/macOS: export OPENAI_API_KEY="sk-..."`));
|
|
2328
|
+
console.log(chalk.yellow(` Windows (PowerShell): $env:OPENAI_API_KEY="sk-..."
|
|
2329
|
+
`));
|
|
2330
|
+
}
|
|
2308
2331
|
const store = new SQLiteStateStore(".metamorph");
|
|
2309
2332
|
const tools = [
|
|
2310
2333
|
createReadFileTool(),
|