@sellable/install 0.1.11 → 0.1.13

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.
@@ -15,8 +15,14 @@ import { createInterface } from "node:readline/promises";
15
15
  const DEFAULT_API_URL = "https://app.sellable.dev";
16
16
  const DEFAULT_SERVER_PACKAGE =
17
17
  process.env.SELLABLE_MCP_PACKAGE || "@sellable/mcp";
18
- const CODEX_PLUGIN_VERSION = "0.1.11";
19
- const CODEX_PLUGIN_COMPAT_VERSIONS = ["0.1.8", "0.1.9", "0.1.10"];
18
+ const CODEX_PLUGIN_VERSION = "0.1.13";
19
+ const CODEX_PLUGIN_COMPAT_VERSIONS = [
20
+ "0.1.8",
21
+ "0.1.9",
22
+ "0.1.10",
23
+ "0.1.11",
24
+ "0.1.12",
25
+ ];
20
26
  const INSTALL_PACKAGE_SPEC = `@sellable/install@${CODEX_PLUGIN_VERSION}`;
21
27
 
22
28
  function usage() {
@@ -460,9 +466,9 @@ instruction loading, file lookup, plugin cache versions, missing linked files,
460
466
  or tool discovery. Start in product language:
461
467
 
462
468
  \`\`\`text
463
- I’ll build this as an approval-gated Sellable campaign. First I’ll confirm who
464
- we’re launching for, then I’ll use the quick question panel to collect the
465
- campaign choices before anything is created.
469
+ I’ll build this as an approval-gated Sellable campaign. First I’ll ask who you
470
+ are, use your LinkedIn or company site to understand the company, then confirm
471
+ the sender before anything is created.
466
472
  \`\`\`
467
473
 
468
474
  If a linked/local skill file is stale or missing, silently use the installed
@@ -519,8 +525,10 @@ loading, or skill file versions.
519
525
 
520
526
  Do not treat the active Sellable workspace as the campaign subject. The
521
527
  workspace only tells you where the campaign will be saved. Before buyer, CTA,
522
- proof, or source questions, identify and confirm who the campaign is launching
523
- for.
528
+ proof, or source questions, identify two things:
529
+
530
+ 1. who/what company this campaign is for, and
531
+ 2. who the LinkedIn messages should send from.
524
532
 
525
533
  If the user supplied a LinkedIn profile, website, domain, company name, or
526
534
  sender name in the invocation, do one lightweight lookup first:
@@ -532,28 +540,76 @@ sender name in the invocation, do one lightweight lookup first:
532
540
  \`mcp__sellable__enrich_sender\`.
533
541
 
534
542
  Then summarize what you found in one or two lines and ask the user to confirm
535
- the launch identity before continuing.
543
+ the campaign subject and sender before continuing.
544
+
545
+ If the user did not provide the launch identity, quietly call
546
+ \`mcp__sellable__list_senders\` once if available. This is a shortcut to deduce
547
+ who the user might be from their Sellable API token and connected LinkedIn
548
+ accounts. Do not present it as a sender picker yet. If there is one strong
549
+ likely sender, use \`mcp__sellable__enrich_sender\` to infer their current or
550
+ most recent company, then ask:
551
+
552
+ The customer-facing shape should be:
553
+
554
+ \`\`\`text
555
+ I’m ready to build this in {workspace}. I found {matched sender} connected here.
536
556
 
537
- If the user did not provide the launch identity, make the first quick question
538
- panel an identity gate. Ask who we are launching for, with options like:
557
+ Is that you, and is this campaign for {company}?
558
+ \`\`\`
559
+
560
+ If there is no strong sender match, make the first quick question panel ask for
561
+ the user's LinkedIn URL or company website. The point of this gate is not "pick
562
+ a sender"; it is to learn who the user is, infer the current or most recent
563
+ company, and then confirm who we are sending from. The customer-facing shape
564
+ should be:
565
+
566
+ \`\`\`text
567
+ I’m ready to build this in {workspace}.
568
+
569
+ First, what’s your LinkedIn URL? If you’d rather start from the company, paste
570
+ the company website instead.
571
+ \`\`\`
572
+
573
+ The LinkedIn/company identity gate should ask:
574
+
575
+ 1. \`What’s your LinkedIn URL?\` Options: \`I’ll paste my LinkedIn profile\`,
576
+ \`I’ll paste the company website instead\`, \`Other / custom\`.
577
+
578
+ After that answer, do the lightweight lookup. For a LinkedIn profile, call
579
+ \`mcp__sellable__fetch_linkedin_profile\` and infer the user's current or most
580
+ recent company from the profile. For a company website, call
581
+ \`mcp__sellable__fetch_company\` when possible, otherwise one web lookup.
582
+
583
+ If \`mcp__sellable__list_senders\` did not already run, call it once after the
584
+ lookup to see whether the fetched user appears to match a connected sender. If
585
+ there is a likely match, ask:
586
+
587
+ \`\`\`text
588
+ Cool — are you {matched sender}, and is this campaign for {company}?
589
+ \`\`\`
590
+
591
+ If there is no likely sender match, ask:
592
+
593
+ \`\`\`text
594
+ Cool — I have this campaign as {company}. Who should the LinkedIn messages send from?
595
+ \`\`\`
539
596
 
540
- 1. Use one of my connected Sellable senders
541
- 2. I’ll paste a LinkedIn profile
542
- 3. I’ll paste a company website/domain
543
- 4. Other / custom
597
+ Sender options should include connected sender names if available, \`same as
598
+ me\`, \`I’ll paste a different sender profile\`, and \`Other / custom\`.
544
599
 
545
- After that answer, do the lightweight lookup, confirm the company/sender
546
- context, then ask the campaign setup questions. The setup questions should use
547
- the confirmed company context so they do not feel generic.
600
+ After the user confirms the subject and sender, run one lightweight company
601
+ lookup if it has not already run, then ask the campaign setup questions. The
602
+ setup questions should use the confirmed company context so they do not feel
603
+ generic.
548
604
 
549
605
  Before the identity gate, use this customer-facing shape:
550
606
 
551
607
  \`\`\`text
552
608
  I’m ready to build the campaign in {workspace}.
553
609
 
554
- First I need to confirm who we’re launching for. If you give me a LinkedIn
555
- profile or company website, I’ll use that to understand the company, then I’ll
556
- confirm it with you before we pick the target, offer, proof, and lead source.
610
+ First I’ll check whether your Sellable token already tells me who you are. If
611
+ not, I’ll ask for your LinkedIn URL or company website, look it up, then confirm
612
+ the company and sender before we pick the target, offer, proof, and lead source.
557
613
 
558
614
  Then I’ll turn that into a campaign brief for you to approve before anything is created.
559
615
  \`\`\`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/install",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "type": "module",
5
5
  "description": "One-command installer for Sellable MCP in Claude Code and Codex",
6
6
  "bin": {