@assistant-ui/react-langgraph 0.6.5 → 0.6.6
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertLangChainMessages.d.ts","sourceRoot":"","sources":["../src/convertLangChainMessages.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,2BAA2B,EAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAyD3C,eAAO,MAAM,wBAAwB,EAAE,2BAA2B,CAAC,QAAQ,CACzE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"convertLangChainMessages.d.ts","sourceRoot":"","sources":["../src/convertLangChainMessages.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,2BAA2B,EAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAyD3C,eAAO,MAAM,wBAAwB,EAAE,2BAA2B,CAAC,QAAQ,CACzE,gBAAgB,CAiDjB,CAAC"}
|
|
@@ -60,15 +60,16 @@ var convertLangChainMessages = (message) => {
|
|
|
60
60
|
id: message.id,
|
|
61
61
|
content: [
|
|
62
62
|
...contentToParts(message.content),
|
|
63
|
-
...message.tool_calls?.map(
|
|
64
|
-
(
|
|
63
|
+
...message.tool_calls?.map((chunk) => {
|
|
64
|
+
const argsText = chunk.partial_json ?? message.tool_call_chunks?.find((c) => c.id === chunk.id)?.args ?? JSON.stringify(chunk.args);
|
|
65
|
+
return {
|
|
65
66
|
type: "tool-call",
|
|
66
67
|
toolCallId: chunk.id,
|
|
67
68
|
toolName: chunk.name,
|
|
68
|
-
args:
|
|
69
|
-
argsText:
|
|
70
|
-
}
|
|
71
|
-
) ?? []
|
|
69
|
+
args: argsText ? parsePartialJsonObject(argsText) ?? {} : chunk.args,
|
|
70
|
+
argsText: argsText ?? JSON.stringify(chunk.args)
|
|
71
|
+
};
|
|
72
|
+
}) ?? []
|
|
72
73
|
],
|
|
73
74
|
...message.status && { status: message.status }
|
|
74
75
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/convertLangChainMessages.ts"],"sourcesContent":["\"use client\";\n\nimport {\n ThreadAssistantMessage,\n useExternalMessageConverter,\n} from \"@assistant-ui/react\";\nimport { LangChainMessage } from \"./types\";\nimport { ToolCallMessagePart } from \"@assistant-ui/react\";\nimport { ThreadUserMessage } from \"@assistant-ui/react\";\nimport { parsePartialJsonObject } from \"assistant-stream/utils\";\n\nconst contentToParts = (content: LangChainMessage[\"content\"]) => {\n if (typeof content === \"string\")\n return [{ type: \"text\" as const, text: content }];\n return content\n .map(\n (\n part,\n ):\n | (ThreadUserMessage | ThreadAssistantMessage)[\"content\"][number]\n | (ThreadUserMessage | ThreadAssistantMessage)[\"content\"][number][]\n | null => {\n const type = part.type;\n switch (type) {\n case \"text\":\n return { type: \"text\", text: part.text };\n case \"text_delta\":\n return { type: \"text\", text: part.text };\n case \"image_url\":\n if (typeof part.image_url === \"string\") {\n return { type: \"image\", image: part.image_url };\n } else {\n return {\n type: \"image\",\n image: part.image_url.url,\n };\n }\n case \"thinking\":\n return { type: \"reasoning\", text: part.thinking };\n\n case \"reasoning\":\n return part.summary\n .map((s) => s.text)\n .map((text) => ({\n type: \"reasoning\",\n text,\n }));\n\n case \"tool_use\":\n return null;\n case \"input_json_delta\":\n return null;\n\n default:\n const _exhaustiveCheck: never = type;\n throw new Error(`Unknown message part type: ${_exhaustiveCheck}`);\n }\n },\n )\n .flat()\n .filter((a) => a !== null);\n};\n\nexport const convertLangChainMessages: useExternalMessageConverter.Callback<\n LangChainMessage\n> = (message) => {\n switch (message.type) {\n case \"system\":\n return {\n role: \"system\",\n id: message.id,\n content: [{ type: \"text\", text: message.content }],\n };\n case \"human\":\n return {\n role: \"user\",\n id: message.id,\n content: contentToParts(message.content),\n };\n case \"ai\":\n return {\n role: \"assistant\",\n id: message.id,\n content: [\n ...contentToParts(message.content),\n ...(message.tool_calls?.map(
|
|
1
|
+
{"version":3,"sources":["../src/convertLangChainMessages.ts"],"sourcesContent":["\"use client\";\n\nimport {\n ThreadAssistantMessage,\n useExternalMessageConverter,\n} from \"@assistant-ui/react\";\nimport { LangChainMessage } from \"./types\";\nimport { ToolCallMessagePart } from \"@assistant-ui/react\";\nimport { ThreadUserMessage } from \"@assistant-ui/react\";\nimport { parsePartialJsonObject } from \"assistant-stream/utils\";\n\nconst contentToParts = (content: LangChainMessage[\"content\"]) => {\n if (typeof content === \"string\")\n return [{ type: \"text\" as const, text: content }];\n return content\n .map(\n (\n part,\n ):\n | (ThreadUserMessage | ThreadAssistantMessage)[\"content\"][number]\n | (ThreadUserMessage | ThreadAssistantMessage)[\"content\"][number][]\n | null => {\n const type = part.type;\n switch (type) {\n case \"text\":\n return { type: \"text\", text: part.text };\n case \"text_delta\":\n return { type: \"text\", text: part.text };\n case \"image_url\":\n if (typeof part.image_url === \"string\") {\n return { type: \"image\", image: part.image_url };\n } else {\n return {\n type: \"image\",\n image: part.image_url.url,\n };\n }\n case \"thinking\":\n return { type: \"reasoning\", text: part.thinking };\n\n case \"reasoning\":\n return part.summary\n .map((s) => s.text)\n .map((text) => ({\n type: \"reasoning\",\n text,\n }));\n\n case \"tool_use\":\n return null;\n case \"input_json_delta\":\n return null;\n\n default:\n const _exhaustiveCheck: never = type;\n throw new Error(`Unknown message part type: ${_exhaustiveCheck}`);\n }\n },\n )\n .flat()\n .filter((a) => a !== null);\n};\n\nexport const convertLangChainMessages: useExternalMessageConverter.Callback<\n LangChainMessage\n> = (message) => {\n switch (message.type) {\n case \"system\":\n return {\n role: \"system\",\n id: message.id,\n content: [{ type: \"text\", text: message.content }],\n };\n case \"human\":\n return {\n role: \"user\",\n id: message.id,\n content: contentToParts(message.content),\n };\n case \"ai\":\n return {\n role: \"assistant\",\n id: message.id,\n content: [\n ...contentToParts(message.content),\n ...(message.tool_calls?.map((chunk): ToolCallMessagePart => {\n const argsText =\n chunk.partial_json ??\n message.tool_call_chunks?.find((c) => c.id === chunk.id)?.args ??\n JSON.stringify(chunk.args);\n return {\n type: \"tool-call\",\n toolCallId: chunk.id,\n toolName: chunk.name,\n args: argsText\n ? (parsePartialJsonObject(argsText) ?? {})\n : chunk.args,\n argsText: argsText ?? JSON.stringify(chunk.args),\n };\n }) ?? []),\n ],\n ...(message.status && { status: message.status }),\n };\n case \"tool\":\n return {\n role: \"tool\",\n toolName: message.name,\n toolCallId: message.tool_call_id,\n result: message.content,\n artifact: message.artifact,\n isError: message.status === \"error\",\n };\n }\n};\n"],"mappings":";;;AASA,SAAS,8BAA8B;AAEvC,IAAM,iBAAiB,CAAC,YAAyC;AAC/D,MAAI,OAAO,YAAY;AACrB,WAAO,CAAC,EAAE,MAAM,QAAiB,MAAM,QAAQ,CAAC;AAClD,SAAO,QACJ;AAAA,IACC,CACE,SAIU;AACV,YAAM,OAAO,KAAK;AAClB,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,iBAAO,EAAE,MAAM,QAAQ,MAAM,KAAK,KAAK;AAAA,QACzC,KAAK;AACH,iBAAO,EAAE,MAAM,QAAQ,MAAM,KAAK,KAAK;AAAA,QACzC,KAAK;AACH,cAAI,OAAO,KAAK,cAAc,UAAU;AACtC,mBAAO,EAAE,MAAM,SAAS,OAAO,KAAK,UAAU;AAAA,UAChD,OAAO;AACL,mBAAO;AAAA,cACL,MAAM;AAAA,cACN,OAAO,KAAK,UAAU;AAAA,YACxB;AAAA,UACF;AAAA,QACF,KAAK;AACH,iBAAO,EAAE,MAAM,aAAa,MAAM,KAAK,SAAS;AAAA,QAElD,KAAK;AACH,iBAAO,KAAK,QACT,IAAI,CAAC,MAAM,EAAE,IAAI,EACjB,IAAI,CAAC,UAAU;AAAA,YACd,MAAM;AAAA,YACN;AAAA,UACF,EAAE;AAAA,QAEN,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QAET;AACE,gBAAM,mBAA0B;AAChC,gBAAM,IAAI,MAAM,8BAA8B,gBAAgB,EAAE;AAAA,MACpE;AAAA,IACF;AAAA,EACF,EACC,KAAK,EACL,OAAO,CAAC,MAAM,MAAM,IAAI;AAC7B;AAEO,IAAM,2BAET,CAAC,YAAY;AACf,UAAQ,QAAQ,MAAM;AAAA,IACpB,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,IAAI,QAAQ;AAAA,QACZ,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,QAAQ,QAAQ,CAAC;AAAA,MACnD;AAAA,IACF,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,IAAI,QAAQ;AAAA,QACZ,SAAS,eAAe,QAAQ,OAAO;AAAA,MACzC;AAAA,IACF,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,IAAI,QAAQ;AAAA,QACZ,SAAS;AAAA,UACP,GAAG,eAAe,QAAQ,OAAO;AAAA,UACjC,GAAI,QAAQ,YAAY,IAAI,CAAC,UAA+B;AAC1D,kBAAM,WACJ,MAAM,gBACN,QAAQ,kBAAkB,KAAK,CAAC,MAAM,EAAE,OAAO,MAAM,EAAE,GAAG,QAC1D,KAAK,UAAU,MAAM,IAAI;AAC3B,mBAAO;AAAA,cACL,MAAM;AAAA,cACN,YAAY,MAAM;AAAA,cAClB,UAAU,MAAM;AAAA,cAChB,MAAM,WACD,uBAAuB,QAAQ,KAAK,CAAC,IACtC,MAAM;AAAA,cACV,UAAU,YAAY,KAAK,UAAU,MAAM,IAAI;AAAA,YACjD;AAAA,UACF,CAAC,KAAK,CAAC;AAAA,QACT;AAAA,QACA,GAAI,QAAQ,UAAU,EAAE,QAAQ,QAAQ,OAAO;AAAA,MACjD;AAAA,IACF,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,UAAU,QAAQ;AAAA,QAClB,YAAY,QAAQ;AAAA,QACpB,QAAQ,QAAQ;AAAA,QAChB,UAAU,QAAQ;AAAA,QAClB,SAAS,QAAQ,WAAW;AAAA,MAC9B;AAAA,EACJ;AACF;","names":[]}
|
package/package.json
CHANGED
|
@@ -83,19 +83,21 @@ export const convertLangChainMessages: useExternalMessageConverter.Callback<
|
|
|
83
83
|
id: message.id,
|
|
84
84
|
content: [
|
|
85
85
|
...contentToParts(message.content),
|
|
86
|
-
...(message.tool_calls?.map(
|
|
87
|
-
|
|
86
|
+
...(message.tool_calls?.map((chunk): ToolCallMessagePart => {
|
|
87
|
+
const argsText =
|
|
88
|
+
chunk.partial_json ??
|
|
89
|
+
message.tool_call_chunks?.find((c) => c.id === chunk.id)?.args ??
|
|
90
|
+
JSON.stringify(chunk.args);
|
|
91
|
+
return {
|
|
88
92
|
type: "tool-call",
|
|
89
93
|
toolCallId: chunk.id,
|
|
90
94
|
toolName: chunk.name,
|
|
91
|
-
args:
|
|
92
|
-
? (parsePartialJsonObject(
|
|
95
|
+
args: argsText
|
|
96
|
+
? (parsePartialJsonObject(argsText) ?? {})
|
|
93
97
|
: chunk.args,
|
|
94
|
-
argsText: chunk.
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}),
|
|
98
|
-
) ?? []),
|
|
98
|
+
argsText: argsText ?? JSON.stringify(chunk.args),
|
|
99
|
+
};
|
|
100
|
+
}) ?? []),
|
|
99
101
|
],
|
|
100
102
|
...(message.status && { status: message.status }),
|
|
101
103
|
};
|