@react-grab/cli 0.0.73 → 0.0.74

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 (3) hide show
  1. package/dist/cli.cjs +48 -23
  2. package/dist/cli.js +48 -23
  3. package/package.json +1 -1
package/dist/cli.cjs CHANGED
@@ -987,11 +987,11 @@ var AGENT_PREFIXES = {
987
987
  opencode: "npx @react-grab/opencode@latest &&"
988
988
  };
989
989
  var previewPackageJsonTransform = (projectRoot, agent, installedAgents) => {
990
- if (agent === "none") {
990
+ if (agent === "none" || agent === "ami") {
991
991
  return {
992
992
  success: true,
993
993
  filePath: "",
994
- message: "No agent selected, skipping package.json modification",
994
+ message: agent === "ami" ? "Ami does not require package.json modification" : "No agent selected, skipping package.json modification",
995
995
  noChanges: true
996
996
  };
997
997
  }
@@ -1083,9 +1083,10 @@ var applyPackageJsonTransform = (result) => {
1083
1083
  var AGENT_NAMES = {
1084
1084
  "claude-code": "Claude Code",
1085
1085
  cursor: "Cursor",
1086
- opencode: "Opencode"
1086
+ opencode: "Opencode",
1087
+ ami: "Ami"
1087
1088
  };
1088
- var add = new commander.Command().name("add").description("add an agent integration").argument("[agent]", "agent to add (claude-code, cursor, opencode)").option("-y, --yes", "skip confirmation prompts", false).option(
1089
+ var add = new commander.Command().name("add").description("add an agent integration").argument("[agent]", "agent to add (claude-code, cursor, opencode, ami)").option("-y, --yes", "skip confirmation prompts", false).option(
1089
1090
  "-c, --cwd <cwd>",
1090
1091
  "working directory (defaults to current directory)",
1091
1092
  process.cwd()
@@ -1107,7 +1108,7 @@ var add = new commander.Command().name("add").description("add an agent integrat
1107
1108
  process.exit(1);
1108
1109
  }
1109
1110
  preflightSpinner.succeed();
1110
- const availableAgents = ["claude-code", "cursor", "opencode"].filter((agent) => !projectInfo.installedAgents.includes(agent));
1111
+ const availableAgents = ["claude-code", "cursor", "opencode", "ami"].filter((agent) => !projectInfo.installedAgents.includes(agent));
1111
1112
  if (availableAgents.length === 0) {
1112
1113
  logger.break();
1113
1114
  logger.success("All agent integrations are already installed.");
@@ -1116,10 +1117,10 @@ var add = new commander.Command().name("add").description("add an agent integrat
1116
1117
  }
1117
1118
  let agentIntegration;
1118
1119
  if (agentArg) {
1119
- if (!["claude-code", "cursor", "opencode"].includes(agentArg)) {
1120
+ if (!["claude-code", "cursor", "opencode", "ami"].includes(agentArg)) {
1120
1121
  logger.break();
1121
1122
  logger.error(`Invalid agent: ${agentArg}`);
1122
- logger.error("Available agents: claude-code, cursor, opencode");
1123
+ logger.error("Available agents: claude-code, cursor, opencode, ami");
1123
1124
  logger.break();
1124
1125
  process.exit(1);
1125
1126
  }
@@ -1257,7 +1258,7 @@ var add = new commander.Command().name("add").description("add an agent integrat
1257
1258
  handleError(error);
1258
1259
  }
1259
1260
  });
1260
- var VERSION = "0.0.73";
1261
+ var VERSION = "0.0.74";
1261
1262
  var REPORT_URL = "https://react-grab.com/api/report-cli";
1262
1263
  var DOCS_URL = "https://github.com/aidenybai/react-grab";
1263
1264
  var reportToCli = async (type, config, error) => {
@@ -1297,7 +1298,7 @@ var UNSUPPORTED_FRAMEWORK_NAMES = {
1297
1298
  };
1298
1299
  var init = new commander.Command().name("init").description("initialize React Grab in your project").option("-y, --yes", "skip confirmation prompts", false).option("-f, --force", "force overwrite existing config", false).option(
1299
1300
  "-a, --agent <agent>",
1300
- "agent integration (claude-code, cursor, opencode)"
1301
+ "agent integration (claude-code, cursor, opencode, ami)"
1301
1302
  ).option("--skip-install", "skip package installation", false).option(
1302
1303
  "-c, --cwd <cwd>",
1303
1304
  "working directory (defaults to current directory)",
@@ -1334,17 +1335,23 @@ var init = new commander.Command().name("init").description("initialize React Gr
1334
1335
  if (projectInfo.framework === "unknown") {
1335
1336
  if (projectInfo.isMonorepo && !isNonInteractive) {
1336
1337
  frameworkSpinner.info("Verifying framework. Found monorepo.");
1337
- const workspaceProjects = findWorkspaceProjects(projectInfo.projectRoot);
1338
+ const workspaceProjects = findWorkspaceProjects(
1339
+ projectInfo.projectRoot
1340
+ );
1338
1341
  const reactProjects = workspaceProjects.filter(
1339
1342
  (project) => project.hasReact || project.framework !== "unknown"
1340
1343
  );
1341
1344
  if (reactProjects.length > 0) {
1342
1345
  logger.break();
1343
- const sortedProjects = [...reactProjects].sort((projectA, projectB) => {
1344
- if (projectA.framework === "unknown" && projectB.framework !== "unknown") return 1;
1345
- if (projectA.framework !== "unknown" && projectB.framework === "unknown") return -1;
1346
- return 0;
1347
- });
1346
+ const sortedProjects = [...reactProjects].sort(
1347
+ (projectA, projectB) => {
1348
+ if (projectA.framework === "unknown" && projectB.framework !== "unknown")
1349
+ return 1;
1350
+ if (projectA.framework !== "unknown" && projectB.framework === "unknown")
1351
+ return -1;
1352
+ return 0;
1353
+ }
1354
+ );
1348
1355
  const { selectedProject } = await prompts2__default.default({
1349
1356
  type: "select",
1350
1357
  name: "selectedProject",
@@ -1378,7 +1385,9 @@ var init = new commander.Command().name("init").description("initialize React Gr
1378
1385
  } else {
1379
1386
  frameworkSpinner.fail("Could not detect a supported framework.");
1380
1387
  logger.break();
1381
- logger.log("React Grab supports Next.js, Vite, and Webpack projects.");
1388
+ logger.log(
1389
+ "React Grab supports Next.js, Vite, and Webpack projects."
1390
+ );
1382
1391
  logger.log(`Visit ${highlighter.info(DOCS_URL)} for manual setup.`);
1383
1392
  logger.break();
1384
1393
  process.exit(1);
@@ -1394,7 +1403,9 @@ var init = new commander.Command().name("init").description("initialize React Gr
1394
1403
  `Detecting router type. Found ${highlighter.info(projectInfo.nextRouterType === "app" ? "App Router" : "Pages Router")}.`
1395
1404
  );
1396
1405
  }
1397
- const packageManagerSpinner = spinner("Detecting package manager.").start();
1406
+ const packageManagerSpinner = spinner(
1407
+ "Detecting package manager."
1408
+ ).start();
1398
1409
  packageManagerSpinner.succeed(
1399
1410
  `Detecting package manager. Found ${highlighter.info(PACKAGE_MANAGER_NAMES[projectInfo.packageManager])}.`
1400
1411
  );
@@ -1412,7 +1423,8 @@ var init = new commander.Command().name("init").description("initialize React Gr
1412
1423
  { title: "None", value: "none" },
1413
1424
  { title: "Claude Code", value: "claude-code" },
1414
1425
  { title: "Cursor", value: "cursor" },
1415
- { title: "Opencode", value: "opencode" }
1426
+ { title: "Opencode", value: "opencode" },
1427
+ { title: "Ami", value: "ami" }
1416
1428
  ]
1417
1429
  });
1418
1430
  if (agent === void 0) {
@@ -1445,7 +1457,11 @@ var init = new commander.Command().name("init").description("initialize React Gr
1445
1457
  if (hasLayoutChanges || hasPackageJsonChanges) {
1446
1458
  logger.break();
1447
1459
  if (hasLayoutChanges) {
1448
- printDiff(result.filePath, result.originalContent, result.newContent);
1460
+ printDiff(
1461
+ result.filePath,
1462
+ result.originalContent,
1463
+ result.newContent
1464
+ );
1449
1465
  }
1450
1466
  if (hasPackageJsonChanges) {
1451
1467
  if (hasLayoutChanges) {
@@ -1479,13 +1495,20 @@ var init = new commander.Command().name("init").description("initialize React Gr
1479
1495
  const shouldInstallReactGrab = !projectInfo.hasReactGrab;
1480
1496
  const shouldInstallAgent = agentIntegration !== "none" && !projectInfo.installedAgents.includes(agentIntegration);
1481
1497
  if (!opts.skipInstall && (shouldInstallReactGrab || shouldInstallAgent)) {
1482
- const packages = getPackagesToInstall(agentIntegration, shouldInstallReactGrab);
1498
+ const packages = getPackagesToInstall(
1499
+ agentIntegration,
1500
+ shouldInstallReactGrab
1501
+ );
1483
1502
  if (packages.length > 0) {
1484
1503
  const installSpinner = spinner(
1485
1504
  `Installing ${packages.join(", ")}.`
1486
1505
  ).start();
1487
1506
  try {
1488
- installPackages(packages, finalPackageManager, projectInfo.projectRoot);
1507
+ installPackages(
1508
+ packages,
1509
+ finalPackageManager,
1510
+ projectInfo.projectRoot
1511
+ );
1489
1512
  installSpinner.succeed();
1490
1513
  } catch (error) {
1491
1514
  installSpinner.fail();
@@ -1494,7 +1517,9 @@ var init = new commander.Command().name("init").description("initialize React Gr
1494
1517
  }
1495
1518
  }
1496
1519
  if (hasLayoutChanges) {
1497
- const writeSpinner = spinner(`Applying changes to ${result.filePath}.`).start();
1520
+ const writeSpinner = spinner(
1521
+ `Applying changes to ${result.filePath}.`
1522
+ ).start();
1498
1523
  const writeResult = applyTransform(result);
1499
1524
  if (!writeResult.success) {
1500
1525
  writeSpinner.fail();
@@ -1539,7 +1564,7 @@ var init = new commander.Command().name("init").description("initialize React Gr
1539
1564
  });
1540
1565
 
1541
1566
  // src/cli.ts
1542
- var VERSION2 = "0.0.73";
1567
+ var VERSION2 = "0.0.74";
1543
1568
  process.on("SIGINT", () => process.exit(0));
1544
1569
  process.on("SIGTERM", () => process.exit(0));
1545
1570
  var program = new commander.Command().name("react-grab").description("add React Grab to your project").version(VERSION2, "-v, --version", "display the version number");
package/dist/cli.js CHANGED
@@ -980,11 +980,11 @@ var AGENT_PREFIXES = {
980
980
  opencode: "npx @react-grab/opencode@latest &&"
981
981
  };
982
982
  var previewPackageJsonTransform = (projectRoot, agent, installedAgents) => {
983
- if (agent === "none") {
983
+ if (agent === "none" || agent === "ami") {
984
984
  return {
985
985
  success: true,
986
986
  filePath: "",
987
- message: "No agent selected, skipping package.json modification",
987
+ message: agent === "ami" ? "Ami does not require package.json modification" : "No agent selected, skipping package.json modification",
988
988
  noChanges: true
989
989
  };
990
990
  }
@@ -1076,9 +1076,10 @@ var applyPackageJsonTransform = (result) => {
1076
1076
  var AGENT_NAMES = {
1077
1077
  "claude-code": "Claude Code",
1078
1078
  cursor: "Cursor",
1079
- opencode: "Opencode"
1079
+ opencode: "Opencode",
1080
+ ami: "Ami"
1080
1081
  };
1081
- var add = new Command().name("add").description("add an agent integration").argument("[agent]", "agent to add (claude-code, cursor, opencode)").option("-y, --yes", "skip confirmation prompts", false).option(
1082
+ var add = new Command().name("add").description("add an agent integration").argument("[agent]", "agent to add (claude-code, cursor, opencode, ami)").option("-y, --yes", "skip confirmation prompts", false).option(
1082
1083
  "-c, --cwd <cwd>",
1083
1084
  "working directory (defaults to current directory)",
1084
1085
  process.cwd()
@@ -1100,7 +1101,7 @@ var add = new Command().name("add").description("add an agent integration").argu
1100
1101
  process.exit(1);
1101
1102
  }
1102
1103
  preflightSpinner.succeed();
1103
- const availableAgents = ["claude-code", "cursor", "opencode"].filter((agent) => !projectInfo.installedAgents.includes(agent));
1104
+ const availableAgents = ["claude-code", "cursor", "opencode", "ami"].filter((agent) => !projectInfo.installedAgents.includes(agent));
1104
1105
  if (availableAgents.length === 0) {
1105
1106
  logger.break();
1106
1107
  logger.success("All agent integrations are already installed.");
@@ -1109,10 +1110,10 @@ var add = new Command().name("add").description("add an agent integration").argu
1109
1110
  }
1110
1111
  let agentIntegration;
1111
1112
  if (agentArg) {
1112
- if (!["claude-code", "cursor", "opencode"].includes(agentArg)) {
1113
+ if (!["claude-code", "cursor", "opencode", "ami"].includes(agentArg)) {
1113
1114
  logger.break();
1114
1115
  logger.error(`Invalid agent: ${agentArg}`);
1115
- logger.error("Available agents: claude-code, cursor, opencode");
1116
+ logger.error("Available agents: claude-code, cursor, opencode, ami");
1116
1117
  logger.break();
1117
1118
  process.exit(1);
1118
1119
  }
@@ -1250,7 +1251,7 @@ var add = new Command().name("add").description("add an agent integration").argu
1250
1251
  handleError(error);
1251
1252
  }
1252
1253
  });
1253
- var VERSION = "0.0.73";
1254
+ var VERSION = "0.0.74";
1254
1255
  var REPORT_URL = "https://react-grab.com/api/report-cli";
1255
1256
  var DOCS_URL = "https://github.com/aidenybai/react-grab";
1256
1257
  var reportToCli = async (type, config, error) => {
@@ -1290,7 +1291,7 @@ var UNSUPPORTED_FRAMEWORK_NAMES = {
1290
1291
  };
1291
1292
  var init = new Command().name("init").description("initialize React Grab in your project").option("-y, --yes", "skip confirmation prompts", false).option("-f, --force", "force overwrite existing config", false).option(
1292
1293
  "-a, --agent <agent>",
1293
- "agent integration (claude-code, cursor, opencode)"
1294
+ "agent integration (claude-code, cursor, opencode, ami)"
1294
1295
  ).option("--skip-install", "skip package installation", false).option(
1295
1296
  "-c, --cwd <cwd>",
1296
1297
  "working directory (defaults to current directory)",
@@ -1327,17 +1328,23 @@ var init = new Command().name("init").description("initialize React Grab in your
1327
1328
  if (projectInfo.framework === "unknown") {
1328
1329
  if (projectInfo.isMonorepo && !isNonInteractive) {
1329
1330
  frameworkSpinner.info("Verifying framework. Found monorepo.");
1330
- const workspaceProjects = findWorkspaceProjects(projectInfo.projectRoot);
1331
+ const workspaceProjects = findWorkspaceProjects(
1332
+ projectInfo.projectRoot
1333
+ );
1331
1334
  const reactProjects = workspaceProjects.filter(
1332
1335
  (project) => project.hasReact || project.framework !== "unknown"
1333
1336
  );
1334
1337
  if (reactProjects.length > 0) {
1335
1338
  logger.break();
1336
- const sortedProjects = [...reactProjects].sort((projectA, projectB) => {
1337
- if (projectA.framework === "unknown" && projectB.framework !== "unknown") return 1;
1338
- if (projectA.framework !== "unknown" && projectB.framework === "unknown") return -1;
1339
- return 0;
1340
- });
1339
+ const sortedProjects = [...reactProjects].sort(
1340
+ (projectA, projectB) => {
1341
+ if (projectA.framework === "unknown" && projectB.framework !== "unknown")
1342
+ return 1;
1343
+ if (projectA.framework !== "unknown" && projectB.framework === "unknown")
1344
+ return -1;
1345
+ return 0;
1346
+ }
1347
+ );
1341
1348
  const { selectedProject } = await prompts2({
1342
1349
  type: "select",
1343
1350
  name: "selectedProject",
@@ -1371,7 +1378,9 @@ var init = new Command().name("init").description("initialize React Grab in your
1371
1378
  } else {
1372
1379
  frameworkSpinner.fail("Could not detect a supported framework.");
1373
1380
  logger.break();
1374
- logger.log("React Grab supports Next.js, Vite, and Webpack projects.");
1381
+ logger.log(
1382
+ "React Grab supports Next.js, Vite, and Webpack projects."
1383
+ );
1375
1384
  logger.log(`Visit ${highlighter.info(DOCS_URL)} for manual setup.`);
1376
1385
  logger.break();
1377
1386
  process.exit(1);
@@ -1387,7 +1396,9 @@ var init = new Command().name("init").description("initialize React Grab in your
1387
1396
  `Detecting router type. Found ${highlighter.info(projectInfo.nextRouterType === "app" ? "App Router" : "Pages Router")}.`
1388
1397
  );
1389
1398
  }
1390
- const packageManagerSpinner = spinner("Detecting package manager.").start();
1399
+ const packageManagerSpinner = spinner(
1400
+ "Detecting package manager."
1401
+ ).start();
1391
1402
  packageManagerSpinner.succeed(
1392
1403
  `Detecting package manager. Found ${highlighter.info(PACKAGE_MANAGER_NAMES[projectInfo.packageManager])}.`
1393
1404
  );
@@ -1405,7 +1416,8 @@ var init = new Command().name("init").description("initialize React Grab in your
1405
1416
  { title: "None", value: "none" },
1406
1417
  { title: "Claude Code", value: "claude-code" },
1407
1418
  { title: "Cursor", value: "cursor" },
1408
- { title: "Opencode", value: "opencode" }
1419
+ { title: "Opencode", value: "opencode" },
1420
+ { title: "Ami", value: "ami" }
1409
1421
  ]
1410
1422
  });
1411
1423
  if (agent === void 0) {
@@ -1438,7 +1450,11 @@ var init = new Command().name("init").description("initialize React Grab in your
1438
1450
  if (hasLayoutChanges || hasPackageJsonChanges) {
1439
1451
  logger.break();
1440
1452
  if (hasLayoutChanges) {
1441
- printDiff(result.filePath, result.originalContent, result.newContent);
1453
+ printDiff(
1454
+ result.filePath,
1455
+ result.originalContent,
1456
+ result.newContent
1457
+ );
1442
1458
  }
1443
1459
  if (hasPackageJsonChanges) {
1444
1460
  if (hasLayoutChanges) {
@@ -1472,13 +1488,20 @@ var init = new Command().name("init").description("initialize React Grab in your
1472
1488
  const shouldInstallReactGrab = !projectInfo.hasReactGrab;
1473
1489
  const shouldInstallAgent = agentIntegration !== "none" && !projectInfo.installedAgents.includes(agentIntegration);
1474
1490
  if (!opts.skipInstall && (shouldInstallReactGrab || shouldInstallAgent)) {
1475
- const packages = getPackagesToInstall(agentIntegration, shouldInstallReactGrab);
1491
+ const packages = getPackagesToInstall(
1492
+ agentIntegration,
1493
+ shouldInstallReactGrab
1494
+ );
1476
1495
  if (packages.length > 0) {
1477
1496
  const installSpinner = spinner(
1478
1497
  `Installing ${packages.join(", ")}.`
1479
1498
  ).start();
1480
1499
  try {
1481
- installPackages(packages, finalPackageManager, projectInfo.projectRoot);
1500
+ installPackages(
1501
+ packages,
1502
+ finalPackageManager,
1503
+ projectInfo.projectRoot
1504
+ );
1482
1505
  installSpinner.succeed();
1483
1506
  } catch (error) {
1484
1507
  installSpinner.fail();
@@ -1487,7 +1510,9 @@ var init = new Command().name("init").description("initialize React Grab in your
1487
1510
  }
1488
1511
  }
1489
1512
  if (hasLayoutChanges) {
1490
- const writeSpinner = spinner(`Applying changes to ${result.filePath}.`).start();
1513
+ const writeSpinner = spinner(
1514
+ `Applying changes to ${result.filePath}.`
1515
+ ).start();
1491
1516
  const writeResult = applyTransform(result);
1492
1517
  if (!writeResult.success) {
1493
1518
  writeSpinner.fail();
@@ -1532,7 +1557,7 @@ var init = new Command().name("init").description("initialize React Grab in your
1532
1557
  });
1533
1558
 
1534
1559
  // src/cli.ts
1535
- var VERSION2 = "0.0.73";
1560
+ var VERSION2 = "0.0.74";
1536
1561
  process.on("SIGINT", () => process.exit(0));
1537
1562
  process.on("SIGTERM", () => process.exit(0));
1538
1563
  var program = new Command().name("react-grab").description("add React Grab to your project").version(VERSION2, "-v, --version", "display the version number");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-grab/cli",
3
- "version": "0.0.73",
3
+ "version": "0.0.74",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "react-grab": "./dist/cli.js"