@langchain/core 1.0.0-alpha.5 → 1.0.0-alpha.7
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/LICENSE +6 -6
- package/dist/agents.d.ts.map +1 -1
- package/dist/caches/base.d.ts.map +1 -1
- package/dist/callbacks/base.d.ts.map +1 -1
- package/dist/callbacks/manager.cjs +9 -64
- package/dist/callbacks/manager.cjs.map +1 -1
- package/dist/callbacks/manager.d.cts +1 -23
- package/dist/callbacks/manager.d.cts.map +1 -1
- package/dist/callbacks/manager.d.ts +1 -23
- package/dist/callbacks/manager.d.ts.map +1 -1
- package/dist/callbacks/manager.js +10 -63
- package/dist/callbacks/manager.js.map +1 -1
- package/dist/chat_history.cjs +0 -4
- package/dist/chat_history.cjs.map +1 -1
- package/dist/chat_history.d.cts +1 -3
- package/dist/chat_history.d.cts.map +1 -1
- package/dist/chat_history.d.ts +1 -3
- package/dist/chat_history.d.ts.map +1 -1
- package/dist/chat_history.js +0 -4
- package/dist/chat_history.js.map +1 -1
- package/dist/document_loaders/base.cjs +1 -13
- package/dist/document_loaders/base.cjs.map +1 -1
- package/dist/document_loaders/base.d.cts +0 -9
- package/dist/document_loaders/base.d.cts.map +1 -1
- package/dist/document_loaders/base.d.ts +0 -9
- package/dist/document_loaders/base.d.ts.map +1 -1
- package/dist/document_loaders/base.js +1 -13
- package/dist/document_loaders/base.js.map +1 -1
- package/dist/document_loaders/langsmith.d.cts +1 -1
- package/dist/language_models/base.cjs.map +1 -1
- package/dist/language_models/base.d.cts +0 -16
- package/dist/language_models/base.d.cts.map +1 -1
- package/dist/language_models/base.d.ts +0 -16
- package/dist/language_models/base.d.ts.map +1 -1
- package/dist/language_models/base.js.map +1 -1
- package/dist/language_models/chat_models.cjs +1 -80
- package/dist/language_models/chat_models.cjs.map +1 -1
- package/dist/language_models/chat_models.d.cts +1 -53
- package/dist/language_models/chat_models.d.cts.map +1 -1
- package/dist/language_models/chat_models.d.ts +1 -53
- package/dist/language_models/chat_models.d.ts.map +1 -1
- package/dist/language_models/chat_models.js +2 -80
- package/dist/language_models/chat_models.js.map +1 -1
- package/dist/language_models/llms.cjs +0 -56
- package/dist/language_models/llms.cjs.map +1 -1
- package/dist/language_models/llms.d.cts +1 -43
- package/dist/language_models/llms.d.cts.map +1 -1
- package/dist/language_models/llms.d.ts +1 -43
- package/dist/language_models/llms.d.ts.map +1 -1
- package/dist/language_models/llms.js +0 -56
- package/dist/language_models/llms.js.map +1 -1
- package/dist/load/import_map.cjs +1 -7
- package/dist/load/import_map.cjs.map +1 -1
- package/dist/load/import_map.js +1 -7
- package/dist/load/import_map.js.map +1 -1
- package/dist/messages/ai.cjs +8 -4
- package/dist/messages/ai.cjs.map +1 -1
- package/dist/messages/ai.js +8 -4
- package/dist/messages/ai.js.map +1 -1
- package/dist/messages/base.cjs +1 -1
- package/dist/messages/base.cjs.map +1 -1
- package/dist/messages/base.d.cts +2 -2
- package/dist/messages/base.d.cts.map +1 -1
- package/dist/messages/base.d.ts +2 -2
- package/dist/messages/base.d.ts.map +1 -1
- package/dist/messages/base.js +1 -1
- package/dist/messages/base.js.map +1 -1
- package/dist/messages/block_translators/anthropic.cjs +191 -144
- package/dist/messages/block_translators/anthropic.cjs.map +1 -1
- package/dist/messages/block_translators/anthropic.js +191 -144
- package/dist/messages/block_translators/anthropic.js.map +1 -1
- package/dist/messages/block_translators/bedrock_converse.cjs +213 -0
- package/dist/messages/block_translators/bedrock_converse.cjs.map +1 -0
- package/dist/messages/block_translators/bedrock_converse.js +213 -0
- package/dist/messages/block_translators/bedrock_converse.js.map +1 -0
- package/dist/messages/block_translators/google_genai.cjs +73 -0
- package/dist/messages/block_translators/google_genai.cjs.map +1 -0
- package/dist/messages/block_translators/google_genai.js +73 -0
- package/dist/messages/block_translators/google_genai.js.map +1 -0
- package/dist/messages/block_translators/google_vertexai.cjs +74 -0
- package/dist/messages/block_translators/google_vertexai.cjs.map +1 -0
- package/dist/messages/block_translators/google_vertexai.js +74 -0
- package/dist/messages/block_translators/google_vertexai.js.map +1 -0
- package/dist/messages/block_translators/index.cjs +10 -1
- package/dist/messages/block_translators/index.cjs.map +1 -1
- package/dist/messages/block_translators/index.js +12 -3
- package/dist/messages/block_translators/index.js.map +1 -1
- package/dist/messages/block_translators/openai.cjs +78 -22
- package/dist/messages/block_translators/openai.cjs.map +1 -1
- package/dist/messages/block_translators/openai.js +78 -22
- package/dist/messages/block_translators/openai.js.map +1 -1
- package/dist/messages/block_translators/utils.cjs +4 -0
- package/dist/messages/block_translators/utils.cjs.map +1 -1
- package/dist/messages/block_translators/utils.js +4 -1
- package/dist/messages/block_translators/utils.js.map +1 -1
- package/dist/messages/content/index.cjs.map +1 -1
- package/dist/messages/content/index.d.cts +20 -1
- package/dist/messages/content/index.d.cts.map +1 -1
- package/dist/messages/content/index.d.ts +20 -1
- package/dist/messages/content/index.d.ts.map +1 -1
- package/dist/messages/content/index.js.map +1 -1
- package/dist/messages/content/tools.cjs +3 -4
- package/dist/messages/content/tools.cjs.map +1 -1
- package/dist/messages/content/tools.d.cts +22 -45
- package/dist/messages/content/tools.d.cts.map +1 -1
- package/dist/messages/content/tools.d.ts +22 -45
- package/dist/messages/content/tools.d.ts.map +1 -1
- package/dist/messages/content/tools.js +3 -4
- package/dist/messages/content/tools.js.map +1 -1
- package/dist/messages/index.cjs +4 -0
- package/dist/messages/index.cjs.map +1 -1
- package/dist/messages/index.d.cts +2 -2
- package/dist/messages/index.d.ts +2 -2
- package/dist/messages/index.js +4 -2
- package/dist/messages/index.js.map +1 -1
- package/dist/messages/message.cjs.map +1 -1
- package/dist/messages/message.d.cts +6 -6
- package/dist/messages/message.d.cts.map +1 -1
- package/dist/messages/message.d.ts +6 -6
- package/dist/messages/message.d.ts.map +1 -1
- package/dist/messages/message.js.map +1 -1
- package/dist/messages/metadata.cjs.map +1 -1
- package/dist/messages/metadata.d.cts +3 -0
- package/dist/messages/metadata.d.cts.map +1 -1
- package/dist/messages/metadata.d.ts +3 -0
- package/dist/messages/metadata.d.ts.map +1 -1
- package/dist/messages/metadata.js.map +1 -1
- package/dist/messages/tool.cjs +2 -0
- package/dist/messages/tool.cjs.map +1 -1
- package/dist/messages/tool.d.cts +5 -1
- package/dist/messages/tool.d.cts.map +1 -1
- package/dist/messages/tool.d.ts +5 -1
- package/dist/messages/tool.d.ts.map +1 -1
- package/dist/messages/tool.js +2 -0
- package/dist/messages/tool.js.map +1 -1
- package/dist/output_parsers/json.cjs +5 -0
- package/dist/output_parsers/json.cjs.map +1 -1
- package/dist/output_parsers/json.d.cts +2 -0
- package/dist/output_parsers/json.d.cts.map +1 -1
- package/dist/output_parsers/json.d.ts +2 -0
- package/dist/output_parsers/json.d.ts.map +1 -1
- package/dist/output_parsers/json.js +5 -0
- package/dist/output_parsers/json.js.map +1 -1
- package/dist/prompts/base.cjs +0 -36
- package/dist/prompts/base.cjs.map +1 -1
- package/dist/prompts/base.d.cts +0 -16
- package/dist/prompts/base.d.cts.map +1 -1
- package/dist/prompts/base.d.ts +0 -16
- package/dist/prompts/base.d.ts.map +1 -1
- package/dist/prompts/base.js +0 -36
- package/dist/prompts/base.js.map +1 -1
- package/dist/prompts/chat.cjs +1 -5
- package/dist/prompts/chat.cjs.map +1 -1
- package/dist/prompts/chat.d.cts +1 -4
- package/dist/prompts/chat.d.cts.map +1 -1
- package/dist/prompts/chat.d.ts +1 -4
- package/dist/prompts/chat.d.ts.map +1 -1
- package/dist/prompts/chat.js +1 -5
- package/dist/prompts/chat.js.map +1 -1
- package/dist/prompts/dict.d.cts +1 -1
- package/dist/prompts/dict.d.ts +1 -1
- package/dist/prompts/few_shot.d.cts +2 -2
- package/dist/prompts/few_shot.d.ts +2 -2
- package/dist/prompts/image.d.cts +1 -1
- package/dist/prompts/image.d.ts +1 -1
- package/dist/prompts/index.d.cts +2 -2
- package/dist/prompts/index.d.ts +2 -2
- package/dist/prompts/pipeline.d.cts +1 -1
- package/dist/prompts/pipeline.d.ts +1 -1
- package/dist/prompts/prompt.d.cts +2 -2
- package/dist/prompts/prompt.d.ts +2 -2
- package/dist/retrievers/index.cjs +3 -18
- package/dist/retrievers/index.cjs.map +1 -1
- package/dist/retrievers/index.d.cts +2 -27
- package/dist/retrievers/index.d.cts.map +1 -1
- package/dist/retrievers/index.d.ts +2 -27
- package/dist/retrievers/index.d.ts.map +1 -1
- package/dist/retrievers/index.js +3 -18
- package/dist/retrievers/index.js.map +1 -1
- package/dist/runnables/base.cjs +24 -63
- package/dist/runnables/base.cjs.map +1 -1
- package/dist/runnables/base.d.cts +10 -39
- package/dist/runnables/base.d.cts.map +1 -1
- package/dist/runnables/base.d.ts +10 -39
- package/dist/runnables/base.d.ts.map +1 -1
- package/dist/runnables/base.js +24 -63
- package/dist/runnables/base.js.map +1 -1
- package/dist/runnables/graph.cjs +1 -1
- package/dist/runnables/graph.cjs.map +1 -1
- package/dist/runnables/graph.js +2 -2
- package/dist/runnables/graph.js.map +1 -1
- package/dist/runnables/graph_mermaid.cjs +1 -10
- package/dist/runnables/graph_mermaid.cjs.map +1 -1
- package/dist/runnables/graph_mermaid.js +1 -10
- package/dist/runnables/graph_mermaid.js.map +1 -1
- package/dist/runnables/history.cjs +1 -1
- package/dist/runnables/history.cjs.map +1 -1
- package/dist/runnables/history.d.cts +2 -2
- package/dist/runnables/history.d.cts.map +1 -1
- package/dist/runnables/history.d.ts +2 -2
- package/dist/runnables/history.d.ts.map +1 -1
- package/dist/runnables/history.js +1 -1
- package/dist/runnables/history.js.map +1 -1
- package/dist/stores.cjs.map +1 -1
- package/dist/stores.d.cts +3 -29
- package/dist/stores.d.cts.map +1 -1
- package/dist/stores.d.ts +3 -29
- package/dist/stores.d.ts.map +1 -1
- package/dist/stores.js.map +1 -1
- package/dist/tools/index.cjs +12 -4
- package/dist/tools/index.cjs.map +1 -1
- package/dist/tools/index.js +12 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/types.cjs.map +1 -1
- package/dist/tools/types.d.cts +4 -0
- package/dist/tools/types.d.cts.map +1 -1
- package/dist/tools/types.d.ts +4 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js.map +1 -1
- package/dist/tracers/base.cjs +1 -1
- package/dist/tracers/base.cjs.map +1 -1
- package/dist/tracers/base.d.cts +1 -1
- package/dist/tracers/base.js +2 -2
- package/dist/tracers/base.js.map +1 -1
- package/dist/tracers/log_stream.d.cts +1 -1
- package/dist/tracers/log_stream.d.ts +1 -1
- package/dist/tracers/tracer_langchain.cjs +1 -0
- package/dist/tracers/tracer_langchain.cjs.map +1 -1
- package/dist/tracers/tracer_langchain.d.cts +2 -2
- package/dist/tracers/tracer_langchain.js +1 -0
- package/dist/tracers/tracer_langchain.js.map +1 -1
- package/dist/utils/env.cjs +1 -9
- package/dist/utils/env.cjs.map +1 -1
- package/dist/utils/env.d.cts +2 -6
- package/dist/utils/env.d.cts.map +1 -1
- package/dist/utils/env.d.ts +2 -6
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/utils/env.js +2 -9
- package/dist/utils/env.js.map +1 -1
- package/dist/utils/testing/message_history.cjs +1 -1
- package/dist/utils/testing/message_history.cjs.map +1 -1
- package/dist/utils/testing/message_history.d.cts +1 -1
- package/dist/utils/testing/message_history.d.cts.map +1 -1
- package/dist/utils/testing/message_history.d.ts +1 -1
- package/dist/utils/testing/message_history.d.ts.map +1 -1
- package/dist/utils/testing/message_history.js +1 -1
- package/dist/utils/testing/message_history.js.map +1 -1
- package/dist/utils/types/index.cjs +8 -0
- package/dist/utils/types/index.d.cts +2 -2
- package/dist/utils/types/index.d.ts +2 -2
- package/dist/utils/types/index.js +6 -2
- package/dist/utils/types/zod.cjs +62 -3
- package/dist/utils/types/zod.cjs.map +1 -1
- package/dist/utils/types/zod.d.cts +28 -1
- package/dist/utils/types/zod.d.cts.map +1 -1
- package/dist/utils/types/zod.d.ts +28 -1
- package/dist/utils/types/zod.d.ts.map +1 -1
- package/dist/utils/types/zod.js +59 -4
- package/dist/utils/types/zod.js.map +1 -1
- package/package.json +1 -37
- package/dist/runnables/remote.cjs +0 -399
- package/dist/runnables/remote.cjs.map +0 -1
- package/dist/runnables/remote.d.cts +0 -73
- package/dist/runnables/remote.d.cts.map +0 -1
- package/dist/runnables/remote.d.ts +0 -73
- package/dist/runnables/remote.d.ts.map +0 -1
- package/dist/runnables/remote.js +0 -393
- package/dist/runnables/remote.js.map +0 -1
- package/dist/tracers/initialize.cjs +0 -46
- package/dist/tracers/initialize.cjs.map +0 -1
- package/dist/tracers/initialize.d.cts +0 -26
- package/dist/tracers/initialize.d.cts.map +0 -1
- package/dist/tracers/initialize.d.ts +0 -26
- package/dist/tracers/initialize.d.ts.map +0 -1
- package/dist/tracers/initialize.js +0 -39
- package/dist/tracers/initialize.js.map +0 -1
- package/dist/tracers/tracer_langchain_v1.cjs +0 -168
- package/dist/tracers/tracer_langchain_v1.cjs.map +0 -1
- package/dist/tracers/tracer_langchain_v1.d.cts +0 -64
- package/dist/tracers/tracer_langchain_v1.d.cts.map +0 -1
- package/dist/tracers/tracer_langchain_v1.d.ts +0 -64
- package/dist/tracers/tracer_langchain_v1.d.ts.map +0 -1
- package/dist/tracers/tracer_langchain_v1.js +0 -162
- package/dist/tracers/tracer_langchain_v1.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DocumentInterface } from "../documents/document.js";
|
|
2
|
-
import {
|
|
2
|
+
import { CallbackManagerForRetrieverRun, Callbacks } from "../callbacks/manager.js";
|
|
3
3
|
import { RunnableConfig, RunnableInterface } from "../runnables/types.js";
|
|
4
4
|
import { Runnable } from "../runnables/base.js";
|
|
5
5
|
|
|
@@ -43,19 +43,7 @@ interface BaseRetrieverInput {
|
|
|
43
43
|
*/
|
|
44
44
|
interface BaseRetrieverInterface<
|
|
45
45
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
46
|
-
Metadata extends Record<string, any> = Record<string, any>> extends RunnableInterface<string, DocumentInterface<Metadata>[]> {
|
|
47
|
-
/**
|
|
48
|
-
* Retrieves documents relevant to a given query, allowing optional
|
|
49
|
-
* configurations for customization.
|
|
50
|
-
*
|
|
51
|
-
* @param query - A string representing the query to search for relevant documents.
|
|
52
|
-
* @param config - (optional) Configuration options for the retrieval process,
|
|
53
|
-
* which may include callbacks and additional context settings.
|
|
54
|
-
* @returns A promise that resolves to an array of `DocumentInterface` instances,
|
|
55
|
-
* each containing metadata specified by the `Metadata` type parameter.
|
|
56
|
-
*/
|
|
57
|
-
getRelevantDocuments(query: string, config?: Callbacks | BaseCallbackConfig): Promise<DocumentInterface<Metadata>[]>;
|
|
58
|
-
}
|
|
46
|
+
Metadata extends Record<string, any> = Record<string, any>> extends RunnableInterface<string, DocumentInterface<Metadata>[]> {}
|
|
59
47
|
/**
|
|
60
48
|
* Abstract base class for a document retrieval system, designed to
|
|
61
49
|
* process string queries and return the most relevant documents from a source.
|
|
@@ -125,19 +113,6 @@ Metadata extends Record<string, any> = Record<string, any>> extends Runnable<str
|
|
|
125
113
|
* representing the most relevant documents to the query.
|
|
126
114
|
*/
|
|
127
115
|
invoke(input: string, options?: RunnableConfig): Promise<DocumentInterface<Metadata>[]>;
|
|
128
|
-
/**
|
|
129
|
-
* @deprecated Use .invoke() instead. Will be removed in 0.3.0.
|
|
130
|
-
*
|
|
131
|
-
* Main method used to retrieve relevant documents. It takes a query
|
|
132
|
-
* string and an optional configuration object, and returns a promise that
|
|
133
|
-
* resolves to an array of `Document` objects. This method handles the
|
|
134
|
-
* retrieval process, including starting and ending callbacks, and error
|
|
135
|
-
* handling.
|
|
136
|
-
* @param query The query string to retrieve relevant documents for.
|
|
137
|
-
* @param config Optional configuration object for the retrieval process.
|
|
138
|
-
* @returns A promise that resolves to an array of `Document` objects.
|
|
139
|
-
*/
|
|
140
|
-
getRelevantDocuments(query: string, config?: Callbacks | BaseCallbackConfig): Promise<DocumentInterface<Metadata>[]>;
|
|
141
116
|
}
|
|
142
117
|
//#endregion
|
|
143
118
|
export { BaseRetriever, BaseRetrieverInput, BaseRetrieverInterface };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["CallbackManagerForRetrieverRun","Callbacks","DocumentInterface","Runnable","RunnableInterface","RunnableConfig","BaseRetrieverInput","Record","BaseRetrieverInterface","Metadata","BaseRetriever","Promise"],"sources":["../../src/retrievers/index.d.ts"],"sourcesContent":["import { CallbackManagerForRetrieverRun, Callbacks } from \"../callbacks/manager.js\";\nimport type { DocumentInterface } from \"../documents/document.js\";\nimport { Runnable, type RunnableInterface } from \"../runnables/base.js\";\nimport { RunnableConfig } from \"../runnables/config.js\";\n/**\n * Input configuration options for initializing a retriever that extends\n * the `BaseRetriever` class. This interface provides base properties\n * common to all retrievers, allowing customization of callback functions,\n * tagging, metadata, and logging verbosity.\n *\n * Fields:\n * - `callbacks` (optional): An array of callback functions that handle various\n * events during retrieval, such as logging, error handling, or progress updates.\n *\n * - `tags` (optional): An array of strings used to add contextual tags to\n * retrieval operations, allowing for easier categorization and tracking.\n *\n * - `metadata` (optional): A record of key-value pairs to store additional\n * contextual information for retrieval operations, which can be useful\n * for logging or auditing purposes.\n *\n * - `verbose` (optional): A boolean flag that, if set to `true`, enables\n * detailed logging and output during the retrieval process. Defaults to `false`.\n */\nexport interface BaseRetrieverInput {\n callbacks?: Callbacks;\n tags?: string[];\n metadata?: Record<string, unknown>;\n verbose?: boolean;\n}\n/**\n * Interface for a base retriever that defines core functionality for\n * retrieving relevant documents from a source based on a query.\n *\n * The `BaseRetrieverInterface` standardizes the `getRelevantDocuments` method,\n * enabling retrieval of documents that match the query criteria.\n *\n * @template Metadata - The type of metadata associated with each document,\n * defaulting to `Record<string, any>`.\n */\nexport interface BaseRetrieverInterface<\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nMetadata extends Record<string, any> = Record<string, any>> extends RunnableInterface<string, DocumentInterface<Metadata>[]> {\n}\n/**\n * Abstract base class for a document retrieval system, designed to\n * process string queries and return the most relevant documents from a source.\n *\n * `BaseRetriever` provides common properties and methods for derived retrievers,\n * such as callbacks, tagging, and verbose logging. Custom retrieval systems\n * should extend this class and implement `_getRelevantDocuments` to define\n * the specific retrieval logic.\n *\n * @template Metadata - The type of metadata associated with each document,\n * defaulting to `Record<string, any>`.\n */\nexport declare abstract class BaseRetriever<\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nMetadata extends Record<string, any> = Record<string, any>> extends Runnable<string, DocumentInterface<Metadata>[]> implements BaseRetrieverInterface {\n /**\n * Optional callbacks to handle various events in the retrieval process.\n */\n callbacks?: Callbacks;\n /**\n * Tags to label or categorize the retrieval operation.\n */\n tags?: string[];\n /**\n * Metadata to provide additional context or information about the retrieval\n * operation.\n */\n metadata?: Record<string, unknown>;\n /**\n * If set to `true`, enables verbose logging for the retrieval process.\n */\n verbose?: boolean;\n /**\n * Constructs a new `BaseRetriever` instance with optional configuration fields.\n *\n * @param fields - Optional input configuration that can include `callbacks`,\n * `tags`, `metadata`, and `verbose` settings for custom retriever behavior.\n */\n constructor(fields?: BaseRetrieverInput);\n /**\n * TODO: This should be an abstract method, but we'd like to avoid breaking\n * changes to people currently using subclassed custom retrievers.\n * Change it on next major release.\n */\n /**\n * Placeholder method for retrieving relevant documents based on a query.\n *\n * This method is intended to be implemented by subclasses and will be\n * converted to an abstract method in the next major release. Currently, it\n * throws an error if not implemented, ensuring that custom retrievers define\n * the specific retrieval logic.\n *\n * @param _query - The query string used to search for relevant documents.\n * @param _callbacks - (optional) Callback manager for managing callbacks\n * during retrieval.\n * @returns A promise resolving to an array of `DocumentInterface` instances relevant to the query.\n * @throws {Error} Throws an error indicating the method is not implemented.\n */\n _getRelevantDocuments(_query: string, _callbacks?: CallbackManagerForRetrieverRun): Promise<DocumentInterface<Metadata>[]>;\n /**\n * Executes a retrieval operation.\n *\n * @param input - The query string used to search for relevant documents.\n * @param options - (optional) Configuration options for the retrieval run,\n * which may include callbacks, tags, and metadata.\n * @returns A promise that resolves to an array of `DocumentInterface` instances\n * representing the most relevant documents to the query.\n */\n invoke(input: string, options?: RunnableConfig): Promise<DocumentInterface<Metadata>[]>;\n}\n"],"mappings":";;;;;;;;;AAwBA;;;;AAGqB;AAarB;;;;;;;AAEqF;AAcrF;;;;;AAEqFE,UAlCpEI,kBAAAA,CAkCoEJ;EAAiB,SAItFD,CAAAA,EArCAA,SAqCAA;EAAS,IASVM,CAAAA,EAAAA,MAAAA,EAAAA;EAAM,QAWID,CAAAA,EAvDVC,MAuDUD,CAAAA,MAAAA,EAAAA,OAAAA,CAAAA;EAAkB,OAoBYN,CAAAA,EAAAA,OAAAA;;;;;;;;;;AA5C8F;;UAlBpIQ;;iBAEAD,sBAAsBA,6BAA6BH,0BAA0BF,kBAAkBO;;;;;;;;;;;;;uBAclFC;;iBAEbH,sBAAsBA,6BAA6BJ,iBAAiBD,kBAAkBO,wBAAwBD;;;;cAI/GP;;;;;;;;;aASDM;;;;;;;;;;;uBAWUD;;;;;;;;;;;;;;;;;;;;qDAoB8BN,iCAAiCW,QAAQT,kBAAkBO;;;;;;;;;;kCAU9EJ,iBAAiBM,QAAQT,kBAAkBO"}
|
package/dist/retrievers/index.js
CHANGED
|
@@ -81,26 +81,11 @@ var BaseRetriever = class extends Runnable {
|
|
|
81
81
|
* representing the most relevant documents to the query.
|
|
82
82
|
*/
|
|
83
83
|
async invoke(input, options) {
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* @deprecated Use .invoke() instead. Will be removed in 0.3.0.
|
|
88
|
-
*
|
|
89
|
-
* Main method used to retrieve relevant documents. It takes a query
|
|
90
|
-
* string and an optional configuration object, and returns a promise that
|
|
91
|
-
* resolves to an array of `Document` objects. This method handles the
|
|
92
|
-
* retrieval process, including starting and ending callbacks, and error
|
|
93
|
-
* handling.
|
|
94
|
-
* @param query The query string to retrieve relevant documents for.
|
|
95
|
-
* @param config Optional configuration object for the retrieval process.
|
|
96
|
-
* @returns A promise that resolves to an array of `Document` objects.
|
|
97
|
-
*/
|
|
98
|
-
async getRelevantDocuments(query, config) {
|
|
99
|
-
const parsedConfig = ensureConfig(parseCallbackConfigArg(config));
|
|
84
|
+
const parsedConfig = ensureConfig(parseCallbackConfigArg(options));
|
|
100
85
|
const callbackManager_ = await CallbackManager.configure(parsedConfig.callbacks, this.callbacks, parsedConfig.tags, this.tags, parsedConfig.metadata, this.metadata, { verbose: this.verbose });
|
|
101
|
-
const runManager = await callbackManager_?.handleRetrieverStart(this.toJSON(),
|
|
86
|
+
const runManager = await callbackManager_?.handleRetrieverStart(this.toJSON(), input, parsedConfig.runId, void 0, void 0, void 0, parsedConfig.runName);
|
|
102
87
|
try {
|
|
103
|
-
const results = await this._getRelevantDocuments(
|
|
88
|
+
const results = await this._getRelevantDocuments(input, runManager);
|
|
104
89
|
await runManager?.handleRetrieverEnd(results);
|
|
105
90
|
return results;
|
|
106
91
|
} catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["fields?: BaseRetrieverInput","_query: string","_callbacks?: CallbackManagerForRetrieverRun","input: string","options?: RunnableConfig"
|
|
1
|
+
{"version":3,"file":"index.js","names":["fields?: BaseRetrieverInput","_query: string","_callbacks?: CallbackManagerForRetrieverRun","input: string","options?: RunnableConfig"],"sources":["../../src/retrievers/index.ts"],"sourcesContent":["import {\n CallbackManager,\n CallbackManagerForRetrieverRun,\n Callbacks,\n parseCallbackConfigArg,\n} from \"../callbacks/manager.js\";\nimport type { DocumentInterface } from \"../documents/document.js\";\nimport { Runnable, type RunnableInterface } from \"../runnables/base.js\";\nimport { RunnableConfig, ensureConfig } from \"../runnables/config.js\";\n\n/**\n * Input configuration options for initializing a retriever that extends\n * the `BaseRetriever` class. This interface provides base properties\n * common to all retrievers, allowing customization of callback functions,\n * tagging, metadata, and logging verbosity.\n *\n * Fields:\n * - `callbacks` (optional): An array of callback functions that handle various\n * events during retrieval, such as logging, error handling, or progress updates.\n *\n * - `tags` (optional): An array of strings used to add contextual tags to\n * retrieval operations, allowing for easier categorization and tracking.\n *\n * - `metadata` (optional): A record of key-value pairs to store additional\n * contextual information for retrieval operations, which can be useful\n * for logging or auditing purposes.\n *\n * - `verbose` (optional): A boolean flag that, if set to `true`, enables\n * detailed logging and output during the retrieval process. Defaults to `false`.\n */\nexport interface BaseRetrieverInput {\n callbacks?: Callbacks;\n tags?: string[];\n metadata?: Record<string, unknown>;\n verbose?: boolean;\n}\n\n/**\n * Interface for a base retriever that defines core functionality for\n * retrieving relevant documents from a source based on a query.\n *\n * The `BaseRetrieverInterface` standardizes the `getRelevantDocuments` method,\n * enabling retrieval of documents that match the query criteria.\n *\n * @template Metadata - The type of metadata associated with each document,\n * defaulting to `Record<string, any>`.\n */\nexport interface BaseRetrieverInterface<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Metadata extends Record<string, any> = Record<string, any>\n> extends RunnableInterface<string, DocumentInterface<Metadata>[]> {}\n\n/**\n * Abstract base class for a document retrieval system, designed to\n * process string queries and return the most relevant documents from a source.\n *\n * `BaseRetriever` provides common properties and methods for derived retrievers,\n * such as callbacks, tagging, and verbose logging. Custom retrieval systems\n * should extend this class and implement `_getRelevantDocuments` to define\n * the specific retrieval logic.\n *\n * @template Metadata - The type of metadata associated with each document,\n * defaulting to `Record<string, any>`.\n */\nexport abstract class BaseRetriever<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Metadata extends Record<string, any> = Record<string, any>\n >\n extends Runnable<string, DocumentInterface<Metadata>[]>\n implements BaseRetrieverInterface\n{\n /**\n * Optional callbacks to handle various events in the retrieval process.\n */\n callbacks?: Callbacks;\n\n /**\n * Tags to label or categorize the retrieval operation.\n */\n tags?: string[];\n\n /**\n * Metadata to provide additional context or information about the retrieval\n * operation.\n */\n metadata?: Record<string, unknown>;\n\n /**\n * If set to `true`, enables verbose logging for the retrieval process.\n */\n verbose?: boolean;\n\n /**\n * Constructs a new `BaseRetriever` instance with optional configuration fields.\n *\n * @param fields - Optional input configuration that can include `callbacks`,\n * `tags`, `metadata`, and `verbose` settings for custom retriever behavior.\n */\n constructor(fields?: BaseRetrieverInput) {\n super(fields);\n this.callbacks = fields?.callbacks;\n this.tags = fields?.tags ?? [];\n this.metadata = fields?.metadata ?? {};\n this.verbose = fields?.verbose ?? false;\n }\n\n /**\n * TODO: This should be an abstract method, but we'd like to avoid breaking\n * changes to people currently using subclassed custom retrievers.\n * Change it on next major release.\n */\n /**\n * Placeholder method for retrieving relevant documents based on a query.\n *\n * This method is intended to be implemented by subclasses and will be\n * converted to an abstract method in the next major release. Currently, it\n * throws an error if not implemented, ensuring that custom retrievers define\n * the specific retrieval logic.\n *\n * @param _query - The query string used to search for relevant documents.\n * @param _callbacks - (optional) Callback manager for managing callbacks\n * during retrieval.\n * @returns A promise resolving to an array of `DocumentInterface` instances relevant to the query.\n * @throws {Error} Throws an error indicating the method is not implemented.\n */\n _getRelevantDocuments(\n _query: string,\n _callbacks?: CallbackManagerForRetrieverRun\n ): Promise<DocumentInterface<Metadata>[]> {\n throw new Error(\"Not implemented!\");\n }\n\n /**\n * Executes a retrieval operation.\n *\n * @param input - The query string used to search for relevant documents.\n * @param options - (optional) Configuration options for the retrieval run,\n * which may include callbacks, tags, and metadata.\n * @returns A promise that resolves to an array of `DocumentInterface` instances\n * representing the most relevant documents to the query.\n */\n async invoke(\n input: string,\n options?: RunnableConfig\n ): Promise<DocumentInterface<Metadata>[]> {\n const parsedConfig = ensureConfig(parseCallbackConfigArg(options));\n const callbackManager_ = await CallbackManager.configure(\n parsedConfig.callbacks,\n this.callbacks,\n parsedConfig.tags,\n this.tags,\n parsedConfig.metadata,\n this.metadata,\n { verbose: this.verbose }\n );\n const runManager = await callbackManager_?.handleRetrieverStart(\n this.toJSON(),\n input,\n parsedConfig.runId,\n undefined,\n undefined,\n undefined,\n parsedConfig.runName\n );\n try {\n const results = await this._getRelevantDocuments(input, runManager);\n await runManager?.handleRetrieverEnd(results);\n return results;\n } catch (error) {\n await runManager?.handleRetrieverError(error);\n throw error;\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAgEA,IAAsB,gBAAtB,cAIU,SAEV;;;;CAIE;;;;CAKA;;;;;CAMA;;;;CAKA;;;;;;;CAQA,YAAYA,QAA6B;EACvC,MAAM,OAAO;EACb,KAAK,YAAY,QAAQ;EACzB,KAAK,OAAO,QAAQ,QAAQ,CAAE;EAC9B,KAAK,WAAW,QAAQ,YAAY,CAAE;EACtC,KAAK,UAAU,QAAQ,WAAW;CACnC;;;;;;;;;;;;;;;;;;;;CAqBD,sBACEC,QACAC,YACwC;AACxC,QAAM,IAAI,MAAM;CACjB;;;;;;;;;;CAWD,MAAM,OACJC,OACAC,SACwC;EACxC,MAAM,eAAe,aAAa,uBAAuB,QAAQ,CAAC;EAClE,MAAM,mBAAmB,MAAM,gBAAgB,UAC7C,aAAa,WACb,KAAK,WACL,aAAa,MACb,KAAK,MACL,aAAa,UACb,KAAK,UACL,EAAE,SAAS,KAAK,QAAS,EAC1B;EACD,MAAM,aAAa,MAAM,kBAAkB,qBACzC,KAAK,QAAQ,EACb,OACA,aAAa,OACb,QACA,QACA,QACA,aAAa,QACd;AACD,MAAI;GACF,MAAM,UAAU,MAAM,KAAK,sBAAsB,OAAO,WAAW;GACnE,MAAM,YAAY,mBAAmB,QAAQ;AAC7C,UAAO;EACR,SAAQ,OAAO;GACd,MAAM,YAAY,qBAAqB,MAAM;AAC7C,SAAM;EACP;CACF;AACF"}
|
package/dist/runnables/base.cjs
CHANGED
|
@@ -36,29 +36,6 @@ var Runnable = class extends require_load_serializable.Serializable {
|
|
|
36
36
|
return suffix ? `${name}${suffix}` : name;
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
|
-
* Bind arguments to a Runnable, returning a new Runnable.
|
|
40
|
-
* @param kwargs
|
|
41
|
-
* @returns A new RunnableBinding that, when invoked, will apply the bound args.
|
|
42
|
-
*
|
|
43
|
-
* @deprecated Use {@link withConfig} instead. This will be removed in the next breaking release.
|
|
44
|
-
*/
|
|
45
|
-
bind(kwargs) {
|
|
46
|
-
return new RunnableBinding({
|
|
47
|
-
bound: this,
|
|
48
|
-
kwargs,
|
|
49
|
-
config: {}
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Return a new Runnable that maps a list of inputs to a list of outputs,
|
|
54
|
-
* by calling invoke() with each input.
|
|
55
|
-
*
|
|
56
|
-
* @deprecated This will be removed in the next breaking release.
|
|
57
|
-
*/
|
|
58
|
-
map() {
|
|
59
|
-
return new RunnableEach({ bound: this });
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
39
|
* Add retry logic to an existing runnable.
|
|
63
40
|
* @param fields.stopAfterAttempt The number of attempts to retry.
|
|
64
41
|
* @param fields.onFailedAttempt A function that is called when a retry fails.
|
|
@@ -224,6 +201,10 @@ var Runnable = class extends require_load_serializable.Serializable {
|
|
|
224
201
|
await Promise.all(runManagers.map((runManager) => runManager?.handleChainEnd(_coerceToDict(outputs, "output"))));
|
|
225
202
|
return outputs;
|
|
226
203
|
}
|
|
204
|
+
/** @internal */
|
|
205
|
+
_concatOutputChunks(first, second) {
|
|
206
|
+
return require_utils_stream.concat(first, second);
|
|
207
|
+
}
|
|
227
208
|
/**
|
|
228
209
|
* Helper method to transform an Iterator of Input values into an Iterator of
|
|
229
210
|
* Output values, with callbacks.
|
|
@@ -236,11 +217,12 @@ var Runnable = class extends require_load_serializable.Serializable {
|
|
|
236
217
|
let finalOutputSupported = true;
|
|
237
218
|
const config = require_config.ensureConfig(options);
|
|
238
219
|
const callbackManager_ = await require_config.getCallbackManagerForConfig(config);
|
|
220
|
+
const outerThis = this;
|
|
239
221
|
async function* wrapInputForTracing() {
|
|
240
222
|
for await (const chunk of inputGenerator) {
|
|
241
223
|
if (finalInputSupported) if (finalInput === void 0) finalInput = chunk;
|
|
242
224
|
else try {
|
|
243
|
-
finalInput =
|
|
225
|
+
finalInput = outerThis._concatOutputChunks(finalInput, chunk);
|
|
244
226
|
} catch {
|
|
245
227
|
finalInput = void 0;
|
|
246
228
|
finalInputSupported = false;
|
|
@@ -262,7 +244,7 @@ var Runnable = class extends require_load_serializable.Serializable {
|
|
|
262
244
|
yield chunk;
|
|
263
245
|
if (finalOutputSupported) if (finalOutput === void 0) finalOutput = chunk;
|
|
264
246
|
else try {
|
|
265
|
-
finalOutput =
|
|
247
|
+
finalOutput = this._concatOutputChunks(finalOutput, chunk);
|
|
266
248
|
} catch {
|
|
267
249
|
finalOutput = void 0;
|
|
268
250
|
finalOutputSupported = false;
|
|
@@ -323,7 +305,7 @@ var Runnable = class extends require_load_serializable.Serializable {
|
|
|
323
305
|
async *transform(generator, options) {
|
|
324
306
|
let finalChunk;
|
|
325
307
|
for await (const chunk of generator) if (finalChunk === void 0) finalChunk = chunk;
|
|
326
|
-
else finalChunk =
|
|
308
|
+
else finalChunk = this._concatOutputChunks(finalChunk, chunk);
|
|
327
309
|
yield* this._streamIterator(finalChunk, require_config.ensureConfig(options));
|
|
328
310
|
}
|
|
329
311
|
/**
|
|
@@ -605,8 +587,8 @@ var Runnable = class extends require_load_serializable.Serializable {
|
|
|
605
587
|
* const runnable = RunnableLambda.from(enhanceProfile);
|
|
606
588
|
*
|
|
607
589
|
* // Bind configuration to the runnable to set the user's role dynamically
|
|
608
|
-
* const adminRunnable = runnable.
|
|
609
|
-
* const userRunnable = runnable.
|
|
590
|
+
* const adminRunnable = runnable.withConfig({ configurable: { role: "Admin" } });
|
|
591
|
+
* const userRunnable = runnable.withConfig({ configurable: { role: "User" } });
|
|
610
592
|
*
|
|
611
593
|
* const result1 = await adminRunnable.invoke({
|
|
612
594
|
* name: "Alice",
|
|
@@ -647,23 +629,6 @@ var RunnableBinding = class RunnableBinding extends Runnable {
|
|
|
647
629
|
const config = require_config.mergeConfigs(this.config, ...options);
|
|
648
630
|
return require_config.mergeConfigs(config, ...this.configFactories ? await Promise.all(this.configFactories.map(async (configFactory) => await configFactory(config))) : []);
|
|
649
631
|
}
|
|
650
|
-
/**
|
|
651
|
-
* Binds the runnable with the specified arguments.
|
|
652
|
-
* @param kwargs The arguments to bind the runnable with.
|
|
653
|
-
* @returns A new instance of the `RunnableBinding` class that is bound with the specified arguments.
|
|
654
|
-
*
|
|
655
|
-
* @deprecated Use {@link withConfig} instead. This will be removed in the next breaking release.
|
|
656
|
-
*/
|
|
657
|
-
bind(kwargs) {
|
|
658
|
-
return new this.constructor({
|
|
659
|
-
bound: this.bound,
|
|
660
|
-
kwargs: {
|
|
661
|
-
...this.kwargs,
|
|
662
|
-
...kwargs
|
|
663
|
-
},
|
|
664
|
-
config: this.config
|
|
665
|
-
});
|
|
666
|
-
}
|
|
667
632
|
withConfig(config) {
|
|
668
633
|
return new this.constructor({
|
|
669
634
|
bound: this.bound,
|
|
@@ -684,12 +649,16 @@ var RunnableBinding = class RunnableBinding extends Runnable {
|
|
|
684
649
|
});
|
|
685
650
|
}
|
|
686
651
|
async invoke(input, options) {
|
|
687
|
-
return this.bound.invoke(input, await this._mergeConfig(
|
|
652
|
+
return this.bound.invoke(input, await this._mergeConfig(options, this.kwargs));
|
|
688
653
|
}
|
|
689
654
|
async batch(inputs, options, batchOptions) {
|
|
690
655
|
const mergedOptions = Array.isArray(options) ? await Promise.all(options.map(async (individualOption) => this._mergeConfig(require_config.ensureConfig(individualOption), this.kwargs))) : await this._mergeConfig(require_config.ensureConfig(options), this.kwargs);
|
|
691
656
|
return this.bound.batch(inputs, mergedOptions, batchOptions);
|
|
692
657
|
}
|
|
658
|
+
/** @internal */
|
|
659
|
+
_concatOutputChunks(first, second) {
|
|
660
|
+
return this.bound._concatOutputChunks(first, second);
|
|
661
|
+
}
|
|
693
662
|
async *_streamIterator(input, options) {
|
|
694
663
|
yield* this.bound._streamIterator(input, await this._mergeConfig(require_config.ensureConfig(options), this.kwargs));
|
|
695
664
|
}
|
|
@@ -758,8 +727,6 @@ var RunnableBinding = class RunnableBinding extends Runnable {
|
|
|
758
727
|
*
|
|
759
728
|
* // ["Hello, ALICE!", "Hello, BOB!", "Hello, CAROL!"]
|
|
760
729
|
* ```
|
|
761
|
-
*
|
|
762
|
-
* @deprecated This will be removed in the next breaking release.
|
|
763
730
|
*/
|
|
764
731
|
var RunnableEach = class RunnableEach extends Runnable {
|
|
765
732
|
static lc_name() {
|
|
@@ -773,16 +740,6 @@ var RunnableEach = class RunnableEach extends Runnable {
|
|
|
773
740
|
this.bound = fields.bound;
|
|
774
741
|
}
|
|
775
742
|
/**
|
|
776
|
-
* Binds the runnable with the specified arguments.
|
|
777
|
-
* @param kwargs The arguments to bind the runnable with.
|
|
778
|
-
* @returns A new instance of the `RunnableEach` class that is bound with the specified arguments.
|
|
779
|
-
*
|
|
780
|
-
* @deprecated Use {@link withConfig} instead. This will be removed in the next breaking release.
|
|
781
|
-
*/
|
|
782
|
-
bind(kwargs) {
|
|
783
|
-
return new RunnableEach({ bound: this.bound.bind(kwargs) });
|
|
784
|
-
}
|
|
785
|
-
/**
|
|
786
743
|
* Invokes the runnable with the specified input and configuration.
|
|
787
744
|
* @param input The input to invoke the runnable with.
|
|
788
745
|
* @param config The configuration to invoke the runnable with.
|
|
@@ -1021,6 +978,10 @@ var RunnableSequence = class RunnableSequence extends Runnable {
|
|
|
1021
978
|
await Promise.all(runManagers.map((runManager) => runManager?.handleChainEnd(_coerceToDict(nextStepInputs, "output"))));
|
|
1022
979
|
return nextStepInputs;
|
|
1023
980
|
}
|
|
981
|
+
/** @internal */
|
|
982
|
+
_concatOutputChunks(first, second) {
|
|
983
|
+
return this.last._concatOutputChunks(first, second);
|
|
984
|
+
}
|
|
1024
985
|
async *_streamIterator(input, options) {
|
|
1025
986
|
const callbackManager_ = await require_config.getCallbackManagerForConfig(options);
|
|
1026
987
|
const { runId,...otherOptions } = options ?? {};
|
|
@@ -1046,7 +1007,7 @@ var RunnableSequence = class RunnableSequence extends Runnable {
|
|
|
1046
1007
|
yield chunk;
|
|
1047
1008
|
if (concatSupported) if (finalOutput === void 0) finalOutput = chunk;
|
|
1048
1009
|
else try {
|
|
1049
|
-
finalOutput =
|
|
1010
|
+
finalOutput = this._concatOutputChunks(finalOutput, chunk);
|
|
1050
1011
|
} catch {
|
|
1051
1012
|
finalOutput = void 0;
|
|
1052
1013
|
concatSupported = false;
|
|
@@ -1307,7 +1268,7 @@ var RunnableLambda = class RunnableLambda extends Runnable {
|
|
|
1307
1268
|
config?.signal?.throwIfAborted();
|
|
1308
1269
|
if (finalOutput === void 0) finalOutput = chunk;
|
|
1309
1270
|
else try {
|
|
1310
|
-
finalOutput =
|
|
1271
|
+
finalOutput = this._concatOutputChunks(finalOutput, chunk);
|
|
1311
1272
|
} catch {
|
|
1312
1273
|
finalOutput = chunk;
|
|
1313
1274
|
}
|
|
@@ -1319,7 +1280,7 @@ var RunnableLambda = class RunnableLambda extends Runnable {
|
|
|
1319
1280
|
config?.signal?.throwIfAborted();
|
|
1320
1281
|
if (finalOutput === void 0) finalOutput = chunk;
|
|
1321
1282
|
else try {
|
|
1322
|
-
finalOutput =
|
|
1283
|
+
finalOutput = this._concatOutputChunks(finalOutput, chunk);
|
|
1323
1284
|
} catch {
|
|
1324
1285
|
finalOutput = chunk;
|
|
1325
1286
|
}
|
|
@@ -1340,7 +1301,7 @@ var RunnableLambda = class RunnableLambda extends Runnable {
|
|
|
1340
1301
|
let finalChunk;
|
|
1341
1302
|
for await (const chunk of generator) if (finalChunk === void 0) finalChunk = chunk;
|
|
1342
1303
|
else try {
|
|
1343
|
-
finalChunk =
|
|
1304
|
+
finalChunk = this._concatOutputChunks(finalChunk, chunk);
|
|
1344
1305
|
} catch {
|
|
1345
1306
|
finalChunk = chunk;
|
|
1346
1307
|
}
|
|
@@ -1562,7 +1523,7 @@ var RunnableWithFallbacks = class extends Runnable {
|
|
|
1562
1523
|
for await (const chunk of stream) {
|
|
1563
1524
|
yield chunk;
|
|
1564
1525
|
try {
|
|
1565
|
-
output = output === void 0 ? output :
|
|
1526
|
+
output = output === void 0 ? output : this._concatOutputChunks(output, chunk);
|
|
1566
1527
|
} catch {
|
|
1567
1528
|
output = void 0;
|
|
1568
1529
|
}
|