@librechat/agents 2.4.31 → 2.4.33
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/cjs/events.cjs +3 -3
- package/dist/cjs/events.cjs.map +1 -1
- package/dist/cjs/graphs/Graph.cjs +2 -1
- package/dist/cjs/graphs/Graph.cjs.map +1 -1
- package/dist/cjs/main.cjs +5 -2
- package/dist/cjs/main.cjs.map +1 -1
- package/dist/cjs/messages/ids.cjs +23 -0
- package/dist/cjs/messages/ids.cjs.map +1 -0
- package/dist/cjs/splitStream.cjs +2 -1
- package/dist/cjs/splitStream.cjs.map +1 -1
- package/dist/cjs/stream.cjs +87 -154
- package/dist/cjs/stream.cjs.map +1 -1
- package/dist/cjs/tools/ToolNode.cjs +14 -3
- package/dist/cjs/tools/ToolNode.cjs.map +1 -1
- package/dist/cjs/tools/handlers.cjs +144 -0
- package/dist/cjs/tools/handlers.cjs.map +1 -0
- package/dist/cjs/tools/search/content.cjs +140 -0
- package/dist/cjs/tools/search/content.cjs.map +1 -0
- package/dist/cjs/tools/search/firecrawl.cjs +23 -41
- package/dist/cjs/tools/search/firecrawl.cjs.map +1 -1
- package/dist/cjs/tools/search/format.cjs +161 -74
- package/dist/cjs/tools/search/format.cjs.map +1 -1
- package/dist/cjs/tools/search/highlights.cjs +64 -12
- package/dist/cjs/tools/search/highlights.cjs.map +1 -1
- package/dist/cjs/tools/search/rerankers.cjs +43 -36
- package/dist/cjs/tools/search/rerankers.cjs.map +1 -1
- package/dist/cjs/tools/search/schema.cjs +70 -0
- package/dist/cjs/tools/search/schema.cjs.map +1 -0
- package/dist/cjs/tools/search/search.cjs +150 -69
- package/dist/cjs/tools/search/search.cjs.map +1 -1
- package/dist/cjs/tools/search/tool.cjs +247 -58
- package/dist/cjs/tools/search/tool.cjs.map +1 -1
- package/dist/cjs/tools/search/utils.cjs +66 -0
- package/dist/cjs/tools/search/utils.cjs.map +1 -0
- package/dist/esm/events.mjs +1 -1
- package/dist/esm/events.mjs.map +1 -1
- package/dist/esm/graphs/Graph.mjs +2 -1
- package/dist/esm/graphs/Graph.mjs.map +1 -1
- package/dist/esm/main.mjs +3 -1
- package/dist/esm/main.mjs.map +1 -1
- package/dist/esm/messages/ids.mjs +21 -0
- package/dist/esm/messages/ids.mjs.map +1 -0
- package/dist/esm/splitStream.mjs +2 -1
- package/dist/esm/splitStream.mjs.map +1 -1
- package/dist/esm/stream.mjs +87 -152
- package/dist/esm/stream.mjs.map +1 -1
- package/dist/esm/tools/ToolNode.mjs +14 -3
- package/dist/esm/tools/ToolNode.mjs.map +1 -1
- package/dist/esm/tools/handlers.mjs +141 -0
- package/dist/esm/tools/handlers.mjs.map +1 -0
- package/dist/esm/tools/search/content.mjs +119 -0
- package/dist/esm/tools/search/content.mjs.map +1 -0
- package/dist/esm/tools/search/firecrawl.mjs +24 -41
- package/dist/esm/tools/search/firecrawl.mjs.map +1 -1
- package/dist/esm/tools/search/format.mjs +161 -74
- package/dist/esm/tools/search/format.mjs.map +1 -1
- package/dist/esm/tools/search/highlights.mjs +64 -12
- package/dist/esm/tools/search/highlights.mjs.map +1 -1
- package/dist/esm/tools/search/rerankers.mjs +43 -36
- package/dist/esm/tools/search/rerankers.mjs.map +1 -1
- package/dist/esm/tools/search/schema.mjs +61 -0
- package/dist/esm/tools/search/schema.mjs.map +1 -0
- package/dist/esm/tools/search/search.mjs +150 -69
- package/dist/esm/tools/search/search.mjs.map +1 -1
- package/dist/esm/tools/search/tool.mjs +246 -57
- package/dist/esm/tools/search/tool.mjs.map +1 -1
- package/dist/esm/tools/search/utils.mjs +61 -0
- package/dist/esm/tools/search/utils.mjs.map +1 -0
- package/dist/types/graphs/Graph.d.ts +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/messages/ids.d.ts +3 -0
- package/dist/types/messages/index.d.ts +1 -0
- package/dist/types/stream.d.ts +0 -8
- package/dist/types/tools/ToolNode.d.ts +6 -0
- package/dist/types/tools/example.d.ts +23 -3
- package/dist/types/tools/handlers.d.ts +8 -0
- package/dist/types/tools/search/content.d.ts +4 -0
- package/dist/types/tools/search/firecrawl.d.ts +7 -86
- package/dist/types/tools/search/format.d.ts +4 -1
- package/dist/types/tools/search/highlights.d.ts +1 -1
- package/dist/types/tools/search/rerankers.d.ts +8 -4
- package/dist/types/tools/search/schema.d.ts +16 -0
- package/dist/types/tools/search/search.d.ts +2 -2
- package/dist/types/tools/search/test.d.ts +1 -0
- package/dist/types/tools/search/tool.d.ts +25 -4
- package/dist/types/tools/search/types.d.ts +443 -53
- package/dist/types/tools/search/utils.d.ts +10 -0
- package/package.json +9 -7
- package/src/events.ts +49 -15
- package/src/graphs/Graph.ts +6 -2
- package/src/index.ts +1 -0
- package/src/messages/ids.ts +26 -0
- package/src/messages/index.ts +1 -0
- package/src/scripts/search.ts +8 -3
- package/src/splitStream.test.ts +132 -71
- package/src/splitStream.ts +2 -1
- package/src/stream.ts +94 -183
- package/src/tools/ToolNode.ts +37 -14
- package/src/tools/handlers.ts +167 -0
- package/src/tools/search/content.test.ts +173 -0
- package/src/tools/search/content.ts +147 -0
- package/src/tools/search/firecrawl.ts +36 -148
- package/src/tools/search/format.ts +205 -74
- package/src/tools/search/highlights.ts +99 -16
- package/src/tools/search/output.md +2775 -0
- package/src/tools/search/rerankers.ts +57 -36
- package/src/tools/search/schema.ts +63 -0
- package/src/tools/search/search.ts +230 -117
- package/src/tools/search/test.html +884 -0
- package/src/tools/search/test.md +643 -0
- package/src/tools/search/test.ts +159 -0
- package/src/tools/search/tool.ts +363 -87
- package/src/tools/search/types.ts +503 -61
- package/src/tools/search/utils.ts +79 -0
- package/src/utils/llmConfig.ts +1 -1
|
@@ -1,83 +1,4 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
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;
|
|
@@ -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,28 @@
|
|
|
1
1
|
import type * as t from './types';
|
|
2
2
|
export declare abstract class BaseReranker {
|
|
3
3
|
protected apiKey: string | undefined;
|
|
4
|
-
|
|
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
8
|
protected logDocumentSamples(documents: string[]): void;
|
|
8
9
|
}
|
|
9
10
|
export declare class JinaReranker extends BaseReranker {
|
|
10
|
-
constructor({ apiKey }: {
|
|
11
|
+
constructor({ apiKey, logger, }: {
|
|
11
12
|
apiKey?: string;
|
|
13
|
+
logger?: t.Logger;
|
|
12
14
|
});
|
|
13
15
|
rerank(query: string, documents: string[], topK?: number): Promise<t.Highlight[]>;
|
|
14
16
|
}
|
|
15
17
|
export declare class CohereReranker extends BaseReranker {
|
|
16
|
-
constructor({ apiKey }: {
|
|
18
|
+
constructor({ apiKey, logger, }: {
|
|
17
19
|
apiKey?: string;
|
|
20
|
+
logger?: t.Logger;
|
|
18
21
|
});
|
|
19
22
|
rerank(query: string, documents: string[], topK?: number): Promise<t.Highlight[]>;
|
|
20
23
|
}
|
|
21
24
|
export declare class InfinityReranker extends BaseReranker {
|
|
22
|
-
constructor();
|
|
25
|
+
constructor(logger?: t.Logger);
|
|
23
26
|
rerank(query: string, documents: string[], topK?: number): Promise<t.Highlight[]>;
|
|
24
27
|
}
|
|
25
28
|
/**
|
|
@@ -29,4 +32,5 @@ export declare const createReranker: (config: {
|
|
|
29
32
|
rerankerType: t.RerankerType;
|
|
30
33
|
jinaApiKey?: string;
|
|
31
34
|
cohereApiKey?: string;
|
|
35
|
+
logger?: t.Logger;
|
|
32
36
|
}) => 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: (
|
|
4
|
+
getSources: (params: t.GetSourcesParams) => Promise<t.SearchResult>;
|
|
5
5
|
};
|
|
6
6
|
export declare const createSourceProcessor: (config?: t.ProcessSourcesConfig, scraperInstance?: FirecrawlScraper) => {
|
|
7
|
-
processSources: (
|
|
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
|
-
|
|
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
|
-
|
|
12
|
-
|
|
28
|
+
date?: DATE_RANGE | undefined;
|
|
29
|
+
images?: boolean | undefined;
|
|
30
|
+
videos?: boolean | undefined;
|
|
31
|
+
news?: boolean | undefined;
|
|
32
|
+
country?: unknown;
|
|
33
|
+
}>>;
|