@assistant-ui/react-langgraph 0.7.12 → 0.7.14

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,42 +1,36 @@
1
- // src/LangGraphMessageAccumulator.ts
2
1
  import { v4 as uuidv4 } from "uuid";
3
- var LangGraphMessageAccumulator = class {
4
- messagesMap = /* @__PURE__ */ new Map();
5
- appendMessage;
6
- constructor({
7
- initialMessages = [],
8
- appendMessage = ((_, curr) => curr)
9
- } = {}) {
10
- this.appendMessage = appendMessage;
11
- this.addMessages(initialMessages);
12
- }
13
- ensureMessageId(message) {
14
- return message.id ? message : { ...message, id: uuidv4() };
15
- }
16
- addMessages(newMessages) {
17
- if (newMessages.length === 0) return this.getMessages();
18
- for (const message of newMessages.map(this.ensureMessageId)) {
19
- const messageId = message.id;
20
- const previous = this.messagesMap.get(messageId);
21
- this.messagesMap.set(messageId, this.appendMessage(previous, message));
2
+ export class LangGraphMessageAccumulator {
3
+ messagesMap = new Map();
4
+ appendMessage;
5
+ constructor({ initialMessages = [], appendMessage = ((_, curr) => curr), } = {}) {
6
+ this.appendMessage = appendMessage;
7
+ this.addMessages(initialMessages);
22
8
  }
23
- return this.getMessages();
24
- }
25
- getMessages() {
26
- return [...this.messagesMap.values()];
27
- }
28
- replaceMessages(newMessages) {
29
- this.messagesMap.clear();
30
- for (const message of newMessages.map(this.ensureMessageId)) {
31
- this.messagesMap.set(message.id, message);
9
+ ensureMessageId(message) {
10
+ return message.id ? message : { ...message, id: uuidv4() };
32
11
  }
33
- return this.getMessages();
34
- }
35
- clear() {
36
- this.messagesMap.clear();
37
- }
38
- };
39
- export {
40
- LangGraphMessageAccumulator
41
- };
12
+ addMessages(newMessages) {
13
+ if (newMessages.length === 0)
14
+ return this.getMessages();
15
+ for (const message of newMessages.map(this.ensureMessageId)) {
16
+ const messageId = message.id; // ensureMessageId guarantees id exists
17
+ const previous = this.messagesMap.get(messageId);
18
+ this.messagesMap.set(messageId, this.appendMessage(previous, message));
19
+ }
20
+ return this.getMessages();
21
+ }
22
+ getMessages() {
23
+ return [...this.messagesMap.values()];
24
+ }
25
+ replaceMessages(newMessages) {
26
+ this.messagesMap.clear();
27
+ for (const message of newMessages.map(this.ensureMessageId)) {
28
+ this.messagesMap.set(message.id, message);
29
+ }
30
+ return this.getMessages();
31
+ }
32
+ clear() {
33
+ this.messagesMap.clear();
34
+ }
35
+ }
42
36
  //# sourceMappingURL=LangGraphMessageAccumulator.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/LangGraphMessageAccumulator.ts"],"sourcesContent":["import { v4 as uuidv4 } from \"uuid\";\n\nexport type LangGraphStateAccumulatorConfig<TMessage> = {\n initialMessages?: TMessage[];\n appendMessage?: (prev: TMessage | undefined, curr: TMessage) => TMessage;\n};\n\nexport class LangGraphMessageAccumulator<TMessage extends { id?: string }> {\n private messagesMap = new Map<string, TMessage>();\n private appendMessage: (\n prev: TMessage | undefined,\n curr: TMessage,\n ) => TMessage;\n\n constructor({\n initialMessages = [],\n appendMessage = ((_: TMessage | undefined, curr: TMessage) => curr) as (\n prev: TMessage | undefined,\n curr: TMessage,\n ) => TMessage,\n }: LangGraphStateAccumulatorConfig<TMessage> = {}) {\n this.appendMessage = appendMessage;\n this.addMessages(initialMessages);\n }\n\n private ensureMessageId(message: TMessage): TMessage {\n return message.id ? message : { ...message, id: uuidv4() };\n }\n\n public addMessages(newMessages: TMessage[]) {\n if (newMessages.length === 0) return this.getMessages();\n\n for (const message of newMessages.map(this.ensureMessageId)) {\n const messageId = message.id!; // ensureMessageId guarantees id exists\n const previous = this.messagesMap.get(messageId);\n this.messagesMap.set(messageId, this.appendMessage(previous, message));\n }\n return this.getMessages();\n }\n\n public getMessages(): TMessage[] {\n return [...this.messagesMap.values()];\n }\n\n public replaceMessages(newMessages: TMessage[]): TMessage[] {\n this.messagesMap.clear();\n\n for (const message of newMessages.map(this.ensureMessageId)) {\n this.messagesMap.set(message.id!, message);\n }\n return this.getMessages();\n }\n\n public clear() {\n this.messagesMap.clear();\n }\n}\n"],"mappings":";AAAA,SAAS,MAAM,cAAc;AAOtB,IAAM,8BAAN,MAAoE;AAAA,EACjE,cAAc,oBAAI,IAAsB;AAAA,EACxC;AAAA,EAKR,YAAY;AAAA,IACV,kBAAkB,CAAC;AAAA,IACnB,iBAAiB,CAAC,GAAyB,SAAmB;AAAA,EAIhE,IAA+C,CAAC,GAAG;AACjD,SAAK,gBAAgB;AACrB,SAAK,YAAY,eAAe;AAAA,EAClC;AAAA,EAEQ,gBAAgB,SAA6B;AACnD,WAAO,QAAQ,KAAK,UAAU,EAAE,GAAG,SAAS,IAAI,OAAO,EAAE;AAAA,EAC3D;AAAA,EAEO,YAAY,aAAyB;AAC1C,QAAI,YAAY,WAAW,EAAG,QAAO,KAAK,YAAY;AAEtD,eAAW,WAAW,YAAY,IAAI,KAAK,eAAe,GAAG;AAC3D,YAAM,YAAY,QAAQ;AAC1B,YAAM,WAAW,KAAK,YAAY,IAAI,SAAS;AAC/C,WAAK,YAAY,IAAI,WAAW,KAAK,cAAc,UAAU,OAAO,CAAC;AAAA,IACvE;AACA,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEO,cAA0B;AAC/B,WAAO,CAAC,GAAG,KAAK,YAAY,OAAO,CAAC;AAAA,EACtC;AAAA,EAEO,gBAAgB,aAAqC;AAC1D,SAAK,YAAY,MAAM;AAEvB,eAAW,WAAW,YAAY,IAAI,KAAK,eAAe,GAAG;AAC3D,WAAK,YAAY,IAAI,QAAQ,IAAK,OAAO;AAAA,IAC3C;AACA,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEO,QAAQ;AACb,SAAK,YAAY,MAAM;AAAA,EACzB;AACF;","names":[]}
1
+ {"version":3,"file":"LangGraphMessageAccumulator.js","sourceRoot":"","sources":["../src/LangGraphMessageAccumulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAOpC,MAAM,OAAO,2BAA2B;IAC9B,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC1C,aAAa,CAGP;IAEd,YAAY,EACV,eAAe,GAAG,EAAE,EACpB,aAAa,GAAG,CAAC,CAAC,CAAuB,EAAE,IAAc,EAAE,EAAE,CAAC,IAAI,CAGrD,MACgC,EAAE;QAC/C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IACpC,CAAC;IAEO,eAAe,CAAC,OAAiB;QACvC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;IAC7D,CAAC;IAEM,WAAW,CAAC,WAAuB;QACxC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAExD,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,EAAG,CAAC,CAAC,uCAAuC;YACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAEM,WAAW;QAChB,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAEM,eAAe,CAAC,WAAuB;QAC5C,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAEzB,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAG,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACF"}
@@ -1,3 +1,3 @@
1
- import { LangChainMessage, LangChainMessageChunk } from "./types";
1
+ import { LangChainMessage, LangChainMessageChunk } from "./types.js";
2
2
  export declare const appendLangChainChunk: (prev: LangChainMessage | undefined, curr: LangChainMessage | LangChainMessageChunk) => LangChainMessage;
3
3
  //# sourceMappingURL=appendLangChainChunk.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"appendLangChainChunk.d.ts","sourceRoot":"","sources":["../src/appendLangChainChunk.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,oBAAoB,GAC/B,MAAM,gBAAgB,GAAG,SAAS,EAClC,MAAM,gBAAgB,GAAG,qBAAqB,KAC7C,gBAgEF,CAAC"}
1
+ {"version":3,"file":"appendLangChainChunk.d.ts","sourceRoot":"","sources":["../src/appendLangChainChunk.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EAEtB,mBAAgB;AAGjB,eAAO,MAAM,oBAAoB,GAC/B,MAAM,gBAAgB,GAAG,SAAS,EAClC,MAAM,gBAAgB,GAAG,qBAAqB,KAC7C,gBAgEF,CAAC"}
@@ -1,58 +1,63 @@
1
- // src/appendLangChainChunk.ts
2
1
  import { parsePartialJsonObject } from "assistant-stream/utils";
3
- var appendLangChainChunk = (prev, curr) => {
4
- if (curr.type !== "AIMessageChunk") {
5
- return curr;
6
- }
7
- if (!prev || prev.type !== "ai") {
8
- return {
9
- ...curr,
10
- type: curr.type.replace("MessageChunk", "").toLowerCase()
11
- };
12
- }
13
- const newContent = typeof prev.content === "string" ? [{ type: "text", text: prev.content }] : [...prev.content];
14
- if (typeof curr?.content === "string") {
15
- const lastIndex = newContent.length - 1;
16
- if (newContent[lastIndex]?.type === "text") {
17
- newContent[lastIndex].text = newContent[lastIndex].text + curr.content;
18
- } else {
19
- newContent.push({ type: "text", text: curr.content });
2
+ export const appendLangChainChunk = (prev, curr) => {
3
+ if (curr.type !== "AIMessageChunk") {
4
+ return curr;
5
+ }
6
+ if (!prev || prev.type !== "ai") {
7
+ return {
8
+ ...curr,
9
+ type: curr.type.replace("MessageChunk", "").toLowerCase(),
10
+ };
20
11
  }
21
- } else if (Array.isArray(curr.content)) {
22
- const lastIndex = newContent.length - 1;
23
- for (const item of curr.content) {
24
- if (!("type" in item)) {
25
- continue;
26
- }
27
- if (item.type === "text") {
12
+ const newContent = typeof prev.content === "string"
13
+ ? [{ type: "text", text: prev.content }]
14
+ : [...prev.content];
15
+ if (typeof curr?.content === "string") {
16
+ const lastIndex = newContent.length - 1;
28
17
  if (newContent[lastIndex]?.type === "text") {
29
- newContent[lastIndex].text = newContent[lastIndex].text + item.text;
30
- } else {
31
- newContent.push({ type: "text", text: item.text });
18
+ newContent[lastIndex].text =
19
+ newContent[lastIndex].text + curr.content;
20
+ }
21
+ else {
22
+ newContent.push({ type: "text", text: curr.content });
32
23
  }
33
- } else if (item.type === "image_url") {
34
- newContent.push(item);
35
- }
36
24
  }
37
- }
38
- const newToolCalls = [...prev.tool_calls ?? []];
39
- for (const chunk of curr.tool_call_chunks ?? []) {
40
- const existing = newToolCalls[chunk.index - 1] ?? { partial_json: "" };
41
- const partialJson = existing.partial_json + chunk.args;
42
- newToolCalls[chunk.index - 1] = {
43
- ...chunk,
44
- ...existing,
45
- partial_json: partialJson,
46
- args: parsePartialJsonObject(partialJson) ?? ("args" in existing ? existing.args : {})
25
+ else if (Array.isArray(curr.content)) {
26
+ const lastIndex = newContent.length - 1;
27
+ for (const item of curr.content) {
28
+ if (!("type" in item)) {
29
+ continue;
30
+ }
31
+ if (item.type === "text") {
32
+ if (newContent[lastIndex]?.type === "text") {
33
+ newContent[lastIndex].text =
34
+ newContent[lastIndex].text + item.text;
35
+ }
36
+ else {
37
+ newContent.push({ type: "text", text: item.text });
38
+ }
39
+ }
40
+ else if (item.type === "image_url") {
41
+ newContent.push(item);
42
+ }
43
+ }
44
+ }
45
+ const newToolCalls = [...(prev.tool_calls ?? [])];
46
+ for (const chunk of curr.tool_call_chunks ?? []) {
47
+ const existing = newToolCalls[chunk.index - 1] ?? { partial_json: "" };
48
+ const partialJson = existing.partial_json + chunk.args;
49
+ newToolCalls[chunk.index - 1] = {
50
+ ...chunk,
51
+ ...existing,
52
+ partial_json: partialJson,
53
+ args: parsePartialJsonObject(partialJson) ??
54
+ ("args" in existing ? existing.args : {}),
55
+ };
56
+ }
57
+ return {
58
+ ...prev,
59
+ content: newContent,
60
+ tool_calls: newToolCalls,
47
61
  };
48
- }
49
- return {
50
- ...prev,
51
- content: newContent,
52
- tool_calls: newToolCalls
53
- };
54
- };
55
- export {
56
- appendLangChainChunk
57
62
  };
58
63
  //# sourceMappingURL=appendLangChainChunk.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/appendLangChainChunk.ts"],"sourcesContent":["import {\n LangChainMessage,\n LangChainMessageChunk,\n MessageContentText,\n} from \"./types\";\nimport { parsePartialJsonObject } from \"assistant-stream/utils\";\n\nexport const appendLangChainChunk = (\n prev: LangChainMessage | undefined,\n curr: LangChainMessage | LangChainMessageChunk,\n): LangChainMessage => {\n if (curr.type !== \"AIMessageChunk\") {\n return curr;\n }\n\n if (!prev || prev.type !== \"ai\") {\n return {\n ...curr,\n type: curr.type.replace(\"MessageChunk\", \"\").toLowerCase(),\n } as LangChainMessage;\n }\n\n const newContent =\n typeof prev.content === \"string\"\n ? [{ type: \"text\" as const, text: prev.content }]\n : [...prev.content];\n\n if (typeof curr?.content === \"string\") {\n const lastIndex = newContent.length - 1;\n if (newContent[lastIndex]?.type === \"text\") {\n (newContent[lastIndex] as MessageContentText).text =\n (newContent[lastIndex] as MessageContentText).text + curr.content;\n } else {\n newContent.push({ type: \"text\", text: curr.content });\n }\n } else if (Array.isArray(curr.content)) {\n const lastIndex = newContent.length - 1;\n for (const item of curr.content) {\n if (!(\"type\" in item)) {\n continue;\n }\n\n if (item.type === \"text\") {\n if (newContent[lastIndex]?.type === \"text\") {\n (newContent[lastIndex] as MessageContentText).text =\n (newContent[lastIndex] as MessageContentText).text + item.text;\n } else {\n newContent.push({ type: \"text\", text: item.text });\n }\n } else if (item.type === \"image_url\") {\n newContent.push(item);\n }\n }\n }\n\n const newToolCalls = [...(prev.tool_calls ?? [])];\n for (const chunk of curr.tool_call_chunks ?? []) {\n const existing = newToolCalls[chunk.index - 1] ?? { partial_json: \"\" };\n const partialJson = existing.partial_json + chunk.args;\n newToolCalls[chunk.index - 1] = {\n ...chunk,\n ...existing,\n partial_json: partialJson,\n args:\n parsePartialJsonObject(partialJson) ??\n (\"args\" in existing ? existing.args : {}),\n };\n }\n\n return {\n ...prev,\n content: newContent,\n tool_calls: newToolCalls,\n };\n};\n"],"mappings":";AAKA,SAAS,8BAA8B;AAEhC,IAAM,uBAAuB,CAClC,MACA,SACqB;AACrB,MAAI,KAAK,SAAS,kBAAkB;AAClC,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,QAAQ,KAAK,SAAS,MAAM;AAC/B,WAAO;AAAA,MACL,GAAG;AAAA,MACH,MAAM,KAAK,KAAK,QAAQ,gBAAgB,EAAE,EAAE,YAAY;AAAA,IAC1D;AAAA,EACF;AAEA,QAAM,aACJ,OAAO,KAAK,YAAY,WACpB,CAAC,EAAE,MAAM,QAAiB,MAAM,KAAK,QAAQ,CAAC,IAC9C,CAAC,GAAG,KAAK,OAAO;AAEtB,MAAI,OAAO,MAAM,YAAY,UAAU;AACrC,UAAM,YAAY,WAAW,SAAS;AACtC,QAAI,WAAW,SAAS,GAAG,SAAS,QAAQ;AAC1C,MAAC,WAAW,SAAS,EAAyB,OAC3C,WAAW,SAAS,EAAyB,OAAO,KAAK;AAAA,IAC9D,OAAO;AACL,iBAAW,KAAK,EAAE,MAAM,QAAQ,MAAM,KAAK,QAAQ,CAAC;AAAA,IACtD;AAAA,EACF,WAAW,MAAM,QAAQ,KAAK,OAAO,GAAG;AACtC,UAAM,YAAY,WAAW,SAAS;AACtC,eAAW,QAAQ,KAAK,SAAS;AAC/B,UAAI,EAAE,UAAU,OAAO;AACrB;AAAA,MACF;AAEA,UAAI,KAAK,SAAS,QAAQ;AACxB,YAAI,WAAW,SAAS,GAAG,SAAS,QAAQ;AAC1C,UAAC,WAAW,SAAS,EAAyB,OAC3C,WAAW,SAAS,EAAyB,OAAO,KAAK;AAAA,QAC9D,OAAO;AACL,qBAAW,KAAK,EAAE,MAAM,QAAQ,MAAM,KAAK,KAAK,CAAC;AAAA,QACnD;AAAA,MACF,WAAW,KAAK,SAAS,aAAa;AACpC,mBAAW,KAAK,IAAI;AAAA,MACtB;AAAA,IACF;AAAA,EACF;AAEA,QAAM,eAAe,CAAC,GAAI,KAAK,cAAc,CAAC,CAAE;AAChD,aAAW,SAAS,KAAK,oBAAoB,CAAC,GAAG;AAC/C,UAAM,WAAW,aAAa,MAAM,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG;AACrE,UAAM,cAAc,SAAS,eAAe,MAAM;AAClD,iBAAa,MAAM,QAAQ,CAAC,IAAI;AAAA,MAC9B,GAAG;AAAA,MACH,GAAG;AAAA,MACH,cAAc;AAAA,MACd,MACE,uBAAuB,WAAW,MACjC,UAAU,WAAW,SAAS,OAAO,CAAC;AAAA,IAC3C;AAAA,EACF;AAEA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,SAAS;AAAA,IACT,YAAY;AAAA,EACd;AACF;","names":[]}
1
+ {"version":3,"file":"appendLangChainChunk.js","sourceRoot":"","sources":["../src/appendLangChainChunk.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { useExternalMessageConverter } from "@assistant-ui/react";
2
- import { LangChainMessage } from "./types";
2
+ import { LangChainMessage } from "./types.js";
3
3
  export declare const convertLangChainMessages: useExternalMessageConverter.Callback<LangChainMessage>;
4
4
  //# sourceMappingURL=convertLangChainMessages.d.ts.map
@@ -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;AAyF3C,eAAO,MAAM,wBAAwB,EAAE,2BAA2B,CAAC,QAAQ,CACzE,gBAAgB,CA6DjB,CAAC"}
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,mBAAgB;AAyF3C,eAAO,MAAM,wBAAwB,EAAE,2BAA2B,CAAC,QAAQ,CACzE,gBAAgB,CA6DjB,CAAC"}
@@ -1,120 +1,124 @@
1
1
  "use client";
2
-
3
- // src/convertLangChainMessages.ts
4
- import {
5
- parsePartialJsonObject
6
- } from "assistant-stream/utils";
7
- var warnedMessagePartTypes = /* @__PURE__ */ new Set();
8
- var warnForUnknownMessagePartType = (type) => {
9
- if (typeof process === "undefined" || process?.env?.["NODE_ENV"] !== "development")
10
- return;
11
- if (warnedMessagePartTypes.has(type)) return;
12
- warnedMessagePartTypes.add(type);
13
- console.warn(`Unknown message part type: ${type}`);
2
+ import { parsePartialJsonObject, } from "assistant-stream/utils";
3
+ const warnedMessagePartTypes = new Set();
4
+ const warnForUnknownMessagePartType = (type) => {
5
+ if (typeof process === "undefined" ||
6
+ process?.env?.["NODE_ENV"] !== "development")
7
+ return;
8
+ if (warnedMessagePartTypes.has(type))
9
+ return;
10
+ warnedMessagePartTypes.add(type);
11
+ console.warn(`Unknown message part type: ${type}`);
14
12
  };
15
- var contentToParts = (content) => {
16
- if (typeof content === "string")
17
- return [{ type: "text", text: content }];
18
- return content.map(
19
- (part) => {
20
- const type = part.type;
21
- switch (type) {
22
- case "text":
23
- return { type: "text", text: part.text };
24
- case "text_delta":
25
- return { type: "text", text: part.text };
26
- case "image_url":
27
- if (typeof part.image_url === "string") {
28
- return { type: "image", image: part.image_url };
29
- } else {
13
+ const contentToParts = (content) => {
14
+ if (typeof content === "string")
15
+ return [{ type: "text", text: content }];
16
+ return content
17
+ .map((part) => {
18
+ const type = part.type;
19
+ switch (type) {
20
+ case "text":
21
+ return { type: "text", text: part.text };
22
+ case "text_delta":
23
+ return { type: "text", text: part.text };
24
+ case "image_url":
25
+ if (typeof part.image_url === "string") {
26
+ return { type: "image", image: part.image_url };
27
+ }
28
+ else {
29
+ return {
30
+ type: "image",
31
+ image: part.image_url.url,
32
+ };
33
+ }
34
+ case "file":
35
+ return {
36
+ type: "file",
37
+ filename: part.file.filename,
38
+ data: part.file.file_data,
39
+ mimeType: part.file.mime_type,
40
+ };
41
+ case "thinking":
42
+ return { type: "reasoning", text: part.thinking };
43
+ case "reasoning":
44
+ return {
45
+ type: "reasoning",
46
+ text: part.summary.map((s) => s.text).join("\n\n\n"),
47
+ };
48
+ case "tool_use":
49
+ return null;
50
+ case "input_json_delta":
51
+ return null;
52
+ case "computer_call":
53
+ return {
54
+ type: "tool-call",
55
+ toolCallId: part.call_id,
56
+ toolName: "computer_call",
57
+ args: part.action,
58
+ argsText: JSON.stringify(part.action),
59
+ };
60
+ default:
61
+ const _exhaustiveCheck = type;
62
+ warnForUnknownMessagePartType(_exhaustiveCheck);
63
+ return null;
64
+ // const _exhaustiveCheck: never = type;
65
+ // throw new Error(`Unknown message part type: ${_exhaustiveCheck}`);
66
+ }
67
+ })
68
+ .filter((a) => a !== null);
69
+ };
70
+ export const convertLangChainMessages = (message) => {
71
+ switch (message.type) {
72
+ case "system":
73
+ return {
74
+ role: "system",
75
+ id: message.id,
76
+ content: [{ type: "text", text: message.content }],
77
+ };
78
+ case "human":
79
+ return {
80
+ role: "user",
81
+ id: message.id,
82
+ content: contentToParts(message.content),
83
+ };
84
+ case "ai":
85
+ const toolCallParts = message.tool_calls?.map((chunk) => {
86
+ const argsText = chunk.partial_json ??
87
+ message.tool_call_chunks?.find((c) => c.id === chunk.id)?.args ??
88
+ JSON.stringify(chunk.args);
89
+ return {
90
+ type: "tool-call",
91
+ toolCallId: chunk.id,
92
+ toolName: chunk.name,
93
+ args: argsText
94
+ ? (parsePartialJsonObject(argsText) ?? {})
95
+ : chunk.args,
96
+ argsText: argsText ?? JSON.stringify(chunk.args),
97
+ };
98
+ }) ?? [];
99
+ const normalizedContent = typeof message.content === "string"
100
+ ? [{ type: "text", text: message.content }]
101
+ : message.content;
102
+ const allContent = [
103
+ message.additional_kwargs?.reasoning,
104
+ ...normalizedContent,
105
+ ...(message.additional_kwargs?.tool_outputs ?? []),
106
+ ].filter((c) => c !== undefined);
30
107
  return {
31
- type: "image",
32
- image: part.image_url.url
108
+ role: "assistant",
109
+ id: message.id,
110
+ content: [...contentToParts(allContent), ...toolCallParts],
111
+ ...(message.status && { status: message.status }),
112
+ };
113
+ case "tool":
114
+ return {
115
+ role: "tool",
116
+ toolName: message.name,
117
+ toolCallId: message.tool_call_id,
118
+ result: message.content,
119
+ artifact: message.artifact,
120
+ isError: message.status === "error",
33
121
  };
34
- }
35
- case "file":
36
- return {
37
- type: "file",
38
- filename: part.file.filename,
39
- data: part.file.file_data,
40
- mimeType: part.file.mime_type
41
- };
42
- case "thinking":
43
- return { type: "reasoning", text: part.thinking };
44
- case "reasoning":
45
- return {
46
- type: "reasoning",
47
- text: part.summary.map((s) => s.text).join("\n\n\n")
48
- };
49
- case "tool_use":
50
- return null;
51
- case "input_json_delta":
52
- return null;
53
- case "computer_call":
54
- return {
55
- type: "tool-call",
56
- toolCallId: part.call_id,
57
- toolName: "computer_call",
58
- args: part.action,
59
- argsText: JSON.stringify(part.action)
60
- };
61
- default:
62
- const _exhaustiveCheck = type;
63
- warnForUnknownMessagePartType(_exhaustiveCheck);
64
- return null;
65
- }
66
122
  }
67
- ).filter((a) => a !== null);
68
- };
69
- var convertLangChainMessages = (message) => {
70
- switch (message.type) {
71
- case "system":
72
- return {
73
- role: "system",
74
- id: message.id,
75
- content: [{ type: "text", text: message.content }]
76
- };
77
- case "human":
78
- return {
79
- role: "user",
80
- id: message.id,
81
- content: contentToParts(message.content)
82
- };
83
- case "ai":
84
- const toolCallParts = message.tool_calls?.map((chunk) => {
85
- const argsText = chunk.partial_json ?? message.tool_call_chunks?.find((c) => c.id === chunk.id)?.args ?? JSON.stringify(chunk.args);
86
- return {
87
- type: "tool-call",
88
- toolCallId: chunk.id,
89
- toolName: chunk.name,
90
- args: argsText ? parsePartialJsonObject(argsText) ?? {} : chunk.args,
91
- argsText: argsText ?? JSON.stringify(chunk.args)
92
- };
93
- }) ?? [];
94
- const normalizedContent = typeof message.content === "string" ? [{ type: "text", text: message.content }] : message.content;
95
- const allContent = [
96
- message.additional_kwargs?.reasoning,
97
- ...normalizedContent,
98
- ...message.additional_kwargs?.tool_outputs ?? []
99
- ].filter((c) => c !== void 0);
100
- return {
101
- role: "assistant",
102
- id: message.id,
103
- content: [...contentToParts(allContent), ...toolCallParts],
104
- ...message.status && { status: message.status }
105
- };
106
- case "tool":
107
- return {
108
- role: "tool",
109
- toolName: message.name,
110
- toolCallId: message.tool_call_id,
111
- result: message.content,
112
- artifact: message.artifact,
113
- isError: message.status === "error"
114
- };
115
- }
116
- };
117
- export {
118
- convertLangChainMessages
119
123
  };
120
124
  //# sourceMappingURL=convertLangChainMessages.js.map
@@ -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 {\n parsePartialJsonObject,\n ReadonlyJSONObject,\n} from \"assistant-stream/utils\";\n\nconst warnedMessagePartTypes = new Set<string>();\nconst warnForUnknownMessagePartType = (type: string) => {\n if (\n typeof process === \"undefined\" ||\n process?.env?.[\"NODE_ENV\"] !== \"development\"\n )\n return;\n if (warnedMessagePartTypes.has(type)) return;\n warnedMessagePartTypes.add(type);\n console.warn(`Unknown message part type: ${type}`);\n};\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 | 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 \"file\":\n return {\n type: \"file\",\n filename: part.file.filename,\n data: part.file.file_data,\n mimeType: part.file.mime_type,\n };\n\n case \"thinking\":\n return { type: \"reasoning\", text: part.thinking };\n\n case \"reasoning\":\n return {\n type: \"reasoning\",\n text: part.summary.map((s) => s.text).join(\"\\n\\n\\n\"),\n };\n\n case \"tool_use\":\n return null;\n case \"input_json_delta\":\n return null;\n\n case \"computer_call\":\n return {\n type: \"tool-call\",\n toolCallId: part.call_id,\n toolName: \"computer_call\",\n args: part.action as ReadonlyJSONObject,\n argsText: JSON.stringify(part.action),\n };\n\n default:\n const _exhaustiveCheck: never = type;\n warnForUnknownMessagePartType(_exhaustiveCheck);\n return null;\n\n // const _exhaustiveCheck: never = type;\n // throw new Error(`Unknown message part type: ${_exhaustiveCheck}`);\n }\n },\n )\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 const toolCallParts =\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\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 const normalizedContent =\n typeof message.content === \"string\"\n ? [{ type: \"text\" as const, text: message.content }]\n : message.content;\n\n const allContent = [\n message.additional_kwargs?.reasoning,\n ...normalizedContent,\n ...(message.additional_kwargs?.tool_outputs ?? []),\n ].filter((c) => c !== undefined);\n\n return {\n role: \"assistant\",\n id: message.id,\n content: [...contentToParts(allContent), ...toolCallParts],\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":"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","names":[]}
1
+ {"version":3,"file":"convertLangChainMessages.js","sourceRoot":"","sources":["../src/convertLangChainMessages.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- export { useLangGraphRuntime, useLangGraphSend, useLangGraphSendCommand, useLangGraphInterruptState, } from "./useLangGraphRuntime";
2
- export { useLangGraphMessages, type LangGraphInterruptState, type LangGraphCommand, type LangGraphSendMessageConfig, type LangGraphStreamCallback, type LangGraphMessagesEvent, } from "./useLangGraphMessages";
3
- export { convertLangChainMessages } from "./convertLangChainMessages";
4
- export type { LangChainMessage, LangChainEvent, LangChainToolCall, LangChainToolCallChunk, } from "./types";
5
- export { LangGraphMessageAccumulator } from "./LangGraphMessageAccumulator";
6
- export { appendLangChainChunk } from "./appendLangChainChunk";
1
+ export { useLangGraphRuntime, useLangGraphSend, useLangGraphSendCommand, useLangGraphInterruptState, } from "./useLangGraphRuntime.js";
2
+ export { useLangGraphMessages, type LangGraphInterruptState, type LangGraphCommand, type LangGraphSendMessageConfig, type LangGraphStreamCallback, type LangGraphMessagesEvent, } from "./useLangGraphMessages.js";
3
+ export { convertLangChainMessages } from "./convertLangChainMessages.js";
4
+ export type { LangChainMessage, LangChainEvent, LangChainToolCall, LangChainToolCallChunk, } from "./types.js";
5
+ export { LangGraphMessageAccumulator } from "./LangGraphMessageAccumulator.js";
6
+ export { appendLangChainChunk } from "./appendLangChainChunk.js";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,oBAAoB,EACpB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,0BAA0B,GAC3B,iCAA8B;AAE/B,OAAO,EACL,oBAAoB,EACpB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,kCAA+B;AAChC,OAAO,EAAE,wBAAwB,EAAE,sCAAmC;AAEtE,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,GACvB,mBAAgB;AAEjB,OAAO,EAAE,2BAA2B,EAAE,yCAAsC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,kCAA+B"}
package/dist/index.js CHANGED
@@ -1,24 +1,6 @@
1
- // src/index.ts
2
- import {
3
- useLangGraphRuntime,
4
- useLangGraphSend,
5
- useLangGraphSendCommand,
6
- useLangGraphInterruptState
7
- } from "./useLangGraphRuntime.js";
8
- import {
9
- useLangGraphMessages
10
- } from "./useLangGraphMessages.js";
11
- import { convertLangChainMessages } from "./convertLangChainMessages.js";
12
- import { LangGraphMessageAccumulator } from "./LangGraphMessageAccumulator.js";
13
- import { appendLangChainChunk } from "./appendLangChainChunk.js";
14
- export {
15
- LangGraphMessageAccumulator,
16
- appendLangChainChunk,
17
- convertLangChainMessages,
18
- useLangGraphInterruptState,
19
- useLangGraphMessages,
20
- useLangGraphRuntime,
21
- useLangGraphSend,
22
- useLangGraphSendCommand
23
- };
1
+ export { useLangGraphRuntime, useLangGraphSend, useLangGraphSendCommand, useLangGraphInterruptState, } from "./useLangGraphRuntime.js";
2
+ export { useLangGraphMessages, } from "./useLangGraphMessages.js";
3
+ export { convertLangChainMessages } from "./convertLangChainMessages.js";
4
+ export { LangGraphMessageAccumulator } from "./LangGraphMessageAccumulator.js";
5
+ export { appendLangChainChunk } from "./appendLangChainChunk.js";
24
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export {\n useLangGraphRuntime,\n useLangGraphSend,\n useLangGraphSendCommand,\n useLangGraphInterruptState,\n} from \"./useLangGraphRuntime\";\n\nexport {\n useLangGraphMessages,\n type LangGraphInterruptState,\n type LangGraphCommand,\n type LangGraphSendMessageConfig,\n type LangGraphStreamCallback,\n type LangGraphMessagesEvent,\n} from \"./useLangGraphMessages\";\nexport { convertLangChainMessages } from \"./convertLangChainMessages\";\n\nexport type {\n LangChainMessage,\n LangChainEvent,\n LangChainToolCall,\n LangChainToolCallChunk,\n} from \"./types\";\n\nexport { LangGraphMessageAccumulator } from \"./LangGraphMessageAccumulator\";\nexport { appendLangChainChunk } from \"./appendLangChainChunk\";\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,OAMK;AACP,SAAS,gCAAgC;AASzC,SAAS,mCAAmC;AAC5C,SAAS,4BAA4B;","names":[]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,0BAA0B,GAC3B,iCAA8B;AAE/B,OAAO,EACL,oBAAoB,GAMrB,kCAA+B;AAChC,OAAO,EAAE,wBAAwB,EAAE,sCAAmC;AAStE,OAAO,EAAE,2BAA2B,EAAE,yCAAsC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,kCAA+B"}
@@ -1,4 +1,4 @@
1
- import { LangChainMessage } from "./types";
2
- import { LangGraphMessagesEvent } from "./useLangGraphMessages";
1
+ import { LangChainMessage } from "./types.js";
2
+ import { LangGraphMessagesEvent } from "./useLangGraphMessages.js";
3
3
  export declare const mockStreamCallbackFactory: (events: Array<LangGraphMessagesEvent<LangChainMessage>>) => () => AsyncGenerator<LangGraphMessagesEvent<LangChainMessage>, void, unknown>;
4
4
  //# sourceMappingURL=testUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../src/testUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,eAAO,MAAM,yBAAyB,GACpC,QAAQ,KAAK,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,kFAMtD,CAAC"}
1
+ {"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../src/testUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,mBAAgB;AAC3C,OAAO,EAAE,sBAAsB,EAAE,kCAA+B;AAEhE,eAAO,MAAM,yBAAyB,GACpC,QAAQ,KAAK,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,kFAMtD,CAAC"}