@sellable/install 0.1.191 → 0.1.193
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.
|
@@ -47,6 +47,15 @@ sample rows as the drafting sample. Reject the task as `blocked` if the
|
|
|
47
47
|
campaign id, workspace, `selectedLeadListId`, `workflowTableId`, or non-empty
|
|
48
48
|
campaign-table execution slice does not match the branch input.
|
|
49
49
|
|
|
50
|
+
Do not block just because filters were chosen and `leadScoringRubrics` are not
|
|
51
|
+
yet visible in the campaign read. On the filters path, the parent thread is
|
|
52
|
+
saving and approving rubrics in parallel while this branch drafts from the
|
|
53
|
+
initial imported execution slice. Missing saved rubrics, a `filter-rules`
|
|
54
|
+
current step, or pending Filter Leads work means filter setup is still parent
|
|
55
|
+
owned; it is not a Message Drafting blocker. If campaign/list/table identity and
|
|
56
|
+
the non-empty execution slice match, continue drafting and return `status:
|
|
57
|
+
ready` with `basisStatus: usable_initial`.
|
|
58
|
+
|
|
50
59
|
Never inspect or reconstruct state from local artifacts in normal runs:
|
|
51
60
|
|
|
52
61
|
- do not require, read, hunt for, or mention `brief.md`
|
|
@@ -176,6 +185,11 @@ recommendation usable and report `status: ready` with `basisStatus:
|
|
|
176
185
|
offer the user a choice to keep the initial draft or rewrite with enriched/filter
|
|
177
186
|
data, but the rewrite must be explicit user opt-in.
|
|
178
187
|
|
|
188
|
+
If the parent chose filters but the branch read happens before `save_rubrics`
|
|
189
|
+
commits, do not wait, retry, or return `blocked`. The parent already waits for
|
|
190
|
+
both saved-filter approval and a message recommendation before message review,
|
|
191
|
+
so this branch should finish the reusable template from the initial sample.
|
|
192
|
+
|
|
179
193
|
Retry or regenerate without asking only when the initial recommendation is
|
|
180
194
|
missing, failed, structurally invalid, unsafe, or mismatched on campaign id,
|
|
181
195
|
selected source, `selectedLeadListId`, `workflowTableId`, or execution-slice
|
package/bin/sellable-install.mjs
CHANGED
|
@@ -31,7 +31,7 @@ function getInstallVersion() {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
const CODEX_PLUGIN_VERSION = "0.1.
|
|
34
|
+
const CODEX_PLUGIN_VERSION = "0.1.41";
|
|
35
35
|
const CODEX_PLUGIN_COMPAT_VERSIONS = [
|
|
36
36
|
"0.1.8",
|
|
37
37
|
"0.1.9",
|
|
@@ -586,6 +586,8 @@ const CREATE_CAMPAIGN_ALLOWED_TOOLS = [
|
|
|
586
586
|
"mcp__sellable__get_source_scout_registry",
|
|
587
587
|
"mcp__sellable__get_post_find_leads_scout_registry",
|
|
588
588
|
"mcp__sellable__get_active_workspace",
|
|
589
|
+
"mcp__sellable__list_workspaces",
|
|
590
|
+
"mcp__sellable__set_active_workspace",
|
|
589
591
|
"mcp__sellable__list_senders",
|
|
590
592
|
"mcp__sellable__get_sender",
|
|
591
593
|
"mcp__sellable__complete_sender_research",
|
|
@@ -628,6 +630,7 @@ const CREATE_CAMPAIGN_ALLOWED_TOOLS = [
|
|
|
628
630
|
"mcp__sellable__get_rows",
|
|
629
631
|
"mcp__sellable__get_rows_minimal",
|
|
630
632
|
"mcp__sellable__get_table_rows",
|
|
633
|
+
"mcp__sellable__load_csv_dnc_entries",
|
|
631
634
|
"mcp__sellable__load_csv_linkedin_leads",
|
|
632
635
|
"mcp__sellable__load_csv_domains",
|
|
633
636
|
"mcp__sellable__get_campaign_messages_preview",
|
package/package.json
CHANGED
|
@@ -14,6 +14,8 @@ allowed-tools:
|
|
|
14
14
|
- mcp__sellable__get_source_scout_registry
|
|
15
15
|
- mcp__sellable__get_post_find_leads_scout_registry
|
|
16
16
|
- mcp__sellable__get_active_workspace
|
|
17
|
+
- mcp__sellable__list_workspaces
|
|
18
|
+
- mcp__sellable__set_active_workspace
|
|
17
19
|
- mcp__sellable__list_senders
|
|
18
20
|
- mcp__sellable__get_sender
|
|
19
21
|
- mcp__sellable__complete_sender_research
|
|
@@ -56,6 +58,7 @@ allowed-tools:
|
|
|
56
58
|
- mcp__sellable__get_rows
|
|
57
59
|
- mcp__sellable__get_rows_minimal
|
|
58
60
|
- mcp__sellable__get_table_rows
|
|
61
|
+
- mcp__sellable__load_csv_dnc_entries
|
|
59
62
|
- mcp__sellable__load_csv_linkedin_leads
|
|
60
63
|
- mcp__sellable__load_csv_domains
|
|
61
64
|
- mcp__sellable__get_campaign_messages_preview
|
|
@@ -86,6 +89,18 @@ message approval` until the template is approved.
|
|
|
86
89
|
Use Template is the default message path; AI Generated is only an explicit
|
|
87
90
|
opt-out.
|
|
88
91
|
|
|
92
|
+
## DNC And Blocklist Handling
|
|
93
|
+
|
|
94
|
+
If the user says blocklist, DNC, do-not-contact, suppression list, or "do not
|
|
95
|
+
import/message these", use `load_csv_dnc_entries` before sourcing or importing.
|
|
96
|
+
This writes to Sellable's workspace-level DNC list after previewing the exact
|
|
97
|
+
active workspace name and ID and getting confirmation. Do not route this to
|
|
98
|
+
provider search exclusions, source-list workarounds, Prospeo domain filters, or
|
|
99
|
+
`save_domain_filters`. `load_csv_domains` and `save_domain_filters`
|
|
100
|
+
are for known-account targeting only, not DNC. Campaign creation already
|
|
101
|
+
includes a `DNC Check` column that checks domain and LinkedIn profile before
|
|
102
|
+
message generation.
|
|
103
|
+
|
|
89
104
|
## Opening Turn Contract
|
|
90
105
|
|
|
91
106
|
On the first visible response after this skill is invoked, do not narrate
|