@copilotkit/runtime-client-gql 1.51.4 → 1.51.5-next.1

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.
Files changed (176) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/_virtual/_rolldown/runtime.cjs +29 -0
  3. package/dist/client/CopilotRuntimeClient.cjs +119 -0
  4. package/dist/client/CopilotRuntimeClient.cjs.map +1 -0
  5. package/dist/client/CopilotRuntimeClient.d.cts +44 -0
  6. package/dist/client/CopilotRuntimeClient.d.cts.map +1 -0
  7. package/dist/client/CopilotRuntimeClient.d.mts +44 -0
  8. package/dist/client/CopilotRuntimeClient.d.mts.map +1 -0
  9. package/dist/client/CopilotRuntimeClient.mjs +116 -10
  10. package/dist/client/CopilotRuntimeClient.mjs.map +1 -1
  11. package/dist/client/conversion.cjs +194 -0
  12. package/dist/client/conversion.cjs.map +1 -0
  13. package/dist/client/{conversion.d.ts → conversion.d.cts} +5 -4
  14. package/dist/client/conversion.d.cts.map +1 -0
  15. package/dist/client/conversion.d.mts +12 -0
  16. package/dist/client/conversion.d.mts.map +1 -0
  17. package/dist/client/conversion.mjs +187 -17
  18. package/dist/client/conversion.mjs.map +1 -1
  19. package/dist/client/index.d.cts +5 -0
  20. package/dist/client/index.d.mts +5 -0
  21. package/dist/client/types.cjs +86 -0
  22. package/dist/client/types.cjs.map +1 -0
  23. package/dist/client/types.d.cts +76 -0
  24. package/dist/client/types.d.cts.map +1 -0
  25. package/dist/client/types.d.mts +76 -0
  26. package/dist/client/types.d.mts.map +1 -0
  27. package/dist/client/types.mjs +76 -21
  28. package/dist/client/types.mjs.map +1 -1
  29. package/dist/graphql/@generated/gql.cjs +15 -0
  30. package/dist/graphql/@generated/gql.cjs.map +1 -0
  31. package/dist/graphql/@generated/gql.mjs +13 -7
  32. package/dist/graphql/@generated/gql.mjs.map +1 -1
  33. package/dist/graphql/@generated/graphql.cjs +1154 -0
  34. package/dist/graphql/@generated/graphql.cjs.map +1 -0
  35. package/dist/graphql/@generated/graphql.d.cts +642 -0
  36. package/dist/graphql/@generated/graphql.d.cts.map +1 -0
  37. package/dist/graphql/@generated/graphql.d.mts +642 -0
  38. package/dist/graphql/@generated/graphql.d.mts.map +1 -0
  39. package/dist/graphql/@generated/graphql.mjs +1142 -24
  40. package/dist/graphql/@generated/graphql.mjs.map +1 -1
  41. package/dist/{chunk-E5FOLXLN.mjs → graphql/definitions/mutations.cjs} +8 -11
  42. package/dist/graphql/definitions/mutations.cjs.map +1 -0
  43. package/dist/graphql/definitions/mutations.mjs +140 -9
  44. package/dist/graphql/definitions/mutations.mjs.map +1 -1
  45. package/dist/graphql/definitions/queries.cjs +35 -0
  46. package/dist/graphql/definitions/queries.cjs.map +1 -0
  47. package/dist/graphql/definitions/queries.mjs +33 -11
  48. package/dist/graphql/definitions/queries.mjs.map +1 -1
  49. package/dist/index.cjs +43 -0
  50. package/dist/index.d.cts +9 -0
  51. package/dist/index.d.mts +9 -0
  52. package/dist/index.mjs +8 -91
  53. package/dist/index.umd.js +2080 -2
  54. package/dist/index.umd.js.map +1 -1
  55. package/dist/message-conversion/agui-to-gql.cjs +162 -0
  56. package/dist/message-conversion/agui-to-gql.cjs.map +1 -0
  57. package/dist/message-conversion/{agui-to-gql.d.ts → agui-to-gql.d.cts} +6 -5
  58. package/dist/message-conversion/agui-to-gql.d.cts.map +1 -0
  59. package/dist/message-conversion/agui-to-gql.d.mts +14 -0
  60. package/dist/message-conversion/agui-to-gql.d.mts.map +1 -0
  61. package/dist/message-conversion/agui-to-gql.mjs +156 -25
  62. package/dist/message-conversion/agui-to-gql.mjs.map +1 -1
  63. package/dist/message-conversion/gql-to-agui.cjs +169 -0
  64. package/dist/message-conversion/gql-to-agui.cjs.map +1 -0
  65. package/dist/message-conversion/{gql-to-agui.d.ts → gql-to-agui.d.cts} +6 -5
  66. package/dist/message-conversion/gql-to-agui.d.cts.map +1 -0
  67. package/dist/message-conversion/gql-to-agui.d.mts +13 -0
  68. package/dist/message-conversion/gql-to-agui.d.mts.map +1 -0
  69. package/dist/message-conversion/gql-to-agui.mjs +164 -23
  70. package/dist/message-conversion/gql-to-agui.mjs.map +1 -1
  71. package/dist/message-conversion/index.d.cts +2 -0
  72. package/dist/message-conversion/index.d.mts +2 -0
  73. package/dist/package.cjs +12 -0
  74. package/dist/package.cjs.map +1 -0
  75. package/dist/package.mjs +6 -0
  76. package/dist/package.mjs.map +1 -0
  77. package/package.json +15 -15
  78. package/src/message-conversion/agui-to-gql.test.ts +70 -0
  79. package/src/message-conversion/agui-to-gql.ts +4 -0
  80. package/tsdown.config.ts +49 -0
  81. package/vitest.config.mjs +11 -0
  82. package/dist/chunk-2XWNDVTL.mjs +0 -176
  83. package/dist/chunk-2XWNDVTL.mjs.map +0 -1
  84. package/dist/chunk-7ECCT6PK.mjs +0 -1
  85. package/dist/chunk-7ECCT6PK.mjs.map +0 -1
  86. package/dist/chunk-A4INSSNE.mjs +0 -17722
  87. package/dist/chunk-A4INSSNE.mjs.map +0 -1
  88. package/dist/chunk-CA4VMP2C.mjs +0 -1
  89. package/dist/chunk-CA4VMP2C.mjs.map +0 -1
  90. package/dist/chunk-DELDZXUX.mjs +0 -31
  91. package/dist/chunk-DELDZXUX.mjs.map +0 -1
  92. package/dist/chunk-E5FOLXLN.mjs.map +0 -1
  93. package/dist/chunk-LTVE64IE.mjs +0 -241
  94. package/dist/chunk-LTVE64IE.mjs.map +0 -1
  95. package/dist/chunk-M4CK5HDR.mjs +0 -237
  96. package/dist/chunk-M4CK5HDR.mjs.map +0 -1
  97. package/dist/chunk-OBDQ5BWD.mjs +0 -63
  98. package/dist/chunk-OBDQ5BWD.mjs.map +0 -1
  99. package/dist/chunk-QUH7QWUA.mjs +0 -38
  100. package/dist/chunk-QUH7QWUA.mjs.map +0 -1
  101. package/dist/chunk-SDQPJXLL.mjs +0 -20
  102. package/dist/chunk-SDQPJXLL.mjs.map +0 -1
  103. package/dist/chunk-UOAPP5IN.mjs +0 -93
  104. package/dist/chunk-UOAPP5IN.mjs.map +0 -1
  105. package/dist/chunk-VIHKTLUA.mjs +0 -221
  106. package/dist/chunk-VIHKTLUA.mjs.map +0 -1
  107. package/dist/chunk-XZPL6QVK.mjs +0 -24
  108. package/dist/chunk-XZPL6QVK.mjs.map +0 -1
  109. package/dist/client/CopilotRuntimeClient.d.ts +0 -39
  110. package/dist/client/CopilotRuntimeClient.js +0 -366
  111. package/dist/client/CopilotRuntimeClient.js.map +0 -1
  112. package/dist/client/conversion.js +0 -339
  113. package/dist/client/conversion.js.map +0 -1
  114. package/dist/client/index.d.ts +0 -8
  115. package/dist/client/index.js +0 -711
  116. package/dist/client/index.js.map +0 -1
  117. package/dist/client/index.mjs +0 -43
  118. package/dist/client/index.mjs.map +0 -1
  119. package/dist/client/types.d.ts +0 -75
  120. package/dist/client/types.js +0 -132
  121. package/dist/client/types.js.map +0 -1
  122. package/dist/graphql/@generated/fragment-masking.d.ts +0 -22
  123. package/dist/graphql/@generated/fragment-masking.js +0 -50
  124. package/dist/graphql/@generated/fragment-masking.js.map +0 -1
  125. package/dist/graphql/@generated/fragment-masking.mjs +0 -12
  126. package/dist/graphql/@generated/fragment-masking.mjs.map +0 -1
  127. package/dist/graphql/@generated/gql.d.ts +0 -48
  128. package/dist/graphql/@generated/gql.js +0 -45
  129. package/dist/graphql/@generated/gql.js.map +0 -1
  130. package/dist/graphql/@generated/graphql.d.ts +0 -655
  131. package/dist/graphql/@generated/graphql.js +0 -96
  132. package/dist/graphql/@generated/graphql.js.map +0 -1
  133. package/dist/graphql/@generated/index.d.ts +0 -4
  134. package/dist/graphql/@generated/index.js +0 -69
  135. package/dist/graphql/@generated/index.js.map +0 -1
  136. package/dist/graphql/@generated/index.mjs +0 -17
  137. package/dist/graphql/@generated/index.mjs.map +0 -1
  138. package/dist/graphql/definitions/mutations.d.ts +0 -9
  139. package/dist/graphql/definitions/mutations.js +0 -181
  140. package/dist/graphql/definitions/mutations.js.map +0 -1
  141. package/dist/graphql/definitions/queries.d.ts +0 -11
  142. package/dist/graphql/definitions/queries.js +0 -76
  143. package/dist/graphql/definitions/queries.js.map +0 -1
  144. package/dist/index.d.ts +0 -11
  145. package/dist/index.js +0 -1222
  146. package/dist/index.js.map +0 -1
  147. package/dist/index.mjs.map +0 -1
  148. package/dist/magic-string.es-XBKSJO3K.mjs +0 -1389
  149. package/dist/magic-string.es-XBKSJO3K.mjs.map +0 -1
  150. package/dist/message-conversion/agui-to-gql.js +0 -344
  151. package/dist/message-conversion/agui-to-gql.js.map +0 -1
  152. package/dist/message-conversion/agui-to-gql.test.d.ts +0 -2
  153. package/dist/message-conversion/agui-to-gql.test.js +0 -20553
  154. package/dist/message-conversion/agui-to-gql.test.js.map +0 -1
  155. package/dist/message-conversion/agui-to-gql.test.mjs +0 -1137
  156. package/dist/message-conversion/agui-to-gql.test.mjs.map +0 -1
  157. package/dist/message-conversion/gql-to-agui.js +0 -262
  158. package/dist/message-conversion/gql-to-agui.js.map +0 -1
  159. package/dist/message-conversion/gql-to-agui.test.d.ts +0 -2
  160. package/dist/message-conversion/gql-to-agui.test.js +0 -20850
  161. package/dist/message-conversion/gql-to-agui.test.js.map +0 -1
  162. package/dist/message-conversion/gql-to-agui.test.mjs +0 -1447
  163. package/dist/message-conversion/gql-to-agui.test.mjs.map +0 -1
  164. package/dist/message-conversion/index.d.ts +0 -6
  165. package/dist/message-conversion/index.js +0 -563
  166. package/dist/message-conversion/index.js.map +0 -1
  167. package/dist/message-conversion/index.mjs +0 -39
  168. package/dist/message-conversion/index.mjs.map +0 -1
  169. package/dist/message-conversion/roundtrip-conversion.test.d.ts +0 -2
  170. package/dist/message-conversion/roundtrip-conversion.test.js +0 -20095
  171. package/dist/message-conversion/roundtrip-conversion.test.js.map +0 -1
  172. package/dist/message-conversion/roundtrip-conversion.test.mjs +0 -489
  173. package/dist/message-conversion/roundtrip-conversion.test.mjs.map +0 -1
  174. package/jest.config.js +0 -5
  175. package/rollup.config.mjs +0 -62
  176. package/tsup.config.ts +0 -12
@@ -1,563 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/message-conversion/index.ts
21
- var message_conversion_exports = {};
22
- __export(message_conversion_exports, {
23
- aguiMessageWithImageToGQLMessage: () => aguiMessageWithImageToGQLMessage,
24
- aguiMessageWithRenderToGQL: () => aguiMessageWithRenderToGQL,
25
- aguiTextMessageToGQLMessage: () => aguiTextMessageToGQLMessage,
26
- aguiToGQL: () => aguiToGQL,
27
- aguiToolCallToGQLActionExecution: () => aguiToolCallToGQLActionExecution,
28
- aguiToolMessageToGQLResultMessage: () => aguiToolMessageToGQLResultMessage,
29
- gqlActionExecutionMessageToAGUIMessage: () => gqlActionExecutionMessageToAGUIMessage,
30
- gqlImageMessageToAGUIMessage: () => gqlImageMessageToAGUIMessage,
31
- gqlResultMessageToAGUIMessage: () => gqlResultMessageToAGUIMessage,
32
- gqlTextMessageToAGUIMessage: () => gqlTextMessageToAGUIMessage,
33
- gqlToAGUI: () => gqlToAGUI
34
- });
35
- module.exports = __toCommonJS(message_conversion_exports);
36
-
37
- // src/graphql/@generated/graphql.ts
38
- var MessageRole = /* @__PURE__ */ ((MessageRole2) => {
39
- MessageRole2["Assistant"] = "assistant";
40
- MessageRole2["Developer"] = "developer";
41
- MessageRole2["System"] = "system";
42
- MessageRole2["Tool"] = "tool";
43
- MessageRole2["User"] = "user";
44
- return MessageRole2;
45
- })(MessageRole || {});
46
-
47
- // src/client/types.ts
48
- var import_shared = require("@copilotkit/shared");
49
- var import_shared2 = require("@copilotkit/shared");
50
- var Message = class {
51
- constructor(props) {
52
- props.id ?? (props.id = (0, import_shared.randomId)());
53
- props.status ?? (props.status = { code: "Success" /* Success */ });
54
- props.createdAt ?? (props.createdAt = /* @__PURE__ */ new Date());
55
- Object.assign(this, props);
56
- }
57
- isTextMessage() {
58
- return this.type === "TextMessage";
59
- }
60
- isActionExecutionMessage() {
61
- return this.type === "ActionExecutionMessage";
62
- }
63
- isResultMessage() {
64
- return this.type === "ResultMessage";
65
- }
66
- isAgentStateMessage() {
67
- return this.type === "AgentStateMessage";
68
- }
69
- isImageMessage() {
70
- return this.type === "ImageMessage";
71
- }
72
- };
73
- var Role = MessageRole;
74
- var TextMessage = class extends Message {
75
- constructor(props) {
76
- super(props);
77
- this.type = "TextMessage";
78
- this.type = "TextMessage";
79
- }
80
- };
81
- var ActionExecutionMessage = class extends Message {
82
- constructor(props) {
83
- super(props);
84
- this.type = "ActionExecutionMessage";
85
- }
86
- };
87
- var ResultMessage = class extends Message {
88
- constructor(props) {
89
- super(props);
90
- this.type = "ResultMessage";
91
- }
92
- static decodeResult(result) {
93
- return (0, import_shared2.parseJson)(result, result);
94
- }
95
- static encodeResult(result) {
96
- if (result === void 0) {
97
- return "";
98
- } else if (typeof result === "string") {
99
- return result;
100
- } else {
101
- return JSON.stringify(result);
102
- }
103
- }
104
- };
105
- var AgentStateMessage = class extends Message {
106
- constructor(props) {
107
- super(props);
108
- this.type = "AgentStateMessage";
109
- }
110
- };
111
- var ImageMessage = class extends Message {
112
- constructor(props) {
113
- super(props);
114
- this.type = "ImageMessage";
115
- }
116
- };
117
-
118
- // src/message-conversion/agui-to-gql.ts
119
- function extractAgentName(message) {
120
- if (message.role !== "assistant") {
121
- throw new Error(
122
- `Cannot extract agent name from message with role ${message.role}`
123
- );
124
- }
125
- return message.agentName || "unknown";
126
- }
127
- function isAgentStateMessage(message) {
128
- return message.role === "assistant" && "agentName" in message && "state" in message;
129
- }
130
- function hasImageProperty(message) {
131
- const canContainImage = message.role === "assistant" || message.role === "user";
132
- if (!canContainImage || message.image === void 0) {
133
- return false;
134
- }
135
- const isMalformed = message.image.format === void 0 || message.image.bytes === void 0;
136
- if (isMalformed) {
137
- return false;
138
- }
139
- return true;
140
- }
141
- function aguiToGQL(messages, actions, coAgentStateRenders) {
142
- const gqlMessages = [];
143
- messages = Array.isArray(messages) ? messages : [messages];
144
- const toolCallNames = {};
145
- for (const message of messages) {
146
- if (isAgentStateMessage(message)) {
147
- const agentName = extractAgentName(message);
148
- const state = "state" in message && message.state ? message.state : {};
149
- gqlMessages.push(
150
- new AgentStateMessage({
151
- id: message.id,
152
- agentName,
153
- state,
154
- role: Role.Assistant
155
- })
156
- );
157
- if ("generativeUI" in message && message.generativeUI && coAgentStateRenders) {
158
- coAgentStateRenders[agentName] = {
159
- name: agentName,
160
- render: message.generativeUI
161
- };
162
- }
163
- continue;
164
- }
165
- if (hasImageProperty(message)) {
166
- gqlMessages.push(aguiMessageWithImageToGQLMessage(message));
167
- continue;
168
- }
169
- if (message.role === "assistant" && message.toolCalls) {
170
- gqlMessages.push(aguiTextMessageToGQLMessage(message));
171
- for (const toolCall of message.toolCalls) {
172
- toolCallNames[toolCall.id] = toolCall.function.name;
173
- const actionExecMsg = aguiToolCallToGQLActionExecution(
174
- toolCall,
175
- message.id
176
- );
177
- if ("generativeUI" in message && message.generativeUI && actions) {
178
- const actionName = toolCall.function.name;
179
- const specificAction = Object.values(actions).find(
180
- (action) => action.name === actionName
181
- );
182
- const wildcardAction = Object.values(actions).find(
183
- (action) => action.name === "*"
184
- );
185
- if (specificAction) {
186
- specificAction.render = message.generativeUI;
187
- } else if (wildcardAction) {
188
- wildcardAction.render = message.generativeUI;
189
- }
190
- }
191
- gqlMessages.push(actionExecMsg);
192
- }
193
- continue;
194
- }
195
- if (message.role === "developer" || message.role === "system" || message.role === "assistant" || message.role === "user") {
196
- gqlMessages.push(aguiTextMessageToGQLMessage(message));
197
- continue;
198
- }
199
- if (message.role === "tool") {
200
- gqlMessages.push(
201
- aguiToolMessageToGQLResultMessage(message, toolCallNames)
202
- );
203
- continue;
204
- }
205
- throw new Error(
206
- `Unknown message role: "${message.role}" in message with id: ${message.id}`
207
- );
208
- }
209
- return gqlMessages;
210
- }
211
- function aguiTextMessageToGQLMessage(message) {
212
- if (message.role !== "developer" && message.role !== "system" && message.role !== "assistant" && message.role !== "user") {
213
- throw new Error(
214
- `Cannot convert message with role ${message.role} to TextMessage`
215
- );
216
- }
217
- let roleValue;
218
- if (message.role === "developer") {
219
- roleValue = Role.Developer;
220
- } else if (message.role === "system") {
221
- roleValue = Role.System;
222
- } else if (message.role === "assistant") {
223
- roleValue = Role.Assistant;
224
- } else {
225
- roleValue = Role.User;
226
- }
227
- return new TextMessage({
228
- id: message.id,
229
- content: message.content || "",
230
- role: roleValue
231
- });
232
- }
233
- function aguiToolCallToGQLActionExecution(toolCall, parentMessageId) {
234
- if (toolCall.type !== "function") {
235
- throw new Error(`Unsupported tool call type: ${toolCall.type}`);
236
- }
237
- let argumentsObj;
238
- if (typeof toolCall.function.arguments === "string") {
239
- try {
240
- argumentsObj = JSON.parse(toolCall.function.arguments);
241
- } catch (error) {
242
- console.warn(
243
- `Failed to parse tool call arguments for ${toolCall.function.name}:`,
244
- error
245
- );
246
- argumentsObj = {};
247
- }
248
- } else if (typeof toolCall.function.arguments === "object" && toolCall.function.arguments !== null) {
249
- argumentsObj = toolCall.function.arguments;
250
- } else {
251
- console.warn(
252
- `Invalid tool call arguments type for ${toolCall.function.name}:`,
253
- typeof toolCall.function.arguments
254
- );
255
- argumentsObj = {};
256
- }
257
- return new ActionExecutionMessage({
258
- id: toolCall.id,
259
- name: toolCall.function.name,
260
- arguments: argumentsObj,
261
- parentMessageId
262
- });
263
- }
264
- function aguiToolMessageToGQLResultMessage(message, toolCallNames) {
265
- if (message.role !== "tool") {
266
- throw new Error(
267
- `Cannot convert message with role ${message.role} to ResultMessage`
268
- );
269
- }
270
- if (!message.toolCallId) {
271
- throw new Error("Tool message must have a toolCallId");
272
- }
273
- const actionName = toolCallNames[message.toolCallId] || "unknown";
274
- let resultContent;
275
- const messageContent = message.content || "";
276
- if (typeof messageContent === "string") {
277
- resultContent = messageContent;
278
- } else if (typeof messageContent === "object" && messageContent !== null) {
279
- try {
280
- resultContent = JSON.stringify(messageContent);
281
- } catch (error) {
282
- console.warn(`Failed to stringify tool result for ${actionName}:`, error);
283
- resultContent = String(messageContent);
284
- }
285
- } else {
286
- resultContent = String(messageContent);
287
- }
288
- return new ResultMessage({
289
- id: message.id,
290
- result: resultContent,
291
- actionExecutionId: message.toolCallId,
292
- actionName: message.toolName || actionName
293
- });
294
- }
295
- function aguiMessageWithRenderToGQL(message, actions, coAgentStateRenders) {
296
- if (message.role === "assistant" && "generativeUI" in message && message.generativeUI && !message.toolCalls) {
297
- const gqlMessages = [];
298
- gqlMessages.push(
299
- new AgentStateMessage({
300
- id: message.id,
301
- agentName: "unknown",
302
- state: {},
303
- role: Role.Assistant
304
- })
305
- );
306
- if (coAgentStateRenders) {
307
- coAgentStateRenders.unknown = {
308
- name: "unknown",
309
- render: message.generativeUI
310
- };
311
- }
312
- return gqlMessages;
313
- }
314
- return aguiToGQL([message], actions, coAgentStateRenders);
315
- }
316
- function aguiMessageWithImageToGQLMessage(message) {
317
- if (!hasImageProperty(message)) {
318
- throw new Error(
319
- `Cannot convert message to ImageMessage: missing format or bytes`
320
- );
321
- }
322
- let roleValue;
323
- if (message.role === "assistant") {
324
- roleValue = Role.Assistant;
325
- } else {
326
- roleValue = Role.User;
327
- }
328
- if (message.role !== "assistant" && message.role !== "user") {
329
- throw new Error(
330
- `Cannot convert message with role ${message.role} to ImageMessage`
331
- );
332
- }
333
- return new ImageMessage({
334
- id: message.id,
335
- format: message.image.format,
336
- bytes: message.image.bytes,
337
- role: roleValue
338
- });
339
- }
340
-
341
- // src/message-conversion/gql-to-agui.ts
342
- var VALID_IMAGE_FORMATS = ["jpeg", "png", "webp", "gif"];
343
- function validateImageFormat(format) {
344
- return VALID_IMAGE_FORMATS.includes(format);
345
- }
346
- function gqlToAGUI(messages, actions, coAgentStateRenders) {
347
- let aguiMessages = [];
348
- messages = Array.isArray(messages) ? messages : [messages];
349
- const actionResults = /* @__PURE__ */ new Map();
350
- for (const message of messages) {
351
- if (message.isResultMessage()) {
352
- actionResults.set(message.actionExecutionId, message.result);
353
- }
354
- }
355
- for (const message of messages) {
356
- if (message.isTextMessage()) {
357
- aguiMessages.push(gqlTextMessageToAGUIMessage(message));
358
- } else if (message.isResultMessage()) {
359
- aguiMessages.push(gqlResultMessageToAGUIMessage(message));
360
- } else if (message.isActionExecutionMessage()) {
361
- aguiMessages.push(
362
- gqlActionExecutionMessageToAGUIMessage(message, actions, actionResults)
363
- );
364
- } else if (message.isAgentStateMessage()) {
365
- aguiMessages.push(
366
- gqlAgentStateMessageToAGUIMessage(message, coAgentStateRenders)
367
- );
368
- } else if (message.isImageMessage()) {
369
- aguiMessages.push(gqlImageMessageToAGUIMessage(message));
370
- } else {
371
- throw new Error("Unknown message type");
372
- }
373
- }
374
- return aguiMessages;
375
- }
376
- function gqlActionExecutionMessageToAGUIMessage(message, actions, actionResults) {
377
- const hasSpecificAction = actions && Object.values(actions).some((action2) => action2.name === message.name);
378
- const hasWildcardAction = actions && Object.values(actions).some((action2) => action2.name === "*");
379
- if (!actions || !hasSpecificAction && !hasWildcardAction) {
380
- return {
381
- id: message.id,
382
- role: "assistant",
383
- toolCalls: [actionExecutionMessageToAGUIMessage(message)],
384
- name: message.name
385
- };
386
- }
387
- const action = Object.values(actions).find(
388
- (action2) => action2.name === message.name
389
- ) || Object.values(actions).find((action2) => action2.name === "*");
390
- const createRenderWrapper = (originalRender) => {
391
- if (!originalRender)
392
- return void 0;
393
- return (props) => {
394
- var _a;
395
- let actionResult = actionResults == null ? void 0 : actionResults.get(message.id);
396
- let status = "inProgress";
397
- if (actionResult !== void 0) {
398
- status = "complete";
399
- } else if (((_a = message.status) == null ? void 0 : _a.code) !== "Pending" /* Pending */) {
400
- status = "executing";
401
- }
402
- if (typeof (props == null ? void 0 : props.result) === "string") {
403
- try {
404
- props.result = JSON.parse(props.result);
405
- } catch (e) {
406
- }
407
- }
408
- if (typeof actionResult === "string") {
409
- try {
410
- actionResult = JSON.parse(actionResult);
411
- } catch (e) {
412
- }
413
- }
414
- const baseProps = {
415
- status: (props == null ? void 0 : props.status) || status,
416
- args: message.arguments || {},
417
- result: (props == null ? void 0 : props.result) || actionResult || void 0,
418
- messageId: message.id
419
- };
420
- if (action.name === "*") {
421
- return originalRender({
422
- ...baseProps,
423
- ...props,
424
- name: message.name
425
- });
426
- } else {
427
- const respond = (props == null ? void 0 : props.respond) ?? (() => {
428
- });
429
- return originalRender({
430
- ...baseProps,
431
- ...props,
432
- respond
433
- });
434
- }
435
- };
436
- };
437
- return {
438
- id: message.id,
439
- role: "assistant",
440
- content: "",
441
- toolCalls: [actionExecutionMessageToAGUIMessage(message)],
442
- generativeUI: createRenderWrapper(action.render),
443
- name: message.name
444
- };
445
- }
446
- function gqlAgentStateMessageToAGUIMessage(message, coAgentStateRenders) {
447
- if (coAgentStateRenders && Object.values(coAgentStateRenders).some(
448
- (render) => render.name === message.agentName
449
- )) {
450
- const render = Object.values(coAgentStateRenders).find(
451
- (render2) => render2.name === message.agentName
452
- );
453
- const createRenderWrapper = (originalRender) => {
454
- if (!originalRender)
455
- return void 0;
456
- return (props) => {
457
- const state = message.state;
458
- const renderProps = {
459
- state
460
- };
461
- return originalRender(renderProps);
462
- };
463
- };
464
- return {
465
- id: message.id,
466
- role: "assistant",
467
- generativeUI: createRenderWrapper(render.render),
468
- agentName: message.agentName,
469
- state: message.state
470
- };
471
- }
472
- return {
473
- id: message.id,
474
- role: "assistant",
475
- agentName: message.agentName,
476
- state: message.state
477
- };
478
- }
479
- function actionExecutionMessageToAGUIMessage(actionExecutionMessage) {
480
- return {
481
- id: actionExecutionMessage.id,
482
- function: {
483
- name: actionExecutionMessage.name,
484
- arguments: JSON.stringify(actionExecutionMessage.arguments)
485
- },
486
- type: "function"
487
- };
488
- }
489
- function gqlTextMessageToAGUIMessage(message) {
490
- switch (message.role) {
491
- case Role.Developer:
492
- return {
493
- id: message.id,
494
- role: "developer",
495
- content: message.content
496
- };
497
- case Role.System:
498
- return {
499
- id: message.id,
500
- role: "system",
501
- content: message.content
502
- };
503
- case Role.Assistant:
504
- return {
505
- id: message.id,
506
- role: "assistant",
507
- content: message.content
508
- };
509
- case Role.User:
510
- return {
511
- id: message.id,
512
- role: "user",
513
- content: message.content
514
- };
515
- default:
516
- throw new Error("Unknown message role");
517
- }
518
- }
519
- function gqlResultMessageToAGUIMessage(message) {
520
- return {
521
- id: message.id,
522
- role: "tool",
523
- content: message.result,
524
- toolCallId: message.actionExecutionId,
525
- toolName: message.actionName
526
- };
527
- }
528
- function gqlImageMessageToAGUIMessage(message) {
529
- if (!validateImageFormat(message.format)) {
530
- throw new Error(
531
- `Invalid image format: ${message.format}. Supported formats are: ${VALID_IMAGE_FORMATS.join(", ")}`
532
- );
533
- }
534
- if (!message.bytes || typeof message.bytes !== "string" || message.bytes.trim() === "") {
535
- throw new Error("Image bytes must be a non-empty string");
536
- }
537
- const role = message.role === Role.Assistant ? "assistant" : "user";
538
- const imageMessage = {
539
- id: message.id,
540
- role,
541
- content: "",
542
- image: {
543
- format: message.format,
544
- bytes: message.bytes
545
- }
546
- };
547
- return imageMessage;
548
- }
549
- // Annotate the CommonJS export names for ESM import in node:
550
- 0 && (module.exports = {
551
- aguiMessageWithImageToGQLMessage,
552
- aguiMessageWithRenderToGQL,
553
- aguiTextMessageToGQLMessage,
554
- aguiToGQL,
555
- aguiToolCallToGQLActionExecution,
556
- aguiToolMessageToGQLResultMessage,
557
- gqlActionExecutionMessageToAGUIMessage,
558
- gqlImageMessageToAGUIMessage,
559
- gqlResultMessageToAGUIMessage,
560
- gqlTextMessageToAGUIMessage,
561
- gqlToAGUI
562
- });
563
- //# sourceMappingURL=index.js.map