@langchain/anthropic 1.5.7 → 1.5.9
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/CHANGELOG.md +12 -0
- package/dist/_virtual/_rolldown/runtime.cjs +1 -1
- package/dist/chat_models.cjs +2 -1
- package/dist/chat_models.cjs.map +1 -1
- package/dist/chat_models.d.cts +2 -2
- package/dist/chat_models.d.cts.map +1 -1
- package/dist/chat_models.d.ts +2 -2
- package/dist/chat_models.d.ts.map +1 -1
- package/dist/chat_models.js +2 -1
- package/dist/chat_models.js.map +1 -1
- package/dist/output_parsers.cjs.map +1 -1
- package/dist/tools/bash.cjs.map +1 -1
- package/dist/tools/computer.cjs.map +1 -1
- package/dist/tools/memory.cjs.map +1 -1
- package/dist/tools/textEditor.cjs.map +1 -1
- package/dist/utils/content.cjs +52 -50
- package/dist/utils/content.cjs.map +1 -1
- package/dist/utils/content.js +52 -50
- package/dist/utils/content.js.map +1 -1
- package/dist/utils/errors.cjs.map +1 -1
- package/dist/utils/message_inputs.cjs +44 -40
- package/dist/utils/message_inputs.cjs.map +1 -1
- package/dist/utils/message_inputs.js +44 -40
- package/dist/utils/message_inputs.js.map +1 -1
- package/dist/utils/message_outputs.cjs +40 -35
- package/dist/utils/message_outputs.cjs.map +1 -1
- package/dist/utils/message_outputs.js +40 -35
- package/dist/utils/message_outputs.js.map +1 -1
- package/dist/utils/params.cjs +1 -0
- package/dist/utils/params.cjs.map +1 -1
- package/dist/utils/params.js +1 -0
- package/dist/utils/params.js.map +1 -1
- package/dist/utils/prompts.cjs +2 -1
- package/dist/utils/prompts.cjs.map +1 -1
- package/dist/utils/prompts.js +2 -1
- package/dist/utils/prompts.js.map +1 -1
- package/dist/utils/standard.cjs +11 -10
- package/dist/utils/standard.cjs.map +1 -1
- package/dist/utils/standard.js +11 -10
- package/dist/utils/standard.js.map +1 -1
- package/dist/utils/stream_events.cjs +6 -8
- package/dist/utils/stream_events.cjs.map +1 -1
- package/dist/utils/stream_events.js +6 -8
- package/dist/utils/stream_events.js.map +1 -1
- package/package.json +4 -4
package/dist/utils/content.cjs
CHANGED
|
@@ -90,56 +90,58 @@ const standardContentBlockConverter = {
|
|
|
90
90
|
..."title" in (block.metadata ?? {}) ? { title: block.metadata.title } : {}
|
|
91
91
|
};
|
|
92
92
|
throw new Error(`Unsupported file mime type for file url source: ${block.mime_type}`);
|
|
93
|
-
} else if (block.source_type === "text")
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
type: "
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
type: "
|
|
127
|
-
|
|
128
|
-
type: "
|
|
129
|
-
|
|
130
|
-
type: "
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
93
|
+
} else if (block.source_type === "text") {
|
|
94
|
+
if (mime_type === "text/plain" || mime_type === "") return {
|
|
95
|
+
type: "document",
|
|
96
|
+
source: {
|
|
97
|
+
type: "text",
|
|
98
|
+
data: block.text,
|
|
99
|
+
media_type: block.mime_type ?? ""
|
|
100
|
+
},
|
|
101
|
+
..."cache_control" in (block.metadata ?? {}) ? { cache_control: block.metadata.cache_control } : {},
|
|
102
|
+
..."citations" in (block.metadata ?? {}) ? { citations: block.metadata.citations } : {},
|
|
103
|
+
..."context" in (block.metadata ?? {}) ? { context: block.metadata.context } : {},
|
|
104
|
+
..."title" in (block.metadata ?? {}) ? { title: block.metadata.title } : {}
|
|
105
|
+
};
|
|
106
|
+
else throw new Error(`Unsupported file mime type for file text source: ${block.mime_type}`);
|
|
107
|
+
} else if (block.source_type === "base64") {
|
|
108
|
+
if (mime_type === "application/pdf" || mime_type === "") return {
|
|
109
|
+
type: "document",
|
|
110
|
+
source: {
|
|
111
|
+
type: "base64",
|
|
112
|
+
data: block.data,
|
|
113
|
+
media_type: "application/pdf"
|
|
114
|
+
},
|
|
115
|
+
..."cache_control" in (block.metadata ?? {}) ? { cache_control: block.metadata.cache_control } : {},
|
|
116
|
+
..."citations" in (block.metadata ?? {}) ? { citations: block.metadata.citations } : {},
|
|
117
|
+
..."context" in (block.metadata ?? {}) ? { context: block.metadata.context } : {},
|
|
118
|
+
..."title" in (block.metadata ?? {}) ? { title: block.metadata.title } : {}
|
|
119
|
+
};
|
|
120
|
+
else if ([
|
|
121
|
+
"image/jpeg",
|
|
122
|
+
"image/png",
|
|
123
|
+
"image/gif",
|
|
124
|
+
"image/webp"
|
|
125
|
+
].includes(mime_type)) return {
|
|
126
|
+
type: "document",
|
|
127
|
+
source: {
|
|
128
|
+
type: "content",
|
|
129
|
+
content: [{
|
|
130
|
+
type: "image",
|
|
131
|
+
source: {
|
|
132
|
+
type: "base64",
|
|
133
|
+
data: block.data,
|
|
134
|
+
media_type: mime_type
|
|
135
|
+
}
|
|
136
|
+
}]
|
|
137
|
+
},
|
|
138
|
+
..."cache_control" in (block.metadata ?? {}) ? { cache_control: block.metadata.cache_control } : {},
|
|
139
|
+
..."citations" in (block.metadata ?? {}) ? { citations: block.metadata.citations } : {},
|
|
140
|
+
..."context" in (block.metadata ?? {}) ? { context: block.metadata.context } : {},
|
|
141
|
+
..."title" in (block.metadata ?? {}) ? { title: block.metadata.title } : {}
|
|
142
|
+
};
|
|
143
|
+
else throw new Error(`Unsupported file mime type for file base64 source: ${block.mime_type}`);
|
|
144
|
+
} else throw new Error(`Unsupported file source type: ${block.source_type}`);
|
|
143
145
|
}
|
|
144
146
|
};
|
|
145
147
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.cjs","names":[],"sources":["../../src/utils/content.ts"],"sourcesContent":["import type Anthropic from \"@anthropic-ai/sdk\";\nimport {\n parseBase64DataUrl,\n type StandardContentBlockConverter,\n} from \"@langchain/core/messages\";\n\nexport function _isAnthropicThinkingBlock(\n block: unknown\n): block is Anthropic.Messages.ThinkingBlockParam {\n return (\n typeof block === \"object\" &&\n block !== null &&\n \"type\" in block &&\n block.type === \"thinking\"\n );\n}\n\nexport function _isAnthropicRedactedThinkingBlock(\n block: unknown\n): block is Anthropic.Messages.RedactedThinkingBlockParam {\n return (\n typeof block === \"object\" &&\n block !== null &&\n \"type\" in block &&\n block.type === \"redacted_thinking\"\n );\n}\n\nexport function _isAnthropicCompactionBlock(\n block: unknown\n): block is Anthropic.Beta.BetaCompactionBlockParam {\n return (\n typeof block === \"object\" &&\n block !== null &&\n \"type\" in block &&\n block.type === \"compaction\"\n );\n}\n\nexport function _isAnthropicSearchResultBlock(\n block: unknown\n): block is Anthropic.Beta.BetaSearchResultBlockParam {\n return (\n typeof block === \"object\" &&\n block !== null &&\n \"type\" in block &&\n block.type === \"search_result\"\n );\n}\n\nexport function _isAnthropicImageBlockParam(\n block: unknown\n): block is Anthropic.Messages.ImageBlockParam {\n if (typeof block !== \"object\" || block == null) {\n return false;\n }\n if (!(\"type\" in block) || block.type !== \"image\") {\n return false;\n }\n\n if (\n !(\"source\" in block) ||\n typeof block.source !== \"object\" ||\n block.source == null\n ) {\n return false;\n }\n\n if (!(\"type\" in block.source)) {\n return false;\n }\n\n if (block.source.type === \"base64\") {\n if (!(\"media_type\" in block.source)) {\n return false;\n }\n\n if (typeof block.source.media_type !== \"string\") {\n return false;\n }\n\n if (!(\"data\" in block.source)) {\n return false;\n }\n\n if (typeof block.source.data !== \"string\") {\n return false;\n }\n\n return true;\n }\n\n if (block.source.type === \"url\") {\n if (!(\"url\" in block.source)) {\n return false;\n }\n\n if (typeof block.source.url !== \"string\") {\n return false;\n }\n\n return true;\n }\n\n return false;\n}\n\nexport const standardContentBlockConverter: StandardContentBlockConverter<{\n text: Anthropic.Messages.TextBlockParam;\n image: Anthropic.Messages.ImageBlockParam;\n file: Anthropic.Messages.DocumentBlockParam;\n}> = {\n providerName: \"anthropic\",\n\n fromStandardTextBlock(block): Anthropic.Messages.TextBlockParam {\n return {\n type: \"text\",\n text: block.text,\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n } as Anthropic.Messages.TextBlockParam;\n },\n\n fromStandardImageBlock(block): Anthropic.Messages.ImageBlockParam {\n if (block.source_type === \"url\") {\n const data = parseBase64DataUrl({\n dataUrl: block.url,\n asTypedArray: false,\n });\n if (data) {\n return {\n type: \"image\",\n source: {\n type: \"base64\",\n data: data.data,\n media_type: data.mime_type,\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n } as Anthropic.Messages.ImageBlockParam;\n } else {\n return {\n type: \"image\",\n source: {\n type: \"url\",\n url: block.url,\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n } as Anthropic.Messages.ImageBlockParam;\n }\n } else {\n if (block.source_type === \"base64\") {\n return {\n type: \"image\",\n source: {\n type: \"base64\",\n data: block.data,\n media_type: block.mime_type ?? \"\",\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n } as Anthropic.Messages.ImageBlockParam;\n } else {\n throw new Error(`Unsupported image source type: ${block.source_type}`);\n }\n }\n },\n\n fromStandardFileBlock(block): Anthropic.Messages.DocumentBlockParam {\n const mime_type = (block.mime_type ?? \"\").split(\";\")[0];\n\n if (block.source_type === \"url\") {\n if (mime_type === \"application/pdf\" || mime_type === \"\") {\n return {\n type: \"document\",\n source: {\n type: \"url\",\n url: block.url,\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"context\" in (block.metadata ?? {})\n ? { context: block.metadata!.context }\n : {}),\n ...(\"title\" in (block.metadata ?? {})\n ? { title: block.metadata!.title }\n : {}),\n } as Anthropic.Messages.DocumentBlockParam;\n }\n throw new Error(\n `Unsupported file mime type for file url source: ${block.mime_type}`\n );\n } else if (block.source_type === \"text\") {\n if (mime_type === \"text/plain\" || mime_type === \"\") {\n return {\n type: \"document\",\n source: {\n type: \"text\",\n data: block.text,\n media_type: block.mime_type ?? \"\",\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"context\" in (block.metadata ?? {})\n ? { context: block.metadata!.context }\n : {}),\n ...(\"title\" in (block.metadata ?? {})\n ? { title: block.metadata!.title }\n : {}),\n } as Anthropic.Messages.DocumentBlockParam;\n } else {\n throw new Error(\n `Unsupported file mime type for file text source: ${block.mime_type}`\n );\n }\n } else if (block.source_type === \"base64\") {\n if (mime_type === \"application/pdf\" || mime_type === \"\") {\n return {\n type: \"document\",\n source: {\n type: \"base64\",\n data: block.data,\n media_type: \"application/pdf\",\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"context\" in (block.metadata ?? {})\n ? { context: block.metadata!.context }\n : {}),\n ...(\"title\" in (block.metadata ?? {})\n ? { title: block.metadata!.title }\n : {}),\n } as Anthropic.Messages.DocumentBlockParam;\n } else if (\n [\"image/jpeg\", \"image/png\", \"image/gif\", \"image/webp\"].includes(\n mime_type\n )\n ) {\n return {\n type: \"document\",\n source: {\n type: \"content\",\n content: [\n {\n type: \"image\",\n source: {\n type: \"base64\",\n data: block.data,\n media_type: mime_type as\n | \"image/jpeg\"\n | \"image/png\"\n | \"image/gif\"\n | \"image/webp\",\n },\n },\n ],\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"context\" in (block.metadata ?? {})\n ? { context: block.metadata!.context }\n : {}),\n ...(\"title\" in (block.metadata ?? {})\n ? { title: block.metadata!.title }\n : {}),\n } as Anthropic.Messages.DocumentBlockParam;\n } else {\n throw new Error(\n `Unsupported file mime type for file base64 source: ${block.mime_type}`\n );\n }\n } else {\n throw new Error(`Unsupported file source type: ${block.source_type}`);\n }\n },\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"content.cjs","names":["parseBase64DataUrl"],"sources":["../../src/utils/content.ts"],"sourcesContent":["import type Anthropic from \"@anthropic-ai/sdk\";\nimport {\n parseBase64DataUrl,\n type StandardContentBlockConverter,\n} from \"@langchain/core/messages\";\n\nexport function _isAnthropicThinkingBlock(\n block: unknown\n): block is Anthropic.Messages.ThinkingBlockParam {\n return (\n typeof block === \"object\" &&\n block !== null &&\n \"type\" in block &&\n block.type === \"thinking\"\n );\n}\n\nexport function _isAnthropicRedactedThinkingBlock(\n block: unknown\n): block is Anthropic.Messages.RedactedThinkingBlockParam {\n return (\n typeof block === \"object\" &&\n block !== null &&\n \"type\" in block &&\n block.type === \"redacted_thinking\"\n );\n}\n\nexport function _isAnthropicCompactionBlock(\n block: unknown\n): block is Anthropic.Beta.BetaCompactionBlockParam {\n return (\n typeof block === \"object\" &&\n block !== null &&\n \"type\" in block &&\n block.type === \"compaction\"\n );\n}\n\nexport function _isAnthropicSearchResultBlock(\n block: unknown\n): block is Anthropic.Beta.BetaSearchResultBlockParam {\n return (\n typeof block === \"object\" &&\n block !== null &&\n \"type\" in block &&\n block.type === \"search_result\"\n );\n}\n\nexport function _isAnthropicImageBlockParam(\n block: unknown\n): block is Anthropic.Messages.ImageBlockParam {\n if (typeof block !== \"object\" || block == null) {\n return false;\n }\n if (!(\"type\" in block) || block.type !== \"image\") {\n return false;\n }\n\n if (\n !(\"source\" in block) ||\n typeof block.source !== \"object\" ||\n block.source == null\n ) {\n return false;\n }\n\n if (!(\"type\" in block.source)) {\n return false;\n }\n\n if (block.source.type === \"base64\") {\n if (!(\"media_type\" in block.source)) {\n return false;\n }\n\n if (typeof block.source.media_type !== \"string\") {\n return false;\n }\n\n if (!(\"data\" in block.source)) {\n return false;\n }\n\n if (typeof block.source.data !== \"string\") {\n return false;\n }\n\n return true;\n }\n\n if (block.source.type === \"url\") {\n if (!(\"url\" in block.source)) {\n return false;\n }\n\n if (typeof block.source.url !== \"string\") {\n return false;\n }\n\n return true;\n }\n\n return false;\n}\n\nexport const standardContentBlockConverter: StandardContentBlockConverter<{\n text: Anthropic.Messages.TextBlockParam;\n image: Anthropic.Messages.ImageBlockParam;\n file: Anthropic.Messages.DocumentBlockParam;\n}> = {\n providerName: \"anthropic\",\n\n fromStandardTextBlock(block): Anthropic.Messages.TextBlockParam {\n return {\n type: \"text\",\n text: block.text,\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n } as Anthropic.Messages.TextBlockParam;\n },\n\n fromStandardImageBlock(block): Anthropic.Messages.ImageBlockParam {\n if (block.source_type === \"url\") {\n const data = parseBase64DataUrl({\n dataUrl: block.url,\n asTypedArray: false,\n });\n if (data) {\n return {\n type: \"image\",\n source: {\n type: \"base64\",\n data: data.data,\n media_type: data.mime_type,\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n } as Anthropic.Messages.ImageBlockParam;\n } else {\n return {\n type: \"image\",\n source: {\n type: \"url\",\n url: block.url,\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n } as Anthropic.Messages.ImageBlockParam;\n }\n } else {\n if (block.source_type === \"base64\") {\n return {\n type: \"image\",\n source: {\n type: \"base64\",\n data: block.data,\n media_type: block.mime_type ?? \"\",\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n } as Anthropic.Messages.ImageBlockParam;\n } else {\n throw new Error(`Unsupported image source type: ${block.source_type}`);\n }\n }\n },\n\n fromStandardFileBlock(block): Anthropic.Messages.DocumentBlockParam {\n const mime_type = (block.mime_type ?? \"\").split(\";\")[0];\n\n if (block.source_type === \"url\") {\n if (mime_type === \"application/pdf\" || mime_type === \"\") {\n return {\n type: \"document\",\n source: {\n type: \"url\",\n url: block.url,\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"context\" in (block.metadata ?? {})\n ? { context: block.metadata!.context }\n : {}),\n ...(\"title\" in (block.metadata ?? {})\n ? { title: block.metadata!.title }\n : {}),\n } as Anthropic.Messages.DocumentBlockParam;\n }\n throw new Error(\n `Unsupported file mime type for file url source: ${block.mime_type}`\n );\n } else if (block.source_type === \"text\") {\n if (mime_type === \"text/plain\" || mime_type === \"\") {\n return {\n type: \"document\",\n source: {\n type: \"text\",\n data: block.text,\n media_type: block.mime_type ?? \"\",\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"context\" in (block.metadata ?? {})\n ? { context: block.metadata!.context }\n : {}),\n ...(\"title\" in (block.metadata ?? {})\n ? { title: block.metadata!.title }\n : {}),\n } as Anthropic.Messages.DocumentBlockParam;\n } else {\n throw new Error(\n `Unsupported file mime type for file text source: ${block.mime_type}`\n );\n }\n } else if (block.source_type === \"base64\") {\n if (mime_type === \"application/pdf\" || mime_type === \"\") {\n return {\n type: \"document\",\n source: {\n type: \"base64\",\n data: block.data,\n media_type: \"application/pdf\",\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"context\" in (block.metadata ?? {})\n ? { context: block.metadata!.context }\n : {}),\n ...(\"title\" in (block.metadata ?? {})\n ? { title: block.metadata!.title }\n : {}),\n } as Anthropic.Messages.DocumentBlockParam;\n } else if (\n [\"image/jpeg\", \"image/png\", \"image/gif\", \"image/webp\"].includes(\n mime_type\n )\n ) {\n return {\n type: \"document\",\n source: {\n type: \"content\",\n content: [\n {\n type: \"image\",\n source: {\n type: \"base64\",\n data: block.data,\n media_type: mime_type as\n | \"image/jpeg\"\n | \"image/png\"\n | \"image/gif\"\n | \"image/webp\",\n },\n },\n ],\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"context\" in (block.metadata ?? {})\n ? { context: block.metadata!.context }\n : {}),\n ...(\"title\" in (block.metadata ?? {})\n ? { title: block.metadata!.title }\n : {}),\n } as Anthropic.Messages.DocumentBlockParam;\n } else {\n throw new Error(\n `Unsupported file mime type for file base64 source: ${block.mime_type}`\n );\n }\n } else {\n throw new Error(`Unsupported file source type: ${block.source_type}`);\n }\n },\n};\n"],"mappings":"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"}
|
package/dist/utils/content.js
CHANGED
|
@@ -90,56 +90,58 @@ const standardContentBlockConverter = {
|
|
|
90
90
|
..."title" in (block.metadata ?? {}) ? { title: block.metadata.title } : {}
|
|
91
91
|
};
|
|
92
92
|
throw new Error(`Unsupported file mime type for file url source: ${block.mime_type}`);
|
|
93
|
-
} else if (block.source_type === "text")
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
type: "
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
type: "
|
|
127
|
-
|
|
128
|
-
type: "
|
|
129
|
-
|
|
130
|
-
type: "
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
93
|
+
} else if (block.source_type === "text") {
|
|
94
|
+
if (mime_type === "text/plain" || mime_type === "") return {
|
|
95
|
+
type: "document",
|
|
96
|
+
source: {
|
|
97
|
+
type: "text",
|
|
98
|
+
data: block.text,
|
|
99
|
+
media_type: block.mime_type ?? ""
|
|
100
|
+
},
|
|
101
|
+
..."cache_control" in (block.metadata ?? {}) ? { cache_control: block.metadata.cache_control } : {},
|
|
102
|
+
..."citations" in (block.metadata ?? {}) ? { citations: block.metadata.citations } : {},
|
|
103
|
+
..."context" in (block.metadata ?? {}) ? { context: block.metadata.context } : {},
|
|
104
|
+
..."title" in (block.metadata ?? {}) ? { title: block.metadata.title } : {}
|
|
105
|
+
};
|
|
106
|
+
else throw new Error(`Unsupported file mime type for file text source: ${block.mime_type}`);
|
|
107
|
+
} else if (block.source_type === "base64") {
|
|
108
|
+
if (mime_type === "application/pdf" || mime_type === "") return {
|
|
109
|
+
type: "document",
|
|
110
|
+
source: {
|
|
111
|
+
type: "base64",
|
|
112
|
+
data: block.data,
|
|
113
|
+
media_type: "application/pdf"
|
|
114
|
+
},
|
|
115
|
+
..."cache_control" in (block.metadata ?? {}) ? { cache_control: block.metadata.cache_control } : {},
|
|
116
|
+
..."citations" in (block.metadata ?? {}) ? { citations: block.metadata.citations } : {},
|
|
117
|
+
..."context" in (block.metadata ?? {}) ? { context: block.metadata.context } : {},
|
|
118
|
+
..."title" in (block.metadata ?? {}) ? { title: block.metadata.title } : {}
|
|
119
|
+
};
|
|
120
|
+
else if ([
|
|
121
|
+
"image/jpeg",
|
|
122
|
+
"image/png",
|
|
123
|
+
"image/gif",
|
|
124
|
+
"image/webp"
|
|
125
|
+
].includes(mime_type)) return {
|
|
126
|
+
type: "document",
|
|
127
|
+
source: {
|
|
128
|
+
type: "content",
|
|
129
|
+
content: [{
|
|
130
|
+
type: "image",
|
|
131
|
+
source: {
|
|
132
|
+
type: "base64",
|
|
133
|
+
data: block.data,
|
|
134
|
+
media_type: mime_type
|
|
135
|
+
}
|
|
136
|
+
}]
|
|
137
|
+
},
|
|
138
|
+
..."cache_control" in (block.metadata ?? {}) ? { cache_control: block.metadata.cache_control } : {},
|
|
139
|
+
..."citations" in (block.metadata ?? {}) ? { citations: block.metadata.citations } : {},
|
|
140
|
+
..."context" in (block.metadata ?? {}) ? { context: block.metadata.context } : {},
|
|
141
|
+
..."title" in (block.metadata ?? {}) ? { title: block.metadata.title } : {}
|
|
142
|
+
};
|
|
143
|
+
else throw new Error(`Unsupported file mime type for file base64 source: ${block.mime_type}`);
|
|
144
|
+
} else throw new Error(`Unsupported file source type: ${block.source_type}`);
|
|
143
145
|
}
|
|
144
146
|
};
|
|
145
147
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.js","names":[],"sources":["../../src/utils/content.ts"],"sourcesContent":["import type Anthropic from \"@anthropic-ai/sdk\";\nimport {\n parseBase64DataUrl,\n type StandardContentBlockConverter,\n} from \"@langchain/core/messages\";\n\nexport function _isAnthropicThinkingBlock(\n block: unknown\n): block is Anthropic.Messages.ThinkingBlockParam {\n return (\n typeof block === \"object\" &&\n block !== null &&\n \"type\" in block &&\n block.type === \"thinking\"\n );\n}\n\nexport function _isAnthropicRedactedThinkingBlock(\n block: unknown\n): block is Anthropic.Messages.RedactedThinkingBlockParam {\n return (\n typeof block === \"object\" &&\n block !== null &&\n \"type\" in block &&\n block.type === \"redacted_thinking\"\n );\n}\n\nexport function _isAnthropicCompactionBlock(\n block: unknown\n): block is Anthropic.Beta.BetaCompactionBlockParam {\n return (\n typeof block === \"object\" &&\n block !== null &&\n \"type\" in block &&\n block.type === \"compaction\"\n );\n}\n\nexport function _isAnthropicSearchResultBlock(\n block: unknown\n): block is Anthropic.Beta.BetaSearchResultBlockParam {\n return (\n typeof block === \"object\" &&\n block !== null &&\n \"type\" in block &&\n block.type === \"search_result\"\n );\n}\n\nexport function _isAnthropicImageBlockParam(\n block: unknown\n): block is Anthropic.Messages.ImageBlockParam {\n if (typeof block !== \"object\" || block == null) {\n return false;\n }\n if (!(\"type\" in block) || block.type !== \"image\") {\n return false;\n }\n\n if (\n !(\"source\" in block) ||\n typeof block.source !== \"object\" ||\n block.source == null\n ) {\n return false;\n }\n\n if (!(\"type\" in block.source)) {\n return false;\n }\n\n if (block.source.type === \"base64\") {\n if (!(\"media_type\" in block.source)) {\n return false;\n }\n\n if (typeof block.source.media_type !== \"string\") {\n return false;\n }\n\n if (!(\"data\" in block.source)) {\n return false;\n }\n\n if (typeof block.source.data !== \"string\") {\n return false;\n }\n\n return true;\n }\n\n if (block.source.type === \"url\") {\n if (!(\"url\" in block.source)) {\n return false;\n }\n\n if (typeof block.source.url !== \"string\") {\n return false;\n }\n\n return true;\n }\n\n return false;\n}\n\nexport const standardContentBlockConverter: StandardContentBlockConverter<{\n text: Anthropic.Messages.TextBlockParam;\n image: Anthropic.Messages.ImageBlockParam;\n file: Anthropic.Messages.DocumentBlockParam;\n}> = {\n providerName: \"anthropic\",\n\n fromStandardTextBlock(block): Anthropic.Messages.TextBlockParam {\n return {\n type: \"text\",\n text: block.text,\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n } as Anthropic.Messages.TextBlockParam;\n },\n\n fromStandardImageBlock(block): Anthropic.Messages.ImageBlockParam {\n if (block.source_type === \"url\") {\n const data = parseBase64DataUrl({\n dataUrl: block.url,\n asTypedArray: false,\n });\n if (data) {\n return {\n type: \"image\",\n source: {\n type: \"base64\",\n data: data.data,\n media_type: data.mime_type,\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n } as Anthropic.Messages.ImageBlockParam;\n } else {\n return {\n type: \"image\",\n source: {\n type: \"url\",\n url: block.url,\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n } as Anthropic.Messages.ImageBlockParam;\n }\n } else {\n if (block.source_type === \"base64\") {\n return {\n type: \"image\",\n source: {\n type: \"base64\",\n data: block.data,\n media_type: block.mime_type ?? \"\",\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n } as Anthropic.Messages.ImageBlockParam;\n } else {\n throw new Error(`Unsupported image source type: ${block.source_type}`);\n }\n }\n },\n\n fromStandardFileBlock(block): Anthropic.Messages.DocumentBlockParam {\n const mime_type = (block.mime_type ?? \"\").split(\";\")[0];\n\n if (block.source_type === \"url\") {\n if (mime_type === \"application/pdf\" || mime_type === \"\") {\n return {\n type: \"document\",\n source: {\n type: \"url\",\n url: block.url,\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"context\" in (block.metadata ?? {})\n ? { context: block.metadata!.context }\n : {}),\n ...(\"title\" in (block.metadata ?? {})\n ? { title: block.metadata!.title }\n : {}),\n } as Anthropic.Messages.DocumentBlockParam;\n }\n throw new Error(\n `Unsupported file mime type for file url source: ${block.mime_type}`\n );\n } else if (block.source_type === \"text\") {\n if (mime_type === \"text/plain\" || mime_type === \"\") {\n return {\n type: \"document\",\n source: {\n type: \"text\",\n data: block.text,\n media_type: block.mime_type ?? \"\",\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"context\" in (block.metadata ?? {})\n ? { context: block.metadata!.context }\n : {}),\n ...(\"title\" in (block.metadata ?? {})\n ? { title: block.metadata!.title }\n : {}),\n } as Anthropic.Messages.DocumentBlockParam;\n } else {\n throw new Error(\n `Unsupported file mime type for file text source: ${block.mime_type}`\n );\n }\n } else if (block.source_type === \"base64\") {\n if (mime_type === \"application/pdf\" || mime_type === \"\") {\n return {\n type: \"document\",\n source: {\n type: \"base64\",\n data: block.data,\n media_type: \"application/pdf\",\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"context\" in (block.metadata ?? {})\n ? { context: block.metadata!.context }\n : {}),\n ...(\"title\" in (block.metadata ?? {})\n ? { title: block.metadata!.title }\n : {}),\n } as Anthropic.Messages.DocumentBlockParam;\n } else if (\n [\"image/jpeg\", \"image/png\", \"image/gif\", \"image/webp\"].includes(\n mime_type\n )\n ) {\n return {\n type: \"document\",\n source: {\n type: \"content\",\n content: [\n {\n type: \"image\",\n source: {\n type: \"base64\",\n data: block.data,\n media_type: mime_type as\n | \"image/jpeg\"\n | \"image/png\"\n | \"image/gif\"\n | \"image/webp\",\n },\n },\n ],\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"context\" in (block.metadata ?? {})\n ? { context: block.metadata!.context }\n : {}),\n ...(\"title\" in (block.metadata ?? {})\n ? { title: block.metadata!.title }\n : {}),\n } as Anthropic.Messages.DocumentBlockParam;\n } else {\n throw new Error(\n `Unsupported file mime type for file base64 source: ${block.mime_type}`\n );\n }\n } else {\n throw new Error(`Unsupported file source type: ${block.source_type}`);\n }\n },\n};\n"],"mappings":";;AAMA,SAAgB,0BACd,OACgD;CAChD,OACE,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACV,MAAM,SAAS;AAEnB;AAEA,SAAgB,kCACd,OACwD;CACxD,OACE,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACV,MAAM,SAAS;AAEnB;AAEA,SAAgB,4BACd,OACkD;CAClD,OACE,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACV,MAAM,SAAS;AAEnB;AAEA,SAAgB,8BACd,OACoD;CACpD,OACE,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACV,MAAM,SAAS;AAEnB;AAEA,SAAgB,4BACd,OAC6C;CAC7C,IAAI,OAAO,UAAU,YAAY,SAAS,MACxC,OAAO;CAET,IAAI,EAAE,UAAU,UAAU,MAAM,SAAS,SACvC,OAAO;CAGT,IACE,EAAE,YAAY,UACd,OAAO,MAAM,WAAW,YACxB,MAAM,UAAU,MAEhB,OAAO;CAGT,IAAI,EAAE,UAAU,MAAM,SACpB,OAAO;CAGT,IAAI,MAAM,OAAO,SAAS,UAAU;EAClC,IAAI,EAAE,gBAAgB,MAAM,SAC1B,OAAO;EAGT,IAAI,OAAO,MAAM,OAAO,eAAe,UACrC,OAAO;EAGT,IAAI,EAAE,UAAU,MAAM,SACpB,OAAO;EAGT,IAAI,OAAO,MAAM,OAAO,SAAS,UAC/B,OAAO;EAGT,OAAO;CACT;CAEA,IAAI,MAAM,OAAO,SAAS,OAAO;EAC/B,IAAI,EAAE,SAAS,MAAM,SACnB,OAAO;EAGT,IAAI,OAAO,MAAM,OAAO,QAAQ,UAC9B,OAAO;EAGT,OAAO;CACT;CAEA,OAAO;AACT;AAEA,MAAa,gCAIR;CACH,cAAc;CAEd,sBAAsB,OAA0C;EAC9D,OAAO;GACL,MAAM;GACN,MAAM,MAAM;GACZ,GAAI,gBAAgB,MAAM,YAAY,CAAC,KACnC,EAAE,WAAW,MAAM,SAAU,UAAU,IACvC,CAAC;GACL,GAAI,oBAAoB,MAAM,YAAY,CAAC,KACvC,EAAE,eAAe,MAAM,SAAU,cAAc,IAC/C,CAAC;EACP;CACF;CAEA,uBAAuB,OAA2C;EAChE,IAAI,MAAM,gBAAgB,OAAO;GAC/B,MAAM,OAAO,mBAAmB;IAC9B,SAAS,MAAM;IACf,cAAc;GAChB,CAAC;GACD,IAAI,MACF,OAAO;IACL,MAAM;IACN,QAAQ;KACN,MAAM;KACN,MAAM,KAAK;KACX,YAAY,KAAK;IACnB;IACA,GAAI,oBAAoB,MAAM,YAAY,CAAC,KACvC,EAAE,eAAe,MAAM,SAAU,cAAc,IAC/C,CAAC;GACP;QAEA,OAAO;IACL,MAAM;IACN,QAAQ;KACN,MAAM;KACN,KAAK,MAAM;IACb;IACA,GAAI,oBAAoB,MAAM,YAAY,CAAC,KACvC,EAAE,eAAe,MAAM,SAAU,cAAc,IAC/C,CAAC;GACP;EAEJ,OACE,IAAI,MAAM,gBAAgB,UACxB,OAAO;GACL,MAAM;GACN,QAAQ;IACN,MAAM;IACN,MAAM,MAAM;IACZ,YAAY,MAAM,aAAa;GACjC;GACA,GAAI,oBAAoB,MAAM,YAAY,CAAC,KACvC,EAAE,eAAe,MAAM,SAAU,cAAc,IAC/C,CAAC;EACP;OAEA,MAAM,IAAI,MAAM,kCAAkC,MAAM,aAAa;CAG3E;CAEA,sBAAsB,OAA8C;EAClE,MAAM,aAAa,MAAM,aAAa,GAAA,CAAI,MAAM,GAAG,CAAC,CAAC;EAErD,IAAI,MAAM,gBAAgB,OAAO;GAC/B,IAAI,cAAc,qBAAqB,cAAc,IACnD,OAAO;IACL,MAAM;IACN,QAAQ;KACN,MAAM;KACN,KAAK,MAAM;IACb;IACA,GAAI,oBAAoB,MAAM,YAAY,CAAC,KACvC,EAAE,eAAe,MAAM,SAAU,cAAc,IAC/C,CAAC;IACL,GAAI,gBAAgB,MAAM,YAAY,CAAC,KACnC,EAAE,WAAW,MAAM,SAAU,UAAU,IACvC,CAAC;IACL,GAAI,cAAc,MAAM,YAAY,CAAC,KACjC,EAAE,SAAS,MAAM,SAAU,QAAQ,IACnC,CAAC;IACL,GAAI,YAAY,MAAM,YAAY,CAAC,KAC/B,EAAE,OAAO,MAAM,SAAU,MAAM,IAC/B,CAAC;GACP;GAEF,MAAM,IAAI,MACR,mDAAmD,MAAM,WAC3D;EACF,OAAO,IAAI,MAAM,gBAAgB,QAC/B,IAAI,cAAc,gBAAgB,cAAc,IAC9C,OAAO;GACL,MAAM;GACN,QAAQ;IACN,MAAM;IACN,MAAM,MAAM;IACZ,YAAY,MAAM,aAAa;GACjC;GACA,GAAI,oBAAoB,MAAM,YAAY,CAAC,KACvC,EAAE,eAAe,MAAM,SAAU,cAAc,IAC/C,CAAC;GACL,GAAI,gBAAgB,MAAM,YAAY,CAAC,KACnC,EAAE,WAAW,MAAM,SAAU,UAAU,IACvC,CAAC;GACL,GAAI,cAAc,MAAM,YAAY,CAAC,KACjC,EAAE,SAAS,MAAM,SAAU,QAAQ,IACnC,CAAC;GACL,GAAI,YAAY,MAAM,YAAY,CAAC,KAC/B,EAAE,OAAO,MAAM,SAAU,MAAM,IAC/B,CAAC;EACP;OAEA,MAAM,IAAI,MACR,oDAAoD,MAAM,WAC5D;OAEG,IAAI,MAAM,gBAAgB,UAC/B,IAAI,cAAc,qBAAqB,cAAc,IACnD,OAAO;GACL,MAAM;GACN,QAAQ;IACN,MAAM;IACN,MAAM,MAAM;IACZ,YAAY;GACd;GACA,GAAI,oBAAoB,MAAM,YAAY,CAAC,KACvC,EAAE,eAAe,MAAM,SAAU,cAAc,IAC/C,CAAC;GACL,GAAI,gBAAgB,MAAM,YAAY,CAAC,KACnC,EAAE,WAAW,MAAM,SAAU,UAAU,IACvC,CAAC;GACL,GAAI,cAAc,MAAM,YAAY,CAAC,KACjC,EAAE,SAAS,MAAM,SAAU,QAAQ,IACnC,CAAC;GACL,GAAI,YAAY,MAAM,YAAY,CAAC,KAC/B,EAAE,OAAO,MAAM,SAAU,MAAM,IAC/B,CAAC;EACP;OACK,IACL;GAAC;GAAc;GAAa;GAAa;EAAY,CAAC,CAAC,SACrD,SACF,GAEA,OAAO;GACL,MAAM;GACN,QAAQ;IACN,MAAM;IACN,SAAS,CACP;KACE,MAAM;KACN,QAAQ;MACN,MAAM;MACN,MAAM,MAAM;MACZ,YAAY;KAKd;IACF,CACF;GACF;GACA,GAAI,oBAAoB,MAAM,YAAY,CAAC,KACvC,EAAE,eAAe,MAAM,SAAU,cAAc,IAC/C,CAAC;GACL,GAAI,gBAAgB,MAAM,YAAY,CAAC,KACnC,EAAE,WAAW,MAAM,SAAU,UAAU,IACvC,CAAC;GACL,GAAI,cAAc,MAAM,YAAY,CAAC,KACjC,EAAE,SAAS,MAAM,SAAU,QAAQ,IACnC,CAAC;GACL,GAAI,YAAY,MAAM,YAAY,CAAC,KAC/B,EAAE,OAAO,MAAM,SAAU,MAAM,IAC/B,CAAC;EACP;OAEA,MAAM,IAAI,MACR,sDAAsD,MAAM,WAC9D;OAGF,MAAM,IAAI,MAAM,iCAAiC,MAAM,aAAa;CAExE;AACF"}
|
|
1
|
+
{"version":3,"file":"content.js","names":[],"sources":["../../src/utils/content.ts"],"sourcesContent":["import type Anthropic from \"@anthropic-ai/sdk\";\nimport {\n parseBase64DataUrl,\n type StandardContentBlockConverter,\n} from \"@langchain/core/messages\";\n\nexport function _isAnthropicThinkingBlock(\n block: unknown\n): block is Anthropic.Messages.ThinkingBlockParam {\n return (\n typeof block === \"object\" &&\n block !== null &&\n \"type\" in block &&\n block.type === \"thinking\"\n );\n}\n\nexport function _isAnthropicRedactedThinkingBlock(\n block: unknown\n): block is Anthropic.Messages.RedactedThinkingBlockParam {\n return (\n typeof block === \"object\" &&\n block !== null &&\n \"type\" in block &&\n block.type === \"redacted_thinking\"\n );\n}\n\nexport function _isAnthropicCompactionBlock(\n block: unknown\n): block is Anthropic.Beta.BetaCompactionBlockParam {\n return (\n typeof block === \"object\" &&\n block !== null &&\n \"type\" in block &&\n block.type === \"compaction\"\n );\n}\n\nexport function _isAnthropicSearchResultBlock(\n block: unknown\n): block is Anthropic.Beta.BetaSearchResultBlockParam {\n return (\n typeof block === \"object\" &&\n block !== null &&\n \"type\" in block &&\n block.type === \"search_result\"\n );\n}\n\nexport function _isAnthropicImageBlockParam(\n block: unknown\n): block is Anthropic.Messages.ImageBlockParam {\n if (typeof block !== \"object\" || block == null) {\n return false;\n }\n if (!(\"type\" in block) || block.type !== \"image\") {\n return false;\n }\n\n if (\n !(\"source\" in block) ||\n typeof block.source !== \"object\" ||\n block.source == null\n ) {\n return false;\n }\n\n if (!(\"type\" in block.source)) {\n return false;\n }\n\n if (block.source.type === \"base64\") {\n if (!(\"media_type\" in block.source)) {\n return false;\n }\n\n if (typeof block.source.media_type !== \"string\") {\n return false;\n }\n\n if (!(\"data\" in block.source)) {\n return false;\n }\n\n if (typeof block.source.data !== \"string\") {\n return false;\n }\n\n return true;\n }\n\n if (block.source.type === \"url\") {\n if (!(\"url\" in block.source)) {\n return false;\n }\n\n if (typeof block.source.url !== \"string\") {\n return false;\n }\n\n return true;\n }\n\n return false;\n}\n\nexport const standardContentBlockConverter: StandardContentBlockConverter<{\n text: Anthropic.Messages.TextBlockParam;\n image: Anthropic.Messages.ImageBlockParam;\n file: Anthropic.Messages.DocumentBlockParam;\n}> = {\n providerName: \"anthropic\",\n\n fromStandardTextBlock(block): Anthropic.Messages.TextBlockParam {\n return {\n type: \"text\",\n text: block.text,\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n } as Anthropic.Messages.TextBlockParam;\n },\n\n fromStandardImageBlock(block): Anthropic.Messages.ImageBlockParam {\n if (block.source_type === \"url\") {\n const data = parseBase64DataUrl({\n dataUrl: block.url,\n asTypedArray: false,\n });\n if (data) {\n return {\n type: \"image\",\n source: {\n type: \"base64\",\n data: data.data,\n media_type: data.mime_type,\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n } as Anthropic.Messages.ImageBlockParam;\n } else {\n return {\n type: \"image\",\n source: {\n type: \"url\",\n url: block.url,\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n } as Anthropic.Messages.ImageBlockParam;\n }\n } else {\n if (block.source_type === \"base64\") {\n return {\n type: \"image\",\n source: {\n type: \"base64\",\n data: block.data,\n media_type: block.mime_type ?? \"\",\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n } as Anthropic.Messages.ImageBlockParam;\n } else {\n throw new Error(`Unsupported image source type: ${block.source_type}`);\n }\n }\n },\n\n fromStandardFileBlock(block): Anthropic.Messages.DocumentBlockParam {\n const mime_type = (block.mime_type ?? \"\").split(\";\")[0];\n\n if (block.source_type === \"url\") {\n if (mime_type === \"application/pdf\" || mime_type === \"\") {\n return {\n type: \"document\",\n source: {\n type: \"url\",\n url: block.url,\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"context\" in (block.metadata ?? {})\n ? { context: block.metadata!.context }\n : {}),\n ...(\"title\" in (block.metadata ?? {})\n ? { title: block.metadata!.title }\n : {}),\n } as Anthropic.Messages.DocumentBlockParam;\n }\n throw new Error(\n `Unsupported file mime type for file url source: ${block.mime_type}`\n );\n } else if (block.source_type === \"text\") {\n if (mime_type === \"text/plain\" || mime_type === \"\") {\n return {\n type: \"document\",\n source: {\n type: \"text\",\n data: block.text,\n media_type: block.mime_type ?? \"\",\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"context\" in (block.metadata ?? {})\n ? { context: block.metadata!.context }\n : {}),\n ...(\"title\" in (block.metadata ?? {})\n ? { title: block.metadata!.title }\n : {}),\n } as Anthropic.Messages.DocumentBlockParam;\n } else {\n throw new Error(\n `Unsupported file mime type for file text source: ${block.mime_type}`\n );\n }\n } else if (block.source_type === \"base64\") {\n if (mime_type === \"application/pdf\" || mime_type === \"\") {\n return {\n type: \"document\",\n source: {\n type: \"base64\",\n data: block.data,\n media_type: \"application/pdf\",\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"context\" in (block.metadata ?? {})\n ? { context: block.metadata!.context }\n : {}),\n ...(\"title\" in (block.metadata ?? {})\n ? { title: block.metadata!.title }\n : {}),\n } as Anthropic.Messages.DocumentBlockParam;\n } else if (\n [\"image/jpeg\", \"image/png\", \"image/gif\", \"image/webp\"].includes(\n mime_type\n )\n ) {\n return {\n type: \"document\",\n source: {\n type: \"content\",\n content: [\n {\n type: \"image\",\n source: {\n type: \"base64\",\n data: block.data,\n media_type: mime_type as\n | \"image/jpeg\"\n | \"image/png\"\n | \"image/gif\"\n | \"image/webp\",\n },\n },\n ],\n },\n ...(\"cache_control\" in (block.metadata ?? {})\n ? { cache_control: block.metadata!.cache_control }\n : {}),\n ...(\"citations\" in (block.metadata ?? {})\n ? { citations: block.metadata!.citations }\n : {}),\n ...(\"context\" in (block.metadata ?? {})\n ? { context: block.metadata!.context }\n : {}),\n ...(\"title\" in (block.metadata ?? {})\n ? { title: block.metadata!.title }\n : {}),\n } as Anthropic.Messages.DocumentBlockParam;\n } else {\n throw new Error(\n `Unsupported file mime type for file base64 source: ${block.mime_type}`\n );\n }\n } else {\n throw new Error(`Unsupported file source type: ${block.source_type}`);\n }\n },\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.cjs","names":["ContextOverflowError"],"sources":["../../src/utils/errors.ts"],"sourcesContent":["/* oxlint-disable @typescript-eslint/no-explicit-any */\n/* oxlint-disable no-param-reassign */\n\nimport { ContextOverflowError, stampRetryable } from \"@langchain/core/errors\";\n\n// Duplicate of core\n// TODO: Remove once we stop supporting 0.2.x core versions\nexport type LangChainErrorCodes =\n | \"CONTEXT_OVERFLOW\"\n | \"INVALID_PROMPT_INPUT\"\n | \"INVALID_TOOL_RESULTS\"\n | \"MESSAGE_COERCION_FAILURE\"\n | \"MODEL_AUTHENTICATION\"\n | \"MODEL_NOT_FOUND\"\n | \"MODEL_RATE_LIMIT\"\n | \"OUTPUT_PARSING_FAILURE\";\n\nexport function addLangChainErrorFields(\n error: any,\n lc_error_code: LangChainErrorCodes\n) {\n (error as any).lc_error_code = lc_error_code;\n error.message = `${error.message}\\n\\nTroubleshooting URL: https://docs.langchain.com/oss/javascript/langchain/errors/${lc_error_code}/\\n`;\n return error;\n}\n\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrapAnthropicClientError(e: any) {\n let error;\n if (\n e.status === 400 &&\n typeof e.message === \"string\" &&\n e.message.includes(\"prompt is too long\")\n ) {\n // ContextOverflowError marks itself non-retryable at construction.\n error = addLangChainErrorFields(\n ContextOverflowError.fromError(e),\n \"CONTEXT_OVERFLOW\"\n );\n } else if (e.status === 400 && e.message.includes(\"tool\")) {\n error = stampRetryable(\n addLangChainErrorFields(e, \"INVALID_TOOL_RESULTS\"),\n false\n );\n } else if (e.status === 401) {\n error = stampRetryable(\n addLangChainErrorFields(e, \"MODEL_AUTHENTICATION\"),\n false\n );\n } else if (e.status === 404) {\n error = stampRetryable(\n addLangChainErrorFields(e, \"MODEL_NOT_FOUND\"),\n false\n );\n } else if (e.status === 429) {\n // AsyncCaller runs after this and re-marks false if it's quota exhaustion.\n error = stampRetryable(\n addLangChainErrorFields(e, \"MODEL_RATE_LIMIT\"),\n true\n );\n } else {\n error = e;\n }\n return error;\n}\n"],"mappings":";;AAiBA,SAAgB,wBACd,OACA,eACA;CACA,MAAe,gBAAgB;CAC/B,MAAM,UAAU,GAAG,MAAM,QAAQ,sFAAsF,cAAc;CACrI,OAAO;AACT;AAGA,SAAgB,yBAAyB,GAAQ;CAC/C,IAAI;CACJ,IACE,EAAE,WAAW,OACb,OAAO,EAAE,YAAY,YACrB,EAAE,QAAQ,SAAS,oBAAoB,GAGvC,QAAQ,wBACNA,uBAAAA,qBAAqB,UAAU,CAAC,GAChC,kBACF;MACK,IAAI,EAAE,WAAW,OAAO,EAAE,QAAQ,SAAS,MAAM,GACtD,SAAA,
|
|
1
|
+
{"version":3,"file":"errors.cjs","names":["ContextOverflowError","stampRetryable"],"sources":["../../src/utils/errors.ts"],"sourcesContent":["/* oxlint-disable @typescript-eslint/no-explicit-any */\n/* oxlint-disable no-param-reassign */\n\nimport { ContextOverflowError, stampRetryable } from \"@langchain/core/errors\";\n\n// Duplicate of core\n// TODO: Remove once we stop supporting 0.2.x core versions\nexport type LangChainErrorCodes =\n | \"CONTEXT_OVERFLOW\"\n | \"INVALID_PROMPT_INPUT\"\n | \"INVALID_TOOL_RESULTS\"\n | \"MESSAGE_COERCION_FAILURE\"\n | \"MODEL_AUTHENTICATION\"\n | \"MODEL_NOT_FOUND\"\n | \"MODEL_RATE_LIMIT\"\n | \"OUTPUT_PARSING_FAILURE\";\n\nexport function addLangChainErrorFields(\n error: any,\n lc_error_code: LangChainErrorCodes\n) {\n (error as any).lc_error_code = lc_error_code;\n error.message = `${error.message}\\n\\nTroubleshooting URL: https://docs.langchain.com/oss/javascript/langchain/errors/${lc_error_code}/\\n`;\n return error;\n}\n\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrapAnthropicClientError(e: any) {\n let error;\n if (\n e.status === 400 &&\n typeof e.message === \"string\" &&\n e.message.includes(\"prompt is too long\")\n ) {\n // ContextOverflowError marks itself non-retryable at construction.\n error = addLangChainErrorFields(\n ContextOverflowError.fromError(e),\n \"CONTEXT_OVERFLOW\"\n );\n } else if (e.status === 400 && e.message.includes(\"tool\")) {\n error = stampRetryable(\n addLangChainErrorFields(e, \"INVALID_TOOL_RESULTS\"),\n false\n );\n } else if (e.status === 401) {\n error = stampRetryable(\n addLangChainErrorFields(e, \"MODEL_AUTHENTICATION\"),\n false\n );\n } else if (e.status === 404) {\n error = stampRetryable(\n addLangChainErrorFields(e, \"MODEL_NOT_FOUND\"),\n false\n );\n } else if (e.status === 429) {\n // AsyncCaller runs after this and re-marks false if it's quota exhaustion.\n error = stampRetryable(\n addLangChainErrorFields(e, \"MODEL_RATE_LIMIT\"),\n true\n );\n } else {\n error = e;\n }\n return error;\n}\n"],"mappings":";;AAiBA,SAAgB,wBACd,OACA,eACA;CACA,MAAe,gBAAgB;CAC/B,MAAM,UAAU,GAAG,MAAM,QAAQ,sFAAsF,cAAc;CACrI,OAAO;AACT;AAGA,SAAgB,yBAAyB,GAAQ;CAC/C,IAAI;CACJ,IACE,EAAE,WAAW,OACb,OAAO,EAAE,YAAY,YACrB,EAAE,QAAQ,SAAS,oBAAoB,GAGvC,QAAQ,wBACNA,uBAAAA,qBAAqB,UAAU,CAAC,GAChC,kBACF;MACK,IAAI,EAAE,WAAW,OAAO,EAAE,QAAQ,SAAS,MAAM,GACtD,SAAA,GAAQC,uBAAAA,eAAAA,CACN,wBAAwB,GAAG,sBAAsB,GACjD,KACF;MACK,IAAI,EAAE,WAAW,KACtB,SAAA,GAAQA,uBAAAA,eAAAA,CACN,wBAAwB,GAAG,sBAAsB,GACjD,KACF;MACK,IAAI,EAAE,WAAW,KACtB,SAAA,GAAQA,uBAAAA,eAAAA,CACN,wBAAwB,GAAG,iBAAiB,GAC5C,KACF;MACK,IAAI,EAAE,WAAW,KAEtB,SAAA,GAAQA,uBAAAA,eAAAA,CACN,wBAAwB,GAAG,kBAAkB,GAC7C,IACF;MAEA,QAAQ;CAEV,OAAO;AACT"}
|
|
@@ -31,24 +31,25 @@ function _formatImage(imageUrl) {
|
|
|
31
31
|
}
|
|
32
32
|
function _ensureMessageContents(messages) {
|
|
33
33
|
const updatedMsgs = [];
|
|
34
|
-
for (const message of messages) if (message._getType() === "tool")
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
for (const message of messages) if (message._getType() === "tool") {
|
|
35
|
+
if (typeof message.content === "string") {
|
|
36
|
+
const previousMessage = updatedMsgs[updatedMsgs.length - 1];
|
|
37
|
+
if (previousMessage?._getType() === "human" && Array.isArray(previousMessage.content) && "type" in previousMessage.content[0] && previousMessage.content[0].type === "tool_result") previousMessage.content.push({
|
|
38
|
+
type: "tool_result",
|
|
39
|
+
content: message.content,
|
|
40
|
+
tool_use_id: message.tool_call_id
|
|
41
|
+
});
|
|
42
|
+
else updatedMsgs.push(new _langchain_core_messages.HumanMessage({ content: [{
|
|
43
|
+
type: "tool_result",
|
|
44
|
+
content: message.content,
|
|
45
|
+
tool_use_id: message.tool_call_id
|
|
46
|
+
}] }));
|
|
47
|
+
} else updatedMsgs.push(new _langchain_core_messages.HumanMessage({ content: [{
|
|
37
48
|
type: "tool_result",
|
|
38
|
-
content: message
|
|
39
|
-
tool_use_id: message.tool_call_id
|
|
40
|
-
});
|
|
41
|
-
else updatedMsgs.push(new _langchain_core_messages.HumanMessage({ content: [{
|
|
42
|
-
type: "tool_result",
|
|
43
|
-
content: message.content,
|
|
49
|
+
...message.content != null ? { content: _formatContent(message) } : {},
|
|
44
50
|
tool_use_id: message.tool_call_id
|
|
45
51
|
}] }));
|
|
46
|
-
} else updatedMsgs.push(
|
|
47
|
-
type: "tool_result",
|
|
48
|
-
...message.content != null ? { content: _formatContent(message) } : {},
|
|
49
|
-
tool_use_id: message.tool_call_id
|
|
50
|
-
}] }));
|
|
51
|
-
else updatedMsgs.push(message);
|
|
52
|
+
} else updatedMsgs.push(message);
|
|
52
53
|
return updatedMsgs;
|
|
53
54
|
}
|
|
54
55
|
function _convertLangChainToolCallToAnthropic(toolCall) {
|
|
@@ -67,6 +68,7 @@ function* _formatContentBlocks(content, toolCalls) {
|
|
|
67
68
|
"server_tool_use",
|
|
68
69
|
"text_editor_code_execution_tool_result",
|
|
69
70
|
"tool_result",
|
|
71
|
+
"tool_search_tool_result",
|
|
70
72
|
"tool_search_tool_bm25_tool_result",
|
|
71
73
|
"tool_search_tool_regex_tool_result",
|
|
72
74
|
"tool_use",
|
|
@@ -211,31 +213,33 @@ function _convertMessagesToAnthropicPayload(messages) {
|
|
|
211
213
|
role,
|
|
212
214
|
content: require_standard._formatStandardContent(message)
|
|
213
215
|
};
|
|
214
|
-
if (_langchain_core_messages.AIMessage.isInstance(message) && !!message.tool_calls?.length)
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
216
|
+
if (_langchain_core_messages.AIMessage.isInstance(message) && !!message.tool_calls?.length) {
|
|
217
|
+
if (typeof message.content === "string") {
|
|
218
|
+
if (message.content === "") return {
|
|
219
|
+
role,
|
|
220
|
+
content: message.tool_calls.map(_convertLangChainToolCallToAnthropic)
|
|
221
|
+
};
|
|
222
|
+
else return {
|
|
223
|
+
role,
|
|
224
|
+
content: [{
|
|
225
|
+
type: "text",
|
|
226
|
+
text: message.content
|
|
227
|
+
}, ...message.tool_calls.map(_convertLangChainToolCallToAnthropic)]
|
|
228
|
+
};
|
|
229
|
+
} else {
|
|
230
|
+
const { content } = message;
|
|
231
|
+
const formattedContent = _formatContent(message, message.tool_calls);
|
|
232
|
+
const formattedContentArr = Array.isArray(formattedContent) ? formattedContent : [{
|
|
233
|
+
type: "text",
|
|
234
|
+
text: formattedContent
|
|
235
|
+
}];
|
|
236
|
+
const missingToolCalls = message.tool_calls.filter((toolCall) => !content.find((contentPart) => (contentPart.type === "tool_use" || contentPart.type === "input_json_delta" || contentPart.type === "server_tool_use") && contentPart.id === toolCall.id));
|
|
237
|
+
return {
|
|
238
|
+
role,
|
|
239
|
+
content: [...formattedContentArr, ...missingToolCalls.map(_convertLangChainToolCallToAnthropic)]
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
} else return {
|
|
239
243
|
role,
|
|
240
244
|
content: _formatContent(message, _langchain_core_messages.AIMessage.isInstance(message) ? message.tool_calls : void 0)
|
|
241
245
|
};
|