@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.
package/bin/sellable-install.mjs
CHANGED
package/package.json
CHANGED
|
@@ -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": "
|
|
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.
|
|
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
|