@assistant-ui/react-a2a 0.1.4 → 0.1.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,35 +1,29 @@
1
- // src/A2AMessageAccumulator.ts
2
1
  import { v4 as uuidv4 } from "uuid";
3
- var A2AMessageAccumulator = 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 A2AMessageAccumulator {
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
- clear() {
29
- this.messagesMap.clear();
30
- }
31
- };
32
- export {
33
- A2AMessageAccumulator
34
- };
9
+ ensureMessageId(message) {
10
+ return message.id ? message : { ...message, id: uuidv4() };
11
+ }
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
+ clear() {
26
+ this.messagesMap.clear();
27
+ }
28
+ }
35
29
  //# sourceMappingURL=A2AMessageAccumulator.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/A2AMessageAccumulator.ts"],"sourcesContent":["import { v4 as uuidv4 } from \"uuid\";\n\nexport type A2AStateAccumulatorConfig<TMessage> = {\n initialMessages?: TMessage[];\n appendMessage?: (prev: TMessage | undefined, curr: TMessage) => TMessage;\n};\n\nexport class A2AMessageAccumulator<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 }: A2AStateAccumulatorConfig<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 clear() {\n this.messagesMap.clear();\n }\n}\n"],"mappings":";AAAA,SAAS,MAAM,cAAc;AAOtB,IAAM,wBAAN,MAA8D;AAAA,EAC3D,cAAc,oBAAI,IAAsB;AAAA,EACxC;AAAA,EAKR,YAAY;AAAA,IACV,kBAAkB,CAAC;AAAA,IACnB,iBAAiB,CAAC,GAAyB,SAAmB;AAAA,EAIhE,IAAyC,CAAC,GAAG;AAC3C,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,QAAQ;AACb,SAAK,YAAY,MAAM;AAAA,EACzB;AACF;","names":[]}
1
+ {"version":3,"file":"A2AMessageAccumulator.js","sourceRoot":"","sources":["../src/A2AMessageAccumulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAOpC,MAAM,OAAO,qBAAqB;IACxB,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,MAC0B,EAAE;QACzC,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,KAAK;QACV,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACF"}
@@ -1,3 +1,3 @@
1
- import { A2AMessage } from "./types";
1
+ import { A2AMessage } from "./types.js";
2
2
  export declare const appendA2AChunk: (prev: A2AMessage | undefined, curr: A2AMessage) => A2AMessage;
3
3
  //# sourceMappingURL=appendA2AChunk.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"appendA2AChunk.d.ts","sourceRoot":"","sources":["../src/appendA2AChunk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,eAAO,MAAM,cAAc,GACzB,MAAM,UAAU,GAAG,SAAS,EAC5B,MAAM,UAAU,KACf,UAkHF,CAAC"}
1
+ {"version":3,"file":"appendA2AChunk.d.ts","sourceRoot":"","sources":["../src/appendA2AChunk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAgB;AAGrC,eAAO,MAAM,cAAc,GACzB,MAAM,UAAU,GAAG,SAAS,EAC5B,MAAM,UAAU,KACf,UAkHF,CAAC"}
@@ -1,90 +1,110 @@
1
- // src/appendA2AChunk.ts
2
1
  import { parsePartialJsonObject } from "assistant-stream/utils";
3
- var appendA2AChunk = (prev, curr) => {
4
- if (!prev || prev.role !== curr.role || prev.id !== curr.id) {
5
- return curr;
6
- }
7
- if (curr.role === "assistant") {
8
- const newContent = Array.isArray(prev.content) ? [...prev.content] : typeof prev.content === "string" ? [{ type: "text", text: prev.content }] : [];
9
- if (typeof curr.content === "string") {
10
- const lastIndex = newContent.length - 1;
11
- const lastPart = newContent[lastIndex];
12
- if (lastPart?.type === "text") {
13
- lastPart.text += curr.content;
14
- } else {
15
- newContent.push({ type: "text", text: curr.content });
16
- }
17
- } else if (Array.isArray(curr.content)) {
18
- for (const contentPart of curr.content) {
19
- const lastIndex = newContent.length - 1;
20
- const lastPart = newContent[lastIndex];
21
- if (contentPart.type === "text" && lastPart?.type === "text") {
22
- lastPart.text += contentPart.text;
23
- } else {
24
- newContent.push(contentPart);
25
- }
26
- }
2
+ export const appendA2AChunk = (prev, curr) => {
3
+ // If no previous message or different message type, return current as-is
4
+ if (!prev || prev.role !== curr.role || prev.id !== curr.id) {
5
+ return curr;
27
6
  }
28
- const newToolCalls = [...prev.tool_calls ?? []];
29
- if (curr.tool_calls) {
30
- for (const toolCall of curr.tool_calls) {
31
- const existingIndex = newToolCalls.findIndex(
32
- (tc) => tc.id === toolCall.id
33
- );
34
- if (existingIndex >= 0) {
35
- const existing = newToolCalls[existingIndex];
36
- newToolCalls[existingIndex] = {
37
- ...existing,
38
- ...toolCall,
39
- // If argsText is provided in chunks, concatenate it
40
- argsText: (existing.argsText || "") + (toolCall.argsText || ""),
41
- // Try to parse merged args, fallback to existing or new args
42
- args: parsePartialJsonObject(
43
- (existing.argsText || "") + (toolCall.argsText || "")
44
- ) || toolCall.args || existing.args
45
- };
46
- } else {
47
- newToolCalls.push(toolCall);
7
+ // For assistant messages, we need to handle streaming content and tool calls
8
+ if (curr.role === "assistant") {
9
+ const newContent = Array.isArray(prev.content)
10
+ ? [...prev.content]
11
+ : typeof prev.content === "string"
12
+ ? [{ type: "text", text: prev.content }]
13
+ : [];
14
+ // Append new content chunks
15
+ if (typeof curr.content === "string") {
16
+ const lastIndex = newContent.length - 1;
17
+ const lastPart = newContent[lastIndex];
18
+ if (lastPart?.type === "text") {
19
+ // Append to existing text part
20
+ lastPart.text += curr.content;
21
+ }
22
+ else {
23
+ // Create new text part
24
+ newContent.push({ type: "text", text: curr.content });
25
+ }
48
26
  }
49
- }
50
- }
51
- const newArtifacts = [...prev.artifacts ?? []];
52
- if (curr.artifacts) {
53
- for (const artifact of curr.artifacts) {
54
- const existingIndex = newArtifacts.findIndex(
55
- (a) => a.name === artifact.name
56
- );
57
- if (existingIndex >= 0) {
58
- const existingArtifact = newArtifacts[existingIndex];
59
- newArtifacts[existingIndex] = {
60
- name: existingArtifact.name,
61
- parts: [...existingArtifact.parts, ...artifact.parts]
62
- };
63
- } else {
64
- newArtifacts.push(artifact);
27
+ else if (Array.isArray(curr.content)) {
28
+ for (const contentPart of curr.content) {
29
+ const lastIndex = newContent.length - 1;
30
+ const lastPart = newContent[lastIndex];
31
+ if (contentPart.type === "text" && lastPart?.type === "text") {
32
+ // Append to existing text part
33
+ lastPart.text += contentPart.text;
34
+ }
35
+ else {
36
+ // Add new content part
37
+ newContent.push(contentPart);
38
+ }
39
+ }
40
+ }
41
+ // Merge tool calls - A2A typically sends complete tool calls rather than chunks
42
+ const newToolCalls = [...(prev.tool_calls ?? [])];
43
+ if (curr.tool_calls) {
44
+ for (const toolCall of curr.tool_calls) {
45
+ const existingIndex = newToolCalls.findIndex((tc) => tc.id === toolCall.id);
46
+ if (existingIndex >= 0) {
47
+ // Update existing tool call (merge args if needed)
48
+ const existing = newToolCalls[existingIndex];
49
+ newToolCalls[existingIndex] = {
50
+ ...existing,
51
+ ...toolCall,
52
+ // If argsText is provided in chunks, concatenate it
53
+ argsText: (existing.argsText || "") + (toolCall.argsText || ""),
54
+ // Try to parse merged args, fallback to existing or new args
55
+ args: parsePartialJsonObject((existing.argsText || "") + (toolCall.argsText || "")) ||
56
+ toolCall.args ||
57
+ existing.args,
58
+ };
59
+ }
60
+ else {
61
+ // Add new tool call
62
+ newToolCalls.push(toolCall);
63
+ }
64
+ }
65
65
  }
66
- }
66
+ // Merge artifacts
67
+ const newArtifacts = [...(prev.artifacts ?? [])];
68
+ if (curr.artifacts) {
69
+ for (const artifact of curr.artifacts) {
70
+ const existingIndex = newArtifacts.findIndex((a) => a.name === artifact.name);
71
+ if (existingIndex >= 0) {
72
+ // Merge artifact parts
73
+ const existingArtifact = newArtifacts[existingIndex];
74
+ newArtifacts[existingIndex] = {
75
+ name: existingArtifact.name,
76
+ parts: [...existingArtifact.parts, ...artifact.parts],
77
+ };
78
+ }
79
+ else {
80
+ // Add new artifact
81
+ newArtifacts.push(artifact);
82
+ }
83
+ }
84
+ }
85
+ const result = {
86
+ ...prev,
87
+ content: newContent,
88
+ };
89
+ const newStatus = curr.status || prev.status;
90
+ if (newStatus)
91
+ result.status = newStatus;
92
+ if (newToolCalls.length > 0)
93
+ result.tool_calls = newToolCalls;
94
+ if (newArtifacts.length > 0)
95
+ result.artifacts = newArtifacts;
96
+ return result;
67
97
  }
68
- const result2 = {
69
- ...prev,
70
- content: newContent
98
+ // For other message types (user, system, tool), just return the current message
99
+ // as they typically don't stream in chunks
100
+ const result = {
101
+ ...prev,
102
+ ...curr,
71
103
  };
72
- const newStatus = curr.status || prev.status;
73
- if (newStatus) result2.status = newStatus;
74
- if (newToolCalls.length > 0) result2.tool_calls = newToolCalls;
75
- if (newArtifacts.length > 0) result2.artifacts = newArtifacts;
76
- return result2;
77
- }
78
- const result = {
79
- ...prev,
80
- ...curr
81
- };
82
- if (curr.artifacts || prev.artifacts) {
83
- result.artifacts = [...prev.artifacts ?? [], ...curr.artifacts ?? []];
84
- }
85
- return result;
86
- };
87
- export {
88
- appendA2AChunk
104
+ // Preserve any existing artifacts and merge with new ones
105
+ if (curr.artifacts || prev.artifacts) {
106
+ result.artifacts = [...(prev.artifacts ?? []), ...(curr.artifacts ?? [])];
107
+ }
108
+ return result;
89
109
  };
90
110
  //# sourceMappingURL=appendA2AChunk.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/appendA2AChunk.ts"],"sourcesContent":["import { A2AMessage } from \"./types\";\nimport { parsePartialJsonObject } from \"assistant-stream/utils\";\n\nexport const appendA2AChunk = (\n prev: A2AMessage | undefined,\n curr: A2AMessage,\n): A2AMessage => {\n // If no previous message or different message type, return current as-is\n if (!prev || prev.role !== curr.role || prev.id !== curr.id) {\n return curr;\n }\n\n // For assistant messages, we need to handle streaming content and tool calls\n if (curr.role === \"assistant\") {\n const newContent = Array.isArray(prev.content)\n ? [...prev.content]\n : typeof prev.content === \"string\"\n ? [{ type: \"text\" as const, text: prev.content }]\n : [];\n\n // Append new content chunks\n if (typeof curr.content === \"string\") {\n const lastIndex = newContent.length - 1;\n const lastPart = newContent[lastIndex];\n\n if (lastPart?.type === \"text\") {\n // Append to existing text part\n (lastPart as { type: \"text\"; text: string }).text += curr.content;\n } else {\n // Create new text part\n newContent.push({ type: \"text\", text: curr.content });\n }\n } else if (Array.isArray(curr.content)) {\n for (const contentPart of curr.content) {\n const lastIndex = newContent.length - 1;\n const lastPart = newContent[lastIndex];\n\n if (contentPart.type === \"text\" && lastPart?.type === \"text\") {\n // Append to existing text part\n (lastPart as { type: \"text\"; text: string }).text += contentPart.text;\n } else {\n // Add new content part\n newContent.push(contentPart);\n }\n }\n }\n\n // Merge tool calls - A2A typically sends complete tool calls rather than chunks\n const newToolCalls = [...(prev.tool_calls ?? [])];\n if (curr.tool_calls) {\n for (const toolCall of curr.tool_calls) {\n const existingIndex = newToolCalls.findIndex(\n (tc) => tc.id === toolCall.id,\n );\n if (existingIndex >= 0) {\n // Update existing tool call (merge args if needed)\n const existing = newToolCalls[existingIndex]!;\n newToolCalls[existingIndex] = {\n ...existing,\n ...toolCall,\n // If argsText is provided in chunks, concatenate it\n argsText: (existing.argsText || \"\") + (toolCall.argsText || \"\"),\n // Try to parse merged args, fallback to existing or new args\n args:\n parsePartialJsonObject(\n (existing.argsText || \"\") + (toolCall.argsText || \"\"),\n ) ||\n toolCall.args ||\n existing.args,\n };\n } else {\n // Add new tool call\n newToolCalls.push(toolCall);\n }\n }\n }\n\n // Merge artifacts\n const newArtifacts = [...(prev.artifacts ?? [])];\n if (curr.artifacts) {\n for (const artifact of curr.artifacts) {\n const existingIndex = newArtifacts.findIndex(\n (a) => a.name === artifact.name,\n );\n if (existingIndex >= 0) {\n // Merge artifact parts\n const existingArtifact = newArtifacts[existingIndex]!;\n newArtifacts[existingIndex] = {\n name: existingArtifact.name,\n parts: [...existingArtifact.parts, ...artifact.parts],\n };\n } else {\n // Add new artifact\n newArtifacts.push(artifact);\n }\n }\n }\n\n const result: A2AMessage = {\n ...prev,\n content: newContent,\n };\n const newStatus = curr.status || prev.status;\n if (newStatus) result.status = newStatus;\n if (newToolCalls.length > 0) result.tool_calls = newToolCalls;\n if (newArtifacts.length > 0) result.artifacts = newArtifacts;\n return result;\n }\n\n // For other message types (user, system, tool), just return the current message\n // as they typically don't stream in chunks\n const result: A2AMessage = {\n ...prev,\n ...curr,\n };\n // Preserve any existing artifacts and merge with new ones\n if (curr.artifacts || prev.artifacts) {\n result.artifacts = [...(prev.artifacts ?? []), ...(curr.artifacts ?? [])];\n }\n return result;\n};\n"],"mappings":"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","names":["result"]}
1
+ {"version":3,"file":"appendA2AChunk.js","sourceRoot":"","sources":["../src/appendA2AChunk.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { A2AMessage } from "./types";
1
+ import { A2AMessage } from "./types.js";
2
2
  import { ToolCallMessagePart } from "@assistant-ui/react";
3
3
  export declare const convertA2AMessage: (message: A2AMessage) => {
4
4
  id: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"convertA2AMessages.d.ts","sourceRoot":"","sources":["../src/convertA2AMessages.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAkC1D,eAAO,MAAM,iBAAiB,GAAI,SAAS,UAAU;;;;;cAOe,MAAM;;;;;;;;;;;;;;;;;;;;;;;;CAiDzE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,UAAU,UAAU,EAAE;;;;;cAnDW,MAAM;;;;;;;;;;;;;;;;;;;;;;;;IAoDzC,CAAC;AAElC,eAAO,MAAM,sBAAsB,GACjC,UAAU,UAAU,EAAE,EACtB,WAAW,OAAO,kDAMhB,CAAC"}
1
+ {"version":3,"file":"convertA2AMessages.d.ts","sourceRoot":"","sources":["../src/convertA2AMessages.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,mBAAgB;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAkC1D,eAAO,MAAM,iBAAiB,GAAI,SAAS,UAAU;;;;;cAOe,MAAM;;;;;;;;;;;;;;;;;;;;;;;;CAiDzE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,UAAU,UAAU,EAAE;;;;;cAnDW,MAAM;;;;;;;;;;;;;;;;;;;;;;;;IAoDzC,CAAC;AAElC,eAAO,MAAM,sBAAsB,GACjC,UAAU,UAAU,EAAE,EACtB,WAAW,OAAO,kDAMhB,CAAC"}
@@ -1,93 +1,90 @@
1
1
  "use client";
2
-
3
- // src/convertA2AMessages.ts
4
2
  import { useExternalMessageConverter } from "@assistant-ui/react";
5
- var contentToParts = (content) => {
6
- if (typeof content === "string")
7
- return [{ type: "text", text: content }];
8
- return content.map((part) => {
9
- const type = part.type;
10
- switch (type) {
11
- case "text":
12
- return { type: "text", text: part.text };
13
- case "image_url":
14
- if (typeof part.image_url === "string") {
15
- return { type: "image", image: part.image_url };
16
- } else {
17
- return {
18
- type: "image",
19
- image: part.image_url.url
20
- };
3
+ const contentToParts = (content) => {
4
+ if (typeof content === "string")
5
+ return [{ type: "text", text: content }];
6
+ return content
7
+ .map((part) => {
8
+ const type = part.type;
9
+ switch (type) {
10
+ case "text":
11
+ return { type: "text", text: part.text };
12
+ case "image_url":
13
+ if (typeof part.image_url === "string") {
14
+ return { type: "image", image: part.image_url };
15
+ }
16
+ else {
17
+ return {
18
+ type: "image",
19
+ image: part.image_url.url,
20
+ };
21
+ }
22
+ case "data":
23
+ // Convert data parts to text representation for display
24
+ return {
25
+ type: "text",
26
+ text: `[Data: ${JSON.stringify(part.data)}]`,
27
+ };
28
+ default:
29
+ return null;
21
30
  }
22
- case "data":
23
- return {
24
- type: "text",
25
- text: `[Data: ${JSON.stringify(part.data)}]`
26
- };
27
- default:
28
- return null;
29
- }
30
- }).filter((part) => part !== null);
31
+ })
32
+ .filter((part) => part !== null);
31
33
  };
32
- var convertA2AMessage = (message) => {
33
- const role = message.role;
34
- switch (role) {
35
- case "system":
36
- return {
37
- id: message.id,
38
- role: "system",
39
- content: [{ type: "text", text: message.content }]
40
- };
41
- case "user":
42
- return {
43
- id: message.id,
44
- role: "user",
45
- content: contentToParts(message.content)
46
- };
47
- case "assistant": {
48
- const toolCallParts = message.tool_calls?.map((toolCall) => ({
49
- type: "tool-call",
50
- toolCallId: toolCall.id,
51
- toolName: toolCall.name,
52
- args: toolCall.args,
53
- argsText: toolCall.argsText ?? JSON.stringify(toolCall.args)
54
- })) ?? [];
55
- return {
56
- id: message.id,
57
- role: "assistant",
58
- content: [...contentToParts(message.content), ...toolCallParts],
59
- status: message.status
60
- };
34
+ export const convertA2AMessage = (message) => {
35
+ const role = message.role;
36
+ switch (role) {
37
+ case "system":
38
+ return {
39
+ id: message.id,
40
+ role: "system",
41
+ content: [{ type: "text", text: message.content }],
42
+ };
43
+ case "user":
44
+ return {
45
+ id: message.id,
46
+ role: "user",
47
+ content: contentToParts(message.content),
48
+ };
49
+ case "assistant": {
50
+ const toolCallParts = message.tool_calls?.map((toolCall) => ({
51
+ type: "tool-call",
52
+ toolCallId: toolCall.id,
53
+ toolName: toolCall.name,
54
+ args: toolCall.args,
55
+ argsText: toolCall.argsText ?? JSON.stringify(toolCall.args),
56
+ })) ?? [];
57
+ return {
58
+ id: message.id,
59
+ role: "assistant",
60
+ content: [...contentToParts(message.content), ...toolCallParts],
61
+ status: message.status,
62
+ };
63
+ }
64
+ case "tool":
65
+ return {
66
+ id: message.id,
67
+ role: "user",
68
+ content: [
69
+ {
70
+ type: "tool-call",
71
+ toolCallId: message.tool_call_id,
72
+ toolName: "", // A2A doesn't store tool name in tool messages
73
+ result: JSON.parse(message.content),
74
+ isError: message.status?.type === "incomplete" &&
75
+ message.status?.reason === "error",
76
+ },
77
+ ],
78
+ };
79
+ default:
80
+ const _exhaustiveCheck = role;
81
+ throw new Error(`Unknown message role: ${_exhaustiveCheck}`);
61
82
  }
62
- case "tool":
63
- return {
64
- id: message.id,
65
- role: "user",
66
- content: [
67
- {
68
- type: "tool-call",
69
- toolCallId: message.tool_call_id,
70
- toolName: "",
71
- // A2A doesn't store tool name in tool messages
72
- result: JSON.parse(message.content),
73
- isError: message.status?.type === "incomplete" && message.status?.reason === "error"
74
- }
75
- ]
76
- };
77
- default:
78
- const _exhaustiveCheck = role;
79
- throw new Error(`Unknown message role: ${_exhaustiveCheck}`);
80
- }
81
83
  };
82
- var convertA2AMessages = (messages) => messages.map(convertA2AMessage);
83
- var useA2AMessageConverter = (messages, isRunning) => useExternalMessageConverter({
84
- callback: convertA2AMessage,
85
- messages,
86
- isRunning
84
+ export const convertA2AMessages = (messages) => messages.map(convertA2AMessage);
85
+ export const useA2AMessageConverter = (messages, isRunning) => useExternalMessageConverter({
86
+ callback: convertA2AMessage,
87
+ messages,
88
+ isRunning,
87
89
  });
88
- export {
89
- convertA2AMessage,
90
- convertA2AMessages,
91
- useA2AMessageConverter
92
- };
93
90
  //# sourceMappingURL=convertA2AMessages.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/convertA2AMessages.ts"],"sourcesContent":["\"use client\";\n\nimport { useExternalMessageConverter } from \"@assistant-ui/react\";\nimport { A2AMessage } from \"./types\";\nimport { ToolCallMessagePart } from \"@assistant-ui/react\";\nimport { ThreadUserMessage } from \"@assistant-ui/react\";\n\nconst contentToParts = (content: A2AMessage[\"content\"]) => {\n if (typeof content === \"string\")\n return [{ type: \"text\" as const, text: content }];\n return content\n .map((part): ThreadUserMessage[\"content\"][number] | null => {\n const type = part.type;\n switch (type) {\n case \"text\":\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 \"data\":\n // Convert data parts to text representation for display\n return {\n type: \"text\",\n text: `[Data: ${JSON.stringify(part.data)}]`,\n };\n default:\n return null;\n }\n })\n .filter((part): part is NonNullable<typeof part> => part !== null);\n};\n\nexport const convertA2AMessage = (message: A2AMessage) => {\n const role = message.role;\n switch (role) {\n case \"system\":\n return {\n id: message.id,\n role: \"system\" as const,\n content: [{ type: \"text\" as const, text: message.content as string }],\n };\n\n case \"user\":\n return {\n id: message.id,\n role: \"user\" as const,\n content: contentToParts(message.content),\n };\n\n case \"assistant\": {\n const toolCallParts: ToolCallMessagePart[] =\n message.tool_calls?.map((toolCall) => ({\n type: \"tool-call\",\n toolCallId: toolCall.id,\n toolName: toolCall.name,\n args: toolCall.args,\n argsText: toolCall.argsText ?? JSON.stringify(toolCall.args),\n })) ?? [];\n\n return {\n id: message.id,\n role: \"assistant\" as const,\n content: [...contentToParts(message.content), ...toolCallParts],\n status: message.status,\n };\n }\n\n case \"tool\":\n return {\n id: message.id,\n role: \"user\" as const,\n content: [\n {\n type: \"tool-call\" as const,\n toolCallId: message.tool_call_id!,\n toolName: \"\", // A2A doesn't store tool name in tool messages\n result: JSON.parse(message.content as string),\n isError:\n message.status?.type === \"incomplete\" &&\n message.status?.reason === \"error\",\n },\n ],\n };\n\n default:\n const _exhaustiveCheck: never = role;\n throw new Error(`Unknown message role: ${_exhaustiveCheck}`);\n }\n};\n\nexport const convertA2AMessages = (messages: A2AMessage[]) =>\n messages.map(convertA2AMessage);\n\nexport const useA2AMessageConverter = (\n messages: A2AMessage[],\n isRunning: boolean,\n) =>\n useExternalMessageConverter({\n callback: convertA2AMessage,\n messages,\n isRunning,\n });\n"],"mappings":";;;AAEA,SAAS,mCAAmC;AAK5C,IAAM,iBAAiB,CAAC,YAAmC;AACzD,MAAI,OAAO,YAAY;AACrB,WAAO,CAAC,EAAE,MAAM,QAAiB,MAAM,QAAQ,CAAC;AAClD,SAAO,QACJ,IAAI,CAAC,SAAsD;AAC1D,UAAM,OAAO,KAAK;AAClB,YAAQ,MAAM;AAAA,MACZ,KAAK;AACH,eAAO,EAAE,MAAM,QAAQ,MAAM,KAAK,KAAK;AAAA,MACzC,KAAK;AACH,YAAI,OAAO,KAAK,cAAc,UAAU;AACtC,iBAAO,EAAE,MAAM,SAAS,OAAO,KAAK,UAAU;AAAA,QAChD,OAAO;AACL,iBAAO;AAAA,YACL,MAAM;AAAA,YACN,OAAO,KAAK,UAAU;AAAA,UACxB;AAAA,QACF;AAAA,MACF,KAAK;AAEH,eAAO;AAAA,UACL,MAAM;AAAA,UACN,MAAM,UAAU,KAAK,UAAU,KAAK,IAAI,CAAC;AAAA,QAC3C;AAAA,MACF;AACE,eAAO;AAAA,IACX;AAAA,EACF,CAAC,EACA,OAAO,CAAC,SAA2C,SAAS,IAAI;AACrE;AAEO,IAAM,oBAAoB,CAAC,YAAwB;AACxD,QAAM,OAAO,QAAQ;AACrB,UAAQ,MAAM;AAAA,IACZ,KAAK;AACH,aAAO;AAAA,QACL,IAAI,QAAQ;AAAA,QACZ,MAAM;AAAA,QACN,SAAS,CAAC,EAAE,MAAM,QAAiB,MAAM,QAAQ,QAAkB,CAAC;AAAA,MACtE;AAAA,IAEF,KAAK;AACH,aAAO;AAAA,QACL,IAAI,QAAQ;AAAA,QACZ,MAAM;AAAA,QACN,SAAS,eAAe,QAAQ,OAAO;AAAA,MACzC;AAAA,IAEF,KAAK,aAAa;AAChB,YAAM,gBACJ,QAAQ,YAAY,IAAI,CAAC,cAAc;AAAA,QACrC,MAAM;AAAA,QACN,YAAY,SAAS;AAAA,QACrB,UAAU,SAAS;AAAA,QACnB,MAAM,SAAS;AAAA,QACf,UAAU,SAAS,YAAY,KAAK,UAAU,SAAS,IAAI;AAAA,MAC7D,EAAE,KAAK,CAAC;AAEV,aAAO;AAAA,QACL,IAAI,QAAQ;AAAA,QACZ,MAAM;AAAA,QACN,SAAS,CAAC,GAAG,eAAe,QAAQ,OAAO,GAAG,GAAG,aAAa;AAAA,QAC9D,QAAQ,QAAQ;AAAA,MAClB;AAAA,IACF;AAAA,IAEA,KAAK;AACH,aAAO;AAAA,QACL,IAAI,QAAQ;AAAA,QACZ,MAAM;AAAA,QACN,SAAS;AAAA,UACP;AAAA,YACE,MAAM;AAAA,YACN,YAAY,QAAQ;AAAA,YACpB,UAAU;AAAA;AAAA,YACV,QAAQ,KAAK,MAAM,QAAQ,OAAiB;AAAA,YAC5C,SACE,QAAQ,QAAQ,SAAS,gBACzB,QAAQ,QAAQ,WAAW;AAAA,UAC/B;AAAA,QACF;AAAA,MACF;AAAA,IAEF;AACE,YAAM,mBAA0B;AAChC,YAAM,IAAI,MAAM,yBAAyB,gBAAgB,EAAE;AAAA,EAC/D;AACF;AAEO,IAAM,qBAAqB,CAAC,aACjC,SAAS,IAAI,iBAAiB;AAEzB,IAAM,yBAAyB,CACpC,UACA,cAEA,4BAA4B;AAAA,EAC1B,UAAU;AAAA,EACV;AAAA,EACA;AACF,CAAC;","names":[]}
1
+ {"version":3,"file":"convertA2AMessages.js","sourceRoot":"","sources":["../src/convertA2AMessages.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAKlE,MAAM,cAAc,GAAG,CAAC,OAA8B,EAAE,EAAE;IACxD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAC7B,OAAO,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACpD,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,IAAI,EAA+C,EAAE;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM;gBACT,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3C,KAAK,WAAW;gBACd,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;oBACvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClD,CAAC;qBAAM,CAAC;oBACN,OAAO;wBACL,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG;qBAC1B,CAAC;gBACJ,CAAC;YACH,KAAK,MAAM;gBACT,wDAAwD;gBACxD,OAAO;oBACL,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;iBAC7C,CAAC;YACJ;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAoC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAmB,EAAE,EAAE;IACvD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO;gBACL,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,QAAiB;gBACvB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,CAAC,OAAiB,EAAE,CAAC;aACtE,CAAC;QAEJ,KAAK,MAAM;YACT,OAAO;gBACL,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;aACzC,CAAC;QAEJ,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,aAAa,GACjB,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACrC,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACvB,QAAQ,EAAE,QAAQ,CAAC,IAAI;gBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;aAC7D,CAAC,CAAC,IAAI,EAAE,CAAC;YAEZ,OAAO;gBACL,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,WAAoB;gBAC1B,OAAO,EAAE,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,aAAa,CAAC;gBAC/D,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC;QACJ,CAAC;QAED,KAAK,MAAM;YACT,OAAO;gBACL,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,WAAoB;wBAC1B,UAAU,EAAE,OAAO,CAAC,YAAa;wBACjC,QAAQ,EAAE,EAAE,EAAE,+CAA+C;wBAC7D,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAiB,CAAC;wBAC7C,OAAO,EACL,OAAO,CAAC,MAAM,EAAE,IAAI,KAAK,YAAY;4BACrC,OAAO,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO;qBACrC;iBACF;aACF,CAAC;QAEJ;YACE,MAAM,gBAAgB,GAAU,IAAI,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,yBAAyB,gBAAgB,EAAE,CAAC,CAAC;IACjE,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAsB,EAAE,EAAE,CAC3D,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAElC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,QAAsB,EACtB,SAAkB,EAClB,EAAE,CACF,2BAA2B,CAAC;IAC1B,QAAQ,EAAE,iBAAiB;IAC3B,QAAQ;IACR,SAAS;CACV,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- export * from "./useA2ARuntime";
2
- export * from "./useA2AMessages";
3
- export * from "./convertA2AMessages";
4
- export * from "./types";
5
- export * from "./A2AMessageAccumulator";
6
- export * from "./appendA2AChunk";
1
+ export * from "./useA2ARuntime.js";
2
+ export * from "./useA2AMessages.js";
3
+ export * from "./convertA2AMessages.js";
4
+ export * from "./types.js";
5
+ export * from "./A2AMessageAccumulator.js";
6
+ export * from "./appendA2AChunk.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,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mCAAgC;AAChC,oCAAiC;AACjC,wCAAqC;AACrC,2BAAwB;AACxB,2CAAwC;AACxC,oCAAiC"}
package/dist/index.js CHANGED
@@ -1,4 +1,3 @@
1
- // src/index.ts
2
1
  export * from "./useA2ARuntime.js";
3
2
  export * from "./useA2AMessages.js";
4
3
  export * from "./convertA2AMessages.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./useA2ARuntime\";\nexport * from \"./useA2AMessages\";\nexport * from \"./convertA2AMessages\";\nexport * from \"./types\";\nexport * from \"./A2AMessageAccumulator\";\nexport * from \"./appendA2AChunk\";\n"],"mappings":";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mCAAgC;AAChC,oCAAiC;AACjC,wCAAqC;AACrC,2BAAwB;AACxB,2CAAwC;AACxC,oCAAiC"}
@@ -1,4 +1,4 @@
1
- import { A2AMessage } from "./types";
2
- import { A2AMessagesEvent } from "./useA2AMessages";
1
+ import { A2AMessage } from "./types.js";
2
+ import { A2AMessagesEvent } from "./useA2AMessages.js";
3
3
  export declare const mockStreamCallbackFactory: (events: Array<A2AMessagesEvent<A2AMessage>>) => () => AsyncGenerator<import("./types").A2AEvent, 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,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,eAAO,MAAM,yBAAyB,GACpC,QAAQ,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,oEAM1C,CAAC"}
1
+ {"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../src/testUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAgB;AACrC,OAAO,EAAE,gBAAgB,EAAE,4BAAyB;AAEpD,eAAO,MAAM,yBAAyB,GACpC,QAAQ,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,oEAM1C,CAAC"}
package/dist/testUtils.js CHANGED
@@ -1,10 +1,6 @@
1
- // src/testUtils.ts
2
- var mockStreamCallbackFactory = (events) => async function* () {
3
- for (const event of events) {
4
- yield event;
5
- }
6
- };
7
- export {
8
- mockStreamCallbackFactory
1
+ export const mockStreamCallbackFactory = (events) => async function* () {
2
+ for (const event of events) {
3
+ yield event;
4
+ }
9
5
  };
10
6
  //# sourceMappingURL=testUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/testUtils.ts"],"sourcesContent":["import { A2AMessage } from \"./types\";\nimport { A2AMessagesEvent } from \"./useA2AMessages\";\n\nexport const mockStreamCallbackFactory = (\n events: Array<A2AMessagesEvent<A2AMessage>>,\n) =>\n async function* () {\n for (const event of events) {\n yield event;\n }\n };\n"],"mappings":";AAGO,IAAM,4BAA4B,CACvC,WAEA,mBAAmB;AACjB,aAAW,SAAS,QAAQ;AAC1B,UAAM;AAAA,EACR;AACF;","names":[]}
1
+ {"version":3,"file":"testUtils.js","sourceRoot":"","sources":["../src/testUtils.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,MAA2C,EAC3C,EAAE,CACF,KAAK,SAAS,CAAC;IACb,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC"}