@sellable/mcp 0.1.253 → 0.1.254
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 +131 -0
- package/dist/tools/csv-dnc.js +651 -0
- package/dist/tools/csv-domains.d.ts +7 -0
- package/dist/tools/csv-domains.js +1 -1
- package/dist/tools/csv-linkedin.d.ts +8 -0
- package/dist/tools/csv-linkedin.js +1 -1
- package/dist/tools/leads.d.ts +276 -15
- package/dist/tools/leads.js +46 -0
- package/dist/tools/registry.d.ts +151 -15
- package/package.json +1 -1
- package/skills/create-campaign/SKILL.md +19 -2
- package/skills/create-campaign-v2/core/flow.v2.json +1 -1
- package/skills/create-campaign-v2/references/filter-leads.md +6 -0
- package/skills/create-campaign-v2/references/lead-validation-preview.md +4 -0
- package/skills/create-campaign-v2/references/step-13-import-leads.md +6 -0
- package/skills/find-leads/SKILL.md +23 -9
- package/skills/providers/prospeo.md +6 -0
- package/skills/research/config.json +0 -9
|
@@ -425,7 +425,7 @@ function sanitizeCompanyWebsite(value) {
|
|
|
425
425
|
}
|
|
426
426
|
return cleaned;
|
|
427
427
|
}
|
|
428
|
-
function validateAndNormalizeLinkedInUrl(value) {
|
|
428
|
+
export function validateAndNormalizeLinkedInUrl(value) {
|
|
429
429
|
const trimmed = value.trim();
|
|
430
430
|
if (!trimmed) {
|
|
431
431
|
return { valid: false, reason: "Empty LinkedIn URL" };
|
package/dist/tools/leads.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type LoadCsvDncEntriesInput } from "./csv-dnc.js";
|
|
1
2
|
export declare const MAX_SIGNAL_DISCOVERY_POSTS = 10;
|
|
2
3
|
export declare function normalizeTargetLeadCount(targetLeadCount: unknown, maxImportCount: number): number | undefined;
|
|
3
4
|
type SignalPostForImportSelection = {
|
|
@@ -247,6 +248,9 @@ export declare const leadToolDefinitions: ({
|
|
|
247
248
|
leadListId?: undefined;
|
|
248
249
|
leadListName?: undefined;
|
|
249
250
|
linkedInColumn?: undefined;
|
|
251
|
+
csvText?: undefined;
|
|
252
|
+
rawText?: undefined;
|
|
253
|
+
name?: undefined;
|
|
250
254
|
include?: undefined;
|
|
251
255
|
exclude?: undefined;
|
|
252
256
|
seedCompanies?: undefined;
|
|
@@ -256,7 +260,6 @@ export declare const leadToolDefinitions: ({
|
|
|
256
260
|
previewOnly?: undefined;
|
|
257
261
|
companySearchToken?: undefined;
|
|
258
262
|
selectedCompanyIds?: undefined;
|
|
259
|
-
name?: undefined;
|
|
260
263
|
domainFilterId?: undefined;
|
|
261
264
|
type?: undefined;
|
|
262
265
|
profileUrl?: undefined;
|
|
@@ -433,6 +436,9 @@ export declare const leadToolDefinitions: ({
|
|
|
433
436
|
leadListId?: undefined;
|
|
434
437
|
leadListName?: undefined;
|
|
435
438
|
linkedInColumn?: undefined;
|
|
439
|
+
csvText?: undefined;
|
|
440
|
+
rawText?: undefined;
|
|
441
|
+
name?: undefined;
|
|
436
442
|
include?: undefined;
|
|
437
443
|
exclude?: undefined;
|
|
438
444
|
seedCompanies?: undefined;
|
|
@@ -442,7 +448,6 @@ export declare const leadToolDefinitions: ({
|
|
|
442
448
|
previewOnly?: undefined;
|
|
443
449
|
companySearchToken?: undefined;
|
|
444
450
|
selectedCompanyIds?: undefined;
|
|
445
|
-
name?: undefined;
|
|
446
451
|
domainFilterId?: undefined;
|
|
447
452
|
type?: undefined;
|
|
448
453
|
profileUrl?: undefined;
|
|
@@ -518,6 +523,9 @@ export declare const leadToolDefinitions: ({
|
|
|
518
523
|
leadListId?: undefined;
|
|
519
524
|
leadListName?: undefined;
|
|
520
525
|
linkedInColumn?: undefined;
|
|
526
|
+
csvText?: undefined;
|
|
527
|
+
rawText?: undefined;
|
|
528
|
+
name?: undefined;
|
|
521
529
|
include?: undefined;
|
|
522
530
|
exclude?: undefined;
|
|
523
531
|
seedCompanies?: undefined;
|
|
@@ -527,7 +535,6 @@ export declare const leadToolDefinitions: ({
|
|
|
527
535
|
previewOnly?: undefined;
|
|
528
536
|
companySearchToken?: undefined;
|
|
529
537
|
selectedCompanyIds?: undefined;
|
|
530
|
-
name?: undefined;
|
|
531
538
|
domainFilterId?: undefined;
|
|
532
539
|
type?: undefined;
|
|
533
540
|
profileUrl?: undefined;
|
|
@@ -675,6 +682,9 @@ export declare const leadToolDefinitions: ({
|
|
|
675
682
|
leadListId?: undefined;
|
|
676
683
|
leadListName?: undefined;
|
|
677
684
|
linkedInColumn?: undefined;
|
|
685
|
+
csvText?: undefined;
|
|
686
|
+
rawText?: undefined;
|
|
687
|
+
name?: undefined;
|
|
678
688
|
include?: undefined;
|
|
679
689
|
exclude?: undefined;
|
|
680
690
|
seedCompanies?: undefined;
|
|
@@ -684,7 +694,6 @@ export declare const leadToolDefinitions: ({
|
|
|
684
694
|
previewOnly?: undefined;
|
|
685
695
|
companySearchToken?: undefined;
|
|
686
696
|
selectedCompanyIds?: undefined;
|
|
687
|
-
name?: undefined;
|
|
688
697
|
domainFilterId?: undefined;
|
|
689
698
|
type?: undefined;
|
|
690
699
|
profileUrl?: undefined;
|
|
@@ -774,6 +783,9 @@ export declare const leadToolDefinitions: ({
|
|
|
774
783
|
leadListId?: undefined;
|
|
775
784
|
leadListName?: undefined;
|
|
776
785
|
linkedInColumn?: undefined;
|
|
786
|
+
csvText?: undefined;
|
|
787
|
+
rawText?: undefined;
|
|
788
|
+
name?: undefined;
|
|
777
789
|
include?: undefined;
|
|
778
790
|
exclude?: undefined;
|
|
779
791
|
seedCompanies?: undefined;
|
|
@@ -783,7 +795,6 @@ export declare const leadToolDefinitions: ({
|
|
|
783
795
|
previewOnly?: undefined;
|
|
784
796
|
companySearchToken?: undefined;
|
|
785
797
|
selectedCompanyIds?: undefined;
|
|
786
|
-
name?: undefined;
|
|
787
798
|
domainFilterId?: undefined;
|
|
788
799
|
type?: undefined;
|
|
789
800
|
profileUrl?: undefined;
|
|
@@ -882,6 +893,9 @@ export declare const leadToolDefinitions: ({
|
|
|
882
893
|
query?: undefined;
|
|
883
894
|
keywords?: undefined;
|
|
884
895
|
domainColumn?: undefined;
|
|
896
|
+
csvText?: undefined;
|
|
897
|
+
rawText?: undefined;
|
|
898
|
+
name?: undefined;
|
|
885
899
|
include?: undefined;
|
|
886
900
|
exclude?: undefined;
|
|
887
901
|
seedCompanies?: undefined;
|
|
@@ -891,7 +905,6 @@ export declare const leadToolDefinitions: ({
|
|
|
891
905
|
previewOnly?: undefined;
|
|
892
906
|
companySearchToken?: undefined;
|
|
893
907
|
selectedCompanyIds?: undefined;
|
|
894
|
-
name?: undefined;
|
|
895
908
|
domainFilterId?: undefined;
|
|
896
909
|
type?: undefined;
|
|
897
910
|
profileUrl?: undefined;
|
|
@@ -917,6 +930,110 @@ export declare const leadToolDefinitions: ({
|
|
|
917
930
|
};
|
|
918
931
|
required: string[];
|
|
919
932
|
};
|
|
933
|
+
} | {
|
|
934
|
+
name: string;
|
|
935
|
+
description: string;
|
|
936
|
+
inputSchema: {
|
|
937
|
+
type: string;
|
|
938
|
+
properties: {
|
|
939
|
+
filePath: {
|
|
940
|
+
type: string;
|
|
941
|
+
description: string;
|
|
942
|
+
};
|
|
943
|
+
csvText: {
|
|
944
|
+
type: string;
|
|
945
|
+
description: string;
|
|
946
|
+
};
|
|
947
|
+
rawText: {
|
|
948
|
+
type: string;
|
|
949
|
+
description: string;
|
|
950
|
+
};
|
|
951
|
+
name: {
|
|
952
|
+
type: string;
|
|
953
|
+
description: string;
|
|
954
|
+
};
|
|
955
|
+
domainColumn: {
|
|
956
|
+
type: string;
|
|
957
|
+
description: string;
|
|
958
|
+
};
|
|
959
|
+
linkedInColumn: {
|
|
960
|
+
type: string;
|
|
961
|
+
description: string;
|
|
962
|
+
};
|
|
963
|
+
confirmationToken: {
|
|
964
|
+
type: string;
|
|
965
|
+
description: string;
|
|
966
|
+
};
|
|
967
|
+
confirmed: {
|
|
968
|
+
type: string;
|
|
969
|
+
description: string;
|
|
970
|
+
};
|
|
971
|
+
provider?: undefined;
|
|
972
|
+
campaignOfferId?: undefined;
|
|
973
|
+
searchMode?: undefined;
|
|
974
|
+
organization_num_employees_ranges?: undefined;
|
|
975
|
+
organization_locations?: undefined;
|
|
976
|
+
organization_not_locations?: undefined;
|
|
977
|
+
q_organization_keyword_tags?: undefined;
|
|
978
|
+
organization_industry_tag_ids?: undefined;
|
|
979
|
+
latest_funding_amount_min?: undefined;
|
|
980
|
+
latest_funding_amount_max?: undefined;
|
|
981
|
+
organization_revenue_min?: undefined;
|
|
982
|
+
organization_revenue_max?: undefined;
|
|
983
|
+
person_titles?: undefined;
|
|
984
|
+
person_seniorities?: undefined;
|
|
985
|
+
person_locations?: undefined;
|
|
986
|
+
include_similar_titles?: undefined;
|
|
987
|
+
q_keywords?: undefined;
|
|
988
|
+
filters?: undefined;
|
|
989
|
+
companyFilters?: undefined;
|
|
990
|
+
contactFilters?: undefined;
|
|
991
|
+
page?: undefined;
|
|
992
|
+
searchId?: undefined;
|
|
993
|
+
searchName?: undefined;
|
|
994
|
+
companySearchMode?: undefined;
|
|
995
|
+
uploadedDomains?: undefined;
|
|
996
|
+
currentStep?: undefined;
|
|
997
|
+
filterType?: undefined;
|
|
998
|
+
query?: undefined;
|
|
999
|
+
keywords?: undefined;
|
|
1000
|
+
selectedColumns?: undefined;
|
|
1001
|
+
leadListId?: undefined;
|
|
1002
|
+
leadListName?: undefined;
|
|
1003
|
+
include?: undefined;
|
|
1004
|
+
exclude?: undefined;
|
|
1005
|
+
seedCompanies?: undefined;
|
|
1006
|
+
seedDomains?: undefined;
|
|
1007
|
+
limit?: undefined;
|
|
1008
|
+
sort?: undefined;
|
|
1009
|
+
previewOnly?: undefined;
|
|
1010
|
+
companySearchToken?: undefined;
|
|
1011
|
+
selectedCompanyIds?: undefined;
|
|
1012
|
+
domainFilterId?: undefined;
|
|
1013
|
+
type?: undefined;
|
|
1014
|
+
profileUrl?: undefined;
|
|
1015
|
+
postUrl?: undefined;
|
|
1016
|
+
companyUrl?: undefined;
|
|
1017
|
+
headlineICPCriteria?: undefined;
|
|
1018
|
+
rubricGuidelines?: undefined;
|
|
1019
|
+
sourceLeadListId?: undefined;
|
|
1020
|
+
targetLeadCount?: undefined;
|
|
1021
|
+
mode?: undefined;
|
|
1022
|
+
targetEngagerCount?: undefined;
|
|
1023
|
+
maxPostsToScrape?: undefined;
|
|
1024
|
+
tableId?: undefined;
|
|
1025
|
+
campaignName?: undefined;
|
|
1026
|
+
keepInSync?: undefined;
|
|
1027
|
+
jobId?: undefined;
|
|
1028
|
+
reviewBatchLimit?: undefined;
|
|
1029
|
+
allowPartialSourceList?: undefined;
|
|
1030
|
+
includeRawImportResult?: undefined;
|
|
1031
|
+
selections?: undefined;
|
|
1032
|
+
selectionMode?: undefined;
|
|
1033
|
+
scrapePlanMode?: undefined;
|
|
1034
|
+
};
|
|
1035
|
+
required: never[];
|
|
1036
|
+
};
|
|
920
1037
|
} | {
|
|
921
1038
|
name: string;
|
|
922
1039
|
description: string;
|
|
@@ -974,6 +1091,9 @@ export declare const leadToolDefinitions: ({
|
|
|
974
1091
|
leadListId?: undefined;
|
|
975
1092
|
leadListName?: undefined;
|
|
976
1093
|
linkedInColumn?: undefined;
|
|
1094
|
+
csvText?: undefined;
|
|
1095
|
+
rawText?: undefined;
|
|
1096
|
+
name?: undefined;
|
|
977
1097
|
seedCompanies?: undefined;
|
|
978
1098
|
seedDomains?: undefined;
|
|
979
1099
|
limit?: undefined;
|
|
@@ -981,7 +1101,6 @@ export declare const leadToolDefinitions: ({
|
|
|
981
1101
|
previewOnly?: undefined;
|
|
982
1102
|
companySearchToken?: undefined;
|
|
983
1103
|
selectedCompanyIds?: undefined;
|
|
984
|
-
name?: undefined;
|
|
985
1104
|
domainFilterId?: undefined;
|
|
986
1105
|
type?: undefined;
|
|
987
1106
|
profileUrl?: undefined;
|
|
@@ -1859,11 +1978,13 @@ export declare const leadToolDefinitions: ({
|
|
|
1859
1978
|
leadListId?: undefined;
|
|
1860
1979
|
leadListName?: undefined;
|
|
1861
1980
|
linkedInColumn?: undefined;
|
|
1981
|
+
csvText?: undefined;
|
|
1982
|
+
rawText?: undefined;
|
|
1983
|
+
name?: undefined;
|
|
1862
1984
|
include?: undefined;
|
|
1863
1985
|
exclude?: undefined;
|
|
1864
1986
|
companySearchToken?: undefined;
|
|
1865
1987
|
selectedCompanyIds?: undefined;
|
|
1866
|
-
name?: undefined;
|
|
1867
1988
|
domainFilterId?: undefined;
|
|
1868
1989
|
type?: undefined;
|
|
1869
1990
|
profileUrl?: undefined;
|
|
@@ -1956,6 +2077,8 @@ export declare const leadToolDefinitions: ({
|
|
|
1956
2077
|
leadListId?: undefined;
|
|
1957
2078
|
leadListName?: undefined;
|
|
1958
2079
|
linkedInColumn?: undefined;
|
|
2080
|
+
csvText?: undefined;
|
|
2081
|
+
rawText?: undefined;
|
|
1959
2082
|
include?: undefined;
|
|
1960
2083
|
exclude?: undefined;
|
|
1961
2084
|
seedCompanies?: undefined;
|
|
@@ -2991,6 +3114,9 @@ export declare const leadToolDefinitions: ({
|
|
|
2991
3114
|
leadListId?: undefined;
|
|
2992
3115
|
leadListName?: undefined;
|
|
2993
3116
|
linkedInColumn?: undefined;
|
|
3117
|
+
csvText?: undefined;
|
|
3118
|
+
rawText?: undefined;
|
|
3119
|
+
name?: undefined;
|
|
2994
3120
|
include?: undefined;
|
|
2995
3121
|
exclude?: undefined;
|
|
2996
3122
|
seedCompanies?: undefined;
|
|
@@ -3000,7 +3126,6 @@ export declare const leadToolDefinitions: ({
|
|
|
3000
3126
|
previewOnly?: undefined;
|
|
3001
3127
|
companySearchToken?: undefined;
|
|
3002
3128
|
selectedCompanyIds?: undefined;
|
|
3003
|
-
name?: undefined;
|
|
3004
3129
|
type?: undefined;
|
|
3005
3130
|
profileUrl?: undefined;
|
|
3006
3131
|
postUrl?: undefined;
|
|
@@ -3139,6 +3264,9 @@ export declare const leadToolDefinitions: ({
|
|
|
3139
3264
|
leadListId?: undefined;
|
|
3140
3265
|
leadListName?: undefined;
|
|
3141
3266
|
linkedInColumn?: undefined;
|
|
3267
|
+
csvText?: undefined;
|
|
3268
|
+
rawText?: undefined;
|
|
3269
|
+
name?: undefined;
|
|
3142
3270
|
include?: undefined;
|
|
3143
3271
|
exclude?: undefined;
|
|
3144
3272
|
seedCompanies?: undefined;
|
|
@@ -3147,7 +3275,6 @@ export declare const leadToolDefinitions: ({
|
|
|
3147
3275
|
previewOnly?: undefined;
|
|
3148
3276
|
companySearchToken?: undefined;
|
|
3149
3277
|
selectedCompanyIds?: undefined;
|
|
3150
|
-
name?: undefined;
|
|
3151
3278
|
domainFilterId?: undefined;
|
|
3152
3279
|
sourceLeadListId?: undefined;
|
|
3153
3280
|
targetLeadCount?: undefined;
|
|
@@ -3269,6 +3396,9 @@ export declare const leadToolDefinitions: ({
|
|
|
3269
3396
|
confirmationToken?: undefined;
|
|
3270
3397
|
leadListId?: undefined;
|
|
3271
3398
|
linkedInColumn?: undefined;
|
|
3399
|
+
csvText?: undefined;
|
|
3400
|
+
rawText?: undefined;
|
|
3401
|
+
name?: undefined;
|
|
3272
3402
|
include?: undefined;
|
|
3273
3403
|
exclude?: undefined;
|
|
3274
3404
|
seedCompanies?: undefined;
|
|
@@ -3278,7 +3408,6 @@ export declare const leadToolDefinitions: ({
|
|
|
3278
3408
|
previewOnly?: undefined;
|
|
3279
3409
|
companySearchToken?: undefined;
|
|
3280
3410
|
selectedCompanyIds?: undefined;
|
|
3281
|
-
name?: undefined;
|
|
3282
3411
|
domainFilterId?: undefined;
|
|
3283
3412
|
type?: undefined;
|
|
3284
3413
|
profileUrl?: undefined;
|
|
@@ -3351,6 +3480,9 @@ export declare const leadToolDefinitions: ({
|
|
|
3351
3480
|
leadListId?: undefined;
|
|
3352
3481
|
leadListName?: undefined;
|
|
3353
3482
|
linkedInColumn?: undefined;
|
|
3483
|
+
csvText?: undefined;
|
|
3484
|
+
rawText?: undefined;
|
|
3485
|
+
name?: undefined;
|
|
3354
3486
|
include?: undefined;
|
|
3355
3487
|
exclude?: undefined;
|
|
3356
3488
|
seedCompanies?: undefined;
|
|
@@ -3360,7 +3492,6 @@ export declare const leadToolDefinitions: ({
|
|
|
3360
3492
|
previewOnly?: undefined;
|
|
3361
3493
|
companySearchToken?: undefined;
|
|
3362
3494
|
selectedCompanyIds?: undefined;
|
|
3363
|
-
name?: undefined;
|
|
3364
3495
|
domainFilterId?: undefined;
|
|
3365
3496
|
type?: undefined;
|
|
3366
3497
|
profileUrl?: undefined;
|
|
@@ -3469,6 +3600,9 @@ export declare const leadToolDefinitions: ({
|
|
|
3469
3600
|
leadListId?: undefined;
|
|
3470
3601
|
leadListName?: undefined;
|
|
3471
3602
|
linkedInColumn?: undefined;
|
|
3603
|
+
csvText?: undefined;
|
|
3604
|
+
rawText?: undefined;
|
|
3605
|
+
name?: undefined;
|
|
3472
3606
|
include?: undefined;
|
|
3473
3607
|
exclude?: undefined;
|
|
3474
3608
|
seedCompanies?: undefined;
|
|
@@ -3478,7 +3612,6 @@ export declare const leadToolDefinitions: ({
|
|
|
3478
3612
|
previewOnly?: undefined;
|
|
3479
3613
|
companySearchToken?: undefined;
|
|
3480
3614
|
selectedCompanyIds?: undefined;
|
|
3481
|
-
name?: undefined;
|
|
3482
3615
|
domainFilterId?: undefined;
|
|
3483
3616
|
type?: undefined;
|
|
3484
3617
|
profileUrl?: undefined;
|
|
@@ -3592,6 +3725,9 @@ export declare const leadToolDefinitions: ({
|
|
|
3592
3725
|
leadListId?: undefined;
|
|
3593
3726
|
leadListName?: undefined;
|
|
3594
3727
|
linkedInColumn?: undefined;
|
|
3728
|
+
csvText?: undefined;
|
|
3729
|
+
rawText?: undefined;
|
|
3730
|
+
name?: undefined;
|
|
3595
3731
|
include?: undefined;
|
|
3596
3732
|
exclude?: undefined;
|
|
3597
3733
|
seedCompanies?: undefined;
|
|
@@ -3601,7 +3737,6 @@ export declare const leadToolDefinitions: ({
|
|
|
3601
3737
|
previewOnly?: undefined;
|
|
3602
3738
|
companySearchToken?: undefined;
|
|
3603
3739
|
selectedCompanyIds?: undefined;
|
|
3604
|
-
name?: undefined;
|
|
3605
3740
|
domainFilterId?: undefined;
|
|
3606
3741
|
type?: undefined;
|
|
3607
3742
|
profileUrl?: undefined;
|
|
@@ -3679,6 +3814,9 @@ export declare const leadToolDefinitions: ({
|
|
|
3679
3814
|
leadListId?: undefined;
|
|
3680
3815
|
leadListName?: undefined;
|
|
3681
3816
|
linkedInColumn?: undefined;
|
|
3817
|
+
csvText?: undefined;
|
|
3818
|
+
rawText?: undefined;
|
|
3819
|
+
name?: undefined;
|
|
3682
3820
|
include?: undefined;
|
|
3683
3821
|
exclude?: undefined;
|
|
3684
3822
|
seedCompanies?: undefined;
|
|
@@ -3688,7 +3826,6 @@ export declare const leadToolDefinitions: ({
|
|
|
3688
3826
|
previewOnly?: undefined;
|
|
3689
3827
|
companySearchToken?: undefined;
|
|
3690
3828
|
selectedCompanyIds?: undefined;
|
|
3691
|
-
name?: undefined;
|
|
3692
3829
|
domainFilterId?: undefined;
|
|
3693
3830
|
type?: undefined;
|
|
3694
3831
|
profileUrl?: undefined;
|
|
@@ -3901,6 +4038,130 @@ export declare function loadCsvLinkedinLeads(input: LoadCsvLinkedinLeadsInput):
|
|
|
3901
4038
|
readinessWarning?: undefined;
|
|
3902
4039
|
guidance?: undefined;
|
|
3903
4040
|
}>;
|
|
4041
|
+
export declare function loadCsvDncEntriesTool(input: LoadCsvDncEntriesInput): Promise<{
|
|
4042
|
+
guidance: string;
|
|
4043
|
+
createdCount: number;
|
|
4044
|
+
duplicateExistingCount: number;
|
|
4045
|
+
backendErrorCount: number;
|
|
4046
|
+
backendErrors: {
|
|
4047
|
+
value?: unknown;
|
|
4048
|
+
error?: unknown;
|
|
4049
|
+
}[];
|
|
4050
|
+
ok: boolean;
|
|
4051
|
+
requiresConfirmation: boolean;
|
|
4052
|
+
workspaceId: string;
|
|
4053
|
+
workspaceName: string;
|
|
4054
|
+
name: string;
|
|
4055
|
+
attemptedCount: number;
|
|
4056
|
+
preview?: undefined;
|
|
4057
|
+
suggestedToolCalls?: undefined;
|
|
4058
|
+
confirmationToken?: undefined;
|
|
4059
|
+
} | {
|
|
4060
|
+
spotChecks: {
|
|
4061
|
+
type: string;
|
|
4062
|
+
value: string;
|
|
4063
|
+
ok: boolean;
|
|
4064
|
+
reason?: string;
|
|
4065
|
+
matchedValue?: string;
|
|
4066
|
+
}[];
|
|
4067
|
+
guidance: string;
|
|
4068
|
+
createdCount: number;
|
|
4069
|
+
duplicateExistingCount: number;
|
|
4070
|
+
backendErrorCount: number;
|
|
4071
|
+
backendErrors: {
|
|
4072
|
+
value?: unknown;
|
|
4073
|
+
error?: unknown;
|
|
4074
|
+
}[];
|
|
4075
|
+
ok: boolean;
|
|
4076
|
+
requiresConfirmation: boolean;
|
|
4077
|
+
workspaceId: string;
|
|
4078
|
+
workspaceName: string;
|
|
4079
|
+
name: string;
|
|
4080
|
+
attemptedCount: number;
|
|
4081
|
+
preview?: undefined;
|
|
4082
|
+
suggestedToolCalls?: undefined;
|
|
4083
|
+
confirmationToken?: undefined;
|
|
4084
|
+
} | {
|
|
4085
|
+
ok: boolean;
|
|
4086
|
+
requiresConfirmation: boolean;
|
|
4087
|
+
preview: {
|
|
4088
|
+
workspaceId: string;
|
|
4089
|
+
workspaceName: string;
|
|
4090
|
+
name: string;
|
|
4091
|
+
sourceKind: "file" | "csvText" | "rawText";
|
|
4092
|
+
resolvedFilePath: string | null;
|
|
4093
|
+
headers: string[];
|
|
4094
|
+
detectedDomainColumn: string | null;
|
|
4095
|
+
detectedLinkedInColumn: string | null;
|
|
4096
|
+
candidateDomainColumns: string[];
|
|
4097
|
+
candidateLinkedInColumns: string[];
|
|
4098
|
+
totalRows: number;
|
|
4099
|
+
validCount: number;
|
|
4100
|
+
domainCount: number;
|
|
4101
|
+
linkedInCount: number;
|
|
4102
|
+
invalidRowCount: number;
|
|
4103
|
+
duplicateInputCount: number;
|
|
4104
|
+
duplicatePolicy: string;
|
|
4105
|
+
invalidRows: {
|
|
4106
|
+
row: number;
|
|
4107
|
+
column: string | null;
|
|
4108
|
+
value: string;
|
|
4109
|
+
reason: string;
|
|
4110
|
+
}[];
|
|
4111
|
+
warnings: string[];
|
|
4112
|
+
blockingErrors: string[];
|
|
4113
|
+
confirmationToken: string | null;
|
|
4114
|
+
};
|
|
4115
|
+
suggestedToolCalls: never[];
|
|
4116
|
+
confirmationToken?: undefined;
|
|
4117
|
+
guidance?: undefined;
|
|
4118
|
+
} | {
|
|
4119
|
+
ok: boolean;
|
|
4120
|
+
requiresConfirmation: boolean;
|
|
4121
|
+
preview: {
|
|
4122
|
+
workspaceId: string;
|
|
4123
|
+
workspaceName: string;
|
|
4124
|
+
name: string;
|
|
4125
|
+
sourceKind: "file" | "csvText" | "rawText";
|
|
4126
|
+
resolvedFilePath: string | null;
|
|
4127
|
+
headers: string[];
|
|
4128
|
+
detectedDomainColumn: string | null;
|
|
4129
|
+
detectedLinkedInColumn: string | null;
|
|
4130
|
+
candidateDomainColumns: string[];
|
|
4131
|
+
candidateLinkedInColumns: string[];
|
|
4132
|
+
totalRows: number;
|
|
4133
|
+
validCount: number;
|
|
4134
|
+
domainCount: number;
|
|
4135
|
+
linkedInCount: number;
|
|
4136
|
+
invalidRowCount: number;
|
|
4137
|
+
duplicateInputCount: number;
|
|
4138
|
+
duplicatePolicy: string;
|
|
4139
|
+
invalidRows: {
|
|
4140
|
+
row: number;
|
|
4141
|
+
column: string | null;
|
|
4142
|
+
value: string;
|
|
4143
|
+
reason: string;
|
|
4144
|
+
}[];
|
|
4145
|
+
warnings: string[];
|
|
4146
|
+
blockingErrors: string[];
|
|
4147
|
+
confirmationToken: string | null;
|
|
4148
|
+
};
|
|
4149
|
+
confirmationToken: string;
|
|
4150
|
+
suggestedToolCalls: {
|
|
4151
|
+
tool: string;
|
|
4152
|
+
args: {
|
|
4153
|
+
confirmed: boolean;
|
|
4154
|
+
confirmationToken: string;
|
|
4155
|
+
linkedInColumn?: string | undefined;
|
|
4156
|
+
domainColumn?: string | undefined;
|
|
4157
|
+
name?: string | undefined;
|
|
4158
|
+
rawText?: string | undefined;
|
|
4159
|
+
csvText?: string | undefined;
|
|
4160
|
+
filePath?: string | undefined;
|
|
4161
|
+
};
|
|
4162
|
+
}[];
|
|
4163
|
+
guidance: string;
|
|
4164
|
+
}>;
|
|
3904
4165
|
export declare function saveDomainFilters(input: SaveDomainFiltersInput): Promise<unknown>;
|
|
3905
4166
|
export declare function lookupSalesNavFilter(input: LookupSalesNavFilterInput): Promise<{
|
|
3906
4167
|
filterType: string;
|
package/dist/tools/leads.js
CHANGED
|
@@ -4,6 +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
8
|
import { buildCsvLinkedinPreview, matchesLinkedinConfirmationToken, parseLinkedinConfirmationToken, uploadCsvLinkedinFile, } from "./csv-linkedin.js";
|
|
8
9
|
import { assertInteractionApproval } from "./interaction-mode.js";
|
|
9
10
|
import { assertProviderPromptLoaded, markProviderPromptLoaded, } from "./provider-preflight.js";
|
|
@@ -1476,6 +1477,48 @@ export const leadToolDefinitions = [
|
|
|
1476
1477
|
required: ["filePath"],
|
|
1477
1478
|
},
|
|
1478
1479
|
},
|
|
1480
|
+
{
|
|
1481
|
+
name: "load_csv_dnc_entries",
|
|
1482
|
+
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.",
|
|
1483
|
+
inputSchema: {
|
|
1484
|
+
type: "object",
|
|
1485
|
+
properties: {
|
|
1486
|
+
filePath: {
|
|
1487
|
+
type: "string",
|
|
1488
|
+
description: "Absolute path on the MCP host, or a workspace-relative path to the CSV file containing domains or LinkedIn profile URLs.",
|
|
1489
|
+
},
|
|
1490
|
+
csvText: {
|
|
1491
|
+
type: "string",
|
|
1492
|
+
description: "Pasted CSV text containing domain and/or LinkedIn profile columns. Use instead of filePath.",
|
|
1493
|
+
},
|
|
1494
|
+
rawText: {
|
|
1495
|
+
type: "string",
|
|
1496
|
+
description: "Newline- or comma-delimited pasted domains and LinkedIn profile URLs. Use instead of filePath or csvText.",
|
|
1497
|
+
},
|
|
1498
|
+
name: {
|
|
1499
|
+
type: "string",
|
|
1500
|
+
description: "Optional Sellable DNC list name for the imported entries.",
|
|
1501
|
+
},
|
|
1502
|
+
domainColumn: {
|
|
1503
|
+
type: "string",
|
|
1504
|
+
description: "Optional CSV header to use as the domain column. Required when preview reports ambiguous domain columns.",
|
|
1505
|
+
},
|
|
1506
|
+
linkedInColumn: {
|
|
1507
|
+
type: "string",
|
|
1508
|
+
description: "Optional CSV header to use as the LinkedIn profile URL column. Required when preview reports ambiguous LinkedIn columns.",
|
|
1509
|
+
},
|
|
1510
|
+
confirmationToken: {
|
|
1511
|
+
type: "string",
|
|
1512
|
+
description: "Preview-issued token that binds active workspace, source metadata/content hash, selected columns, normalized entries, and DNC list name.",
|
|
1513
|
+
},
|
|
1514
|
+
confirmed: {
|
|
1515
|
+
type: "boolean",
|
|
1516
|
+
description: "Set true only after the user confirms the preview for the exact target workspace and matching confirmationToken.",
|
|
1517
|
+
},
|
|
1518
|
+
},
|
|
1519
|
+
required: [],
|
|
1520
|
+
},
|
|
1521
|
+
},
|
|
1479
1522
|
{
|
|
1480
1523
|
name: "save_domain_filters",
|
|
1481
1524
|
description: "Save pasted or raw include/exclude domain lists for Prospeo search. Validates domains and returns a domainFilterId to pass into search_prospeo. Use load_csv_domains when the user already has a CSV file on disk. If the user provides company names, resolve names to official website domains first, then call this tool.",
|
|
@@ -3338,6 +3381,9 @@ export async function loadCsvLinkedinLeads(input) {
|
|
|
3338
3381
|
suggestedToolCalls: buildCsvLinkedinPreviewSuggestedToolCalls(input, preview.confirmationToken),
|
|
3339
3382
|
};
|
|
3340
3383
|
}
|
|
3384
|
+
export async function loadCsvDncEntriesTool(input) {
|
|
3385
|
+
return loadCsvDncEntries(input);
|
|
3386
|
+
}
|
|
3341
3387
|
export async function saveDomainFilters(input) {
|
|
3342
3388
|
const api = getApi();
|
|
3343
3389
|
return api.post(`/api/v3/prospeo/domain-filters`, {
|