@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
@@ -31,7 +31,7 @@ function getInstallVersion() {
31
31
  }
32
32
  }
33
33
 
34
- const CODEX_PLUGIN_VERSION = "0.1.40";
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/install",
3
- "version": "0.1.191",
3
+ "version": "0.1.193",
4
4
  "type": "module",
5
5
  "description": "One-command installer for Sellable MCP in Claude Code and Codex",
6
6
  "bin": {
@@ -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