@sellable/install 0.1.230 → 0.1.231

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.
@@ -37,7 +37,7 @@ function getInstallVersion() {
37
37
  }
38
38
  }
39
39
 
40
- const CODEX_PLUGIN_VERSION = "0.1.47";
40
+ const CODEX_PLUGIN_VERSION = "0.1.48";
41
41
  const CODEX_PLUGIN_COMPAT_VERSIONS = [
42
42
  "0.1.8",
43
43
  "0.1.9",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/install",
3
- "version": "0.1.230",
3
+ "version": "0.1.231",
4
4
  "type": "module",
5
5
  "description": "One-command installer for Sellable MCP in Claude Code and Codex",
6
6
  "bin": {
@@ -331,31 +331,56 @@ not a parent-thread summary. The receipt must include:
331
331
  when using a receipt file, and `notAdHoc:true`.
332
332
  - `researchSenderReceipt`: `research-sender` prompt load proof,
333
333
  `complete_sender_research` result, sender LinkedIn identity basis, and the
334
- notes/proof counts used before the net-new `create_campaign` call.
334
+ notes/proof counts used before the net-new `create_campaign` call. It must
335
+ include canonical `promptLoadedToHasMoreFalse:true`,
336
+ `completeSenderResearch`, and either `senderLinkedinUrl`, non-empty
337
+ `senderIds`, or non-empty `senderIdentityBasis`, plus `identityBasis`.
335
338
  - `campaignBriefReceipt`: the CampaignOffer/campaign id, current
336
339
  workflowTableId, brief hash or updated-at marker, delivery format, token
337
- rules, hard avoids, source-use rules, and first-message template state.
340
+ rules, hard avoids, source-use rules, and first-message template state. If
341
+ the tool output uses `approvedFirstMessageTemplate`, copy it to canonical
342
+ `firstMessageTemplate`; if it uses `deliveryFormatIncluded`,
343
+ `tokenRulesIncluded`, `hardAvoidsIncluded`, or `sourceUseRulesIncluded`, copy
344
+ those to canonical `deliveryFormat`, `tokenRules`, `hardAvoids`, and
345
+ `sourceUseRules`.
338
346
  - `sourceDecisionReceipt`: selected source/list id, provider, cursor/inventory
339
347
  state, import/copy caps, explicit `dedupeDncProviderExclusions:true` or an
340
348
  equivalent exclusions object, row ids or row-count evidence (`rowCount`,
341
349
  `readyRowCount`, or `rowEvidence`), and the reason no colder source was used
342
- before the current source was proven exhausted or insufficient.
350
+ before the current source was proven exhausted or insufficient. If the raw
351
+ provider output uses `sourceProvider`, `sourceListId`, `reviewBatchRowIds`, or
352
+ `rationale`, copy them to canonical `provider`, `sourceId`/`sourceListId`,
353
+ `rowIdsHash`/`rowCount`, and `sourceLadderReason`.
343
354
  - `filterDecisionReceipt`: saved/applied filter ids or explicit skip-filter
344
355
  decision with current campaign/table basis.
345
356
  - `messageDraftingReceipt`: the Message Drafting proof described below,
346
- including packaged `generate-messages` prompt/assets and validation.
357
+ including packaged `generate-messages` prompt/assets and validation. Raw
358
+ fields like `generateMessagesPromptLoadedToHasMoreFalse`,
359
+ `requiredAssetsLoadedToHasMoreFalse`,
360
+ `validationPromptLoadedToHasMoreFalse`,
361
+ `get_campaign_message_preparation_status`, and
362
+ `waitForCampaignProcessingProof` are useful, but the receipt must also copy
363
+ them into canonical `promptLoadedToHasMoreFalse`, `requiredAssetsLoaded`,
364
+ `validationLoaded`, `reviewBatchRowHash`, and
365
+ `messageDraftRecommendation`.
347
366
  - `reviewBatchReceipt`: review-batch row ids/hash, generated row count,
348
367
  quality-valid route-proof row id when approved, and proof that no broad
349
368
  approve-all occurred.
350
369
  - `sequenceReceipt`: exact current workflowTableId, recommended non-paid
351
370
  sequence attach/precheck result, and readback showing `hasSequence:true` when
352
- completion is claimed.
371
+ completion is claimed. If the tool output uses
372
+ `attachRecommendedSequenceResult.actionTypes` or
373
+ `nonPaidRecommendedSequence`, copy them to canonical `actionTypes` and
374
+ `nonPaid`.
353
375
  - final paused-send proof: if the current campaign table is `DRAFT` after the
354
376
  sequence is attached, call the product `pause_campaign({ campaignId })`
355
377
  endpoint/tool to put the unlaunched campaign into `PAUSED` review state, then
356
378
  reread the campaign/table. Do not raw-write `campaignStatus`, do not start or
357
379
  launch, and do not schedule/send. Completion requires reread proof of
358
- `currentStep:"send"` and `campaignStatus:"PAUSED"`.
380
+ `currentStep:"send"` and `campaignStatus:"PAUSED"`. If the raw output nests
381
+ this in `finalCampaignRead` or `finalTableRead`, copy it to canonical
382
+ `finalPausedSendProof.currentStep` and
383
+ `finalPausedSendProof.campaignStatus`.
359
384
  - `verifyCall`: the exact `setup_evergreen_campaigns({ mode:"verify",
360
385
  planRevision, selectedActionIds, receipts })` call/result used before the
361
386
  parent reports completion.
@@ -370,7 +395,18 @@ substitute `message` for `generatedMessageText`. Do not substitute
370
395
  `passVerdict` for `verdict`. If the self-check fails, fix the receipt before
371
396
  ending; do not leave the parent to infer canonical fields from top-level
372
397
  aliases or narrative text.
398
+ Self-check shorthand: copy raw tool-output aliases into canonical receipt keys
399
+ before writing JSON; do not leave only raw objects like
400
+ `get_campaign_message_preparation_status`, `attachRecommendedSequenceResult`,
401
+ `finalCampaignRead`, or `finalTableRead`.
373
402
  Self-check shorthand: top-level `planRevision`, `actionId`, `laneKey`, `laneType`, `workspaceId`, and `senderIds` must exist before worker completion.
403
+ Self-check shorthand: `messageDraftingReceipt.promptLoadedToHasMoreFalse`,
404
+ `requiredAssetsLoaded`, `validationLoaded`, `reviewBatchRowHash`, and
405
+ `messageDraftRecommendation` must exist before worker completion.
406
+ Self-check shorthand: `reviewBatchReceipt.rowIdsHash`,
407
+ `reviewBatchReceipt.generatedCount`, `sequenceReceipt.actionTypes`,
408
+ `sequenceReceipt.nonPaid`, `finalPausedSendProof.currentStep`, and
409
+ `finalPausedSendProof.campaignStatus` must exist before worker completion.
374
410
  Self-check shorthand: `sampleMessages[]` must include `rowId`, `generatedMessageText`, `verdict`, and `issues`.
375
411
  Self-check shorthand: Do not substitute `message` for `generatedMessageText`.
376
412
  Self-check shorthand: Do not substitute `passVerdict` for `verdict`.
@@ -455,9 +491,8 @@ verification unless the same object also appears inside
455
491
  "selectedLeadListId": "<source/list id>",
456
492
  "reviewBatchRowHash": "<review row ids hash>",
457
493
  "messageDraftRecommendation": {"basis": "generate-messages"},
458
- "sampleMessages[].verdict": "pass",
459
494
  "sampleMessages": [
460
- {"rowId": "<row id>", "generatedMessageText": "<message>", "verdict": "pass"}
495
+ {"rowId": "<row id>", "generatedMessageText": "<message>", "verdict": "passed", "issues": []}
461
496
  ]
462
497
  },
463
498
  "reviewBatchReceipt": {
@@ -467,8 +502,6 @@ verification unless the same object also appears inside
467
502
  "sequenceReceipt": {
468
503
  "workflowTableId": "<workflow table id>",
469
504
  "hasSequence": true,
470
- "sequenceReceipt.actionTypes": ["send_invite"],
471
- "sequenceReceipt.nonPaid": true,
472
505
  "actionTypes": ["send_invite"],
473
506
  "nonPaid": true
474
507
  },
@@ -596,7 +629,8 @@ The parent then calls
596
629
  `setup_evergreen_campaigns({ mode:"verify", postEngagerSenderIds,
597
630
  sharedSenderIds, planRevision, selectedActionIds, receipts })` using the same
598
631
  sender scopes as the plan call and the original execution planRevision/actionIds,
599
- and reports only verified completion. A verify call without the same sender scopes can recompute an empty or different plan and is invalid proof. A verify call that uses a later reuse planRevision instead of the original execution planRevision is also invalid proof. Only after verify succeeds, rerun
632
+ and reports only verified completion. Do not include `yolo` in the verify call;
633
+ `yolo` is plan-mode only. A verify call without the same sender scopes can recompute an empty or different plan and is invalid proof. A verify call that uses a later reuse planRevision instead of the original execution planRevision is also invalid proof. Only after verify succeeds, rerun
600
634
  `setup_evergreen_campaigns({ mode:"plan", postEngagerSenderIds,
601
635
  sharedSenderIds, yolo:true })` without explicit campaign/table bindings. That
602
636
  idempotency rerun must return `intent:"reuse"` for every completed lane and no