@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.
- package/bin/sellable-install.mjs +67 -11
- package/package.json +1 -1
package/bin/sellable-install.mjs
CHANGED
|
@@ -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.
|
|
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.
|
|
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
|
-
`
|
|
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.
|
|
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
|
-
`
|
|
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;
|