@langchain/langgraph 0.2.48 → 0.2.49
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/pregel/messages.cjs +16 -8
- package/dist/pregel/messages.js +17 -9
- package/package.json +1 -1
package/dist/pregel/messages.cjs
CHANGED
|
@@ -66,22 +66,30 @@ class StreamMessagesHandler extends base_1.BaseCallbackHandler {
|
|
|
66
66
|
this.seen[message.id] !== undefined) {
|
|
67
67
|
return;
|
|
68
68
|
}
|
|
69
|
-
// For instance in ChatAnthropic, the first chunk has an message ID
|
|
70
|
-
// but the subsequent chunks do not. To avoid clients seeing two messages
|
|
71
|
-
// we rename the message ID if it's being auto-set to `run-${runId}`
|
|
72
|
-
// (see https://github.com/langchain-ai/langchainjs/pull/6646).
|
|
73
69
|
let messageId = message.id;
|
|
74
|
-
if (
|
|
75
|
-
|
|
70
|
+
if ((0, messages_1.isToolMessage)(message)) {
|
|
71
|
+
// Distinguish tool messages by tool call ID.
|
|
72
|
+
messageId ??= `run-${runId}-tool-${message.tool_call_id}`;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
// For instance in ChatAnthropic, the first chunk has an message ID
|
|
76
|
+
// but the subsequent chunks do not. To avoid clients seeing two messages
|
|
77
|
+
// we rename the message ID if it's being auto-set to `run-${runId}`
|
|
78
|
+
// (see https://github.com/langchain-ai/langchainjs/pull/6646).
|
|
79
|
+
if (messageId == null || messageId === `run-${runId}`) {
|
|
80
|
+
messageId =
|
|
81
|
+
this.stableMessageIdMap[runId] ?? messageId ?? `run-${runId}`;
|
|
82
|
+
}
|
|
83
|
+
this.stableMessageIdMap[runId] ??= messageId;
|
|
76
84
|
}
|
|
77
|
-
this.stableMessageIdMap[runId] ??= messageId;
|
|
78
85
|
if (messageId !== message.id) {
|
|
79
86
|
// eslint-disable-next-line no-param-reassign
|
|
80
87
|
message.id = messageId;
|
|
81
88
|
// eslint-disable-next-line no-param-reassign
|
|
82
89
|
message.lc_kwargs.id = messageId;
|
|
83
90
|
}
|
|
84
|
-
|
|
91
|
+
if (message.id != null)
|
|
92
|
+
this.seen[message.id] = message;
|
|
85
93
|
this.streamFn([meta[0], "messages", [message, meta[1]]]);
|
|
86
94
|
}
|
|
87
95
|
handleChatModelStart(_llm, _messages, runId, _parentRunId, _extraParams, tags, metadata, name) {
|
package/dist/pregel/messages.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseCallbackHandler, } from "@langchain/core/callbacks/base";
|
|
2
|
-
import { AIMessageChunk, isBaseMessage, } from "@langchain/core/messages";
|
|
2
|
+
import { AIMessageChunk, isBaseMessage, isToolMessage, } from "@langchain/core/messages";
|
|
3
3
|
import { TAG_HIDDEN, TAG_NOSTREAM } from "../constants.js";
|
|
4
4
|
function isChatGenerationChunk(x) {
|
|
5
5
|
return isBaseMessage(x?.message);
|
|
@@ -63,22 +63,30 @@ export class StreamMessagesHandler extends BaseCallbackHandler {
|
|
|
63
63
|
this.seen[message.id] !== undefined) {
|
|
64
64
|
return;
|
|
65
65
|
}
|
|
66
|
-
// For instance in ChatAnthropic, the first chunk has an message ID
|
|
67
|
-
// but the subsequent chunks do not. To avoid clients seeing two messages
|
|
68
|
-
// we rename the message ID if it's being auto-set to `run-${runId}`
|
|
69
|
-
// (see https://github.com/langchain-ai/langchainjs/pull/6646).
|
|
70
66
|
let messageId = message.id;
|
|
71
|
-
if (
|
|
72
|
-
|
|
67
|
+
if (isToolMessage(message)) {
|
|
68
|
+
// Distinguish tool messages by tool call ID.
|
|
69
|
+
messageId ??= `run-${runId}-tool-${message.tool_call_id}`;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
// For instance in ChatAnthropic, the first chunk has an message ID
|
|
73
|
+
// but the subsequent chunks do not. To avoid clients seeing two messages
|
|
74
|
+
// we rename the message ID if it's being auto-set to `run-${runId}`
|
|
75
|
+
// (see https://github.com/langchain-ai/langchainjs/pull/6646).
|
|
76
|
+
if (messageId == null || messageId === `run-${runId}`) {
|
|
77
|
+
messageId =
|
|
78
|
+
this.stableMessageIdMap[runId] ?? messageId ?? `run-${runId}`;
|
|
79
|
+
}
|
|
80
|
+
this.stableMessageIdMap[runId] ??= messageId;
|
|
73
81
|
}
|
|
74
|
-
this.stableMessageIdMap[runId] ??= messageId;
|
|
75
82
|
if (messageId !== message.id) {
|
|
76
83
|
// eslint-disable-next-line no-param-reassign
|
|
77
84
|
message.id = messageId;
|
|
78
85
|
// eslint-disable-next-line no-param-reassign
|
|
79
86
|
message.lc_kwargs.id = messageId;
|
|
80
87
|
}
|
|
81
|
-
|
|
88
|
+
if (message.id != null)
|
|
89
|
+
this.seen[message.id] = message;
|
|
82
90
|
this.streamFn([meta[0], "messages", [message, meta[1]]]);
|
|
83
91
|
}
|
|
84
92
|
handleChatModelStart(_llm, _messages, runId, _parentRunId, _extraParams, tags, metadata, name) {
|