@coldiq/mcp 0.4.4 → 0.4.6
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/registry.d.ts.map +1 -1
- package/dist/registry.js +27 -103
- package/dist/registry.js.map +1 -1
- package/dist/utils/provider-resolver.d.ts.map +1 -1
- package/dist/utils/provider-resolver.js +4 -10
- package/dist/utils/provider-resolver.js.map +1 -1
- package/dist/utils/selection-insight.d.ts.map +1 -1
- package/dist/utils/selection-insight.js +6 -8
- package/dist/utils/selection-insight.js.map +1 -1
- package/package.json +1 -1
- package/src/registry.ts +28 -99
- package/src/utils/provider-resolver.ts +4 -10
- package/src/utils/selection-insight.ts +6 -8
- package/tests/provider-availability.test.ts +4 -4
- package/tests/registry-polling.test.ts +4 -4
- package/tests/registry.test.ts +32 -81
- package/tests/tools/list-data-sources.test.ts +1 -1
- package/tests/utils/provider-resolver.test.ts +7 -7
- package/tests/utils/selection-insight.test.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/provider-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAQhD,eAAO,MAAM,gCAAgC,
|
|
1
|
+
{"version":3,"file":"provider-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/provider-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAQhD,eAAO,MAAM,gCAAgC,UAQ5C,CAAA;AAED,eAAO,MAAM,qBAAqB,UAA6D,CAAA;AAE/F,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,GAAG,MAAM,EAAE,CAG1F;AAMD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,mBAAmB,EAAE,MAAM,EAAE,CAAA;CAC9B;AAKD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,UAAU,GAAG,aAAa,EACtC,SAAS,EAAE,MAAM,EAAE,GAClB,gBAAgB,CAKlB;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,UAAU,GAAG,aAAa,EACtC,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,gBAAgB,CAoBlB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,UAAU,GAAG,aAAa,EACtC,SAAS,EAAE,MAAM,EAAE,GAClB,gBAAgB,CASlB;AAMD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,IAAI,CAAA;IACR,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACrC;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,KAAK,CAAA;IACT,KAAK,EAAE,gBAAgB,CAAA;CACxB;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,YAAY,CAAA;AAEpD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,UAAU,GAAG,aAAa,EACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,YAAY,EAAE,OAAO,GACpB,aAAa,CAkDf;AAaD,UAAU,QAAQ;IAChB,IAAI,EAAE,UAAU,GAAG,mBAAmB,CAAA;IACtC,MAAM,EAAE,MAAM,CAAA;CACf"}
|
|
@@ -6,17 +6,13 @@ import { fuzzyMatch } from './fuzzy.js';
|
|
|
6
6
|
// Order = auto-route execution order: bulk providers first (Steps 1-3), then
|
|
7
7
|
// the single-find_email fallback providers used for stragglers (Step 4).
|
|
8
8
|
export const CONFIGURED_FIND_EMAILS_PROVIDERS = [
|
|
9
|
-
'
|
|
9
|
+
'findymail',
|
|
10
10
|
'leadmagic',
|
|
11
11
|
'prospeo',
|
|
12
|
-
'blitzapi',
|
|
13
|
-
'limadata-work-email-linkedin',
|
|
14
12
|
'apollo-people-match',
|
|
15
|
-
'
|
|
16
|
-
'fullenrich',
|
|
17
|
-
'pdl-person-enrich',
|
|
18
|
-
'linkupapi',
|
|
13
|
+
'limadata-work-email',
|
|
19
14
|
'icypeas',
|
|
15
|
+
'wiza',
|
|
20
16
|
];
|
|
21
17
|
export const FIND_EMAILS_PROVIDERS = CONFIGURED_FIND_EMAILS_PROVIDERS.filter(isProviderEnabled);
|
|
22
18
|
export function getProvidersForCapability(capability) {
|
|
@@ -151,10 +147,8 @@ const GATED_DESCRIPTIONS = {
|
|
|
151
147
|
find_email: {
|
|
152
148
|
findymail: { kind: 'requires', fields: 'first_name and (domain or company_name)' },
|
|
153
149
|
'limadata-work-email': { kind: 'requires', fields: 'first_name, last_name, and domain' },
|
|
154
|
-
|
|
155
|
-
'limadata-work-email-linkedin': { kind: 'requires', fields: 'linkedin_url' },
|
|
150
|
+
wiza: { kind: 'requires', fields: 'linkedin_url or (first_name, last_name, and domain/company_name)' },
|
|
156
151
|
'apollo-people-match': { kind: 'requires', fields: 'linkedin_url or (first_name, last_name, and domain/company_name)' },
|
|
157
|
-
'pdl-person-enrich': { kind: 'requires', fields: 'linkedin_url or (first_name, last_name, and domain/company_name)' },
|
|
158
152
|
},
|
|
159
153
|
// -------------------------------------------------------------------------
|
|
160
154
|
verify_email: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-resolver.js","sourceRoot":"","sources":["../../src/utils/provider-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAA;AAEzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,+EAA+E;AAC/E,4EAA4E;AAC5E,6EAA6E;AAC7E,yEAAyE;AACzE,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,
|
|
1
|
+
{"version":3,"file":"provider-resolver.js","sourceRoot":"","sources":["../../src/utils/provider-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection-insight.d.ts","sourceRoot":"","sources":["../../src/utils/selection-insight.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAmBhD,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,aAAa,CAAA;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B;gFAC4E;IAC5E,WAAW,EAAE,OAAO,CAAA;IACpB,qEAAqE;IACrE,YAAY,EAAE,OAAO,CAAA;CACtB;
|
|
1
|
+
{"version":3,"file":"selection-insight.d.ts","sourceRoot":"","sources":["../../src/utils/selection-insight.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAmBhD,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,aAAa,CAAA;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B;gFAC4E;IAC5E,WAAW,EAAE,OAAO,CAAA;IACpB,qEAAqE;IACrE,YAAY,EAAE,OAAO,CAAA;CACtB;AAsKD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,iBAAiB,EAC7B,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CAEpB;AA2HD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,iBAAiB,EAC7B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,GAAG,EAAE,cAAc,GAClB,gBAAgB,GAAG,SAAS,CAgC9B"}
|
|
@@ -39,23 +39,21 @@ const STRENGTHS = {
|
|
|
39
39
|
},
|
|
40
40
|
find_email: {
|
|
41
41
|
prospeo: 'strong work-email coverage',
|
|
42
|
-
fullenrich: 'strong international email coverage, especially across Europe',
|
|
43
42
|
findymail: 'high-accuracy verified work emails',
|
|
43
|
+
wiza: 'live SMTP-verified email reveals (premium)',
|
|
44
44
|
icypeas: 'broad email-finding coverage',
|
|
45
45
|
'limadata-work-email': 'name-and-domain work-email lookup',
|
|
46
|
-
|
|
47
|
-
'
|
|
48
|
-
linkupapi: 'LinkedIn-sourced email finding',
|
|
46
|
+
leadmagic: 'pay-per-result email finding with employment verification',
|
|
47
|
+
'apollo-people-match': 'person-matched current-employer emails (recovers job movers)',
|
|
49
48
|
},
|
|
50
49
|
find_emails: {
|
|
51
50
|
prospeo: 'strong work-email coverage',
|
|
52
|
-
fullenrich: 'strong international email coverage, especially across Europe',
|
|
53
51
|
findymail: 'high-accuracy verified work emails',
|
|
52
|
+
wiza: 'live SMTP-verified email reveals (premium)',
|
|
54
53
|
icypeas: 'broad email-finding coverage',
|
|
55
54
|
'limadata-work-email': 'name-and-domain work-email lookup',
|
|
56
|
-
|
|
57
|
-
'
|
|
58
|
-
linkupapi: 'LinkedIn-sourced email finding',
|
|
55
|
+
leadmagic: 'pay-per-result email finding with employment verification',
|
|
56
|
+
'apollo-people-match': 'person-matched current-employer emails (recovers job movers)',
|
|
59
57
|
},
|
|
60
58
|
verify_email: {
|
|
61
59
|
findymail: 'reliable deliverability verification',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection-insight.js","sourceRoot":"","sources":["../../src/utils/selection-insight.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAiC3D,8EAA8E;AAC9E,oEAAoE;AACpE,+EAA+E;AAC/E,+EAA+E;AAC/E,gDAAgD;AAChD,8EAA8E;AAE9E,MAAM,SAAS,GAA+D;IAC5E,gBAAgB,EAAE;QAChB,aAAa,EAAE,6DAA6D;QAC5E,MAAM,EAAE,sCAAsC;QAC9C,UAAU,EAAE,2DAA2D;QACvE,GAAG,EAAE,4CAA4C;QACjD,UAAU,EAAE,yDAAyD;QACrE,QAAQ,EAAE,+BAA+B;QACzC,QAAQ,EAAE,kCAAkC;QAC5C,YAAY,EAAE,uDAAuD;QACrE,UAAU,EAAE,+CAA+C;QAC3D,MAAM,EAAE,kDAAkD;QAC1D,0BAA0B,EAAE,yCAAyC;QACrE,uBAAuB,EAAE,2DAA2D;QACpF,kBAAkB,EAAE,8BAA8B;QAClD,uBAAuB,EAAE,gDAAgD;QACzE,kBAAkB,EAAE,gDAAgD;QACpE,wBAAwB,EAAE,0CAA0C;QACpE,kBAAkB,EAAE,gCAAgC;KACrD;IACD,WAAW,EAAE;QACX,YAAY,EAAE,6CAA6C;QAC3D,MAAM,EAAE,sCAAsC;QAC9C,GAAG,EAAE,2CAA2C;QAChD,aAAa,EAAE,gCAAgC;QAC/C,2BAA2B,EAAE,8BAA8B;QAC3D,oBAAoB,EAAE,0CAA0C;QAChE,uBAAuB,EAAE,wCAAwC;QACjE,eAAe,EAAE,+BAA+B;QAChD,0BAA0B,EAAE,6BAA6B;QACzD,4BAA4B,EAAE,kCAAkC;KACjE;IACD,UAAU,EAAE;QACV,OAAO,EAAE,4BAA4B;QACrC,
|
|
1
|
+
{"version":3,"file":"selection-insight.js","sourceRoot":"","sources":["../../src/utils/selection-insight.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/registry.ts
CHANGED
|
@@ -1564,7 +1564,7 @@ const findEmailProviders: ProviderEntry[] = [
|
|
|
1564
1564
|
id: 'findymail',
|
|
1565
1565
|
endpoint: '/findymail/search/name',
|
|
1566
1566
|
method: 'POST',
|
|
1567
|
-
priority:
|
|
1567
|
+
priority: 1,
|
|
1568
1568
|
isApplicable: (input) =>
|
|
1569
1569
|
typeof input.first_name === 'string' && (input.first_name as string).length > 0 &&
|
|
1570
1570
|
(
|
|
@@ -1589,7 +1589,7 @@ const findEmailProviders: ProviderEntry[] = [
|
|
|
1589
1589
|
id: 'icypeas',
|
|
1590
1590
|
endpoint: '/icypeas/email-search',
|
|
1591
1591
|
method: 'POST',
|
|
1592
|
-
priority:
|
|
1592
|
+
priority: 6,
|
|
1593
1593
|
mapParams: (input) => ({
|
|
1594
1594
|
body: {
|
|
1595
1595
|
firstname: input.first_name,
|
|
@@ -1609,7 +1609,7 @@ const findEmailProviders: ProviderEntry[] = [
|
|
|
1609
1609
|
id: 'limadata-work-email',
|
|
1610
1610
|
endpoint: '/limadata/find/work-email',
|
|
1611
1611
|
method: 'POST',
|
|
1612
|
-
priority:
|
|
1612
|
+
priority: 5,
|
|
1613
1613
|
mapParams: (input) => {
|
|
1614
1614
|
const fullName = [input.first_name, input.last_name].filter(Boolean).join(' ')
|
|
1615
1615
|
return {
|
|
@@ -1660,92 +1660,44 @@ const findEmailProviders: ProviderEntry[] = [
|
|
|
1660
1660
|
},
|
|
1661
1661
|
},
|
|
1662
1662
|
{
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
priority: 4,
|
|
1667
|
-
mapParams: (input) => ({
|
|
1668
|
-
body: { person_linkedin_url: input.linkedin_url as string },
|
|
1669
|
-
}),
|
|
1670
|
-
hasResult: (data) => {
|
|
1671
|
-
const d = data as Record<string, unknown>
|
|
1672
|
-
return typeof d.email === 'string' && d.email.includes('@')
|
|
1673
|
-
},
|
|
1674
|
-
isApplicable: (input) => typeof input.linkedin_url === 'string' && (input.linkedin_url as string).length > 0,
|
|
1675
|
-
},
|
|
1676
|
-
{
|
|
1677
|
-
id: 'fullenrich',
|
|
1678
|
-
endpoint: '/fullenrich/contact/enrich/bulk',
|
|
1663
|
+
// Premium slot: live SMTP-verified reveal (partial = email-only depth).
|
|
1664
|
+
id: 'wiza',
|
|
1665
|
+
endpoint: '/wiza/individual-reveals',
|
|
1679
1666
|
method: 'POST',
|
|
1680
|
-
priority:
|
|
1667
|
+
priority: 7,
|
|
1668
|
+
isApplicable: (input) =>
|
|
1669
|
+
(typeof input.linkedin_url === 'string' && (input.linkedin_url as string).length > 0) ||
|
|
1670
|
+
(!!input.first_name && !!input.last_name && !!(input.domain || input.company_name)),
|
|
1681
1671
|
mapParams: (input) => ({
|
|
1682
1672
|
body: {
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
}],
|
|
1673
|
+
individual_reveal: input.linkedin_url
|
|
1674
|
+
? { profile_url: input.linkedin_url }
|
|
1675
|
+
: {
|
|
1676
|
+
full_name: [input.first_name, input.last_name].filter(Boolean).join(' '),
|
|
1677
|
+
...(input.domain ? { domain: input.domain } : { company: input.company_name }),
|
|
1678
|
+
},
|
|
1679
|
+
enrichment_level: 'partial',
|
|
1680
|
+
email_options: { accept_work: true, accept_personal: false },
|
|
1692
1681
|
},
|
|
1693
1682
|
}),
|
|
1694
1683
|
hasResult: (data) => {
|
|
1695
|
-
const d = data as Record<string, unknown>
|
|
1696
|
-
|
|
1697
|
-
if (!Array.isArray(items) || items.length === 0) return false
|
|
1698
|
-
const emails = items[0]?.emails as unknown[] | undefined
|
|
1699
|
-
return Array.isArray(emails) && emails.length > 0
|
|
1684
|
+
const d = (data as Record<string, unknown>).data as Record<string, unknown> | undefined
|
|
1685
|
+
return typeof d?.email === 'string' && (d.email as string).includes('@')
|
|
1700
1686
|
},
|
|
1701
1687
|
async: {
|
|
1702
1688
|
extractId: (response) => {
|
|
1703
|
-
const d = response as Record<string, unknown>
|
|
1704
|
-
return d.
|
|
1689
|
+
const d = (response as Record<string, unknown>).data as Record<string, unknown> | undefined
|
|
1690
|
+
return d?.id !== undefined && d?.id !== null ? String(d.id) : ''
|
|
1705
1691
|
},
|
|
1706
|
-
pollEndpoint: (id) => `/
|
|
1692
|
+
pollEndpoint: (id) => `/wiza/individual-reveals/${id}`,
|
|
1707
1693
|
pollIntervalMs: 2500,
|
|
1708
1694
|
timeoutMs: 60_000,
|
|
1695
|
+
// The MCP AsyncConfig has no isFailed; a 'failed' reveal is terminal via
|
|
1696
|
+
// isComplete and then reads as a miss (no email in the payload).
|
|
1709
1697
|
isComplete: (data) => {
|
|
1710
|
-
const d = data as Record<string, unknown>
|
|
1711
|
-
|
|
1712
|
-
return status === 'DONE' || status === 'FAILED'
|
|
1713
|
-
},
|
|
1714
|
-
},
|
|
1715
|
-
},
|
|
1716
|
-
{
|
|
1717
|
-
id: 'limadata-work-email-linkedin',
|
|
1718
|
-
endpoint: '/limadata/find/work-email-linkedin',
|
|
1719
|
-
method: 'POST',
|
|
1720
|
-
priority: 5,
|
|
1721
|
-
mapParams: (input) => ({
|
|
1722
|
-
body: { linkedin_url: input.linkedin_url as string },
|
|
1723
|
-
}),
|
|
1724
|
-
hasResult: (data) => {
|
|
1725
|
-
const d = data as Record<string, unknown>
|
|
1726
|
-
if (typeof d.email === 'string' && d.email.includes('@')) return true
|
|
1727
|
-
if (Array.isArray(d.emails) && typeof d.emails[0] === 'string' && (d.emails[0] as string).includes('@')) return true
|
|
1728
|
-
const nested = d.data as Record<string, unknown> | undefined
|
|
1729
|
-
if (nested && typeof nested.email === 'string' && (nested.email as string).includes('@')) return true
|
|
1730
|
-
return false
|
|
1731
|
-
},
|
|
1732
|
-
isApplicable: (input) => typeof input.linkedin_url === 'string' && (input.linkedin_url as string).length > 0,
|
|
1733
|
-
},
|
|
1734
|
-
{
|
|
1735
|
-
id: 'linkupapi',
|
|
1736
|
-
endpoint: '/linkupapi/data/mail/finder',
|
|
1737
|
-
method: 'POST',
|
|
1738
|
-
priority: 10,
|
|
1739
|
-
mapParams: (input) => ({
|
|
1740
|
-
body: {
|
|
1741
|
-
first_name: input.first_name,
|
|
1742
|
-
last_name: input.last_name,
|
|
1743
|
-
company_name: input.company_name || input.domain,
|
|
1698
|
+
const d = (data as Record<string, unknown>).data as Record<string, unknown> | undefined
|
|
1699
|
+
return d?.is_complete === true || d?.status === 'failed'
|
|
1744
1700
|
},
|
|
1745
|
-
}),
|
|
1746
|
-
hasResult: (data) => {
|
|
1747
|
-
const d = data as Record<string, unknown>
|
|
1748
|
-
return typeof d.email === 'string' && d.email.includes('@')
|
|
1749
1701
|
},
|
|
1750
1702
|
},
|
|
1751
1703
|
// Mirror of the API registry additions (validation/listing only — execution order and
|
|
@@ -1754,7 +1706,7 @@ const findEmailProviders: ProviderEntry[] = [
|
|
|
1754
1706
|
id: 'apollo-people-match',
|
|
1755
1707
|
endpoint: '/apollo/people/match',
|
|
1756
1708
|
method: 'POST',
|
|
1757
|
-
priority:
|
|
1709
|
+
priority: 4,
|
|
1758
1710
|
isApplicable: (input) =>
|
|
1759
1711
|
(typeof input.linkedin_url === 'string' && (input.linkedin_url as string).length > 0) ||
|
|
1760
1712
|
(!!input.first_name && !!input.last_name && !!(input.domain || input.company_name)),
|
|
@@ -1779,29 +1731,6 @@ const findEmailProviders: ProviderEntry[] = [
|
|
|
1779
1731
|
)
|
|
1780
1732
|
},
|
|
1781
1733
|
},
|
|
1782
|
-
{
|
|
1783
|
-
id: 'pdl-person-enrich',
|
|
1784
|
-
endpoint: '/pdl/person/enrich',
|
|
1785
|
-
method: 'POST',
|
|
1786
|
-
priority: 9,
|
|
1787
|
-
isApplicable: (input) =>
|
|
1788
|
-
(typeof input.linkedin_url === 'string' && (input.linkedin_url as string).length > 0) ||
|
|
1789
|
-
(!!input.first_name && !!input.last_name && !!(input.domain || input.company_name)),
|
|
1790
|
-
mapParams: (input) => ({
|
|
1791
|
-
body: {
|
|
1792
|
-
profile: input.linkedin_url,
|
|
1793
|
-
first_name: input.first_name,
|
|
1794
|
-
last_name: input.last_name,
|
|
1795
|
-
company: input.company_name ?? input.domain,
|
|
1796
|
-
},
|
|
1797
|
-
}),
|
|
1798
|
-
hasResult: (data) => {
|
|
1799
|
-
const d = data as Record<string, unknown>
|
|
1800
|
-
if (d.status !== 200) return false
|
|
1801
|
-
const rec = d.data as Record<string, unknown> | undefined
|
|
1802
|
-
return !!rec && typeof rec.work_email === 'string' && rec.work_email.includes('@')
|
|
1803
|
-
},
|
|
1804
|
-
},
|
|
1805
1734
|
{
|
|
1806
1735
|
id: 'leadmagic',
|
|
1807
1736
|
endpoint: '/leadmagic/people/email-finder',
|
|
@@ -8,17 +8,13 @@ import { fuzzyMatch } from './fuzzy.js'
|
|
|
8
8
|
// Order = auto-route execution order: bulk providers first (Steps 1-3), then
|
|
9
9
|
// the single-find_email fallback providers used for stragglers (Step 4).
|
|
10
10
|
export const CONFIGURED_FIND_EMAILS_PROVIDERS = [
|
|
11
|
-
'
|
|
11
|
+
'findymail',
|
|
12
12
|
'leadmagic',
|
|
13
13
|
'prospeo',
|
|
14
|
-
'blitzapi',
|
|
15
|
-
'limadata-work-email-linkedin',
|
|
16
14
|
'apollo-people-match',
|
|
17
|
-
'
|
|
18
|
-
'fullenrich',
|
|
19
|
-
'pdl-person-enrich',
|
|
20
|
-
'linkupapi',
|
|
15
|
+
'limadata-work-email',
|
|
21
16
|
'icypeas',
|
|
17
|
+
'wiza',
|
|
22
18
|
]
|
|
23
19
|
|
|
24
20
|
export const FIND_EMAILS_PROVIDERS = CONFIGURED_FIND_EMAILS_PROVIDERS.filter(isProviderEnabled)
|
|
@@ -223,10 +219,8 @@ const GATED_DESCRIPTIONS: Partial<Record<Capability, Partial<Record<string, Gate
|
|
|
223
219
|
find_email: {
|
|
224
220
|
findymail: { kind: 'requires', fields: 'first_name and (domain or company_name)' },
|
|
225
221
|
'limadata-work-email': { kind: 'requires', fields: 'first_name, last_name, and domain' },
|
|
226
|
-
|
|
227
|
-
'limadata-work-email-linkedin': { kind: 'requires', fields: 'linkedin_url' },
|
|
222
|
+
wiza: { kind: 'requires', fields: 'linkedin_url or (first_name, last_name, and domain/company_name)' },
|
|
228
223
|
'apollo-people-match': { kind: 'requires', fields: 'linkedin_url or (first_name, last_name, and domain/company_name)' },
|
|
229
|
-
'pdl-person-enrich': { kind: 'requires', fields: 'linkedin_url or (first_name, last_name, and domain/company_name)' },
|
|
230
224
|
},
|
|
231
225
|
// -------------------------------------------------------------------------
|
|
232
226
|
verify_email: {},
|
|
@@ -73,23 +73,21 @@ const STRENGTHS: Partial<Record<InsightCapability, Record<string, string>>> = {
|
|
|
73
73
|
},
|
|
74
74
|
find_email: {
|
|
75
75
|
prospeo: 'strong work-email coverage',
|
|
76
|
-
fullenrich: 'strong international email coverage, especially across Europe',
|
|
77
76
|
findymail: 'high-accuracy verified work emails',
|
|
77
|
+
wiza: 'live SMTP-verified email reveals (premium)',
|
|
78
78
|
icypeas: 'broad email-finding coverage',
|
|
79
79
|
'limadata-work-email': 'name-and-domain work-email lookup',
|
|
80
|
-
|
|
81
|
-
'
|
|
82
|
-
linkupapi: 'LinkedIn-sourced email finding',
|
|
80
|
+
leadmagic: 'pay-per-result email finding with employment verification',
|
|
81
|
+
'apollo-people-match': 'person-matched current-employer emails (recovers job movers)',
|
|
83
82
|
},
|
|
84
83
|
find_emails: {
|
|
85
84
|
prospeo: 'strong work-email coverage',
|
|
86
|
-
fullenrich: 'strong international email coverage, especially across Europe',
|
|
87
85
|
findymail: 'high-accuracy verified work emails',
|
|
86
|
+
wiza: 'live SMTP-verified email reveals (premium)',
|
|
88
87
|
icypeas: 'broad email-finding coverage',
|
|
89
88
|
'limadata-work-email': 'name-and-domain work-email lookup',
|
|
90
|
-
|
|
91
|
-
'
|
|
92
|
-
linkupapi: 'LinkedIn-sourced email finding',
|
|
89
|
+
leadmagic: 'pay-per-result email finding with employment verification',
|
|
90
|
+
'apollo-people-match': 'person-matched current-employer emails (recovers job movers)',
|
|
93
91
|
},
|
|
94
92
|
verify_email: {
|
|
95
93
|
findymail: 'reliable deliverability verification',
|
|
@@ -8,7 +8,6 @@ import { findEmailsBulkSchema } from '../src/tools/find-emails-bulk.js'
|
|
|
8
8
|
import { getEndpointDetailsSchema } from '../src/tools/get-endpoint-details.js'
|
|
9
9
|
import { listDataSourcesHandler } from '../src/tools/list-data-sources.js'
|
|
10
10
|
import {
|
|
11
|
-
CONFIGURED_FIND_EMAILS_PROVIDERS,
|
|
12
11
|
FIND_EMAILS_PROVIDERS,
|
|
13
12
|
getProvidersForCapability,
|
|
14
13
|
resolvePreferredProviders,
|
|
@@ -44,14 +43,15 @@ describe('standalone MCP provider availability', () => {
|
|
|
44
43
|
})
|
|
45
44
|
|
|
46
45
|
it('keeps dormant definitions testable but removes them from every active waterfall', () => {
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
// pdl-person-enrich left find_email entirely (2026-07-24 reorder); the dormant
|
|
47
|
+
// PDL definition still lives in find_people for when the account is re-enabled.
|
|
48
|
+
expect(getConfiguredProviders('find_people').some((provider) => provider.id === 'pdl')).toBe(true)
|
|
49
49
|
|
|
50
50
|
for (const capability of CAPABILITIES) {
|
|
51
51
|
expect(getProviders(capability).every((provider) => isProviderEnabled(provider.id))).toBe(true)
|
|
52
52
|
}
|
|
53
53
|
expect(FIND_EMAILS_PROVIDERS.every(isProviderEnabled)).toBe(true)
|
|
54
|
-
expect(getProvidersForCapability('
|
|
54
|
+
expect(getProvidersForCapability('find_people')).not.toContain('pdl')
|
|
55
55
|
})
|
|
56
56
|
|
|
57
57
|
it('rejects an explicit disabled-provider pin without advertising it as available', () => {
|
|
@@ -30,11 +30,11 @@ describe('MCP polling interval schedules', () => {
|
|
|
30
30
|
expect(evalPollSchedule(fn, 300_000).length).toBeGreaterThanOrEqual(10)
|
|
31
31
|
})
|
|
32
32
|
|
|
33
|
-
it('
|
|
33
|
+
it('Wiza find-email: 2.5s interval fits inside 60s timeout', () => {
|
|
34
34
|
const providers = getProviders('find_email')
|
|
35
|
-
const
|
|
36
|
-
expect(
|
|
37
|
-
expect(
|
|
35
|
+
const wiza = providers.find((p) => p.id === 'wiza')!
|
|
36
|
+
expect(wiza?.async).toBeDefined()
|
|
37
|
+
expect(wiza.async!.pollIntervalMs).toBe(2500)
|
|
38
38
|
// timeoutMs = 60_000 → at least 24 polls
|
|
39
39
|
expect(60_000 / 2500).toBeGreaterThanOrEqual(24)
|
|
40
40
|
})
|
package/tests/registry.test.ts
CHANGED
|
@@ -651,59 +651,51 @@ describe('registry', () => {
|
|
|
651
651
|
expect(prospeo.hasResult({ email: null })).toBe(false)
|
|
652
652
|
})
|
|
653
653
|
|
|
654
|
-
it('
|
|
654
|
+
it('Wiza maps a linkedin_url to a partial (email-only) individual reveal', () => {
|
|
655
655
|
const providers = getProviders('find_email')
|
|
656
|
-
const
|
|
657
|
-
const result =
|
|
658
|
-
first_name: 'Michel',
|
|
659
|
-
last_name: 'Lieben',
|
|
660
|
-
domain: 'coldiq.com',
|
|
661
|
-
linkedin_url: 'https://linkedin.com/in/michel-lieben',
|
|
662
|
-
})
|
|
656
|
+
const wiza = providers.find((p) => p.id === 'wiza')!
|
|
657
|
+
const result = wiza.mapParams({ linkedin_url: 'https://linkedin.com/in/michel-lieben' })
|
|
663
658
|
expect(result.body).toEqual({
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
last_name: 'Lieben',
|
|
668
|
-
domain: 'coldiq.com',
|
|
669
|
-
linkedin_url: 'https://linkedin.com/in/michel-lieben',
|
|
670
|
-
enrich_fields: ['contact.emails'],
|
|
671
|
-
}],
|
|
659
|
+
individual_reveal: { profile_url: 'https://linkedin.com/in/michel-lieben' },
|
|
660
|
+
enrichment_level: 'partial',
|
|
661
|
+
email_options: { accept_work: true, accept_personal: false },
|
|
672
662
|
})
|
|
673
663
|
})
|
|
674
664
|
|
|
675
|
-
it('
|
|
665
|
+
it('Wiza maps name+domain when no linkedin_url is supplied', () => {
|
|
676
666
|
const providers = getProviders('find_email')
|
|
677
|
-
const
|
|
678
|
-
|
|
679
|
-
expect(
|
|
680
|
-
|
|
681
|
-
|
|
667
|
+
const wiza = providers.find((p) => p.id === 'wiza')!
|
|
668
|
+
const result = wiza.mapParams({ first_name: 'Michel', last_name: 'Lieben', domain: 'coldiq.com' })
|
|
669
|
+
expect((result.body as Record<string, unknown>).individual_reveal).toEqual({
|
|
670
|
+
full_name: 'Michel Lieben', domain: 'coldiq.com',
|
|
671
|
+
})
|
|
682
672
|
})
|
|
683
673
|
|
|
684
|
-
it('
|
|
674
|
+
it('Wiza hasResult reads the reveal envelope; async polls the reveal id', () => {
|
|
685
675
|
const providers = getProviders('find_email')
|
|
686
|
-
const
|
|
687
|
-
expect(
|
|
688
|
-
expect(
|
|
689
|
-
expect(
|
|
690
|
-
expect(
|
|
691
|
-
expect(
|
|
692
|
-
expect(
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
676
|
+
const wiza = providers.find((p) => p.id === 'wiza')!
|
|
677
|
+
expect(wiza.hasResult({ data: { is_complete: true, email: 'michel@coldiq.com' } })).toBe(true)
|
|
678
|
+
expect(wiza.hasResult({ data: { is_complete: true, email: null } })).toBe(false)
|
|
679
|
+
expect(wiza.async).toBeDefined()
|
|
680
|
+
expect(wiza.async!.extractId({ data: { id: 12345 } })).toBe('12345')
|
|
681
|
+
expect(wiza.async!.pollEndpoint('12345')).toBe('/wiza/individual-reveals/12345')
|
|
682
|
+
expect(wiza.async!.isComplete({ data: { is_complete: true } })).toBe(true)
|
|
683
|
+
expect(wiza.async!.isComplete({ data: { status: 'failed' } })).toBe(true)
|
|
684
|
+
expect(wiza.async!.isComplete({ data: { is_complete: false } })).toBe(false)
|
|
685
|
+
})
|
|
686
|
+
|
|
687
|
+
it('Wiza is priority 7 (dead last — $0.50/hit cost containment)', () => {
|
|
696
688
|
const providers = getProviders('find_email')
|
|
697
|
-
const
|
|
698
|
-
|
|
699
|
-
expect(fe.priority).toBe(8)
|
|
700
|
-
expect(lu.priority).toBe(10)
|
|
689
|
+
const wiza = providers.find((p) => p.id === 'wiza')!
|
|
690
|
+
expect(wiza.priority).toBe(7)
|
|
701
691
|
})
|
|
702
692
|
|
|
703
|
-
it('
|
|
693
|
+
it('mirrors the server order: findymail → leadmagic → prospeo → apollo → limadata → icypeas → wiza', () => {
|
|
704
694
|
const ids = getProviders('find_email').map((p) => p.id)
|
|
705
|
-
expect(ids
|
|
706
|
-
|
|
695
|
+
expect(ids).toEqual([
|
|
696
|
+
'findymail', 'leadmagic', 'prospeo', 'apollo-people-match',
|
|
697
|
+
'limadata-work-email', 'icypeas', 'wiza',
|
|
698
|
+
])
|
|
707
699
|
})
|
|
708
700
|
|
|
709
701
|
it('Lima Data work-email maps full_name + company_domain', () => {
|
|
@@ -727,47 +719,6 @@ describe('registry', () => {
|
|
|
727
719
|
expect(ld.hasResult({})).toBe(false)
|
|
728
720
|
})
|
|
729
721
|
|
|
730
|
-
it('BlitzAPI maps person_linkedin_url from linkedin_url input', () => {
|
|
731
|
-
const providers = getProviders('find_email')
|
|
732
|
-
const blitz = providers.find((p) => p.id === 'blitzapi')!
|
|
733
|
-
const result = blitz.mapParams({
|
|
734
|
-
linkedin_url: 'https://linkedin.com/in/michel-lieben',
|
|
735
|
-
})
|
|
736
|
-
expect(result.body).toEqual({ person_linkedin_url: 'https://linkedin.com/in/michel-lieben' })
|
|
737
|
-
})
|
|
738
|
-
|
|
739
|
-
it('BlitzAPI isApplicable requires linkedin_url', () => {
|
|
740
|
-
const providers = getProviders('find_email')
|
|
741
|
-
const blitz = providers.find((p) => p.id === 'blitzapi')!
|
|
742
|
-
expect(blitz.isApplicable!({})).toBe(false)
|
|
743
|
-
expect(blitz.isApplicable!({ first_name: 'Michel', domain: 'coldiq.com' })).toBe(false)
|
|
744
|
-
expect(blitz.isApplicable!({ linkedin_url: 'https://...' })).toBe(true)
|
|
745
|
-
})
|
|
746
|
-
|
|
747
|
-
it('BlitzAPI hasResult checks top-level email', () => {
|
|
748
|
-
const providers = getProviders('find_email')
|
|
749
|
-
const blitz = providers.find((p) => p.id === 'blitzapi')!
|
|
750
|
-
expect(blitz.hasResult({ email: 'michel@coldiq.com' })).toBe(true)
|
|
751
|
-
expect(blitz.hasResult({ email: null })).toBe(false)
|
|
752
|
-
})
|
|
753
|
-
|
|
754
|
-
it('Lima Data work-email-linkedin maps linkedin_url passthrough', () => {
|
|
755
|
-
const providers = getProviders('find_email')
|
|
756
|
-
const ld = providers.find((p) => p.id === 'limadata-work-email-linkedin')!
|
|
757
|
-
const result = ld.mapParams({
|
|
758
|
-
linkedin_url: 'https://linkedin.com/in/michel-lieben',
|
|
759
|
-
})
|
|
760
|
-
expect(result.body).toEqual({ linkedin_url: 'https://linkedin.com/in/michel-lieben' })
|
|
761
|
-
})
|
|
762
|
-
|
|
763
|
-
it('Lima Data work-email-linkedin isApplicable requires linkedin_url', () => {
|
|
764
|
-
const providers = getProviders('find_email')
|
|
765
|
-
const ld = providers.find((p) => p.id === 'limadata-work-email-linkedin')!
|
|
766
|
-
expect(ld.isApplicable!({})).toBe(false)
|
|
767
|
-
expect(ld.isApplicable!({ first_name: 'Michel', domain: 'coldiq.com' })).toBe(false)
|
|
768
|
-
expect(ld.isApplicable!({ linkedin_url: 'https://...' })).toBe(true)
|
|
769
|
-
})
|
|
770
|
-
|
|
771
722
|
it('Lima Data work-email isApplicable requires first_name + last_name + domain', () => {
|
|
772
723
|
const providers = getProviders('find_email')
|
|
773
724
|
const ld = providers.find((p) => p.id === 'limadata-work-email')!
|