@sellable/install 0.1.40 → 0.1.42

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.
@@ -74,6 +74,7 @@ const C = {
74
74
  grey: useColor ? "\x1b[90m" : "",
75
75
  bold: useColor ? "\x1b[1m" : "",
76
76
  magenta: useColor ? "\x1b[35m" : "",
77
+ brand: useColor ? "\x1b[96m" : "",
77
78
  };
78
79
 
79
80
  let VERBOSE = false;
@@ -106,11 +107,11 @@ function printBanner() {
106
107
  " ╚══════╝ ╚══════╝ ╚══════╝ ╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚══════╝",
107
108
  ];
108
109
  console.log("");
109
- for (const line of lines) console.log(`${C.magenta}${line}${C.reset}`);
110
+ for (const line of lines) console.log(`${C.brand}${line}${C.reset}`);
110
111
  console.log("");
111
112
  } else {
112
113
  console.log("");
113
- console.log(`${C.bold}${C.magenta}SELLABLE${C.reset}`);
114
+ console.log(`${C.bold}${C.brand}SELLABLE${C.reset}`);
114
115
  console.log("");
115
116
  }
116
117
  }
@@ -1417,26 +1418,81 @@ function printAgentBox(title, terminalCmd, agentCmd) {
1417
1418
  console.log(bot);
1418
1419
  }
1419
1420
 
1421
+ function printInstallAgentBox(title, installCmd, docsUrl) {
1422
+ const W = 58;
1423
+ const line = (text) => {
1424
+ const pad = Math.max(0, W - visibleLen(text));
1425
+ return ` │ ${text}${" ".repeat(pad)} │`;
1426
+ };
1427
+ const blank = () => ` │${" ".repeat(W + 2)}│`;
1428
+
1429
+ const titleColored = `${C.bold}${title}${C.reset}`;
1430
+ const titleVis = visibleLen(titleColored);
1431
+ const top = ` ┌─ ${titleColored} ${"─".repeat(Math.max(0, W - titleVis - 1))}┐`;
1432
+ const bot = ` └${"─".repeat(W + 2)}┘`;
1433
+
1434
+ console.log(top);
1435
+ console.log(blank());
1436
+ console.log(line(` ${C.bold}STEP 1${C.reset} In your terminal, run:`));
1437
+ console.log(blank());
1438
+ console.log(line(` ${C.cyan}${installCmd}${C.reset}`));
1439
+ console.log(blank());
1440
+ console.log(line(` ${C.bold}STEP 2${C.reset} Then re-run Sellable:`));
1441
+ console.log(blank());
1442
+ console.log(
1443
+ line(` ${C.cyan}npx -y @sellable/install@latest${C.reset}`)
1444
+ );
1445
+ console.log(blank());
1446
+ console.log(line(` ${C.grey}Docs: ${docsUrl}${C.reset}`));
1447
+ console.log(blank());
1448
+ console.log(bot);
1449
+ }
1450
+
1420
1451
  function printNextSteps(installedHosts, authReused) {
1421
1452
  console.log("");
1422
1453
 
1423
1454
  if (installedHosts.length === 0) {
1424
- printDivider();
1425
- console.log(` ${C.bold}Installed.${C.reset}`);
1426
- printDivider();
1427
- console.log("");
1428
1455
  console.log(
1429
- ` ${C.yellow}!${C.reset} Neither Claude Code nor Codex was found on this machine.`
1456
+ ` ${C.bold}Almost there install an agent first.${C.reset}`
1457
+ );
1458
+ console.log(
1459
+ ` ${C.yellow}!${C.reset} No agent CLI found (Claude Code or Codex)`
1430
1460
  );
1431
1461
  console.log("");
1432
- console.log(` Install one of them, then rerun this command:`);
1433
- console.log(` ${C.cyan}npx -y @sellable/install@latest${C.reset}`);
1434
1462
  console.log("");
1463
+ console.log(` ${"═".repeat(63)}`);
1464
+ console.log(` ${C.bold}Install one of these, then rerun:${C.reset}`);
1465
+ console.log(` ${"═".repeat(63)}`);
1466
+ console.log("");
1467
+ console.log("");
1468
+ printInstallAgentBox(
1469
+ "Install Claude Code",
1470
+ "npm install -g @anthropic-ai/claude-code",
1471
+ "https://docs.anthropic.com/en/docs/claude-code"
1472
+ );
1473
+ console.log("");
1474
+ console.log("");
1475
+ printInstallAgentBox(
1476
+ "Install Codex",
1477
+ "npm install -g @openai/codex",
1478
+ "https://github.com/openai/codex"
1479
+ );
1480
+ console.log("");
1481
+ console.log("");
1482
+ console.log(` ${"─".repeat(63)}`);
1483
+ console.log(` ${C.grey}Need help?${C.reset}`);
1484
+ console.log(
1485
+ ` Slack ${C.cyan}https://join.slack.com/t/ditttoai/shared_invite/zt-3wvs86yau-csKZGP3iGXO3oEiAUmtH9A${C.reset}`
1486
+ );
1487
+ console.log(` Email ${C.cyan}admin@dittto.ai${C.reset}`);
1435
1488
  console.log(
1436
- ` ${C.grey}Claude Code: https://docs.anthropic.com/en/docs/claude-code${C.reset}`
1489
+ ` LinkedIn ${C.cyan}https://www.linkedin.com/in/csreyes92/${C.reset} ${C.grey}(DM Christian)${C.reset}`
1437
1490
  );
1491
+ console.log("");
1492
+ const installV = getInstallVersion();
1493
+ const mcpV = getMcpVersion();
1438
1494
  console.log(
1439
- ` ${C.grey}Codex: https://github.com/openai/codex${C.reset}`
1495
+ ` ${C.grey}@sellable/install v${installV} · @sellable/mcp v${mcpV} · Codex plugin v${CODEX_PLUGIN_VERSION}${C.reset}`
1440
1496
  );
1441
1497
  console.log("");
1442
1498
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/install",
3
- "version": "0.1.40",
3
+ "version": "0.1.42",
4
4
  "type": "module",
5
5
  "description": "One-command installer for Sellable MCP in Claude Code and Codex",
6
6
  "bin": {