@coldiq/mcp 0.1.18 → 0.2.4
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/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +7 -1
- package/dist/client.js.map +1 -1
- package/dist/executor.d.ts +11 -0
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +72 -11
- package/dist/executor.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/registry.d.ts +1 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +57 -8
- package/dist/registry.js.map +1 -1
- package/dist/tools/find-emails.d.ts +2 -7
- package/dist/tools/find-emails.d.ts.map +1 -1
- package/dist/tools/find-emails.js +193 -67
- package/dist/tools/find-emails.js.map +1 -1
- package/dist/tools/find-people.d.ts +3 -2
- package/dist/tools/find-people.d.ts.map +1 -1
- package/dist/tools/find-people.js +65 -7
- package/dist/tools/find-people.js.map +1 -1
- package/dist/tools/get-credit-balance.d.ts +17 -0
- package/dist/tools/get-credit-balance.d.ts.map +1 -0
- package/dist/tools/get-credit-balance.js +20 -0
- package/dist/tools/get-credit-balance.js.map +1 -0
- package/dist/utils/compact-people.d.ts +24 -0
- package/dist/utils/compact-people.d.ts.map +1 -0
- package/dist/utils/compact-people.js +306 -0
- package/dist/utils/compact-people.js.map +1 -0
- package/dist/utils/provider-resolver.d.ts.map +1 -1
- package/dist/utils/provider-resolver.js +15 -1
- package/dist/utils/provider-resolver.js.map +1 -1
- package/package.json +1 -1
- package/src/client.ts +9 -1
- package/src/executor.ts +89 -17
- package/src/index.ts +8 -0
- package/src/registry.ts +67 -8
- package/src/tools/find-emails.ts +251 -80
- package/src/tools/find-people.ts +70 -7
- package/src/tools/get-credit-balance.ts +24 -0
- package/src/utils/compact-people.ts +318 -0
- package/src/utils/provider-resolver.ts +15 -1
- package/tests/executor.test.ts +165 -0
- package/tests/live/fullenrich-upstream-probe.ts +55 -0
- package/tests/live/pdl-upstream-probe.ts +83 -0
- package/tests/registry-find-people.test.ts +198 -7
- package/tests/registry-search-companies.test.ts +46 -7
- package/tests/tools/find-emails.test.ts +267 -1
- package/tests/tools/find-people.test.ts +269 -5
- package/tests/tools/get-credit-balance.test.ts +56 -0
- package/tests/utils/compact-people.test.ts +462 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { callApi } from '../client.js';
|
|
2
|
+
export const getCreditBalanceName = 'get_credit_balance';
|
|
3
|
+
export const getCreditBalanceDescription = 'Get the current ColdIQ credit balance and month-to-date usage for the authenticated account. Use before bulk or fan-out operations (e.g. find_emails over many people) to project cost and avoid mid-run insufficient-credit failures. Returns { balance, usedThisMonth }.';
|
|
4
|
+
export const getCreditBalanceSchema = {};
|
|
5
|
+
export async function getCreditBalanceHandler(_input) {
|
|
6
|
+
const res = await callApi('GET', '/me/credits');
|
|
7
|
+
if (!res.ok) {
|
|
8
|
+
return {
|
|
9
|
+
content: [
|
|
10
|
+
{
|
|
11
|
+
type: 'text',
|
|
12
|
+
text: JSON.stringify({ error: 'Failed to fetch credit balance', status: res.status, data: res.data }),
|
|
13
|
+
},
|
|
14
|
+
],
|
|
15
|
+
isError: true,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
return { content: [{ type: 'text', text: JSON.stringify({ data: res.data }) }] };
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=get-credit-balance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-credit-balance.js","sourceRoot":"","sources":["../../src/tools/get-credit-balance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,oBAAoB,CAAA;AAExD,MAAM,CAAC,MAAM,2BAA2B,GACtC,4QAA4Q,CAAA;AAE9Q,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAA;AAExC,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,MAA+B;IAC3E,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;IAC/C,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,gCAAgC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;iBACtG;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;AAC3F,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface CompactPerson {
|
|
2
|
+
full_name?: string;
|
|
3
|
+
first_name?: string;
|
|
4
|
+
last_name?: string;
|
|
5
|
+
title?: string;
|
|
6
|
+
seniority?: string;
|
|
7
|
+
linkedin_url?: string;
|
|
8
|
+
email?: string;
|
|
9
|
+
company_name?: string;
|
|
10
|
+
company_domain?: string;
|
|
11
|
+
company_linkedin_url?: string;
|
|
12
|
+
company_headcount?: number | string;
|
|
13
|
+
location?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function extractPeopleArray(data: unknown, providerId: string): unknown[];
|
|
16
|
+
export declare function normalizePerson(record: unknown): CompactPerson | null;
|
|
17
|
+
export interface CompactPayload {
|
|
18
|
+
people: CompactPerson[];
|
|
19
|
+
total?: number;
|
|
20
|
+
gap_fill_provider?: string;
|
|
21
|
+
revealed?: true;
|
|
22
|
+
}
|
|
23
|
+
export declare function compactPayload(data: unknown, providerId: string): CompactPayload;
|
|
24
|
+
//# sourceMappingURL=compact-people.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compact-people.d.ts","sourceRoot":"","sources":["../../src/utils/compact-people.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AA6CD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,EAAE,CAgC/E;AAyCD,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CA6HrE;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,EAAE,IAAI,CAAA;CAChB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,cAAc,CA2ChF"}
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
// Normalize find_people responses into a small, predictable shape.
|
|
2
|
+
//
|
|
3
|
+
// The find_people waterfall fans across 10 providers, each with a different
|
|
4
|
+
// payload shape (data.people[], data.data[], data.companies_personas[].personas[][],
|
|
5
|
+
// data.data.profiles[], data.content[], etc.). Verbose passthrough produces 30KB+
|
|
6
|
+
// per record from FullEnrich alone (full employment history, every company office,
|
|
7
|
+
// company description, specialties, skills, languages). Compact mode keeps only
|
|
8
|
+
// the fields agents actually need to act on a lead.
|
|
9
|
+
function getPath(obj, path) {
|
|
10
|
+
if (obj == null)
|
|
11
|
+
return undefined;
|
|
12
|
+
let cur = obj;
|
|
13
|
+
for (const part of path.split('.')) {
|
|
14
|
+
if (cur == null)
|
|
15
|
+
return undefined;
|
|
16
|
+
if (Array.isArray(cur)) {
|
|
17
|
+
const idx = Number(part);
|
|
18
|
+
if (!Number.isInteger(idx))
|
|
19
|
+
return undefined;
|
|
20
|
+
cur = cur[idx];
|
|
21
|
+
}
|
|
22
|
+
else if (typeof cur === 'object') {
|
|
23
|
+
cur = cur[part];
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return cur;
|
|
30
|
+
}
|
|
31
|
+
function pick(obj, paths) {
|
|
32
|
+
for (const p of paths) {
|
|
33
|
+
const v = getPath(obj, p);
|
|
34
|
+
if (v !== undefined && v !== null && v !== '')
|
|
35
|
+
return v;
|
|
36
|
+
}
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
function asString(v) {
|
|
40
|
+
if (typeof v === 'string')
|
|
41
|
+
return v.length > 0 ? v : undefined;
|
|
42
|
+
if (typeof v === 'number')
|
|
43
|
+
return String(v);
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
function flattenDeep(arr) {
|
|
47
|
+
const out = [];
|
|
48
|
+
for (const item of arr) {
|
|
49
|
+
if (Array.isArray(item))
|
|
50
|
+
out.push(...flattenDeep(item));
|
|
51
|
+
else
|
|
52
|
+
out.push(item);
|
|
53
|
+
}
|
|
54
|
+
return out;
|
|
55
|
+
}
|
|
56
|
+
// Wrapper-aware extraction. Providers that wrap people in atypical shapes get
|
|
57
|
+
// explicit handling; the rest fall through to common-key probing.
|
|
58
|
+
export function extractPeopleArray(data, providerId) {
|
|
59
|
+
if (data == null)
|
|
60
|
+
return [];
|
|
61
|
+
if (Array.isArray(data))
|
|
62
|
+
return data;
|
|
63
|
+
if (typeof data !== 'object')
|
|
64
|
+
return [];
|
|
65
|
+
const d = data;
|
|
66
|
+
// LeadsFactory: companies_personas[i].personas is unknown[][] — nested arrays
|
|
67
|
+
// of personas per company. Flatten to a single contacts array.
|
|
68
|
+
if (providerId === 'leadsfactory' && Array.isArray(d.companies_personas)) {
|
|
69
|
+
const out = [];
|
|
70
|
+
for (const group of d.companies_personas) {
|
|
71
|
+
const personas = group.personas;
|
|
72
|
+
if (Array.isArray(personas))
|
|
73
|
+
out.push(...flattenDeep(personas));
|
|
74
|
+
}
|
|
75
|
+
return out;
|
|
76
|
+
}
|
|
77
|
+
// LinkUp wraps results under data.profiles.
|
|
78
|
+
if (providerId === 'linkupapi-search-profiles') {
|
|
79
|
+
const inner = d.data;
|
|
80
|
+
if (inner && typeof inner === 'object') {
|
|
81
|
+
const profiles = inner.profiles;
|
|
82
|
+
if (Array.isArray(profiles))
|
|
83
|
+
return profiles;
|
|
84
|
+
}
|
|
85
|
+
return [];
|
|
86
|
+
}
|
|
87
|
+
for (const key of ['people', 'data', 'results', 'contacts', 'content', 'profiles', 'items']) {
|
|
88
|
+
const v = d[key];
|
|
89
|
+
if (Array.isArray(v))
|
|
90
|
+
return v;
|
|
91
|
+
}
|
|
92
|
+
return [];
|
|
93
|
+
}
|
|
94
|
+
// Providers nest person fields at different depths:
|
|
95
|
+
// - LeadsFactory wraps in `{ contact: {...person}, company: {...}, persona_index, ... }`
|
|
96
|
+
// - AI-Ark wraps in `{ id, profile: {...person} }`
|
|
97
|
+
// - Apollo / PDL / FullEnrich keep person fields at the top level
|
|
98
|
+
// Merging the nested objects into the outer scope lets the candidate-path resolver
|
|
99
|
+
// find person fields regardless of provider. The sibling `company` on LeadsFactory
|
|
100
|
+
// stays at the merged top level so `company.name`, `company.domain` paths resolve.
|
|
101
|
+
function unwrapRecord(record) {
|
|
102
|
+
if (!record || typeof record !== 'object' || Array.isArray(record))
|
|
103
|
+
return null;
|
|
104
|
+
const r = record;
|
|
105
|
+
const merged = { ...r };
|
|
106
|
+
if (r.profile && typeof r.profile === 'object' && !Array.isArray(r.profile)) {
|
|
107
|
+
Object.assign(merged, r.profile);
|
|
108
|
+
}
|
|
109
|
+
if (r.contact && typeof r.contact === 'object' && !Array.isArray(r.contact)) {
|
|
110
|
+
Object.assign(merged, r.contact);
|
|
111
|
+
}
|
|
112
|
+
return merged;
|
|
113
|
+
}
|
|
114
|
+
// Confirm a candidate value really points at LinkedIn before surfacing it as
|
|
115
|
+
// linkedin_url. Some providers (Sumble) keep their own profile URL under a bare
|
|
116
|
+
// `url` key — without this guard, agents pasting linkedin_url into LinkedIn
|
|
117
|
+
// lookups would silently fail. Accept linkedin domains and short canonical forms
|
|
118
|
+
// PDL stores (`linkedin.com/in/x`, no protocol).
|
|
119
|
+
function isLinkedInUrl(v) {
|
|
120
|
+
if (typeof v !== 'string' || v.length === 0)
|
|
121
|
+
return false;
|
|
122
|
+
const lower = v.toLowerCase();
|
|
123
|
+
return lower.includes('linkedin.com/');
|
|
124
|
+
}
|
|
125
|
+
function pickLinkedIn(obj, paths) {
|
|
126
|
+
for (const p of paths) {
|
|
127
|
+
const v = getPath(obj, p);
|
|
128
|
+
if (isLinkedInUrl(v))
|
|
129
|
+
return v;
|
|
130
|
+
}
|
|
131
|
+
return undefined;
|
|
132
|
+
}
|
|
133
|
+
export function normalizePerson(record) {
|
|
134
|
+
const r = unwrapRecord(record);
|
|
135
|
+
if (!r)
|
|
136
|
+
return null;
|
|
137
|
+
const out = {};
|
|
138
|
+
const fullName = asString(pick(r, ['full_name', 'fullName', 'name', 'displayName']));
|
|
139
|
+
const firstName = asString(pick(r, ['first_name', 'firstName', 'given_name']));
|
|
140
|
+
const lastName = asString(pick(r, ['last_name', 'lastName', 'family_name', 'surname']));
|
|
141
|
+
if (fullName)
|
|
142
|
+
out.full_name = fullName;
|
|
143
|
+
if (firstName)
|
|
144
|
+
out.first_name = firstName;
|
|
145
|
+
if (lastName)
|
|
146
|
+
out.last_name = lastName;
|
|
147
|
+
if (!out.full_name && (firstName || lastName)) {
|
|
148
|
+
out.full_name = [firstName, lastName].filter(Boolean).join(' ');
|
|
149
|
+
}
|
|
150
|
+
const title = asString(pick(r, [
|
|
151
|
+
'employment.current.title',
|
|
152
|
+
'title',
|
|
153
|
+
'job_title',
|
|
154
|
+
'jobTitle',
|
|
155
|
+
'position',
|
|
156
|
+
'current_position.title',
|
|
157
|
+
'current_position',
|
|
158
|
+
'headline',
|
|
159
|
+
]));
|
|
160
|
+
if (title)
|
|
161
|
+
out.title = title;
|
|
162
|
+
const seniorityRaw = pick(r, [
|
|
163
|
+
'employment.current.seniority',
|
|
164
|
+
'seniority',
|
|
165
|
+
'job_title_levels.0',
|
|
166
|
+
'job_level', // Sumble
|
|
167
|
+
'level',
|
|
168
|
+
]);
|
|
169
|
+
const seniority = asString(seniorityRaw);
|
|
170
|
+
if (seniority)
|
|
171
|
+
out.seniority = seniority;
|
|
172
|
+
// LinkedIn URL is the one field worth strict-validating: a wrong value here
|
|
173
|
+
// silently breaks downstream LinkedIn-driven flows. `url`/`profile_url`/`linkedin`
|
|
174
|
+
// are too ambiguous to trust without the linkedin.com substring check.
|
|
175
|
+
const linkedin = pickLinkedIn(r, [
|
|
176
|
+
'linkedin_url',
|
|
177
|
+
'linkedinUrl',
|
|
178
|
+
'social_profiles.professional_network.url',
|
|
179
|
+
'social_profiles.linkedin.url',
|
|
180
|
+
'profile_url',
|
|
181
|
+
'linkedin',
|
|
182
|
+
'url',
|
|
183
|
+
]);
|
|
184
|
+
if (linkedin)
|
|
185
|
+
out.linkedin_url = linkedin;
|
|
186
|
+
const email = asString(pick(r, [
|
|
187
|
+
'email',
|
|
188
|
+
'work_email',
|
|
189
|
+
'personal_email',
|
|
190
|
+
'best_email',
|
|
191
|
+
'emails.0',
|
|
192
|
+
'contact.email',
|
|
193
|
+
'contact.emails.0',
|
|
194
|
+
]));
|
|
195
|
+
if (email)
|
|
196
|
+
out.email = email;
|
|
197
|
+
const country = asString(pick(r, [
|
|
198
|
+
'location.country',
|
|
199
|
+
'country',
|
|
200
|
+
'location_country',
|
|
201
|
+
'job_company_location_country',
|
|
202
|
+
]));
|
|
203
|
+
const city = asString(pick(r, [
|
|
204
|
+
'location.city',
|
|
205
|
+
'city',
|
|
206
|
+
'location_locality',
|
|
207
|
+
'job_company_location_locality',
|
|
208
|
+
]));
|
|
209
|
+
const locationCombined = [city, country].filter(Boolean).join(', ');
|
|
210
|
+
if (locationCombined)
|
|
211
|
+
out.location = locationCombined;
|
|
212
|
+
const companyName = asString(pick(r, [
|
|
213
|
+
'employment.current.company.name',
|
|
214
|
+
'organization.name',
|
|
215
|
+
'company.name',
|
|
216
|
+
'job_company_name',
|
|
217
|
+
'current_company.name',
|
|
218
|
+
'companyName',
|
|
219
|
+
]));
|
|
220
|
+
if (companyName)
|
|
221
|
+
out.company_name = companyName;
|
|
222
|
+
const companyDomain = asString(pick(r, [
|
|
223
|
+
'employment.current.company.domain',
|
|
224
|
+
'organization.primary_domain',
|
|
225
|
+
'organization.website_url',
|
|
226
|
+
'company.domain',
|
|
227
|
+
'company.website',
|
|
228
|
+
'job_company_website',
|
|
229
|
+
]));
|
|
230
|
+
if (companyDomain)
|
|
231
|
+
out.company_domain = companyDomain;
|
|
232
|
+
const companyLinkedIn = asString(pick(r, [
|
|
233
|
+
'employment.current.company.social_profiles.professional_network.url',
|
|
234
|
+
'employment.current.company.social_profiles.linkedin.url',
|
|
235
|
+
'employment.current.company.linkedin_url',
|
|
236
|
+
'organization.linkedin_url',
|
|
237
|
+
'company.linkedin_url',
|
|
238
|
+
'job_company_linkedin_url',
|
|
239
|
+
]));
|
|
240
|
+
if (companyLinkedIn)
|
|
241
|
+
out.company_linkedin_url = companyLinkedIn;
|
|
242
|
+
const headcountRaw = pick(r, [
|
|
243
|
+
'employment.current.company.headcount',
|
|
244
|
+
'employment.current.company.headcount_range',
|
|
245
|
+
'organization.estimated_num_employees',
|
|
246
|
+
'organization.num_employees',
|
|
247
|
+
'company.headcount',
|
|
248
|
+
'company.size',
|
|
249
|
+
'job_company_size',
|
|
250
|
+
'job_company_employee_count',
|
|
251
|
+
]);
|
|
252
|
+
if (typeof headcountRaw === 'number' || (typeof headcountRaw === 'string' && headcountRaw.length > 0)) {
|
|
253
|
+
out.company_headcount = headcountRaw;
|
|
254
|
+
}
|
|
255
|
+
// Drop records that resolved to nothing meaningful.
|
|
256
|
+
if (Object.keys(out).length === 0)
|
|
257
|
+
return null;
|
|
258
|
+
return out;
|
|
259
|
+
}
|
|
260
|
+
export function compactPayload(data, providerId) {
|
|
261
|
+
const mainArr = extractPeopleArray(data, providerId);
|
|
262
|
+
const main = [];
|
|
263
|
+
for (const r of mainArr) {
|
|
264
|
+
const p = normalizePerson(r);
|
|
265
|
+
if (p)
|
|
266
|
+
main.push(p);
|
|
267
|
+
}
|
|
268
|
+
let gapFillProvider;
|
|
269
|
+
let gapFillPeople = [];
|
|
270
|
+
if (data && typeof data === 'object' && !Array.isArray(data)) {
|
|
271
|
+
const gf = data.gap_fill;
|
|
272
|
+
if (gf && typeof gf === 'object') {
|
|
273
|
+
gapFillProvider = asString(gf.provider);
|
|
274
|
+
const gfArr = extractPeopleArray(gf, gapFillProvider ?? '');
|
|
275
|
+
for (const r of gfArr) {
|
|
276
|
+
const p = normalizePerson(r);
|
|
277
|
+
if (p)
|
|
278
|
+
gapFillPeople.push(p);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
// Pull pagination total when present (FullEnrich exposes data.metadata.total).
|
|
283
|
+
let total;
|
|
284
|
+
if (data && typeof data === 'object' && !Array.isArray(data)) {
|
|
285
|
+
const meta = data.metadata;
|
|
286
|
+
if (meta && typeof meta === 'object') {
|
|
287
|
+
const t = meta.total;
|
|
288
|
+
if (typeof t === 'number')
|
|
289
|
+
total = t;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
const out = { people: [...main, ...gapFillPeople] };
|
|
293
|
+
if (total !== undefined)
|
|
294
|
+
out.total = total;
|
|
295
|
+
if (gapFillProvider && gapFillPeople.length > 0)
|
|
296
|
+
out.gap_fill_provider = gapFillProvider;
|
|
297
|
+
// Preserve the revealed flag the Apollo reveal flow sets — it tells the caller
|
|
298
|
+
// whether the emails/full names in `people` came from /apollo/people/bulk-match
|
|
299
|
+
// (paid +1 credit per person) vs the obfuscated /apollo/people/search response.
|
|
300
|
+
if (data && typeof data === 'object' && !Array.isArray(data) &&
|
|
301
|
+
data.revealed === true) {
|
|
302
|
+
out.revealed = true;
|
|
303
|
+
}
|
|
304
|
+
return out;
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=compact-people.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compact-people.js","sourceRoot":"","sources":["../../src/utils/compact-people.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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;AAOhD,eAAO,MAAM,qBAAqB,UASjC,CAAA;AAED,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"}
|
|
@@ -2,7 +2,18 @@ import { listCapabilityProviderIds, getProviderApplicabilityGuard } from '../reg
|
|
|
2
2
|
import { fuzzyMatch } from './fuzzy.js';
|
|
3
3
|
// find_emails uses a custom waterfall — its providers are not in the registry.
|
|
4
4
|
// Exported so find-emails.ts stays in sync without a second hardcoded list.
|
|
5
|
-
|
|
5
|
+
// Order = auto-route execution order: bulk providers first (Steps 1-3), then
|
|
6
|
+
// the single-find_email fallback providers used for stragglers (Step 4).
|
|
7
|
+
export const FIND_EMAILS_PROVIDERS = [
|
|
8
|
+
'prospeo',
|
|
9
|
+
'fullenrich',
|
|
10
|
+
'findymail',
|
|
11
|
+
'icypeas',
|
|
12
|
+
'limadata-work-email',
|
|
13
|
+
'blitzapi',
|
|
14
|
+
'limadata-work-email-linkedin',
|
|
15
|
+
'linkupapi',
|
|
16
|
+
];
|
|
6
17
|
export function getProvidersForCapability(capability) {
|
|
7
18
|
if (capability === 'find_emails')
|
|
8
19
|
return FIND_EMAILS_PROVIDERS;
|
|
@@ -127,6 +138,9 @@ const GATED_DESCRIPTIONS = {
|
|
|
127
138
|
'prospeo-search-person': { kind: 'requires', fields: 'job_titles or company_domains' },
|
|
128
139
|
'ai-ark-people': { kind: 'requires', fields: 'job_titles, seniorities, or keywords' },
|
|
129
140
|
'findymail-search-employees': { kind: 'requires', fields: 'company_domains and job_titles' },
|
|
141
|
+
'fullenrich-people-search': { kind: 'requires', fields: 'company_domains (upstream does not accept LinkedIn URL filters)' },
|
|
142
|
+
pdl: { kind: 'requires', fields: 'company_domains, company_linkedin_urls, job_titles, or seniorities' },
|
|
143
|
+
companyenrich: { kind: 'incompatible_with', fields: 'company_linkedin_urls without company_domains (upstream supports domain filters only)' },
|
|
130
144
|
},
|
|
131
145
|
// -------------------------------------------------------------------------
|
|
132
146
|
find_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,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,+EAA+E;AAC/E,4EAA4E;AAC5E,MAAM,CAAC,MAAM,qBAAqB,GAAG,
|
|
1
|
+
{"version":3,"file":"provider-resolver.js","sourceRoot":"","sources":["../../src/utils/provider-resolver.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/client.ts
CHANGED
|
@@ -4,6 +4,8 @@ export type ApiResponse = {
|
|
|
4
4
|
ok: boolean
|
|
5
5
|
status: number
|
|
6
6
|
data: unknown
|
|
7
|
+
/** Response headers keyed by lowercased name. Empty on transport-level failures. */
|
|
8
|
+
headers: Record<string, string>
|
|
7
9
|
}
|
|
8
10
|
|
|
9
11
|
let _apiUrl: string
|
|
@@ -69,7 +71,11 @@ export async function callApi(
|
|
|
69
71
|
} catch {
|
|
70
72
|
data = { error: 'Non-JSON response from API' }
|
|
71
73
|
}
|
|
72
|
-
|
|
74
|
+
const headers: Record<string, string> = {}
|
|
75
|
+
res.headers.forEach((value, key) => {
|
|
76
|
+
headers[key.toLowerCase()] = value
|
|
77
|
+
})
|
|
78
|
+
return { ok: res.ok, status: res.status, data, headers }
|
|
73
79
|
} catch (err) {
|
|
74
80
|
const isTimeout =
|
|
75
81
|
err instanceof Error &&
|
|
@@ -79,6 +85,7 @@ export async function callApi(
|
|
|
79
85
|
ok: false,
|
|
80
86
|
status: 0,
|
|
81
87
|
data: { error: 'Request timed out' },
|
|
88
|
+
headers: {},
|
|
82
89
|
}
|
|
83
90
|
}
|
|
84
91
|
if (process.env.COLDIQ_DEBUG) {
|
|
@@ -88,6 +95,7 @@ export async function callApi(
|
|
|
88
95
|
ok: false,
|
|
89
96
|
status: 0,
|
|
90
97
|
data: { error: 'Network error' },
|
|
98
|
+
headers: {},
|
|
91
99
|
}
|
|
92
100
|
}
|
|
93
101
|
}
|