@coldiq/mcp 0.1.8 → 0.1.10
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/README.md +1 -1
- package/dist/executor.d.ts +8 -1
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +45 -18
- package/dist/executor.js.map +1 -1
- package/dist/registry.d.ts +9 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +16 -0
- package/dist/registry.js.map +1 -1
- package/dist/tools/enrich-company.d.ts +2 -1
- package/dist/tools/enrich-company.d.ts.map +1 -1
- package/dist/tools/enrich-company.js +10 -3
- package/dist/tools/enrich-company.js.map +1 -1
- package/dist/tools/enrich-person.d.ts +1 -0
- package/dist/tools/enrich-person.d.ts.map +1 -1
- package/dist/tools/enrich-person.js +10 -2
- package/dist/tools/enrich-person.js.map +1 -1
- package/dist/tools/fetch-page-content.d.ts +1 -0
- package/dist/tools/fetch-page-content.d.ts.map +1 -1
- package/dist/tools/fetch-page-content.js +8 -1
- package/dist/tools/fetch-page-content.js.map +1 -1
- package/dist/tools/find-email.d.ts +1 -0
- package/dist/tools/find-email.d.ts.map +1 -1
- package/dist/tools/find-email.js +9 -2
- package/dist/tools/find-email.js.map +1 -1
- package/dist/tools/find-emails.d.ts +8 -0
- package/dist/tools/find-emails.d.ts.map +1 -1
- package/dist/tools/find-emails.js +64 -33
- package/dist/tools/find-emails.js.map +1 -1
- package/dist/tools/find-influencers.d.ts +1 -0
- package/dist/tools/find-influencers.d.ts.map +1 -1
- package/dist/tools/find-influencers.js +8 -1
- package/dist/tools/find-influencers.js.map +1 -1
- package/dist/tools/find-people.d.ts +1 -0
- package/dist/tools/find-people.d.ts.map +1 -1
- package/dist/tools/find-people.js +12 -5
- package/dist/tools/find-people.js.map +1 -1
- package/dist/tools/find-phone.d.ts +1 -0
- package/dist/tools/find-phone.d.ts.map +1 -1
- package/dist/tools/find-phone.js +9 -2
- package/dist/tools/find-phone.js.map +1 -1
- package/dist/tools/find-signals.d.ts +1 -0
- package/dist/tools/find-signals.d.ts.map +1 -1
- package/dist/tools/find-signals.js +14 -7
- package/dist/tools/find-signals.js.map +1 -1
- package/dist/tools/search-ads.d.ts +1 -0
- package/dist/tools/search-ads.d.ts.map +1 -1
- package/dist/tools/search-ads.js +8 -1
- package/dist/tools/search-ads.js.map +1 -1
- package/dist/tools/search-companies.d.ts +2 -1
- package/dist/tools/search-companies.d.ts.map +1 -1
- package/dist/tools/search-companies.js +9 -2
- package/dist/tools/search-companies.js.map +1 -1
- package/dist/tools/search-jobs.d.ts +1 -0
- package/dist/tools/search-jobs.d.ts.map +1 -1
- package/dist/tools/search-jobs.js +9 -2
- package/dist/tools/search-jobs.js.map +1 -1
- package/dist/tools/search-places.d.ts +1 -0
- package/dist/tools/search-places.d.ts.map +1 -1
- package/dist/tools/search-places.js +8 -1
- package/dist/tools/search-places.js.map +1 -1
- package/dist/tools/search-reddit.d.ts +1 -0
- package/dist/tools/search-reddit.d.ts.map +1 -1
- package/dist/tools/search-reddit.js +8 -1
- package/dist/tools/search-reddit.js.map +1 -1
- package/dist/tools/search-seo.d.ts +1 -0
- package/dist/tools/search-seo.d.ts.map +1 -1
- package/dist/tools/search-seo.js +8 -1
- package/dist/tools/search-seo.js.map +1 -1
- package/dist/tools/search-web.d.ts +1 -0
- package/dist/tools/search-web.d.ts.map +1 -1
- package/dist/tools/search-web.js +10 -2
- package/dist/tools/search-web.js.map +1 -1
- package/dist/tools/verify-email.d.ts +2 -1
- package/dist/tools/verify-email.d.ts.map +1 -1
- package/dist/tools/verify-email.js +9 -2
- package/dist/tools/verify-email.js.map +1 -1
- package/dist/utils/fuzzy.d.ts +13 -0
- package/dist/utils/fuzzy.d.ts.map +1 -0
- package/dist/utils/fuzzy.js +46 -0
- package/dist/utils/fuzzy.js.map +1 -0
- package/dist/utils/provider-resolver.d.ts +34 -0
- package/dist/utils/provider-resolver.d.ts.map +1 -0
- package/dist/utils/provider-resolver.js +235 -0
- package/dist/utils/provider-resolver.js.map +1 -0
- package/package.json +1 -1
- package/src/executor.ts +55 -14
- package/src/registry.ts +20 -0
- package/src/tools/enrich-company.ts +10 -3
- package/src/tools/enrich-person.ts +10 -2
- package/src/tools/fetch-page-content.ts +8 -1
- package/src/tools/find-email.ts +9 -2
- package/src/tools/find-emails.ts +78 -41
- package/src/tools/find-influencers.ts +8 -1
- package/src/tools/find-people.ts +12 -5
- package/src/tools/find-phone.ts +9 -2
- package/src/tools/find-signals.ts +15 -7
- package/src/tools/search-ads.ts +8 -1
- package/src/tools/search-companies.ts +9 -2
- package/src/tools/search-jobs.ts +9 -2
- package/src/tools/search-places.ts +8 -1
- package/src/tools/search-reddit.ts +8 -1
- package/src/tools/search-seo.ts +8 -1
- package/src/tools/search-web.ts +10 -2
- package/src/tools/verify-email.ts +9 -2
- package/src/utils/fuzzy.ts +57 -0
- package/src/utils/provider-resolver.ts +306 -0
- package/tests/executor.test.ts +184 -4
- package/tests/registry.test.ts +22 -1
- package/tests/tools/find-email.test.ts +43 -0
- package/tests/tools/find-emails.test.ts +87 -0
- package/tests/tools/search-companies.test.ts +40 -0
- package/tests/utils/fuzzy.test.ts +63 -0
- package/tests/utils/provider-resolver.test.ts +145 -0
package/README.md
CHANGED
package/dist/executor.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export interface ExecutionResult {
|
|
|
4
4
|
_meta: {
|
|
5
5
|
provider: string;
|
|
6
6
|
latencyMs: number;
|
|
7
|
+
matchedFrom?: Record<string, string>;
|
|
7
8
|
};
|
|
8
9
|
}
|
|
9
10
|
export interface ExecutionError {
|
|
@@ -20,5 +21,11 @@ export interface ExecutionError {
|
|
|
20
21
|
}
|
|
21
22
|
declare function isExecutionError(result: ExecutionResult | ExecutionError): result is ExecutionError;
|
|
22
23
|
export { isExecutionError };
|
|
23
|
-
export
|
|
24
|
+
export interface ExecuteOptions {
|
|
25
|
+
/** When set, only these provider IDs are tried (in this order). No fallback to others. */
|
|
26
|
+
providers?: string[];
|
|
27
|
+
/** Fuzzy-match aliases to surface in success _meta */
|
|
28
|
+
matchedFrom?: Record<string, string>;
|
|
29
|
+
}
|
|
30
|
+
export declare function executeWithFallback(capability: Capability, input: Record<string, unknown>, options?: ExecuteOptions): Promise<ExecutionResult | ExecutionError>;
|
|
24
31
|
//# sourceMappingURL=executor.d.ts.map
|
package/dist/executor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,eAAe,CAAA;AAE9D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,eAAe,CAAA;AAE9D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACrC,CAAA;CACF;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC3E,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iGAAiG;IACjG,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED,iBAAS,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,GAAG,MAAM,IAAI,cAAc,CAE5F;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAmH3B,MAAM,WAAW,cAAc;IAC7B,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACrC;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,eAAe,GAAG,cAAc,CAAC,CAsH3C"}
|
package/dist/executor.js
CHANGED
|
@@ -91,16 +91,26 @@ async function executeSingle(provider, input) {
|
|
|
91
91
|
}
|
|
92
92
|
return { ...result, latencyMs: Date.now() - start };
|
|
93
93
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
const providers = capability === 'search_web'
|
|
94
|
+
export async function executeWithFallback(capability, input, options) {
|
|
95
|
+
const preferredIds = options?.providers ?? [];
|
|
96
|
+
const isConstrained = preferredIds.length > 0;
|
|
97
|
+
let allProviders = capability === 'search_web'
|
|
99
98
|
? getSearchWebProviders(input.search_type === 'neural')
|
|
100
99
|
: getProviders(capability);
|
|
100
|
+
// When the caller pinned specific providers, filter to those in order.
|
|
101
|
+
if (isConstrained) {
|
|
102
|
+
const ordered = [];
|
|
103
|
+
for (const id of preferredIds) {
|
|
104
|
+
const entry = allProviders.find((p) => p.id === id);
|
|
105
|
+
if (entry)
|
|
106
|
+
ordered.push(entry);
|
|
107
|
+
}
|
|
108
|
+
allProviders = ordered;
|
|
109
|
+
}
|
|
101
110
|
const errors = [];
|
|
102
111
|
let billingUrl;
|
|
103
|
-
|
|
112
|
+
let zeroBalance = false;
|
|
113
|
+
for (const provider of allProviders) {
|
|
104
114
|
if (provider.isApplicable) {
|
|
105
115
|
let applicable;
|
|
106
116
|
try {
|
|
@@ -136,7 +146,11 @@ export async function executeWithFallback(capability, input) {
|
|
|
136
146
|
}
|
|
137
147
|
if (hasResult) {
|
|
138
148
|
log(`${capability} → ${provider.id} ✓ (${result.latencyMs}ms)`);
|
|
139
|
-
|
|
149
|
+
const meta = { provider: provider.id, latencyMs: result.latencyMs };
|
|
150
|
+
if (options?.matchedFrom && Object.keys(options.matchedFrom).length > 0) {
|
|
151
|
+
meta.matchedFrom = options.matchedFrom;
|
|
152
|
+
}
|
|
153
|
+
return { data: payload, _meta: meta };
|
|
140
154
|
}
|
|
141
155
|
// Record the failure
|
|
142
156
|
const rawErr = result.data && typeof result.data === 'object' && 'error' in result.data
|
|
@@ -149,21 +163,34 @@ export async function executeWithFallback(capability, input) {
|
|
|
149
163
|
errors.push({ id: provider.id, status: result.status, error: errMsg });
|
|
150
164
|
// Capture the billing URL the API surfaces in 402 responses so the
|
|
151
165
|
// top-level error can include a clickable link for the user.
|
|
152
|
-
if (result.status === 402
|
|
153
|
-
&& result.data && typeof result.data === 'object'
|
|
154
|
-
|
|
155
|
-
billingUrl
|
|
166
|
+
if (result.status === 402
|
|
167
|
+
&& result.data && typeof result.data === 'object') {
|
|
168
|
+
const body = result.data;
|
|
169
|
+
if (!billingUrl && typeof body.billingUrl === 'string') {
|
|
170
|
+
billingUrl = body.billingUrl;
|
|
171
|
+
}
|
|
172
|
+
// Short-circuit the waterfall when the user has no credits at all.
|
|
173
|
+
// Every paid provider needs >= 1 credit, so trying the rest is wasted
|
|
174
|
+
// round-trips. Non-zero balances may still match a cheaper provider,
|
|
175
|
+
// so only bail when balance is exactly 0.
|
|
176
|
+
if (typeof body.balance === 'number' && body.balance <= 0) {
|
|
177
|
+
zeroBalance = true;
|
|
178
|
+
debug(`${capability} → balance is 0, skipping remaining providers`);
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
156
181
|
}
|
|
157
182
|
}
|
|
158
183
|
debug(`${capability}: all ${errors.length} providers failed — ${JSON.stringify(errors)}`);
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
184
|
+
// When the user pinned specific providers, expose their real IDs in the error
|
|
185
|
+
// (they already know what they asked for). Otherwise anonymize to avoid leaking
|
|
186
|
+
// internal provider names on auto-route failures.
|
|
187
|
+
const sanitized = isConstrained
|
|
188
|
+
? errors.map((e) => ({ provider: e.id, status: e.status, error: e.error.slice(0, 200) }))
|
|
189
|
+
: errors.map((e, i) => ({ provider: `provider_${i + 1}`, status: e.status, error: e.error.slice(0, 200) }));
|
|
190
|
+
const allOutOfCredits = zeroBalance
|
|
191
|
+
|| (errors.length > 0 && errors.every((e) => e.status === 402));
|
|
165
192
|
const topLevelError = allOutOfCredits && billingUrl
|
|
166
|
-
? `Insufficient credits —
|
|
193
|
+
? `Insufficient credits — your account balance is 0 and this request requires credits. Top up at ${billingUrl} to continue.`
|
|
167
194
|
: `All ${errors.length} providers failed for ${capability}`;
|
|
168
195
|
const out = {
|
|
169
196
|
error: topLevelError,
|
package/dist/executor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.d.ts
CHANGED
|
@@ -41,6 +41,15 @@ export interface ProviderEntry {
|
|
|
41
41
|
}
|
|
42
42
|
export type Capability = 'search_companies' | 'find_people' | 'find_email' | 'verify_email' | 'find_phone' | 'enrich_company' | 'enrich_person' | 'search_web' | 'search_jobs' | 'search_ads' | 'search_places' | 'find_influencers' | 'search_reddit' | 'search_seo' | 'find_signals' | 'fetch_page_content';
|
|
43
43
|
export declare function isoCountryToName(code: string): string;
|
|
44
|
+
/**
|
|
45
|
+
* Return the ordered provider IDs for a capability (for documentation / resolver).
|
|
46
|
+
*/
|
|
47
|
+
export declare function listCapabilityProviderIds(capability: Capability): string[];
|
|
48
|
+
/**
|
|
49
|
+
* Return the isApplicable guard for a specific provider within a capability.
|
|
50
|
+
* Returns undefined when the provider has no gate.
|
|
51
|
+
*/
|
|
52
|
+
export declare function getProviderApplicabilityGuard(capability: Capability, providerId: string): ((input: Record<string, unknown>) => boolean) | undefined;
|
|
44
53
|
/**
|
|
45
54
|
* Get the ordered provider list for a capability.
|
|
46
55
|
* Returns a copy sorted by priority (lower = first).
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAIA,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,kBAAkB,GAClB,eAAe,GACf,YAAY,GACZ,cAAc,GACd,oBAAoB,CAAA;AA0CxB,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrD;AAs5FD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,EAAE,CAIpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,OAAO,GAAG,aAAa,EAAE,CAW5E"}
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAIA,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,kBAAkB,GAClB,eAAe,GACf,YAAY,GACZ,cAAc,GACd,oBAAoB,CAAA;AA0CxB,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrD;AAs5FD;;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,CAI3D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,EAAE,CAIpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,OAAO,GAAG,aAAa,EAAE,CAW5E"}
|
package/dist/registry.js
CHANGED
|
@@ -2999,6 +2999,22 @@ const registry = {
|
|
|
2999
2999
|
find_signals: findSignalsProviders,
|
|
3000
3000
|
fetch_page_content: fetchPageContentProviders,
|
|
3001
3001
|
};
|
|
3002
|
+
/**
|
|
3003
|
+
* Return the ordered provider IDs for a capability (for documentation / resolver).
|
|
3004
|
+
*/
|
|
3005
|
+
export function listCapabilityProviderIds(capability) {
|
|
3006
|
+
return getProviders(capability).map((p) => p.id);
|
|
3007
|
+
}
|
|
3008
|
+
/**
|
|
3009
|
+
* Return the isApplicable guard for a specific provider within a capability.
|
|
3010
|
+
* Returns undefined when the provider has no gate.
|
|
3011
|
+
*/
|
|
3012
|
+
export function getProviderApplicabilityGuard(capability, providerId) {
|
|
3013
|
+
const providers = registry[capability];
|
|
3014
|
+
if (!providers)
|
|
3015
|
+
return undefined;
|
|
3016
|
+
return providers.find((p) => p.id === providerId)?.isApplicable;
|
|
3017
|
+
}
|
|
3002
3018
|
/**
|
|
3003
3019
|
* Get the ordered provider list for a capability.
|
|
3004
3020
|
* Returns a copy sorted by priority (lower = first).
|