@sellable/mcp 0.1.548 → 0.1.549

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.
@@ -8021,8 +8021,8 @@ export declare const allTools: ({
8021
8021
  template?: undefined;
8022
8022
  templateRef?: undefined;
8023
8023
  confirmed?: undefined;
8024
- campaignId?: undefined;
8025
8024
  currentStep?: undefined;
8025
+ campaignId?: undefined;
8026
8026
  };
8027
8027
  required: string[];
8028
8028
  };
@@ -8049,13 +8049,16 @@ export declare const allTools: ({
8049
8049
  type: string;
8050
8050
  description: string;
8051
8051
  };
8052
+ currentStep: {
8053
+ type: string;
8054
+ description: string;
8055
+ };
8052
8056
  name?: undefined;
8053
8057
  senderId?: undefined;
8054
8058
  clientProspectId?: undefined;
8055
8059
  senderLinkedinUrl?: undefined;
8056
8060
  sequenceActions?: undefined;
8057
8061
  campaignId?: undefined;
8058
- currentStep?: undefined;
8059
8062
  };
8060
8063
  required: string[];
8061
8064
  };
@@ -22,10 +22,12 @@ export type AttachSequenceInput = {
22
22
  template?: Record<string, unknown>;
23
23
  templateRef?: "connection_only";
24
24
  confirmed?: boolean;
25
+ currentStep?: string;
25
26
  };
26
27
  export type AttachSequenceResponse = {
27
28
  success: boolean;
28
29
  version: number;
30
+ currentStep?: string;
29
31
  _perf?: Record<string, number>;
30
32
  };
31
33
  export type AttachRecommendedSequenceInput = {
@@ -77,8 +79,8 @@ export declare const sequencerToolDefinitions: ({
77
79
  template?: undefined;
78
80
  templateRef?: undefined;
79
81
  confirmed?: undefined;
80
- campaignId?: undefined;
81
82
  currentStep?: undefined;
83
+ campaignId?: undefined;
82
84
  };
83
85
  required: string[];
84
86
  };
@@ -105,13 +107,16 @@ export declare const sequencerToolDefinitions: ({
105
107
  type: string;
106
108
  description: string;
107
109
  };
110
+ currentStep: {
111
+ type: string;
112
+ description: string;
113
+ };
108
114
  name?: undefined;
109
115
  senderId?: undefined;
110
116
  clientProspectId?: undefined;
111
117
  senderLinkedinUrl?: undefined;
112
118
  sequenceActions?: undefined;
113
119
  campaignId?: undefined;
114
- currentStep?: undefined;
115
120
  };
116
121
  required: string[];
117
122
  };
@@ -62,6 +62,10 @@ export const sequencerToolDefinitions = [
62
62
  type: "boolean",
63
63
  description: "Set true to overwrite existing sequence columns if the table already has them",
64
64
  },
65
+ currentStep: {
66
+ type: "string",
67
+ description: "Optional CampaignOffer currentStep to persist atomically with the sequence attach, usually 'send' for connection-only evergreen setup after the invite-only sequence is bound.",
68
+ },
65
69
  },
66
70
  required: ["tableId"],
67
71
  },
@@ -160,6 +164,9 @@ export async function attachSequence(input) {
160
164
  ...(input.template ? { template: input.template } : {}),
161
165
  ...(input.templateRef ? { templateRef: input.templateRef } : {}),
162
166
  confirmed: input.confirmed,
167
+ ...(input.currentStep !== undefined
168
+ ? { currentStep: input.currentStep }
169
+ : {}),
163
170
  });
164
171
  }
165
172
  catch (error) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.548",
3
+ "version": "0.1.549",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code, Codex, and Hermes campaign workflows",
6
6
  "main": "dist/index.js",
@@ -62,7 +62,7 @@ The tail MUST verify:
62
62
  - Exception: when the parent `$sellable:create-evergreen-campaigns` plan
63
63
  explicitly carries `campaignSequenceOptions:{ mode:"connection_only" }`,
64
64
  do not call `attach_recommended_sequence`. Use the backend-owned
65
- `attach_sequence({ tableId, templateRef:"connection_only" })` path and prove
65
+ `attach_sequence({ tableId, templateRef:"connection_only", currentStep:"send" })` path and prove
66
66
  `sequenceReceipt.actionTypes:["send_invite"]`.
67
67
  - Tier mismatch at attach time is an escalation, NOT a silent fallback.
68
68
  - A Standard sender MUST NOT be attached to an INMAIL_OPEN template.
@@ -143,9 +143,10 @@ run without user input, or similar, run in **automation mode**:
143
143
  Sales Nav, Recruiter, and paid InMail behavior.
144
144
  Connection-only completion still creates/reuses the same evergreen lanes,
145
145
  source rows, and paused/unlaunched review state, but it attaches only the
146
- canonical invite template. It does not require Message Drafting, generated
147
- messages, route-proof approval, first DM, InMail, View Profile fallback,
148
- follow-up branch, `currentStep:"send"`, launch, scheduling, or sends.
146
+ canonical invite template and persists `currentStep:"send"` as the paused
147
+ review step. It does not require Message Drafting, generated messages,
148
+ route-proof approval, first DM, InMail, View Profile fallback, follow-up
149
+ branch, launch, scheduling, or sends.
149
150
 
150
151
  If the invoking prompt explicitly asks for interactive message polish or sample
151
152
  proof, run in **interactive polish mode** and use the confirmation/sample steps
@@ -841,7 +842,7 @@ not a parent-thread summary. The receipt must include:
841
842
  `nonPaidRecommendedSequence`, copy them to canonical `actionTypes` and
842
843
  `nonPaid`.
843
844
  For connection-only lanes, do not call `attach_recommended_sequence`. Attach
844
- with `attach_sequence({ tableId, templateRef:"connection_only" })`, then
845
+ with `attach_sequence({ tableId, templateRef:"connection_only", currentStep:"send" })`, then
845
846
  include exact current-template proof:
846
847
  `sequenceReceipt.hasSequence:true`,
847
848
  `sequenceReceipt.actionTypes:["send_invite"]`, and
@@ -1126,7 +1127,7 @@ plain row generation. The lane worker must inline the same
1126
1127
  the campaign is still `DRAFT`, `pause_campaign({ campaignId })`. Reread the
1127
1128
  campaign/table before claiming completion.
1128
1129
  Connection-only mode: skip Message Drafting and route-proof approval, call
1129
- `attach_sequence({ tableId, templateRef:"connection_only" })`, prove
1130
+ `attach_sequence({ tableId, templateRef:"connection_only", currentStep:"send" })`, prove
1130
1131
  `sequenceReceipt.actionTypes:["send_invite"]`, and pause/reread without
1131
1132
  launching or sending.
1132
1133
 
@@ -1559,7 +1560,7 @@ Message, and verify current-revision sample messages before final completion.
1559
1560
  spend paid InMail credits by itself. Do not substitute the manual Paid
1560
1561
  InMail Campaign template.
1561
1562
  For explicit connection-only evergreen lanes only, use the backend-owned
1562
- `attach_sequence({ tableId, templateRef:"connection_only" })` path and do
1563
+ `attach_sequence({ tableId, templateRef:"connection_only", currentStep:"send" })` path and do
1563
1564
  not call `attach_recommended_sequence`.
1564
1565
  3. **Customer-Visible Completion Contract**: a named evergreen lane that appears
1565
1566
  as a campaign card or campaign-backed table is not done when the shell exists.