@sellable/mcp 0.1.480 → 0.1.481

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.
@@ -13,6 +13,8 @@ type StartPrepareMessagesInput = PrepareMessagesBaseInput & {
13
13
  approvalMode?: ApprovalMode;
14
14
  autoContinue?: boolean;
15
15
  disableLowPassRateStop?: boolean;
16
+ requestHash?: string;
17
+ requestSource?: string;
16
18
  };
17
19
  type StatusPrepareMessagesInput = PrepareMessagesBaseInput;
18
20
  type CancelPrepareMessagesInput = PrepareMessagesBaseInput;
@@ -88,6 +88,8 @@ export function startPrepareCampaignMessages(input) {
88
88
  approvalMode: input.approvalMode,
89
89
  autoContinue: input.autoContinue,
90
90
  disableLowPassRateStop: input.disableLowPassRateStop,
91
+ requestHash: input.requestHash,
92
+ requestSource: input.requestSource,
91
93
  });
92
94
  }
93
95
  export function getPrepareCampaignMessagesStatus(input) {
@@ -404,6 +404,32 @@ function actionSourceLeadListId(action) {
404
404
  stringValue(ids.sourceLeadListId) ??
405
405
  stringValue(action.sourceLeadListId));
406
406
  }
407
+ function actionSenderId(action) {
408
+ const ids = actionIds(action);
409
+ const toolInput = actionToolInput(action);
410
+ return (stringValue(toolInput.senderId) ??
411
+ stringValue(ids.senderId) ??
412
+ stringValue(action.senderId));
413
+ }
414
+ function actionSourceFingerprint(action) {
415
+ const ids = actionIds(action);
416
+ const toolInput = actionToolInput(action);
417
+ return (stringValue(toolInput.sourceFingerprint) ??
418
+ stringValue(ids.sourceFingerprint) ??
419
+ stringValue(action.sourceFingerprint));
420
+ }
421
+ function refillPrepareRequestHash(params) {
422
+ return [
423
+ "refill_sends",
424
+ "prepare_messages",
425
+ params.campaignId,
426
+ params.tableId ?? "no-table",
427
+ actionSenderId(params.action) ?? "all-senders",
428
+ actionSourceLeadListId(params.action) ?? "no-source-list",
429
+ actionSourceFingerprint(params.action) ?? "no-source-fingerprint",
430
+ params.approvalMode,
431
+ ].join(":");
432
+ }
407
433
  function boundedApprovalLimit(action) {
408
434
  const toolInput = actionToolInput(action);
409
435
  const rowSelector = recordValue(toolInput.rowSelector);
@@ -484,8 +510,17 @@ async function executeOneYoloPrimitive(action) {
484
510
  campaignId,
485
511
  tableId,
486
512
  targetPreparedMessages,
513
+ maxRowsToCheck: numberValue(toolInput.maxRowsToCheck) ?? 300,
487
514
  approvalMode,
488
515
  autoContinue: true,
516
+ disableLowPassRateStop: true,
517
+ requestHash: refillPrepareRequestHash({
518
+ action,
519
+ campaignId,
520
+ tableId,
521
+ approvalMode,
522
+ }),
523
+ requestSource: "refill_sends",
489
524
  });
490
525
  return { status: "executed_and_reread", result };
491
526
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.480",
3
+ "version": "0.1.481",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",