better-web-search-mcp 0.7.0 → 0.8.1
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/providers/duckduckgo.d.ts +9 -0
- package/dist/providers/duckduckgo.d.ts.map +1 -1
- package/dist/providers/duckduckgo.js +28 -2
- package/dist/providers/duckduckgo.js.map +1 -1
- package/dist/providers/index.d.ts +21 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +19 -9
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/types.d.ts +15 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js +19 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/tools/find.d.ts +2 -0
- package/dist/tools/find.d.ts.map +1 -1
- package/dist/tools/find.js +6 -3
- package/dist/tools/find.js.map +1 -1
- package/dist/tools/news.d.ts +2 -0
- package/dist/tools/news.d.ts.map +1 -1
- package/dist/tools/news.js +6 -3
- package/dist/tools/news.js.map +1 -1
- package/dist/tools/research.d.ts +7 -0
- package/dist/tools/research.d.ts.map +1 -1
- package/dist/tools/research.js +11 -4
- package/dist/tools/research.js.map +1 -1
- package/dist/tools/search.d.ts +7 -0
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +9 -3
- package/dist/tools/search.js.map +1 -1
- package/dist/utils/config.d.ts +15 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +40 -1
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/queries.d.ts +9 -0
- package/dist/utils/queries.d.ts.map +1 -1
- package/dist/utils/queries.js +17 -2
- package/dist/utils/queries.js.map +1 -1
- package/mcp.json +1 -1
- package/package.json +1 -1
|
@@ -10,6 +10,15 @@ export declare class DuckDuckGoProvider implements SearchProvider {
|
|
|
10
10
|
readonly name = "duckduckgo";
|
|
11
11
|
search(query: string, opts: SearchOptions): Promise<SearchResult[]>;
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Whether the HTML is a bot-detection challenge rather than a result page.
|
|
15
|
+
*
|
|
16
|
+
* The endpoint answers a throttled request with a 2xx status and an anomaly
|
|
17
|
+
* page, so status alone cannot tell the two apart. Requiring both the absence
|
|
18
|
+
* of result markup and a challenge marker avoids calling a genuinely empty
|
|
19
|
+
* search a block.
|
|
20
|
+
*/
|
|
21
|
+
export declare function isChallengePage(html: string): boolean;
|
|
13
22
|
/** Parse DuckDuckGo HTML search results into normalized {@link SearchResult}s. */
|
|
14
23
|
export declare function parseHtmlResults(html: string, limit: number): SearchResult[];
|
|
15
24
|
//# sourceMappingURL=duckduckgo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duckduckgo.d.ts","sourceRoot":"","sources":["../../src/providers/duckduckgo.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"duckduckgo.d.ts","sourceRoot":"","sources":["../../src/providers/duckduckgo.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM9E;;;;;;GAMG;AACH,qBAAa,kBAAmB,YAAW,cAAc;IACvD,QAAQ,CAAC,IAAI,gBAAgB;IAEvB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAyD1E;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKrD;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,CA6B5E"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as cheerio from "cheerio";
|
|
2
2
|
import { withRetry } from "../utils/retry.js";
|
|
3
|
+
import { ProviderBlockedError } from "./types.js";
|
|
3
4
|
const DDG_ENDPOINT = "https://html.duckduckgo.com/html/";
|
|
4
5
|
const TIMEOUT_MS = 8_000;
|
|
5
6
|
/**
|
|
@@ -28,13 +29,24 @@ export class DuckDuckGoProvider {
|
|
|
28
29
|
signal: controller.signal,
|
|
29
30
|
}), { retryOn: [429, 503], retryNetworkErrors: true });
|
|
30
31
|
if (!response.ok) {
|
|
31
|
-
|
|
32
|
-
return [];
|
|
32
|
+
throw new ProviderBlockedError("duckduckgo", `endpoint returned ${response.status}`);
|
|
33
33
|
}
|
|
34
34
|
const html = await response.text();
|
|
35
|
+
// A challenge page is served with a 2xx status, so `response.ok` does
|
|
36
|
+
// not catch it. Parsing one yields no matches and used to be reported as
|
|
37
|
+
// "no results", which is indistinguishable from a genuinely empty search
|
|
38
|
+
// and made rate limiting look like a broken query.
|
|
39
|
+
if (isChallengePage(html)) {
|
|
40
|
+
throw new ProviderBlockedError("duckduckgo", `rate limited (HTTP ${response.status} challenge page)`);
|
|
41
|
+
}
|
|
35
42
|
return parseHtmlResults(html, opts.count ?? 10);
|
|
36
43
|
}
|
|
37
44
|
catch (error) {
|
|
45
|
+
// A block is not the same as an empty result set: let it reach the
|
|
46
|
+
// aggregator so callers can be told the search was refused.
|
|
47
|
+
if (error instanceof ProviderBlockedError) {
|
|
48
|
+
throw error;
|
|
49
|
+
}
|
|
38
50
|
console.warn(`[duckduckgo] search failed (${error instanceof Error ? error.message : String(error)}); returning no results.`);
|
|
39
51
|
return [];
|
|
40
52
|
}
|
|
@@ -43,6 +55,20 @@ export class DuckDuckGoProvider {
|
|
|
43
55
|
}
|
|
44
56
|
}
|
|
45
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Whether the HTML is a bot-detection challenge rather than a result page.
|
|
60
|
+
*
|
|
61
|
+
* The endpoint answers a throttled request with a 2xx status and an anomaly
|
|
62
|
+
* page, so status alone cannot tell the two apart. Requiring both the absence
|
|
63
|
+
* of result markup and a challenge marker avoids calling a genuinely empty
|
|
64
|
+
* search a block.
|
|
65
|
+
*/
|
|
66
|
+
export function isChallengePage(html) {
|
|
67
|
+
if (html.includes("result__a") || html.includes('class="result')) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
return /anomaly|unusual traffic|captcha|blocked/i.test(html);
|
|
71
|
+
}
|
|
46
72
|
/** Parse DuckDuckGo HTML search results into normalized {@link SearchResult}s. */
|
|
47
73
|
export function parseHtmlResults(html, limit) {
|
|
48
74
|
const $ = cheerio.load(html);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duckduckgo.js","sourceRoot":"","sources":["../../src/providers/duckduckgo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"duckduckgo.js","sourceRoot":"","sources":["../../src/providers/duckduckgo.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,5 +21,26 @@ export declare const PROVIDER_TIMEOUT_MS = 10000;
|
|
|
21
21
|
* Rejected and timed-out providers are logged as warnings and skipped;
|
|
22
22
|
* fulfilled results are flattened into a single array.
|
|
23
23
|
*/
|
|
24
|
+
/** What aggregation produced, including why any provider contributed nothing. */
|
|
25
|
+
export interface AggregateOutcome {
|
|
26
|
+
/** Results flattened across every provider that answered. */
|
|
27
|
+
results: SearchResult[];
|
|
28
|
+
/**
|
|
29
|
+
* Human-readable notes about providers that refused or failed.
|
|
30
|
+
*
|
|
31
|
+
* Surfaced so a caller can tell "the search was throttled" from "nothing
|
|
32
|
+
* matched". Those were previously indistinguishable, which made a working
|
|
33
|
+
* site-restricted query look broken.
|
|
34
|
+
*/
|
|
35
|
+
warnings: string[];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Aggregate search and report which providers failed.
|
|
39
|
+
*
|
|
40
|
+
* {@link aggregateSearch} keeps the older results-only shape for callers that
|
|
41
|
+
* do not care why a provider was quiet.
|
|
42
|
+
*/
|
|
43
|
+
export declare function aggregateSearchDetailed(query: string, opts?: SearchOptions): Promise<AggregateOutcome>;
|
|
44
|
+
/** Aggregate search across providers, discarding failure detail. */
|
|
24
45
|
export declare function aggregateSearch(query: string, opts?: SearchOptions): Promise<SearchResult[]>;
|
|
25
46
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI9E;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,EAAE,CAanD;AAED,gEAAgE;AAChE,eAAO,MAAM,mBAAmB,QAAS,CAAC;AA2B1C;;;;;;;;GAQG;AACH,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAkC3B;AAED,oEAAoE;AACpE,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,YAAY,EAAE,CAAC,CAEzB"}
|
package/dist/providers/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BraveProvider } from "./brave.js";
|
|
2
2
|
import { DuckDuckGoProvider } from "./duckduckgo.js";
|
|
3
3
|
import { TavilyProvider } from "./tavily.js";
|
|
4
|
+
import { ProviderBlockedError } from "./types.js";
|
|
4
5
|
import { loadConfig } from "../utils/config.js";
|
|
5
6
|
/**
|
|
6
7
|
* Build the list of enabled providers based on environment keys.
|
|
@@ -44,26 +45,35 @@ function withTimeout(promise, ms, label) {
|
|
|
44
45
|
});
|
|
45
46
|
}
|
|
46
47
|
/**
|
|
47
|
-
* Aggregate search
|
|
48
|
+
* Aggregate search and report which providers failed.
|
|
48
49
|
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
* cannot gate the whole search — the others' results are still returned.
|
|
52
|
-
* Rejected and timed-out providers are logged as warnings and skipped;
|
|
53
|
-
* fulfilled results are flattened into a single array.
|
|
50
|
+
* {@link aggregateSearch} keeps the older results-only shape for callers that
|
|
51
|
+
* do not care why a provider was quiet.
|
|
54
52
|
*/
|
|
55
|
-
export async function
|
|
53
|
+
export async function aggregateSearchDetailed(query, opts = {}) {
|
|
56
54
|
const providers = enabledProviders();
|
|
57
55
|
const settled = await Promise.allSettled(providers.map((provider) => withTimeout(provider.search(query, opts), PROVIDER_TIMEOUT_MS, provider.name)));
|
|
58
56
|
const results = [];
|
|
57
|
+
const warnings = [];
|
|
59
58
|
settled.forEach((outcome, index) => {
|
|
60
59
|
const provider = providers[index];
|
|
60
|
+
const name = provider?.name ?? "unknown";
|
|
61
61
|
if (outcome.status === "rejected") {
|
|
62
|
-
|
|
62
|
+
const reason = outcome.reason instanceof Error
|
|
63
|
+
? outcome.reason.message
|
|
64
|
+
: String(outcome.reason);
|
|
65
|
+
console.warn(`[aggregate] provider "${name}" rejected: ${reason}`);
|
|
66
|
+
warnings.push(outcome.reason instanceof ProviderBlockedError
|
|
67
|
+
? reason
|
|
68
|
+
: `${name} failed: ${reason}`);
|
|
63
69
|
return;
|
|
64
70
|
}
|
|
65
71
|
results.push(...outcome.value);
|
|
66
72
|
});
|
|
67
|
-
return results;
|
|
73
|
+
return { results, warnings };
|
|
74
|
+
}
|
|
75
|
+
/** Aggregate search across providers, discarding failure detail. */
|
|
76
|
+
export async function aggregateSearch(query, opts = {}) {
|
|
77
|
+
return (await aggregateSearchDetailed(query, opts)).results;
|
|
68
78
|
}
|
|
69
79
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,MAAM,SAAS,GAAqB,EAAE,CAAC;IAEvC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,SAAS,CAAC,IAAI,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACrB,SAAS,CAAC,IAAI,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,SAAS,CAAC,IAAI,CAAC,IAAI,kBAAkB,EAAE,CAAC,CAAC;IAEzC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,gEAAgE;AAChE,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAE1C;;;;;GAKG;AACH,SAAS,WAAW,CAClB,OAAmB,EACnB,EAAU,EACV,KAAa;IAEb,IAAI,KAAgD,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QAC/C,KAAK,GAAG,UAAU,CAChB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,aAAa,KAAK,qBAAqB,EAAE,IAAI,CAAC,CAAC,EACtE,EAAE,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QACnD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAe,CAAC;AACnB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,4 +45,19 @@ export interface SearchProvider {
|
|
|
45
45
|
*/
|
|
46
46
|
search(query: string, opts: SearchOptions): Promise<SearchResult[]>;
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* A provider refused the request rather than finding nothing.
|
|
50
|
+
*
|
|
51
|
+
* Rate limiting, a challenge page, or an auth failure all mean "we do not know
|
|
52
|
+
* what the results are", which is a different fact from "there are no
|
|
53
|
+
* results". Collapsing the two made a throttled search look like a query that
|
|
54
|
+
* matched nothing, which is how a working `site:` search appeared broken and
|
|
55
|
+
* how a rate-limited benchmark run produced a retention figure that read as
|
|
56
|
+
* real.
|
|
57
|
+
*/
|
|
58
|
+
export declare class ProviderBlockedError extends Error {
|
|
59
|
+
/** The provider that refused. */
|
|
60
|
+
readonly provider: string;
|
|
61
|
+
constructor(provider: string, reason: string);
|
|
62
|
+
}
|
|
48
63
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CACrE"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CACrE;AAED;;;;;;;;;GASG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,iCAAiC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAK7C"}
|
package/dist/providers/types.js
CHANGED
|
@@ -6,5 +6,23 @@
|
|
|
6
6
|
* uniformly. Providers normalize their native API responses into the common
|
|
7
7
|
* {@link SearchResult} shape below.
|
|
8
8
|
*/
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* A provider refused the request rather than finding nothing.
|
|
11
|
+
*
|
|
12
|
+
* Rate limiting, a challenge page, or an auth failure all mean "we do not know
|
|
13
|
+
* what the results are", which is a different fact from "there are no
|
|
14
|
+
* results". Collapsing the two made a throttled search look like a query that
|
|
15
|
+
* matched nothing, which is how a working `site:` search appeared broken and
|
|
16
|
+
* how a rate-limited benchmark run produced a retention figure that read as
|
|
17
|
+
* real.
|
|
18
|
+
*/
|
|
19
|
+
export class ProviderBlockedError extends Error {
|
|
20
|
+
/** The provider that refused. */
|
|
21
|
+
provider;
|
|
22
|
+
constructor(provider, reason) {
|
|
23
|
+
super(`${provider} refused the request: ${reason}`);
|
|
24
|
+
this.name = "ProviderBlockedError";
|
|
25
|
+
this.provider = provider;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
10
28
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA4CH;;;;;;;;;GASG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,iCAAiC;IACxB,QAAQ,CAAS;IAE1B,YAAY,QAAgB,EAAE,MAAc;QAC1C,KAAK,CAAC,GAAG,QAAQ,yBAAyB,MAAM,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF"}
|
package/dist/tools/find.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ export interface FindResponse {
|
|
|
20
20
|
answer: string;
|
|
21
21
|
sources: SearchSource[];
|
|
22
22
|
queries_used: string[];
|
|
23
|
+
/** Providers that refused or failed, so an empty result reads correctly. */
|
|
24
|
+
warnings?: string[];
|
|
23
25
|
}
|
|
24
26
|
/**
|
|
25
27
|
* Run a site-restricted search and return the spec-shaped response.
|
package/dist/tools/find.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../src/tools/find.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,mCAAmC;AACnC,eAAO,MAAM,eAAe;;;;CAI3B,CAAC;AAEF,2CAA2C;AAC3C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../src/tools/find.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,mCAAmC;AACnC,eAAO,MAAM,eAAe;;;;CAI3B,CAAC;AAEF,2CAA2C;AAC3C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAaD;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,GAAG,OAAO,CAAC,YAAY,CAAC,CAiCxB;AAED,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAgBnE"}
|
package/dist/tools/find.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* `web_search`, returning the top matches.
|
|
7
7
|
*/
|
|
8
8
|
import { z } from "zod";
|
|
9
|
-
import {
|
|
9
|
+
import { aggregateSearchDetailed } from "../providers/index.js";
|
|
10
10
|
import { deduplicate } from "../ranking/deduplicate.js";
|
|
11
11
|
import { rerank } from "../ranking/rerank.js";
|
|
12
12
|
import { Cache } from "../utils/cache.js";
|
|
@@ -43,7 +43,7 @@ export async function runFind(args) {
|
|
|
43
43
|
if (cached !== null && cached !== undefined) {
|
|
44
44
|
return cached;
|
|
45
45
|
}
|
|
46
|
-
const raw = await
|
|
46
|
+
const { results: raw, warnings } = await aggregateSearchDetailed(siteQuery, {
|
|
47
47
|
count: maxResults,
|
|
48
48
|
extraSnippets: true,
|
|
49
49
|
});
|
|
@@ -54,8 +54,11 @@ export async function runFind(args) {
|
|
|
54
54
|
answer: `Top ${top.length} results from ${site} for "${query}"`,
|
|
55
55
|
sources: top.map(toSource),
|
|
56
56
|
queries_used: [siteQuery],
|
|
57
|
+
...(warnings.length > 0 ? { warnings } : {}),
|
|
57
58
|
};
|
|
58
|
-
|
|
59
|
+
if (warnings.length === 0) {
|
|
60
|
+
cache?.setSearch(cacheKey, siteQuery, response);
|
|
61
|
+
}
|
|
59
62
|
return response;
|
|
60
63
|
}
|
|
61
64
|
/** Register the `web_find` tool on the given MCP server. */
|
package/dist/tools/find.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../src/tools/find.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../src/tools/find.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/news.d.ts
CHANGED
|
@@ -21,6 +21,8 @@ export interface NewsResponse {
|
|
|
21
21
|
sources: SearchSource[];
|
|
22
22
|
timeline: Record<string, SearchSource[]>;
|
|
23
23
|
queries_used: string[];
|
|
24
|
+
/** Providers that refused or failed, so an empty result reads correctly. */
|
|
25
|
+
warnings?: string[];
|
|
24
26
|
}
|
|
25
27
|
/**
|
|
26
28
|
* Run a recency-filtered news search and return the spec-shaped response.
|
package/dist/tools/news.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"news.d.ts","sourceRoot":"","sources":["../../src/tools/news.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,mCAAmC;AACnC,eAAO,MAAM,eAAe;;;;CAI3B,CAAC;AAEF,2CAA2C;AAC3C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IACzC,YAAY,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"news.d.ts","sourceRoot":"","sources":["../../src/tools/news.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,mCAAmC;AACnC,eAAO,MAAM,eAAe;;;;CAI3B,CAAC;AAEF,2CAA2C;AAC3C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IACzC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AA8CD;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,GAAG,OAAO,CAAC,YAAY,CAAC,CA4DxB;AAED,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAgBnE"}
|
package/dist/tools/news.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* groups the results into a timeline keyed by publication date.
|
|
7
7
|
*/
|
|
8
8
|
import { z } from "zod";
|
|
9
|
-
import {
|
|
9
|
+
import { aggregateSearchDetailed } from "../providers/index.js";
|
|
10
10
|
import { deduplicate } from "../ranking/deduplicate.js";
|
|
11
11
|
import { rerank } from "../ranking/rerank.js";
|
|
12
12
|
import { freshnessFromRecencyDays } from "../providers/brave.js";
|
|
@@ -75,7 +75,7 @@ export async function runNews(args) {
|
|
|
75
75
|
return cached;
|
|
76
76
|
}
|
|
77
77
|
const freshness = freshnessFromRecencyDays(recencyDays);
|
|
78
|
-
const raw = await
|
|
78
|
+
const { results: raw, warnings } = await aggregateSearchDetailed(topic, {
|
|
79
79
|
count: maxResults * 3,
|
|
80
80
|
freshness,
|
|
81
81
|
recency_days: recencyDays,
|
|
@@ -111,8 +111,11 @@ export async function runNews(args) {
|
|
|
111
111
|
sources,
|
|
112
112
|
timeline: buildTimeline(sources),
|
|
113
113
|
queries_used: [topic],
|
|
114
|
+
...(warnings.length > 0 ? { warnings } : {}),
|
|
114
115
|
};
|
|
115
|
-
|
|
116
|
+
if (warnings.length === 0) {
|
|
117
|
+
cache?.setSearch(cacheKey, topic, response);
|
|
118
|
+
}
|
|
116
119
|
return response;
|
|
117
120
|
}
|
|
118
121
|
/** Register the `web_news` tool on the given MCP server. */
|
package/dist/tools/news.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"news.js","sourceRoot":"","sources":["../../src/tools/news.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"news.js","sourceRoot":"","sources":["../../src/tools/news.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/research.d.ts
CHANGED
|
@@ -57,6 +57,13 @@ export interface ResearchResponse {
|
|
|
57
57
|
* statement to a span rather than to a whole page.
|
|
58
58
|
*/
|
|
59
59
|
citations: Citation[];
|
|
60
|
+
/**
|
|
61
|
+
* Providers that refused or failed during the search phase.
|
|
62
|
+
*
|
|
63
|
+
* Without this a throttled research run is indistinguishable from a question
|
|
64
|
+
* the web has no answer to.
|
|
65
|
+
*/
|
|
66
|
+
warnings?: string[];
|
|
60
67
|
/**
|
|
61
68
|
* Countable facts about the evidence behind the answer.
|
|
62
69
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../../src/tools/research.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../../src/tools/research.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/research.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* a deterministic join of the top excerpts.
|
|
10
10
|
*/
|
|
11
11
|
import { z } from "zod";
|
|
12
|
-
import {
|
|
12
|
+
import { aggregateSearchDetailed } from "../providers/index.js";
|
|
13
13
|
import { deduplicate } from "../ranking/deduplicate.js";
|
|
14
14
|
import { rerank } from "../ranking/rerank.js";
|
|
15
15
|
import { expandQueries } from "../utils/queries.js";
|
|
@@ -275,14 +275,16 @@ export async function runResearch(args) {
|
|
|
275
275
|
const freshness = recencyDays === undefined
|
|
276
276
|
? undefined
|
|
277
277
|
: freshnessFromRecencyDays(recencyDays);
|
|
278
|
-
const settled = await Promise.all(queries.map((query) =>
|
|
278
|
+
const settled = await Promise.all(queries.map((query) => aggregateSearchDetailed(query, {
|
|
279
279
|
count: countPerQuery,
|
|
280
280
|
freshness,
|
|
281
281
|
recency_days: recencyDays,
|
|
282
282
|
extraSnippets: true,
|
|
283
283
|
})));
|
|
284
284
|
// 3) Merge flat, deduplicate, and re-rank against the original question.
|
|
285
|
-
const merged = settled.
|
|
285
|
+
const merged = settled.flatMap((outcome) => outcome.results);
|
|
286
|
+
// De-duplicated so one throttled provider does not repeat its note per query.
|
|
287
|
+
const warnings = [...new Set(settled.flatMap((outcome) => outcome.warnings))];
|
|
286
288
|
const deduped = deduplicate(merged);
|
|
287
289
|
const ranked = rerank(deduped, question, recencyDays ?? 30);
|
|
288
290
|
// Respect the recency filter on published dates.
|
|
@@ -310,6 +312,7 @@ export async function runResearch(args) {
|
|
|
310
312
|
sources,
|
|
311
313
|
queries_used: queries,
|
|
312
314
|
citations,
|
|
315
|
+
...(warnings.length > 0 ? { warnings } : {}),
|
|
313
316
|
evidence: {
|
|
314
317
|
sources_opened: pages.length,
|
|
315
318
|
independent_sources: independentSources,
|
|
@@ -321,7 +324,11 @@ export async function runResearch(args) {
|
|
|
321
324
|
},
|
|
322
325
|
extraction_stats: extractionStats(pages),
|
|
323
326
|
};
|
|
324
|
-
cache
|
|
327
|
+
// Never cache a run whose searches were refused: it would keep serving the
|
|
328
|
+
// gap for the rest of the TTL.
|
|
329
|
+
if (warnings.length === 0) {
|
|
330
|
+
cache?.setSearch(cacheKey, question, response);
|
|
331
|
+
}
|
|
325
332
|
return response;
|
|
326
333
|
}
|
|
327
334
|
/** Register the `web_research` tool (alias `deep_search`) on the given MCP server. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"research.js","sourceRoot":"","sources":["../../src/tools/research.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"research.js","sourceRoot":"","sources":["../../src/tools/research.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/search.d.ts
CHANGED
|
@@ -27,6 +27,13 @@ export interface SearchResponse {
|
|
|
27
27
|
answer: string;
|
|
28
28
|
sources: SearchSource[];
|
|
29
29
|
queries_used: string[];
|
|
30
|
+
/**
|
|
31
|
+
* Providers that refused or failed, when any did.
|
|
32
|
+
*
|
|
33
|
+
* Present so an empty `sources` can be read correctly: a throttled search
|
|
34
|
+
* and a query that matched nothing used to look identical.
|
|
35
|
+
*/
|
|
36
|
+
warnings?: string[];
|
|
30
37
|
}
|
|
31
38
|
/**
|
|
32
39
|
* Run a `web_search` and return the spec-shaped response.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,qCAAqC;AACrC,eAAO,MAAM,iBAAiB;;;;CAI7B,CAAC;AAEF,6DAA6D;AAC7D,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,qCAAqC;AACrC,eAAO,MAAM,iBAAiB;;;;CAI7B,CAAC;AAEF,6DAA6D;AAC7D,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAaD;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,GAAG,OAAO,CAAC,cAAc,CAAC,CAyC1B;AAED,8DAA8D;AAC9D,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAgBrE"}
|
package/dist/tools/search.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* repeat queries are served from the cache without hitting providers again.
|
|
7
7
|
*/
|
|
8
8
|
import { z } from "zod";
|
|
9
|
-
import {
|
|
9
|
+
import { aggregateSearchDetailed } from "../providers/index.js";
|
|
10
10
|
import { deduplicate } from "../ranking/deduplicate.js";
|
|
11
11
|
import { rerank } from "../ranking/rerank.js";
|
|
12
12
|
import { freshnessFromRecencyDays } from "../providers/brave.js";
|
|
@@ -46,7 +46,7 @@ export async function runSearch(args) {
|
|
|
46
46
|
const freshness = recencyDays === undefined
|
|
47
47
|
? undefined
|
|
48
48
|
: freshnessFromRecencyDays(recencyDays);
|
|
49
|
-
const raw = await
|
|
49
|
+
const { results: raw, warnings } = await aggregateSearchDetailed(query, {
|
|
50
50
|
count: maxResults,
|
|
51
51
|
freshness,
|
|
52
52
|
recency_days: recencyDays,
|
|
@@ -59,8 +59,14 @@ export async function runSearch(args) {
|
|
|
59
59
|
answer: `Top ${top.length} results for "${query}"`,
|
|
60
60
|
sources: top.map(toSource),
|
|
61
61
|
queries_used: [query],
|
|
62
|
+
...(warnings.length > 0 ? { warnings } : {}),
|
|
62
63
|
};
|
|
63
|
-
cache
|
|
64
|
+
// A throttled search is not a result worth serving from cache for 15
|
|
65
|
+
// minutes: it would keep reporting an empty search long after the provider
|
|
66
|
+
// recovered.
|
|
67
|
+
if (warnings.length === 0) {
|
|
68
|
+
cache?.setSearch(cacheKey, query, response);
|
|
69
|
+
}
|
|
64
70
|
return response;
|
|
65
71
|
}
|
|
66
72
|
/** Register the `web_search` tool on the given MCP server. */
|
package/dist/tools/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/config.d.ts
CHANGED
|
@@ -14,6 +14,21 @@ export interface AppConfig {
|
|
|
14
14
|
cachePath: string;
|
|
15
15
|
browserEnabled: boolean;
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Where the cache lives when nothing overrides it.
|
|
19
|
+
*
|
|
20
|
+
* The default used to be the relative path `data/cache.db`, which resolves
|
|
21
|
+
* against the working directory. An MCP client spawns the server from
|
|
22
|
+
* wherever it happens to be, so that scattered `data/cache.db` files around
|
|
23
|
+
* the filesystem — two were sitting in the home and Downloads folders — and
|
|
24
|
+
* meant the domain profiles and page cache never accumulated, because every
|
|
25
|
+
* launch directory got its own empty database. A per-user location is stable
|
|
26
|
+
* across launches and keeps the writes inside a directory meant for them.
|
|
27
|
+
*
|
|
28
|
+
* `BETTER_WEB_SEARCH_CACHE_PATH` still overrides, and a relative override is
|
|
29
|
+
* still honoured for anyone who wants a project-local cache.
|
|
30
|
+
*/
|
|
31
|
+
export declare function defaultCachePath(env?: NodeJS.ProcessEnv, platform?: string): string;
|
|
17
32
|
export declare function loadConfig(): AppConfig;
|
|
18
33
|
/** Shape for the provider banner (pure, testable). */
|
|
19
34
|
export interface ProviderStatus {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAyBH,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,QAAQ,GAAE,MAAyB,GAClC,MAAM,CAuBR;AAED,wBAAgB,UAAU,IAAI,SAAS,CA0BtC;AAED,sDAAsD;AACtD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,GAAG,cAAc,EAAE,CAqBjE;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EACtC,GAAG,EAAE,SAAS,GACb,MAAM,CAgBR"}
|
package/dist/utils/config.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* to upgrade. Also supports the BETTER_WEB_SEARCH_* prefix for namespacing
|
|
7
7
|
* (e.g. BETTER_WEB_SEARCH_BRAVE_API_KEY) as an alias for the bare name.
|
|
8
8
|
*/
|
|
9
|
+
import { join } from "node:path";
|
|
9
10
|
const KEY_ALIASES = {
|
|
10
11
|
BRAVE_API_KEY: ["BETTER_WEB_SEARCH_BRAVE_API_KEY", "BRAVE_SEARCH_API_KEY"],
|
|
11
12
|
TAVILY_API_KEY: ["BETTER_WEB_SEARCH_TAVILY_API_KEY"],
|
|
@@ -24,6 +25,44 @@ function readKey(canonical) {
|
|
|
24
25
|
const aliases = KEY_ALIASES[canonical] ?? [];
|
|
25
26
|
return pickFirstEnv([canonical, ...aliases]);
|
|
26
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Where the cache lives when nothing overrides it.
|
|
30
|
+
*
|
|
31
|
+
* The default used to be the relative path `data/cache.db`, which resolves
|
|
32
|
+
* against the working directory. An MCP client spawns the server from
|
|
33
|
+
* wherever it happens to be, so that scattered `data/cache.db` files around
|
|
34
|
+
* the filesystem — two were sitting in the home and Downloads folders — and
|
|
35
|
+
* meant the domain profiles and page cache never accumulated, because every
|
|
36
|
+
* launch directory got its own empty database. A per-user location is stable
|
|
37
|
+
* across launches and keeps the writes inside a directory meant for them.
|
|
38
|
+
*
|
|
39
|
+
* `BETTER_WEB_SEARCH_CACHE_PATH` still overrides, and a relative override is
|
|
40
|
+
* still honoured for anyone who wants a project-local cache.
|
|
41
|
+
*/
|
|
42
|
+
export function defaultCachePath(env = process.env, platform = process.platform) {
|
|
43
|
+
const home = env.HOME ?? env.USERPROFILE;
|
|
44
|
+
const app = "better-web-search-mcp";
|
|
45
|
+
if (platform === "win32") {
|
|
46
|
+
const base = env.LOCALAPPDATA ?? (home ? join(home, "AppData", "Local") : undefined);
|
|
47
|
+
if (base) {
|
|
48
|
+
return join(base, app, "cache.db");
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else if (platform === "darwin") {
|
|
52
|
+
if (home) {
|
|
53
|
+
return join(home, "Library", "Caches", app, "cache.db");
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
const base = env.XDG_CACHE_HOME ?? (home ? join(home, ".cache") : undefined);
|
|
58
|
+
if (base) {
|
|
59
|
+
return join(base, app, "cache.db");
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// No home directory to write into: fall back to the old relative path
|
|
63
|
+
// rather than failing to start.
|
|
64
|
+
return join("data", "cache.db");
|
|
65
|
+
}
|
|
27
66
|
export function loadConfig() {
|
|
28
67
|
const braveApiKey = readKey("BRAVE_API_KEY");
|
|
29
68
|
const tavilyApiKey = readKey("TAVILY_API_KEY");
|
|
@@ -32,7 +71,7 @@ export function loadConfig() {
|
|
|
32
71
|
(process.env.DISABLE_CACHE ?? "").toLowerCase() !== "true";
|
|
33
72
|
const cachePath = process.env.BETTER_WEB_SEARCH_CACHE_PATH ??
|
|
34
73
|
process.env.CACHE_PATH ??
|
|
35
|
-
|
|
74
|
+
defaultCachePath();
|
|
36
75
|
const browserEnabled = (process.env.BETTER_WEB_SEARCH_DISABLE_BROWSER ?? "").toLowerCase() !== "true" &&
|
|
37
76
|
(process.env.DISABLE_BROWSER ?? "").toLowerCase() !== "true";
|
|
38
77
|
return {
|
package/dist/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,GAA6B;IAC5C,aAAa,EAAE,CAAC,iCAAiC,EAAE,sBAAsB,CAAC;IAC1E,cAAc,EAAE,CAAC,kCAAkC,CAAC;IACpD,WAAW,EAAE,CAAC,+BAA+B,EAAE,cAAc,CAAC;CAC/D,CAAC;AAEF,SAAS,YAAY,CAAC,KAAe;IACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC/C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,OAAO,CAAC,SAAiB;IAChC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC7C,OAAO,YAAY,CAAC,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;AAC/C,CAAC;AAWD,MAAM,UAAU,UAAU;IACxB,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1C,MAAM,YAAY,GAChB,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;QAC5E,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;IAE7D,MAAM,SAAS,GACb,OAAO,CAAC,GAAG,CAAC,4BAA4B;QACxC,OAAO,CAAC,GAAG,CAAC,UAAU;QACtB,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/queries.d.ts
CHANGED
|
@@ -14,5 +14,14 @@
|
|
|
14
14
|
*
|
|
15
15
|
* Returns `[""]` for an empty question.
|
|
16
16
|
*/
|
|
17
|
+
/**
|
|
18
|
+
* A comparison key that ignores differences no search engine cares about.
|
|
19
|
+
*
|
|
20
|
+
* Case, punctuation and a trailing plural are all collapsed, so "… Type R
|
|
21
|
+
* review" and "… Type R reviews" reduce to the same key. Without this the
|
|
22
|
+
* expander emitted both, spending a provider call and a rank slot on a query
|
|
23
|
+
* that returns the same page twice.
|
|
24
|
+
*/
|
|
25
|
+
export declare function variantKey(query: string): string;
|
|
17
26
|
export declare function expandQueries(question: string): string[];
|
|
18
27
|
//# sourceMappingURL=queries.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/utils/queries.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoCH;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/utils/queries.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoCH;;;;;;;;GAQG;AACH;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAiCxD"}
|
package/dist/utils/queries.js
CHANGED
|
@@ -39,13 +39,28 @@ const SYNONYMS = [
|
|
|
39
39
|
*
|
|
40
40
|
* Returns `[""]` for an empty question.
|
|
41
41
|
*/
|
|
42
|
+
/**
|
|
43
|
+
* A comparison key that ignores differences no search engine cares about.
|
|
44
|
+
*
|
|
45
|
+
* Case, punctuation and a trailing plural are all collapsed, so "… Type R
|
|
46
|
+
* review" and "… Type R reviews" reduce to the same key. Without this the
|
|
47
|
+
* expander emitted both, spending a provider call and a rank slot on a query
|
|
48
|
+
* that returns the same page twice.
|
|
49
|
+
*/
|
|
50
|
+
export function variantKey(query) {
|
|
51
|
+
return (query.toLowerCase().match(/[a-z0-9]+/g) ?? [])
|
|
52
|
+
.map((token) => (token.length > 3 && token.endsWith("s") ? token.slice(0, -1) : token))
|
|
53
|
+
.join(" ");
|
|
54
|
+
}
|
|
42
55
|
export function expandQueries(question) {
|
|
43
56
|
const trimmed = question.trim();
|
|
44
57
|
if (trimmed === "") {
|
|
45
58
|
return [""];
|
|
46
59
|
}
|
|
47
60
|
const variants = [trimmed];
|
|
48
|
-
|
|
61
|
+
// Keyed on the normalized form so a variant that differs only by plural or
|
|
62
|
+
// punctuation never makes it into the list.
|
|
63
|
+
const seen = new Set([variantKey(trimmed)]);
|
|
49
64
|
for (const group of SYNONYMS) {
|
|
50
65
|
if (variants.length >= 6) {
|
|
51
66
|
break;
|
|
@@ -59,7 +74,7 @@ export function expandQueries(question) {
|
|
|
59
74
|
break;
|
|
60
75
|
}
|
|
61
76
|
const variant = replaceTerm(trimmed, group.term, replacement);
|
|
62
|
-
const key = variant
|
|
77
|
+
const key = variantKey(variant);
|
|
63
78
|
if (!seen.has(key)) {
|
|
64
79
|
seen.add(key);
|
|
65
80
|
variants.push(variant);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/utils/queries.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH;;;;GAIG;AACH,MAAM,QAAQ,GAA4B;IACxC,oEAAoE;IACpE,8CAA8C;IAC9C,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE;IAC7D,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE;IACjE,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE;IAClE,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC,iBAAiB,EAAE,cAAc,CAAC,EAAE;IAC9E,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE;IAChE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE;IACtE,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE;IAC3D,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;IAC3D,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE;IACxD,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;IAC9C,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE;IACjE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;IACpD,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;IACzD,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE;IACrE,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE;IAClE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;CAC5D,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,OAAO,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAa,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/utils/queries.ts"],"names":[],"mappings":"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"}
|
package/mcp.json
CHANGED
package/package.json
CHANGED