@sellable/install 0.1.30 → 0.1.31

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.
@@ -1394,44 +1394,77 @@ function verify(opts) {
1394
1394
  function printNextSteps(installedHosts) {
1395
1395
  console.log("");
1396
1396
  printDivider();
1397
- console.log(` ${C.bold}Next steps${C.reset}`);
1397
+ console.log(
1398
+ ` ${C.bold}You're set. Let's launch your first campaign.${C.reset}`
1399
+ );
1398
1400
  printDivider();
1399
1401
  console.log("");
1400
- if (installedHosts.length > 0) {
1401
- console.log(
1402
- ` 1. Quit and reopen ${installedHosts.join(" and ")} so MCP tools reload.`
1403
- );
1404
- console.log(" 2. Start a new thread and run:");
1405
- if (installedHosts.includes("Claude Code")) {
1406
- console.log(
1407
- ` ${C.cyan}/sellable:create-campaign${C.reset} ${C.grey}(Claude Code)${C.reset}`
1408
- );
1409
- }
1410
- if (installedHosts.includes("Codex")) {
1411
- console.log(
1412
- ` ${C.cyan}$sellable:create-campaign${C.reset} ${C.grey}(Codex)${C.reset}`
1413
- );
1414
- }
1402
+
1403
+ if (installedHosts.length === 0) {
1415
1404
  console.log(
1416
- ` ${C.grey}Sellable will walk you through signup or sign-in on first use.${C.reset}`
1405
+ ` ${C.yellow}!${C.reset} Neither Claude Code nor Codex was found on this machine.`
1417
1406
  );
1418
1407
  console.log("");
1408
+ console.log(` Install one of them, then rerun this command:`);
1409
+ console.log(` ${C.cyan}npx -y @sellable/install@latest${C.reset}`);
1410
+ console.log("");
1419
1411
  console.log(
1420
- ` Verify any time: ${C.cyan}sellable --verify-only --host all${C.reset}`
1421
- );
1422
- console.log(` Need help?`);
1423
- console.log(
1424
- ` Slack: ${C.cyan}https://join.slack.com/t/ditttoai/shared_invite/zt-3wvs86yau-csKZGP3iGXO3oEiAUmtH9A${C.reset}`
1412
+ ` ${C.grey}Claude Code: https://docs.anthropic.com/en/docs/claude-code${C.reset}`
1425
1413
  );
1426
- console.log(` Email: ${C.cyan}admin@dittto.ai${C.reset}`);
1427
- } else {
1428
1414
  console.log(
1429
- " 1. Install Claude Code or Codex, then rerun this installer for that host."
1415
+ ` ${C.grey}Codex: https://github.com/openai/codex${C.reset}`
1430
1416
  );
1417
+ console.log("");
1418
+ return;
1419
+ }
1420
+
1421
+ const useClaude = installedHosts.includes("Claude Code");
1422
+ const primary = useClaude
1423
+ ? {
1424
+ label: "Claude Code",
1425
+ cmd: "claude",
1426
+ slash: "/sellable:create-campaign",
1427
+ }
1428
+ : { label: "Codex", cmd: "codex", slash: "/sellable:create-campaign" };
1429
+ const secondary =
1430
+ useClaude && installedHosts.includes("Codex")
1431
+ ? { label: "Codex", cmd: "codex", slash: "/sellable:create-campaign" }
1432
+ : null;
1433
+
1434
+ console.log(
1435
+ ` ${C.bold}Try it now${C.reset} ${C.grey}(in a new terminal)${C.reset}`
1436
+ );
1437
+ console.log("");
1438
+ console.log(` ${C.grey}1.${C.reset} Open ${primary.label}:`);
1439
+ console.log("");
1440
+ console.log(` ${C.cyan}${primary.cmd}${C.reset}`);
1441
+ console.log("");
1442
+ console.log(` ${C.grey}2.${C.reset} Type this and hit enter:`);
1443
+ console.log("");
1444
+ console.log(` ${C.cyan}${primary.slash}${C.reset}`);
1445
+ console.log("");
1446
+ console.log(
1447
+ ` ${C.grey}First time? Sellable signs you up automatically — just answer in chat.${C.reset}`
1448
+ );
1449
+
1450
+ if (secondary) {
1451
+ console.log("");
1431
1452
  console.log(
1432
- ` 2. Verify auth later with: ${C.cyan}sellable --verify-only --host all${C.reset}`
1453
+ ` ${C.grey}Prefer ${secondary.label}? Run ${C.reset}${C.cyan}${secondary.cmd}${C.reset}${C.grey} and type ${C.reset}${C.cyan}${secondary.slash}${C.reset}${C.grey}.${C.reset}`
1433
1454
  );
1434
1455
  }
1456
+
1457
+ console.log("");
1458
+ printDivider();
1459
+ console.log("");
1460
+ console.log(
1461
+ ` Verify install: ${C.cyan}sellable --verify-only --host all${C.reset}`
1462
+ );
1463
+ console.log(` Need help?`);
1464
+ console.log(
1465
+ ` Slack: ${C.cyan}https://join.slack.com/t/ditttoai/shared_invite/zt-3wvs86yau-csKZGP3iGXO3oEiAUmtH9A${C.reset}`
1466
+ );
1467
+ console.log(` Email: ${C.cyan}admin@dittto.ai${C.reset}`);
1435
1468
  console.log("");
1436
1469
  }
1437
1470
 
@@ -1514,7 +1547,7 @@ async function main() {
1514
1547
  verify(opts);
1515
1548
  }
1516
1549
 
1517
- if (!opts.verifyOnly && !opts.dryRun) {
1550
+ if (!opts.verifyOnly) {
1518
1551
  printNextSteps(installedHosts);
1519
1552
  }
1520
1553
  } catch (error) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/install",
3
- "version": "0.1.30",
3
+ "version": "0.1.31",
4
4
  "type": "module",
5
5
  "description": "One-command installer for Sellable MCP in Claude Code and Codex",
6
6
  "bin": {