@sellable/mcp 0.1.356 → 0.1.357

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.356",
3
+ "version": "0.1.357",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",
@@ -194,6 +194,17 @@ If any required field is missing, report
194
194
  `blocked: missing_create_campaign_step_receipt` for that lane and do not call it
195
195
  complete.
196
196
 
197
+ One lane may produce exactly one CampaignOffer/campaign id and one current
198
+ workflow table id. For `intent:"create"`, the first successful
199
+ `create_campaign` result establishes the lane's only allowed campaign/table
200
+ target. Every later source/import/confirm/message/filter/sequence/readback call
201
+ must use that same campaign id and current workflow table id. If any tool
202
+ returns or creates a different CampaignOffer, workflow table, "Campaign from
203
+ Source" campaign, or shell for the same lane, stop immediately with
204
+ `blocked: duplicate_campaign_offer_created`, include both ids in the receipt,
205
+ and do not report completion. Do not hide the earlier shell by reporting only
206
+ the later imported campaign.
207
+
197
208
  Each customer-visible lane receipt must also include message proof from
198
209
  `watchNarration.workerDetails.messageDraftBuilder` or the worker's equivalent
199
210
  branch handoff record. Valid evergreen message proof names the current campaign
@@ -224,9 +235,17 @@ create-campaign Message Drafting branch ran. If this receipt is missing, report
224
235
  `blocked: missing_message_drafting_receipt` and do not call the lane complete.
225
236
 
226
237
  The parent then calls
227
- `setup_evergreen_campaigns({ mode:"verify", planRevision, selectedActionIds,
228
- receipts })` and report only verified completion. If verify blocks, report the
229
- blocker and repair only the missing postconditions from the same current plan.
238
+ `setup_evergreen_campaigns({ mode:"verify", postEngagerSenderIds,
239
+ sharedSenderIds, planRevision, selectedActionIds, receipts })` using the same
240
+ sender scopes as the plan call, and reports only verified completion. A verify
241
+ call without the same sender scopes can recompute an empty or different plan and
242
+ is invalid proof. After verify succeeds, rerun
243
+ `setup_evergreen_campaigns({ mode:"plan", postEngagerSenderIds,
244
+ sharedSenderIds, yolo:true })` without explicit campaign/table bindings. That
245
+ idempotency plan must return `intent:"reuse"` for every completed lane and no
246
+ duplicate-lane blockers before you call the command finished. If verify blocks,
247
+ report the blocker and repair only the missing postconditions from the same
248
+ current plan.
230
249
 
231
250
  Message proof for every customer-visible lane must come from the current
232
251
  campaign/table basis and include at least 3 generated review rows from the