@framers/agentos-ext-web-search 1.1.0 → 1.1.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.
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SearchProviderService = void 0;
4
1
  /**
5
2
  * Service for managing multiple search providers with fallback support
6
3
  *
@@ -16,7 +13,7 @@ exports.SearchProviderService = void 0;
16
13
  * const results = await service.search('query');
17
14
  * ```
18
15
  */
19
- class SearchProviderService {
16
+ export class SearchProviderService {
20
17
  config;
21
18
  rateLimitState;
22
19
  /**
@@ -26,12 +23,15 @@ class SearchProviderService {
26
23
  */
27
24
  constructor(config) {
28
25
  this.config = {
29
- maxRetries: 3,
30
- rateLimit: {
26
+ serperApiKey: config.serperApiKey,
27
+ serpApiKey: config.serpApiKey,
28
+ braveApiKey: config.braveApiKey,
29
+ searxngUrl: config.searxngUrl,
30
+ maxRetries: config.maxRetries ?? 3,
31
+ rateLimit: config.rateLimit ?? {
31
32
  maxRequests: 10,
32
- windowMs: 60000
33
+ windowMs: 60000,
33
34
  },
34
- ...config
35
35
  };
36
36
  this.rateLimitState = new Map();
37
37
  }
@@ -51,14 +51,14 @@ class SearchProviderService {
51
51
  const maxResults = options.maxResults || 10;
52
52
  // If specific provider requested, try only that one
53
53
  if (options.provider) {
54
- return this.searchWithProvider(query, options.provider, maxResults, startTime);
54
+ return this.searchWithProvider(query, options.provider, maxResults, startTime, options.category);
55
55
  }
56
56
  // Try providers in order of preference
57
57
  const providers = this.getAvailableProviders();
58
58
  for (const provider of providers) {
59
59
  try {
60
60
  if (await this.checkRateLimit(provider)) {
61
- return await this.searchWithProvider(query, provider, maxResults, startTime);
61
+ return await this.searchWithProvider(query, provider, maxResults, startTime, options.category);
62
62
  }
63
63
  }
64
64
  catch (error) {
@@ -79,7 +79,7 @@ class SearchProviderService {
79
79
  * @param {number} startTime - Request start timestamp
80
80
  * @returns {Promise<ProviderResponse>} Search results
81
81
  */
82
- async searchWithProvider(query, provider, maxResults, startTime) {
82
+ async searchWithProvider(query, provider, maxResults, startTime, category) {
83
83
  let results;
84
84
  switch (provider) {
85
85
  case 'serper':
@@ -91,6 +91,9 @@ class SearchProviderService {
91
91
  case 'brave':
92
92
  results = await this.searchBrave(query, maxResults);
93
93
  break;
94
+ case 'searxng':
95
+ results = await this.searchSearXNG(query, maxResults, { categories: category });
96
+ break;
94
97
  case 'duckduckgo':
95
98
  default:
96
99
  results = await this.searchDuckDuckGoAPI(query, maxResults);
@@ -109,7 +112,6 @@ class SearchProviderService {
109
112
  /**
110
113
  * Gets list of available providers based on configured API keys
111
114
  *
112
- * @private
113
115
  * @returns {string[]} Array of available provider names
114
116
  */
115
117
  getAvailableProviders() {
@@ -120,6 +122,8 @@ class SearchProviderService {
120
122
  providers.push('serpapi');
121
123
  if (this.config.braveApiKey)
122
124
  providers.push('brave');
125
+ if (this.config.searxngUrl)
126
+ providers.push('searxng');
123
127
  return providers;
124
128
  }
125
129
  /**
@@ -164,7 +168,7 @@ class SearchProviderService {
164
168
  });
165
169
  if (!response.ok)
166
170
  throw new Error(`Serper API error: ${response.statusText}`);
167
- const data = await response.json();
171
+ const data = (await response.json());
168
172
  return (data.organic || []).map((item) => ({
169
173
  title: item.title,
170
174
  url: item.link,
@@ -189,7 +193,7 @@ class SearchProviderService {
189
193
  const response = await fetch(`https://serpapi.com/search?${params}`);
190
194
  if (!response.ok)
191
195
  throw new Error(`SerpAPI error: ${response.statusText}`);
192
- const data = await response.json();
196
+ const data = (await response.json());
193
197
  return (data.organic_results || []).map((item) => ({
194
198
  title: item.title,
195
199
  url: item.link,
@@ -217,7 +221,7 @@ class SearchProviderService {
217
221
  });
218
222
  if (!response.ok)
219
223
  throw new Error(`Brave API error: ${response.statusText}`);
220
- const data = await response.json();
224
+ const data = (await response.json());
221
225
  return (data.web?.results || []).map((item, index) => ({
222
226
  title: item.title,
223
227
  url: item.url,
@@ -279,7 +283,7 @@ class SearchProviderService {
279
283
  skip_disambig: '1'
280
284
  });
281
285
  const response = await fetch(`https://api.duckduckgo.com/?${params}`);
282
- const data = await response.json();
286
+ const data = (await response.json());
283
287
  const results = [];
284
288
  // Add instant answer if available
285
289
  if (data.AbstractText && data.AbstractURL) {
@@ -303,6 +307,148 @@ class SearchProviderService {
303
307
  }
304
308
  return results.slice(0, maxResults);
305
309
  }
310
+ /**
311
+ * Search using a self-hosted SearXNG metasearch instance.
312
+ *
313
+ * @private
314
+ * @param {string} query - Search query
315
+ * @param {number} maxResults - Maximum results
316
+ * @param {Object} [options] - SearXNG-specific options
317
+ * @param {string} [options.categories] - SearXNG categories (e.g. 'general', 'news', 'images')
318
+ * @returns {Promise<SearchResult[]>} Search results
319
+ */
320
+ async searchSearXNG(query, maxResults, options) {
321
+ const params = new URLSearchParams({
322
+ q: query,
323
+ format: 'json',
324
+ categories: options?.categories || 'general',
325
+ });
326
+ const baseUrl = this.config.searxngUrl.replace(/\/+$/, '');
327
+ const response = await fetch(`${baseUrl}/search?${params}`);
328
+ if (!response.ok)
329
+ throw new Error(`SearXNG API error: ${response.statusText}`);
330
+ const data = (await response.json());
331
+ return (data.results || []).slice(0, maxResults).map((item, index) => ({
332
+ title: item.title || '',
333
+ url: item.url || '',
334
+ snippet: item.content || '',
335
+ position: index + 1,
336
+ }));
337
+ }
338
+ /**
339
+ * Normalizes a URL for deduplication — strips www, tracking params, trailing slash.
340
+ */
341
+ static normalizeUrl(rawUrl) {
342
+ try {
343
+ const url = new URL(rawUrl);
344
+ url.hostname = url.hostname.replace(/^www\./, '');
345
+ const trackingParams = [
346
+ 'utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term',
347
+ 'fbclid', 'gclid', 'ref', 'source', 'sxsrf', 'ei', 'ved',
348
+ ];
349
+ for (const param of trackingParams)
350
+ url.searchParams.delete(param);
351
+ url.searchParams.sort();
352
+ url.pathname = url.pathname.replace(/\/+$/, '') || '/';
353
+ return url.toString();
354
+ }
355
+ catch {
356
+ return rawUrl.toLowerCase().trim();
357
+ }
358
+ }
359
+ /**
360
+ * Searches ALL available providers in parallel, then merges, deduplicates,
361
+ * and reranks results by cross-provider agreement.
362
+ */
363
+ async multiSearch(query, options = {}) {
364
+ const startTime = Date.now();
365
+ const maxResults = options.maxResults || 10;
366
+ const providers = [...new Set([...this.getAvailableProviders(), 'duckduckgo'])];
367
+ const providerResults = await Promise.allSettled(providers.map(async (provider) => {
368
+ try {
369
+ if (provider !== 'duckduckgo' && !(await this.checkRateLimit(provider))) {
370
+ throw new Error(`Rate limit exceeded for ${provider}`);
371
+ }
372
+ const response = await this.searchWithProvider(query, provider, maxResults, startTime);
373
+ return { provider, results: response.results, success: true };
374
+ }
375
+ catch {
376
+ return { provider, results: [], success: false };
377
+ }
378
+ }));
379
+ const succeeded = [];
380
+ const failed = [];
381
+ const allResults = [];
382
+ for (const outcome of providerResults) {
383
+ if (outcome.status === 'fulfilled') {
384
+ const { provider, results, success } = outcome.value;
385
+ if (success && results.length > 0) {
386
+ succeeded.push(provider);
387
+ results.forEach((result, index) => {
388
+ allResults.push({ provider, result, position: index + 1 });
389
+ });
390
+ }
391
+ else {
392
+ failed.push(provider);
393
+ }
394
+ }
395
+ else {
396
+ failed.push('unknown');
397
+ }
398
+ }
399
+ // Deduplicate and merge by normalized URL
400
+ const merged = new Map();
401
+ for (const { provider, result, position } of allResults) {
402
+ const key = SearchProviderService.normalizeUrl(result.url);
403
+ if (merged.has(key)) {
404
+ const existing = merged.get(key);
405
+ if (!existing.providers.includes(provider)) {
406
+ existing.providers.push(provider);
407
+ existing.agreementCount = existing.providers.length;
408
+ }
409
+ existing.providerPositions[provider] = position;
410
+ if ((result.snippet?.length || 0) > (existing.snippet?.length || 0)) {
411
+ existing.snippet = result.snippet;
412
+ }
413
+ }
414
+ else {
415
+ merged.set(key, {
416
+ title: result.title,
417
+ url: result.url,
418
+ snippet: result.snippet,
419
+ position,
420
+ providers: [provider],
421
+ agreementCount: 1,
422
+ confidenceScore: 0,
423
+ providerPositions: { [provider]: position },
424
+ });
425
+ }
426
+ }
427
+ // Score and rank
428
+ const totalProviders = succeeded.length || 1;
429
+ const scoredResults = Array.from(merged.values()).map((r) => {
430
+ const agreementBonus = (r.agreementCount / totalProviders) * 50;
431
+ const positions = Object.values(r.providerPositions);
432
+ const avgNorm = positions.reduce((s, p) => s + (1 - (p - 1) / maxResults), 0) / positions.length;
433
+ const positionScore = avgNorm * 30;
434
+ r.confidenceScore = Math.round(Math.min(100, agreementBonus + positionScore + 20));
435
+ return r;
436
+ });
437
+ scoredResults.sort((a, b) => b.confidenceScore - a.confidenceScore);
438
+ return {
439
+ results: scoredResults.slice(0, maxResults),
440
+ metadata: {
441
+ query,
442
+ timestamp: new Date().toISOString(),
443
+ totalResponseTime: Date.now() - startTime,
444
+ providersQueried: providers,
445
+ providersSucceeded: succeeded,
446
+ providersFailed: failed,
447
+ totalRawResults: allResults.length,
448
+ deduplicatedCount: merged.size,
449
+ },
450
+ };
451
+ }
306
452
  /**
307
453
  * Gets recommended search providers with signup information
308
454
  *
@@ -329,6 +475,12 @@ class SearchProviderService {
329
475
  freeQuota: '2,000 queries/month',
330
476
  description: 'Privacy-focused search API'
331
477
  },
478
+ {
479
+ name: 'SearXNG',
480
+ signupUrl: 'https://docs.searxng.org (self-hosted)',
481
+ freeQuota: 'Unlimited (self-hosted)',
482
+ description: 'Self-hosted metasearch engine aggregating 244+ search services'
483
+ },
332
484
  {
333
485
  name: 'DuckDuckGo',
334
486
  signupUrl: 'No signup required',
@@ -338,5 +490,4 @@ class SearchProviderService {
338
490
  ];
339
491
  }
340
492
  }
341
- exports.SearchProviderService = SearchProviderService;
342
493
  //# sourceMappingURL=searchProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"searchProvider.js","sourceRoot":"","sources":["../../src/services/searchProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"searchProvider.js","sourceRoot":"","sources":["../../src/services/searchProvider.ts"],"names":[],"mappings":"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"}
@@ -1,99 +1,57 @@
1
- import { ITool } from '@framers/agentos';
2
- import { SearchProviderService } from '../services/searchProvider';
3
1
  /**
4
- * Fact checking tool that verifies statements against web sources
2
+ * Fact Check Tool — verify statements against web sources.
5
3
  *
6
- * @class FactCheckTool
7
- * @implements {ITool}
4
+ * Updated to conform to AgentOS `ITool` (inputSchema + ToolExecutionContext).
8
5
  *
9
- * @example
10
- * ```typescript
11
- * const tool = new FactCheckTool(searchService);
12
- * const result = await tool.execute({
13
- * statement: 'The Earth orbits the Sun',
14
- * checkSources: true,
15
- * confidence: 'high'
16
- * });
17
- * ```
6
+ * @module @framers/agentos-ext-web-search
18
7
  */
19
- export declare class FactCheckTool implements ITool {
20
- private searchService;
21
- readonly id = "factCheck";
22
- readonly name = "Fact Check";
23
- readonly description = "Verify facts and statements against web sources";
24
- /**
25
- * Creates an instance of FactCheckTool
26
- * @param {SearchProviderService} searchService - The search provider service
27
- */
28
- constructor(searchService: SearchProviderService);
29
- /**
30
- * Executes fact checking on a statement
31
- *
32
- * @param {Object} input - The fact check parameters
33
- * @param {string} input.statement - The statement to fact-check
34
- * @param {boolean} [input.checkSources=true] - Whether to include source citations
35
- * @param {string} [input.confidence='medium'] - Required confidence level
36
- * @returns {Promise<{success: boolean, output?: any, error?: string}>} Fact check results
37
- */
38
- execute(input: {
39
- statement: string;
40
- checkSources?: boolean;
41
- confidence?: 'low' | 'medium' | 'high';
42
- }): Promise<{
43
- success: boolean;
44
- output?: any;
45
- error?: string;
8
+ import type { ITool, JSONSchemaObject, ToolExecutionContext, ToolExecutionResult } from '@framers/agentos';
9
+ import { SearchProviderService } from '../services/searchProvider.js';
10
+ export interface FactCheckInput {
11
+ statement: string;
12
+ checkSources?: boolean;
13
+ confidence?: 'low' | 'medium' | 'high';
14
+ multiSearch?: boolean;
15
+ }
16
+ export interface FactCheckOutput {
17
+ statement: string;
18
+ verdict: 'TRUE' | 'FALSE' | 'UNVERIFIED' | 'PARTIALLY TRUE';
19
+ confidence: number;
20
+ confidenceLevel: 'low' | 'medium' | 'high';
21
+ explanation: string;
22
+ sources: Array<{
23
+ title: string;
24
+ url: string;
25
+ snippet: string;
26
+ provider: string;
27
+ query: string;
46
28
  }>;
47
- /**
48
- * Generates queries for fact-checking a statement
49
- *
50
- * @private
51
- * @param {string} statement - The statement to check
52
- * @returns {string[]} Array of search queries
53
- */
29
+ contradictingSources: string[];
30
+ supportingSources: string[];
31
+ meetsRequiredConfidence: boolean;
32
+ timestamp: string;
33
+ }
34
+ export declare class FactCheckTool implements ITool<FactCheckInput, FactCheckOutput> {
35
+ private readonly searchService;
36
+ private readonly defaultMultiSearch;
37
+ readonly id = "fact-check-v1";
38
+ /** Tool call name used by the LLM / ToolExecutor. */
39
+ readonly name = "fact_check";
40
+ readonly displayName = "Fact Check";
41
+ readonly description = "Verify a statement against web sources and return a verdict with confidence.";
42
+ readonly category = "research";
43
+ readonly hasSideEffects = false;
44
+ readonly inputSchema: JSONSchemaObject;
45
+ readonly requiredCapabilities: string[];
46
+ constructor(searchService: SearchProviderService, defaultMultiSearch?: boolean);
47
+ execute(input: FactCheckInput, _context: ToolExecutionContext): Promise<ToolExecutionResult<FactCheckOutput>>;
48
+ validateArgs(input: Record<string, any>): {
49
+ isValid: boolean;
50
+ errors?: any[];
51
+ };
54
52
  private generateFactCheckQueries;
55
- /**
56
- * Analyzes search results to determine fact validity
57
- *
58
- * @private
59
- * @param {string} statement - Original statement
60
- * @param {any[]} searchResults - Search results to analyze
61
- * @param {string} requiredConfidence - Required confidence level
62
- * @returns {Object} Analysis results with verdict and confidence
63
- */
64
53
  private analyzeFactCheckResults;
65
- /**
66
- * Checks if confidence level meets requirement
67
- *
68
- * @private
69
- * @param {string} actual - Actual confidence level
70
- * @param {string} required - Required confidence level
71
- * @returns {boolean} True if requirement is met
72
- */
73
54
  private meetsConfidenceRequirement;
74
- /**
75
- * Compiles relevant sources from search results
76
- *
77
- * @private
78
- * @param {any[]} searchResults - Search results to compile from
79
- * @returns {any[]} Compiled sources with metadata
80
- */
81
55
  private compileSources;
82
- /**
83
- * Validates input parameters
84
- *
85
- * @param {any} input - Input to validate
86
- * @returns {{valid: boolean, errors: string[]}} Validation result
87
- */
88
- validate(input: any): {
89
- valid: boolean;
90
- errors: string[];
91
- };
92
- /**
93
- * Returns the JSON schema for the tool's input
94
- *
95
- * @returns {Object} JSON Schema object
96
- */
97
- getSchema(): any;
98
56
  }
99
57
  //# sourceMappingURL=factCheck.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factCheck.d.ts","sourceRoot":"","sources":["../../src/tools/factCheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,aAAc,YAAW,KAAK;IAS7B,OAAO,CAAC,aAAa;IARjC,SAAgB,EAAE,eAAe;IACjC,SAAgB,IAAI,gBAAgB;IACpC,SAAgB,WAAW,qDAAqD;IAEhF;;;OAGG;gBACiB,aAAa,EAAE,qBAAqB;IAExD;;;;;;;;OAQG;IACG,OAAO,CAAC,KAAK,EAAE;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,UAAU,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;KACxC,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAmD/D;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAUhC;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB;IA2F/B;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IAKlC;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAwBtB;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IA2B1D;;;;OAIG;IACH,SAAS,IAAI,GAAG;CAwBjB"}
1
+ {"version":3,"file":"factCheck.d.ts","sourceRoot":"","sources":["../../src/tools/factCheck.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE3G,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,gBAAgB,CAAC;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjG,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,uBAAuB,EAAE,OAAO,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,aAAc,YAAW,KAAK,CAAC,cAAc,EAAE,eAAe,CAAC;IA0CxE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IA1CrC,SAAgB,EAAE,mBAAmB;IACrC,qDAAqD;IACrD,SAAgB,IAAI,gBAAgB;IACpC,SAAgB,WAAW,gBAAgB;IAC3C,SAAgB,WAAW,kFAAkF;IAC7G,SAAgB,QAAQ,cAAc;IACtC,SAAgB,cAAc,SAAS;IAEvC,SAAgB,WAAW,EAAE,gBAAgB,CA4B3C;IAEF,SAAgB,oBAAoB,WAA6B;gBAG9C,aAAa,EAAE,qBAAqB,EACpC,kBAAkB,GAAE,OAAe;IAGhD,OAAO,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;IA8DnH,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE;IAgC9E,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,uBAAuB;IAwF/B,OAAO,CAAC,0BAA0B;IAKlC,OAAO,CAAC,cAAc;CAwBvB"}