@librechat/agents 3.1.75 → 3.1.77-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/graphs/Graph.cjs +22 -3
- package/dist/cjs/graphs/Graph.cjs.map +1 -1
- package/dist/cjs/hitl/askUserQuestion.cjs +67 -0
- package/dist/cjs/hitl/askUserQuestion.cjs.map +1 -0
- package/dist/cjs/hooks/HookRegistry.cjs +54 -0
- package/dist/cjs/hooks/HookRegistry.cjs.map +1 -1
- package/dist/cjs/hooks/createToolPolicyHook.cjs +115 -0
- package/dist/cjs/hooks/createToolPolicyHook.cjs.map +1 -0
- package/dist/cjs/hooks/executeHooks.cjs +40 -1
- package/dist/cjs/hooks/executeHooks.cjs.map +1 -1
- package/dist/cjs/hooks/types.cjs +1 -0
- package/dist/cjs/hooks/types.cjs.map +1 -1
- package/dist/cjs/langchain/google-common.cjs +3 -0
- package/dist/cjs/langchain/google-common.cjs.map +1 -0
- package/dist/cjs/langchain/index.cjs +86 -0
- package/dist/cjs/langchain/index.cjs.map +1 -0
- package/dist/cjs/langchain/language_models/chat_models.cjs +3 -0
- package/dist/cjs/langchain/language_models/chat_models.cjs.map +1 -0
- package/dist/cjs/langchain/messages/tool.cjs +3 -0
- package/dist/cjs/langchain/messages/tool.cjs.map +1 -0
- package/dist/cjs/langchain/messages.cjs +51 -0
- package/dist/cjs/langchain/messages.cjs.map +1 -0
- package/dist/cjs/langchain/openai.cjs +3 -0
- package/dist/cjs/langchain/openai.cjs.map +1 -0
- package/dist/cjs/langchain/prompts.cjs +11 -0
- package/dist/cjs/langchain/prompts.cjs.map +1 -0
- package/dist/cjs/langchain/runnables.cjs +19 -0
- package/dist/cjs/langchain/runnables.cjs.map +1 -0
- package/dist/cjs/langchain/tools.cjs +23 -0
- package/dist/cjs/langchain/tools.cjs.map +1 -0
- package/dist/cjs/langchain/utils/env.cjs +11 -0
- package/dist/cjs/langchain/utils/env.cjs.map +1 -0
- package/dist/cjs/llm/anthropic/index.cjs +145 -52
- package/dist/cjs/llm/anthropic/index.cjs.map +1 -1
- package/dist/cjs/llm/anthropic/types.cjs.map +1 -1
- package/dist/cjs/llm/anthropic/utils/message_inputs.cjs +21 -14
- package/dist/cjs/llm/anthropic/utils/message_inputs.cjs.map +1 -1
- package/dist/cjs/llm/anthropic/utils/message_outputs.cjs +84 -70
- package/dist/cjs/llm/anthropic/utils/message_outputs.cjs.map +1 -1
- package/dist/cjs/llm/bedrock/index.cjs +1 -1
- package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
- package/dist/cjs/llm/bedrock/utils/message_inputs.cjs +213 -3
- package/dist/cjs/llm/bedrock/utils/message_inputs.cjs.map +1 -1
- package/dist/cjs/llm/bedrock/utils/message_outputs.cjs +2 -1
- package/dist/cjs/llm/bedrock/utils/message_outputs.cjs.map +1 -1
- package/dist/cjs/llm/google/utils/common.cjs +5 -4
- package/dist/cjs/llm/google/utils/common.cjs.map +1 -1
- package/dist/cjs/llm/openai/index.cjs +519 -655
- package/dist/cjs/llm/openai/index.cjs.map +1 -1
- package/dist/cjs/llm/openai/utils/index.cjs +20 -458
- package/dist/cjs/llm/openai/utils/index.cjs.map +1 -1
- package/dist/cjs/llm/openrouter/index.cjs +57 -175
- package/dist/cjs/llm/openrouter/index.cjs.map +1 -1
- package/dist/cjs/llm/vertexai/index.cjs +5 -3
- package/dist/cjs/llm/vertexai/index.cjs.map +1 -1
- package/dist/cjs/main.cjs +112 -3
- package/dist/cjs/main.cjs.map +1 -1
- package/dist/cjs/messages/cache.cjs +2 -1
- package/dist/cjs/messages/cache.cjs.map +1 -1
- package/dist/cjs/messages/core.cjs +7 -6
- package/dist/cjs/messages/core.cjs.map +1 -1
- package/dist/cjs/messages/format.cjs +73 -15
- package/dist/cjs/messages/format.cjs.map +1 -1
- package/dist/cjs/messages/langchain.cjs +26 -0
- package/dist/cjs/messages/langchain.cjs.map +1 -0
- package/dist/cjs/messages/prune.cjs +7 -6
- package/dist/cjs/messages/prune.cjs.map +1 -1
- package/dist/cjs/run.cjs +400 -42
- package/dist/cjs/run.cjs.map +1 -1
- package/dist/cjs/tools/ToolNode.cjs +556 -56
- package/dist/cjs/tools/ToolNode.cjs.map +1 -1
- package/dist/cjs/tools/search/search.cjs +55 -66
- package/dist/cjs/tools/search/search.cjs.map +1 -1
- package/dist/cjs/tools/search/tavily-scraper.cjs +189 -0
- package/dist/cjs/tools/search/tavily-scraper.cjs.map +1 -0
- package/dist/cjs/tools/search/tavily-search.cjs +372 -0
- package/dist/cjs/tools/search/tavily-search.cjs.map +1 -0
- package/dist/cjs/tools/search/tool.cjs +26 -4
- package/dist/cjs/tools/search/tool.cjs.map +1 -1
- package/dist/cjs/tools/search/utils.cjs +10 -3
- package/dist/cjs/tools/search/utils.cjs.map +1 -1
- package/dist/esm/graphs/Graph.mjs +22 -3
- package/dist/esm/graphs/Graph.mjs.map +1 -1
- package/dist/esm/hitl/askUserQuestion.mjs +65 -0
- package/dist/esm/hitl/askUserQuestion.mjs.map +1 -0
- package/dist/esm/hooks/HookRegistry.mjs +54 -0
- package/dist/esm/hooks/HookRegistry.mjs.map +1 -1
- package/dist/esm/hooks/createToolPolicyHook.mjs +113 -0
- package/dist/esm/hooks/createToolPolicyHook.mjs.map +1 -0
- package/dist/esm/hooks/executeHooks.mjs +40 -1
- package/dist/esm/hooks/executeHooks.mjs.map +1 -1
- package/dist/esm/hooks/types.mjs +1 -0
- package/dist/esm/hooks/types.mjs.map +1 -1
- package/dist/esm/langchain/google-common.mjs +2 -0
- package/dist/esm/langchain/google-common.mjs.map +1 -0
- package/dist/esm/langchain/index.mjs +5 -0
- package/dist/esm/langchain/index.mjs.map +1 -0
- package/dist/esm/langchain/language_models/chat_models.mjs +2 -0
- package/dist/esm/langchain/language_models/chat_models.mjs.map +1 -0
- package/dist/esm/langchain/messages/tool.mjs +2 -0
- package/dist/esm/langchain/messages/tool.mjs.map +1 -0
- package/dist/esm/langchain/messages.mjs +2 -0
- package/dist/esm/langchain/messages.mjs.map +1 -0
- package/dist/esm/langchain/openai.mjs +2 -0
- package/dist/esm/langchain/openai.mjs.map +1 -0
- package/dist/esm/langchain/prompts.mjs +2 -0
- package/dist/esm/langchain/prompts.mjs.map +1 -0
- package/dist/esm/langchain/runnables.mjs +2 -0
- package/dist/esm/langchain/runnables.mjs.map +1 -0
- package/dist/esm/langchain/tools.mjs +2 -0
- package/dist/esm/langchain/tools.mjs.map +1 -0
- package/dist/esm/langchain/utils/env.mjs +2 -0
- package/dist/esm/langchain/utils/env.mjs.map +1 -0
- package/dist/esm/llm/anthropic/index.mjs +146 -54
- package/dist/esm/llm/anthropic/index.mjs.map +1 -1
- package/dist/esm/llm/anthropic/types.mjs.map +1 -1
- package/dist/esm/llm/anthropic/utils/message_inputs.mjs +21 -14
- package/dist/esm/llm/anthropic/utils/message_inputs.mjs.map +1 -1
- package/dist/esm/llm/anthropic/utils/message_outputs.mjs +84 -71
- package/dist/esm/llm/anthropic/utils/message_outputs.mjs.map +1 -1
- package/dist/esm/llm/bedrock/index.mjs +1 -1
- package/dist/esm/llm/bedrock/index.mjs.map +1 -1
- package/dist/esm/llm/bedrock/utils/message_inputs.mjs +214 -4
- package/dist/esm/llm/bedrock/utils/message_inputs.mjs.map +1 -1
- package/dist/esm/llm/bedrock/utils/message_outputs.mjs +2 -1
- package/dist/esm/llm/bedrock/utils/message_outputs.mjs.map +1 -1
- package/dist/esm/llm/google/utils/common.mjs +5 -4
- package/dist/esm/llm/google/utils/common.mjs.map +1 -1
- package/dist/esm/llm/openai/index.mjs +520 -656
- package/dist/esm/llm/openai/index.mjs.map +1 -1
- package/dist/esm/llm/openai/utils/index.mjs +23 -459
- package/dist/esm/llm/openai/utils/index.mjs.map +1 -1
- package/dist/esm/llm/openrouter/index.mjs +57 -175
- package/dist/esm/llm/openrouter/index.mjs.map +1 -1
- package/dist/esm/llm/vertexai/index.mjs +5 -3
- package/dist/esm/llm/vertexai/index.mjs.map +1 -1
- package/dist/esm/main.mjs +7 -0
- package/dist/esm/main.mjs.map +1 -1
- package/dist/esm/messages/cache.mjs +2 -1
- package/dist/esm/messages/cache.mjs.map +1 -1
- package/dist/esm/messages/core.mjs +7 -6
- package/dist/esm/messages/core.mjs.map +1 -1
- package/dist/esm/messages/format.mjs +73 -15
- package/dist/esm/messages/format.mjs.map +1 -1
- package/dist/esm/messages/langchain.mjs +23 -0
- package/dist/esm/messages/langchain.mjs.map +1 -0
- package/dist/esm/messages/prune.mjs +7 -6
- package/dist/esm/messages/prune.mjs.map +1 -1
- package/dist/esm/run.mjs +400 -42
- package/dist/esm/run.mjs.map +1 -1
- package/dist/esm/tools/ToolNode.mjs +557 -57
- package/dist/esm/tools/ToolNode.mjs.map +1 -1
- package/dist/esm/tools/search/search.mjs +55 -66
- package/dist/esm/tools/search/search.mjs.map +1 -1
- package/dist/esm/tools/search/tavily-scraper.mjs +186 -0
- package/dist/esm/tools/search/tavily-scraper.mjs.map +1 -0
- package/dist/esm/tools/search/tavily-search.mjs +370 -0
- package/dist/esm/tools/search/tavily-search.mjs.map +1 -0
- package/dist/esm/tools/search/tool.mjs +26 -4
- package/dist/esm/tools/search/tool.mjs.map +1 -1
- package/dist/esm/tools/search/utils.mjs +10 -3
- package/dist/esm/tools/search/utils.mjs.map +1 -1
- package/dist/types/graphs/Graph.d.ts +7 -0
- package/dist/types/hitl/askUserQuestion.d.ts +55 -0
- package/dist/types/hitl/index.d.ts +6 -0
- package/dist/types/hooks/HookRegistry.d.ts +58 -0
- package/dist/types/hooks/createToolPolicyHook.d.ts +87 -0
- package/dist/types/hooks/index.d.ts +4 -1
- package/dist/types/hooks/types.d.ts +109 -3
- package/dist/types/index.d.ts +10 -0
- package/dist/types/langchain/google-common.d.ts +1 -0
- package/dist/types/langchain/index.d.ts +8 -0
- package/dist/types/langchain/language_models/chat_models.d.ts +1 -0
- package/dist/types/langchain/messages/tool.d.ts +1 -0
- package/dist/types/langchain/messages.d.ts +2 -0
- package/dist/types/langchain/openai.d.ts +1 -0
- package/dist/types/langchain/prompts.d.ts +1 -0
- package/dist/types/langchain/runnables.d.ts +2 -0
- package/dist/types/langchain/tools.d.ts +2 -0
- package/dist/types/langchain/utils/env.d.ts +1 -0
- package/dist/types/llm/anthropic/index.d.ts +22 -9
- package/dist/types/llm/anthropic/types.d.ts +5 -1
- package/dist/types/llm/anthropic/utils/message_outputs.d.ts +13 -6
- package/dist/types/llm/anthropic/utils/output_parsers.d.ts +1 -1
- package/dist/types/llm/openai/index.d.ts +21 -24
- package/dist/types/llm/openrouter/index.d.ts +11 -9
- package/dist/types/llm/vertexai/index.d.ts +1 -0
- package/dist/types/messages/cache.d.ts +4 -1
- package/dist/types/messages/format.d.ts +4 -1
- package/dist/types/messages/langchain.d.ts +27 -0
- package/dist/types/run.d.ts +117 -1
- package/dist/types/tools/ToolNode.d.ts +26 -1
- package/dist/types/tools/search/tavily-scraper.d.ts +19 -0
- package/dist/types/tools/search/tavily-search.d.ts +4 -0
- package/dist/types/tools/search/types.d.ts +99 -5
- package/dist/types/tools/search/utils.d.ts +2 -2
- package/dist/types/types/graph.d.ts +23 -37
- package/dist/types/types/hitl.d.ts +272 -0
- package/dist/types/types/index.d.ts +1 -0
- package/dist/types/types/llm.d.ts +3 -3
- package/dist/types/types/run.d.ts +33 -0
- package/dist/types/types/stream.d.ts +1 -1
- package/dist/types/types/tools.d.ts +19 -0
- package/package.json +80 -17
- package/src/graphs/Graph.ts +33 -4
- package/src/graphs/__tests__/composition.smoke.test.ts +188 -0
- package/src/hitl/askUserQuestion.ts +72 -0
- package/src/hitl/index.ts +7 -0
- package/src/hooks/HookRegistry.ts +71 -0
- package/src/hooks/__tests__/createToolPolicyHook.test.ts +259 -0
- package/src/hooks/createToolPolicyHook.ts +184 -0
- package/src/hooks/executeHooks.ts +50 -1
- package/src/hooks/index.ts +6 -0
- package/src/hooks/types.ts +112 -0
- package/src/index.ts +22 -0
- package/src/langchain/google-common.ts +1 -0
- package/src/langchain/index.ts +8 -0
- package/src/langchain/language_models/chat_models.ts +1 -0
- package/src/langchain/messages/tool.ts +5 -0
- package/src/langchain/messages.ts +21 -0
- package/src/langchain/openai.ts +1 -0
- package/src/langchain/prompts.ts +1 -0
- package/src/langchain/runnables.ts +7 -0
- package/src/langchain/tools.ts +8 -0
- package/src/langchain/utils/env.ts +1 -0
- package/src/llm/anthropic/index.ts +252 -84
- package/src/llm/anthropic/llm.spec.ts +751 -102
- package/src/llm/anthropic/types.ts +9 -1
- package/src/llm/anthropic/utils/message_inputs.ts +37 -19
- package/src/llm/anthropic/utils/message_outputs.ts +119 -101
- package/src/llm/bedrock/index.ts +2 -2
- package/src/llm/bedrock/llm.spec.ts +341 -0
- package/src/llm/bedrock/utils/message_inputs.ts +303 -4
- package/src/llm/bedrock/utils/message_outputs.ts +2 -1
- package/src/llm/custom-chat-models.smoke.test.ts +836 -0
- package/src/llm/google/llm.spec.ts +339 -57
- package/src/llm/google/utils/common.ts +53 -48
- package/src/llm/openai/contentBlocks.test.ts +346 -0
- package/src/llm/openai/index.ts +856 -833
- package/src/llm/openai/utils/index.ts +107 -78
- package/src/llm/openai/utils/messages.test.ts +159 -0
- package/src/llm/openrouter/index.ts +124 -247
- package/src/llm/openrouter/reasoning.test.ts +8 -1
- package/src/llm/vertexai/index.ts +11 -5
- package/src/llm/vertexai/llm.spec.ts +28 -1
- package/src/messages/cache.test.ts +4 -3
- package/src/messages/cache.ts +3 -2
- package/src/messages/core.ts +16 -9
- package/src/messages/format.ts +96 -16
- package/src/messages/formatAgentMessages.test.ts +166 -1
- package/src/messages/langchain.ts +39 -0
- package/src/messages/prune.ts +12 -8
- package/src/run.ts +456 -47
- package/src/scripts/caching.ts +2 -3
- package/src/specs/summarization.test.ts +51 -58
- package/src/tools/ToolNode.ts +706 -63
- package/src/tools/__tests__/hitl.test.ts +3593 -0
- package/src/tools/search/search.ts +83 -73
- package/src/tools/search/tavily-scraper.ts +235 -0
- package/src/tools/search/tavily-search.ts +424 -0
- package/src/tools/search/tavily.test.ts +965 -0
- package/src/tools/search/tool.ts +36 -26
- package/src/tools/search/types.ts +133 -8
- package/src/tools/search/utils.ts +13 -5
- package/src/types/graph.ts +32 -87
- package/src/types/hitl.ts +303 -0
- package/src/types/index.ts +1 -0
- package/src/types/llm.ts +3 -3
- package/src/types/run.ts +33 -0
- package/src/types/stream.ts +1 -1
- package/src/types/tools.ts +19 -0
- package/src/utils/llmConfig.ts +1 -6
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var messages = require('@langchain/core/messages');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "AIMessage", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return messages.AIMessage; }
|
|
10
|
+
});
|
|
11
|
+
Object.defineProperty(exports, "AIMessageChunk", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () { return messages.AIMessageChunk; }
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(exports, "BaseMessage", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return messages.BaseMessage; }
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "BaseMessageChunk", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () { return messages.BaseMessageChunk; }
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports, "HumanMessage", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function () { return messages.HumanMessage; }
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(exports, "SystemMessage", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function () { return messages.SystemMessage; }
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(exports, "ToolMessage", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function () { return messages.ToolMessage; }
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(exports, "getBufferString", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
get: function () { return messages.getBufferString; }
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(exports, "isAIMessage", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
get: function () { return messages.isAIMessage; }
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(exports, "isBaseMessage", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () { return messages.isBaseMessage; }
|
|
46
|
+
});
|
|
47
|
+
Object.defineProperty(exports, "isToolMessage", {
|
|
48
|
+
enumerable: true,
|
|
49
|
+
get: function () { return messages.isToolMessage; }
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=messages.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var runnables = require('@langchain/core/runnables');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "Runnable", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return runnables.Runnable; }
|
|
10
|
+
});
|
|
11
|
+
Object.defineProperty(exports, "RunnableLambda", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () { return runnables.RunnableLambda; }
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(exports, "RunnableSequence", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return runnables.RunnableSequence; }
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=runnables.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runnables.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tools = require('@langchain/core/tools');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "DynamicStructuredTool", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return tools.DynamicStructuredTool; }
|
|
10
|
+
});
|
|
11
|
+
Object.defineProperty(exports, "StructuredTool", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () { return tools.StructuredTool; }
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(exports, "Tool", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return tools.Tool; }
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "tool", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () { return tools.tool; }
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=tools.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
|
|
@@ -8,21 +8,31 @@ var message_inputs = require('./utils/message_inputs.cjs');
|
|
|
8
8
|
var tools = require('./utils/tools.cjs');
|
|
9
9
|
var text = require('../text.cjs');
|
|
10
10
|
|
|
11
|
+
const ANTHROPIC_TOOL_BETAS = {
|
|
12
|
+
tool_search_tool_regex_20251119: 'advanced-tool-use-2025-11-20',
|
|
13
|
+
tool_search_tool_bm25_20251119: 'advanced-tool-use-2025-11-20',
|
|
14
|
+
memory_20250818: 'context-management-2025-06-27',
|
|
15
|
+
web_fetch_20250910: 'web-fetch-2025-09-10',
|
|
16
|
+
code_execution_20250825: 'code-execution-2025-08-25',
|
|
17
|
+
computer_20251124: 'computer-use-2025-11-24',
|
|
18
|
+
computer_20250124: 'computer-use-2025-01-24',
|
|
19
|
+
mcp_toolset: 'mcp-client-2025-11-20',
|
|
20
|
+
};
|
|
11
21
|
function _toolsInParams(params) {
|
|
12
22
|
return !!(params.tools && params.tools.length > 0);
|
|
13
23
|
}
|
|
14
24
|
function _documentsInParams(params) {
|
|
15
|
-
for (const message of params.messages
|
|
25
|
+
for (const message of params.messages) {
|
|
16
26
|
if (typeof message.content === 'string') {
|
|
17
27
|
continue;
|
|
18
28
|
}
|
|
19
|
-
for (const block of message.content
|
|
29
|
+
for (const block of message.content) {
|
|
20
30
|
if (typeof block === 'object' &&
|
|
21
|
-
block
|
|
31
|
+
block !== null &&
|
|
22
32
|
block.type === 'document' &&
|
|
23
33
|
block.citations != null &&
|
|
24
34
|
typeof block.citations === 'object' &&
|
|
25
|
-
block.citations.enabled) {
|
|
35
|
+
block.citations.enabled === true) {
|
|
26
36
|
return true;
|
|
27
37
|
}
|
|
28
38
|
}
|
|
@@ -34,9 +44,96 @@ function _thinkingInParams(params) {
|
|
|
34
44
|
(params.thinking.type === 'enabled' || params.thinking.type === 'adaptive'));
|
|
35
45
|
}
|
|
36
46
|
function _compactionInParams(params) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
47
|
+
return (params.context_management?.edits?.some((edit) => edit.type === 'compact_20260112') === true);
|
|
48
|
+
}
|
|
49
|
+
function isThinkingEnabled(thinking) {
|
|
50
|
+
return thinking.type === 'enabled' || thinking.type === 'adaptive';
|
|
51
|
+
}
|
|
52
|
+
function isOpus47Model(model) {
|
|
53
|
+
return /^claude-opus-4-7(?:-|$)/.test(model ?? '');
|
|
54
|
+
}
|
|
55
|
+
function combineBetas(...betaGroups) {
|
|
56
|
+
const betas = new Set();
|
|
57
|
+
for (const betaGroup of betaGroups) {
|
|
58
|
+
for (const beta of betaGroup ?? []) {
|
|
59
|
+
betas.add(beta);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return [...betas];
|
|
63
|
+
}
|
|
64
|
+
function getToolBetas(tools) {
|
|
65
|
+
const betas = new Set();
|
|
66
|
+
for (const tool of tools ?? []) {
|
|
67
|
+
if (typeof tool !== 'object' || !('type' in tool)) {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
const beta = ANTHROPIC_TOOL_BETAS[String(tool.type)];
|
|
71
|
+
if (beta != null) {
|
|
72
|
+
betas.add(beta);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return [...betas];
|
|
76
|
+
}
|
|
77
|
+
function getCompactionBetas(contextManagement) {
|
|
78
|
+
return contextManagement?.edits?.some((edit) => edit.type === 'compact_20260112') === true
|
|
79
|
+
? ['compact-2026-01-12']
|
|
80
|
+
: [];
|
|
81
|
+
}
|
|
82
|
+
function getTaskBudgetBetas(model, outputConfig) {
|
|
83
|
+
return isOpus47Model(model) &&
|
|
84
|
+
outputConfig != null &&
|
|
85
|
+
'task_budget' in outputConfig &&
|
|
86
|
+
outputConfig.task_budget != null
|
|
87
|
+
? ['task-budgets-2026-03-13']
|
|
88
|
+
: [];
|
|
89
|
+
}
|
|
90
|
+
function isSetSamplingValue(value) {
|
|
91
|
+
return value != null && value !== -1;
|
|
92
|
+
}
|
|
93
|
+
function isNonDefaultTemperature(value) {
|
|
94
|
+
return isSetSamplingValue(value) && value !== 1;
|
|
95
|
+
}
|
|
96
|
+
function validateInvocationParamCompatibility({ model, thinking, topK, topP, temperature, }) {
|
|
97
|
+
const opus47 = isOpus47Model(model);
|
|
98
|
+
if (opus47 && thinking.type === 'enabled') {
|
|
99
|
+
throw new Error('thinking.type="enabled" is not supported for claude-opus-4-7; use thinking.type="adaptive" instead');
|
|
100
|
+
}
|
|
101
|
+
if (opus47 && 'budget_tokens' in thinking) {
|
|
102
|
+
throw new Error('thinking.budget_tokens is not supported for claude-opus-4-7; use outputConfig.effort instead');
|
|
103
|
+
}
|
|
104
|
+
if (opus47) {
|
|
105
|
+
if (isSetSamplingValue(topK)) {
|
|
106
|
+
throw new Error('topK is not supported for claude-opus-4-7; omit topK/topP/temperature or use model prompting instead');
|
|
107
|
+
}
|
|
108
|
+
if (isSetSamplingValue(topP) && topP !== 1) {
|
|
109
|
+
throw new Error('topP is not supported for claude-opus-4-7 when set to non-default values');
|
|
110
|
+
}
|
|
111
|
+
if (isNonDefaultTemperature(temperature)) {
|
|
112
|
+
throw new Error('temperature is not supported for claude-opus-4-7 when set to non-default values');
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (!isThinkingEnabled(thinking)) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (isSetSamplingValue(topK)) {
|
|
119
|
+
throw new Error('topK is not supported when thinking is enabled');
|
|
120
|
+
}
|
|
121
|
+
if (isSetSamplingValue(topP)) {
|
|
122
|
+
throw new Error('topP is not supported when thinking is enabled');
|
|
123
|
+
}
|
|
124
|
+
if (isNonDefaultTemperature(temperature)) {
|
|
125
|
+
throw new Error('temperature is not supported when thinking is enabled');
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
function getSamplingParams({ model, thinking, topK, topP, temperature, }) {
|
|
129
|
+
if (isThinkingEnabled(thinking) || isOpus47Model(model)) {
|
|
130
|
+
return {};
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
...(isSetSamplingValue(temperature) ? { temperature } : {}),
|
|
134
|
+
...(isSetSamplingValue(topK) ? { top_k: topK } : {}),
|
|
135
|
+
...(isSetSamplingValue(topP) ? { top_p: topP } : {}),
|
|
136
|
+
};
|
|
40
137
|
}
|
|
41
138
|
function extractToken(chunk) {
|
|
42
139
|
if (typeof chunk.content === 'string') {
|
|
@@ -52,12 +149,14 @@ function extractToken(chunk) {
|
|
|
52
149
|
else if (Array.isArray(chunk.content) &&
|
|
53
150
|
chunk.content.length >= 1 &&
|
|
54
151
|
'text' in chunk.content[0]) {
|
|
55
|
-
|
|
152
|
+
const text = chunk.content[0].text;
|
|
153
|
+
return typeof text === 'string' ? [text, 'content'] : [undefined];
|
|
56
154
|
}
|
|
57
155
|
else if (Array.isArray(chunk.content) &&
|
|
58
156
|
chunk.content.length >= 1 &&
|
|
59
157
|
'thinking' in chunk.content[0]) {
|
|
60
|
-
|
|
158
|
+
const thinking = chunk.content[0].thinking;
|
|
159
|
+
return typeof thinking === 'string' ? [thinking, 'content'] : [undefined];
|
|
61
160
|
}
|
|
62
161
|
return [undefined];
|
|
63
162
|
}
|
|
@@ -79,7 +178,9 @@ function cloneChunk(text, tokenType, chunk) {
|
|
|
79
178
|
content: [Object.assign({}, content, { text })],
|
|
80
179
|
}));
|
|
81
180
|
}
|
|
82
|
-
else if (tokenType === 'content' &&
|
|
181
|
+
else if (tokenType === 'content' &&
|
|
182
|
+
typeof content.type === 'string' &&
|
|
183
|
+
content.type.startsWith('thinking')) {
|
|
83
184
|
return new messages.AIMessageChunk(Object.assign({}, chunk, {
|
|
84
185
|
content: [Object.assign({}, content, { thinking: text })],
|
|
85
186
|
}));
|
|
@@ -95,7 +196,6 @@ class CustomAnthropic extends anthropic.ChatAnthropicMessages {
|
|
|
95
196
|
top_k;
|
|
96
197
|
outputConfig;
|
|
97
198
|
inferenceGeo;
|
|
98
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
99
199
|
contextManagement;
|
|
100
200
|
constructor(fields) {
|
|
101
201
|
super(fields);
|
|
@@ -114,7 +214,6 @@ class CustomAnthropic extends anthropic.ChatAnthropicMessages {
|
|
|
114
214
|
*/
|
|
115
215
|
invocationParams(options) {
|
|
116
216
|
const tool_choice = tools.handleToolChoice(options?.tool_choice);
|
|
117
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
118
217
|
const callOptions = options;
|
|
119
218
|
const mergedOutputConfig = (() => {
|
|
120
219
|
const base = {
|
|
@@ -128,42 +227,41 @@ class CustomAnthropic extends anthropic.ChatAnthropicMessages {
|
|
|
128
227
|
})();
|
|
129
228
|
const inferenceGeo = callOptions?.inferenceGeo ?? this.inferenceGeo;
|
|
130
229
|
const contextManagement = this.contextManagement;
|
|
230
|
+
const toolBetas = getToolBetas(options?.tools);
|
|
231
|
+
const compactionBetas = getCompactionBetas(contextManagement);
|
|
232
|
+
const taskBudgetBetas = getTaskBudgetBetas(this.model, mergedOutputConfig);
|
|
233
|
+
const formattedTools = this.formatStructuredToolToAnthropic(options?.tools);
|
|
131
234
|
const sharedParams = {
|
|
132
|
-
tools:
|
|
235
|
+
tools: formattedTools,
|
|
133
236
|
tool_choice,
|
|
134
237
|
thinking: this.thinking,
|
|
135
|
-
|
|
136
|
-
...(inferenceGeo ? { inference_geo: inferenceGeo } : {}),
|
|
137
|
-
...(contextManagement ? { context_management: contextManagement } : {}),
|
|
238
|
+
context_management: contextManagement,
|
|
138
239
|
...this.invocationKwargs,
|
|
240
|
+
container: callOptions?.container,
|
|
241
|
+
betas: combineBetas(this.betas, callOptions?.betas, toolBetas, compactionBetas, taskBudgetBetas),
|
|
242
|
+
output_config: mergedOutputConfig,
|
|
243
|
+
inference_geo: inferenceGeo,
|
|
244
|
+
mcp_servers: callOptions?.mcp_servers,
|
|
139
245
|
};
|
|
140
|
-
|
|
141
|
-
if (this.top_k !== -1 && this.top_k != null) {
|
|
142
|
-
throw new Error('topK is not supported when thinking is enabled');
|
|
143
|
-
}
|
|
144
|
-
if (this.topP !== -1 && this.topP != null) {
|
|
145
|
-
throw new Error('topP is not supported when thinking is enabled');
|
|
146
|
-
}
|
|
147
|
-
if (this.temperature !== 1 &&
|
|
148
|
-
this.temperature != null) {
|
|
149
|
-
throw new Error('temperature is not supported when thinking is enabled');
|
|
150
|
-
}
|
|
151
|
-
return {
|
|
152
|
-
model: this.model,
|
|
153
|
-
stop_sequences: options?.stop ?? this.stopSequences,
|
|
154
|
-
stream: this.streaming,
|
|
155
|
-
max_tokens: this.maxTokens,
|
|
156
|
-
...sharedParams,
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
return {
|
|
246
|
+
validateInvocationParamCompatibility({
|
|
160
247
|
model: this.model,
|
|
248
|
+
thinking: this.thinking,
|
|
249
|
+
topK: this.top_k,
|
|
250
|
+
topP: this.topP,
|
|
161
251
|
temperature: this.temperature,
|
|
162
|
-
|
|
163
|
-
|
|
252
|
+
});
|
|
253
|
+
return {
|
|
254
|
+
model: this.model,
|
|
164
255
|
stop_sequences: options?.stop ?? this.stopSequences,
|
|
165
256
|
stream: this.streaming,
|
|
166
257
|
max_tokens: this.maxTokens,
|
|
258
|
+
...getSamplingParams({
|
|
259
|
+
model: this.model,
|
|
260
|
+
thinking: this.thinking,
|
|
261
|
+
topK: this.top_k,
|
|
262
|
+
topP: this.topP,
|
|
263
|
+
temperature: this.temperature,
|
|
264
|
+
}),
|
|
167
265
|
...sharedParams,
|
|
168
266
|
};
|
|
169
267
|
}
|
|
@@ -180,20 +278,13 @@ class CustomAnthropic extends anthropic.ChatAnthropicMessages {
|
|
|
180
278
|
if (!outputUsage) {
|
|
181
279
|
return;
|
|
182
280
|
}
|
|
183
|
-
const totalUsage = {
|
|
184
|
-
input_tokens: inputUsage?.input_tokens ?? 0,
|
|
185
|
-
output_tokens: outputUsage.output_tokens ?? 0,
|
|
186
|
-
total_tokens: (inputUsage?.input_tokens ?? 0) + (outputUsage.output_tokens ?? 0),
|
|
187
|
-
};
|
|
188
|
-
if (inputUsage?.cache_creation_input_tokens != null ||
|
|
189
|
-
inputUsage?.cache_read_input_tokens != null) {
|
|
190
|
-
totalUsage.input_token_details = {
|
|
191
|
-
cache_creation: inputUsage.cache_creation_input_tokens ?? 0,
|
|
192
|
-
cache_read: inputUsage.cache_read_input_tokens ?? 0,
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
281
|
this.emitted_usage = true;
|
|
196
|
-
return
|
|
282
|
+
return message_outputs.getAnthropicUsageMetadata({
|
|
283
|
+
input_tokens: inputUsage?.input_tokens,
|
|
284
|
+
output_tokens: outputUsage.output_tokens,
|
|
285
|
+
cache_creation_input_tokens: inputUsage?.cache_creation_input_tokens,
|
|
286
|
+
cache_read_input_tokens: inputUsage?.cache_read_input_tokens,
|
|
287
|
+
});
|
|
197
288
|
}
|
|
198
289
|
resetTokenEvents() {
|
|
199
290
|
this.message_start = undefined;
|
|
@@ -247,8 +338,9 @@ class CustomAnthropic extends anthropic.ChatAnthropicMessages {
|
|
|
247
338
|
!_compactionInParams(payload);
|
|
248
339
|
const stream = await this.createStreamWithRetry(payload, {
|
|
249
340
|
headers: options.headers,
|
|
341
|
+
signal: options.signal,
|
|
250
342
|
});
|
|
251
|
-
const shouldStreamUsage =
|
|
343
|
+
const shouldStreamUsage = options.streamUsage ?? this.streamUsage;
|
|
252
344
|
for await (const data of stream) {
|
|
253
345
|
if (options.signal?.aborted === true) {
|
|
254
346
|
stream.controller.abort();
|
|
@@ -321,4 +413,5 @@ class CustomAnthropic extends anthropic.ChatAnthropicMessages {
|
|
|
321
413
|
}
|
|
322
414
|
|
|
323
415
|
exports.CustomAnthropic = CustomAnthropic;
|
|
416
|
+
exports._documentsInParams = _documentsInParams;
|
|
324
417
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../src/llm/anthropic/index.ts"],"sourcesContent":["import { AIMessageChunk } from '@langchain/core/messages';\nimport { ChatAnthropicMessages } from '@langchain/anthropic';\nimport { ChatGenerationChunk } from '@langchain/core/outputs';\nimport type { BaseChatModelParams } from '@langchain/core/language_models/chat_models';\nimport type {\n BaseMessage,\n UsageMetadata,\n MessageContentComplex,\n} from '@langchain/core/messages';\nimport type { CallbackManagerForLLMRun } from '@langchain/core/callbacks/manager';\nimport type { AnthropicInput } from '@langchain/anthropic';\nimport type { Anthropic } from '@anthropic-ai/sdk';\nimport type {\n AnthropicMessageCreateParams,\n AnthropicStreamingMessageCreateParams,\n AnthropicStreamUsage,\n AnthropicMessageStartEvent,\n AnthropicMessageDeltaEvent,\n AnthropicOutputConfig,\n} from '@/llm/anthropic/types';\nimport { _makeMessageChunkFromAnthropicEvent } from './utils/message_outputs';\nimport { _convertMessagesToAnthropicPayload } from './utils/message_inputs';\nimport { handleToolChoice } from './utils/tools';\nimport { TextStream } from '@/llm/text';\n\nfunction _toolsInParams(\n params: AnthropicMessageCreateParams | AnthropicStreamingMessageCreateParams\n): boolean {\n return !!(params.tools && params.tools.length > 0);\n}\nfunction _documentsInParams(\n params: AnthropicMessageCreateParams | AnthropicStreamingMessageCreateParams\n): boolean {\n for (const message of params.messages ?? []) {\n if (typeof message.content === 'string') {\n continue;\n }\n for (const block of message.content ?? []) {\n if (\n typeof block === 'object' &&\n block != null &&\n block.type === 'document' &&\n block.citations != null &&\n typeof block.citations === 'object' &&\n block.citations.enabled\n ) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction _thinkingInParams(\n params: AnthropicMessageCreateParams | AnthropicStreamingMessageCreateParams\n): boolean {\n return !!(\n params.thinking &&\n (params.thinking.type === 'enabled' || params.thinking.type === 'adaptive')\n );\n}\n\nfunction _compactionInParams(\n params: AnthropicMessageCreateParams | AnthropicStreamingMessageCreateParams\n): boolean {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const cm = (params as any).context_management;\n return !!cm?.edits?.some(\n (e: { type: string }) => e.type === 'compact_20260112'\n );\n}\n\nfunction extractToken(\n chunk: AIMessageChunk\n): [string, 'string' | 'input' | 'content'] | [undefined] {\n if (typeof chunk.content === 'string') {\n return [chunk.content, 'string'];\n } else if (\n Array.isArray(chunk.content) &&\n chunk.content.length >= 1 &&\n 'input' in chunk.content[0]\n ) {\n return typeof chunk.content[0].input === 'string'\n ? [chunk.content[0].input, 'input']\n : [JSON.stringify(chunk.content[0].input), 'input'];\n } else if (\n Array.isArray(chunk.content) &&\n chunk.content.length >= 1 &&\n 'text' in chunk.content[0]\n ) {\n return [chunk.content[0].text, 'content'];\n } else if (\n Array.isArray(chunk.content) &&\n chunk.content.length >= 1 &&\n 'thinking' in chunk.content[0]\n ) {\n return [chunk.content[0].thinking, 'content'];\n }\n return [undefined];\n}\n\nfunction cloneChunk(\n text: string,\n tokenType: string,\n chunk: AIMessageChunk\n): AIMessageChunk {\n if (tokenType === 'string') {\n return new AIMessageChunk(Object.assign({}, chunk, { content: text }));\n } else if (tokenType === 'input') {\n return chunk;\n }\n const content = chunk.content[0] as MessageContentComplex;\n if (tokenType === 'content' && content.type === 'text') {\n return new AIMessageChunk(\n Object.assign({}, chunk, {\n content: [Object.assign({}, content, { text })],\n })\n );\n } else if (tokenType === 'content' && content.type === 'text_delta') {\n return new AIMessageChunk(\n Object.assign({}, chunk, {\n content: [Object.assign({}, content, { text })],\n })\n );\n } else if (tokenType === 'content' && content.type?.startsWith('thinking')) {\n return new AIMessageChunk(\n Object.assign({}, chunk, {\n content: [Object.assign({}, content, { thinking: text })],\n })\n );\n }\n\n return chunk;\n}\n\nexport type CustomAnthropicInput = AnthropicInput & {\n _lc_stream_delay?: number;\n outputConfig?: AnthropicOutputConfig;\n inferenceGeo?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n contextManagement?: any;\n} & BaseChatModelParams;\n\n/**\n * A type representing additional parameters that can be passed to the\n * Anthropic API.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Kwargs = Record<string, any>;\n\nexport class CustomAnthropic extends ChatAnthropicMessages {\n _lc_stream_delay: number;\n private message_start: AnthropicMessageStartEvent | undefined;\n private message_delta: AnthropicMessageDeltaEvent | undefined;\n private tools_in_params?: boolean;\n private emitted_usage?: boolean;\n top_k: number | undefined;\n outputConfig?: AnthropicOutputConfig;\n inferenceGeo?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n contextManagement?: any;\n constructor(fields?: CustomAnthropicInput) {\n super(fields);\n this.resetTokenEvents();\n this.setDirectFields(fields);\n this._lc_stream_delay = fields?._lc_stream_delay ?? 25;\n this.outputConfig = fields?.outputConfig;\n this.inferenceGeo = fields?.inferenceGeo;\n this.contextManagement = fields?.contextManagement;\n }\n\n static lc_name(): 'LibreChatAnthropic' {\n return 'LibreChatAnthropic';\n }\n\n /**\n * Get the parameters used to invoke the model\n */\n override invocationParams(\n options?: this['ParsedCallOptions']\n ): Omit<\n AnthropicMessageCreateParams | AnthropicStreamingMessageCreateParams,\n 'messages'\n > &\n Kwargs {\n const tool_choice:\n | Anthropic.Messages.ToolChoiceAuto\n | Anthropic.Messages.ToolChoiceAny\n | Anthropic.Messages.ToolChoiceTool\n | undefined = handleToolChoice(options?.tool_choice);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const callOptions = options as Record<string, any> | undefined;\n const mergedOutputConfig: AnthropicOutputConfig | undefined = (():\n | AnthropicOutputConfig\n | undefined => {\n const base = {\n ...this.outputConfig,\n ...callOptions?.outputConfig,\n };\n if (callOptions?.outputFormat && !base.format) {\n base.format = callOptions.outputFormat;\n }\n return Object.keys(base).length > 0 ? base : undefined;\n })();\n\n const inferenceGeo = callOptions?.inferenceGeo ?? this.inferenceGeo;\n\n const contextManagement = this.contextManagement;\n\n const sharedParams = {\n tools: this.formatStructuredToolToAnthropic(options?.tools),\n tool_choice,\n thinking: this.thinking,\n ...(mergedOutputConfig ? { output_config: mergedOutputConfig } : {}),\n ...(inferenceGeo ? { inference_geo: inferenceGeo } : {}),\n ...(contextManagement ? { context_management: contextManagement } : {}),\n ...this.invocationKwargs,\n };\n\n if (this.thinking.type === 'enabled' || this.thinking.type === 'adaptive') {\n if (this.top_k !== -1 && (this.top_k as number | undefined) != null) {\n throw new Error('topK is not supported when thinking is enabled');\n }\n if (this.topP !== -1 && (this.topP as number | undefined) != null) {\n throw new Error('topP is not supported when thinking is enabled');\n }\n if (\n this.temperature !== 1 &&\n (this.temperature as number | undefined) != null\n ) {\n throw new Error(\n 'temperature is not supported when thinking is enabled'\n );\n }\n\n return {\n model: this.model,\n stop_sequences: options?.stop ?? this.stopSequences,\n stream: this.streaming,\n max_tokens: this.maxTokens,\n ...sharedParams,\n };\n }\n return {\n model: this.model,\n temperature: this.temperature,\n top_k: this.top_k,\n top_p: this.topP,\n stop_sequences: options?.stop ?? this.stopSequences,\n stream: this.streaming,\n max_tokens: this.maxTokens,\n ...sharedParams,\n };\n }\n\n /**\n * Get stream usage as returned by this client's API response.\n * @returns The stream usage object.\n */\n getStreamUsage(): UsageMetadata | undefined {\n if (this.emitted_usage === true) {\n return;\n }\n const inputUsage = this.message_start?.message.usage as\n | undefined\n | AnthropicStreamUsage;\n const outputUsage = this.message_delta?.usage as\n | undefined\n | Partial<AnthropicStreamUsage>;\n if (!outputUsage) {\n return;\n }\n const totalUsage: UsageMetadata = {\n input_tokens: inputUsage?.input_tokens ?? 0,\n output_tokens: outputUsage.output_tokens ?? 0,\n total_tokens:\n (inputUsage?.input_tokens ?? 0) + (outputUsage.output_tokens ?? 0),\n };\n\n if (\n inputUsage?.cache_creation_input_tokens != null ||\n inputUsage?.cache_read_input_tokens != null\n ) {\n totalUsage.input_token_details = {\n cache_creation: inputUsage.cache_creation_input_tokens ?? 0,\n cache_read: inputUsage.cache_read_input_tokens ?? 0,\n };\n }\n\n this.emitted_usage = true;\n return totalUsage;\n }\n\n resetTokenEvents(): void {\n this.message_start = undefined;\n this.message_delta = undefined;\n this.emitted_usage = undefined;\n this.tools_in_params = undefined;\n }\n\n setDirectFields(fields?: CustomAnthropicInput): void {\n this.temperature = fields?.temperature ?? undefined;\n this.topP = fields?.topP ?? undefined;\n this.top_k = fields?.topK;\n if (this.temperature === -1 || this.temperature === 1) {\n this.temperature = undefined;\n }\n if (this.topP === -1) {\n this.topP = undefined;\n }\n if (this.top_k === -1) {\n this.top_k = undefined;\n }\n }\n\n private createGenerationChunk({\n token,\n chunk,\n usageMetadata,\n shouldStreamUsage,\n }: {\n token?: string;\n chunk: AIMessageChunk;\n shouldStreamUsage: boolean;\n usageMetadata?: UsageMetadata;\n }): ChatGenerationChunk {\n const usage_metadata = shouldStreamUsage\n ? (usageMetadata ?? chunk.usage_metadata)\n : undefined;\n return new ChatGenerationChunk({\n message: new AIMessageChunk({\n // Just yield chunk as it is and tool_use will be concat by BaseChatModel._generateUncached().\n content: chunk.content,\n additional_kwargs: chunk.additional_kwargs,\n tool_call_chunks: chunk.tool_call_chunks,\n response_metadata: chunk.response_metadata,\n usage_metadata,\n id: chunk.id,\n }),\n text: token ?? '',\n });\n }\n\n async *_streamResponseChunks(\n messages: BaseMessage[],\n options: this['ParsedCallOptions'],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n this.resetTokenEvents();\n const params = this.invocationParams(options);\n const formattedMessages = _convertMessagesToAnthropicPayload(messages);\n const payload = {\n ...params,\n ...formattedMessages,\n stream: true,\n } as const;\n const coerceContentToString =\n !_toolsInParams(payload) &&\n !_documentsInParams(payload) &&\n !_thinkingInParams(payload) &&\n !_compactionInParams(payload);\n\n const stream = await this.createStreamWithRetry(payload, {\n headers: options.headers,\n });\n\n const shouldStreamUsage = this.streamUsage ?? options.streamUsage;\n\n for await (const data of stream) {\n if (options.signal?.aborted === true) {\n stream.controller.abort();\n throw new Error('AbortError: User aborted the request.');\n }\n\n if (data.type === 'message_start') {\n this.message_start = data as AnthropicMessageStartEvent;\n } else if (data.type === 'message_delta') {\n this.message_delta = data as AnthropicMessageDeltaEvent;\n }\n\n let usageMetadata: UsageMetadata | undefined;\n if (this.tools_in_params !== true && this.emitted_usage !== true) {\n usageMetadata = this.getStreamUsage();\n }\n\n const result = _makeMessageChunkFromAnthropicEvent(\n data as Anthropic.Beta.Messages.BetaRawMessageStreamEvent,\n {\n streamUsage: shouldStreamUsage,\n coerceContentToString,\n }\n );\n if (!result) continue;\n\n const { chunk } = result;\n const [token = '', tokenType] = extractToken(chunk);\n\n if (\n !tokenType ||\n tokenType === 'input' ||\n (token === '' && (usageMetadata != null || chunk.id != null))\n ) {\n const generationChunk = this.createGenerationChunk({\n token,\n chunk,\n usageMetadata,\n shouldStreamUsage,\n });\n yield generationChunk;\n await runManager?.handleLLMNewToken(\n token,\n undefined,\n undefined,\n undefined,\n undefined,\n { chunk: generationChunk }\n );\n continue;\n }\n\n const textStream = new TextStream(token, {\n delay: this._lc_stream_delay,\n firstWordChunk: true,\n minChunkSize: 4,\n maxChunkSize: 8,\n });\n\n const generator = textStream.generateText(options.signal);\n try {\n let emittedUsage = false;\n for await (const currentToken of generator) {\n if ((options.signal as AbortSignal | undefined)?.aborted === true) {\n break;\n }\n const newChunk = cloneChunk(currentToken, tokenType, chunk);\n\n const generationChunk = this.createGenerationChunk({\n token: currentToken,\n chunk: newChunk,\n usageMetadata: emittedUsage ? undefined : usageMetadata,\n shouldStreamUsage,\n });\n\n if (usageMetadata && !emittedUsage) {\n emittedUsage = true;\n }\n yield generationChunk;\n\n await runManager?.handleLLMNewToken(\n currentToken,\n undefined,\n undefined,\n undefined,\n undefined,\n { chunk: generationChunk }\n );\n }\n } finally {\n await generator.return();\n }\n }\n\n this.resetTokenEvents();\n }\n}\n"],"names":["AIMessageChunk","ChatAnthropicMessages","handleToolChoice","ChatGenerationChunk","_convertMessagesToAnthropicPayload","_makeMessageChunkFromAnthropicEvent","TextStream"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../src/llm/anthropic/index.ts"],"sourcesContent":["import { AIMessageChunk } from '@langchain/core/messages';\nimport { ChatAnthropicMessages } from '@langchain/anthropic';\nimport { ChatGenerationChunk } from '@langchain/core/outputs';\nimport type { BaseChatModelParams } from '@langchain/core/language_models/chat_models';\nimport type {\n BaseMessage,\n UsageMetadata,\n MessageContentComplex,\n} from '@langchain/core/messages';\nimport type { CallbackManagerForLLMRun } from '@langchain/core/callbacks/manager';\nimport type { AnthropicInput } from '@langchain/anthropic';\nimport type { Anthropic } from '@anthropic-ai/sdk';\nimport type {\n AnthropicMessageCreateParams,\n AnthropicStreamingMessageCreateParams,\n AnthropicMessageStartEvent,\n AnthropicMessageDeltaEvent,\n AnthropicOutputConfig,\n AnthropicBeta,\n ChatAnthropicToolType,\n AnthropicMCPServerURLDefinition,\n AnthropicContextManagementConfigParam,\n} from '@/llm/anthropic/types';\nimport {\n _makeMessageChunkFromAnthropicEvent,\n getAnthropicUsageMetadata,\n} from './utils/message_outputs';\nimport { _convertMessagesToAnthropicPayload } from './utils/message_inputs';\nimport { handleToolChoice } from './utils/tools';\nimport { TextStream } from '@/llm/text';\n\nconst ANTHROPIC_TOOL_BETAS: Partial<Record<string, AnthropicBeta>> = {\n tool_search_tool_regex_20251119: 'advanced-tool-use-2025-11-20',\n tool_search_tool_bm25_20251119: 'advanced-tool-use-2025-11-20',\n memory_20250818: 'context-management-2025-06-27',\n web_fetch_20250910: 'web-fetch-2025-09-10',\n code_execution_20250825: 'code-execution-2025-08-25',\n computer_20251124: 'computer-use-2025-11-24',\n computer_20250124: 'computer-use-2025-01-24',\n mcp_toolset: 'mcp-client-2025-11-20',\n};\n\nfunction _toolsInParams(\n params: AnthropicMessageCreateParams | AnthropicStreamingMessageCreateParams\n): boolean {\n return !!(params.tools && params.tools.length > 0);\n}\nexport function _documentsInParams(\n params: AnthropicMessageCreateParams | AnthropicStreamingMessageCreateParams\n): boolean {\n for (const message of params.messages) {\n if (typeof message.content === 'string') {\n continue;\n }\n for (const block of message.content) {\n if (\n typeof block === 'object' &&\n block !== null &&\n block.type === 'document' &&\n block.citations != null &&\n typeof block.citations === 'object' &&\n block.citations.enabled === true\n ) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction _thinkingInParams(\n params: AnthropicMessageCreateParams | AnthropicStreamingMessageCreateParams\n): boolean {\n return !!(\n params.thinking &&\n (params.thinking.type === 'enabled' || params.thinking.type === 'adaptive')\n );\n}\n\nfunction _compactionInParams(\n params: (\n | AnthropicMessageCreateParams\n | AnthropicStreamingMessageCreateParams\n ) & {\n context_management?: AnthropicContextManagementConfigParam;\n }\n): boolean {\n return (\n params.context_management?.edits?.some(\n (edit) => edit.type === 'compact_20260112'\n ) === true\n );\n}\n\nfunction isThinkingEnabled(thinking: Anthropic.ThinkingConfigParam): boolean {\n return thinking.type === 'enabled' || thinking.type === 'adaptive';\n}\n\nfunction isOpus47Model(model?: string): boolean {\n return /^claude-opus-4-7(?:-|$)/.test(model ?? '');\n}\n\nfunction combineBetas(\n ...betaGroups: (AnthropicBeta[] | undefined)[]\n): AnthropicBeta[] {\n const betas = new Set<AnthropicBeta>();\n for (const betaGroup of betaGroups) {\n for (const beta of betaGroup ?? []) {\n betas.add(beta);\n }\n }\n return [...betas];\n}\n\nfunction getToolBetas(tools?: ChatAnthropicToolType[]): AnthropicBeta[] {\n const betas = new Set<AnthropicBeta>();\n for (const tool of tools ?? []) {\n if (typeof tool !== 'object' || !('type' in tool)) {\n continue;\n }\n const beta = ANTHROPIC_TOOL_BETAS[String(tool.type)];\n if (beta != null) {\n betas.add(beta);\n }\n }\n return [...betas];\n}\n\nfunction getCompactionBetas(\n contextManagement?: AnthropicContextManagementConfigParam\n): AnthropicBeta[] {\n return contextManagement?.edits?.some(\n (edit) => edit.type === 'compact_20260112'\n ) === true\n ? ['compact-2026-01-12']\n : [];\n}\n\nfunction getTaskBudgetBetas(\n model: string,\n outputConfig?: AnthropicOutputConfig\n): AnthropicBeta[] {\n return isOpus47Model(model) &&\n outputConfig != null &&\n 'task_budget' in outputConfig &&\n outputConfig.task_budget != null\n ? ['task-budgets-2026-03-13']\n : [];\n}\n\nfunction isSetSamplingValue(value?: number | null): value is number {\n return value != null && value !== -1;\n}\n\nfunction isNonDefaultTemperature(value?: number): boolean {\n return isSetSamplingValue(value) && value !== 1;\n}\n\nfunction validateInvocationParamCompatibility({\n model,\n thinking,\n topK,\n topP,\n temperature,\n}: {\n model: string;\n thinking: Anthropic.ThinkingConfigParam;\n topK?: number;\n topP?: number | null;\n temperature?: number;\n}): void {\n const opus47 = isOpus47Model(model);\n if (opus47 && thinking.type === 'enabled') {\n throw new Error(\n 'thinking.type=\"enabled\" is not supported for claude-opus-4-7; use thinking.type=\"adaptive\" instead'\n );\n }\n if (opus47 && 'budget_tokens' in thinking) {\n throw new Error(\n 'thinking.budget_tokens is not supported for claude-opus-4-7; use outputConfig.effort instead'\n );\n }\n if (opus47) {\n if (isSetSamplingValue(topK)) {\n throw new Error(\n 'topK is not supported for claude-opus-4-7; omit topK/topP/temperature or use model prompting instead'\n );\n }\n if (isSetSamplingValue(topP) && topP !== 1) {\n throw new Error(\n 'topP is not supported for claude-opus-4-7 when set to non-default values'\n );\n }\n if (isNonDefaultTemperature(temperature)) {\n throw new Error(\n 'temperature is not supported for claude-opus-4-7 when set to non-default values'\n );\n }\n }\n if (!isThinkingEnabled(thinking)) {\n return;\n }\n if (isSetSamplingValue(topK)) {\n throw new Error('topK is not supported when thinking is enabled');\n }\n if (isSetSamplingValue(topP)) {\n throw new Error('topP is not supported when thinking is enabled');\n }\n if (isNonDefaultTemperature(temperature)) {\n throw new Error('temperature is not supported when thinking is enabled');\n }\n}\n\nfunction getSamplingParams({\n model,\n thinking,\n topK,\n topP,\n temperature,\n}: {\n model: string;\n thinking: Anthropic.ThinkingConfigParam;\n topK?: number;\n topP?: number | null;\n temperature?: number;\n}): {\n temperature?: number;\n top_k?: number;\n top_p?: number;\n} {\n if (isThinkingEnabled(thinking) || isOpus47Model(model)) {\n return {};\n }\n return {\n ...(isSetSamplingValue(temperature) ? { temperature } : {}),\n ...(isSetSamplingValue(topK) ? { top_k: topK } : {}),\n ...(isSetSamplingValue(topP) ? { top_p: topP } : {}),\n };\n}\n\nfunction extractToken(\n chunk: AIMessageChunk\n): [string, 'string' | 'input' | 'content'] | [undefined] {\n if (typeof chunk.content === 'string') {\n return [chunk.content, 'string'];\n } else if (\n Array.isArray(chunk.content) &&\n chunk.content.length >= 1 &&\n 'input' in chunk.content[0]\n ) {\n return typeof chunk.content[0].input === 'string'\n ? [chunk.content[0].input, 'input']\n : [JSON.stringify(chunk.content[0].input), 'input'];\n } else if (\n Array.isArray(chunk.content) &&\n chunk.content.length >= 1 &&\n 'text' in chunk.content[0]\n ) {\n const text = chunk.content[0].text;\n return typeof text === 'string' ? [text, 'content'] : [undefined];\n } else if (\n Array.isArray(chunk.content) &&\n chunk.content.length >= 1 &&\n 'thinking' in chunk.content[0]\n ) {\n const thinking = chunk.content[0].thinking;\n return typeof thinking === 'string' ? [thinking, 'content'] : [undefined];\n }\n return [undefined];\n}\n\nfunction cloneChunk(\n text: string,\n tokenType: string,\n chunk: AIMessageChunk\n): AIMessageChunk {\n if (tokenType === 'string') {\n return new AIMessageChunk(Object.assign({}, chunk, { content: text }));\n } else if (tokenType === 'input') {\n return chunk;\n }\n const content = chunk.content[0] as MessageContentComplex;\n if (tokenType === 'content' && content.type === 'text') {\n return new AIMessageChunk(\n Object.assign({}, chunk, {\n content: [Object.assign({}, content, { text })],\n })\n );\n } else if (tokenType === 'content' && content.type === 'text_delta') {\n return new AIMessageChunk(\n Object.assign({}, chunk, {\n content: [Object.assign({}, content, { text })],\n })\n );\n } else if (\n tokenType === 'content' &&\n typeof content.type === 'string' &&\n content.type.startsWith('thinking')\n ) {\n return new AIMessageChunk(\n Object.assign({}, chunk, {\n content: [Object.assign({}, content, { thinking: text })],\n })\n );\n }\n\n return chunk;\n}\n\nexport type CustomAnthropicInput = AnthropicInput & {\n _lc_stream_delay?: number;\n outputConfig?: AnthropicOutputConfig;\n inferenceGeo?: string;\n contextManagement?: AnthropicContextManagementConfigParam;\n} & BaseChatModelParams;\n\nexport type CustomAnthropicCallOptions = {\n outputConfig?: AnthropicOutputConfig;\n outputFormat?: Anthropic.Messages.JSONOutputFormat;\n inferenceGeo?: string;\n betas?: AnthropicBeta[];\n container?: string;\n mcp_servers?: AnthropicMCPServerURLDefinition[];\n};\n\ntype CustomAnthropicInvocationParams = {\n betas?: AnthropicBeta[];\n container?: string;\n context_management?: AnthropicContextManagementConfigParam;\n inference_geo?: string;\n mcp_servers?: AnthropicMCPServerURLDefinition[];\n output_config?: AnthropicOutputConfig;\n};\n\nexport class CustomAnthropic extends ChatAnthropicMessages {\n _lc_stream_delay: number;\n private message_start: AnthropicMessageStartEvent | undefined;\n private message_delta: AnthropicMessageDeltaEvent | undefined;\n private tools_in_params?: boolean;\n private emitted_usage?: boolean;\n top_k: number | undefined;\n outputConfig?: AnthropicOutputConfig;\n inferenceGeo?: string;\n contextManagement?: AnthropicContextManagementConfigParam;\n constructor(fields?: CustomAnthropicInput) {\n super(fields);\n this.resetTokenEvents();\n this.setDirectFields(fields);\n this._lc_stream_delay = fields?._lc_stream_delay ?? 25;\n this.outputConfig = fields?.outputConfig;\n this.inferenceGeo = fields?.inferenceGeo;\n this.contextManagement = fields?.contextManagement;\n }\n\n static lc_name(): 'LibreChatAnthropic' {\n return 'LibreChatAnthropic';\n }\n\n /**\n * Get the parameters used to invoke the model\n */\n override invocationParams(\n options?: this['ParsedCallOptions'] & CustomAnthropicCallOptions\n ): Omit<\n AnthropicMessageCreateParams | AnthropicStreamingMessageCreateParams,\n 'messages'\n > &\n CustomAnthropicInvocationParams {\n const tool_choice:\n | Anthropic.Messages.ToolChoiceAuto\n | Anthropic.Messages.ToolChoiceAny\n | Anthropic.Messages.ToolChoiceTool\n | undefined = handleToolChoice(options?.tool_choice);\n\n const callOptions = options as CustomAnthropicCallOptions | undefined;\n const mergedOutputConfig: AnthropicOutputConfig | undefined = (():\n | AnthropicOutputConfig\n | undefined => {\n const base = {\n ...this.outputConfig,\n ...callOptions?.outputConfig,\n };\n if (callOptions?.outputFormat && !base.format) {\n base.format = callOptions.outputFormat;\n }\n return Object.keys(base).length > 0 ? base : undefined;\n })();\n\n const inferenceGeo = callOptions?.inferenceGeo ?? this.inferenceGeo;\n\n const contextManagement = this.contextManagement;\n const toolBetas = getToolBetas(options?.tools);\n const compactionBetas = getCompactionBetas(contextManagement);\n const taskBudgetBetas = getTaskBudgetBetas(this.model, mergedOutputConfig);\n const formattedTools = this.formatStructuredToolToAnthropic(options?.tools);\n\n const sharedParams = {\n tools: formattedTools,\n tool_choice,\n thinking: this.thinking,\n context_management: contextManagement,\n ...this.invocationKwargs,\n container: callOptions?.container,\n betas: combineBetas(\n this.betas,\n callOptions?.betas,\n toolBetas,\n compactionBetas,\n taskBudgetBetas\n ),\n output_config: mergedOutputConfig,\n inference_geo: inferenceGeo,\n mcp_servers: callOptions?.mcp_servers,\n };\n validateInvocationParamCompatibility({\n model: this.model,\n thinking: this.thinking,\n topK: this.top_k,\n topP: this.topP,\n temperature: this.temperature,\n });\n\n return {\n model: this.model,\n stop_sequences: options?.stop ?? this.stopSequences,\n stream: this.streaming,\n max_tokens: this.maxTokens,\n ...getSamplingParams({\n model: this.model,\n thinking: this.thinking,\n topK: this.top_k,\n topP: this.topP,\n temperature: this.temperature,\n }),\n ...sharedParams,\n };\n }\n\n /**\n * Get stream usage as returned by this client's API response.\n * @returns The stream usage object.\n */\n getStreamUsage(): UsageMetadata | undefined {\n if (this.emitted_usage === true) {\n return;\n }\n const inputUsage = this.message_start?.message.usage;\n const outputUsage = this.message_delta?.usage;\n if (!outputUsage) {\n return;\n }\n\n this.emitted_usage = true;\n return getAnthropicUsageMetadata({\n input_tokens: inputUsage?.input_tokens,\n output_tokens: outputUsage.output_tokens,\n cache_creation_input_tokens: inputUsage?.cache_creation_input_tokens,\n cache_read_input_tokens: inputUsage?.cache_read_input_tokens,\n });\n }\n\n resetTokenEvents(): void {\n this.message_start = undefined;\n this.message_delta = undefined;\n this.emitted_usage = undefined;\n this.tools_in_params = undefined;\n }\n\n setDirectFields(fields?: CustomAnthropicInput): void {\n this.temperature = fields?.temperature ?? undefined;\n this.topP = fields?.topP ?? undefined;\n this.top_k = fields?.topK;\n if (this.temperature === -1 || this.temperature === 1) {\n this.temperature = undefined;\n }\n if (this.topP === -1) {\n this.topP = undefined;\n }\n if (this.top_k === -1) {\n this.top_k = undefined;\n }\n }\n\n private createGenerationChunk({\n token,\n chunk,\n usageMetadata,\n shouldStreamUsage,\n }: {\n token?: string;\n chunk: AIMessageChunk;\n shouldStreamUsage: boolean;\n usageMetadata?: UsageMetadata;\n }): ChatGenerationChunk {\n const usage_metadata = shouldStreamUsage\n ? (usageMetadata ?? chunk.usage_metadata)\n : undefined;\n return new ChatGenerationChunk({\n message: new AIMessageChunk({\n // Just yield chunk as it is and tool_use will be concat by BaseChatModel._generateUncached().\n content: chunk.content,\n additional_kwargs: chunk.additional_kwargs,\n tool_call_chunks: chunk.tool_call_chunks,\n response_metadata: chunk.response_metadata,\n usage_metadata,\n id: chunk.id,\n }),\n text: token ?? '',\n });\n }\n\n async *_streamResponseChunks(\n messages: BaseMessage[],\n options: this['ParsedCallOptions'],\n runManager?: CallbackManagerForLLMRun\n ): AsyncGenerator<ChatGenerationChunk> {\n this.resetTokenEvents();\n const params = this.invocationParams(options);\n const formattedMessages = _convertMessagesToAnthropicPayload(messages);\n const payload = {\n ...params,\n ...formattedMessages,\n stream: true,\n } as const;\n const coerceContentToString =\n !_toolsInParams(payload) &&\n !_documentsInParams(payload) &&\n !_thinkingInParams(payload) &&\n !_compactionInParams(payload);\n\n const stream = await this.createStreamWithRetry(payload, {\n headers: options.headers,\n signal: options.signal,\n });\n\n const shouldStreamUsage = options.streamUsage ?? this.streamUsage;\n\n for await (const data of stream) {\n if (options.signal?.aborted === true) {\n stream.controller.abort();\n throw new Error('AbortError: User aborted the request.');\n }\n\n if (data.type === 'message_start') {\n this.message_start = data as AnthropicMessageStartEvent;\n } else if (data.type === 'message_delta') {\n this.message_delta = data as AnthropicMessageDeltaEvent;\n }\n\n let usageMetadata: UsageMetadata | undefined;\n if (this.tools_in_params !== true && this.emitted_usage !== true) {\n usageMetadata = this.getStreamUsage();\n }\n\n const result = _makeMessageChunkFromAnthropicEvent(\n data as Anthropic.Beta.Messages.BetaRawMessageStreamEvent,\n {\n streamUsage: shouldStreamUsage,\n coerceContentToString,\n }\n );\n if (!result) continue;\n\n const { chunk } = result;\n const [token = '', tokenType] = extractToken(chunk);\n\n if (\n !tokenType ||\n tokenType === 'input' ||\n (token === '' && (usageMetadata != null || chunk.id != null))\n ) {\n const generationChunk = this.createGenerationChunk({\n token,\n chunk,\n usageMetadata,\n shouldStreamUsage,\n });\n yield generationChunk;\n await runManager?.handleLLMNewToken(\n token,\n undefined,\n undefined,\n undefined,\n undefined,\n { chunk: generationChunk }\n );\n continue;\n }\n\n const textStream = new TextStream(token, {\n delay: this._lc_stream_delay,\n firstWordChunk: true,\n minChunkSize: 4,\n maxChunkSize: 8,\n });\n\n const generator = textStream.generateText(options.signal);\n try {\n let emittedUsage = false;\n for await (const currentToken of generator) {\n if ((options.signal as AbortSignal | undefined)?.aborted === true) {\n break;\n }\n const newChunk = cloneChunk(currentToken, tokenType, chunk);\n\n const generationChunk = this.createGenerationChunk({\n token: currentToken,\n chunk: newChunk,\n usageMetadata: emittedUsage ? undefined : usageMetadata,\n shouldStreamUsage,\n });\n\n if (usageMetadata && !emittedUsage) {\n emittedUsage = true;\n }\n yield generationChunk;\n\n await runManager?.handleLLMNewToken(\n currentToken,\n undefined,\n undefined,\n undefined,\n undefined,\n { chunk: generationChunk }\n );\n }\n } finally {\n await generator.return();\n }\n }\n\n this.resetTokenEvents();\n }\n}\n"],"names":["AIMessageChunk","ChatAnthropicMessages","handleToolChoice","getAnthropicUsageMetadata","ChatGenerationChunk","_convertMessagesToAnthropicPayload","_makeMessageChunkFromAnthropicEvent","TextStream"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.cjs","sources":["../../../../src/llm/anthropic/types.ts"],"sourcesContent":["import Anthropic from '@anthropic-ai/sdk';\nimport { BindToolsInput } from '@langchain/core/language_models/chat_models';\n\nexport type AnthropicStreamUsage = Anthropic.Usage;\nexport type AnthropicMessageDeltaEvent = Anthropic.MessageDeltaEvent;\nexport type AnthropicMessageStartEvent = Anthropic.MessageStartEvent;\n\nexport type AnthropicToolResponse = {\n type: 'tool_use' | 'server_tool_use';\n id: string;\n name: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n input: Record<string, any>;\n};\n\nexport type AnthropicMessageParam = Anthropic.MessageParam;\nexport type AnthropicMessageResponse =\n | Anthropic.ContentBlock\n | AnthropicToolResponse;\nexport type AnthropicMessageCreateParams =\n Anthropic.MessageCreateParamsNonStreaming;\nexport type AnthropicStreamingMessageCreateParams =\n Anthropic.MessageCreateParamsStreaming;\nexport type AnthropicThinkingConfigParam = Anthropic.ThinkingConfigParam;\nexport type AnthropicMessageStreamEvent = Anthropic.MessageStreamEvent;\nexport type AnthropicRequestOptions = Anthropic.RequestOptions;\nexport type AnthropicToolChoice =\n | {\n type: 'tool';\n name: string;\n }\n | 'any'\n | 'auto'\n | 'none'\n | string;\nexport type ChatAnthropicToolType = Anthropic.Messages.Tool | BindToolsInput;\nexport type AnthropicTextBlockParam = Anthropic.Messages.TextBlockParam;\nexport type AnthropicImageBlockParam = Anthropic.Messages.ImageBlockParam;\nexport type AnthropicToolUseBlockParam = Anthropic.Messages.ToolUseBlockParam;\nexport type AnthropicToolResultBlockParam =\n Anthropic.Messages.ToolResultBlockParam;\nexport type AnthropicDocumentBlockParam = Anthropic.Messages.DocumentBlockParam;\nexport type AnthropicThinkingBlockParam = Anthropic.Messages.ThinkingBlockParam;\nexport type AnthropicRedactedThinkingBlockParam =\n Anthropic.Messages.RedactedThinkingBlockParam;\nexport type AnthropicServerToolUseBlockParam =\n Anthropic.Messages.ServerToolUseBlockParam;\nexport type AnthropicWebSearchToolResultBlockParam =\n Anthropic.Messages.WebSearchToolResultBlockParam;\nexport type AnthropicWebSearchResultBlockParam =\n Anthropic.Messages.WebSearchResultBlockParam;\nexport type AnthropicSearchResultBlockParam =\n Anthropic.Beta.BetaSearchResultBlockParam;\nexport type AnthropicCompactionBlockParam =\n Anthropic.Beta.BetaCompactionBlockParam;\nexport type AnthropicOutputConfig = Anthropic.Messages.OutputConfig;\nexport type ChatAnthropicOutputFormat = Anthropic.Messages.JSONOutputFormat;\n\n// Union of all possible content block types including server tool use\nexport type AnthropicContentBlock =\n | AnthropicTextBlockParam\n | AnthropicImageBlockParam\n | AnthropicToolUseBlockParam\n | AnthropicToolResultBlockParam\n | AnthropicDocumentBlockParam\n | AnthropicThinkingBlockParam\n | AnthropicRedactedThinkingBlockParam\n | AnthropicServerToolUseBlockParam\n | AnthropicWebSearchToolResultBlockParam\n | AnthropicWebSearchResultBlockParam\n | AnthropicCompactionBlockParam;\n\n// Union of all possible content block types including server tool use\nexport type ChatAnthropicContentBlock =\n | AnthropicTextBlockParam\n | AnthropicImageBlockParam\n | AnthropicToolUseBlockParam\n | AnthropicToolResultBlockParam\n | AnthropicDocumentBlockParam\n | AnthropicThinkingBlockParam\n | AnthropicRedactedThinkingBlockParam\n | AnthropicServerToolUseBlockParam\n | AnthropicWebSearchToolResultBlockParam\n | AnthropicWebSearchResultBlockParam\n | AnthropicSearchResultBlockParam\n | AnthropicCompactionBlockParam;\n\nexport function isAnthropicImageBlockParam(\n block: unknown\n): block is AnthropicImageBlockParam {\n if (block == null) {\n return false;\n }\n if (typeof block !== 'object') {\n return false;\n }\n if (!('type' in block) || block.type !== 'image') {\n return false;\n }\n\n if (!('source' in block) || typeof block.source !== 'object') {\n return false;\n }\n\n if (block.source == null) {\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"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"types.cjs","sources":["../../../../src/llm/anthropic/types.ts"],"sourcesContent":["import Anthropic from '@anthropic-ai/sdk';\n\nimport type { BindToolsInput } from '@langchain/core/language_models/chat_models';\nimport type { AnthropicBeta } from '@anthropic-ai/sdk/resources';\n\nexport type { AnthropicBeta };\n\nexport type AnthropicStreamUsage = Anthropic.Usage;\nexport type AnthropicMessageDeltaEvent = Anthropic.MessageDeltaEvent;\nexport type AnthropicMessageStartEvent = Anthropic.MessageStartEvent;\n\nexport type AnthropicToolResponse = {\n type: 'tool_use' | 'server_tool_use';\n id: string;\n name: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n input: Record<string, any>;\n};\n\nexport type AnthropicMessageParam = Anthropic.MessageParam;\nexport type AnthropicMessageResponse =\n | Anthropic.ContentBlock\n | AnthropicToolResponse;\nexport type AnthropicMessageCreateParams =\n Anthropic.MessageCreateParamsNonStreaming;\nexport type AnthropicStreamingMessageCreateParams =\n Anthropic.MessageCreateParamsStreaming;\nexport type AnthropicThinkingConfigParam = Anthropic.ThinkingConfigParam;\nexport type AnthropicContextManagementConfigParam =\n Anthropic.Beta.BetaContextManagementConfig;\nexport type AnthropicMessageStreamEvent = Anthropic.MessageStreamEvent;\nexport type AnthropicRequestOptions = Anthropic.RequestOptions;\nexport type AnthropicMCPServerURLDefinition =\n Anthropic.Beta.Messages.BetaRequestMCPServerURLDefinition;\nexport type AnthropicToolChoice =\n | {\n type: 'tool';\n name: string;\n }\n | 'any'\n | 'auto'\n | 'none'\n | string;\nexport type ChatAnthropicToolType = Anthropic.Messages.Tool | BindToolsInput;\nexport type AnthropicTextBlockParam = Anthropic.Messages.TextBlockParam;\nexport type AnthropicImageBlockParam = Anthropic.Messages.ImageBlockParam;\nexport type AnthropicToolUseBlockParam = Anthropic.Messages.ToolUseBlockParam;\nexport type AnthropicToolResultBlockParam =\n Anthropic.Messages.ToolResultBlockParam;\nexport type AnthropicDocumentBlockParam = Anthropic.Messages.DocumentBlockParam;\nexport type AnthropicThinkingBlockParam = Anthropic.Messages.ThinkingBlockParam;\nexport type AnthropicRedactedThinkingBlockParam =\n Anthropic.Messages.RedactedThinkingBlockParam;\nexport type AnthropicServerToolUseBlockParam =\n Anthropic.Messages.ServerToolUseBlockParam;\nexport type AnthropicWebSearchToolResultBlockParam =\n Anthropic.Messages.WebSearchToolResultBlockParam;\nexport type AnthropicWebSearchResultBlockParam =\n Anthropic.Messages.WebSearchResultBlockParam;\nexport type AnthropicSearchResultBlockParam =\n Anthropic.Beta.BetaSearchResultBlockParam;\nexport type AnthropicCompactionBlockParam =\n Anthropic.Beta.BetaCompactionBlockParam;\nexport type AnthropicOutputConfig = Anthropic.Messages.OutputConfig;\nexport type ChatAnthropicOutputFormat = Anthropic.Messages.JSONOutputFormat;\n\n// Union of all possible content block types including server tool use\nexport type AnthropicContentBlock =\n | AnthropicTextBlockParam\n | AnthropicImageBlockParam\n | AnthropicToolUseBlockParam\n | AnthropicToolResultBlockParam\n | AnthropicDocumentBlockParam\n | AnthropicThinkingBlockParam\n | AnthropicRedactedThinkingBlockParam\n | AnthropicServerToolUseBlockParam\n | AnthropicWebSearchToolResultBlockParam\n | AnthropicWebSearchResultBlockParam\n | AnthropicCompactionBlockParam;\n\n// Union of all possible content block types including server tool use\nexport type ChatAnthropicContentBlock =\n | AnthropicTextBlockParam\n | AnthropicImageBlockParam\n | AnthropicToolUseBlockParam\n | AnthropicToolResultBlockParam\n | AnthropicDocumentBlockParam\n | AnthropicThinkingBlockParam\n | AnthropicRedactedThinkingBlockParam\n | AnthropicServerToolUseBlockParam\n | AnthropicWebSearchToolResultBlockParam\n | AnthropicWebSearchResultBlockParam\n | AnthropicSearchResultBlockParam\n | AnthropicCompactionBlockParam;\n\nexport function isAnthropicImageBlockParam(\n block: unknown\n): block is AnthropicImageBlockParam {\n if (block == null) {\n return false;\n }\n if (typeof block !== 'object') {\n return false;\n }\n if (!('type' in block) || block.type !== 'image') {\n return false;\n }\n\n if (!('source' in block) || typeof block.source !== 'object') {\n return false;\n }\n\n if (block.source == null) {\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"],"names":[],"mappings":";;AA+FM,SAAU,0BAA0B,CACxC,KAAc,EAAA;AAEd,IAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,QAAA,OAAO,KAAK;IACd;AACA,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,KAAK;IACd;AACA,IAAA,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAChD,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,EAAE,QAAQ,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE;AAC5D,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE;AACxB,QAAA,OAAO,KAAK;IACd;IAEA,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,QAAA,OAAO,KAAK;IACd;IAEA,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;QAClC,IAAI,EAAE,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;AACnC,YAAA,OAAO,KAAK;QACd;QAEA,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE;AAC/C,YAAA,OAAO,KAAK;QACd;QAEA,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;AAC7B,YAAA,OAAO,KAAK;QACd;QAEA,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;AACzC,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,IAAI;IACb;IAEA,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE;QAC/B,IAAI,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;AAC5B,YAAA,OAAO,KAAK;QACd;QAEA,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,QAAQ,EAAE;AACxC,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,OAAO,KAAK;AACd;;;;"}
|