@sellable/mcp 0.1.134 → 0.1.135
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.
|
@@ -568,6 +568,12 @@ export interface CreateCampaignResult {
|
|
|
568
568
|
watchUrl: string;
|
|
569
569
|
resumed?: boolean;
|
|
570
570
|
warning?: string;
|
|
571
|
+
approvalGate: {
|
|
572
|
+
kind: "brief-review";
|
|
573
|
+
mustShowBeforeQuestion: string[];
|
|
574
|
+
questionToolBlockedUntilShown: true;
|
|
575
|
+
};
|
|
576
|
+
nextStep: string;
|
|
571
577
|
}
|
|
572
578
|
export declare function createCampaign(input: CreateCampaignInput): Promise<CreateCampaignResult>;
|
|
573
579
|
export interface UpdateCampaignResult {
|
package/dist/tools/campaigns.js
CHANGED
|
@@ -658,6 +658,20 @@ function deriveOfferValue(name, briefContent) {
|
|
|
658
658
|
return heading.slice(0, 120);
|
|
659
659
|
return lines[0].slice(0, 120);
|
|
660
660
|
}
|
|
661
|
+
function buildBriefApprovalGate(watchUrl) {
|
|
662
|
+
return {
|
|
663
|
+
approvalGate: {
|
|
664
|
+
kind: "brief-review",
|
|
665
|
+
mustShowBeforeQuestion: [
|
|
666
|
+
"the full campaignBrief markdown the user is approving",
|
|
667
|
+
`Watch link: ${watchUrl}`,
|
|
668
|
+
],
|
|
669
|
+
questionToolBlockedUntilShown: true,
|
|
670
|
+
},
|
|
671
|
+
nextStep: "Before asking for approval, render the full campaign brief in normal chat text and then print " +
|
|
672
|
+
`Watch link: ${watchUrl}. Do not call AskUserQuestion or request_user_input until the user has seen both the brief content and this watch link.`,
|
|
673
|
+
};
|
|
674
|
+
}
|
|
661
675
|
export async function createCampaign(input) {
|
|
662
676
|
const api = getApi();
|
|
663
677
|
const config = getConfig();
|
|
@@ -675,6 +689,7 @@ export async function createCampaign(input) {
|
|
|
675
689
|
createdAt: existing.createdAt,
|
|
676
690
|
currentStep: existing.currentStep ?? null,
|
|
677
691
|
watchUrl,
|
|
692
|
+
...buildBriefApprovalGate(watchUrl),
|
|
678
693
|
resumed: true,
|
|
679
694
|
warning: hasCreateFields
|
|
680
695
|
? "campaignId provided; resume mode ignores create fields."
|
|
@@ -790,6 +805,7 @@ export async function createCampaign(input) {
|
|
|
790
805
|
createdAt: result.createdAt,
|
|
791
806
|
currentStep: result.currentStep,
|
|
792
807
|
watchUrl,
|
|
808
|
+
...buildBriefApprovalGate(watchUrl),
|
|
793
809
|
};
|
|
794
810
|
}
|
|
795
811
|
export async function updateCampaign(campaignId, input) {
|
package/package.json
CHANGED
|
@@ -431,8 +431,10 @@ brief`, `Revise target`, `Revise offer/proof`, and `Other / custom`.
|
|
|
431
431
|
brief approval question once `create_campaign` has returned `watchUrl`. This
|
|
432
432
|
is a hard gate for `AskUserQuestion` / `request_user_input`: do not ask
|
|
433
433
|
`Approve this brief before I start finding leads?` until the user has already
|
|
434
|
-
seen the
|
|
435
|
-
|
|
434
|
+
seen both (1) the full brief content being approved and (2) the watch link for
|
|
435
|
+
the live campaign shell. A summary like `the brief is visible there` is not a
|
|
436
|
+
valid approval surface. If the question panel would appear without the full
|
|
437
|
+
brief and a preceding `Watch link:` line, stop and render those first.
|
|
436
438
|
The visible brief must come before any optional debug persistence. After the
|
|
437
439
|
brief is synthesized, render the approval-ready brief in chat and
|
|
438
440
|
create/update the campaign shell before any visible `mkdir`, `Write`,
|
|
@@ -439,6 +439,7 @@
|
|
|
439
439
|
"then I will find good-fit leads"
|
|
440
440
|
],
|
|
441
441
|
"minimumVisibleBriefDetail": "full_readable_brief_before_question",
|
|
442
|
+
"forbiddenSubstituteApprovalSurface": "Do not replace the visible brief with a summary like `the brief is visible there`; the user must see the actual campaign brief content in chat before the approval question.",
|
|
442
443
|
"requiredCampaignLinks": [
|
|
443
444
|
"watchUrl"
|
|
444
445
|
],
|
|
@@ -47,7 +47,9 @@ real-time updates from your signed-in session.
|
|
|
47
47
|
Command-Enter or click that link to watch it in Sellable.
|
|
48
48
|
|
|
49
49
|
Now ask the brief approval question. Do not show the approve/revise question
|
|
50
|
-
panel until this `Watch link:` line
|
|
50
|
+
panel until the full brief content and this `Watch link:` line have appeared in
|
|
51
|
+
normal chat text. A summary such as "the brief is visible there" is not enough
|
|
52
|
+
for approval.
|
|
51
53
|
|
|
52
54
|
Cool, let's find leads.
|
|
53
55
|
```
|