@coldiq/mcp 0.4.6 → 0.5.0
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.map +1 -1
- package/dist/client.js +3 -0
- package/dist/client.js.map +1 -1
- package/dist/index.js +37 -41
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts +3 -0
- package/dist/instructions.d.ts.map +1 -0
- package/dist/instructions.js +9 -0
- package/dist/instructions.js.map +1 -0
- package/dist/knowledge-policy.d.ts +3 -0
- package/dist/knowledge-policy.d.ts.map +1 -0
- package/dist/knowledge-policy.js +5 -0
- package/dist/knowledge-policy.js.map +1 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +125 -42
- package/dist/registry.js.map +1 -1
- package/dist/tools/list-skills.d.ts.map +1 -1
- package/dist/tools/list-skills.js +4 -3
- package/dist/tools/list-skills.js.map +1 -1
- package/dist/tools/load-skill.d.ts.map +1 -1
- package/dist/tools/load-skill.js +2 -1
- package/dist/tools/load-skill.js.map +1 -1
- package/dist/tools/search-knowledge.d.ts +22 -0
- package/dist/tools/search-knowledge.d.ts.map +1 -0
- package/dist/tools/search-knowledge.js +45 -0
- package/dist/tools/search-knowledge.js.map +1 -0
- package/dist/utils/provider-resolver.js +2 -3
- package/dist/utils/provider-resolver.js.map +1 -1
- package/dist/utils/selection-insight.js +1 -1
- package/dist/utils/selection-insight.js.map +1 -1
- package/package.json +1 -1
- package/src/client.ts +3 -0
- package/src/index.ts +42 -41
- package/src/instructions.ts +10 -0
- package/src/knowledge-policy.ts +6 -0
- package/src/registry.ts +120 -41
- package/src/tools/list-skills.ts +4 -3
- package/src/tools/load-skill.ts +2 -1
- package/src/tools/search-knowledge.ts +50 -0
- package/src/utils/provider-resolver.ts +2 -3
- package/src/utils/selection-insight.ts +1 -1
- package/tests/client.test.ts +12 -0
- package/tests/instructions.test.ts +67 -0
- package/tests/registry.test.ts +16 -29
- package/tests/tools/get-credit-balance.test.ts +11 -0
- package/tests/tools/search-knowledge.test.ts +104 -0
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,OAAO,CAAA;IACb,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC,CAAA;AAMD,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CA0BjE;AAED,wBAAsB,OAAO,CAC3B,MAAM,EAAE,KAAK,GAAG,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,OAAO,CAAA;IACb,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC,CAAA;AAMD,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CA0BjE;AAED,wBAAsB,OAAO,CAC3B,MAAM,EAAE,KAAK,GAAG,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,WAAW,CAAC,CAgEtB"}
|
package/dist/client.js
CHANGED
|
@@ -37,6 +37,9 @@ export async function callApi(method, path, body, queryParams) {
|
|
|
37
37
|
}
|
|
38
38
|
const headers = {
|
|
39
39
|
Authorization: `Bearer ${_apiKey}`,
|
|
40
|
+
// Client-declared surface attribution, persisted on marketplace.usage_logs
|
|
41
|
+
// (analytics only — mirrors src/lib/client-surface.ts in the API repo).
|
|
42
|
+
'X-ColdIQ-Client-Surface': 'mcp',
|
|
40
43
|
};
|
|
41
44
|
const init = {
|
|
42
45
|
method,
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAU5D,IAAI,OAAe,CAAA;AACnB,IAAI,OAAe,CAAA;AACnB,IAAI,cAAsB,CAAA;AAE1B,MAAM,UAAU,UAAU,CAAC,MAAe,EAAE,MAAe;IACzD,OAAO,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,wBAAwB,CAAA;IAC1E,OAAO,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAA;IACpD,yEAAyE;IACzE,6EAA6E;IAC7E,8EAA8E;IAC9E,6EAA6E;IAC7E,8DAA8D;IAC9D,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,QAAQ,EAAE,EAAE,CAAC,CAAA;IAC7E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAA;IACvG,CAAC;IACD,uBAAuB;IACvB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAErC,mEAAmE;IACnE,uFAAuF;IACvF,qFAAqF;IACrF,mBAAmB,CACjB,IAAI,KAAK,CAAC;QACR,gBAAgB,EAAE,MAAM;QACxB,mBAAmB,EAAE,MAAM;QAC3B,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,CAAC;KACd,CAAC,CACH,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAsB,EACtB,IAAY,EACZ,IAAc,EACd,WAAoC;IAEpC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,OAAO,MAAM,IAAI,EAAE,CAAC,CAAA;IAC3C,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE;gBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7D,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAA2B;QACtC,aAAa,EAAE,UAAU,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
3
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
4
|
import { initClient } from './client.js';
|
|
5
|
+
import { MCP_SERVER_INSTRUCTIONS } from './instructions.js';
|
|
6
|
+
import { withKnowledgeFirstRequirement } from './knowledge-policy.js';
|
|
5
7
|
import { readPackageVersion } from './version.js';
|
|
8
|
+
import { searchKnowledgeName, searchKnowledgeDescription, searchKnowledgeSchema, searchKnowledgeHandler, } from './tools/search-knowledge.js';
|
|
6
9
|
import { searchCompaniesName, searchCompaniesDescription, searchCompaniesSchema, searchCompaniesHandler, } from './tools/search-companies.js';
|
|
7
10
|
import { findPeopleName, findPeopleDescription, findPeopleSchema, findPeopleHandler, } from './tools/find-people.js';
|
|
8
11
|
import { findEmailName, findEmailDescription, findEmailSchema, findEmailHandler, } from './tools/find-email.js';
|
|
@@ -51,53 +54,46 @@ const server = new McpServer({
|
|
|
51
54
|
name: 'coldiq',
|
|
52
55
|
version: packageVersion,
|
|
53
56
|
}, {
|
|
54
|
-
|
|
55
|
-
// prospecting flow — the dominant latency driver. Looping these tools
|
|
56
|
-
// per-item multiplies wall-clock with zero quality gain: find_people runs a
|
|
57
|
-
// ~90s async job per call, so N looped calls cost ~N×90s vs ~90s batched.
|
|
58
|
-
instructions: [
|
|
59
|
-
'ColdIQ prospecting tools. Always BATCH, never loop, to keep multi-step prospecting fast:',
|
|
60
|
-
'1. To find people across several companies, make ONE find_people call passing every company in company_linkedin_urls (preferred) or company_domains — never one call per company. Set limit = (results wanted per company) × (number of companies).',
|
|
61
|
-
'2. To find emails for several people, make ONE find_emails call with all of them — never loop find_email per person. find_emails runs providers in parallel and is several times faster.',
|
|
62
|
-
'3. Typical flow: search_companies → find_people (one batched call) → find_emails (one batched call).',
|
|
63
|
-
].join('\n'),
|
|
57
|
+
instructions: MCP_SERVER_INSTRUCTIONS,
|
|
64
58
|
});
|
|
65
|
-
// Register
|
|
66
|
-
|
|
67
|
-
server.tool(
|
|
68
|
-
server.tool(
|
|
69
|
-
server.tool(
|
|
70
|
-
server.tool(
|
|
71
|
-
server.tool(
|
|
72
|
-
server.tool(
|
|
73
|
-
server.tool(
|
|
74
|
-
server.tool(
|
|
75
|
-
server.tool(
|
|
76
|
-
server.tool(
|
|
77
|
-
server.tool(
|
|
78
|
-
server.tool(
|
|
79
|
-
server.tool(
|
|
80
|
-
server.tool(
|
|
81
|
-
server.tool(
|
|
82
|
-
server.tool(
|
|
83
|
-
server.tool(
|
|
84
|
-
server.tool(
|
|
85
|
-
server.tool(
|
|
86
|
-
server.tool(
|
|
87
|
-
server.tool(
|
|
88
|
-
server.tool(
|
|
89
|
-
server.tool(
|
|
59
|
+
// Register knowledge retrieval before every operational tool so clients that
|
|
60
|
+
// preserve registration order surface the mandatory prerequisite first.
|
|
61
|
+
server.tool(searchKnowledgeName, searchKnowledgeDescription, searchKnowledgeSchema, searchKnowledgeHandler);
|
|
62
|
+
server.tool(searchCompaniesName, withKnowledgeFirstRequirement(searchCompaniesDescription), searchCompaniesSchema, searchCompaniesHandler);
|
|
63
|
+
server.tool(findPeopleName, withKnowledgeFirstRequirement(findPeopleDescription), findPeopleSchema, findPeopleHandler);
|
|
64
|
+
server.tool(findEmailName, withKnowledgeFirstRequirement(findEmailDescription), findEmailSchema, findEmailHandler);
|
|
65
|
+
server.tool(enrichPersonName, withKnowledgeFirstRequirement(enrichPersonDescription), enrichPersonSchema, enrichPersonHandler);
|
|
66
|
+
server.tool(findEmailsName, withKnowledgeFirstRequirement(findEmailsDescription), findEmailsSchema, findEmailsHandler);
|
|
67
|
+
server.tool(verifyEmailName, withKnowledgeFirstRequirement(verifyEmailDescription), verifyEmailSchema, verifyEmailHandler);
|
|
68
|
+
server.tool(verifyEmailsBulkName, withKnowledgeFirstRequirement(verifyEmailsBulkDescription), verifyEmailsBulkSchema, verifyEmailsBulkHandler);
|
|
69
|
+
server.tool(findEmailsBulkName, withKnowledgeFirstRequirement(findEmailsBulkDescription), findEmailsBulkSchema, findEmailsBulkHandler);
|
|
70
|
+
server.tool(enrichPersonBulkName, withKnowledgeFirstRequirement(enrichPersonBulkDescription), enrichPersonBulkSchema, enrichPersonBulkHandler);
|
|
71
|
+
server.tool(enrichCompanyBulkName, withKnowledgeFirstRequirement(enrichCompanyBulkDescription), enrichCompanyBulkSchema, enrichCompanyBulkHandler);
|
|
72
|
+
server.tool(findPhoneBulkName, withKnowledgeFirstRequirement(findPhoneBulkDescription), findPhoneBulkSchema, findPhoneBulkHandler);
|
|
73
|
+
server.tool(getBulkJobName, withKnowledgeFirstRequirement(getBulkJobDescription), getBulkJobSchema, getBulkJobHandler);
|
|
74
|
+
server.tool(cancelBulkJobName, withKnowledgeFirstRequirement(cancelBulkJobDescription), cancelBulkJobSchema, cancelBulkJobHandler);
|
|
75
|
+
server.tool(findPhoneName, withKnowledgeFirstRequirement(findPhoneDescription), findPhoneSchema, findPhoneHandler);
|
|
76
|
+
server.tool(enrichCompanyName, withKnowledgeFirstRequirement(enrichCompanyDescription), enrichCompanySchema, enrichCompanyHandler);
|
|
77
|
+
server.tool(searchWebName, withKnowledgeFirstRequirement(searchWebDescription), searchWebSchema, searchWebHandler);
|
|
78
|
+
server.tool(searchJobsName, withKnowledgeFirstRequirement(searchJobsDescription), searchJobsSchema, searchJobsHandler);
|
|
79
|
+
server.tool(searchAdsName, withKnowledgeFirstRequirement(searchAdsDescription), searchAdsSchema, searchAdsHandler);
|
|
80
|
+
server.tool(searchPlacesName, withKnowledgeFirstRequirement(searchPlacesDescription), searchPlacesSchema, searchPlacesHandler);
|
|
81
|
+
server.tool(findInfluencersName, withKnowledgeFirstRequirement(findInfluencersDescription), findInfluencersSchema, findInfluencersHandler);
|
|
82
|
+
server.tool(searchRedditName, withKnowledgeFirstRequirement(searchRedditDescription), searchRedditSchema, searchRedditHandler);
|
|
83
|
+
server.tool(searchSeoName, withKnowledgeFirstRequirement(searchSeoDescription), searchSeoSchema, searchSeoHandler);
|
|
84
|
+
server.tool(findSignalsName, withKnowledgeFirstRequirement(findSignalsDescription), findSignalsSchema, findSignalsHandler);
|
|
85
|
+
server.tool(fetchPageContentName, withKnowledgeFirstRequirement(fetchPageContentDescription), fetchPageContentSchema, fetchPageContentHandler);
|
|
90
86
|
server.tool(getCreditBalanceName, getCreditBalanceDescription, getCreditBalanceSchema, getCreditBalanceHandler);
|
|
91
87
|
server.tool(getSessionUsageName, getSessionUsageDescription, getSessionUsageSchema, getSessionUsageHandler);
|
|
92
|
-
server.tool(listDataSourcesName, listDataSourcesDescription, listDataSourcesSchema, listDataSourcesHandler);
|
|
88
|
+
server.tool(listDataSourcesName, withKnowledgeFirstRequirement(listDataSourcesDescription), listDataSourcesSchema, listDataSourcesHandler);
|
|
93
89
|
server.tool(listSkillsName, listSkillsDescription, listSkillsSchema, listSkillsHandler);
|
|
94
90
|
server.tool(loadSkillName, loadSkillDescription, loadSkillSchema, loadSkillHandler);
|
|
95
|
-
server.tool(extractPostEngagementName, extractPostEngagementDescription, extractPostEngagementSchema, extractPostEngagementHandler);
|
|
96
|
-
server.tool(getPlaceReviewsName, getPlaceReviewsDescription, getPlaceReviewsSchema, getPlaceReviewsHandler);
|
|
91
|
+
server.tool(extractPostEngagementName, withKnowledgeFirstRequirement(extractPostEngagementDescription), extractPostEngagementSchema, extractPostEngagementHandler);
|
|
92
|
+
server.tool(getPlaceReviewsName, withKnowledgeFirstRequirement(getPlaceReviewsDescription), getPlaceReviewsSchema, getPlaceReviewsHandler);
|
|
97
93
|
// Generic endpoint discovery + invoke: reach any integrated provider without a dedicated tool.
|
|
98
|
-
server.tool(searchEndpointsName, searchEndpointsDescription, searchEndpointsSchema, searchEndpointsHandler);
|
|
99
|
-
server.tool(getEndpointDetailsName, getEndpointDetailsDescription, getEndpointDetailsSchema, getEndpointDetailsHandler);
|
|
100
|
-
server.tool(callEndpointName, callEndpointDescription, callEndpointSchema, callEndpointHandler);
|
|
94
|
+
server.tool(searchEndpointsName, withKnowledgeFirstRequirement(searchEndpointsDescription), searchEndpointsSchema, searchEndpointsHandler);
|
|
95
|
+
server.tool(getEndpointDetailsName, withKnowledgeFirstRequirement(getEndpointDetailsDescription), getEndpointDetailsSchema, getEndpointDetailsHandler);
|
|
96
|
+
server.tool(callEndpointName, withKnowledgeFirstRequirement(callEndpointDescription), callEndpointSchema, callEndpointHandler);
|
|
101
97
|
// Connect via stdio transport
|
|
102
98
|
const transport = new StdioServerTransport();
|
|
103
99
|
await server.connect(transport);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const MANDATORY_KNOWLEDGE_FIRST_RULE = "For every new substantive GTM task, you MUST call `search_knowledge` as the first ColdIQ tool, before endpoint discovery or data calls. Pass the user\u2019s complete task as the query. Follow the retrieved play and provider order. Do not reuse knowledge from a previous task. If search fails or returns no usable result, continue with endpoint discovery.";
|
|
2
|
+
export declare const MCP_SERVER_INSTRUCTIONS: string;
|
|
3
|
+
//# sourceMappingURL=instructions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B,uWACsT,CAAA;AAEjW,eAAO,MAAM,uBAAuB,QAMxB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export const MANDATORY_KNOWLEDGE_FIRST_RULE = 'For every new substantive GTM task, you MUST call `search_knowledge` as the first ColdIQ tool, before endpoint discovery or data calls. Pass the user’s complete task as the query. Follow the retrieved play and provider order. Do not reuse knowledge from a previous task. If search fails or returns no usable result, continue with endpoint discovery.';
|
|
2
|
+
export const MCP_SERVER_INSTRUCTIONS = [
|
|
3
|
+
MANDATORY_KNOWLEDGE_FIRST_RULE,
|
|
4
|
+
'',
|
|
5
|
+
'Retrieved knowledge controls the workflow and provider order; do not invent or override them. Prefer batched dedicated tools when they fit, and batch inputs instead of looping. Otherwise use `search_endpoints` → `get_endpoint_details` → `call_endpoint`.',
|
|
6
|
+
'Stop as soon as the requested count and fields are satisfied. Include source/provider attribution and disclose gaps or uncertainty.',
|
|
7
|
+
'`list_skills` and `load_skill` are legacy compatibility tools; prefer knowledge retrieval. Greetings, acknowledgements, balance checks, and other non-GTM administrative requests may skip knowledge search.',
|
|
8
|
+
].join('\n');
|
|
9
|
+
//# sourceMappingURL=instructions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,8BAA8B,GACzC,+VAA+V,CAAA;AAEjW,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,8BAA8B;IAC9B,EAAE;IACF,+PAA+P;IAC/P,qIAAqI;IACrI,8MAA8M;CAC/M,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const KNOWLEDGE_FIRST_REQUIREMENT = "For every new substantive GTM task, call search_knowledge as the first ColdIQ tool and pass the user\u2019s complete task as the query.";
|
|
2
|
+
export declare function withKnowledgeFirstRequirement(description: string): string;
|
|
3
|
+
//# sourceMappingURL=knowledge-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-policy.d.ts","sourceRoot":"","sources":["../src/knowledge-policy.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,4IAC8F,CAAA;AAEtI,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEzE"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const KNOWLEDGE_FIRST_REQUIREMENT = 'For every new substantive GTM task, call search_knowledge as the first ColdIQ tool and pass the user’s complete task as the query.';
|
|
2
|
+
export function withKnowledgeFirstRequirement(description) {
|
|
3
|
+
return `${KNOWLEDGE_FIRST_REQUIREMENT} ${description}`;
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=knowledge-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-policy.js","sourceRoot":"","sources":["../src/knowledge-policy.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GACtC,oIAAoI,CAAA;AAEtI,MAAM,UAAU,6BAA6B,CAAC,WAAmB;IAC/D,OAAO,GAAG,2BAA2B,IAAI,WAAW,EAAE,CAAA;AACxD,CAAC"}
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,2EAA2E;IAC3E,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAA;IACpC;;;;OAIG;IACH,cAAc,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,CAAA;IACtD,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,qCAAqC;IACrC,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAA;IACtC,kDAAkD;IAClD,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,MAAM,CAAA;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;IACvG,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAA;IACrC,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAA;IAC1D;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAA;CACxE;AAED,MAAM,MAAM,UAAU,GAClB,kBAAkB,GAClB,aAAa,GACb,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,eAAe,GACf,mBAAmB,GACnB,kBAAkB,GAClB,eAAe,GACf,YAAY,GACZ,cAAc,GACd,oBAAoB,CAAA;AA4ExB,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAIlG;AA0BD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrD;AAgCD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAclE;AAKD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAGpF;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,2EAA2E;IAC3E,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAA;IACpC;;;;OAIG;IACH,cAAc,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,CAAA;IACtD,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,qCAAqC;IACrC,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAA;IACtC,kDAAkD;IAClD,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,MAAM,CAAA;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,KAAK,GAAG,MAAM,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;IACvG,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAA;IACrC,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAA;IAC1D;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAA;CACxE;AAED,MAAM,MAAM,UAAU,GAClB,kBAAkB,GAClB,aAAa,GACb,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,eAAe,GACf,mBAAmB,GACnB,kBAAkB,GAClB,eAAe,GACf,YAAY,GACZ,cAAc,GACd,oBAAoB,CAAA;AA4ExB,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAIlG;AA0BD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrD;AAgCD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAclE;AAKD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAGpF;AA85GD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,EAAE,CAE1E;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,GACjB,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,GAAG,SAAS,CAE3D;AAKD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,EAAE,CAS9E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,EAAE,CASpE;AAID;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,OAAO,GAAG,aAAa,EAAE,CAkB5E"}
|
package/dist/registry.js
CHANGED
|
@@ -1774,29 +1774,105 @@ const verifyEmailProviders = [
|
|
|
1774
1774
|
// find_phone
|
|
1775
1775
|
// ---------------------------------------------------------------------------
|
|
1776
1776
|
const findPhoneProviders = [
|
|
1777
|
+
// Mirror of the API registry (validation/listing only — execution order and
|
|
1778
|
+
// predicates live server-side in src/router/registry.ts). 2026-07-24 v2:
|
|
1779
|
+
// prospeo → leadmagic → ai-ark → limadata → fullenrich (premium closer);
|
|
1780
|
+
// findymail dropped (1 hit/30d); ai-ark/limadata accept the schema's `domain`.
|
|
1777
1781
|
{
|
|
1778
|
-
id: '
|
|
1779
|
-
endpoint: '/
|
|
1782
|
+
id: 'prospeo',
|
|
1783
|
+
endpoint: '/prospeo/enrich-person',
|
|
1784
|
+
method: 'POST',
|
|
1785
|
+
priority: 1,
|
|
1786
|
+
isApplicable: (input) => {
|
|
1787
|
+
if (typeof input.linkedin_url === 'string' && input.linkedin_url.length > 0)
|
|
1788
|
+
return true;
|
|
1789
|
+
const hasName = typeof input.first_name === 'string' && input.first_name.length > 0 &&
|
|
1790
|
+
typeof input.last_name === 'string' && input.last_name.length > 0;
|
|
1791
|
+
const domain = (input.domain ?? input.company_domain);
|
|
1792
|
+
const hasCompany = (typeof domain === 'string' && domain.length > 0) ||
|
|
1793
|
+
(typeof input.company_name === 'string' && input.company_name.length > 0);
|
|
1794
|
+
return hasName && hasCompany;
|
|
1795
|
+
},
|
|
1796
|
+
mapParams: (input) => {
|
|
1797
|
+
const domain = (input.domain ?? input.company_domain);
|
|
1798
|
+
const data = input.linkedin_url
|
|
1799
|
+
? { linkedin_url: input.linkedin_url }
|
|
1800
|
+
: {
|
|
1801
|
+
first_name: input.first_name,
|
|
1802
|
+
last_name: input.last_name,
|
|
1803
|
+
...(domain ? { company_website: domain } : {}),
|
|
1804
|
+
...(input.company_name ? { company_name: input.company_name } : {}),
|
|
1805
|
+
};
|
|
1806
|
+
return { body: { enrich_mobile: true, data } };
|
|
1807
|
+
},
|
|
1808
|
+
hasResult: (data) => {
|
|
1809
|
+
const d = data;
|
|
1810
|
+
const person = d.person;
|
|
1811
|
+
const mobile = person?.mobile;
|
|
1812
|
+
return typeof mobile?.mobile === 'string' && mobile.mobile.length > 0;
|
|
1813
|
+
},
|
|
1814
|
+
},
|
|
1815
|
+
{
|
|
1816
|
+
id: 'leadmagic',
|
|
1817
|
+
endpoint: '/leadmagic/people/mobile-finder',
|
|
1780
1818
|
method: 'POST',
|
|
1781
1819
|
priority: 2,
|
|
1782
|
-
isApplicable: (input) => typeof input.linkedin_url === 'string' && input.linkedin_url.length > 0
|
|
1783
|
-
|
|
1820
|
+
isApplicable: (input) => (typeof input.linkedin_url === 'string' && input.linkedin_url.length > 0) ||
|
|
1821
|
+
(typeof input.email === 'string' && input.email.length > 0),
|
|
1822
|
+
mapParams: (input) => ({
|
|
1823
|
+
body: input.linkedin_url
|
|
1824
|
+
? { profile_url: input.linkedin_url }
|
|
1825
|
+
: { work_email: input.email },
|
|
1826
|
+
}),
|
|
1827
|
+
hasResult: (data) => {
|
|
1828
|
+
const d = data;
|
|
1829
|
+
return typeof d.mobile_number === 'string' && d.mobile_number.length > 0;
|
|
1830
|
+
},
|
|
1831
|
+
},
|
|
1832
|
+
{
|
|
1833
|
+
id: 'ai-ark',
|
|
1834
|
+
endpoint: '/ai-ark/people/mobile-phone-finder',
|
|
1835
|
+
method: 'POST',
|
|
1836
|
+
priority: 3,
|
|
1837
|
+
isApplicable: (input) => {
|
|
1838
|
+
if (typeof input.linkedin_url === 'string' && input.linkedin_url.length > 0)
|
|
1839
|
+
return true;
|
|
1840
|
+
const hasName = typeof input.first_name === 'string' && input.first_name.length > 0 &&
|
|
1841
|
+
typeof input.last_name === 'string' && input.last_name.length > 0;
|
|
1842
|
+
const domain = (input.domain ?? input.company_domain);
|
|
1843
|
+
return hasName && typeof domain === 'string' && domain.length > 0;
|
|
1844
|
+
},
|
|
1845
|
+
mapParams: (input) => {
|
|
1846
|
+
const firstName = input.first_name;
|
|
1847
|
+
const lastName = input.last_name;
|
|
1848
|
+
const fullName = [firstName, lastName].filter(Boolean).join(' ') || undefined;
|
|
1849
|
+
const domain = (input.domain ?? input.company_domain);
|
|
1850
|
+
return {
|
|
1851
|
+
body: {
|
|
1852
|
+
...(input.linkedin_url ? { linkedin: input.linkedin_url } : {}),
|
|
1853
|
+
...(domain ? { domain } : {}),
|
|
1854
|
+
...(fullName ? { name: fullName } : {}),
|
|
1855
|
+
},
|
|
1856
|
+
};
|
|
1857
|
+
},
|
|
1784
1858
|
hasResult: (data) => {
|
|
1785
1859
|
const d = data;
|
|
1786
|
-
return
|
|
1860
|
+
return Array.isArray(d.data) &&
|
|
1861
|
+
d.data.some((arr) => Array.isArray(arr) && arr.length > 0 && typeof arr[0] === 'string');
|
|
1787
1862
|
},
|
|
1788
1863
|
},
|
|
1789
1864
|
{
|
|
1790
1865
|
id: 'limadata',
|
|
1791
1866
|
endpoint: '/limadata/find/phone',
|
|
1792
1867
|
method: 'POST',
|
|
1793
|
-
priority:
|
|
1868
|
+
priority: 4,
|
|
1794
1869
|
isApplicable: (input) => {
|
|
1795
1870
|
if (typeof input.linkedin_url === 'string' && input.linkedin_url.length > 0)
|
|
1796
1871
|
return true;
|
|
1797
1872
|
const hasName = typeof input.first_name === 'string' && input.first_name.length > 0 &&
|
|
1798
1873
|
typeof input.last_name === 'string' && input.last_name.length > 0;
|
|
1799
|
-
const
|
|
1874
|
+
const domain = (input.domain ?? input.company_domain);
|
|
1875
|
+
const hasCompany = (typeof domain === 'string' && domain.length > 0) ||
|
|
1800
1876
|
(typeof input.company_name === 'string' && input.company_name.length > 0);
|
|
1801
1877
|
return hasName && hasCompany;
|
|
1802
1878
|
},
|
|
@@ -1804,12 +1880,13 @@ const findPhoneProviders = [
|
|
|
1804
1880
|
const firstName = input.first_name;
|
|
1805
1881
|
const lastName = input.last_name;
|
|
1806
1882
|
const fullName = [firstName, lastName].filter(Boolean).join(' ') || undefined;
|
|
1883
|
+
const domain = (input.domain ?? input.company_domain);
|
|
1807
1884
|
return {
|
|
1808
1885
|
body: {
|
|
1809
1886
|
...(input.linkedin_url ? { linkedin_url: input.linkedin_url } : {}),
|
|
1810
1887
|
...(fullName ? { name: fullName } : {}),
|
|
1811
1888
|
...(input.company_name ? { company_name: input.company_name } : {}),
|
|
1812
|
-
...(
|
|
1889
|
+
...(domain ? { company_domain: domain } : {}),
|
|
1813
1890
|
},
|
|
1814
1891
|
};
|
|
1815
1892
|
},
|
|
@@ -1832,51 +1909,57 @@ const findPhoneProviders = [
|
|
|
1832
1909
|
},
|
|
1833
1910
|
},
|
|
1834
1911
|
{
|
|
1835
|
-
id: '
|
|
1836
|
-
endpoint: '/
|
|
1912
|
+
id: 'fullenrich',
|
|
1913
|
+
endpoint: '/fullenrich/contact/enrich/bulk',
|
|
1837
1914
|
method: 'POST',
|
|
1838
|
-
priority:
|
|
1915
|
+
priority: 5,
|
|
1839
1916
|
isApplicable: (input) => {
|
|
1840
1917
|
if (typeof input.linkedin_url === 'string' && input.linkedin_url.length > 0)
|
|
1841
1918
|
return true;
|
|
1842
1919
|
const hasName = typeof input.first_name === 'string' && input.first_name.length > 0 &&
|
|
1843
1920
|
typeof input.last_name === 'string' && input.last_name.length > 0;
|
|
1844
|
-
const
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
const firstName = input.first_name;
|
|
1849
|
-
const lastName = input.last_name;
|
|
1850
|
-
const fullName = [firstName, lastName].filter(Boolean).join(' ') || undefined;
|
|
1851
|
-
return {
|
|
1852
|
-
body: {
|
|
1853
|
-
...(input.linkedin_url ? { linkedin: input.linkedin_url } : {}),
|
|
1854
|
-
...(input.company_domain ? { domain: input.company_domain } : {}),
|
|
1855
|
-
...(fullName ? { name: fullName } : {}),
|
|
1856
|
-
},
|
|
1857
|
-
};
|
|
1858
|
-
},
|
|
1859
|
-
hasResult: (data) => {
|
|
1860
|
-
const d = data;
|
|
1861
|
-
return Array.isArray(d.data) &&
|
|
1862
|
-
d.data.some((arr) => Array.isArray(arr) && arr.length > 0 && typeof arr[0] === 'string');
|
|
1921
|
+
const domain = (input.domain ?? input.company_domain);
|
|
1922
|
+
const hasCompany = (typeof domain === 'string' && domain.length > 0) ||
|
|
1923
|
+
(typeof input.company_name === 'string' && input.company_name.length > 0);
|
|
1924
|
+
return hasName && hasCompany;
|
|
1863
1925
|
},
|
|
1864
|
-
},
|
|
1865
|
-
{
|
|
1866
|
-
id: 'leadmagic',
|
|
1867
|
-
endpoint: '/leadmagic/people/mobile-finder',
|
|
1868
|
-
method: 'POST',
|
|
1869
|
-
priority: 1,
|
|
1870
|
-
isApplicable: (input) => (typeof input.linkedin_url === 'string' && input.linkedin_url.length > 0) ||
|
|
1871
|
-
(typeof input.email === 'string' && input.email.length > 0),
|
|
1872
1926
|
mapParams: (input) => ({
|
|
1873
|
-
body:
|
|
1874
|
-
|
|
1875
|
-
: {
|
|
1927
|
+
body: {
|
|
1928
|
+
name: 'mcp-find-phone',
|
|
1929
|
+
data: [{
|
|
1930
|
+
first_name: input.first_name,
|
|
1931
|
+
last_name: input.last_name,
|
|
1932
|
+
domain: input.domain ?? input.company_domain,
|
|
1933
|
+
company_name: input.company_name,
|
|
1934
|
+
...(input.linkedin_url ? { linkedin_url: input.linkedin_url } : {}),
|
|
1935
|
+
enrich_fields: ['contact.phones'],
|
|
1936
|
+
}],
|
|
1937
|
+
},
|
|
1876
1938
|
}),
|
|
1877
1939
|
hasResult: (data) => {
|
|
1878
1940
|
const d = data;
|
|
1879
|
-
|
|
1941
|
+
const items = d.data;
|
|
1942
|
+
if (!Array.isArray(items) || items.length === 0)
|
|
1943
|
+
return false;
|
|
1944
|
+
const contactInfo = items[0]?.contact_info;
|
|
1945
|
+
if (!contactInfo)
|
|
1946
|
+
return false;
|
|
1947
|
+
const phones = contactInfo.phones;
|
|
1948
|
+
return Array.isArray(phones) && phones.some((p) => typeof p?.number === 'string' && p.number.length > 0);
|
|
1949
|
+
},
|
|
1950
|
+
async: {
|
|
1951
|
+
extractId: (response) => {
|
|
1952
|
+
const d = response;
|
|
1953
|
+
return d.enrichment_id;
|
|
1954
|
+
},
|
|
1955
|
+
pollEndpoint: (id) => `/fullenrich/contact/enrich/bulk/${id}`,
|
|
1956
|
+
pollIntervalMs: 2500,
|
|
1957
|
+
timeoutMs: 60_000,
|
|
1958
|
+
isComplete: (data) => {
|
|
1959
|
+
const d = data;
|
|
1960
|
+
const status = d.status;
|
|
1961
|
+
return status === 'FINISHED' || status === 'CANCELED';
|
|
1962
|
+
},
|
|
1880
1963
|
},
|
|
1881
1964
|
},
|
|
1882
1965
|
];
|