@sellable/install 0.1.281 → 0.1.282
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
|
@@ -37,7 +37,7 @@ function getInstallVersion() {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
const CODEX_PLUGIN_VERSION = "0.1.
|
|
40
|
+
const CODEX_PLUGIN_VERSION = "0.1.53";
|
|
41
41
|
const CODEX_PLUGIN_COMPAT_VERSIONS = [
|
|
42
42
|
"0.1.8",
|
|
43
43
|
"0.1.9",
|
|
@@ -74,6 +74,7 @@ const CODEX_PLUGIN_COMPAT_VERSIONS = [
|
|
|
74
74
|
"0.1.40",
|
|
75
75
|
"0.1.41",
|
|
76
76
|
"0.1.51",
|
|
77
|
+
"0.1.52",
|
|
77
78
|
];
|
|
78
79
|
const RAW_INSTALL_PACKAGE_SPEC =
|
|
79
80
|
process.env.SELLABLE_INSTALL_PACKAGE_SPEC || "@sellable/install@latest";
|
package/package.json
CHANGED
|
@@ -572,8 +572,15 @@ response, run a local file-existence and JSON self-check for
|
|
|
572
572
|
receipt there; if any postcondition, quality gate, verifier schema, or file
|
|
573
573
|
write blocks, write a canonical blocked receipt there with `status:"blocked"`,
|
|
574
574
|
`blocker`, `campaignId`, `tableId`, `actionId`, `laneKey`, `planRevision`, and
|
|
575
|
-
the latest product readback.
|
|
576
|
-
|
|
575
|
+
the latest product readback. For Post Engagers lanes, no sender-authored posts
|
|
576
|
+
or no sender-owned post-engager source is an acceptable terminal blocked/no-op
|
|
577
|
+
receipt, not a worker crash: use one of
|
|
578
|
+
`post_engagers_no_sender_posts`, `post_engagers_no_recent_sender_posts`,
|
|
579
|
+
`post_engagers_no_sender_owned_posts`, or
|
|
580
|
+
`post_engagers_source_author_mismatch`, include the source/readback evidence,
|
|
581
|
+
and stop without scraping third-party authors or generating misleading warm
|
|
582
|
+
copy. The terminal condition is filesystem proof that <receiptArtifactPath>
|
|
583
|
+
exists.
|
|
577
584
|
WORKER_PROMPT
|
|
578
585
|
|
|
579
586
|
# Multi-worker launcher equivalent:
|
|
@@ -816,6 +823,17 @@ the lane is complete. Do not use `status:"passed"` or
|
|
|
816
823
|
in a separate `warnings` array, but the completion status stays canonical.
|
|
817
824
|
The backend verifier rejects `status:"passed"`, `status:"pass"`, and
|
|
818
825
|
`status:"passed_with_warnings"` as primary completion statuses.
|
|
826
|
+
Exception: a Post Engagers lane may write `status:"blocked"` when Sellable MCP
|
|
827
|
+
sender-post/source readback proves there are no recent sender-authored posts to
|
|
828
|
+
scrape, no sender-owned post-engager source, or the current source is authored
|
|
829
|
+
by someone else. Use the explicit blocker codes
|
|
830
|
+
`post_engagers_no_sender_posts`, `post_engagers_no_recent_sender_posts`,
|
|
831
|
+
`post_engagers_no_sender_owned_posts`, or
|
|
832
|
+
`post_engagers_source_author_mismatch`. Parent verify treats these as
|
|
833
|
+
`acceptedLaneBlockers`, so the parent can report the truthful no-op instead of
|
|
834
|
+
retrying invalid source repair. This exception does not apply to shared lanes,
|
|
835
|
+
bad generated copy, stale plans, target mismatch, missing receipt files, launch
|
|
836
|
+
or schedule side effects, or arbitrary worker failures.
|
|
819
837
|
|
|
820
838
|
All step proof objects must live under `createCampaignStepReceipt`. Do not put
|
|
821
839
|
`createCampaignWorkflowReceipt`, `campaignBriefReceipt`,
|
|
@@ -1097,8 +1115,13 @@ The parent then calls
|
|
|
1097
1115
|
`setup_evergreen_campaigns({ mode:"verify", postEngagerSenderIds,
|
|
1098
1116
|
sharedSenderIds, planRevision, selectedActionIds, receipts })` using the same
|
|
1099
1117
|
sender scopes as the plan call and the original execution planRevision/actionIds,
|
|
1100
|
-
and reports only verified completion.
|
|
1101
|
-
`
|
|
1118
|
+
and reports only verified completion. If verify returns `verified:true` with
|
|
1119
|
+
`acceptedLaneBlockers`, report those lanes as accepted blocked/no-op lanes, not
|
|
1120
|
+
completed campaigns. Do not include `yolo` in the verify call; `yolo` is
|
|
1121
|
+
plan-mode only. A verify call without the same sender scopes can recompute an
|
|
1122
|
+
empty or different plan and is invalid proof. A verify call that uses a later
|
|
1123
|
+
reuse planRevision instead of the original execution planRevision is also
|
|
1124
|
+
invalid proof. Only after verify succeeds, rerun
|
|
1102
1125
|
`setup_evergreen_campaigns({ mode:"plan", postEngagerSenderIds,
|
|
1103
1126
|
sharedSenderIds, yolo:true })` without explicit campaign/table bindings. That
|
|
1104
1127
|
idempotency rerun must return `intent:"reuse"` for every completed lane and no
|
|
@@ -1530,7 +1553,7 @@ Message, and verify current-revision sample messages before final completion.
|
|
|
1530
1553
|
internal-only objects, verify the active waterfall linkage, table ID,
|
|
1531
1554
|
source type, and priority, and label them `internal source pool` rather
|
|
1532
1555
|
than treating them as completed campaigns.
|
|
1533
|
-
- Post Engagers lanes are sender-owned source lanes. The selected/source LinkedIn posts must be authored by that exact sender (for example, Thomas post-engager source posts must visibly be Thomas-authored posts). If selected/source posts include another person or company author,
|
|
1556
|
+
- Post Engagers lanes are sender-owned source lanes. The selected/source LinkedIn posts must be authored by that exact sender (for example, Thomas post-engager source posts must visibly be Thomas-authored posts). If Sellable MCP readback proves the sender has no recent posts to scrape, no sender-authored posts with usable engagers, no sender-owned post-engager source, or the selected/source posts include another person or company author, write a blocked receipt with the matching accepted blocker code and report that back to the parent as an accepted no-op. Do not scrape/import engagers from third-party authors and do not report completion until the source is sender-owned. Shared Signal Discovery lanes are the only evergreen lanes allowed to mix authors.
|
|
1534
1557
|
5. **Interactive polish mode only: confirm the message template with the user — and check it reads chat-native.** Show the exact first-message template each created campaign's brief carries and ask the user to confirm or adjust it before moving on. Because DM copy may send paragraph-by-paragraph (each blank-line block becomes its own message), every paragraph must read like something a human literally typed as a separate chat message:
|
|
1535
1558
|
- **No letter punctuation.** `Hey {{first_name}}` — never `Hey {{first_name}},` (nobody types a trailing comma and hits send). No `Dear`, no sign-offs, no `Best,`.
|
|
1536
1559
|
- Each paragraph stands alone as a message — short, lowercase-casual is fine, sentence fragments are fine.
|