@sellable/install 0.1.233 → 0.1.235

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.
@@ -37,7 +37,7 @@ function getInstallVersion() {
37
37
  }
38
38
  }
39
39
 
40
- const CODEX_PLUGIN_VERSION = "0.1.50";
40
+ const CODEX_PLUGIN_VERSION = "0.1.51";
41
41
  const CODEX_PLUGIN_COMPAT_VERSIONS = [
42
42
  "0.1.8",
43
43
  "0.1.9",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/install",
3
- "version": "0.1.233",
3
+ "version": "0.1.235",
4
4
  "type": "module",
5
5
  "description": "One-command installer for Sellable MCP in Claude Code and Codex",
6
6
  "bin": {
@@ -344,17 +344,29 @@ not a parent-thread summary. The receipt must include:
344
344
  `senderIds`, or non-empty `senderIdentityBasis`, plus `identityBasis`.
345
345
  - `campaignBriefReceipt`: the CampaignOffer/campaign id, current
346
346
  workflowTableId, brief hash or updated-at marker, delivery format, token
347
- rules, hard avoids, source-use rules, and first-message template state. If
348
- the tool output uses `approvedFirstMessageTemplate`, copy it to canonical
349
- `firstMessageTemplate`; if it uses `deliveryFormatIncluded`,
350
- `tokenRulesIncluded`, `hardAvoidsIncluded`, or `sourceUseRulesIncluded`, copy
351
- those to canonical `deliveryFormat`, `tokenRules`, `hardAvoids`, and
352
- `sourceUseRules`. Before the worker exits, the durable JSON must contain the
353
- exact canonical leaf keys `briefHash`, `deliveryFormat`, `tokenRules`,
354
- `hardAvoids`, `sourceUseRules`, and `firstMessageTemplate` inside
355
- `createCampaignStepReceipt.campaignBriefReceipt`; do not leave those only in
347
+ rules, hard avoids, source-use rules, and lane-appropriate first-message
348
+ state. Post Engagers lanes require `campaignBriefReceipt.firstMessageTemplate`
349
+ because they are sender-owned warm lanes. Shared Signal Discovery and Shared
350
+ Cold Fallback lanes must not set `campaignBriefReceipt.firstMessageTemplate`;
351
+ instead set `campaignBriefReceipt.firstMessageTemplateState` to the exact
352
+ no-preset marker
353
+ `not preset; generate-messages branch selected the final message approach`.
354
+ If the tool output uses `approvedFirstMessageTemplate`, copy it to canonical
355
+ `firstMessageTemplate` only for Post Engagers lanes. For shared lanes, treat a
356
+ raw approved template as a quality issue unless it is only a no-preset or
357
+ generate-messages state marker. If the tool output uses
358
+ `deliveryFormatIncluded`, `tokenRulesIncluded`, `hardAvoidsIncluded`, or
359
+ `sourceUseRulesIncluded`, copy those to canonical `deliveryFormat`,
360
+ `tokenRules`, `hardAvoids`, and `sourceUseRules`. Before the worker exits, the
361
+ durable JSON must contain the exact canonical leaf keys `briefHash`,
362
+ `deliveryFormat`, `tokenRules`, `hardAvoids`, and `sourceUseRules` inside
363
+ `createCampaignStepReceipt.campaignBriefReceipt`, plus
364
+ `firstMessageTemplate` only for Post Engagers lanes or
365
+ `firstMessageTemplateState` for shared lanes; do not leave those only in
356
366
  narrative text, `briefIncludes`, `currentApprovedBriefHash`, or other aliases
357
367
  for the parent/verifier to infer.
368
+ Short form: Post Engagers lanes require `campaignBriefReceipt.firstMessageTemplate`.
369
+ Short form: Shared Signal Discovery and Shared Cold Fallback lanes must not set `campaignBriefReceipt.firstMessageTemplate`.
358
370
  - `sourceDecisionReceipt`: selected source/list id, provider, cursor/inventory
359
371
  state, import/copy caps, explicit `dedupeDncProviderExclusions:true` or an
360
372
  equivalent exclusions object, row ids or row-count evidence (`rowCount`,
@@ -419,9 +431,10 @@ before writing JSON; do not leave only raw objects like
419
431
  Self-check shorthand: top-level `planRevision`, `actionId`, `laneKey`, `laneType`, `workspaceId`, and `senderIds` must exist before worker completion.
420
432
  Self-check shorthand: `campaignBriefReceipt.briefHash`,
421
433
  `campaignBriefReceipt.deliveryFormat`, `campaignBriefReceipt.tokenRules`,
422
- `campaignBriefReceipt.hardAvoids`, `campaignBriefReceipt.sourceUseRules`, and
423
- `campaignBriefReceipt.firstMessageTemplate` must exist as exact canonical keys
424
- before worker completion.
434
+ `campaignBriefReceipt.hardAvoids`, and `campaignBriefReceipt.sourceUseRules`
435
+ must exist as exact canonical keys before worker completion, plus
436
+ `campaignBriefReceipt.firstMessageTemplate` only for Post Engagers lanes and
437
+ `campaignBriefReceipt.firstMessageTemplateState` for shared lanes.
425
438
  Self-check shorthand: `sourceDecisionReceipt.dedupeDncProviderExclusions`,
426
439
  `sourceDecisionReceipt.sourceLadderReason`, and one of
427
440
  `sourceDecisionReceipt.rowCount`, `sourceDecisionReceipt.rowIdsHash`, or
@@ -493,7 +506,8 @@ verification unless the same object also appears inside
493
506
  "tokenRules": true,
494
507
  "hardAvoids": true,
495
508
  "sourceUseRules": true,
496
- "firstMessageTemplate": "<template or template state>"
509
+ "firstMessageTemplate": "<Post Engagers only warm template; omit for shared lanes>",
510
+ "firstMessageTemplateState": "<Shared lanes only: not preset; generate-messages branch selected the final message approach>"
497
511
  },
498
512
  "sourceDecisionReceipt": {
499
513
  "sourceId": "<source id>",
@@ -646,6 +660,11 @@ such as "my post", "thanks for showing support", "saw you pop up", or any copy
646
660
  that implies the sending sender authored the source post or personally received
647
661
  the prospect's engagement unless the selected source evidence proves that exact
648
662
  sender authored the post.
663
+ Shared lanes must reject generic product-summary samples that explain the
664
+ product in the same broad words for every row. Shared lanes must reject three
665
+ nearly identical samples after stripping the leading name. If either failure
666
+ appears, revise or rerun the packaged create-campaign/generate-messages path
667
+ from the lane worker before writing a success receipt.
649
668
  The generated-message cells are not prompt proof: `currentRevisionGeneratedMessages`,
650
669
  Generate Message column counts, `messagesCount`, or rendered row previews prove
651
670
  only that table cells exist from the current brief/template, not that the
@@ -678,6 +697,15 @@ Parent-thread handwritten copy or setting `currentStep` is not proof.
678
697
  - Post Engagers lanes: that sender's ID only. Shared lanes: all the senders' IDs.
679
698
  - The brief and message direction are lane-specific. Never reuse the Post
680
699
  Engagers opening for Shared Cold Fallback.
700
+ - The warm post-engager first-message template is allowed only for
701
+ sender-owned Post Engagers lanes. Do not pass the warm template into Shared
702
+ Signal Discovery or Shared Cold Fallback; those shared lanes must arrive at
703
+ their copy through Message Drafting and generated-message validation.
704
+ Short form: warm post-engager first-message template is allowed only for sender-owned Post Engagers lanes.
705
+ Short form: Do not pass the warm template into Shared Signal Discovery or Shared Cold Fallback.
706
+ Short form: Shared lanes must reject generic product-summary samples.
707
+ Short form: Shared lanes must reject three nearly identical samples.
708
+ Short form: revise or rerun the packaged create-campaign/generate-messages path.
681
709
  - **Post Engagers** first-message style: short, casual, references the
682
710
  sender-authored post they engaged with, closed question, **no internal
683
711
  vocabulary, no pitch, no meeting ask** in message one:
@@ -696,13 +724,20 @@ Parent-thread handwritten copy or setting `currentStep` is not proof.
696
724
  "my post" unless the selected source post was actually authored by the
697
725
  sending sender. Do not thank the prospect for showing support, reacting,
698
726
  commenting, or popping up unless this is a sender-owned Post Engagers lane
699
- with sender-authored source evidence.
727
+ with sender-authored source evidence. When the shared lane has multiple
728
+ senders, the copy must be safe for every attached sender to send. Do not
729
+ use founder-only first person such as "I'm building", "my company", "my
730
+ team", or "I have a framework" unless every attached sender can credibly
731
+ say it. Prefer sender-agnostic company/team language such as "we're
732
+ helping CX teams..." or "at cxconnect.ai, we help..." and one clear
733
+ problem question.
700
734
  - **Shared Cold Fallback** first-message style: cold, direct, and cohesive.
701
735
  It must not pretend there was engagement, must not say "saw you pop up",
702
736
  and must not use a standalone name line followed by "Hey there" or other
703
737
  generic greeting. It should open with a light role/company/problem
704
- observation, avoid awkward phrases like "looks like a team where", and ask
705
- one clear problem question. This is a single-message
738
+ observation, avoid awkward phrases like "looks like a team where", avoid
739
+ founder-only first person unless every attached sender can credibly say it,
740
+ and ask one clear problem question. This is a single-message
706
741
  cold path unless the approved create-campaign message workflow proves a
707
742
  better delivery format.
708
743
  - Every customer-visible lane must run Message Drafting from the current
@@ -731,7 +766,10 @@ Parent-thread handwritten copy or setting `currentStep` is not proof.
731
766
  already launched and must be reported separately, and `ARCHIVED` must be
732
767
  repaired only when the prompt explicitly allows dashboard visibility repair.
733
768
  - A full campaign brief exists, including delivery format, token rules,
734
- hard avoids, source-use rules, and the approved first-message template.
769
+ hard avoids, and source-use rules. Post Engagers require an approved warm
770
+ first-message template. Shared Signal Discovery and Shared Cold Fallback
771
+ require `firstMessageTemplateState` with the no-preset generate-messages
772
+ marker instead of a copied first-message template.
735
773
  - A source/list decision has been resolved and campaign rows are loaded. If
736
774
  there is no approved source or no rows can be copied, report `blocked` with
737
775
  the missing source detail; do not call the campaign complete.
@@ -753,10 +791,13 @@ Parent-thread handwritten copy or setting `currentStep` is not proof.
753
791
  `get_campaign_message_preparation_status`. The generated-message cells are
754
792
  not prompt proof; `currentRevisionGeneratedMessages` and row previews are
755
793
  only downstream cell evidence. The proof must include
756
- `validationResult:"passed"`, a passed quality review, and at least 3
757
- reviewed sample messages. For Shared Cold Fallback, reject samples that
758
- open with a standalone name followed by "Hey there" or a similarly generic
759
- greeting.
794
+ `validationResult:"passed"`, a passed quality review, and at least 3
795
+ reviewed sample messages. For Shared Cold Fallback, reject samples that
796
+ open with a standalone name followed by "Hey there" or a similarly generic
797
+ greeting. For all shared lanes, reject generic product-summary samples,
798
+ repeated near-identical samples, and any preserved Post Engagers opener;
799
+ revise or rerun the packaged create-campaign/generate-messages path before
800
+ reporting completion.
760
801
  - The first review batch exists and at least 3 review rows have generated
761
802
  messages from the approved brief. If fewer than 3 usable rows exist, report
762
803
  the actual count and why.