@sellable/mcp 0.1.335 → 0.1.336
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/README.md +19 -34
- package/dist/api.js +3 -5
- package/dist/auth.js +13 -44
- package/dist/index-dev.js +0 -0
- package/dist/index.js +0 -0
- package/dist/server.js +4 -8
- package/dist/tools/campaign-message-preparation.d.ts +0 -8
- package/dist/tools/campaign-message-preparation.js +6 -13
- package/dist/tools/campaign-processing.d.ts +54 -0
- package/dist/tools/campaign-processing.js +39 -11
- package/dist/tools/campaigns.js +1 -1
- package/dist/tools/prompts.js +1 -1
- package/dist/tools/registry.d.ts +48 -84
- package/dist/tools/registry.js +0 -2
- package/dist/tools/tables.d.ts +0 -4
- package/dist/tools/tables.js +1 -1
- package/package.json +1 -1
- package/skills/create-campaign/SKILL.md +15 -17
- package/skills/create-campaign-v2/core/flow.v2.json +1 -1
- package/skills/create-campaign-v2/references/filter-leads.md +24 -0
- package/skills/create-campaign-v2/references/sample-validation-loop.md +129 -9
- package/skills/create-campaign-v2-tail/SKILL.md +16 -10
- package/skills/create-evergreen-campaigns/SKILL.md +14 -94
- package/skills/fill-send-horizon/SKILL.md +11 -18
- package/dist/tools/campaign-horizon-fill.d.ts +0 -93
- package/dist/tools/campaign-horizon-fill.js +0 -92
- package/skills/research/config.json +0 -9
package/dist/tools/registry.d.ts
CHANGED
|
@@ -474,83 +474,6 @@ export declare const allTools: ({
|
|
|
474
474
|
required: string[];
|
|
475
475
|
additionalProperties: boolean;
|
|
476
476
|
};
|
|
477
|
-
} | {
|
|
478
|
-
name: string;
|
|
479
|
-
description: string;
|
|
480
|
-
inputSchema: {
|
|
481
|
-
type: string;
|
|
482
|
-
properties: {
|
|
483
|
-
action: {
|
|
484
|
-
type: string;
|
|
485
|
-
enum: string[];
|
|
486
|
-
description: string;
|
|
487
|
-
};
|
|
488
|
-
campaignId: {
|
|
489
|
-
type: string;
|
|
490
|
-
description: string;
|
|
491
|
-
};
|
|
492
|
-
tableId: {
|
|
493
|
-
type: string;
|
|
494
|
-
description: string;
|
|
495
|
-
};
|
|
496
|
-
stateRevision: {
|
|
497
|
-
type: string;
|
|
498
|
-
description: string;
|
|
499
|
-
};
|
|
500
|
-
excludedPostIds: {
|
|
501
|
-
type: string;
|
|
502
|
-
items: {
|
|
503
|
-
type: string;
|
|
504
|
-
};
|
|
505
|
-
maxItems: number;
|
|
506
|
-
description: string;
|
|
507
|
-
};
|
|
508
|
-
excludedPostUrls: {
|
|
509
|
-
type: string;
|
|
510
|
-
items: {
|
|
511
|
-
type: string;
|
|
512
|
-
};
|
|
513
|
-
maxItems: number;
|
|
514
|
-
description: string;
|
|
515
|
-
};
|
|
516
|
-
excludedAuthorProfileUrls: {
|
|
517
|
-
type: string;
|
|
518
|
-
items: {
|
|
519
|
-
type: string;
|
|
520
|
-
};
|
|
521
|
-
maxItems: number;
|
|
522
|
-
description: string;
|
|
523
|
-
};
|
|
524
|
-
excludedAuthorNames: {
|
|
525
|
-
type: string;
|
|
526
|
-
items: {
|
|
527
|
-
type: string;
|
|
528
|
-
};
|
|
529
|
-
maxItems: number;
|
|
530
|
-
description: string;
|
|
531
|
-
};
|
|
532
|
-
targetPreparedMessages: {
|
|
533
|
-
type: string;
|
|
534
|
-
minimum: number;
|
|
535
|
-
maximum: number;
|
|
536
|
-
description: string;
|
|
537
|
-
};
|
|
538
|
-
maxRowsToCheck: {
|
|
539
|
-
type: string;
|
|
540
|
-
minimum: number;
|
|
541
|
-
maximum: number;
|
|
542
|
-
description: string;
|
|
543
|
-
};
|
|
544
|
-
batchSize: {
|
|
545
|
-
type: string;
|
|
546
|
-
minimum: number;
|
|
547
|
-
maximum: number;
|
|
548
|
-
description: string;
|
|
549
|
-
};
|
|
550
|
-
};
|
|
551
|
-
required: string[];
|
|
552
|
-
additionalProperties: boolean;
|
|
553
|
-
};
|
|
554
477
|
} | {
|
|
555
478
|
name: string;
|
|
556
479
|
description: string;
|
|
@@ -581,12 +504,6 @@ export declare const allTools: ({
|
|
|
581
504
|
maximum: number;
|
|
582
505
|
description: string;
|
|
583
506
|
};
|
|
584
|
-
maxBatchRows: {
|
|
585
|
-
type: string;
|
|
586
|
-
minimum: number;
|
|
587
|
-
maximum: number;
|
|
588
|
-
description: string;
|
|
589
|
-
};
|
|
590
507
|
approvalMode: {
|
|
591
508
|
type: string;
|
|
592
509
|
enum: string[];
|
|
@@ -623,7 +540,6 @@ export declare const allTools: ({
|
|
|
623
540
|
targetPreparedMessages?: undefined;
|
|
624
541
|
maxRowsToCheck?: undefined;
|
|
625
542
|
batchSize?: undefined;
|
|
626
|
-
maxBatchRows?: undefined;
|
|
627
543
|
approvalMode?: undefined;
|
|
628
544
|
autoContinue?: undefined;
|
|
629
545
|
disableLowPassRateStop?: undefined;
|
|
@@ -690,6 +606,8 @@ export declare const allTools: ({
|
|
|
690
606
|
templateRevision?: undefined;
|
|
691
607
|
timeoutMs?: undefined;
|
|
692
608
|
intervalMs?: undefined;
|
|
609
|
+
rowIds?: undefined;
|
|
610
|
+
enrichCellIds?: undefined;
|
|
693
611
|
templateMarkdown?: undefined;
|
|
694
612
|
approvedMessageTemplate?: undefined;
|
|
695
613
|
};
|
|
@@ -745,6 +663,8 @@ export declare const allTools: ({
|
|
|
745
663
|
templateRevision?: undefined;
|
|
746
664
|
timeoutMs?: undefined;
|
|
747
665
|
intervalMs?: undefined;
|
|
666
|
+
rowIds?: undefined;
|
|
667
|
+
enrichCellIds?: undefined;
|
|
748
668
|
templateMarkdown?: undefined;
|
|
749
669
|
approvedMessageTemplate?: undefined;
|
|
750
670
|
};
|
|
@@ -804,6 +724,8 @@ export declare const allTools: ({
|
|
|
804
724
|
templateRevision?: undefined;
|
|
805
725
|
timeoutMs?: undefined;
|
|
806
726
|
intervalMs?: undefined;
|
|
727
|
+
rowIds?: undefined;
|
|
728
|
+
enrichCellIds?: undefined;
|
|
807
729
|
templateMarkdown?: undefined;
|
|
808
730
|
approvedMessageTemplate?: undefined;
|
|
809
731
|
};
|
|
@@ -843,12 +765,52 @@ export declare const allTools: ({
|
|
|
843
765
|
limit?: undefined;
|
|
844
766
|
forceRerun?: undefined;
|
|
845
767
|
reason?: undefined;
|
|
768
|
+
rowIds?: undefined;
|
|
769
|
+
enrichCellIds?: undefined;
|
|
846
770
|
templateMarkdown?: undefined;
|
|
847
771
|
approvedMessageTemplate?: undefined;
|
|
848
772
|
};
|
|
849
773
|
additionalProperties: boolean;
|
|
850
774
|
required?: undefined;
|
|
851
775
|
};
|
|
776
|
+
} | {
|
|
777
|
+
name: string;
|
|
778
|
+
description: string;
|
|
779
|
+
inputSchema: {
|
|
780
|
+
type: string;
|
|
781
|
+
properties: {
|
|
782
|
+
tableId: {
|
|
783
|
+
type: string;
|
|
784
|
+
};
|
|
785
|
+
rowIds: {
|
|
786
|
+
type: string;
|
|
787
|
+
items: {
|
|
788
|
+
type: string;
|
|
789
|
+
};
|
|
790
|
+
};
|
|
791
|
+
enrichCellIds: {
|
|
792
|
+
type: string;
|
|
793
|
+
items: {
|
|
794
|
+
type: string;
|
|
795
|
+
};
|
|
796
|
+
};
|
|
797
|
+
campaignId?: undefined;
|
|
798
|
+
columnRole?: undefined;
|
|
799
|
+
rowSelector?: undefined;
|
|
800
|
+
limit?: undefined;
|
|
801
|
+
forceRerun?: undefined;
|
|
802
|
+
reason?: undefined;
|
|
803
|
+
minPassedCount?: undefined;
|
|
804
|
+
minGeneratedMessages?: undefined;
|
|
805
|
+
templateRevision?: undefined;
|
|
806
|
+
timeoutMs?: undefined;
|
|
807
|
+
intervalMs?: undefined;
|
|
808
|
+
templateMarkdown?: undefined;
|
|
809
|
+
approvedMessageTemplate?: undefined;
|
|
810
|
+
};
|
|
811
|
+
required: string[];
|
|
812
|
+
additionalProperties: boolean;
|
|
813
|
+
};
|
|
852
814
|
} | {
|
|
853
815
|
name: string;
|
|
854
816
|
description: string;
|
|
@@ -899,6 +861,8 @@ export declare const allTools: ({
|
|
|
899
861
|
templateRevision?: undefined;
|
|
900
862
|
timeoutMs?: undefined;
|
|
901
863
|
intervalMs?: undefined;
|
|
864
|
+
rowIds?: undefined;
|
|
865
|
+
enrichCellIds?: undefined;
|
|
902
866
|
};
|
|
903
867
|
required: string[];
|
|
904
868
|
additionalProperties: boolean;
|
package/dist/tools/registry.js
CHANGED
|
@@ -2,7 +2,6 @@ import { authToolDefinitions } from "./auth.js";
|
|
|
2
2
|
import { blueprintCommitToolDefinitions } from "./blueprint-commit.js";
|
|
3
3
|
import { bootstrapToolDefinitions } from "./bootstrap.js";
|
|
4
4
|
import { campaignAbTestToolDefinitions } from "./campaign-ab-test.js";
|
|
5
|
-
import { campaignHorizonFillToolDefinitions } from "./campaign-horizon-fill.js";
|
|
6
5
|
import { campaignMessagePreparationToolDefinitions } from "./campaign-message-preparation.js";
|
|
7
6
|
import { campaignProcessingToolDefinitions } from "./campaign-processing.js";
|
|
8
7
|
import { campaignToolDefinitions } from "./campaigns.js";
|
|
@@ -43,7 +42,6 @@ import { workspaceToolDefinitions } from "./workspaces.js";
|
|
|
43
42
|
export const allTools = [
|
|
44
43
|
...campaignToolDefinitions,
|
|
45
44
|
...campaignAbTestToolDefinitions,
|
|
46
|
-
...campaignHorizonFillToolDefinitions,
|
|
47
45
|
...campaignMessagePreparationToolDefinitions,
|
|
48
46
|
...campaignProcessingToolDefinitions,
|
|
49
47
|
...authToolDefinitions,
|
package/dist/tools/tables.d.ts
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
export interface WorkflowTableListItem {
|
|
2
2
|
id: string;
|
|
3
3
|
name: string;
|
|
4
|
-
workspaceId: string | null;
|
|
5
|
-
status: string | null;
|
|
6
|
-
campaignStatus: string | null;
|
|
7
|
-
dashboardBucket: "active" | "archived";
|
|
8
4
|
type: string | null;
|
|
9
5
|
campaignOfferId: string | null;
|
|
10
6
|
campaignBacked: boolean;
|
package/dist/tools/tables.js
CHANGED
|
@@ -6,7 +6,7 @@ import { getApi } from "../api.js";
|
|
|
6
6
|
export const tableToolDefinitions = [
|
|
7
7
|
{
|
|
8
8
|
name: "list_tables",
|
|
9
|
-
description: "List all workflow tables in the active workspace. Returns metadata including
|
|
9
|
+
description: "List all workflow tables in the active workspace. Returns metadata including whether each table is campaign-backed and whether it has a sequence attached.\n\n" +
|
|
10
10
|
"Unlike get_campaigns, this lists every WorkflowTable regardless of how it was created, including create_workflow_table, create_on_demand_table, and UI-created tables.",
|
|
11
11
|
inputSchema: {
|
|
12
12
|
type: "object",
|
package/package.json
CHANGED
|
@@ -44,9 +44,9 @@ allowed-tools:
|
|
|
44
44
|
- mcp__sellable__save_rubrics
|
|
45
45
|
- mcp__sellable__get_campaign_table_schema
|
|
46
46
|
- mcp__sellable__select_campaign_cells
|
|
47
|
+
- mcp__sellable__record_campaign_review_batch
|
|
47
48
|
- mcp__sellable__queue_campaign_cells
|
|
48
49
|
- mcp__sellable__wait_for_campaign_processing
|
|
49
|
-
- mcp__sellable__fill_campaign_horizon
|
|
50
50
|
- mcp__sellable__start_campaign_message_preparation
|
|
51
51
|
- mcp__sellable__get_campaign_message_preparation_status
|
|
52
52
|
- mcp__sellable__cancel_campaign_message_preparation
|
|
@@ -105,16 +105,15 @@ most one direct `enrich_with_prospeo` sample when row evidence is too thin.
|
|
|
105
105
|
After filter approval, the browser should move to Filter Leads with
|
|
106
106
|
`currentStep: "apply-icp-rubric"` and show template waiting/approval copy until
|
|
107
107
|
the template is approved.
|
|
108
|
+
If the bounded filter run later returns `0/N` passes, do not immediately find
|
|
109
|
+
new leads. Load `references/sample-validation-loop.md`, run the zero-pass
|
|
110
|
+
rule-relaxability audit, then choose exactly one recovery: revise saved
|
|
111
|
+
rubrics, record a fresh same-source review batch, or change lead source. Change
|
|
112
|
+
source only when safe relaxation and same-source sampling would still fail or
|
|
113
|
+
would pass bad-fit rows.
|
|
108
114
|
The default path stays the existing first campaign-table execution slice:
|
|
109
115
|
review the normal `reviewBatchLimit:15`, approve reviewed draft rows, then move
|
|
110
116
|
to Settings/sequence/final greenlight. Only call
|
|
111
|
-
`fill_campaign_horizon` for explicit source-cleanup horizon-fill requests, such
|
|
112
|
-
as "fill sends from Signal Discovery but not John Cutler posts." Run
|
|
113
|
-
`fill_campaign_horizon({ action:"audit", ... })` first, then apply with the
|
|
114
|
-
returned `stateRevision`. It imports/prepares at most 300 eligible non-excluded
|
|
115
|
-
source rows in the first pass, caps prep batches at 100, skips existing rows
|
|
116
|
-
from excluded post/author sources, and does not launch the campaign. If the
|
|
117
|
-
user only asks for generic extra sends with no source cleanup, use
|
|
118
117
|
`start_campaign_message_preparation` when the user explicitly asks for more
|
|
119
118
|
prepared messages, a send count, or language like "fill up/load sends for these
|
|
120
119
|
senders." Treat those requests as capacity-fill preparation: calculate the
|
|
@@ -128,9 +127,8 @@ count `checkedRows` as enriched rows; it is only the table cursor. Use
|
|
|
128
127
|
messages", set `targetPreparedMessages:X`, omit `maxRowsToCheck`, and keep
|
|
129
128
|
`approvalMode:"mark_ready"`. The backend calibrates on at least 100 actually
|
|
130
129
|
enriched rows, estimates the row budget from observed rubric/pass yield, caps
|
|
131
|
-
`maxRowsToCheck` at
|
|
132
|
-
|
|
133
|
-
has queueable or active cells. If the user says "approve X messages", use
|
|
130
|
+
`maxRowsToCheck` at 2500, then adapts later batches up to 250 rows while
|
|
131
|
+
recalculating yield. If the user says "approve X messages", use
|
|
134
132
|
`approvalMode:"approve"` but still do not launch. If the user says "schedule X
|
|
135
133
|
sends" or asks to fill sender sends, use `approvalMode:"approve"` to approve
|
|
136
134
|
exactly the bounded X-message cohort during preparation, then continue through
|
|
@@ -893,11 +891,7 @@ updates.
|
|
|
893
891
|
|
|
894
892
|
1. Call `mcp__sellable__get_auth_status({})`.
|
|
895
893
|
2. If auth is not OK with `error.type === "config"` or `error.type === "auth"`,
|
|
896
|
-
the user has not signed in yet. Run
|
|
897
|
-
magic-link handoff. If a browser page or tool guidance gives the user a
|
|
898
|
-
manual fallback, it must be
|
|
899
|
-
`sellable auth set <token> --workspace-id <workspace_id>`. Do not instruct
|
|
900
|
-
the user to hand-edit JSON auth config.
|
|
894
|
+
the user has not signed in yet. Run the FTUX magic-link handoff:
|
|
901
895
|
|
|
902
896
|
a. Say to the user verbatim:
|
|
903
897
|
|
|
@@ -1085,7 +1079,11 @@ updates.
|
|
|
1085
1079
|
rubrics and Message Drafting runs.
|
|
1086
1080
|
After rubrics save, keep Filter Rules visible for approval; after approval,
|
|
1087
1081
|
move to Filter Leads with `currentStep: "apply-icp-rubric"` and wait there
|
|
1088
|
-
while Message Drafting finishes or the template is approved.
|
|
1082
|
+
while Message Drafting finishes or the template is approved. After template
|
|
1083
|
+
approval and bounded scoring, a `0/N` pass result must run the
|
|
1084
|
+
sample-validation zero-pass rule-relaxability audit before any lead-source
|
|
1085
|
+
revision; the three allowed recoveries are rubric revision, fresh
|
|
1086
|
+
same-source sample, or source revision.
|
|
1089
1087
|
If filters are skipped, launch Message Drafting before moving to
|
|
1090
1088
|
Messages/message review; updating `currentStep` to `messages` is not proof
|
|
1091
1089
|
that the background worker started. Queue the bounded campaign-table
|