@sellable/install 0.1.234 → 0.1.236
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/package.json
CHANGED
|
@@ -139,6 +139,10 @@ campaigns are not reusable evergreen targets. Only pass an archived
|
|
|
139
139
|
campaign/table as an explicit binding when the user supplied those exact ids and
|
|
140
140
|
explicitly allowed dashboard visibility repair; otherwise ignore archived
|
|
141
141
|
matches for execution and let the create packet proceed.
|
|
142
|
+
Do not call `get_campaign` on archived waterfall bindings to overrule a create packet.
|
|
143
|
+
Do not re-plan with explicit bindings for archived waterfall slots after an unbound create plan.
|
|
144
|
+
Archived waterfall slot readbacks are diagnostic only; they are not a consistency check that can replace the immutable create packet.
|
|
145
|
+
If an archived waterfall binding makes the agent unwilling to execute the create packet, stop with `blocked: archived_binding_plan_conflict` instead of repairing or reusing the archived campaign/table.
|
|
142
146
|
|
|
143
147
|
Use `selectedSenderIds` only as a legacy shorthand when the same senders should
|
|
144
148
|
get sender-owned Post Engagers lanes and attach to shared lanes. When the scopes
|
|
@@ -344,17 +348,29 @@ not a parent-thread summary. The receipt must include:
|
|
|
344
348
|
`senderIds`, or non-empty `senderIdentityBasis`, plus `identityBasis`.
|
|
345
349
|
- `campaignBriefReceipt`: the CampaignOffer/campaign id, current
|
|
346
350
|
workflowTableId, brief hash or updated-at marker, delivery format, token
|
|
347
|
-
rules, hard avoids, source-use rules, and first-message
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
`
|
|
351
|
+
rules, hard avoids, source-use rules, and lane-appropriate first-message
|
|
352
|
+
state. Post Engagers lanes require `campaignBriefReceipt.firstMessageTemplate`
|
|
353
|
+
because they are sender-owned warm lanes. Shared Signal Discovery and Shared
|
|
354
|
+
Cold Fallback lanes must not set `campaignBriefReceipt.firstMessageTemplate`;
|
|
355
|
+
instead set `campaignBriefReceipt.firstMessageTemplateState` to the exact
|
|
356
|
+
no-preset marker
|
|
357
|
+
`not preset; generate-messages branch selected the final message approach`.
|
|
358
|
+
If the tool output uses `approvedFirstMessageTemplate`, copy it to canonical
|
|
359
|
+
`firstMessageTemplate` only for Post Engagers lanes. For shared lanes, treat a
|
|
360
|
+
raw approved template as a quality issue unless it is only a no-preset or
|
|
361
|
+
generate-messages state marker. If the tool output uses
|
|
362
|
+
`deliveryFormatIncluded`, `tokenRulesIncluded`, `hardAvoidsIncluded`, or
|
|
363
|
+
`sourceUseRulesIncluded`, copy those to canonical `deliveryFormat`,
|
|
364
|
+
`tokenRules`, `hardAvoids`, and `sourceUseRules`. Before the worker exits, the
|
|
365
|
+
durable JSON must contain the exact canonical leaf keys `briefHash`,
|
|
366
|
+
`deliveryFormat`, `tokenRules`, `hardAvoids`, and `sourceUseRules` inside
|
|
367
|
+
`createCampaignStepReceipt.campaignBriefReceipt`, plus
|
|
368
|
+
`firstMessageTemplate` only for Post Engagers lanes or
|
|
369
|
+
`firstMessageTemplateState` for shared lanes; do not leave those only in
|
|
356
370
|
narrative text, `briefIncludes`, `currentApprovedBriefHash`, or other aliases
|
|
357
371
|
for the parent/verifier to infer.
|
|
372
|
+
Short form: Post Engagers lanes require `campaignBriefReceipt.firstMessageTemplate`.
|
|
373
|
+
Short form: Shared Signal Discovery and Shared Cold Fallback lanes must not set `campaignBriefReceipt.firstMessageTemplate`.
|
|
358
374
|
- `sourceDecisionReceipt`: selected source/list id, provider, cursor/inventory
|
|
359
375
|
state, import/copy caps, explicit `dedupeDncProviderExclusions:true` or an
|
|
360
376
|
equivalent exclusions object, row ids or row-count evidence (`rowCount`,
|
|
@@ -419,9 +435,10 @@ before writing JSON; do not leave only raw objects like
|
|
|
419
435
|
Self-check shorthand: top-level `planRevision`, `actionId`, `laneKey`, `laneType`, `workspaceId`, and `senderIds` must exist before worker completion.
|
|
420
436
|
Self-check shorthand: `campaignBriefReceipt.briefHash`,
|
|
421
437
|
`campaignBriefReceipt.deliveryFormat`, `campaignBriefReceipt.tokenRules`,
|
|
422
|
-
`campaignBriefReceipt.hardAvoids`, `campaignBriefReceipt.sourceUseRules
|
|
423
|
-
|
|
424
|
-
|
|
438
|
+
`campaignBriefReceipt.hardAvoids`, and `campaignBriefReceipt.sourceUseRules`
|
|
439
|
+
must exist as exact canonical keys before worker completion, plus
|
|
440
|
+
`campaignBriefReceipt.firstMessageTemplate` only for Post Engagers lanes and
|
|
441
|
+
`campaignBriefReceipt.firstMessageTemplateState` for shared lanes.
|
|
425
442
|
Self-check shorthand: `sourceDecisionReceipt.dedupeDncProviderExclusions`,
|
|
426
443
|
`sourceDecisionReceipt.sourceLadderReason`, and one of
|
|
427
444
|
`sourceDecisionReceipt.rowCount`, `sourceDecisionReceipt.rowIdsHash`, or
|
|
@@ -493,7 +510,8 @@ verification unless the same object also appears inside
|
|
|
493
510
|
"tokenRules": true,
|
|
494
511
|
"hardAvoids": true,
|
|
495
512
|
"sourceUseRules": true,
|
|
496
|
-
"firstMessageTemplate": "<
|
|
513
|
+
"firstMessageTemplate": "<Post Engagers only warm template; omit for shared lanes>",
|
|
514
|
+
"firstMessageTemplateState": "<Shared lanes only: not preset; generate-messages branch selected the final message approach>"
|
|
497
515
|
},
|
|
498
516
|
"sourceDecisionReceipt": {
|
|
499
517
|
"sourceId": "<source id>",
|
|
@@ -646,6 +664,11 @@ such as "my post", "thanks for showing support", "saw you pop up", or any copy
|
|
|
646
664
|
that implies the sending sender authored the source post or personally received
|
|
647
665
|
the prospect's engagement unless the selected source evidence proves that exact
|
|
648
666
|
sender authored the post.
|
|
667
|
+
Shared lanes must reject generic product-summary samples that explain the
|
|
668
|
+
product in the same broad words for every row. Shared lanes must reject three
|
|
669
|
+
nearly identical samples after stripping the leading name. If either failure
|
|
670
|
+
appears, revise or rerun the packaged create-campaign/generate-messages path
|
|
671
|
+
from the lane worker before writing a success receipt.
|
|
649
672
|
The generated-message cells are not prompt proof: `currentRevisionGeneratedMessages`,
|
|
650
673
|
Generate Message column counts, `messagesCount`, or rendered row previews prove
|
|
651
674
|
only that table cells exist from the current brief/template, not that the
|
|
@@ -672,12 +695,38 @@ Parent-thread handwritten copy or setting `currentStep` is not proof.
|
|
|
672
695
|
</command_backed_workflow>
|
|
673
696
|
|
|
674
697
|
<objective>
|
|
675
|
-
1. **Inventory first
|
|
698
|
+
1. **Inventory first, then obey the setup plan**: `get_campaigns` +
|
|
699
|
+
`list_tables` + `get_campaign_waterfall` in the active workspace. Treat
|
|
700
|
+
`list_tables` and the managed waterfall as authoritative for orientation
|
|
701
|
+
before the command-backed plan; `get_campaigns` is a recent campaign page and
|
|
702
|
+
may miss canonical evergreen lanes. Match existing campaigns/tables/waterfall
|
|
703
|
+
slots to the plan by name (case-insensitive, ignore suffixes like "(Copy)")
|
|
704
|
+
and stored slot identity. `list_tables.campaignStatus` and
|
|
705
|
+
`list_tables.dashboardBucket` are part of the identity check: a matching
|
|
706
|
+
`ARCHIVED` table/campaign is not a plain `REUSE`. If it is the canonical prod
|
|
707
|
+
slot and the invocation explicitly allows dashboard visibility repair, repair
|
|
708
|
+
it to `PAUSED`; otherwise treat it as archived inventory only. After
|
|
709
|
+
`setup_evergreen_campaigns({ mode:"plan" })` returns, that plan is
|
|
710
|
+
authoritative: a lane packet with `intent:"create"` must stay a create packet,
|
|
711
|
+
even when archived waterfall entries or `get_campaign` readbacks prove an old
|
|
712
|
+
CampaignOffer still exists. A matching non-archived campaign/table/waterfall
|
|
713
|
+
slot may be reused only when the command-backed plan returns a reuse packet
|
|
714
|
+
or the user supplied exact current ids. Never create a second campaign for a
|
|
715
|
+
non-archived slot that the plan selected for reuse.
|
|
676
716
|
2. **Create only the missing slots** through the full `$sellable:create-campaign`
|
|
677
717
|
workflow path for each lane, using the lane packet as the setup basis:
|
|
678
718
|
- Post Engagers lanes: that sender's ID only. Shared lanes: all the senders' IDs.
|
|
679
719
|
- The brief and message direction are lane-specific. Never reuse the Post
|
|
680
720
|
Engagers opening for Shared Cold Fallback.
|
|
721
|
+
- The warm post-engager first-message template is allowed only for
|
|
722
|
+
sender-owned Post Engagers lanes. Do not pass the warm template into Shared
|
|
723
|
+
Signal Discovery or Shared Cold Fallback; those shared lanes must arrive at
|
|
724
|
+
their copy through Message Drafting and generated-message validation.
|
|
725
|
+
Short form: warm post-engager first-message template is allowed only for sender-owned Post Engagers lanes.
|
|
726
|
+
Short form: Do not pass the warm template into Shared Signal Discovery or Shared Cold Fallback.
|
|
727
|
+
Short form: Shared lanes must reject generic product-summary samples.
|
|
728
|
+
Short form: Shared lanes must reject three nearly identical samples.
|
|
729
|
+
Short form: revise or rerun the packaged create-campaign/generate-messages path.
|
|
681
730
|
- **Post Engagers** first-message style: short, casual, references the
|
|
682
731
|
sender-authored post they engaged with, closed question, **no internal
|
|
683
732
|
vocabulary, no pitch, no meeting ask** in message one:
|
|
@@ -738,7 +787,10 @@ Parent-thread handwritten copy or setting `currentStep` is not proof.
|
|
|
738
787
|
already launched and must be reported separately, and `ARCHIVED` must be
|
|
739
788
|
repaired only when the prompt explicitly allows dashboard visibility repair.
|
|
740
789
|
- A full campaign brief exists, including delivery format, token rules,
|
|
741
|
-
hard avoids, source-use rules
|
|
790
|
+
hard avoids, and source-use rules. Post Engagers require an approved warm
|
|
791
|
+
first-message template. Shared Signal Discovery and Shared Cold Fallback
|
|
792
|
+
require `firstMessageTemplateState` with the no-preset generate-messages
|
|
793
|
+
marker instead of a copied first-message template.
|
|
742
794
|
- A source/list decision has been resolved and campaign rows are loaded. If
|
|
743
795
|
there is no approved source or no rows can be copied, report `blocked` with
|
|
744
796
|
the missing source detail; do not call the campaign complete.
|
|
@@ -760,10 +812,13 @@ Parent-thread handwritten copy or setting `currentStep` is not proof.
|
|
|
760
812
|
`get_campaign_message_preparation_status`. The generated-message cells are
|
|
761
813
|
not prompt proof; `currentRevisionGeneratedMessages` and row previews are
|
|
762
814
|
only downstream cell evidence. The proof must include
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
815
|
+
`validationResult:"passed"`, a passed quality review, and at least 3
|
|
816
|
+
reviewed sample messages. For Shared Cold Fallback, reject samples that
|
|
817
|
+
open with a standalone name followed by "Hey there" or a similarly generic
|
|
818
|
+
greeting. For all shared lanes, reject generic product-summary samples,
|
|
819
|
+
repeated near-identical samples, and any preserved Post Engagers opener;
|
|
820
|
+
revise or rerun the packaged create-campaign/generate-messages path before
|
|
821
|
+
reporting completion.
|
|
767
822
|
- The first review batch exists and at least 3 review rows have generated
|
|
768
823
|
messages from the approved brief. If fewer than 3 usable rows exist, report
|
|
769
824
|
the actual count and why.
|