@sellable/install 0.1.31 → 0.1.35

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,9 +1394,7 @@ function verify(opts) {
1394
1394
  function printNextSteps(installedHosts) {
1395
1395
  console.log("");
1396
1396
  printDivider();
1397
- console.log(
1398
- ` ${C.bold}You're set. Let's launch your first campaign.${C.reset}`
1399
- );
1397
+ console.log(` ${C.bold}Done.${C.reset}`);
1400
1398
  printDivider();
1401
1399
  console.log("");
1402
1400
 
@@ -1418,53 +1416,39 @@ function printNextSteps(installedHosts) {
1418
1416
  return;
1419
1417
  }
1420
1418
 
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;
1419
+ const hasClaude = installedHosts.includes("Claude Code");
1420
+ const hasCodex = installedHosts.includes("Codex");
1433
1421
 
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) {
1422
+ if (hasClaude && hasCodex) {
1423
+ console.log(` ${C.bold}Open Claude Code or Codex and run:${C.reset}`);
1451
1424
  console.log("");
1452
1425
  console.log(
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}`
1426
+ ` ${C.cyan}/sellable:create-campaign${C.reset} ${C.grey}(Claude Code)${C.reset}`
1427
+ );
1428
+ console.log(
1429
+ ` ${C.cyan}$sellable:create-campaign${C.reset} ${C.grey}(Codex)${C.reset}`
1454
1430
  );
1431
+ } else if (hasClaude) {
1432
+ console.log(` ${C.bold}Open Claude Code and run:${C.reset}`);
1433
+ console.log("");
1434
+ console.log(` ${C.cyan}/sellable:create-campaign${C.reset}`);
1435
+ } else {
1436
+ console.log(` ${C.bold}Open Codex and run:${C.reset}`);
1437
+ console.log("");
1438
+ console.log(` ${C.cyan}$sellable:create-campaign${C.reset}`);
1455
1439
  }
1456
1440
 
1457
- console.log("");
1458
- printDivider();
1459
1441
  console.log("");
1460
1442
  console.log(
1461
- ` Verify install: ${C.cyan}sellable --verify-only --host all${C.reset}`
1443
+ ` ${C.grey}First time? The agent will sign you up — just answer in chat.${C.reset}`
1462
1444
  );
1463
- console.log(` Need help?`);
1445
+
1446
+ console.log("");
1447
+ printDivider();
1448
+ console.log("");
1464
1449
  console.log(
1465
- ` Slack: ${C.cyan}https://join.slack.com/t/ditttoai/shared_invite/zt-3wvs86yau-csKZGP3iGXO3oEiAUmtH9A${C.reset}`
1450
+ ` ${C.grey}Need help?${C.reset} ${C.cyan}https://join.slack.com/t/ditttoai/shared_invite/zt-3wvs86yau-csKZGP3iGXO3oEiAUmtH9A${C.reset} ${C.grey}·${C.reset} ${C.cyan}admin@dittto.ai${C.reset}`
1466
1451
  );
1467
- console.log(` Email: ${C.cyan}admin@dittto.ai${C.reset}`);
1468
1452
  console.log("");
1469
1453
  }
1470
1454
 
@@ -1504,7 +1488,7 @@ async function main() {
1504
1488
  const authResult = writeAuth(opts);
1505
1489
  installSelfShim(opts);
1506
1490
  if (authResult.reused) {
1507
- logMilestone(`Using existing auth config: ${authPath()}`);
1491
+ logMilestone("Auth ready");
1508
1492
  } else if (authResult.written) {
1509
1493
  logMilestone(`Authenticated (workspace: ${opts.workspaceId})`);
1510
1494
  } else {
@@ -1516,26 +1500,22 @@ async function main() {
1516
1500
  if (opts.host === "claude" || opts.host === "all") {
1517
1501
  if (installClaude(opts)) {
1518
1502
  installedHosts.push("Claude Code");
1519
- logMilestone("Claude Code MCP server registered");
1520
1503
  }
1521
1504
  }
1522
1505
  if (opts.host === "codex" || opts.host === "all") {
1523
1506
  const result = installCodex(opts);
1524
1507
  if (result.installed) {
1525
1508
  installedHosts.push("Codex");
1526
- logMilestone("Codex MCP server registered");
1527
- logMilestone(
1528
- `Codex Desktop plugin installed (sellable@sellable v${CODEX_PLUGIN_VERSION})`
1529
- );
1530
- logMilestone(
1531
- "Skill bundle: create-campaign, engage, interview, workflow-sequences"
1532
- );
1533
- if (result.compatCount) {
1534
- logMilestone(
1535
- `Backwards-compat cache linked (${result.compatCount} versions → symlinked, no copy)`
1536
- );
1537
- }
1538
- logMilestone("Codex Default-mode request_user_input enabled");
1509
+ }
1510
+ }
1511
+
1512
+ if (installedHosts.length > 0) {
1513
+ logMilestone(
1514
+ `MCP servers registered (${installedHosts.join(" + ")})`
1515
+ );
1516
+ if (installedHosts.includes("Codex")) {
1517
+ logMilestone("Codex Desktop plugin installed");
1518
+ logMilestone("Skills installed");
1539
1519
  }
1540
1520
  }
1541
1521
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/install",
3
- "version": "0.1.31",
3
+ "version": "0.1.35",
4
4
  "type": "module",
5
5
  "description": "One-command installer for Sellable MCP in Claude Code and Codex",
6
6
  "bin": {