@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
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
const require_utils = require('./utils.cjs');
|
|
2
|
+
|
|
3
|
+
//#region src/messages/block_translators/bedrock_converse.ts
|
|
4
|
+
function convertFileFormatToMimeType(format) {
|
|
5
|
+
switch (format) {
|
|
6
|
+
case "csv": return "text/csv";
|
|
7
|
+
case "doc": return "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
|
|
8
|
+
case "docx": return "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
|
|
9
|
+
case "html": return "text/html";
|
|
10
|
+
case "md": return "text/markdown";
|
|
11
|
+
case "pdf": return "application/pdf";
|
|
12
|
+
case "txt": return "text/plain";
|
|
13
|
+
case "xls": return "application/vnd.ms-excel";
|
|
14
|
+
case "xlsx": return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
|
15
|
+
case "gif": return "image/gif";
|
|
16
|
+
case "jpeg": return "image/jpeg";
|
|
17
|
+
case "jpg": return "image/jpeg";
|
|
18
|
+
case "png": return "image/png";
|
|
19
|
+
case "webp": return "image/webp";
|
|
20
|
+
case "flv": return "video/flv";
|
|
21
|
+
case "mkv": return "video/mkv";
|
|
22
|
+
case "mov": return "video/mov";
|
|
23
|
+
case "mp4": return "video/mp4";
|
|
24
|
+
case "mpeg": return "video/mpeg";
|
|
25
|
+
case "mpg": return "video/mpg";
|
|
26
|
+
case "three_gp": return "video/three_gp";
|
|
27
|
+
case "webm": return "video/webm";
|
|
28
|
+
case "wmv": return "video/wmv";
|
|
29
|
+
default: return "application/octet-stream";
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function convertConverseDocumentBlock(block) {
|
|
33
|
+
if (require_utils._isObject(block.document) && require_utils._isObject(block.document.source)) {
|
|
34
|
+
const format = require_utils._isObject(block.document) && require_utils._isString(block.document.format) ? block.document.format : "";
|
|
35
|
+
const mimeType = convertFileFormatToMimeType(format);
|
|
36
|
+
if (require_utils._isObject(block.document.source)) {
|
|
37
|
+
if (require_utils._isObject(block.document.source.s3Location) && require_utils._isString(block.document.source.s3Location.uri)) return {
|
|
38
|
+
type: "file",
|
|
39
|
+
mimeType,
|
|
40
|
+
fileId: block.document.source.s3Location.uri
|
|
41
|
+
};
|
|
42
|
+
if (require_utils._isBytesArray(block.document.source.bytes)) return {
|
|
43
|
+
type: "file",
|
|
44
|
+
mimeType,
|
|
45
|
+
data: block.document.source.bytes
|
|
46
|
+
};
|
|
47
|
+
if (require_utils._isString(block.document.source.text)) return {
|
|
48
|
+
type: "file",
|
|
49
|
+
mimeType,
|
|
50
|
+
data: Buffer.from(block.document.source.text).toString("base64")
|
|
51
|
+
};
|
|
52
|
+
if (require_utils._isArray(block.document.source.content)) {
|
|
53
|
+
const data = block.document.source.content.reduce((acc, item) => {
|
|
54
|
+
if (require_utils._isObject(item) && require_utils._isString(item.text)) return acc + item.text;
|
|
55
|
+
return acc;
|
|
56
|
+
}, "");
|
|
57
|
+
return {
|
|
58
|
+
type: "file",
|
|
59
|
+
mimeType,
|
|
60
|
+
data
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
type: "non_standard",
|
|
67
|
+
value: block
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function convertConverseImageBlock(block) {
|
|
71
|
+
if (require_utils._isContentBlock(block, "image") && require_utils._isObject(block.image)) {
|
|
72
|
+
const format = require_utils._isObject(block.image) && require_utils._isString(block.image.format) ? block.image.format : "";
|
|
73
|
+
const mimeType = convertFileFormatToMimeType(format);
|
|
74
|
+
if (require_utils._isObject(block.image.source)) {
|
|
75
|
+
if (require_utils._isObject(block.image.source.s3Location) && require_utils._isString(block.image.source.s3Location.uri)) return {
|
|
76
|
+
type: "image",
|
|
77
|
+
mimeType,
|
|
78
|
+
fileId: block.image.source.s3Location.uri
|
|
79
|
+
};
|
|
80
|
+
if (require_utils._isBytesArray(block.image.source.bytes)) return {
|
|
81
|
+
type: "image",
|
|
82
|
+
mimeType,
|
|
83
|
+
data: block.image.source.bytes
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
type: "non_standard",
|
|
89
|
+
value: block
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
function convertConverseVideoBlock(block) {
|
|
93
|
+
if (require_utils._isContentBlock(block, "video") && require_utils._isObject(block.video)) {
|
|
94
|
+
const format = require_utils._isObject(block.video) && require_utils._isString(block.video.format) ? block.video.format : "";
|
|
95
|
+
const mimeType = convertFileFormatToMimeType(format);
|
|
96
|
+
if (require_utils._isObject(block.video.source)) {
|
|
97
|
+
if (require_utils._isObject(block.video.source.s3Location) && require_utils._isString(block.video.source.s3Location.uri)) return {
|
|
98
|
+
type: "video",
|
|
99
|
+
mimeType,
|
|
100
|
+
fileId: block.video.source.s3Location.uri
|
|
101
|
+
};
|
|
102
|
+
if (require_utils._isBytesArray(block.video.source.bytes)) return {
|
|
103
|
+
type: "video",
|
|
104
|
+
mimeType,
|
|
105
|
+
data: block.video.source.bytes
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return {
|
|
110
|
+
type: "non_standard",
|
|
111
|
+
value: block
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function convertToV1FromChatBedrockConverseMessage(message) {
|
|
115
|
+
function* iterateContent() {
|
|
116
|
+
const content = typeof message.content === "string" ? [{
|
|
117
|
+
type: "text",
|
|
118
|
+
text: message.content
|
|
119
|
+
}] : message.content;
|
|
120
|
+
for (const block of content) {
|
|
121
|
+
if (require_utils._isContentBlock(block, "cache_point")) {
|
|
122
|
+
yield {
|
|
123
|
+
type: "non_standard",
|
|
124
|
+
value: block
|
|
125
|
+
};
|
|
126
|
+
continue;
|
|
127
|
+
} else if (require_utils._isContentBlock(block, "citations_content") && require_utils._isObject(block.citationsContent)) {
|
|
128
|
+
const text = require_utils._isArray(block.citationsContent.content) ? block.citationsContent.content.reduce((acc, item) => {
|
|
129
|
+
if (require_utils._isObject(item) && require_utils._isString(item.text)) return acc + item.text;
|
|
130
|
+
return acc;
|
|
131
|
+
}, "") : "";
|
|
132
|
+
const annotations = require_utils._isArray(block.citationsContent.citations) ? block.citationsContent.citations.reduce((acc, item) => {
|
|
133
|
+
if (require_utils._isObject(item)) {
|
|
134
|
+
const citedText = require_utils._isArray(item.sourceContent) ? item.sourceContent.reduce((acc$1, item$1) => {
|
|
135
|
+
if (require_utils._isObject(item$1) && require_utils._isString(item$1.text)) return acc$1 + item$1.text;
|
|
136
|
+
return acc$1;
|
|
137
|
+
}, "") : "";
|
|
138
|
+
const properties = require_utils.iife(() => {
|
|
139
|
+
if (require_utils._isObject(item.location)) {
|
|
140
|
+
const location = item.location.documentChar || item.location.documentPage || item.location.documentChunk;
|
|
141
|
+
if (require_utils._isObject(location)) return {
|
|
142
|
+
source: require_utils._isNumber(location.documentIndex) ? location.documentIndex.toString() : void 0,
|
|
143
|
+
startIndex: require_utils._isNumber(location.start) ? location.start : void 0,
|
|
144
|
+
endIndex: require_utils._isNumber(location.end) ? location.end : void 0
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
return {};
|
|
148
|
+
});
|
|
149
|
+
acc.push({
|
|
150
|
+
type: "citation",
|
|
151
|
+
citedText,
|
|
152
|
+
...properties
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
return acc;
|
|
156
|
+
}, []) : [];
|
|
157
|
+
yield {
|
|
158
|
+
type: "text",
|
|
159
|
+
text,
|
|
160
|
+
annotations
|
|
161
|
+
};
|
|
162
|
+
continue;
|
|
163
|
+
} else if (require_utils._isContentBlock(block, "document") && require_utils._isObject(block.document)) {
|
|
164
|
+
yield convertConverseDocumentBlock(block);
|
|
165
|
+
continue;
|
|
166
|
+
} else if (require_utils._isContentBlock(block, "guard_content")) {
|
|
167
|
+
yield {
|
|
168
|
+
type: "non_standard",
|
|
169
|
+
value: block
|
|
170
|
+
};
|
|
171
|
+
continue;
|
|
172
|
+
} else if (require_utils._isContentBlock(block, "image") && require_utils._isObject(block.image)) {
|
|
173
|
+
yield convertConverseImageBlock(block);
|
|
174
|
+
continue;
|
|
175
|
+
} else if (require_utils._isContentBlock(block, "reasoning_content") && require_utils._isString(block.reasoningText)) {
|
|
176
|
+
yield {
|
|
177
|
+
type: "reasoning",
|
|
178
|
+
reasoning: block.reasoningText
|
|
179
|
+
};
|
|
180
|
+
continue;
|
|
181
|
+
} else if (require_utils._isContentBlock(block, "text") && require_utils._isString(block.text)) {
|
|
182
|
+
yield {
|
|
183
|
+
type: "text",
|
|
184
|
+
text: block.text
|
|
185
|
+
};
|
|
186
|
+
continue;
|
|
187
|
+
} else if (require_utils._isContentBlock(block, "tool_result")) {
|
|
188
|
+
yield {
|
|
189
|
+
type: "non_standard",
|
|
190
|
+
value: block
|
|
191
|
+
};
|
|
192
|
+
continue;
|
|
193
|
+
} else if (require_utils._isContentBlock(block, "tool_call")) continue;
|
|
194
|
+
else if (require_utils._isContentBlock(block, "video") && require_utils._isObject(block.video)) {
|
|
195
|
+
yield convertConverseVideoBlock(block);
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
yield {
|
|
199
|
+
type: "non_standard",
|
|
200
|
+
value: block
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return Array.from(iterateContent());
|
|
205
|
+
}
|
|
206
|
+
const ChatBedrockConverseTranslator = {
|
|
207
|
+
translateContent: convertToV1FromChatBedrockConverseMessage,
|
|
208
|
+
translateContentChunk: convertToV1FromChatBedrockConverseMessage
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
//#endregion
|
|
212
|
+
exports.ChatBedrockConverseTranslator = ChatBedrockConverseTranslator;
|
|
213
|
+
//# sourceMappingURL=bedrock_converse.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bedrock_converse.cjs","names":["format: string","block: ContentBlock","_isObject","_isString","_isBytesArray","_isArray","acc: string","_isContentBlock","message: AIMessage","acc: Array<ContentBlock.Citation>","item","acc","iife","_isNumber","ChatBedrockConverseTranslator: StandardContentBlockTranslator"],"sources":["../../../src/messages/block_translators/bedrock_converse.ts"],"sourcesContent":["import { AIMessage } from \"../ai.js\";\nimport { ContentBlock } from \"../content/index.js\";\nimport { KNOWN_BLOCK_TYPES } from \"../content/tools.js\";\nimport type { StandardContentBlockTranslator } from \"./index.js\";\nimport {\n _isArray,\n _isBytesArray,\n _isContentBlock,\n _isNumber,\n _isObject,\n _isString,\n iife,\n} from \"./utils.js\";\n\n// see `/libs/providers/langchain-aws/src/utils/compat.ts:convertFileFormatToMimeType`\nfunction convertFileFormatToMimeType(format: string): string {\n switch (format) {\n // DocumentBlock\n case \"csv\":\n return \"text/csv\";\n case \"doc\":\n return \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\";\n case \"docx\":\n return \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\";\n case \"html\":\n return \"text/html\";\n case \"md\":\n return \"text/markdown\";\n case \"pdf\":\n return \"application/pdf\";\n case \"txt\":\n return \"text/plain\";\n case \"xls\":\n return \"application/vnd.ms-excel\";\n case \"xlsx\":\n return \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\n // ImageBlock\n case \"gif\":\n return \"image/gif\";\n case \"jpeg\":\n return \"image/jpeg\";\n case \"jpg\":\n return \"image/jpeg\";\n case \"png\":\n return \"image/png\";\n case \"webp\":\n return \"image/webp\";\n // VideoBlock\n case \"flv\":\n return \"video/flv\";\n case \"mkv\":\n return \"video/mkv\";\n case \"mov\":\n return \"video/mov\";\n case \"mp4\":\n return \"video/mp4\";\n case \"mpeg\":\n return \"video/mpeg\";\n case \"mpg\":\n return \"video/mpg\";\n case \"three_gp\":\n return \"video/three_gp\";\n case \"webm\":\n return \"video/webm\";\n case \"wmv\":\n return \"video/wmv\";\n default:\n return \"application/octet-stream\";\n }\n}\n\nfunction convertConverseDocumentBlock(\n block: ContentBlock\n): ContentBlock.Standard {\n if (_isObject(block.document) && _isObject(block.document.source)) {\n const format =\n _isObject(block.document) && _isString(block.document.format)\n ? block.document.format\n : \"\";\n const mimeType = convertFileFormatToMimeType(format);\n\n if (_isObject(block.document.source)) {\n if (\n _isObject(block.document.source.s3Location) &&\n _isString(block.document.source.s3Location.uri)\n ) {\n return {\n type: \"file\",\n mimeType,\n fileId: block.document.source.s3Location.uri,\n };\n }\n if (_isBytesArray(block.document.source.bytes)) {\n return {\n type: \"file\",\n mimeType,\n data: block.document.source.bytes,\n };\n }\n if (_isString(block.document.source.text)) {\n return {\n type: \"file\",\n mimeType,\n data: Buffer.from(block.document.source.text).toString(\"base64\"),\n };\n }\n if (_isArray(block.document.source.content)) {\n const data = block.document.source.content.reduce(\n (acc: string, item) => {\n if (_isObject(item) && _isString(item.text)) {\n return acc + item.text;\n }\n return acc;\n },\n \"\"\n );\n return {\n type: \"file\",\n mimeType,\n data,\n };\n }\n }\n }\n return { type: \"non_standard\", value: block };\n}\n\nfunction convertConverseImageBlock(block: ContentBlock): ContentBlock.Standard {\n if (_isContentBlock(block, \"image\") && _isObject(block.image)) {\n const format =\n _isObject(block.image) && _isString(block.image.format)\n ? block.image.format\n : \"\";\n const mimeType = convertFileFormatToMimeType(format);\n\n if (_isObject(block.image.source)) {\n if (\n _isObject(block.image.source.s3Location) &&\n _isString(block.image.source.s3Location.uri)\n ) {\n return {\n type: \"image\",\n mimeType,\n fileId: block.image.source.s3Location.uri,\n };\n }\n if (_isBytesArray(block.image.source.bytes)) {\n return {\n type: \"image\",\n mimeType,\n data: block.image.source.bytes,\n };\n }\n }\n }\n return { type: \"non_standard\", value: block };\n}\n\nfunction convertConverseVideoBlock(block: ContentBlock): ContentBlock.Standard {\n if (_isContentBlock(block, \"video\") && _isObject(block.video)) {\n const format =\n _isObject(block.video) && _isString(block.video.format)\n ? block.video.format\n : \"\";\n const mimeType = convertFileFormatToMimeType(format);\n\n if (_isObject(block.video.source)) {\n if (\n _isObject(block.video.source.s3Location) &&\n _isString(block.video.source.s3Location.uri)\n ) {\n return {\n type: \"video\",\n mimeType,\n fileId: block.video.source.s3Location.uri,\n };\n }\n if (_isBytesArray(block.video.source.bytes)) {\n return {\n type: \"video\",\n mimeType,\n data: block.video.source.bytes,\n };\n }\n }\n }\n return { type: \"non_standard\", value: block };\n}\n\nexport function convertToV1FromChatBedrockConverseInput(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n function* iterateContent(): Iterable<ContentBlock.Standard> {\n const content =\n typeof message.content === \"string\"\n ? [{ type: \"text\", text: message.content }]\n : message.content;\n const blocks = content.map((block) => {\n if (_isContentBlock(block, \"non_standard\") && \"value\" in block) {\n return block.value as ContentBlock;\n }\n return block;\n });\n for (const block of blocks) {\n if (_isContentBlock(block, \"text\") && _isString(block.text)) {\n yield { type: \"text\", text: block.text };\n continue;\n } else if (\n _isContentBlock(block, \"document\") &&\n _isObject(block.document)\n ) {\n yield convertConverseDocumentBlock(block);\n continue;\n } else if (_isContentBlock(block, \"image\") && _isObject(block.image)) {\n yield convertConverseImageBlock(block);\n continue;\n } else if (_isContentBlock(block, \"video\") && _isObject(block.video)) {\n yield convertConverseVideoBlock(block);\n continue;\n }\n if (KNOWN_BLOCK_TYPES.includes(block.type)) {\n yield block as ContentBlock.Standard;\n } else {\n yield { type: \"non_standard\", value: block };\n }\n }\n }\n return Array.from(iterateContent());\n}\n\nfunction convertToV1FromChatBedrockConverseMessage(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n // see `/libs/providers/langchain-aws/src/utils/message_outputs.ts:convertConverseMessageToLangChainMessage`\n function* iterateContent(): Iterable<ContentBlock.Standard> {\n const content =\n typeof message.content === \"string\"\n ? [{ type: \"text\", text: message.content }]\n : message.content;\n for (const block of content) {\n if (_isContentBlock(block, \"cache_point\")) {\n yield { type: \"non_standard\", value: block };\n continue;\n } else if (\n _isContentBlock(block, \"citations_content\") &&\n _isObject(block.citationsContent)\n ) {\n const text = _isArray(block.citationsContent.content)\n ? block.citationsContent.content.reduce((acc: string, item) => {\n if (_isObject(item) && _isString(item.text)) {\n return acc + item.text;\n }\n return acc;\n }, \"\")\n : \"\";\n const annotations = _isArray(block.citationsContent.citations)\n ? block.citationsContent.citations.reduce(\n (acc: Array<ContentBlock.Citation>, item) => {\n if (_isObject(item)) {\n const citedText = _isArray(item.sourceContent)\n ? item.sourceContent.reduce((acc: string, item) => {\n if (_isObject(item) && _isString(item.text)) {\n return acc + item.text;\n }\n return acc;\n }, \"\")\n : \"\";\n const properties = iife(() => {\n if (_isObject(item.location)) {\n const location =\n item.location.documentChar ||\n item.location.documentPage ||\n item.location.documentChunk;\n if (_isObject(location)) {\n return {\n source: _isNumber(location.documentIndex)\n ? location.documentIndex.toString()\n : undefined,\n startIndex: _isNumber(location.start)\n ? location.start\n : undefined,\n endIndex: _isNumber(location.end)\n ? location.end\n : undefined,\n };\n }\n }\n return {};\n });\n acc.push({ type: \"citation\", citedText, ...properties });\n }\n return acc;\n },\n []\n )\n : [];\n yield { type: \"text\", text, annotations };\n continue;\n } else if (\n _isContentBlock(block, \"document\") &&\n _isObject(block.document)\n ) {\n yield convertConverseDocumentBlock(block);\n continue;\n } else if (_isContentBlock(block, \"guard_content\")) {\n yield {\n type: \"non_standard\",\n value: block,\n };\n continue;\n } else if (_isContentBlock(block, \"image\") && _isObject(block.image)) {\n yield convertConverseImageBlock(block);\n continue;\n } else if (\n _isContentBlock(block, \"reasoning_content\") &&\n _isString(block.reasoningText)\n ) {\n yield {\n type: \"reasoning\",\n reasoning: block.reasoningText,\n };\n continue;\n } else if (_isContentBlock(block, \"text\") && _isString(block.text)) {\n yield { type: \"text\", text: block.text };\n continue;\n } else if (_isContentBlock(block, \"tool_result\")) {\n yield { type: \"non_standard\", value: block };\n continue;\n } else if (_isContentBlock(block, \"tool_call\")) {\n // no-op - filtered to tools\n continue;\n } else if (_isContentBlock(block, \"video\") && _isObject(block.video)) {\n yield convertConverseVideoBlock(block);\n continue;\n }\n yield { type: \"non_standard\", value: block };\n }\n }\n return Array.from(iterateContent());\n}\n\nexport const ChatBedrockConverseTranslator: StandardContentBlockTranslator = {\n translateContent: convertToV1FromChatBedrockConverseMessage,\n translateContentChunk: convertToV1FromChatBedrockConverseMessage,\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { _isArray, _isBytesArray, _isContentBlock, _isNumber, _isObject, _isString, iife } from "./utils.js";
|
|
2
|
+
|
|
3
|
+
//#region src/messages/block_translators/bedrock_converse.ts
|
|
4
|
+
function convertFileFormatToMimeType(format) {
|
|
5
|
+
switch (format) {
|
|
6
|
+
case "csv": return "text/csv";
|
|
7
|
+
case "doc": return "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
|
|
8
|
+
case "docx": return "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
|
|
9
|
+
case "html": return "text/html";
|
|
10
|
+
case "md": return "text/markdown";
|
|
11
|
+
case "pdf": return "application/pdf";
|
|
12
|
+
case "txt": return "text/plain";
|
|
13
|
+
case "xls": return "application/vnd.ms-excel";
|
|
14
|
+
case "xlsx": return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
|
15
|
+
case "gif": return "image/gif";
|
|
16
|
+
case "jpeg": return "image/jpeg";
|
|
17
|
+
case "jpg": return "image/jpeg";
|
|
18
|
+
case "png": return "image/png";
|
|
19
|
+
case "webp": return "image/webp";
|
|
20
|
+
case "flv": return "video/flv";
|
|
21
|
+
case "mkv": return "video/mkv";
|
|
22
|
+
case "mov": return "video/mov";
|
|
23
|
+
case "mp4": return "video/mp4";
|
|
24
|
+
case "mpeg": return "video/mpeg";
|
|
25
|
+
case "mpg": return "video/mpg";
|
|
26
|
+
case "three_gp": return "video/three_gp";
|
|
27
|
+
case "webm": return "video/webm";
|
|
28
|
+
case "wmv": return "video/wmv";
|
|
29
|
+
default: return "application/octet-stream";
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function convertConverseDocumentBlock(block) {
|
|
33
|
+
if (_isObject(block.document) && _isObject(block.document.source)) {
|
|
34
|
+
const format = _isObject(block.document) && _isString(block.document.format) ? block.document.format : "";
|
|
35
|
+
const mimeType = convertFileFormatToMimeType(format);
|
|
36
|
+
if (_isObject(block.document.source)) {
|
|
37
|
+
if (_isObject(block.document.source.s3Location) && _isString(block.document.source.s3Location.uri)) return {
|
|
38
|
+
type: "file",
|
|
39
|
+
mimeType,
|
|
40
|
+
fileId: block.document.source.s3Location.uri
|
|
41
|
+
};
|
|
42
|
+
if (_isBytesArray(block.document.source.bytes)) return {
|
|
43
|
+
type: "file",
|
|
44
|
+
mimeType,
|
|
45
|
+
data: block.document.source.bytes
|
|
46
|
+
};
|
|
47
|
+
if (_isString(block.document.source.text)) return {
|
|
48
|
+
type: "file",
|
|
49
|
+
mimeType,
|
|
50
|
+
data: Buffer.from(block.document.source.text).toString("base64")
|
|
51
|
+
};
|
|
52
|
+
if (_isArray(block.document.source.content)) {
|
|
53
|
+
const data = block.document.source.content.reduce((acc, item) => {
|
|
54
|
+
if (_isObject(item) && _isString(item.text)) return acc + item.text;
|
|
55
|
+
return acc;
|
|
56
|
+
}, "");
|
|
57
|
+
return {
|
|
58
|
+
type: "file",
|
|
59
|
+
mimeType,
|
|
60
|
+
data
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
type: "non_standard",
|
|
67
|
+
value: block
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function convertConverseImageBlock(block) {
|
|
71
|
+
if (_isContentBlock(block, "image") && _isObject(block.image)) {
|
|
72
|
+
const format = _isObject(block.image) && _isString(block.image.format) ? block.image.format : "";
|
|
73
|
+
const mimeType = convertFileFormatToMimeType(format);
|
|
74
|
+
if (_isObject(block.image.source)) {
|
|
75
|
+
if (_isObject(block.image.source.s3Location) && _isString(block.image.source.s3Location.uri)) return {
|
|
76
|
+
type: "image",
|
|
77
|
+
mimeType,
|
|
78
|
+
fileId: block.image.source.s3Location.uri
|
|
79
|
+
};
|
|
80
|
+
if (_isBytesArray(block.image.source.bytes)) return {
|
|
81
|
+
type: "image",
|
|
82
|
+
mimeType,
|
|
83
|
+
data: block.image.source.bytes
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
type: "non_standard",
|
|
89
|
+
value: block
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
function convertConverseVideoBlock(block) {
|
|
93
|
+
if (_isContentBlock(block, "video") && _isObject(block.video)) {
|
|
94
|
+
const format = _isObject(block.video) && _isString(block.video.format) ? block.video.format : "";
|
|
95
|
+
const mimeType = convertFileFormatToMimeType(format);
|
|
96
|
+
if (_isObject(block.video.source)) {
|
|
97
|
+
if (_isObject(block.video.source.s3Location) && _isString(block.video.source.s3Location.uri)) return {
|
|
98
|
+
type: "video",
|
|
99
|
+
mimeType,
|
|
100
|
+
fileId: block.video.source.s3Location.uri
|
|
101
|
+
};
|
|
102
|
+
if (_isBytesArray(block.video.source.bytes)) return {
|
|
103
|
+
type: "video",
|
|
104
|
+
mimeType,
|
|
105
|
+
data: block.video.source.bytes
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return {
|
|
110
|
+
type: "non_standard",
|
|
111
|
+
value: block
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function convertToV1FromChatBedrockConverseMessage(message) {
|
|
115
|
+
function* iterateContent() {
|
|
116
|
+
const content = typeof message.content === "string" ? [{
|
|
117
|
+
type: "text",
|
|
118
|
+
text: message.content
|
|
119
|
+
}] : message.content;
|
|
120
|
+
for (const block of content) {
|
|
121
|
+
if (_isContentBlock(block, "cache_point")) {
|
|
122
|
+
yield {
|
|
123
|
+
type: "non_standard",
|
|
124
|
+
value: block
|
|
125
|
+
};
|
|
126
|
+
continue;
|
|
127
|
+
} else if (_isContentBlock(block, "citations_content") && _isObject(block.citationsContent)) {
|
|
128
|
+
const text = _isArray(block.citationsContent.content) ? block.citationsContent.content.reduce((acc, item) => {
|
|
129
|
+
if (_isObject(item) && _isString(item.text)) return acc + item.text;
|
|
130
|
+
return acc;
|
|
131
|
+
}, "") : "";
|
|
132
|
+
const annotations = _isArray(block.citationsContent.citations) ? block.citationsContent.citations.reduce((acc, item) => {
|
|
133
|
+
if (_isObject(item)) {
|
|
134
|
+
const citedText = _isArray(item.sourceContent) ? item.sourceContent.reduce((acc$1, item$1) => {
|
|
135
|
+
if (_isObject(item$1) && _isString(item$1.text)) return acc$1 + item$1.text;
|
|
136
|
+
return acc$1;
|
|
137
|
+
}, "") : "";
|
|
138
|
+
const properties = iife(() => {
|
|
139
|
+
if (_isObject(item.location)) {
|
|
140
|
+
const location = item.location.documentChar || item.location.documentPage || item.location.documentChunk;
|
|
141
|
+
if (_isObject(location)) return {
|
|
142
|
+
source: _isNumber(location.documentIndex) ? location.documentIndex.toString() : void 0,
|
|
143
|
+
startIndex: _isNumber(location.start) ? location.start : void 0,
|
|
144
|
+
endIndex: _isNumber(location.end) ? location.end : void 0
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
return {};
|
|
148
|
+
});
|
|
149
|
+
acc.push({
|
|
150
|
+
type: "citation",
|
|
151
|
+
citedText,
|
|
152
|
+
...properties
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
return acc;
|
|
156
|
+
}, []) : [];
|
|
157
|
+
yield {
|
|
158
|
+
type: "text",
|
|
159
|
+
text,
|
|
160
|
+
annotations
|
|
161
|
+
};
|
|
162
|
+
continue;
|
|
163
|
+
} else if (_isContentBlock(block, "document") && _isObject(block.document)) {
|
|
164
|
+
yield convertConverseDocumentBlock(block);
|
|
165
|
+
continue;
|
|
166
|
+
} else if (_isContentBlock(block, "guard_content")) {
|
|
167
|
+
yield {
|
|
168
|
+
type: "non_standard",
|
|
169
|
+
value: block
|
|
170
|
+
};
|
|
171
|
+
continue;
|
|
172
|
+
} else if (_isContentBlock(block, "image") && _isObject(block.image)) {
|
|
173
|
+
yield convertConverseImageBlock(block);
|
|
174
|
+
continue;
|
|
175
|
+
} else if (_isContentBlock(block, "reasoning_content") && _isString(block.reasoningText)) {
|
|
176
|
+
yield {
|
|
177
|
+
type: "reasoning",
|
|
178
|
+
reasoning: block.reasoningText
|
|
179
|
+
};
|
|
180
|
+
continue;
|
|
181
|
+
} else if (_isContentBlock(block, "text") && _isString(block.text)) {
|
|
182
|
+
yield {
|
|
183
|
+
type: "text",
|
|
184
|
+
text: block.text
|
|
185
|
+
};
|
|
186
|
+
continue;
|
|
187
|
+
} else if (_isContentBlock(block, "tool_result")) {
|
|
188
|
+
yield {
|
|
189
|
+
type: "non_standard",
|
|
190
|
+
value: block
|
|
191
|
+
};
|
|
192
|
+
continue;
|
|
193
|
+
} else if (_isContentBlock(block, "tool_call")) continue;
|
|
194
|
+
else if (_isContentBlock(block, "video") && _isObject(block.video)) {
|
|
195
|
+
yield convertConverseVideoBlock(block);
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
yield {
|
|
199
|
+
type: "non_standard",
|
|
200
|
+
value: block
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return Array.from(iterateContent());
|
|
205
|
+
}
|
|
206
|
+
const ChatBedrockConverseTranslator = {
|
|
207
|
+
translateContent: convertToV1FromChatBedrockConverseMessage,
|
|
208
|
+
translateContentChunk: convertToV1FromChatBedrockConverseMessage
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
//#endregion
|
|
212
|
+
export { ChatBedrockConverseTranslator };
|
|
213
|
+
//# sourceMappingURL=bedrock_converse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bedrock_converse.js","names":["format: string","block: ContentBlock","acc: string","message: AIMessage","acc: Array<ContentBlock.Citation>","item","acc","ChatBedrockConverseTranslator: StandardContentBlockTranslator"],"sources":["../../../src/messages/block_translators/bedrock_converse.ts"],"sourcesContent":["import { AIMessage } from \"../ai.js\";\nimport { ContentBlock } from \"../content/index.js\";\nimport { KNOWN_BLOCK_TYPES } from \"../content/tools.js\";\nimport type { StandardContentBlockTranslator } from \"./index.js\";\nimport {\n _isArray,\n _isBytesArray,\n _isContentBlock,\n _isNumber,\n _isObject,\n _isString,\n iife,\n} from \"./utils.js\";\n\n// see `/libs/providers/langchain-aws/src/utils/compat.ts:convertFileFormatToMimeType`\nfunction convertFileFormatToMimeType(format: string): string {\n switch (format) {\n // DocumentBlock\n case \"csv\":\n return \"text/csv\";\n case \"doc\":\n return \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\";\n case \"docx\":\n return \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\";\n case \"html\":\n return \"text/html\";\n case \"md\":\n return \"text/markdown\";\n case \"pdf\":\n return \"application/pdf\";\n case \"txt\":\n return \"text/plain\";\n case \"xls\":\n return \"application/vnd.ms-excel\";\n case \"xlsx\":\n return \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\n // ImageBlock\n case \"gif\":\n return \"image/gif\";\n case \"jpeg\":\n return \"image/jpeg\";\n case \"jpg\":\n return \"image/jpeg\";\n case \"png\":\n return \"image/png\";\n case \"webp\":\n return \"image/webp\";\n // VideoBlock\n case \"flv\":\n return \"video/flv\";\n case \"mkv\":\n return \"video/mkv\";\n case \"mov\":\n return \"video/mov\";\n case \"mp4\":\n return \"video/mp4\";\n case \"mpeg\":\n return \"video/mpeg\";\n case \"mpg\":\n return \"video/mpg\";\n case \"three_gp\":\n return \"video/three_gp\";\n case \"webm\":\n return \"video/webm\";\n case \"wmv\":\n return \"video/wmv\";\n default:\n return \"application/octet-stream\";\n }\n}\n\nfunction convertConverseDocumentBlock(\n block: ContentBlock\n): ContentBlock.Standard {\n if (_isObject(block.document) && _isObject(block.document.source)) {\n const format =\n _isObject(block.document) && _isString(block.document.format)\n ? block.document.format\n : \"\";\n const mimeType = convertFileFormatToMimeType(format);\n\n if (_isObject(block.document.source)) {\n if (\n _isObject(block.document.source.s3Location) &&\n _isString(block.document.source.s3Location.uri)\n ) {\n return {\n type: \"file\",\n mimeType,\n fileId: block.document.source.s3Location.uri,\n };\n }\n if (_isBytesArray(block.document.source.bytes)) {\n return {\n type: \"file\",\n mimeType,\n data: block.document.source.bytes,\n };\n }\n if (_isString(block.document.source.text)) {\n return {\n type: \"file\",\n mimeType,\n data: Buffer.from(block.document.source.text).toString(\"base64\"),\n };\n }\n if (_isArray(block.document.source.content)) {\n const data = block.document.source.content.reduce(\n (acc: string, item) => {\n if (_isObject(item) && _isString(item.text)) {\n return acc + item.text;\n }\n return acc;\n },\n \"\"\n );\n return {\n type: \"file\",\n mimeType,\n data,\n };\n }\n }\n }\n return { type: \"non_standard\", value: block };\n}\n\nfunction convertConverseImageBlock(block: ContentBlock): ContentBlock.Standard {\n if (_isContentBlock(block, \"image\") && _isObject(block.image)) {\n const format =\n _isObject(block.image) && _isString(block.image.format)\n ? block.image.format\n : \"\";\n const mimeType = convertFileFormatToMimeType(format);\n\n if (_isObject(block.image.source)) {\n if (\n _isObject(block.image.source.s3Location) &&\n _isString(block.image.source.s3Location.uri)\n ) {\n return {\n type: \"image\",\n mimeType,\n fileId: block.image.source.s3Location.uri,\n };\n }\n if (_isBytesArray(block.image.source.bytes)) {\n return {\n type: \"image\",\n mimeType,\n data: block.image.source.bytes,\n };\n }\n }\n }\n return { type: \"non_standard\", value: block };\n}\n\nfunction convertConverseVideoBlock(block: ContentBlock): ContentBlock.Standard {\n if (_isContentBlock(block, \"video\") && _isObject(block.video)) {\n const format =\n _isObject(block.video) && _isString(block.video.format)\n ? block.video.format\n : \"\";\n const mimeType = convertFileFormatToMimeType(format);\n\n if (_isObject(block.video.source)) {\n if (\n _isObject(block.video.source.s3Location) &&\n _isString(block.video.source.s3Location.uri)\n ) {\n return {\n type: \"video\",\n mimeType,\n fileId: block.video.source.s3Location.uri,\n };\n }\n if (_isBytesArray(block.video.source.bytes)) {\n return {\n type: \"video\",\n mimeType,\n data: block.video.source.bytes,\n };\n }\n }\n }\n return { type: \"non_standard\", value: block };\n}\n\nexport function convertToV1FromChatBedrockConverseInput(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n function* iterateContent(): Iterable<ContentBlock.Standard> {\n const content =\n typeof message.content === \"string\"\n ? [{ type: \"text\", text: message.content }]\n : message.content;\n const blocks = content.map((block) => {\n if (_isContentBlock(block, \"non_standard\") && \"value\" in block) {\n return block.value as ContentBlock;\n }\n return block;\n });\n for (const block of blocks) {\n if (_isContentBlock(block, \"text\") && _isString(block.text)) {\n yield { type: \"text\", text: block.text };\n continue;\n } else if (\n _isContentBlock(block, \"document\") &&\n _isObject(block.document)\n ) {\n yield convertConverseDocumentBlock(block);\n continue;\n } else if (_isContentBlock(block, \"image\") && _isObject(block.image)) {\n yield convertConverseImageBlock(block);\n continue;\n } else if (_isContentBlock(block, \"video\") && _isObject(block.video)) {\n yield convertConverseVideoBlock(block);\n continue;\n }\n if (KNOWN_BLOCK_TYPES.includes(block.type)) {\n yield block as ContentBlock.Standard;\n } else {\n yield { type: \"non_standard\", value: block };\n }\n }\n }\n return Array.from(iterateContent());\n}\n\nfunction convertToV1FromChatBedrockConverseMessage(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n // see `/libs/providers/langchain-aws/src/utils/message_outputs.ts:convertConverseMessageToLangChainMessage`\n function* iterateContent(): Iterable<ContentBlock.Standard> {\n const content =\n typeof message.content === \"string\"\n ? [{ type: \"text\", text: message.content }]\n : message.content;\n for (const block of content) {\n if (_isContentBlock(block, \"cache_point\")) {\n yield { type: \"non_standard\", value: block };\n continue;\n } else if (\n _isContentBlock(block, \"citations_content\") &&\n _isObject(block.citationsContent)\n ) {\n const text = _isArray(block.citationsContent.content)\n ? block.citationsContent.content.reduce((acc: string, item) => {\n if (_isObject(item) && _isString(item.text)) {\n return acc + item.text;\n }\n return acc;\n }, \"\")\n : \"\";\n const annotations = _isArray(block.citationsContent.citations)\n ? block.citationsContent.citations.reduce(\n (acc: Array<ContentBlock.Citation>, item) => {\n if (_isObject(item)) {\n const citedText = _isArray(item.sourceContent)\n ? item.sourceContent.reduce((acc: string, item) => {\n if (_isObject(item) && _isString(item.text)) {\n return acc + item.text;\n }\n return acc;\n }, \"\")\n : \"\";\n const properties = iife(() => {\n if (_isObject(item.location)) {\n const location =\n item.location.documentChar ||\n item.location.documentPage ||\n item.location.documentChunk;\n if (_isObject(location)) {\n return {\n source: _isNumber(location.documentIndex)\n ? location.documentIndex.toString()\n : undefined,\n startIndex: _isNumber(location.start)\n ? location.start\n : undefined,\n endIndex: _isNumber(location.end)\n ? location.end\n : undefined,\n };\n }\n }\n return {};\n });\n acc.push({ type: \"citation\", citedText, ...properties });\n }\n return acc;\n },\n []\n )\n : [];\n yield { type: \"text\", text, annotations };\n continue;\n } else if (\n _isContentBlock(block, \"document\") &&\n _isObject(block.document)\n ) {\n yield convertConverseDocumentBlock(block);\n continue;\n } else if (_isContentBlock(block, \"guard_content\")) {\n yield {\n type: \"non_standard\",\n value: block,\n };\n continue;\n } else if (_isContentBlock(block, \"image\") && _isObject(block.image)) {\n yield convertConverseImageBlock(block);\n continue;\n } else if (\n _isContentBlock(block, \"reasoning_content\") &&\n _isString(block.reasoningText)\n ) {\n yield {\n type: \"reasoning\",\n reasoning: block.reasoningText,\n };\n continue;\n } else if (_isContentBlock(block, \"text\") && _isString(block.text)) {\n yield { type: \"text\", text: block.text };\n continue;\n } else if (_isContentBlock(block, \"tool_result\")) {\n yield { type: \"non_standard\", value: block };\n continue;\n } else if (_isContentBlock(block, \"tool_call\")) {\n // no-op - filtered to tools\n continue;\n } else if (_isContentBlock(block, \"video\") && _isObject(block.video)) {\n yield convertConverseVideoBlock(block);\n continue;\n }\n yield { type: \"non_standard\", value: block };\n }\n }\n return Array.from(iterateContent());\n}\n\nexport const ChatBedrockConverseTranslator: StandardContentBlockTranslator = {\n translateContent: convertToV1FromChatBedrockConverseMessage,\n translateContentChunk: convertToV1FromChatBedrockConverseMessage,\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
const require_utils = require('./utils.cjs');
|
|
2
|
+
|
|
3
|
+
//#region src/messages/block_translators/google_genai.ts
|
|
4
|
+
function convertToV1FromChatGoogleMessage(message) {
|
|
5
|
+
function* iterateContent() {
|
|
6
|
+
const content = typeof message.content === "string" ? [{
|
|
7
|
+
type: "text",
|
|
8
|
+
text: message.content
|
|
9
|
+
}] : message.content;
|
|
10
|
+
for (const block of content) {
|
|
11
|
+
if (require_utils._isContentBlock(block, "text") && require_utils._isString(block.text)) {
|
|
12
|
+
yield {
|
|
13
|
+
type: "text",
|
|
14
|
+
text: block.text
|
|
15
|
+
};
|
|
16
|
+
continue;
|
|
17
|
+
} else if (require_utils._isContentBlock(block, "inlineData") && require_utils._isObject(block.inlineData) && require_utils._isString(block.inlineData.mimeType) && require_utils._isString(block.inlineData.data)) {
|
|
18
|
+
yield {
|
|
19
|
+
type: "file",
|
|
20
|
+
mimeType: block.inlineData.mimeType,
|
|
21
|
+
data: block.inlineData.data
|
|
22
|
+
};
|
|
23
|
+
continue;
|
|
24
|
+
} else if (require_utils._isContentBlock(block, "functionCall") && require_utils._isObject(block.functionCall) && require_utils._isString(block.functionCall.name) && require_utils._isObject(block.functionCall.args)) {
|
|
25
|
+
yield {
|
|
26
|
+
type: "tool_call",
|
|
27
|
+
id: message.id,
|
|
28
|
+
name: block.functionCall.name,
|
|
29
|
+
args: block.functionCall.args
|
|
30
|
+
};
|
|
31
|
+
continue;
|
|
32
|
+
} else if (require_utils._isContentBlock(block, "functionResponse")) {
|
|
33
|
+
yield {
|
|
34
|
+
type: "non_standard",
|
|
35
|
+
value: block
|
|
36
|
+
};
|
|
37
|
+
continue;
|
|
38
|
+
} else if (require_utils._isContentBlock(block, "fileData") && require_utils._isObject(block.fileData) && require_utils._isString(block.fileData.mimeType) && require_utils._isString(block.fileData.fileUri)) {
|
|
39
|
+
yield {
|
|
40
|
+
type: "file",
|
|
41
|
+
mimeType: block.fileData.mimeType,
|
|
42
|
+
fileId: block.fileData.fileUri
|
|
43
|
+
};
|
|
44
|
+
continue;
|
|
45
|
+
} else if (require_utils._isContentBlock(block, "executableCode")) {
|
|
46
|
+
yield {
|
|
47
|
+
type: "non_standard",
|
|
48
|
+
value: block
|
|
49
|
+
};
|
|
50
|
+
continue;
|
|
51
|
+
} else if (require_utils._isContentBlock(block, "codeExecutionResult")) {
|
|
52
|
+
yield {
|
|
53
|
+
type: "non_standard",
|
|
54
|
+
value: block
|
|
55
|
+
};
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
yield {
|
|
59
|
+
type: "non_standard",
|
|
60
|
+
value: block
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return Array.from(iterateContent());
|
|
65
|
+
}
|
|
66
|
+
const ChatGoogleGenAITranslator = {
|
|
67
|
+
translateContent: convertToV1FromChatGoogleMessage,
|
|
68
|
+
translateContentChunk: convertToV1FromChatGoogleMessage
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
//#endregion
|
|
72
|
+
exports.ChatGoogleGenAITranslator = ChatGoogleGenAITranslator;
|
|
73
|
+
//# sourceMappingURL=google_genai.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google_genai.cjs","names":["message: AIMessage","_isContentBlock","_isString","_isObject","ChatGoogleGenAITranslator: StandardContentBlockTranslator"],"sources":["../../../src/messages/block_translators/google_genai.ts"],"sourcesContent":["import { AIMessage } from \"../ai.js\";\nimport { ContentBlock } from \"../content/index.js\";\nimport type { StandardContentBlockTranslator } from \"./index.js\";\nimport { _isContentBlock, _isObject, _isString } from \"./utils.js\";\n\nfunction convertToV1FromChatGoogleMessage(\n message: AIMessage\n): Array<ContentBlock.Standard> {\n // see `libs/providers/langchain-google-genai/src/utils/common.ts:mapGenerateContentResultToChatResult\n function* iterateContent(): Iterable<ContentBlock.Standard> {\n const content =\n typeof message.content === \"string\"\n ? [{ type: \"text\", text: message.content }]\n : message.content;\n for (const block of content) {\n if (_isContentBlock(block, \"text\") && _isString(block.text)) {\n yield { type: \"text\", text: block.text };\n continue;\n } else if (\n _isContentBlock(block, \"inlineData\") &&\n _isObject(block.inlineData) &&\n _isString(block.inlineData.mimeType) &&\n _isString(block.inlineData.data)\n ) {\n yield {\n type: \"file\",\n mimeType: block.inlineData.mimeType,\n data: block.inlineData.data,\n };\n continue;\n } else if (\n _isContentBlock(block, \"functionCall\") &&\n _isObject(block.functionCall) &&\n _isString(block.functionCall.name) &&\n _isObject(block.functionCall.args)\n ) {\n yield {\n type: \"tool_call\",\n id: message.id,\n name: block.functionCall.name,\n args: block.functionCall.args,\n };\n continue;\n } else if (_isContentBlock(block, \"functionResponse\")) {\n yield { type: \"non_standard\", value: block };\n continue;\n } else if (\n _isContentBlock(block, \"fileData\") &&\n _isObject(block.fileData) &&\n _isString(block.fileData.mimeType) &&\n _isString(block.fileData.fileUri)\n ) {\n yield {\n type: \"file\",\n mimeType: block.fileData.mimeType,\n fileId: block.fileData.fileUri,\n };\n continue;\n } else if (_isContentBlock(block, \"executableCode\")) {\n yield { type: \"non_standard\", value: block };\n continue;\n } else if (_isContentBlock(block, \"codeExecutionResult\")) {\n yield { type: \"non_standard\", value: block };\n continue;\n }\n yield { type: \"non_standard\", value: block };\n }\n }\n return Array.from(iterateContent());\n}\n\nexport const ChatGoogleGenAITranslator: StandardContentBlockTranslator = {\n translateContent: convertToV1FromChatGoogleMessage,\n translateContentChunk: convertToV1FromChatGoogleMessage,\n};\n"],"mappings":";;;AAKA,SAAS,iCACPA,SAC8B;CAE9B,UAAU,iBAAkD;EAC1D,MAAM,UACJ,OAAO,QAAQ,YAAY,WACvB,CAAC;GAAE,MAAM;GAAQ,MAAM,QAAQ;EAAS,CAAC,IACzC,QAAQ;AACd,OAAK,MAAM,SAAS,SAAS;AAC3B,OAAIC,8BAAgB,OAAO,OAAO,IAAIC,wBAAU,MAAM,KAAK,EAAE;IAC3D,MAAM;KAAE,MAAM;KAAQ,MAAM,MAAM;IAAM;AACxC;GACD,WACCD,8BAAgB,OAAO,aAAa,IACpCE,wBAAU,MAAM,WAAW,IAC3BD,wBAAU,MAAM,WAAW,SAAS,IACpCA,wBAAU,MAAM,WAAW,KAAK,EAChC;IACA,MAAM;KACJ,MAAM;KACN,UAAU,MAAM,WAAW;KAC3B,MAAM,MAAM,WAAW;IACxB;AACD;GACD,WACCD,8BAAgB,OAAO,eAAe,IACtCE,wBAAU,MAAM,aAAa,IAC7BD,wBAAU,MAAM,aAAa,KAAK,IAClCC,wBAAU,MAAM,aAAa,KAAK,EAClC;IACA,MAAM;KACJ,MAAM;KACN,IAAI,QAAQ;KACZ,MAAM,MAAM,aAAa;KACzB,MAAM,MAAM,aAAa;IAC1B;AACD;GACD,WAAUF,8BAAgB,OAAO,mBAAmB,EAAE;IACrD,MAAM;KAAE,MAAM;KAAgB,OAAO;IAAO;AAC5C;GACD,WACCA,8BAAgB,OAAO,WAAW,IAClCE,wBAAU,MAAM,SAAS,IACzBD,wBAAU,MAAM,SAAS,SAAS,IAClCA,wBAAU,MAAM,SAAS,QAAQ,EACjC;IACA,MAAM;KACJ,MAAM;KACN,UAAU,MAAM,SAAS;KACzB,QAAQ,MAAM,SAAS;IACxB;AACD;GACD,WAAUD,8BAAgB,OAAO,iBAAiB,EAAE;IACnD,MAAM;KAAE,MAAM;KAAgB,OAAO;IAAO;AAC5C;GACD,WAAUA,8BAAgB,OAAO,sBAAsB,EAAE;IACxD,MAAM;KAAE,MAAM;KAAgB,OAAO;IAAO;AAC5C;GACD;GACD,MAAM;IAAE,MAAM;IAAgB,OAAO;GAAO;EAC7C;CACF;AACD,QAAO,MAAM,KAAK,gBAAgB,CAAC;AACpC;AAED,MAAaG,4BAA4D;CACvE,kBAAkB;CAClB,uBAAuB;AACxB"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { _isContentBlock, _isObject, _isString } from "./utils.js";
|
|
2
|
+
|
|
3
|
+
//#region src/messages/block_translators/google_genai.ts
|
|
4
|
+
function convertToV1FromChatGoogleMessage(message) {
|
|
5
|
+
function* iterateContent() {
|
|
6
|
+
const content = typeof message.content === "string" ? [{
|
|
7
|
+
type: "text",
|
|
8
|
+
text: message.content
|
|
9
|
+
}] : message.content;
|
|
10
|
+
for (const block of content) {
|
|
11
|
+
if (_isContentBlock(block, "text") && _isString(block.text)) {
|
|
12
|
+
yield {
|
|
13
|
+
type: "text",
|
|
14
|
+
text: block.text
|
|
15
|
+
};
|
|
16
|
+
continue;
|
|
17
|
+
} else if (_isContentBlock(block, "inlineData") && _isObject(block.inlineData) && _isString(block.inlineData.mimeType) && _isString(block.inlineData.data)) {
|
|
18
|
+
yield {
|
|
19
|
+
type: "file",
|
|
20
|
+
mimeType: block.inlineData.mimeType,
|
|
21
|
+
data: block.inlineData.data
|
|
22
|
+
};
|
|
23
|
+
continue;
|
|
24
|
+
} else if (_isContentBlock(block, "functionCall") && _isObject(block.functionCall) && _isString(block.functionCall.name) && _isObject(block.functionCall.args)) {
|
|
25
|
+
yield {
|
|
26
|
+
type: "tool_call",
|
|
27
|
+
id: message.id,
|
|
28
|
+
name: block.functionCall.name,
|
|
29
|
+
args: block.functionCall.args
|
|
30
|
+
};
|
|
31
|
+
continue;
|
|
32
|
+
} else if (_isContentBlock(block, "functionResponse")) {
|
|
33
|
+
yield {
|
|
34
|
+
type: "non_standard",
|
|
35
|
+
value: block
|
|
36
|
+
};
|
|
37
|
+
continue;
|
|
38
|
+
} else if (_isContentBlock(block, "fileData") && _isObject(block.fileData) && _isString(block.fileData.mimeType) && _isString(block.fileData.fileUri)) {
|
|
39
|
+
yield {
|
|
40
|
+
type: "file",
|
|
41
|
+
mimeType: block.fileData.mimeType,
|
|
42
|
+
fileId: block.fileData.fileUri
|
|
43
|
+
};
|
|
44
|
+
continue;
|
|
45
|
+
} else if (_isContentBlock(block, "executableCode")) {
|
|
46
|
+
yield {
|
|
47
|
+
type: "non_standard",
|
|
48
|
+
value: block
|
|
49
|
+
};
|
|
50
|
+
continue;
|
|
51
|
+
} else if (_isContentBlock(block, "codeExecutionResult")) {
|
|
52
|
+
yield {
|
|
53
|
+
type: "non_standard",
|
|
54
|
+
value: block
|
|
55
|
+
};
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
yield {
|
|
59
|
+
type: "non_standard",
|
|
60
|
+
value: block
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return Array.from(iterateContent());
|
|
65
|
+
}
|
|
66
|
+
const ChatGoogleGenAITranslator = {
|
|
67
|
+
translateContent: convertToV1FromChatGoogleMessage,
|
|
68
|
+
translateContentChunk: convertToV1FromChatGoogleMessage
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
//#endregion
|
|
72
|
+
export { ChatGoogleGenAITranslator };
|
|
73
|
+
//# sourceMappingURL=google_genai.js.map
|