@sellable/mcp 0.1.481 → 0.1.483

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.
@@ -15,6 +15,8 @@ type StartPrepareMessagesInput = PrepareMessagesBaseInput & {
15
15
  disableLowPassRateStop?: boolean;
16
16
  requestHash?: string;
17
17
  requestSource?: string;
18
+ senderId?: string;
19
+ actionType?: string;
18
20
  };
19
21
  type StatusPrepareMessagesInput = PrepareMessagesBaseInput;
20
22
  type CancelPrepareMessagesInput = PrepareMessagesBaseInput;
@@ -62,6 +64,15 @@ export declare const campaignMessagePreparationToolDefinitions: ({
62
64
  autoContinue: {
63
65
  type: string;
64
66
  };
67
+ senderId: {
68
+ type: string;
69
+ description: string;
70
+ };
71
+ actionType: {
72
+ type: string;
73
+ enum: string[];
74
+ description: string;
75
+ };
65
76
  disableLowPassRateStop: {
66
77
  type: string;
67
78
  description: string;
@@ -93,6 +104,8 @@ export declare const campaignMessagePreparationToolDefinitions: ({
93
104
  maxBatchRows?: undefined;
94
105
  approvalMode?: undefined;
95
106
  autoContinue?: undefined;
107
+ senderId?: undefined;
108
+ actionType?: undefined;
96
109
  disableLowPassRateStop?: undefined;
97
110
  };
98
111
  additionalProperties: boolean;
@@ -40,6 +40,21 @@ export const campaignMessagePreparationToolDefinitions = [
40
40
  description: "Defaults to mark_ready. Use approve only when the user explicitly asks to flip Approved cells. Approval is not scheduling; it only makes the bounded cohort eligible for downstream scheduler ownership.",
41
41
  },
42
42
  autoContinue: { type: "boolean" },
43
+ senderId: {
44
+ type: "string",
45
+ description: "Optional refill-scope sender id. Used with actionType by refill_sends so preparation skips rows already attempted by other send actions.",
46
+ },
47
+ actionType: {
48
+ type: "string",
49
+ enum: [
50
+ "send_invite",
51
+ "send_dm",
52
+ "send_inmail_open",
53
+ "send_inmail_closed",
54
+ "react_and_comment",
55
+ ],
56
+ description: "Optional refill-scope send action. InMail scopes treat open and paid InMail as one contact-reuse family.",
57
+ },
43
58
  disableLowPassRateStop: {
44
59
  type: "boolean",
45
60
  description: "Operator override for explicit fill/exhaust requests. When true, keep processing eligible rows even if the enriched sample pass rate is low. Still bounded by targetPreparedMessages and maxRowsToCheck.",
@@ -90,6 +105,8 @@ export function startPrepareCampaignMessages(input) {
90
105
  disableLowPassRateStop: input.disableLowPassRateStop,
91
106
  requestHash: input.requestHash,
92
107
  requestSource: input.requestSource,
108
+ senderId: input.senderId,
109
+ actionType: input.actionType,
93
110
  });
94
111
  }
95
112
  export function getPrepareCampaignMessagesStatus(input) {
@@ -411,6 +411,15 @@ function actionSenderId(action) {
411
411
  stringValue(ids.senderId) ??
412
412
  stringValue(action.senderId));
413
413
  }
414
+ function actionActionType(action) {
415
+ const ids = actionIds(action);
416
+ const toolInput = actionToolInput(action);
417
+ return (stringValue(toolInput.actionType) ??
418
+ stringValue(toolInput.selectedLane) ??
419
+ stringValue(ids.actionType) ??
420
+ stringValue(action.actionType) ??
421
+ stringValue(action.selectedLane));
422
+ }
414
423
  function actionSourceFingerprint(action) {
415
424
  const ids = actionIds(action);
416
425
  const toolInput = actionToolInput(action);
@@ -427,6 +436,7 @@ function refillPrepareRequestHash(params) {
427
436
  actionSenderId(params.action) ?? "all-senders",
428
437
  actionSourceLeadListId(params.action) ?? "no-source-list",
429
438
  actionSourceFingerprint(params.action) ?? "no-source-fingerprint",
439
+ actionActionType(params.action) ?? "no-action-type",
430
440
  params.approvalMode,
431
441
  ].join(":");
432
442
  }
@@ -514,6 +524,8 @@ async function executeOneYoloPrimitive(action) {
514
524
  approvalMode,
515
525
  autoContinue: true,
516
526
  disableLowPassRateStop: true,
527
+ senderId: actionSenderId(action) ?? undefined,
528
+ actionType: actionActionType(action) ?? undefined,
517
529
  requestHash: refillPrepareRequestHash({
518
530
  action,
519
531
  campaignId,
@@ -209,6 +209,7 @@ function sanitizeToolInput(value) {
209
209
  return {};
210
210
  return {
211
211
  senderId: stringValue(value.senderId),
212
+ actionType: allowedActionType(value.actionType),
212
213
  campaignId: stringValue(value.campaignId),
213
214
  tableId: stringValue(value.tableId),
214
215
  columnId: stringValue(value.columnId) ?? null,
@@ -279,6 +280,7 @@ function sanitizeStructuredAction(action, selectedBySender, mode, rank) {
279
280
  return {
280
281
  rank,
281
282
  type: action.type,
283
+ actionType: allowedActionType(action.actionType),
282
284
  toolName: stringValue(action.toolName) ?? null,
283
285
  sideEffectClass: stringValue(action.sideEffectClass),
284
286
  ids,
@@ -580,59 +580,6 @@ export declare const allTools: ({
580
580
  required: string[];
581
581
  additionalProperties: boolean;
582
582
  };
583
- } | {
584
- name: string;
585
- description: string;
586
- inputSchema: {
587
- type: string;
588
- properties: {
589
- campaignId: {
590
- type: string;
591
- description: string;
592
- };
593
- tableId: {
594
- type: string;
595
- };
596
- targetPreparedMessages: {
597
- type: string;
598
- minimum: number;
599
- maximum: number;
600
- };
601
- maxRowsToCheck: {
602
- type: string;
603
- minimum: number;
604
- maximum: number;
605
- description: string;
606
- };
607
- batchSize: {
608
- type: string;
609
- minimum: number;
610
- maximum: number;
611
- description: string;
612
- };
613
- maxBatchRows: {
614
- type: string;
615
- minimum: number;
616
- maximum: number;
617
- description: string;
618
- };
619
- approvalMode: {
620
- type: string;
621
- enum: string[];
622
- description: string;
623
- };
624
- autoContinue: {
625
- type: string;
626
- };
627
- disableLowPassRateStop: {
628
- type: string;
629
- description: string;
630
- };
631
- jobId?: undefined;
632
- };
633
- required: string[];
634
- additionalProperties: boolean;
635
- };
636
583
  } | {
637
584
  name: string;
638
585
  description: string;
@@ -655,6 +602,8 @@ export declare const allTools: ({
655
602
  maxBatchRows?: undefined;
656
603
  approvalMode?: undefined;
657
604
  autoContinue?: undefined;
605
+ senderId?: undefined;
606
+ actionType?: undefined;
658
607
  disableLowPassRateStop?: undefined;
659
608
  };
660
609
  additionalProperties: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.481",
3
+ "version": "0.1.483",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",