@sellable/mcp 0.1.102 → 0.1.103

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.
@@ -319,7 +319,8 @@ export function listSubskillPrompts(limit, includePublic, includeInternal) {
319
319
  };
320
320
  }
321
321
  function markSubskillPromptLoaded(subskillName) {
322
- if (subskillName === "create-campaign" || subskillName === "create-campaign-v2") {
322
+ if (subskillName === "create-campaign" ||
323
+ subskillName === "create-campaign-v2") {
323
324
  markCreateCampaignPromptLoaded();
324
325
  }
325
326
  if (subskillName === "research") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.102",
3
+ "version": "0.1.103",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",
@@ -42,17 +42,17 @@ order (all before waiting for the user):
42
42
  connected sender to attach. Attach only the chosen sender. In explicit UAT
43
43
  safe mode, auto-select only the safe mock sender; never select a real sender.
44
44
  7. Call `update_campaign({ campaignId, senderIds: [selectedSenderId],
45
- currentStep: "sequence" })` to attach the sender via the v3 senders route and
45
+ currentStep: "sequence" })` to attach the sender via the v3 senders route and
46
46
  move the watch link to Sequence.
47
47
  8. Call `attach_recommended_sequence({ campaignId, currentStep: "send" })` to
48
48
  bind the tier-aware recommended sequence. If that response does not persist
49
49
  `currentStep: "send"`, call `update_campaign({ campaignId, currentStep:
50
- "send" })`.
50
+ "send" })`.
51
51
  9. Re-surface the `watchUrl` using the exact block in
52
52
  `references/watch-link-handoff.md`.
53
53
  10. Surface the `handoff.orientation` string from `auto-execute.yaml`
54
- alongside the watch link so the user sees both the link and the
55
- "what to do next" sentence.
54
+ alongside the watch link so the user sees both the link and the
55
+ "what to do next" sentence.
56
56
  11. Ask the final launch greenlight with the structured question function:
57
57
  Start campaign, Review campaign first, or Pause here.
58
58
  12. STOP unless the user explicitly chooses Start campaign. Do not call
@@ -117,7 +117,7 @@ order, atomically:
117
117
  2. **Validate sender + sequence state.** If no sender is attached, refuse start
118
118
  and return the Settings link. If no sequence is attached but a sender is
119
119
  attached, call `attach_recommended_sequence({ campaignId, currentStep:
120
- "send" })` before approving messages.
120
+ "send" })` before approving messages.
121
121
  3. **Bulk-approve queued messages** via the existing endpoint
122
122
  `POST /api/v3/workflow-tables/cells/approve-batch` with
123
123
  `{ tableId }`.
@@ -313,6 +313,13 @@ awaiting-user-greenlight, or start-campaign. It must hand off as
313
313
  `sample_revision_required` with the observed counts so the user can decide
314
314
  whether the source or filter should change.
315
315
 
316
+ If the same source lane has already failed after a revision, do not present
317
+ another same-source revision as the recommended/default next action. Recommend
318
+ the strongest fallback lane first (for example, Sales Nav after repeated
319
+ Signals underfloor results), then offer revise-filter only if the imported rows
320
+ look close to ICP but the rubric is too strict. This prevents customer-visible
321
+ loops where the agent keeps asking to retry the same weak source.
322
+
316
323
  When the sample passes the projected-pass floor, call
317
324
  `update_campaign({ campaignId, currentStep: "auto-execute-messaging" })`
318
325
  and orient the user that messaging will complete for the review batch only.
@@ -435,7 +442,7 @@ Shape:
435
442
  sender to attach. Attach only after the user chooses. In explicit UAT safe
436
443
  mode, use only the safe mock sender; never pick a real sender.
437
444
  7. Call `update_campaign({ campaignId, senderIds: [selectedSenderId],
438
- currentStep: "sequence" })` to attach the sender through the v3 senders
445
+ currentStep: "sequence" })` to attach the sender through the v3 senders
439
446
  route and orient the watch link to Sequence.
440
447
  8. Call `attach_recommended_sequence({ campaignId, currentStep: "send" })`
441
448
  (bind the tier-recommended sequence to the campaign). If the tool response
@@ -443,15 +450,15 @@ Shape:
443
450
  `update_campaign({ campaignId, currentStep: "send" })`.
444
451
  9. Re-surface the `watchUrl` using `references/watch-link-handoff.md`.
445
452
  10. Surface the `handoff.orientation` string from `auto-execute.yaml`
446
- alongside the link.
453
+ alongside the link.
447
454
  11. Ask the final launch greenlight with the structured question function:
448
- Start campaign, Review campaign first, or Pause here.
455
+ Start campaign, Review campaign first, or Pause here.
449
456
  12. STOP unless the user explicitly chooses Start campaign. Do NOT call
450
- `start_campaign` from Step 16 itself; that belongs only to the Claude
451
- greenlight path. The autonomous tail ends here.
457
+ `start_campaign` from Step 16 itself; that belongs only to the Claude
458
+ greenlight path. The autonomous tail ends here.
452
459
  13. Make the credit boundary explicit in the handoff: only the first review
453
- batch has been enriched/messaged; expanding to more leads requires a
454
- separate user instruction.
460
+ batch has been enriched/messaged; expanding to more leads requires a
461
+ separate user instruction.
455
462
 
456
463
  Two equally valid greenlight channels take Step 16 into a running
457
464
  campaign: