@sellable/mcp 0.1.354 → 0.1.356

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.354",
3
+ "version": "0.1.356",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",
@@ -57,6 +57,11 @@ For full/customer-visible setup, the first operational command is always
57
57
  for operator understanding, but do not create/reuse/repair campaign shells,
58
58
  source rows, messages, sequence, approvals, or cleanup before the command-backed
59
59
  plan returns lane packets.
60
+ If `setup_evergreen_campaigns` is unavailable, returns 404, throws an API
61
+ error, or does not return a current `planRevision` with lane packets, stop
62
+ immediately with `blocked: setup_evergreen_campaigns_unavailable`. Do not fall
63
+ back to ad hoc create-campaign calls, inventory-only guesses, or direct shell
64
+ creation when the command-backed plan is missing.
60
65
 
61
66
  Plan shape:
62
67
 
@@ -127,7 +132,23 @@ and postconditions. Workers must use the create-campaign workflow and
127
132
  create-campaign workflow/subskills for campaign creation/setup, source/import,
128
133
  filter choice, Message Drafting, packaged `generate-messages`, sequence
129
134
  attachment, and send-review readiness. Do not rebuild those steps ad hoc in the
130
- parent thread.
135
+ parent thread. The parent thread is only the planner, dispatcher, verifier, and
136
+ receipt collector: it must not call `create_campaign`, `import_leads`,
137
+ `start_campaign_message_preparation`, `update_cell`, or sequence-attach tools
138
+ for a lane that was assigned to a worker. When the host supports branch
139
+ execution, Task/subagent, or separate Codex threads, assign one lane packet per
140
+ worker and run the lane workers in parallel. If the host cannot run parallel
141
+ workers, report `blocked: missing_parallel_lane_worker_runtime` instead of
142
+ silently doing all lane creation sequentially in the parent thread.
143
+ Short form: the parent thread is the planner, dispatcher, verifier, and receipt collector.
144
+ Before the first mutating lane action, complete an execution-runtime preflight:
145
+ name the callable worker surface/tool that will run lane packets (for example
146
+ Task/subagent, branch worker, separate Codex thread, or an equivalent explicit
147
+ worker runtime). If you cannot name a real callable worker runtime, stop with
148
+ `blocked: missing_parallel_lane_worker_runtime` before calling
149
+ `create_campaign`, `update_campaign`, `import_leads`, `confirm_lead_list`, or
150
+ any source/message/sequence mutation. Creating campaign shells first and then
151
+ discovering the worker runtime is missing is a failed run.
131
152
 
132
153
  For any lane with `intent:"create"`, the worker must satisfy the normal
133
154
  net-new create-campaign preflight before shell creation: load
@@ -173,15 +194,18 @@ If any required field is missing, report
173
194
  `blocked: missing_create_campaign_step_receipt` for that lane and do not call it
174
195
  complete.
175
196
 
176
- Each customer-visible lane receipt must also include
177
- message proof from `watchNarration.workerDetails.messageDraftBuilder` or the
178
- worker's equivalent handoff record. Valid message proof names the current
179
- campaign id, workflowTableId, selected lead-list or source id, filter choice,
180
- review-batch row ids/hash, and either `statusSource:"branch"` or
181
- `statusSource:"parent-thread-fallback"`. It must prove the worker loaded the
182
- full packaged prompt with `get_subskill_prompt({ subskillName:"generate-messages"`
183
- until `hasMore:false`, loaded the required message assets, and loaded
184
- `create-campaign-v2-validation` before returning a `messageDraftRecommendation`.
197
+ Each customer-visible lane receipt must also include message proof from
198
+ `watchNarration.workerDetails.messageDraftBuilder` or the worker's equivalent
199
+ branch handoff record. Valid evergreen message proof names the current campaign
200
+ id, workflowTableId, selected lead-list or source id, filter choice, and
201
+ review-batch row ids/hash, and it must use `statusSource:"branch"`.
202
+ `statusSource:"parent-thread-fallback"` is not accepted for evergreen
203
+ customer-visible completion because it can be a parent summary rather than proof
204
+ that the create-campaign Message Drafting branch actually ran. The proof must
205
+ show the worker loaded the full packaged prompt with
206
+ `get_subskill_prompt({ subskillName:"generate-messages"` until `hasMore:false`,
207
+ loaded the required message assets, and loaded `create-campaign-v2-validation`
208
+ before returning a `messageDraftRecommendation`.
185
209
  The receipt must also include `validationResult:"passed"`, a passed
186
210
  quality-review object, and at least 3 concrete reviewed sample messages with
187
211
  row ids, generated message text, pass verdicts, and no issues. Shared Cold
@@ -279,9 +303,8 @@ Parent-thread handwritten copy or setting `currentStep` is not proof.
279
303
  not a substitute. The proof receipt must show
280
304
  `get_subskill_prompt({ subskillName:"generate-messages"` was loaded until
281
305
  `hasMore:false`, required message assets were loaded, and
282
- `create-campaign-v2-validation` ran through either
283
- `workerDetails.messageDraftBuilder` with `statusSource:"branch"` or an
284
- inline `statusSource:"parent-thread-fallback"` receipt. The generated-message
306
+ `create-campaign-v2-validation` ran through
307
+ `workerDetails.messageDraftBuilder` with `statusSource:"branch"`. The generated-message
285
308
  cells are not prompt proof; `currentRevisionGeneratedMessages` and row
286
309
  previews are only downstream cell evidence. The proof must include
287
310
  `validationResult:"passed"`, a passed quality review, and at least 3