@sellable/mcp 0.1.357 → 0.1.358
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.
|
@@ -6,7 +6,7 @@ async function postSetupEvergreenCampaigns(body) {
|
|
|
6
6
|
export const setupEvergreenCampaignsToolDefinitions = [
|
|
7
7
|
{
|
|
8
8
|
name: "setup_evergreen_campaigns",
|
|
9
|
-
description: "Evergreen campaign setup plan/verify command. Use plan mode first to inspect exact workspace/sender/campaign/table/source state and receive immutable lane packets. `selectedSenderIds` is a legacy shorthand for both scopes; prefer `postEngagerSenderIds` for the Post Engagers sender scope and `sharedSenderIds` for the shared lane sender scope when they differ. The command plans one Post Engagers lane per post-engager sender plus shared Signal Discovery and Shared Cold Fallback lanes for the shared sender set. yolo is only a parent-skill auto-execution hint for safe lane packets; this backend command remains read-only in plan mode and verifies receipts in verify mode. When safe-yolo needs normal setup work, the parent skill may ask for bounded delegated approval: one approval over the current planRevision, selected action ids, caps, allowed side-effect classes, and stop conditions lets lane workers execute without per-substep approval while staying inside that packet. Lane workers must execute creation, source import, create-campaign workflow steps, generate-messages, sequence attachment, and review readiness through existing create-campaign workflow/subskills, then return receipts here for verification. Customer-visible verify receipts must include createCampaignStepReceipt with setupPlanCall, campaignBriefReceipt, sourceDecisionReceipt, filterDecisionReceipt, messageDraftingReceipt, reviewBatchReceipt, sequenceReceipt, and verifyCall. messageDraftingReceipt must include validationResult:'passed', a passed qualityReview, and at least 3 concrete sampleMessages with row ids, generated message text, pass verdicts, and no issues; Shared Cold Fallback samples with a standalone name followed by 'Hey there' are rejected. This command does not launch campaigns, does not schedule sends, does not assign scheduler-owned send fields, does not archive/delete cleanup targets, and does not spend paid credits.",
|
|
9
|
+
description: "Evergreen campaign setup plan/verify command. Use plan mode first to inspect exact workspace/sender/campaign/table/source state and receive immutable lane packets. `selectedSenderIds` is a legacy shorthand for both scopes; prefer `postEngagerSenderIds` for the Post Engagers sender scope and `sharedSenderIds` for the shared lane sender scope when they differ. The command plans one Post Engagers lane per post-engager sender plus shared Signal Discovery and Shared Cold Fallback lanes for the shared sender set. yolo is only a parent-skill auto-execution hint for safe lane packets; this backend command remains read-only in plan mode and verifies receipts in verify mode. When safe-yolo needs normal setup work, the parent skill may ask for bounded delegated approval: one approval over the current planRevision, selected action ids, caps, allowed side-effect classes, and stop conditions lets lane workers execute without per-substep approval while staying inside that packet. Lane workers must execute creation, source import, create-campaign workflow steps, generate-messages, sequence attachment, pause_campaign review-state transition when the current table is still DRAFT, and review readiness through existing create-campaign workflow/subskills, then return receipts here for verification. Customer-visible verify receipts must include createCampaignStepReceipt with setupPlanCall, campaignBriefReceipt, sourceDecisionReceipt, filterDecisionReceipt, messageDraftingReceipt, reviewBatchReceipt, sequenceReceipt, and verifyCall. messageDraftingReceipt must include validationResult:'passed', a passed qualityReview, and at least 3 concrete sampleMessages with row ids, generated message text, pass verdicts, and no issues; Shared Cold Fallback samples with a standalone name followed by 'Hey there' are rejected. This command does not launch campaigns, does not schedule sends, does not assign scheduler-owned send fields, does not raw-write campaign status, does not archive/delete cleanup targets, and does not spend paid credits.",
|
|
10
10
|
inputSchema: {
|
|
11
11
|
type: "object",
|
|
12
12
|
properties: {
|
package/package.json
CHANGED
|
@@ -186,6 +186,12 @@ not a parent-thread summary. The receipt must include:
|
|
|
186
186
|
- `sequenceReceipt`: exact current workflowTableId, recommended non-paid
|
|
187
187
|
sequence attach/precheck result, and readback showing `hasSequence:true` when
|
|
188
188
|
completion is claimed.
|
|
189
|
+
- final paused-send proof: if the current campaign table is `DRAFT` after the
|
|
190
|
+
sequence is attached, call the product `pause_campaign({ campaignId })`
|
|
191
|
+
endpoint/tool to put the unlaunched campaign into `PAUSED` review state, then
|
|
192
|
+
reread the campaign/table. Do not raw-write `campaignStatus`, do not start or
|
|
193
|
+
launch, and do not schedule/send. Completion requires reread proof of
|
|
194
|
+
`currentStep:"send"` and `campaignStatus:"PAUSED"`.
|
|
189
195
|
- `verifyCall`: the exact `setup_evergreen_campaigns({ mode:"verify",
|
|
190
196
|
planRevision, selectedActionIds, receipts })` call/result used before the
|
|
191
197
|
parent reports completion.
|
|
@@ -342,10 +348,10 @@ Parent-thread handwritten copy or setting `currentStep` is not proof.
|
|
|
342
348
|
completion, approve exactly one quality-valid generated row. If one or more
|
|
343
349
|
rows are already approved, do not add more approvals during evergreen
|
|
344
350
|
completion. Never broad approve all rows.
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
351
|
+
- The recommended non-paid sequence is attached to the current campaign
|
|
352
|
+
table, and the watched campaign is on Send. Use
|
|
353
|
+
`attach_recommended_sequence({ campaignId, currentStep:"send" })` when a
|
|
354
|
+
safe attach is needed. After `confirm_lead_list` or any source-list copy,
|
|
349
355
|
immediately reread `get_campaign({ campaignId })`; the returned
|
|
350
356
|
`workflowTableId` is the current campaign table. Cross-check that exact
|
|
351
357
|
current workflowTableId with `list_tables` and require `hasSequence:true`
|
|
@@ -353,11 +359,15 @@ Parent-thread handwritten copy or setting `currentStep` is not proof.
|
|
|
353
359
|
the current campaign table does not, `SEQUENCE_EXISTS` is not enough:
|
|
354
360
|
record the stale shell table id, then repair the current workflowTableId
|
|
355
361
|
with `attach_sequence` using the same non-paid product template
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
362
|
+
`attach_recommended_sequence` would have selected. Never use a paid-InMail
|
|
363
|
+
template and never attach/replace sequence outside the current table unless
|
|
364
|
+
the current lane packet explicitly allowed sequence repair.
|
|
365
|
+
- If the current campaign table is still `DRAFT` after sequence/readiness
|
|
366
|
+
proof, call `pause_campaign({ campaignId })` and reread. `pause_campaign`
|
|
367
|
+
is the product-native review-state transition; it is not a launch and does
|
|
368
|
+
not schedule or send. Never raw-write campaign status.
|
|
369
|
+
- No scheduled, queued outbound, sent outbound, campaign launch, or paid
|
|
370
|
+
InMail spend is created by this skill.
|
|
361
371
|
4. **Verify each slot** after create/reuse/repair:
|
|
362
372
|
- `get_campaign` shows the campaign exists, remains unlaunched, and has the expected workflow table.
|
|
363
373
|
- Builder truth must match dashboard truth. `currentStep:"running"` is valid only when the linked table has `campaignStatus:"ACTIVE"`. For a `PAUSED` or `ARCHIVED` campaign/table, repair or flag stale `currentStep:"running"` back to launch review (`send` / review-ready) before reporting the slot done. Never call `start_campaign` just to make a stale `running` step true.
|