@librechat/agents 2.4.31 → 2.4.34

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.
Files changed (115) hide show
  1. package/dist/cjs/events.cjs +3 -3
  2. package/dist/cjs/events.cjs.map +1 -1
  3. package/dist/cjs/graphs/Graph.cjs +2 -1
  4. package/dist/cjs/graphs/Graph.cjs.map +1 -1
  5. package/dist/cjs/main.cjs +5 -2
  6. package/dist/cjs/main.cjs.map +1 -1
  7. package/dist/cjs/messages/ids.cjs +23 -0
  8. package/dist/cjs/messages/ids.cjs.map +1 -0
  9. package/dist/cjs/splitStream.cjs +2 -1
  10. package/dist/cjs/splitStream.cjs.map +1 -1
  11. package/dist/cjs/stream.cjs +87 -154
  12. package/dist/cjs/stream.cjs.map +1 -1
  13. package/dist/cjs/tools/ToolNode.cjs +14 -3
  14. package/dist/cjs/tools/ToolNode.cjs.map +1 -1
  15. package/dist/cjs/tools/handlers.cjs +144 -0
  16. package/dist/cjs/tools/handlers.cjs.map +1 -0
  17. package/dist/cjs/tools/search/content.cjs +140 -0
  18. package/dist/cjs/tools/search/content.cjs.map +1 -0
  19. package/dist/cjs/tools/search/firecrawl.cjs +23 -41
  20. package/dist/cjs/tools/search/firecrawl.cjs.map +1 -1
  21. package/dist/cjs/tools/search/format.cjs +161 -74
  22. package/dist/cjs/tools/search/format.cjs.map +1 -1
  23. package/dist/cjs/tools/search/highlights.cjs +64 -12
  24. package/dist/cjs/tools/search/highlights.cjs.map +1 -1
  25. package/dist/cjs/tools/search/rerankers.cjs +35 -50
  26. package/dist/cjs/tools/search/rerankers.cjs.map +1 -1
  27. package/dist/cjs/tools/search/schema.cjs +70 -0
  28. package/dist/cjs/tools/search/schema.cjs.map +1 -0
  29. package/dist/cjs/tools/search/search.cjs +153 -69
  30. package/dist/cjs/tools/search/search.cjs.map +1 -1
  31. package/dist/cjs/tools/search/tool.cjs +247 -58
  32. package/dist/cjs/tools/search/tool.cjs.map +1 -1
  33. package/dist/cjs/tools/search/utils.cjs +66 -0
  34. package/dist/cjs/tools/search/utils.cjs.map +1 -0
  35. package/dist/esm/events.mjs +1 -1
  36. package/dist/esm/events.mjs.map +1 -1
  37. package/dist/esm/graphs/Graph.mjs +2 -1
  38. package/dist/esm/graphs/Graph.mjs.map +1 -1
  39. package/dist/esm/main.mjs +3 -1
  40. package/dist/esm/main.mjs.map +1 -1
  41. package/dist/esm/messages/ids.mjs +21 -0
  42. package/dist/esm/messages/ids.mjs.map +1 -0
  43. package/dist/esm/splitStream.mjs +2 -1
  44. package/dist/esm/splitStream.mjs.map +1 -1
  45. package/dist/esm/stream.mjs +87 -152
  46. package/dist/esm/stream.mjs.map +1 -1
  47. package/dist/esm/tools/ToolNode.mjs +14 -3
  48. package/dist/esm/tools/ToolNode.mjs.map +1 -1
  49. package/dist/esm/tools/handlers.mjs +141 -0
  50. package/dist/esm/tools/handlers.mjs.map +1 -0
  51. package/dist/esm/tools/search/content.mjs +119 -0
  52. package/dist/esm/tools/search/content.mjs.map +1 -0
  53. package/dist/esm/tools/search/firecrawl.mjs +24 -41
  54. package/dist/esm/tools/search/firecrawl.mjs.map +1 -1
  55. package/dist/esm/tools/search/format.mjs +161 -74
  56. package/dist/esm/tools/search/format.mjs.map +1 -1
  57. package/dist/esm/tools/search/highlights.mjs +64 -12
  58. package/dist/esm/tools/search/highlights.mjs.map +1 -1
  59. package/dist/esm/tools/search/rerankers.mjs +35 -50
  60. package/dist/esm/tools/search/rerankers.mjs.map +1 -1
  61. package/dist/esm/tools/search/schema.mjs +61 -0
  62. package/dist/esm/tools/search/schema.mjs.map +1 -0
  63. package/dist/esm/tools/search/search.mjs +153 -69
  64. package/dist/esm/tools/search/search.mjs.map +1 -1
  65. package/dist/esm/tools/search/tool.mjs +246 -57
  66. package/dist/esm/tools/search/tool.mjs.map +1 -1
  67. package/dist/esm/tools/search/utils.mjs +61 -0
  68. package/dist/esm/tools/search/utils.mjs.map +1 -0
  69. package/dist/types/graphs/Graph.d.ts +1 -1
  70. package/dist/types/index.d.ts +1 -0
  71. package/dist/types/messages/ids.d.ts +3 -0
  72. package/dist/types/messages/index.d.ts +1 -0
  73. package/dist/types/stream.d.ts +0 -8
  74. package/dist/types/tools/ToolNode.d.ts +6 -0
  75. package/dist/types/tools/example.d.ts +23 -3
  76. package/dist/types/tools/handlers.d.ts +8 -0
  77. package/dist/types/tools/search/content.d.ts +4 -0
  78. package/dist/types/tools/search/firecrawl.d.ts +7 -86
  79. package/dist/types/tools/search/format.d.ts +4 -1
  80. package/dist/types/tools/search/highlights.d.ts +1 -1
  81. package/dist/types/tools/search/rerankers.d.ts +8 -5
  82. package/dist/types/tools/search/schema.d.ts +16 -0
  83. package/dist/types/tools/search/search.d.ts +2 -2
  84. package/dist/types/tools/search/test.d.ts +1 -0
  85. package/dist/types/tools/search/tool.d.ts +25 -4
  86. package/dist/types/tools/search/types.d.ts +443 -53
  87. package/dist/types/tools/search/utils.d.ts +10 -0
  88. package/package.json +9 -7
  89. package/src/events.ts +49 -15
  90. package/src/graphs/Graph.ts +6 -2
  91. package/src/index.ts +1 -0
  92. package/src/messages/ids.ts +26 -0
  93. package/src/messages/index.ts +1 -0
  94. package/src/scripts/search.ts +8 -3
  95. package/src/splitStream.test.ts +132 -71
  96. package/src/splitStream.ts +2 -1
  97. package/src/stream.ts +94 -183
  98. package/src/tools/ToolNode.ts +37 -14
  99. package/src/tools/handlers.ts +167 -0
  100. package/src/tools/search/content.test.ts +173 -0
  101. package/src/tools/search/content.ts +147 -0
  102. package/src/tools/search/firecrawl.ts +36 -148
  103. package/src/tools/search/format.ts +205 -74
  104. package/src/tools/search/highlights.ts +99 -16
  105. package/src/tools/search/output.md +2775 -0
  106. package/src/tools/search/rerankers.ts +50 -62
  107. package/src/tools/search/schema.ts +63 -0
  108. package/src/tools/search/search.ts +232 -116
  109. package/src/tools/search/test.html +884 -0
  110. package/src/tools/search/test.md +643 -0
  111. package/src/tools/search/test.ts +159 -0
  112. package/src/tools/search/tool.ts +363 -87
  113. package/src/tools/search/types.ts +503 -61
  114. package/src/tools/search/utils.ts +79 -0
  115. package/src/utils/llmConfig.ts +1 -1
@@ -1,83 +1,4 @@
1
- export interface FirecrawlScrapeOptions {
2
- formats?: string[];
3
- includeTags?: string[];
4
- excludeTags?: string[];
5
- headers?: Record<string, string>;
6
- waitFor?: number;
7
- timeout?: number;
8
- }
9
- interface ScrapeMetadata {
10
- sourceURL?: string;
11
- url?: string;
12
- scrapeId?: string;
13
- statusCode?: number;
14
- title?: string;
15
- description?: string;
16
- language?: string;
17
- favicon?: string;
18
- viewport?: string;
19
- robots?: string;
20
- 'theme-color'?: string;
21
- 'og:url'?: string;
22
- 'og:title'?: string;
23
- 'og:description'?: string;
24
- 'og:type'?: string;
25
- 'og:image'?: string;
26
- 'og:image:width'?: string;
27
- 'og:image:height'?: string;
28
- 'og:site_name'?: string;
29
- ogUrl?: string;
30
- ogTitle?: string;
31
- ogDescription?: string;
32
- ogImage?: string;
33
- ogSiteName?: string;
34
- 'article:author'?: string;
35
- 'article:published_time'?: string;
36
- 'article:modified_time'?: string;
37
- 'article:section'?: string;
38
- 'article:tag'?: string;
39
- 'article:publisher'?: string;
40
- publishedTime?: string;
41
- modifiedTime?: string;
42
- 'twitter:site'?: string;
43
- 'twitter:creator'?: string;
44
- 'twitter:card'?: string;
45
- 'twitter:image'?: string;
46
- 'twitter:dnt'?: string;
47
- 'twitter:app:name:iphone'?: string;
48
- 'twitter:app:id:iphone'?: string;
49
- 'twitter:app:url:iphone'?: string;
50
- 'twitter:app:name:ipad'?: string;
51
- 'twitter:app:id:ipad'?: string;
52
- 'twitter:app:url:ipad'?: string;
53
- 'twitter:app:name:googleplay'?: string;
54
- 'twitter:app:id:googleplay'?: string;
55
- 'twitter:app:url:googleplay'?: string;
56
- 'fb:app_id'?: string;
57
- 'al:ios:url'?: string;
58
- 'al:ios:app_name'?: string;
59
- 'al:ios:app_store_id'?: string;
60
- [key: string]: string | number | boolean | null | undefined;
61
- }
62
- export interface FirecrawlScrapeResponse {
63
- success: boolean;
64
- data?: {
65
- markdown?: string;
66
- html?: string;
67
- rawHtml?: string;
68
- screenshot?: string;
69
- links?: string[];
70
- metadata?: ScrapeMetadata;
71
- };
72
- error?: string;
73
- }
74
- export interface FirecrawlScraperConfig {
75
- apiKey?: string;
76
- apiUrl?: string;
77
- formats?: string[];
78
- timeout?: number;
79
- }
80
- export declare function getAttribution(link: string, metadata?: ScrapeMetadata): string | undefined;
1
+ import type * as t from './types';
81
2
  /**
82
3
  * Firecrawl scraper implementation
83
4
  * Uses the Firecrawl API to scrape web pages
@@ -87,31 +8,31 @@ export declare class FirecrawlScraper {
87
8
  private apiUrl;
88
9
  private defaultFormats;
89
10
  private timeout;
90
- constructor(config?: FirecrawlScraperConfig);
11
+ private logger;
12
+ constructor(config?: t.FirecrawlScraperConfig);
91
13
  /**
92
14
  * Scrape a single URL
93
15
  * @param url URL to scrape
94
16
  * @param options Scrape options
95
17
  * @returns Scrape response
96
18
  */
97
- scrapeUrl(url: string, options?: FirecrawlScrapeOptions): Promise<[string, FirecrawlScrapeResponse]>;
19
+ scrapeUrl(url: string, options?: t.FirecrawlScrapeOptions): Promise<[string, t.FirecrawlScrapeResponse]>;
98
20
  /**
99
21
  * Extract content from scrape response
100
22
  * @param response Scrape response
101
23
  * @returns Extracted content or empty string if not available
102
24
  */
103
- extractContent(response: FirecrawlScrapeResponse): string;
25
+ extractContent(response: t.FirecrawlScrapeResponse): [string, undefined | t.References];
104
26
  /**
105
27
  * Extract metadata from scrape response
106
28
  * @param response Scrape response
107
29
  * @returns Metadata object
108
30
  */
109
- extractMetadata(response: FirecrawlScrapeResponse): ScrapeMetadata;
31
+ extractMetadata(response: t.FirecrawlScrapeResponse): t.ScrapeMetadata;
110
32
  }
111
33
  /**
112
34
  * Create a Firecrawl scraper instance
113
35
  * @param config Scraper configuration
114
36
  * @returns Firecrawl scraper instance
115
37
  */
116
- export declare const createFirecrawlScraper: (config?: FirecrawlScraperConfig) => FirecrawlScraper;
117
- export {};
38
+ export declare const createFirecrawlScraper: (config?: t.FirecrawlScraperConfig) => FirecrawlScraper;
@@ -1,2 +1,5 @@
1
1
  import type * as t from './types';
2
- export declare function formatResultsForLLM(results: t.SearchResultData): string;
2
+ export declare function formatResultsForLLM(turn: number, results: t.SearchResultData): {
3
+ output: string;
4
+ references: t.ResultReference[];
5
+ };
@@ -8,6 +8,6 @@ import type * as t from './types';
8
8
  * @param searchResults - Search results object
9
9
  * @param mainExpandBy - Primary expansion size on each side (default: 300)
10
10
  * @param separatorExpandBy - Additional range to look for separators (default: 150)
11
- * @returns Copy of search results with expanded highlights
11
+ * @returns Copy of search results with expanded highlights and tracked references
12
12
  */
13
13
  export declare function expandHighlights(searchResults: t.SearchResultData, mainExpandBy?: number, separatorExpandBy?: number): t.SearchResultData;
@@ -1,25 +1,27 @@
1
1
  import type * as t from './types';
2
2
  export declare abstract class BaseReranker {
3
3
  protected apiKey: string | undefined;
4
- constructor();
4
+ protected logger: t.Logger;
5
+ constructor(logger?: t.Logger);
5
6
  abstract rerank(query: string, documents: string[], topK?: number): Promise<t.Highlight[]>;
6
7
  protected getDefaultRanking(documents: string[], topK: number): t.Highlight[];
7
- protected logDocumentSamples(documents: string[]): void;
8
8
  }
9
9
  export declare class JinaReranker extends BaseReranker {
10
- constructor({ apiKey }: {
10
+ constructor({ apiKey, logger, }: {
11
11
  apiKey?: string;
12
+ logger?: t.Logger;
12
13
  });
13
14
  rerank(query: string, documents: string[], topK?: number): Promise<t.Highlight[]>;
14
15
  }
15
16
  export declare class CohereReranker extends BaseReranker {
16
- constructor({ apiKey }: {
17
+ constructor({ apiKey, logger, }: {
17
18
  apiKey?: string;
19
+ logger?: t.Logger;
18
20
  });
19
21
  rerank(query: string, documents: string[], topK?: number): Promise<t.Highlight[]>;
20
22
  }
21
23
  export declare class InfinityReranker extends BaseReranker {
22
- constructor();
24
+ constructor(logger?: t.Logger);
23
25
  rerank(query: string, documents: string[], topK?: number): Promise<t.Highlight[]>;
24
26
  }
25
27
  /**
@@ -29,4 +31,5 @@ export declare const createReranker: (config: {
29
31
  rerankerType: t.RerankerType;
30
32
  jinaApiKey?: string;
31
33
  cohereApiKey?: string;
34
+ logger?: t.Logger;
32
35
  }) => BaseReranker | undefined;
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ export declare enum DATE_RANGE {
3
+ PAST_HOUR = "h",
4
+ PAST_24_HOURS = "d",
5
+ PAST_WEEK = "w",
6
+ PAST_MONTH = "m",
7
+ PAST_YEAR = "y"
8
+ }
9
+ export declare const DEFAULT_QUERY_DESCRIPTION: string;
10
+ export declare const DEFAULT_COUNTRY_DESCRIPTION: string;
11
+ export declare const querySchema: z.ZodString;
12
+ export declare const dateSchema: z.ZodOptional<z.ZodNativeEnum<typeof DATE_RANGE>>;
13
+ export declare const countrySchema: z.ZodOptional<z.ZodString>;
14
+ export declare const imagesSchema: z.ZodOptional<z.ZodBoolean>;
15
+ export declare const videosSchema: z.ZodOptional<z.ZodBoolean>;
16
+ export declare const newsSchema: z.ZodOptional<z.ZodBoolean>;
@@ -1,9 +1,9 @@
1
1
  import type * as t from './types';
2
2
  import { FirecrawlScraper } from './firecrawl';
3
3
  export declare const createSearchAPI: (config: t.SearchConfig) => {
4
- getSources: (query: string, numResults?: number, storedLocation?: string) => Promise<t.SearchResult>;
4
+ getSources: (params: t.GetSourcesParams) => Promise<t.SearchResult>;
5
5
  };
6
6
  export declare const createSourceProcessor: (config?: t.ProcessSourcesConfig, scraperInstance?: FirecrawlScraper) => {
7
- processSources: (result: t.SearchResult, numElements: number, query: string, proMode?: boolean) => Promise<t.SearchResultData>;
7
+ processSources: (fields: t.ProcessSourcesFields) => Promise<t.SearchResultData>;
8
8
  topResults: number;
9
9
  };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,12 +1,33 @@
1
1
  import { z } from 'zod';
2
2
  import { DynamicStructuredTool } from '@langchain/core/tools';
3
3
  import type * as t from './types';
4
- declare const SearchToolSchema: z.ZodObject<{
4
+ import { DATE_RANGE } from './schema';
5
+ /**
6
+ * Creates a search tool with a schema that dynamically includes the country field
7
+ * only when the searchProvider is 'serper'.
8
+ *
9
+ * @param config - The search tool configuration
10
+ * @returns A DynamicStructuredTool with a schema that depends on the searchProvider
11
+ */
12
+ export declare const createSearchTool: (config?: t.SearchToolConfig) => DynamicStructuredTool<z.ZodObject<{
5
13
  query: z.ZodString;
14
+ date: z.ZodOptional<z.ZodNativeEnum<typeof DATE_RANGE>>;
15
+ country?: z.ZodOptional<z.ZodString>;
16
+ images: z.ZodOptional<z.ZodBoolean>;
17
+ videos: z.ZodOptional<z.ZodBoolean>;
18
+ news: z.ZodOptional<z.ZodBoolean>;
6
19
  }, "strip", z.ZodTypeAny, {
7
20
  query: string;
21
+ date?: DATE_RANGE | undefined;
22
+ images?: boolean | undefined;
23
+ videos?: boolean | undefined;
24
+ news?: boolean | undefined;
25
+ country?: unknown;
8
26
  }, {
9
27
  query: string;
10
- }>;
11
- export declare const createSearchTool: (config?: t.SearchToolConfig) => DynamicStructuredTool<typeof SearchToolSchema>;
12
- export {};
28
+ date?: DATE_RANGE | undefined;
29
+ images?: boolean | undefined;
30
+ videos?: boolean | undefined;
31
+ news?: boolean | undefined;
32
+ country?: unknown;
33
+ }>>;