Skip to content

Commit 4f27524

Browse files
committed
fix(core): allow input_json_delta aggregation for anthropic tool_use streams
1 parent 3999fab commit 4f27524

1 file changed

Lines changed: 12 additions & 6 deletions

File tree

  • libs/langchain-core/src/messages

libs/langchain-core/src/messages/base.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -217,8 +217,7 @@ export abstract class BaseMessage<
217217
TRole extends MessageType = MessageType,
218218
>
219219
extends Serializable
220-
implements Message<TStructure, TRole>
221-
{
220+
implements Message<TStructure, TRole> {
222221
lc_namespace = ["langchain_core", "messages"];
223222

224223
lc_serializable = true;
@@ -566,7 +565,14 @@ function hasMergeableId(value: unknown): value is { id: string | number } {
566565
}
567566

568567
function getMergeableTypeBase(type: string): string {
569-
return type.endsWith("_delta") ? type.slice(0, -"_delta".length) : type;
568+
if (type === "input_json_delta" || type === "input_json") {
569+
return "tool_use";
570+
}
571+
572+
if (type.endsWith("_delta")) {
573+
return type.replace("_delta", "");
574+
}
575+
return type;
570576
}
571577

572578
function hasMismatchedMergeableType(left: unknown, right: unknown): boolean {
@@ -740,9 +746,9 @@ export type BaseMessageLike =
740746
* @deprecated Specifying "type" is deprecated and will be removed in 0.4.0.
741747
*/
742748
| ({
743-
type: MessageType | "user" | "assistant" | "placeholder";
744-
} & BaseMessageFields &
745-
Record<string, unknown>)
749+
type: MessageType | "user" | "assistant" | "placeholder";
750+
} & BaseMessageFields &
751+
Record<string, unknown>)
746752
| SerializedConstructor;
747753

748754
/**

0 commit comments

Comments
 (0)