@sellable/mcp 0.1.254 → 0.1.255
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/dist/server.js +4 -1
- package/dist/tools/csv-dnc.d.ts +36 -0
- package/dist/tools/csv-dnc.js +94 -2
- package/dist/tools/leads.d.ts +214 -16
- package/dist/tools/leads.js +39 -1
- package/dist/tools/registry.d.ts +186 -15
- package/package.json +1 -1
- package/skills/create-campaign/SKILL.md +6 -0
- package/skills/create-campaign-v2/references/filter-leads.md +2 -0
- package/skills/create-campaign-v2/references/lead-validation-preview.md +2 -0
- package/skills/create-campaign-v2/references/step-13-import-leads.md +3 -1
- package/skills/find-leads/SKILL.md +6 -0
package/dist/server.js
CHANGED
|
@@ -18,7 +18,7 @@ import { copySenderConfigTool, getEngageMemoryTool, migrateFlatConfigsTool, reco
|
|
|
18
18
|
import { getEngageStateTool, setEngageStateTool, } from "./tools/engage-state.js";
|
|
19
19
|
import { bulkEnrichWithProspeo, enrichWithProspeo, getProspeoCredits, } from "./tools/enrichment.js";
|
|
20
20
|
import { getCampaignFramework } from "./tools/framework.js";
|
|
21
|
-
import { cancelLeadImport, confirmProspeoCompanyAccounts, confirmLeadList, getProviderPrompt, importLeads, loadCsvDncEntriesTool, loadCsvDomains, loadCsvLinkedinLeads, lookupSalesNavFilter, saveDomainFilters, searchApollo, searchProspeoCompanies, searchProspeo, searchSalesNav, searchSignals, selectPromisingPosts, setHeadlineICPCriteria, } from "./tools/leads.js";
|
|
21
|
+
import { cancelLeadImport, confirmProspeoCompanyAccounts, confirmLeadList, getProviderPrompt, importLeads, listDncEntriesTool, loadCsvDncEntriesTool, loadCsvDomains, loadCsvLinkedinLeads, lookupSalesNavFilter, saveDomainFilters, searchApollo, searchProspeoCompanies, searchProspeo, searchSalesNav, searchSignals, selectPromisingPosts, setHeadlineICPCriteria, } from "./tools/leads.js";
|
|
22
22
|
import { fetchCompany, fetchCompanyPosts, fetchLinkedInPosts, fetchLinkedInProfile, fetchPostEngagers, getLinkedInProfile, getUserPosts, } from "./tools/linkedin.js";
|
|
23
23
|
import { getCampaignNavigationState } from "./tools/navigation.js";
|
|
24
24
|
import { addOnDemandLeads, createOnDemandCampaign, createOnDemandTable, initOnDemandSequence, pauseOnDemandCampaign, startOnDemandCampaign, } from "./tools/one-off.js";
|
|
@@ -366,6 +366,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
366
366
|
case "load_csv_dnc_entries":
|
|
367
367
|
result = await loadCsvDncEntriesTool(args);
|
|
368
368
|
break;
|
|
369
|
+
case "list_dnc_entries":
|
|
370
|
+
result = await listDncEntriesTool(args);
|
|
371
|
+
break;
|
|
369
372
|
case "save_domain_filters":
|
|
370
373
|
result = await saveDomainFilters(args);
|
|
371
374
|
break;
|
package/dist/tools/csv-dnc.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
type DncSourceType = "all" | "manual" | "hubspot";
|
|
1
2
|
type InvalidDncRow = {
|
|
2
3
|
row: number;
|
|
3
4
|
column: string | null;
|
|
@@ -14,6 +15,41 @@ export type LoadCsvDncEntriesInput = {
|
|
|
14
15
|
confirmationToken?: string;
|
|
15
16
|
confirmed?: boolean;
|
|
16
17
|
};
|
|
18
|
+
export type ListDncEntriesInput = {
|
|
19
|
+
page?: number;
|
|
20
|
+
limit?: number;
|
|
21
|
+
search?: string;
|
|
22
|
+
listName?: string;
|
|
23
|
+
sourceType?: DncSourceType;
|
|
24
|
+
includeDeleted?: boolean;
|
|
25
|
+
};
|
|
26
|
+
export declare function listDncEntries(input?: ListDncEntriesInput): Promise<{
|
|
27
|
+
ok: boolean;
|
|
28
|
+
workspaceId: string;
|
|
29
|
+
workspaceName: string;
|
|
30
|
+
pagination: {
|
|
31
|
+
total: number;
|
|
32
|
+
page: number;
|
|
33
|
+
limit: number;
|
|
34
|
+
totalPages: number;
|
|
35
|
+
};
|
|
36
|
+
listNames: string[];
|
|
37
|
+
entries: {
|
|
38
|
+
id: string | null;
|
|
39
|
+
type: string;
|
|
40
|
+
domain: string | null;
|
|
41
|
+
linkedin: string | null;
|
|
42
|
+
linkedinUsername: string | null;
|
|
43
|
+
name: string | null;
|
|
44
|
+
source: {
|
|
45
|
+
type: string;
|
|
46
|
+
label: string;
|
|
47
|
+
listName: string | null;
|
|
48
|
+
};
|
|
49
|
+
createdAt: string | null;
|
|
50
|
+
}[];
|
|
51
|
+
guidance: string;
|
|
52
|
+
}>;
|
|
17
53
|
export declare function loadCsvDncEntries(input: LoadCsvDncEntriesInput): Promise<{
|
|
18
54
|
guidance: string;
|
|
19
55
|
createdCount: number;
|
package/dist/tools/csv-dnc.js
CHANGED
|
@@ -14,6 +14,7 @@ const CONFIRMATION_TOKEN_VERSION = "csv-dnc-preview-v1";
|
|
|
14
14
|
const confirmationSecret = randomBytes(32).toString("hex");
|
|
15
15
|
const MAX_DNC_UPLOAD_BYTES = 5 * 1024 * 1024;
|
|
16
16
|
const MAX_DNC_CANDIDATES = 7500;
|
|
17
|
+
const MAX_DNC_LIST_LIMIT = 100;
|
|
17
18
|
const STRONG_DOMAIN_HEADER_KEYS = new Set([
|
|
18
19
|
"domain",
|
|
19
20
|
"website",
|
|
@@ -325,16 +326,84 @@ async function getVerifiedActiveWorkspace() {
|
|
|
325
326
|
const config = getConfig();
|
|
326
327
|
const activeWorkspaceId = config.activeWorkspaceId || config.workspaceId;
|
|
327
328
|
if (!activeWorkspaceId) {
|
|
328
|
-
throw new Error("No active workspace selected. Run list_workspaces then set_active_workspace
|
|
329
|
+
throw new Error("No active workspace selected. Run list_workspaces then set_active_workspace for the exact workspace whose Sellable DNC list should be read or updated.");
|
|
329
330
|
}
|
|
330
331
|
const api = getApi();
|
|
331
332
|
const { workspaces } = await api.get("/api/v3/workspaces");
|
|
332
333
|
const match = workspaces.find((workspace) => workspace.id === activeWorkspaceId);
|
|
333
334
|
if (!match) {
|
|
334
|
-
throw new Error(`Active workspace ${activeWorkspaceId} is not in the server access list. Run list_workspaces then set_active_workspace for the workspace
|
|
335
|
+
throw new Error(`Active workspace ${activeWorkspaceId} is not in the server access list. Run list_workspaces then set_active_workspace for the exact workspace whose Sellable DNC list should be read or updated.`);
|
|
335
336
|
}
|
|
336
337
|
return match;
|
|
337
338
|
}
|
|
339
|
+
function clampListPositiveInt(value, fallback, max) {
|
|
340
|
+
const parsed = typeof value === "number"
|
|
341
|
+
? value
|
|
342
|
+
: Number.parseInt(String(value ?? ""), 10);
|
|
343
|
+
if (!Number.isFinite(parsed) || parsed < 1)
|
|
344
|
+
return fallback;
|
|
345
|
+
return Math.min(Math.floor(parsed), max);
|
|
346
|
+
}
|
|
347
|
+
function normalizeDncSourceType(value) {
|
|
348
|
+
if (value === undefined || value === null || value === "")
|
|
349
|
+
return "all";
|
|
350
|
+
if (value === "all" || value === "manual" || value === "hubspot") {
|
|
351
|
+
return value;
|
|
352
|
+
}
|
|
353
|
+
throw new Error("sourceType must be one of all, manual, or hubspot.");
|
|
354
|
+
}
|
|
355
|
+
function optionalTrimmed(value) {
|
|
356
|
+
return typeof value === "string" && value.trim() ? value.trim() : null;
|
|
357
|
+
}
|
|
358
|
+
function normalizeCreatedAt(value) {
|
|
359
|
+
if (value instanceof Date)
|
|
360
|
+
return value.toISOString();
|
|
361
|
+
return optionalTrimmed(value);
|
|
362
|
+
}
|
|
363
|
+
function compactDncListEntry(entry) {
|
|
364
|
+
const domain = optionalTrimmed(entry.domain);
|
|
365
|
+
const linkedin = optionalTrimmed(entry.normalizedLinkedinUrl);
|
|
366
|
+
const sourceType = optionalTrimmed(entry.sourceType) ?? "manual";
|
|
367
|
+
return {
|
|
368
|
+
id: optionalTrimmed(entry.id),
|
|
369
|
+
type: domain ? "domain" : "linkedin",
|
|
370
|
+
domain,
|
|
371
|
+
linkedin,
|
|
372
|
+
linkedinUsername: optionalTrimmed(entry.linkedinUsername),
|
|
373
|
+
name: optionalTrimmed(entry.name),
|
|
374
|
+
source: {
|
|
375
|
+
type: sourceType,
|
|
376
|
+
label: optionalTrimmed(entry.sourceLabel) ??
|
|
377
|
+
(sourceType === "hubspot" ? "HubSpot" : "Manual"),
|
|
378
|
+
listName: optionalTrimmed(entry.sourceListName),
|
|
379
|
+
},
|
|
380
|
+
createdAt: normalizeCreatedAt(entry.createdAt),
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
function buildDncListPath(input) {
|
|
384
|
+
const page = clampListPositiveInt(input.page, 1, Number.MAX_SAFE_INTEGER);
|
|
385
|
+
const limit = clampListPositiveInt(input.limit, 25, MAX_DNC_LIST_LIMIT);
|
|
386
|
+
const sourceType = normalizeDncSourceType(input.sourceType);
|
|
387
|
+
const params = new URLSearchParams({
|
|
388
|
+
page: String(page),
|
|
389
|
+
limit: String(limit),
|
|
390
|
+
});
|
|
391
|
+
const search = optionalTrimmed(input.search);
|
|
392
|
+
const listName = optionalTrimmed(input.listName);
|
|
393
|
+
if (search)
|
|
394
|
+
params.set("search", search);
|
|
395
|
+
if (listName)
|
|
396
|
+
params.set("listName", listName);
|
|
397
|
+
if (sourceType !== "all")
|
|
398
|
+
params.set("sourceType", sourceType);
|
|
399
|
+
if (input.includeDeleted === true)
|
|
400
|
+
params.set("includeDeleted", "true");
|
|
401
|
+
return {
|
|
402
|
+
path: `/api/v3/dnc-list?${params.toString()}`,
|
|
403
|
+
page,
|
|
404
|
+
limit,
|
|
405
|
+
};
|
|
406
|
+
}
|
|
338
407
|
function makeSignature(payload) {
|
|
339
408
|
return createHmac("sha256", confirmationSecret)
|
|
340
409
|
.update(JSON.stringify(payload))
|
|
@@ -556,6 +625,29 @@ async function runDncSpotChecks(entries) {
|
|
|
556
625
|
}
|
|
557
626
|
return checks;
|
|
558
627
|
}
|
|
628
|
+
export async function listDncEntries(input = {}) {
|
|
629
|
+
const workspace = await getVerifiedActiveWorkspace();
|
|
630
|
+
const api = getApi();
|
|
631
|
+
const request = buildDncListPath(input);
|
|
632
|
+
const response = await api.get(request.path);
|
|
633
|
+
const pagination = response.pagination ?? {};
|
|
634
|
+
return {
|
|
635
|
+
ok: true,
|
|
636
|
+
workspaceId: workspace.id,
|
|
637
|
+
workspaceName: workspace.name,
|
|
638
|
+
pagination: {
|
|
639
|
+
total: pagination.total ?? 0,
|
|
640
|
+
page: pagination.page ?? request.page,
|
|
641
|
+
limit: pagination.limit ?? request.limit,
|
|
642
|
+
totalPages: pagination.totalPages ?? 0,
|
|
643
|
+
},
|
|
644
|
+
listNames: Array.isArray(response.listNames) ? response.listNames : [],
|
|
645
|
+
entries: Array.isArray(response.entries)
|
|
646
|
+
? response.entries.map(compactDncListEntry)
|
|
647
|
+
: [],
|
|
648
|
+
guidance: "This is Sellable's workspace DNC list used by DNC Check.",
|
|
649
|
+
};
|
|
650
|
+
}
|
|
559
651
|
export async function loadCsvDncEntries(input) {
|
|
560
652
|
const workspace = await getVerifiedActiveWorkspace();
|
|
561
653
|
const api = getApi();
|
package/dist/tools/leads.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type LoadCsvDncEntriesInput } from "./csv-dnc.js";
|
|
1
|
+
import { type ListDncEntriesInput, type LoadCsvDncEntriesInput } from "./csv-dnc.js";
|
|
2
2
|
export declare const MAX_SIGNAL_DISCOVERY_POSTS = 10;
|
|
3
3
|
export declare function normalizeTargetLeadCount(targetLeadCount: unknown, maxImportCount: number): number | undefined;
|
|
4
4
|
type SignalPostForImportSelection = {
|
|
@@ -248,6 +248,11 @@ export declare const leadToolDefinitions: ({
|
|
|
248
248
|
leadListId?: undefined;
|
|
249
249
|
leadListName?: undefined;
|
|
250
250
|
linkedInColumn?: undefined;
|
|
251
|
+
limit?: undefined;
|
|
252
|
+
search?: undefined;
|
|
253
|
+
listName?: undefined;
|
|
254
|
+
sourceType?: undefined;
|
|
255
|
+
includeDeleted?: undefined;
|
|
251
256
|
csvText?: undefined;
|
|
252
257
|
rawText?: undefined;
|
|
253
258
|
name?: undefined;
|
|
@@ -255,7 +260,6 @@ export declare const leadToolDefinitions: ({
|
|
|
255
260
|
exclude?: undefined;
|
|
256
261
|
seedCompanies?: undefined;
|
|
257
262
|
seedDomains?: undefined;
|
|
258
|
-
limit?: undefined;
|
|
259
263
|
sort?: undefined;
|
|
260
264
|
previewOnly?: undefined;
|
|
261
265
|
companySearchToken?: undefined;
|
|
@@ -436,6 +440,11 @@ export declare const leadToolDefinitions: ({
|
|
|
436
440
|
leadListId?: undefined;
|
|
437
441
|
leadListName?: undefined;
|
|
438
442
|
linkedInColumn?: undefined;
|
|
443
|
+
limit?: undefined;
|
|
444
|
+
search?: undefined;
|
|
445
|
+
listName?: undefined;
|
|
446
|
+
sourceType?: undefined;
|
|
447
|
+
includeDeleted?: undefined;
|
|
439
448
|
csvText?: undefined;
|
|
440
449
|
rawText?: undefined;
|
|
441
450
|
name?: undefined;
|
|
@@ -443,7 +452,6 @@ export declare const leadToolDefinitions: ({
|
|
|
443
452
|
exclude?: undefined;
|
|
444
453
|
seedCompanies?: undefined;
|
|
445
454
|
seedDomains?: undefined;
|
|
446
|
-
limit?: undefined;
|
|
447
455
|
sort?: undefined;
|
|
448
456
|
previewOnly?: undefined;
|
|
449
457
|
companySearchToken?: undefined;
|
|
@@ -523,6 +531,11 @@ export declare const leadToolDefinitions: ({
|
|
|
523
531
|
leadListId?: undefined;
|
|
524
532
|
leadListName?: undefined;
|
|
525
533
|
linkedInColumn?: undefined;
|
|
534
|
+
limit?: undefined;
|
|
535
|
+
search?: undefined;
|
|
536
|
+
listName?: undefined;
|
|
537
|
+
sourceType?: undefined;
|
|
538
|
+
includeDeleted?: undefined;
|
|
526
539
|
csvText?: undefined;
|
|
527
540
|
rawText?: undefined;
|
|
528
541
|
name?: undefined;
|
|
@@ -530,7 +543,6 @@ export declare const leadToolDefinitions: ({
|
|
|
530
543
|
exclude?: undefined;
|
|
531
544
|
seedCompanies?: undefined;
|
|
532
545
|
seedDomains?: undefined;
|
|
533
|
-
limit?: undefined;
|
|
534
546
|
sort?: undefined;
|
|
535
547
|
previewOnly?: undefined;
|
|
536
548
|
companySearchToken?: undefined;
|
|
@@ -682,6 +694,11 @@ export declare const leadToolDefinitions: ({
|
|
|
682
694
|
leadListId?: undefined;
|
|
683
695
|
leadListName?: undefined;
|
|
684
696
|
linkedInColumn?: undefined;
|
|
697
|
+
limit?: undefined;
|
|
698
|
+
search?: undefined;
|
|
699
|
+
listName?: undefined;
|
|
700
|
+
sourceType?: undefined;
|
|
701
|
+
includeDeleted?: undefined;
|
|
685
702
|
csvText?: undefined;
|
|
686
703
|
rawText?: undefined;
|
|
687
704
|
name?: undefined;
|
|
@@ -689,7 +706,6 @@ export declare const leadToolDefinitions: ({
|
|
|
689
706
|
exclude?: undefined;
|
|
690
707
|
seedCompanies?: undefined;
|
|
691
708
|
seedDomains?: undefined;
|
|
692
|
-
limit?: undefined;
|
|
693
709
|
sort?: undefined;
|
|
694
710
|
previewOnly?: undefined;
|
|
695
711
|
companySearchToken?: undefined;
|
|
@@ -783,6 +799,11 @@ export declare const leadToolDefinitions: ({
|
|
|
783
799
|
leadListId?: undefined;
|
|
784
800
|
leadListName?: undefined;
|
|
785
801
|
linkedInColumn?: undefined;
|
|
802
|
+
limit?: undefined;
|
|
803
|
+
search?: undefined;
|
|
804
|
+
listName?: undefined;
|
|
805
|
+
sourceType?: undefined;
|
|
806
|
+
includeDeleted?: undefined;
|
|
786
807
|
csvText?: undefined;
|
|
787
808
|
rawText?: undefined;
|
|
788
809
|
name?: undefined;
|
|
@@ -790,7 +811,6 @@ export declare const leadToolDefinitions: ({
|
|
|
790
811
|
exclude?: undefined;
|
|
791
812
|
seedCompanies?: undefined;
|
|
792
813
|
seedDomains?: undefined;
|
|
793
|
-
limit?: undefined;
|
|
794
814
|
sort?: undefined;
|
|
795
815
|
previewOnly?: undefined;
|
|
796
816
|
companySearchToken?: undefined;
|
|
@@ -893,6 +913,11 @@ export declare const leadToolDefinitions: ({
|
|
|
893
913
|
query?: undefined;
|
|
894
914
|
keywords?: undefined;
|
|
895
915
|
domainColumn?: undefined;
|
|
916
|
+
limit?: undefined;
|
|
917
|
+
search?: undefined;
|
|
918
|
+
listName?: undefined;
|
|
919
|
+
sourceType?: undefined;
|
|
920
|
+
includeDeleted?: undefined;
|
|
896
921
|
csvText?: undefined;
|
|
897
922
|
rawText?: undefined;
|
|
898
923
|
name?: undefined;
|
|
@@ -900,7 +925,6 @@ export declare const leadToolDefinitions: ({
|
|
|
900
925
|
exclude?: undefined;
|
|
901
926
|
seedCompanies?: undefined;
|
|
902
927
|
seedDomains?: undefined;
|
|
903
|
-
limit?: undefined;
|
|
904
928
|
sort?: undefined;
|
|
905
929
|
previewOnly?: undefined;
|
|
906
930
|
companySearchToken?: undefined;
|
|
@@ -930,6 +954,109 @@ export declare const leadToolDefinitions: ({
|
|
|
930
954
|
};
|
|
931
955
|
required: string[];
|
|
932
956
|
};
|
|
957
|
+
} | {
|
|
958
|
+
name: string;
|
|
959
|
+
description: string;
|
|
960
|
+
inputSchema: {
|
|
961
|
+
type: string;
|
|
962
|
+
properties: {
|
|
963
|
+
page: {
|
|
964
|
+
type: string;
|
|
965
|
+
description: string;
|
|
966
|
+
};
|
|
967
|
+
limit: {
|
|
968
|
+
type: string;
|
|
969
|
+
description: string;
|
|
970
|
+
};
|
|
971
|
+
search: {
|
|
972
|
+
type: string;
|
|
973
|
+
description: string;
|
|
974
|
+
};
|
|
975
|
+
listName: {
|
|
976
|
+
type: string;
|
|
977
|
+
description: string;
|
|
978
|
+
};
|
|
979
|
+
sourceType: {
|
|
980
|
+
type: string;
|
|
981
|
+
enum: string[];
|
|
982
|
+
description: string;
|
|
983
|
+
};
|
|
984
|
+
includeDeleted: {
|
|
985
|
+
type: string;
|
|
986
|
+
description: string;
|
|
987
|
+
};
|
|
988
|
+
provider?: undefined;
|
|
989
|
+
campaignOfferId?: undefined;
|
|
990
|
+
confirmed?: undefined;
|
|
991
|
+
searchMode?: undefined;
|
|
992
|
+
organization_num_employees_ranges?: undefined;
|
|
993
|
+
organization_locations?: undefined;
|
|
994
|
+
organization_not_locations?: undefined;
|
|
995
|
+
q_organization_keyword_tags?: undefined;
|
|
996
|
+
organization_industry_tag_ids?: undefined;
|
|
997
|
+
latest_funding_amount_min?: undefined;
|
|
998
|
+
latest_funding_amount_max?: undefined;
|
|
999
|
+
organization_revenue_min?: undefined;
|
|
1000
|
+
organization_revenue_max?: undefined;
|
|
1001
|
+
person_titles?: undefined;
|
|
1002
|
+
person_seniorities?: undefined;
|
|
1003
|
+
person_locations?: undefined;
|
|
1004
|
+
include_similar_titles?: undefined;
|
|
1005
|
+
q_keywords?: undefined;
|
|
1006
|
+
filters?: undefined;
|
|
1007
|
+
companyFilters?: undefined;
|
|
1008
|
+
contactFilters?: undefined;
|
|
1009
|
+
searchId?: undefined;
|
|
1010
|
+
searchName?: undefined;
|
|
1011
|
+
companySearchMode?: undefined;
|
|
1012
|
+
uploadedDomains?: undefined;
|
|
1013
|
+
currentStep?: undefined;
|
|
1014
|
+
filterType?: undefined;
|
|
1015
|
+
query?: undefined;
|
|
1016
|
+
keywords?: undefined;
|
|
1017
|
+
filePath?: undefined;
|
|
1018
|
+
domainColumn?: undefined;
|
|
1019
|
+
selectedColumns?: undefined;
|
|
1020
|
+
confirmationToken?: undefined;
|
|
1021
|
+
leadListId?: undefined;
|
|
1022
|
+
leadListName?: undefined;
|
|
1023
|
+
linkedInColumn?: undefined;
|
|
1024
|
+
csvText?: undefined;
|
|
1025
|
+
rawText?: undefined;
|
|
1026
|
+
name?: undefined;
|
|
1027
|
+
include?: undefined;
|
|
1028
|
+
exclude?: undefined;
|
|
1029
|
+
seedCompanies?: undefined;
|
|
1030
|
+
seedDomains?: undefined;
|
|
1031
|
+
sort?: undefined;
|
|
1032
|
+
previewOnly?: undefined;
|
|
1033
|
+
companySearchToken?: undefined;
|
|
1034
|
+
selectedCompanyIds?: undefined;
|
|
1035
|
+
domainFilterId?: undefined;
|
|
1036
|
+
type?: undefined;
|
|
1037
|
+
profileUrl?: undefined;
|
|
1038
|
+
postUrl?: undefined;
|
|
1039
|
+
companyUrl?: undefined;
|
|
1040
|
+
headlineICPCriteria?: undefined;
|
|
1041
|
+
rubricGuidelines?: undefined;
|
|
1042
|
+
sourceLeadListId?: undefined;
|
|
1043
|
+
targetLeadCount?: undefined;
|
|
1044
|
+
mode?: undefined;
|
|
1045
|
+
targetEngagerCount?: undefined;
|
|
1046
|
+
maxPostsToScrape?: undefined;
|
|
1047
|
+
tableId?: undefined;
|
|
1048
|
+
campaignName?: undefined;
|
|
1049
|
+
keepInSync?: undefined;
|
|
1050
|
+
jobId?: undefined;
|
|
1051
|
+
reviewBatchLimit?: undefined;
|
|
1052
|
+
allowPartialSourceList?: undefined;
|
|
1053
|
+
includeRawImportResult?: undefined;
|
|
1054
|
+
selections?: undefined;
|
|
1055
|
+
selectionMode?: undefined;
|
|
1056
|
+
scrapePlanMode?: undefined;
|
|
1057
|
+
};
|
|
1058
|
+
required: never[];
|
|
1059
|
+
};
|
|
933
1060
|
} | {
|
|
934
1061
|
name: string;
|
|
935
1062
|
description: string;
|
|
@@ -1000,11 +1127,15 @@ export declare const leadToolDefinitions: ({
|
|
|
1000
1127
|
selectedColumns?: undefined;
|
|
1001
1128
|
leadListId?: undefined;
|
|
1002
1129
|
leadListName?: undefined;
|
|
1130
|
+
limit?: undefined;
|
|
1131
|
+
search?: undefined;
|
|
1132
|
+
listName?: undefined;
|
|
1133
|
+
sourceType?: undefined;
|
|
1134
|
+
includeDeleted?: undefined;
|
|
1003
1135
|
include?: undefined;
|
|
1004
1136
|
exclude?: undefined;
|
|
1005
1137
|
seedCompanies?: undefined;
|
|
1006
1138
|
seedDomains?: undefined;
|
|
1007
|
-
limit?: undefined;
|
|
1008
1139
|
sort?: undefined;
|
|
1009
1140
|
previewOnly?: undefined;
|
|
1010
1141
|
companySearchToken?: undefined;
|
|
@@ -1091,12 +1222,16 @@ export declare const leadToolDefinitions: ({
|
|
|
1091
1222
|
leadListId?: undefined;
|
|
1092
1223
|
leadListName?: undefined;
|
|
1093
1224
|
linkedInColumn?: undefined;
|
|
1225
|
+
limit?: undefined;
|
|
1226
|
+
search?: undefined;
|
|
1227
|
+
listName?: undefined;
|
|
1228
|
+
sourceType?: undefined;
|
|
1229
|
+
includeDeleted?: undefined;
|
|
1094
1230
|
csvText?: undefined;
|
|
1095
1231
|
rawText?: undefined;
|
|
1096
1232
|
name?: undefined;
|
|
1097
1233
|
seedCompanies?: undefined;
|
|
1098
1234
|
seedDomains?: undefined;
|
|
1099
|
-
limit?: undefined;
|
|
1100
1235
|
sort?: undefined;
|
|
1101
1236
|
previewOnly?: undefined;
|
|
1102
1237
|
companySearchToken?: undefined;
|
|
@@ -1978,6 +2113,10 @@ export declare const leadToolDefinitions: ({
|
|
|
1978
2113
|
leadListId?: undefined;
|
|
1979
2114
|
leadListName?: undefined;
|
|
1980
2115
|
linkedInColumn?: undefined;
|
|
2116
|
+
search?: undefined;
|
|
2117
|
+
listName?: undefined;
|
|
2118
|
+
sourceType?: undefined;
|
|
2119
|
+
includeDeleted?: undefined;
|
|
1981
2120
|
csvText?: undefined;
|
|
1982
2121
|
rawText?: undefined;
|
|
1983
2122
|
name?: undefined;
|
|
@@ -2077,13 +2216,17 @@ export declare const leadToolDefinitions: ({
|
|
|
2077
2216
|
leadListId?: undefined;
|
|
2078
2217
|
leadListName?: undefined;
|
|
2079
2218
|
linkedInColumn?: undefined;
|
|
2219
|
+
limit?: undefined;
|
|
2220
|
+
search?: undefined;
|
|
2221
|
+
listName?: undefined;
|
|
2222
|
+
sourceType?: undefined;
|
|
2223
|
+
includeDeleted?: undefined;
|
|
2080
2224
|
csvText?: undefined;
|
|
2081
2225
|
rawText?: undefined;
|
|
2082
2226
|
include?: undefined;
|
|
2083
2227
|
exclude?: undefined;
|
|
2084
2228
|
seedCompanies?: undefined;
|
|
2085
2229
|
seedDomains?: undefined;
|
|
2086
|
-
limit?: undefined;
|
|
2087
2230
|
sort?: undefined;
|
|
2088
2231
|
previewOnly?: undefined;
|
|
2089
2232
|
domainFilterId?: undefined;
|
|
@@ -3114,6 +3257,11 @@ export declare const leadToolDefinitions: ({
|
|
|
3114
3257
|
leadListId?: undefined;
|
|
3115
3258
|
leadListName?: undefined;
|
|
3116
3259
|
linkedInColumn?: undefined;
|
|
3260
|
+
limit?: undefined;
|
|
3261
|
+
search?: undefined;
|
|
3262
|
+
listName?: undefined;
|
|
3263
|
+
sourceType?: undefined;
|
|
3264
|
+
includeDeleted?: undefined;
|
|
3117
3265
|
csvText?: undefined;
|
|
3118
3266
|
rawText?: undefined;
|
|
3119
3267
|
name?: undefined;
|
|
@@ -3121,7 +3269,6 @@ export declare const leadToolDefinitions: ({
|
|
|
3121
3269
|
exclude?: undefined;
|
|
3122
3270
|
seedCompanies?: undefined;
|
|
3123
3271
|
seedDomains?: undefined;
|
|
3124
|
-
limit?: undefined;
|
|
3125
3272
|
sort?: undefined;
|
|
3126
3273
|
previewOnly?: undefined;
|
|
3127
3274
|
companySearchToken?: undefined;
|
|
@@ -3264,6 +3411,10 @@ export declare const leadToolDefinitions: ({
|
|
|
3264
3411
|
leadListId?: undefined;
|
|
3265
3412
|
leadListName?: undefined;
|
|
3266
3413
|
linkedInColumn?: undefined;
|
|
3414
|
+
search?: undefined;
|
|
3415
|
+
listName?: undefined;
|
|
3416
|
+
sourceType?: undefined;
|
|
3417
|
+
includeDeleted?: undefined;
|
|
3267
3418
|
csvText?: undefined;
|
|
3268
3419
|
rawText?: undefined;
|
|
3269
3420
|
name?: undefined;
|
|
@@ -3396,6 +3547,11 @@ export declare const leadToolDefinitions: ({
|
|
|
3396
3547
|
confirmationToken?: undefined;
|
|
3397
3548
|
leadListId?: undefined;
|
|
3398
3549
|
linkedInColumn?: undefined;
|
|
3550
|
+
limit?: undefined;
|
|
3551
|
+
search?: undefined;
|
|
3552
|
+
listName?: undefined;
|
|
3553
|
+
sourceType?: undefined;
|
|
3554
|
+
includeDeleted?: undefined;
|
|
3399
3555
|
csvText?: undefined;
|
|
3400
3556
|
rawText?: undefined;
|
|
3401
3557
|
name?: undefined;
|
|
@@ -3403,7 +3559,6 @@ export declare const leadToolDefinitions: ({
|
|
|
3403
3559
|
exclude?: undefined;
|
|
3404
3560
|
seedCompanies?: undefined;
|
|
3405
3561
|
seedDomains?: undefined;
|
|
3406
|
-
limit?: undefined;
|
|
3407
3562
|
sort?: undefined;
|
|
3408
3563
|
previewOnly?: undefined;
|
|
3409
3564
|
companySearchToken?: undefined;
|
|
@@ -3480,6 +3635,11 @@ export declare const leadToolDefinitions: ({
|
|
|
3480
3635
|
leadListId?: undefined;
|
|
3481
3636
|
leadListName?: undefined;
|
|
3482
3637
|
linkedInColumn?: undefined;
|
|
3638
|
+
limit?: undefined;
|
|
3639
|
+
search?: undefined;
|
|
3640
|
+
listName?: undefined;
|
|
3641
|
+
sourceType?: undefined;
|
|
3642
|
+
includeDeleted?: undefined;
|
|
3483
3643
|
csvText?: undefined;
|
|
3484
3644
|
rawText?: undefined;
|
|
3485
3645
|
name?: undefined;
|
|
@@ -3487,7 +3647,6 @@ export declare const leadToolDefinitions: ({
|
|
|
3487
3647
|
exclude?: undefined;
|
|
3488
3648
|
seedCompanies?: undefined;
|
|
3489
3649
|
seedDomains?: undefined;
|
|
3490
|
-
limit?: undefined;
|
|
3491
3650
|
sort?: undefined;
|
|
3492
3651
|
previewOnly?: undefined;
|
|
3493
3652
|
companySearchToken?: undefined;
|
|
@@ -3600,6 +3759,11 @@ export declare const leadToolDefinitions: ({
|
|
|
3600
3759
|
leadListId?: undefined;
|
|
3601
3760
|
leadListName?: undefined;
|
|
3602
3761
|
linkedInColumn?: undefined;
|
|
3762
|
+
limit?: undefined;
|
|
3763
|
+
search?: undefined;
|
|
3764
|
+
listName?: undefined;
|
|
3765
|
+
sourceType?: undefined;
|
|
3766
|
+
includeDeleted?: undefined;
|
|
3603
3767
|
csvText?: undefined;
|
|
3604
3768
|
rawText?: undefined;
|
|
3605
3769
|
name?: undefined;
|
|
@@ -3607,7 +3771,6 @@ export declare const leadToolDefinitions: ({
|
|
|
3607
3771
|
exclude?: undefined;
|
|
3608
3772
|
seedCompanies?: undefined;
|
|
3609
3773
|
seedDomains?: undefined;
|
|
3610
|
-
limit?: undefined;
|
|
3611
3774
|
sort?: undefined;
|
|
3612
3775
|
previewOnly?: undefined;
|
|
3613
3776
|
companySearchToken?: undefined;
|
|
@@ -3725,6 +3888,11 @@ export declare const leadToolDefinitions: ({
|
|
|
3725
3888
|
leadListId?: undefined;
|
|
3726
3889
|
leadListName?: undefined;
|
|
3727
3890
|
linkedInColumn?: undefined;
|
|
3891
|
+
limit?: undefined;
|
|
3892
|
+
search?: undefined;
|
|
3893
|
+
listName?: undefined;
|
|
3894
|
+
sourceType?: undefined;
|
|
3895
|
+
includeDeleted?: undefined;
|
|
3728
3896
|
csvText?: undefined;
|
|
3729
3897
|
rawText?: undefined;
|
|
3730
3898
|
name?: undefined;
|
|
@@ -3732,7 +3900,6 @@ export declare const leadToolDefinitions: ({
|
|
|
3732
3900
|
exclude?: undefined;
|
|
3733
3901
|
seedCompanies?: undefined;
|
|
3734
3902
|
seedDomains?: undefined;
|
|
3735
|
-
limit?: undefined;
|
|
3736
3903
|
sort?: undefined;
|
|
3737
3904
|
previewOnly?: undefined;
|
|
3738
3905
|
companySearchToken?: undefined;
|
|
@@ -3814,6 +3981,11 @@ export declare const leadToolDefinitions: ({
|
|
|
3814
3981
|
leadListId?: undefined;
|
|
3815
3982
|
leadListName?: undefined;
|
|
3816
3983
|
linkedInColumn?: undefined;
|
|
3984
|
+
limit?: undefined;
|
|
3985
|
+
search?: undefined;
|
|
3986
|
+
listName?: undefined;
|
|
3987
|
+
sourceType?: undefined;
|
|
3988
|
+
includeDeleted?: undefined;
|
|
3817
3989
|
csvText?: undefined;
|
|
3818
3990
|
rawText?: undefined;
|
|
3819
3991
|
name?: undefined;
|
|
@@ -3821,7 +3993,6 @@ export declare const leadToolDefinitions: ({
|
|
|
3821
3993
|
exclude?: undefined;
|
|
3822
3994
|
seedCompanies?: undefined;
|
|
3823
3995
|
seedDomains?: undefined;
|
|
3824
|
-
limit?: undefined;
|
|
3825
3996
|
sort?: undefined;
|
|
3826
3997
|
previewOnly?: undefined;
|
|
3827
3998
|
companySearchToken?: undefined;
|
|
@@ -4162,6 +4333,33 @@ export declare function loadCsvDncEntriesTool(input: LoadCsvDncEntriesInput): Pr
|
|
|
4162
4333
|
}[];
|
|
4163
4334
|
guidance: string;
|
|
4164
4335
|
}>;
|
|
4336
|
+
export declare function listDncEntriesTool(input?: ListDncEntriesInput): Promise<{
|
|
4337
|
+
ok: boolean;
|
|
4338
|
+
workspaceId: string;
|
|
4339
|
+
workspaceName: string;
|
|
4340
|
+
pagination: {
|
|
4341
|
+
total: number;
|
|
4342
|
+
page: number;
|
|
4343
|
+
limit: number;
|
|
4344
|
+
totalPages: number;
|
|
4345
|
+
};
|
|
4346
|
+
listNames: string[];
|
|
4347
|
+
entries: {
|
|
4348
|
+
id: string | null;
|
|
4349
|
+
type: string;
|
|
4350
|
+
domain: string | null;
|
|
4351
|
+
linkedin: string | null;
|
|
4352
|
+
linkedinUsername: string | null;
|
|
4353
|
+
name: string | null;
|
|
4354
|
+
source: {
|
|
4355
|
+
type: string;
|
|
4356
|
+
label: string;
|
|
4357
|
+
listName: string | null;
|
|
4358
|
+
};
|
|
4359
|
+
createdAt: string | null;
|
|
4360
|
+
}[];
|
|
4361
|
+
guidance: string;
|
|
4362
|
+
}>;
|
|
4165
4363
|
export declare function saveDomainFilters(input: SaveDomainFiltersInput): Promise<unknown>;
|
|
4166
4364
|
export declare function lookupSalesNavFilter(input: LookupSalesNavFilterInput): Promise<{
|
|
4167
4365
|
filterType: string;
|
package/dist/tools/leads.js
CHANGED
|
@@ -4,7 +4,7 @@ import { getApi, SellableApiError } from "../api.js";
|
|
|
4
4
|
import { resolveSkillsDir } from "../skills.js";
|
|
5
5
|
import { resolveWorkspaceRoot } from "../utils/workspace-root.js";
|
|
6
6
|
import { buildCsvDomainPreview, matchesConfirmationToken, parseConfirmationToken, projectCsvCarryRows, } from "./csv-domains.js";
|
|
7
|
-
import { loadCsvDncEntries, } from "./csv-dnc.js";
|
|
7
|
+
import { listDncEntries, loadCsvDncEntries, } from "./csv-dnc.js";
|
|
8
8
|
import { buildCsvLinkedinPreview, matchesLinkedinConfirmationToken, parseLinkedinConfirmationToken, uploadCsvLinkedinFile, } from "./csv-linkedin.js";
|
|
9
9
|
import { assertInteractionApproval } from "./interaction-mode.js";
|
|
10
10
|
import { assertProviderPromptLoaded, markProviderPromptLoaded, } from "./provider-preflight.js";
|
|
@@ -1477,6 +1477,41 @@ export const leadToolDefinitions = [
|
|
|
1477
1477
|
required: ["filePath"],
|
|
1478
1478
|
},
|
|
1479
1479
|
},
|
|
1480
|
+
{
|
|
1481
|
+
name: "list_dnc_entries",
|
|
1482
|
+
description: "Show the active workspace's current Sellable DNC count, list names, and a compact page of entries through the workspace-scoped DNC endpoint. Use this when the user asks to show/check the current DNC list, count, or first page before importing. This is Sellable DNC used by DNC Check, not provider source-list routing.",
|
|
1483
|
+
inputSchema: {
|
|
1484
|
+
type: "object",
|
|
1485
|
+
properties: {
|
|
1486
|
+
page: {
|
|
1487
|
+
type: "number",
|
|
1488
|
+
description: "Page to read. Defaults to 1.",
|
|
1489
|
+
},
|
|
1490
|
+
limit: {
|
|
1491
|
+
type: "number",
|
|
1492
|
+
description: "Entries per page. Defaults to 25. Backend hard cap is 100.",
|
|
1493
|
+
},
|
|
1494
|
+
search: {
|
|
1495
|
+
type: "string",
|
|
1496
|
+
description: "Optional search across domain, LinkedIn username, or entry name.",
|
|
1497
|
+
},
|
|
1498
|
+
listName: {
|
|
1499
|
+
type: "string",
|
|
1500
|
+
description: "Optional Sellable DNC list name filter.",
|
|
1501
|
+
},
|
|
1502
|
+
sourceType: {
|
|
1503
|
+
type: "string",
|
|
1504
|
+
enum: ["all", "manual", "hubspot"],
|
|
1505
|
+
description: "Optional source filter. Defaults to all Sellable DNC entries.",
|
|
1506
|
+
},
|
|
1507
|
+
includeDeleted: {
|
|
1508
|
+
type: "boolean",
|
|
1509
|
+
description: "Include deleted/disabled source entries when true. Defaults to false.",
|
|
1510
|
+
},
|
|
1511
|
+
},
|
|
1512
|
+
required: [],
|
|
1513
|
+
},
|
|
1514
|
+
},
|
|
1480
1515
|
{
|
|
1481
1516
|
name: "load_csv_dnc_entries",
|
|
1482
1517
|
description: "Preview and confirm pasted text, pasted CSV, or a CSV file of domains and LinkedIn profile URLs, then add the valid entries to the active workspace's Sellable DNC list. This is the blocklist/suppression-list path. It reuses Sellable's workspace-scoped DNC endpoints and the campaign DNC Check column, not provider search filters or source-list workarounds.",
|
|
@@ -3384,6 +3419,9 @@ export async function loadCsvLinkedinLeads(input) {
|
|
|
3384
3419
|
export async function loadCsvDncEntriesTool(input) {
|
|
3385
3420
|
return loadCsvDncEntries(input);
|
|
3386
3421
|
}
|
|
3422
|
+
export async function listDncEntriesTool(input = {}) {
|
|
3423
|
+
return listDncEntries(input);
|
|
3424
|
+
}
|
|
3387
3425
|
export async function saveDomainFilters(input) {
|
|
3388
3426
|
const api = getApi();
|
|
3389
3427
|
return api.post(`/api/v3/prospeo/domain-filters`, {
|
package/dist/tools/registry.d.ts
CHANGED
|
@@ -1897,6 +1897,11 @@ export declare const allTools: ({
|
|
|
1897
1897
|
leadListId?: undefined;
|
|
1898
1898
|
leadListName?: undefined;
|
|
1899
1899
|
linkedInColumn?: undefined;
|
|
1900
|
+
limit?: undefined;
|
|
1901
|
+
search?: undefined;
|
|
1902
|
+
listName?: undefined;
|
|
1903
|
+
sourceType?: undefined;
|
|
1904
|
+
includeDeleted?: undefined;
|
|
1900
1905
|
csvText?: undefined;
|
|
1901
1906
|
rawText?: undefined;
|
|
1902
1907
|
name?: undefined;
|
|
@@ -1904,7 +1909,6 @@ export declare const allTools: ({
|
|
|
1904
1909
|
exclude?: undefined;
|
|
1905
1910
|
seedCompanies?: undefined;
|
|
1906
1911
|
seedDomains?: undefined;
|
|
1907
|
-
limit?: undefined;
|
|
1908
1912
|
sort?: undefined;
|
|
1909
1913
|
previewOnly?: undefined;
|
|
1910
1914
|
companySearchToken?: undefined;
|
|
@@ -2085,6 +2089,11 @@ export declare const allTools: ({
|
|
|
2085
2089
|
leadListId?: undefined;
|
|
2086
2090
|
leadListName?: undefined;
|
|
2087
2091
|
linkedInColumn?: undefined;
|
|
2092
|
+
limit?: undefined;
|
|
2093
|
+
search?: undefined;
|
|
2094
|
+
listName?: undefined;
|
|
2095
|
+
sourceType?: undefined;
|
|
2096
|
+
includeDeleted?: undefined;
|
|
2088
2097
|
csvText?: undefined;
|
|
2089
2098
|
rawText?: undefined;
|
|
2090
2099
|
name?: undefined;
|
|
@@ -2092,7 +2101,6 @@ export declare const allTools: ({
|
|
|
2092
2101
|
exclude?: undefined;
|
|
2093
2102
|
seedCompanies?: undefined;
|
|
2094
2103
|
seedDomains?: undefined;
|
|
2095
|
-
limit?: undefined;
|
|
2096
2104
|
sort?: undefined;
|
|
2097
2105
|
previewOnly?: undefined;
|
|
2098
2106
|
companySearchToken?: undefined;
|
|
@@ -2172,6 +2180,11 @@ export declare const allTools: ({
|
|
|
2172
2180
|
leadListId?: undefined;
|
|
2173
2181
|
leadListName?: undefined;
|
|
2174
2182
|
linkedInColumn?: undefined;
|
|
2183
|
+
limit?: undefined;
|
|
2184
|
+
search?: undefined;
|
|
2185
|
+
listName?: undefined;
|
|
2186
|
+
sourceType?: undefined;
|
|
2187
|
+
includeDeleted?: undefined;
|
|
2175
2188
|
csvText?: undefined;
|
|
2176
2189
|
rawText?: undefined;
|
|
2177
2190
|
name?: undefined;
|
|
@@ -2179,7 +2192,6 @@ export declare const allTools: ({
|
|
|
2179
2192
|
exclude?: undefined;
|
|
2180
2193
|
seedCompanies?: undefined;
|
|
2181
2194
|
seedDomains?: undefined;
|
|
2182
|
-
limit?: undefined;
|
|
2183
2195
|
sort?: undefined;
|
|
2184
2196
|
previewOnly?: undefined;
|
|
2185
2197
|
companySearchToken?: undefined;
|
|
@@ -2331,6 +2343,11 @@ export declare const allTools: ({
|
|
|
2331
2343
|
leadListId?: undefined;
|
|
2332
2344
|
leadListName?: undefined;
|
|
2333
2345
|
linkedInColumn?: undefined;
|
|
2346
|
+
limit?: undefined;
|
|
2347
|
+
search?: undefined;
|
|
2348
|
+
listName?: undefined;
|
|
2349
|
+
sourceType?: undefined;
|
|
2350
|
+
includeDeleted?: undefined;
|
|
2334
2351
|
csvText?: undefined;
|
|
2335
2352
|
rawText?: undefined;
|
|
2336
2353
|
name?: undefined;
|
|
@@ -2338,7 +2355,6 @@ export declare const allTools: ({
|
|
|
2338
2355
|
exclude?: undefined;
|
|
2339
2356
|
seedCompanies?: undefined;
|
|
2340
2357
|
seedDomains?: undefined;
|
|
2341
|
-
limit?: undefined;
|
|
2342
2358
|
sort?: undefined;
|
|
2343
2359
|
previewOnly?: undefined;
|
|
2344
2360
|
companySearchToken?: undefined;
|
|
@@ -2432,6 +2448,11 @@ export declare const allTools: ({
|
|
|
2432
2448
|
leadListId?: undefined;
|
|
2433
2449
|
leadListName?: undefined;
|
|
2434
2450
|
linkedInColumn?: undefined;
|
|
2451
|
+
limit?: undefined;
|
|
2452
|
+
search?: undefined;
|
|
2453
|
+
listName?: undefined;
|
|
2454
|
+
sourceType?: undefined;
|
|
2455
|
+
includeDeleted?: undefined;
|
|
2435
2456
|
csvText?: undefined;
|
|
2436
2457
|
rawText?: undefined;
|
|
2437
2458
|
name?: undefined;
|
|
@@ -2439,7 +2460,6 @@ export declare const allTools: ({
|
|
|
2439
2460
|
exclude?: undefined;
|
|
2440
2461
|
seedCompanies?: undefined;
|
|
2441
2462
|
seedDomains?: undefined;
|
|
2442
|
-
limit?: undefined;
|
|
2443
2463
|
sort?: undefined;
|
|
2444
2464
|
previewOnly?: undefined;
|
|
2445
2465
|
companySearchToken?: undefined;
|
|
@@ -2542,6 +2562,11 @@ export declare const allTools: ({
|
|
|
2542
2562
|
query?: undefined;
|
|
2543
2563
|
keywords?: undefined;
|
|
2544
2564
|
domainColumn?: undefined;
|
|
2565
|
+
limit?: undefined;
|
|
2566
|
+
search?: undefined;
|
|
2567
|
+
listName?: undefined;
|
|
2568
|
+
sourceType?: undefined;
|
|
2569
|
+
includeDeleted?: undefined;
|
|
2545
2570
|
csvText?: undefined;
|
|
2546
2571
|
rawText?: undefined;
|
|
2547
2572
|
name?: undefined;
|
|
@@ -2549,7 +2574,6 @@ export declare const allTools: ({
|
|
|
2549
2574
|
exclude?: undefined;
|
|
2550
2575
|
seedCompanies?: undefined;
|
|
2551
2576
|
seedDomains?: undefined;
|
|
2552
|
-
limit?: undefined;
|
|
2553
2577
|
sort?: undefined;
|
|
2554
2578
|
previewOnly?: undefined;
|
|
2555
2579
|
companySearchToken?: undefined;
|
|
@@ -2579,6 +2603,109 @@ export declare const allTools: ({
|
|
|
2579
2603
|
};
|
|
2580
2604
|
required: string[];
|
|
2581
2605
|
};
|
|
2606
|
+
} | {
|
|
2607
|
+
name: string;
|
|
2608
|
+
description: string;
|
|
2609
|
+
inputSchema: {
|
|
2610
|
+
type: string;
|
|
2611
|
+
properties: {
|
|
2612
|
+
page: {
|
|
2613
|
+
type: string;
|
|
2614
|
+
description: string;
|
|
2615
|
+
};
|
|
2616
|
+
limit: {
|
|
2617
|
+
type: string;
|
|
2618
|
+
description: string;
|
|
2619
|
+
};
|
|
2620
|
+
search: {
|
|
2621
|
+
type: string;
|
|
2622
|
+
description: string;
|
|
2623
|
+
};
|
|
2624
|
+
listName: {
|
|
2625
|
+
type: string;
|
|
2626
|
+
description: string;
|
|
2627
|
+
};
|
|
2628
|
+
sourceType: {
|
|
2629
|
+
type: string;
|
|
2630
|
+
enum: string[];
|
|
2631
|
+
description: string;
|
|
2632
|
+
};
|
|
2633
|
+
includeDeleted: {
|
|
2634
|
+
type: string;
|
|
2635
|
+
description: string;
|
|
2636
|
+
};
|
|
2637
|
+
provider?: undefined;
|
|
2638
|
+
campaignOfferId?: undefined;
|
|
2639
|
+
confirmed?: undefined;
|
|
2640
|
+
searchMode?: undefined;
|
|
2641
|
+
organization_num_employees_ranges?: undefined;
|
|
2642
|
+
organization_locations?: undefined;
|
|
2643
|
+
organization_not_locations?: undefined;
|
|
2644
|
+
q_organization_keyword_tags?: undefined;
|
|
2645
|
+
organization_industry_tag_ids?: undefined;
|
|
2646
|
+
latest_funding_amount_min?: undefined;
|
|
2647
|
+
latest_funding_amount_max?: undefined;
|
|
2648
|
+
organization_revenue_min?: undefined;
|
|
2649
|
+
organization_revenue_max?: undefined;
|
|
2650
|
+
person_titles?: undefined;
|
|
2651
|
+
person_seniorities?: undefined;
|
|
2652
|
+
person_locations?: undefined;
|
|
2653
|
+
include_similar_titles?: undefined;
|
|
2654
|
+
q_keywords?: undefined;
|
|
2655
|
+
filters?: undefined;
|
|
2656
|
+
companyFilters?: undefined;
|
|
2657
|
+
contactFilters?: undefined;
|
|
2658
|
+
searchId?: undefined;
|
|
2659
|
+
searchName?: undefined;
|
|
2660
|
+
companySearchMode?: undefined;
|
|
2661
|
+
uploadedDomains?: undefined;
|
|
2662
|
+
currentStep?: undefined;
|
|
2663
|
+
filterType?: undefined;
|
|
2664
|
+
query?: undefined;
|
|
2665
|
+
keywords?: undefined;
|
|
2666
|
+
filePath?: undefined;
|
|
2667
|
+
domainColumn?: undefined;
|
|
2668
|
+
selectedColumns?: undefined;
|
|
2669
|
+
confirmationToken?: undefined;
|
|
2670
|
+
leadListId?: undefined;
|
|
2671
|
+
leadListName?: undefined;
|
|
2672
|
+
linkedInColumn?: undefined;
|
|
2673
|
+
csvText?: undefined;
|
|
2674
|
+
rawText?: undefined;
|
|
2675
|
+
name?: undefined;
|
|
2676
|
+
include?: undefined;
|
|
2677
|
+
exclude?: undefined;
|
|
2678
|
+
seedCompanies?: undefined;
|
|
2679
|
+
seedDomains?: undefined;
|
|
2680
|
+
sort?: undefined;
|
|
2681
|
+
previewOnly?: undefined;
|
|
2682
|
+
companySearchToken?: undefined;
|
|
2683
|
+
selectedCompanyIds?: undefined;
|
|
2684
|
+
domainFilterId?: undefined;
|
|
2685
|
+
type?: undefined;
|
|
2686
|
+
profileUrl?: undefined;
|
|
2687
|
+
postUrl?: undefined;
|
|
2688
|
+
companyUrl?: undefined;
|
|
2689
|
+
headlineICPCriteria?: undefined;
|
|
2690
|
+
rubricGuidelines?: undefined;
|
|
2691
|
+
sourceLeadListId?: undefined;
|
|
2692
|
+
targetLeadCount?: undefined;
|
|
2693
|
+
mode?: undefined;
|
|
2694
|
+
targetEngagerCount?: undefined;
|
|
2695
|
+
maxPostsToScrape?: undefined;
|
|
2696
|
+
tableId?: undefined;
|
|
2697
|
+
campaignName?: undefined;
|
|
2698
|
+
keepInSync?: undefined;
|
|
2699
|
+
jobId?: undefined;
|
|
2700
|
+
reviewBatchLimit?: undefined;
|
|
2701
|
+
allowPartialSourceList?: undefined;
|
|
2702
|
+
includeRawImportResult?: undefined;
|
|
2703
|
+
selections?: undefined;
|
|
2704
|
+
selectionMode?: undefined;
|
|
2705
|
+
scrapePlanMode?: undefined;
|
|
2706
|
+
};
|
|
2707
|
+
required: never[];
|
|
2708
|
+
};
|
|
2582
2709
|
} | {
|
|
2583
2710
|
name: string;
|
|
2584
2711
|
description: string;
|
|
@@ -2649,11 +2776,15 @@ export declare const allTools: ({
|
|
|
2649
2776
|
selectedColumns?: undefined;
|
|
2650
2777
|
leadListId?: undefined;
|
|
2651
2778
|
leadListName?: undefined;
|
|
2779
|
+
limit?: undefined;
|
|
2780
|
+
search?: undefined;
|
|
2781
|
+
listName?: undefined;
|
|
2782
|
+
sourceType?: undefined;
|
|
2783
|
+
includeDeleted?: undefined;
|
|
2652
2784
|
include?: undefined;
|
|
2653
2785
|
exclude?: undefined;
|
|
2654
2786
|
seedCompanies?: undefined;
|
|
2655
2787
|
seedDomains?: undefined;
|
|
2656
|
-
limit?: undefined;
|
|
2657
2788
|
sort?: undefined;
|
|
2658
2789
|
previewOnly?: undefined;
|
|
2659
2790
|
companySearchToken?: undefined;
|
|
@@ -2740,12 +2871,16 @@ export declare const allTools: ({
|
|
|
2740
2871
|
leadListId?: undefined;
|
|
2741
2872
|
leadListName?: undefined;
|
|
2742
2873
|
linkedInColumn?: undefined;
|
|
2874
|
+
limit?: undefined;
|
|
2875
|
+
search?: undefined;
|
|
2876
|
+
listName?: undefined;
|
|
2877
|
+
sourceType?: undefined;
|
|
2878
|
+
includeDeleted?: undefined;
|
|
2743
2879
|
csvText?: undefined;
|
|
2744
2880
|
rawText?: undefined;
|
|
2745
2881
|
name?: undefined;
|
|
2746
2882
|
seedCompanies?: undefined;
|
|
2747
2883
|
seedDomains?: undefined;
|
|
2748
|
-
limit?: undefined;
|
|
2749
2884
|
sort?: undefined;
|
|
2750
2885
|
previewOnly?: undefined;
|
|
2751
2886
|
companySearchToken?: undefined;
|
|
@@ -3627,6 +3762,10 @@ export declare const allTools: ({
|
|
|
3627
3762
|
leadListId?: undefined;
|
|
3628
3763
|
leadListName?: undefined;
|
|
3629
3764
|
linkedInColumn?: undefined;
|
|
3765
|
+
search?: undefined;
|
|
3766
|
+
listName?: undefined;
|
|
3767
|
+
sourceType?: undefined;
|
|
3768
|
+
includeDeleted?: undefined;
|
|
3630
3769
|
csvText?: undefined;
|
|
3631
3770
|
rawText?: undefined;
|
|
3632
3771
|
name?: undefined;
|
|
@@ -3726,13 +3865,17 @@ export declare const allTools: ({
|
|
|
3726
3865
|
leadListId?: undefined;
|
|
3727
3866
|
leadListName?: undefined;
|
|
3728
3867
|
linkedInColumn?: undefined;
|
|
3868
|
+
limit?: undefined;
|
|
3869
|
+
search?: undefined;
|
|
3870
|
+
listName?: undefined;
|
|
3871
|
+
sourceType?: undefined;
|
|
3872
|
+
includeDeleted?: undefined;
|
|
3729
3873
|
csvText?: undefined;
|
|
3730
3874
|
rawText?: undefined;
|
|
3731
3875
|
include?: undefined;
|
|
3732
3876
|
exclude?: undefined;
|
|
3733
3877
|
seedCompanies?: undefined;
|
|
3734
3878
|
seedDomains?: undefined;
|
|
3735
|
-
limit?: undefined;
|
|
3736
3879
|
sort?: undefined;
|
|
3737
3880
|
previewOnly?: undefined;
|
|
3738
3881
|
domainFilterId?: undefined;
|
|
@@ -4763,6 +4906,11 @@ export declare const allTools: ({
|
|
|
4763
4906
|
leadListId?: undefined;
|
|
4764
4907
|
leadListName?: undefined;
|
|
4765
4908
|
linkedInColumn?: undefined;
|
|
4909
|
+
limit?: undefined;
|
|
4910
|
+
search?: undefined;
|
|
4911
|
+
listName?: undefined;
|
|
4912
|
+
sourceType?: undefined;
|
|
4913
|
+
includeDeleted?: undefined;
|
|
4766
4914
|
csvText?: undefined;
|
|
4767
4915
|
rawText?: undefined;
|
|
4768
4916
|
name?: undefined;
|
|
@@ -4770,7 +4918,6 @@ export declare const allTools: ({
|
|
|
4770
4918
|
exclude?: undefined;
|
|
4771
4919
|
seedCompanies?: undefined;
|
|
4772
4920
|
seedDomains?: undefined;
|
|
4773
|
-
limit?: undefined;
|
|
4774
4921
|
sort?: undefined;
|
|
4775
4922
|
previewOnly?: undefined;
|
|
4776
4923
|
companySearchToken?: undefined;
|
|
@@ -4913,6 +5060,10 @@ export declare const allTools: ({
|
|
|
4913
5060
|
leadListId?: undefined;
|
|
4914
5061
|
leadListName?: undefined;
|
|
4915
5062
|
linkedInColumn?: undefined;
|
|
5063
|
+
search?: undefined;
|
|
5064
|
+
listName?: undefined;
|
|
5065
|
+
sourceType?: undefined;
|
|
5066
|
+
includeDeleted?: undefined;
|
|
4916
5067
|
csvText?: undefined;
|
|
4917
5068
|
rawText?: undefined;
|
|
4918
5069
|
name?: undefined;
|
|
@@ -5045,6 +5196,11 @@ export declare const allTools: ({
|
|
|
5045
5196
|
confirmationToken?: undefined;
|
|
5046
5197
|
leadListId?: undefined;
|
|
5047
5198
|
linkedInColumn?: undefined;
|
|
5199
|
+
limit?: undefined;
|
|
5200
|
+
search?: undefined;
|
|
5201
|
+
listName?: undefined;
|
|
5202
|
+
sourceType?: undefined;
|
|
5203
|
+
includeDeleted?: undefined;
|
|
5048
5204
|
csvText?: undefined;
|
|
5049
5205
|
rawText?: undefined;
|
|
5050
5206
|
name?: undefined;
|
|
@@ -5052,7 +5208,6 @@ export declare const allTools: ({
|
|
|
5052
5208
|
exclude?: undefined;
|
|
5053
5209
|
seedCompanies?: undefined;
|
|
5054
5210
|
seedDomains?: undefined;
|
|
5055
|
-
limit?: undefined;
|
|
5056
5211
|
sort?: undefined;
|
|
5057
5212
|
previewOnly?: undefined;
|
|
5058
5213
|
companySearchToken?: undefined;
|
|
@@ -5129,6 +5284,11 @@ export declare const allTools: ({
|
|
|
5129
5284
|
leadListId?: undefined;
|
|
5130
5285
|
leadListName?: undefined;
|
|
5131
5286
|
linkedInColumn?: undefined;
|
|
5287
|
+
limit?: undefined;
|
|
5288
|
+
search?: undefined;
|
|
5289
|
+
listName?: undefined;
|
|
5290
|
+
sourceType?: undefined;
|
|
5291
|
+
includeDeleted?: undefined;
|
|
5132
5292
|
csvText?: undefined;
|
|
5133
5293
|
rawText?: undefined;
|
|
5134
5294
|
name?: undefined;
|
|
@@ -5136,7 +5296,6 @@ export declare const allTools: ({
|
|
|
5136
5296
|
exclude?: undefined;
|
|
5137
5297
|
seedCompanies?: undefined;
|
|
5138
5298
|
seedDomains?: undefined;
|
|
5139
|
-
limit?: undefined;
|
|
5140
5299
|
sort?: undefined;
|
|
5141
5300
|
previewOnly?: undefined;
|
|
5142
5301
|
companySearchToken?: undefined;
|
|
@@ -5249,6 +5408,11 @@ export declare const allTools: ({
|
|
|
5249
5408
|
leadListId?: undefined;
|
|
5250
5409
|
leadListName?: undefined;
|
|
5251
5410
|
linkedInColumn?: undefined;
|
|
5411
|
+
limit?: undefined;
|
|
5412
|
+
search?: undefined;
|
|
5413
|
+
listName?: undefined;
|
|
5414
|
+
sourceType?: undefined;
|
|
5415
|
+
includeDeleted?: undefined;
|
|
5252
5416
|
csvText?: undefined;
|
|
5253
5417
|
rawText?: undefined;
|
|
5254
5418
|
name?: undefined;
|
|
@@ -5256,7 +5420,6 @@ export declare const allTools: ({
|
|
|
5256
5420
|
exclude?: undefined;
|
|
5257
5421
|
seedCompanies?: undefined;
|
|
5258
5422
|
seedDomains?: undefined;
|
|
5259
|
-
limit?: undefined;
|
|
5260
5423
|
sort?: undefined;
|
|
5261
5424
|
previewOnly?: undefined;
|
|
5262
5425
|
companySearchToken?: undefined;
|
|
@@ -5374,6 +5537,11 @@ export declare const allTools: ({
|
|
|
5374
5537
|
leadListId?: undefined;
|
|
5375
5538
|
leadListName?: undefined;
|
|
5376
5539
|
linkedInColumn?: undefined;
|
|
5540
|
+
limit?: undefined;
|
|
5541
|
+
search?: undefined;
|
|
5542
|
+
listName?: undefined;
|
|
5543
|
+
sourceType?: undefined;
|
|
5544
|
+
includeDeleted?: undefined;
|
|
5377
5545
|
csvText?: undefined;
|
|
5378
5546
|
rawText?: undefined;
|
|
5379
5547
|
name?: undefined;
|
|
@@ -5381,7 +5549,6 @@ export declare const allTools: ({
|
|
|
5381
5549
|
exclude?: undefined;
|
|
5382
5550
|
seedCompanies?: undefined;
|
|
5383
5551
|
seedDomains?: undefined;
|
|
5384
|
-
limit?: undefined;
|
|
5385
5552
|
sort?: undefined;
|
|
5386
5553
|
previewOnly?: undefined;
|
|
5387
5554
|
companySearchToken?: undefined;
|
|
@@ -5463,6 +5630,11 @@ export declare const allTools: ({
|
|
|
5463
5630
|
leadListId?: undefined;
|
|
5464
5631
|
leadListName?: undefined;
|
|
5465
5632
|
linkedInColumn?: undefined;
|
|
5633
|
+
limit?: undefined;
|
|
5634
|
+
search?: undefined;
|
|
5635
|
+
listName?: undefined;
|
|
5636
|
+
sourceType?: undefined;
|
|
5637
|
+
includeDeleted?: undefined;
|
|
5466
5638
|
csvText?: undefined;
|
|
5467
5639
|
rawText?: undefined;
|
|
5468
5640
|
name?: undefined;
|
|
@@ -5470,7 +5642,6 @@ export declare const allTools: ({
|
|
|
5470
5642
|
exclude?: undefined;
|
|
5471
5643
|
seedCompanies?: undefined;
|
|
5472
5644
|
seedDomains?: undefined;
|
|
5473
|
-
limit?: undefined;
|
|
5474
5645
|
sort?: undefined;
|
|
5475
5646
|
previewOnly?: undefined;
|
|
5476
5647
|
companySearchToken?: undefined;
|
package/package.json
CHANGED
|
@@ -58,6 +58,7 @@ allowed-tools:
|
|
|
58
58
|
- mcp__sellable__get_rows
|
|
59
59
|
- mcp__sellable__get_rows_minimal
|
|
60
60
|
- mcp__sellable__get_table_rows
|
|
61
|
+
- mcp__sellable__list_dnc_entries
|
|
61
62
|
- mcp__sellable__load_csv_dnc_entries
|
|
62
63
|
- mcp__sellable__load_csv_linkedin_leads
|
|
63
64
|
- mcp__sellable__load_csv_domains
|
|
@@ -101,6 +102,11 @@ are for known-account targeting only, not DNC. Campaign creation already
|
|
|
101
102
|
includes a `DNC Check` column that checks domain and LinkedIn profile before
|
|
102
103
|
message generation.
|
|
103
104
|
|
|
105
|
+
If the user asks to show/check the current DNC list, count, list names, or first
|
|
106
|
+
page before importing, call `list_dnc_entries`. Confirm the active workspace
|
|
107
|
+
name and ID in the response before any write. This is Sellable's workspace DNC
|
|
108
|
+
list used by DNC Check.
|
|
109
|
+
|
|
104
110
|
## Opening Turn Contract
|
|
105
111
|
|
|
106
112
|
On the first visible response after this skill is invoked, do not narrate
|
|
@@ -219,6 +219,8 @@ belong in the recommendation as DNC/suppression instructions outside the rubric
|
|
|
219
219
|
DNC imports/suppression lists are handled through `load_csv_dnc_entries` outside
|
|
220
220
|
`leadScoringRubrics`. The import previews the exact Sellable workspace name and
|
|
221
221
|
ID, then writes to Sellable's workspace-level DNC list only after confirmation.
|
|
222
|
+
If the user asks to show the current DNC count, list names, or first page before
|
|
223
|
+
import, call `list_dnc_entries` and report the active workspace name and ID.
|
|
222
224
|
Campaign creation already includes `DNC Check`, which checks domain/profile
|
|
223
225
|
before message generation. Do not describe provider workarounds, provider
|
|
224
226
|
search-time limitations, or Prospeo domain filters as the DNC mechanism.
|
|
@@ -50,6 +50,8 @@ Supplied-source preview:
|
|
|
50
50
|
preview. Preview the exact Sellable workspace name and ID and confirm before
|
|
51
51
|
writing. This updates Sellable's workspace-level DNC list; it is not a lead
|
|
52
52
|
source, Prospeo domain filter, or provider workaround.
|
|
53
|
+
If the user asks for the existing DNC count, list names, or first page first,
|
|
54
|
+
call `list_dnc_entries` and report the active workspace name and ID.
|
|
53
55
|
- `supplied-linkedin-profiles` uses `load_csv_linkedin_leads` before the
|
|
54
56
|
15-lead import batch only as preview/source attachment. Pre-import calls
|
|
55
57
|
must omit provider-import parameters. Use `campaignOfferId` only to attach the
|
|
@@ -61,7 +61,9 @@ Supported branches:
|
|
|
61
61
|
Sellable workspace name and ID, and confirmation writes only to that
|
|
62
62
|
workspace's Sellable DNC list. This is not a lead source and does not create a
|
|
63
63
|
`domainFilterId`; campaign rows are protected later by the existing
|
|
64
|
-
`DNC Check` column before message generation.
|
|
64
|
+
`DNC Check` column before message generation. If the user asks for the
|
|
65
|
+
current DNC count, list names, or first page before import, call
|
|
66
|
+
`list_dnc_entries` first.
|
|
65
67
|
- **Supplied LinkedIn profile CSV** — confirm `load_csv_linkedin_leads` only
|
|
66
68
|
after the user approves that supplied-list source. Batch/materialize the
|
|
67
69
|
uploaded CSV into a Sellable lead-list table. Persist the returned
|
|
@@ -90,6 +90,7 @@ should stay focused on source evidence.
|
|
|
90
90
|
- `mcp__sellable__search_prospeo`
|
|
91
91
|
- `mcp__sellable__search_prospeo_companies`
|
|
92
92
|
- `mcp__sellable__confirm_prospeo_company_accounts`
|
|
93
|
+
- `mcp__sellable__list_dnc_entries`
|
|
93
94
|
- `mcp__sellable__load_csv_dnc_entries`
|
|
94
95
|
- `mcp__sellable__load_csv_domains`
|
|
95
96
|
- `mcp__sellable__load_csv_linkedin_leads`
|
|
@@ -105,6 +106,9 @@ should stay focused on source evidence.
|
|
|
105
106
|
list after confirming the exact active workspace. Keep the mechanism to
|
|
106
107
|
Sellable DNC and `DNC Check`, not provider search work or Prospeo domain
|
|
107
108
|
filters.
|
|
109
|
+
- If the user asks to see the current DNC count, list names, or first page
|
|
110
|
+
before import, call `list_dnc_entries`. Report the active workspace name and
|
|
111
|
+
ID from the tool response before any DNC write.
|
|
108
112
|
- Do not infer sender identities from meeting attendance alone. Only treat someone as a sender when the source material explicitly identifies them as a sender or supplies their LinkedIn URL.
|
|
109
113
|
- Do not ask Layer 1 questions already answered by a transcript, ICP doc, or Layer 0 research.
|
|
110
114
|
- Do not include Apollo in the explorer set for this phase.
|
|
@@ -136,6 +140,8 @@ Execution flow:
|
|
|
136
140
|
DNC entries.
|
|
137
141
|
- Campaign creation already includes `DNC Check`, which checks domain/profile
|
|
138
142
|
before message generation.
|
|
143
|
+
- If the user wants the existing DNC count or first page first, call
|
|
144
|
+
`list_dnc_entries` before previewing the import.
|
|
139
145
|
3. If the user has a CSV of LinkedIn profile URLs on disk, call `load_csv_linkedin_leads` first.
|
|
140
146
|
- Preview, confirm, then review the resulting lead list before `confirm_lead_list`.
|
|
141
147
|
- Confirmed execution uploads the raw CSV file, starts the server-owned import job, and waits on lead-list readiness before returning.
|