@sellable/mcp 0.1.365 → 0.1.367
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, 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 set status:'succeeded' or status:'completed' and must include createCampaignStepReceipt with setupPlanCall, campaignBriefReceipt, sourceDecisionReceipt, filterDecisionReceipt, messageDraftingReceipt, reviewBatchReceipt, sequenceReceipt, and verifyCall nested inside createCampaignStepReceipt; top-level-only copies of those objects are not enough. messageDraftingReceipt must use statusSource:'branch' or statusSource:'packaged-generate-messages-worker' and include proof that generate-messages was loaded, start_campaign_message_preparation/get_campaign_message_preparation_status ran when the packaged worker path is used, 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.",
|
|
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 explicitly load and use the installed `$sellable:create-campaign` wrapper as the nested workflow entrypoint, then load `create-campaign-v2` and `create-campaign-v2/core/flow.v2.json`; they 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 that existing create-campaign workflow/subskills, then return receipts here for verification. Customer-visible verify receipts must set status:'succeeded' or status:'completed' and must include createCampaignStepReceipt with setupPlanCall, createCampaignWorkflowReceipt, campaignBriefReceipt, sourceDecisionReceipt, filterDecisionReceipt, messageDraftingReceipt, reviewBatchReceipt, sequenceReceipt, and verifyCall nested inside createCampaignStepReceipt; top-level-only copies of those objects are not enough. createCampaignWorkflowReceipt must include skillCommand:'$sellable:create-campaign', skillName:'create-campaign', wrapperSkillLoaded:true, workflowPromptName:'create-campaign-v2', workflowPromptLoadedToHasMoreFalse:true, workflowAssetPath:'create-campaign-v2/core/flow.v2.json', workflowAssetLoaded:true, workerRuntime, and notAdHoc:true. messageDraftingReceipt must use statusSource:'branch' or statusSource:'packaged-generate-messages-worker' and include proof that generate-messages was loaded, start_campaign_message_preparation/get_campaign_message_preparation_status ran when the packaged worker path is used, 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: {
|
|
@@ -75,7 +75,7 @@ export const setupEvergreenCampaignsToolDefinitions = [
|
|
|
75
75
|
type: "array",
|
|
76
76
|
maxItems: 20,
|
|
77
77
|
items: { type: "object" },
|
|
78
|
-
description: "Required for verify. Structured lane worker receipts from create-campaign/source/message/sequence execution. Customer-visible lanes must use status:'succeeded' or status:'completed' and include createCampaignStepReceipt with setupPlanCall, campaignBriefReceipt, sourceDecisionReceipt, filterDecisionReceipt, messageDraftingReceipt, reviewBatchReceipt, sequenceReceipt, and verifyCall nested inside createCampaignStepReceipt.
|
|
78
|
+
description: "Required for verify. Structured lane worker receipts from create-campaign/source/message/sequence execution. Customer-visible lanes must use status:'succeeded' or status:'completed' and include createCampaignStepReceipt with setupPlanCall, createCampaignWorkflowReceipt, campaignBriefReceipt, sourceDecisionReceipt, filterDecisionReceipt, messageDraftingReceipt, reviewBatchReceipt, sequenceReceipt, and verifyCall nested inside createCampaignStepReceipt. createCampaignWorkflowReceipt proves the lane worker loaded `$sellable:create-campaign`, `create-campaign-v2`, and `create-campaign-v2/core/flow.v2.json`; top-level-only proof copies are not enough.",
|
|
79
79
|
},
|
|
80
80
|
},
|
|
81
81
|
required: [],
|
package/package.json
CHANGED
|
@@ -138,11 +138,15 @@ After bounded delegated approval or safe `--yolo`, fan out lane worker tasks
|
|
|
138
138
|
only from the current plan. Each worker receives the complete lane packet:
|
|
139
139
|
workspace id, sender ids, lane key/type, existing campaign/table binding or
|
|
140
140
|
create intent, source hints, caps, planRevision, actionId, allowed side effects,
|
|
141
|
-
and postconditions. Workers must use the
|
|
142
|
-
create-campaign
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
141
|
+
and postconditions. Workers must explicitly load and use the installed visible
|
|
142
|
+
`$sellable:create-campaign` wrapper as the nested workflow entrypoint, then load
|
|
143
|
+
`create-campaign-v2` and `create-campaign-v2/core/flow.v2.json` through the
|
|
144
|
+
packaged MCP prompt/asset loaders before campaign creation or repair. The
|
|
145
|
+
worker then uses that create-campaign workflow/subskills for campaign
|
|
146
|
+
creation/setup, source/import, filter choice, Message Drafting, packaged
|
|
147
|
+
`generate-messages`, sequence attachment, and send-review readiness. Do not
|
|
148
|
+
rebuild those steps ad hoc in the parent thread or from a copied receipt
|
|
149
|
+
checklist. The parent thread is only the planner, dispatcher, verifier, and
|
|
146
150
|
receipt collector: it must not call `create_campaign`, `import_leads`,
|
|
147
151
|
`start_campaign_message_preparation`, `update_cell`, or sequence-attach tools
|
|
148
152
|
for a lane that was assigned to a worker. When the host supports branch
|
|
@@ -176,6 +180,14 @@ not a parent-thread summary. The receipt must include:
|
|
|
176
180
|
campaign/table binding or create intent used before work started. For a
|
|
177
181
|
create lane, this receipt must explicitly include `createIntent:true`; for a
|
|
178
182
|
reuse lane, do not report `createIntent:true`.
|
|
183
|
+
- `createCampaignWorkflowReceipt`: proof the worker loaded the actual installed
|
|
184
|
+
`$sellable:create-campaign` wrapper instead of doing ad hoc MCP calls. It must
|
|
185
|
+
include `skillCommand:"$sellable:create-campaign"`,
|
|
186
|
+
`skillName:"create-campaign"`, `wrapperSkillLoaded:true`,
|
|
187
|
+
`workflowPromptName:"create-campaign-v2"`,
|
|
188
|
+
`workflowPromptLoadedToHasMoreFalse:true`,
|
|
189
|
+
`workflowAssetPath:"create-campaign-v2/core/flow.v2.json"`,
|
|
190
|
+
`workflowAssetLoaded:true`, the real `workerRuntime`, and `notAdHoc:true`.
|
|
179
191
|
- `researchSenderReceipt`: `research-sender` prompt load proof,
|
|
180
192
|
`complete_sender_research` result, sender LinkedIn identity basis, and the
|
|
181
193
|
notes/proof counts used before the net-new `create_campaign` call.
|
|
@@ -219,10 +231,11 @@ the lane is complete. Do not use `status:"passed"` or
|
|
|
219
231
|
in a separate `warnings` array, but the completion status stays canonical.
|
|
220
232
|
|
|
221
233
|
All step proof objects must live under `createCampaignStepReceipt`. Do not put
|
|
222
|
-
`
|
|
223
|
-
`
|
|
224
|
-
top-level siblings;
|
|
225
|
-
|
|
234
|
+
`createCampaignWorkflowReceipt`, `campaignBriefReceipt`,
|
|
235
|
+
`sourceDecisionReceipt`, `filterDecisionReceipt`, `messageDraftingReceipt`,
|
|
236
|
+
`reviewBatchReceipt`, or `sequenceReceipt` only as top-level siblings;
|
|
237
|
+
top-level copies are useful for humans but are not enough for command
|
|
238
|
+
verification unless the same object also appears inside
|
|
226
239
|
`createCampaignStepReceipt`.
|
|
227
240
|
|
|
228
241
|
```json
|
|
@@ -236,6 +249,17 @@ for command verification unless the same object also appears inside
|
|
|
236
249
|
"campaignId": "<campaign id>",
|
|
237
250
|
"tableId": "<workflow table id>",
|
|
238
251
|
"createCampaignStepReceipt": {
|
|
252
|
+
"createCampaignWorkflowReceipt": {
|
|
253
|
+
"skillCommand": "$sellable:create-campaign",
|
|
254
|
+
"skillName": "create-campaign",
|
|
255
|
+
"wrapperSkillLoaded": true,
|
|
256
|
+
"workflowPromptName": "create-campaign-v2",
|
|
257
|
+
"workflowPromptLoadedToHasMoreFalse": true,
|
|
258
|
+
"workflowAssetPath": "create-campaign-v2/core/flow.v2.json",
|
|
259
|
+
"workflowAssetLoaded": true,
|
|
260
|
+
"workerRuntime": "separate-codex-thread",
|
|
261
|
+
"notAdHoc": true
|
|
262
|
+
},
|
|
239
263
|
"campaignBriefReceipt": {
|
|
240
264
|
"campaignId": "<campaign id>",
|
|
241
265
|
"workflowTableId": "<workflow table id>",
|