@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,489 +0,0 @@
1
- import {
2
- aguiToGQL
3
- } from "../chunk-LTVE64IE.mjs";
4
- import {
5
- gqlToAGUI
6
- } from "../chunk-VIHKTLUA.mjs";
7
- import {
8
- describe,
9
- globalExpect,
10
- test,
11
- vi
12
- } from "../chunk-A4INSSNE.mjs";
13
- import "../chunk-7ECCT6PK.mjs";
14
- import "../chunk-2XWNDVTL.mjs";
15
- import "../chunk-QUH7QWUA.mjs";
16
- import "../chunk-E5FOLXLN.mjs";
17
- import "../chunk-SDQPJXLL.mjs";
18
- import "../chunk-M4CK5HDR.mjs";
19
- import {
20
- ActionExecutionMessage,
21
- AgentStateMessage,
22
- ImageMessage,
23
- ResultMessage,
24
- Role,
25
- TextMessage
26
- } from "../chunk-UOAPP5IN.mjs";
27
- import "../chunk-OBDQ5BWD.mjs";
28
- import "../chunk-DELDZXUX.mjs";
29
-
30
- // src/message-conversion/roundtrip-conversion.test.ts
31
- function stripFunctions(obj) {
32
- if (typeof obj === "function")
33
- return void 0;
34
- if (Array.isArray(obj))
35
- return obj.map(stripFunctions);
36
- if (obj && typeof obj === "object") {
37
- const out = {};
38
- for (const k in obj) {
39
- if (typeof obj[k] !== "function") {
40
- out[k] = stripFunctions(obj[k]);
41
- }
42
- }
43
- return out;
44
- }
45
- return obj;
46
- }
47
- describe("roundtrip message conversion", () => {
48
- test("text message AGUI -> GQL -> AGUI", () => {
49
- const aguiMsg = {
50
- id: "user-1",
51
- role: "user",
52
- content: "Hello!"
53
- };
54
- const gqlMsgs = aguiToGQL(aguiMsg);
55
- const aguiMsgs2 = gqlToAGUI(gqlMsgs);
56
- globalExpect(stripFunctions(aguiMsgs2[0])).toEqual(stripFunctions(aguiMsg));
57
- });
58
- test("text message GQL -> AGUI -> GQL", () => {
59
- const gqlMsg = new TextMessage({
60
- id: "assistant-1",
61
- content: "Hi!",
62
- role: Role.Assistant
63
- });
64
- const aguiMsgs = gqlToAGUI(gqlMsg);
65
- const gqlMsgs2 = aguiToGQL(aguiMsgs);
66
- globalExpect(gqlMsgs2[0].id).toBe(gqlMsg.id);
67
- globalExpect(gqlMsgs2[0].content).toBe(gqlMsg.content);
68
- globalExpect(gqlMsgs2[0].role).toBe(gqlMsg.role);
69
- });
70
- test("tool message AGUI -> GQL -> AGUI", () => {
71
- const aguiMsg = {
72
- id: "tool-1",
73
- role: "tool",
74
- content: "Tool result",
75
- toolCallId: "tool-call-1",
76
- toolName: "testAction"
77
- };
78
- const gqlMsgs = aguiToGQL(aguiMsg);
79
- const aguiMsgs2 = gqlToAGUI(gqlMsgs);
80
- globalExpect(stripFunctions(aguiMsgs2[0])).toEqual(stripFunctions(aguiMsg));
81
- });
82
- test("tool message GQL -> AGUI -> GQL", () => {
83
- const gqlMsg = new ResultMessage({
84
- id: "tool-1",
85
- result: "Tool result",
86
- actionExecutionId: "tool-call-1",
87
- actionName: "testAction"
88
- });
89
- const aguiMsgs = gqlToAGUI(gqlMsg);
90
- const gqlMsgs2 = aguiToGQL(aguiMsgs);
91
- globalExpect(gqlMsgs2[0].id).toBe(gqlMsg.id);
92
- globalExpect(gqlMsgs2[0].result).toBe(gqlMsg.result);
93
- globalExpect(gqlMsgs2[0].actionExecutionId).toBe(
94
- gqlMsg.actionExecutionId
95
- );
96
- });
97
- test("action execution AGUI -> GQL -> AGUI", () => {
98
- const aguiMsg = {
99
- id: "assistant-1",
100
- role: "assistant",
101
- content: "Running action",
102
- toolCalls: [
103
- {
104
- id: "tool-call-1",
105
- type: "function",
106
- function: {
107
- name: "doSomething",
108
- arguments: JSON.stringify({ foo: "bar" })
109
- }
110
- }
111
- ]
112
- };
113
- const gqlMsgs = aguiToGQL(aguiMsg);
114
- const aguiMsgs2 = gqlToAGUI(gqlMsgs);
115
- globalExpect(aguiMsgs2[0].role).toBe("assistant");
116
- globalExpect(aguiMsgs2[1].role).toBe("assistant");
117
- if ("toolCalls" in aguiMsgs2[1]) {
118
- globalExpect(aguiMsgs2[1].toolCalls[0].function.name).toBe(
119
- "doSomething"
120
- );
121
- }
122
- });
123
- test("action execution GQL -> AGUI -> GQL", () => {
124
- const actionExecMsg = new ActionExecutionMessage({
125
- id: "tool-call-1",
126
- name: "doSomething",
127
- arguments: { foo: "bar" },
128
- parentMessageId: "assistant-1"
129
- });
130
- const aguiMsgs = gqlToAGUI([actionExecMsg]);
131
- const gqlMsgs2 = aguiToGQL(aguiMsgs);
132
- globalExpect(gqlMsgs2[1].id).toBe("tool-call-1");
133
- globalExpect(gqlMsgs2[1].name).toBe("doSomething");
134
- globalExpect(gqlMsgs2[1].arguments).toEqual({ foo: "bar" });
135
- });
136
- test("agent state GQL -> AGUI -> GQL", () => {
137
- const agentStateMsg = new AgentStateMessage({
138
- id: "agent-state-1",
139
- agentName: "testAgent",
140
- state: { status: "running" },
141
- role: Role.Assistant
142
- });
143
- const aguiMsgs = gqlToAGUI([agentStateMsg]);
144
- const gqlMsgs2 = aguiToGQL(aguiMsgs);
145
- globalExpect(gqlMsgs2[0].id).toBe("agent-state-1");
146
- globalExpect(gqlMsgs2[0].agentName).toBe("testAgent");
147
- });
148
- test("action execution with render function roundtrip", () => {
149
- const mockRender = vi.fn();
150
- const aguiMsg = {
151
- id: "assistant-1",
152
- role: "assistant",
153
- content: "Running action",
154
- toolCalls: [
155
- {
156
- id: "tool-call-1",
157
- type: "function",
158
- function: {
159
- name: "doSomething",
160
- arguments: JSON.stringify({ foo: "bar" })
161
- }
162
- }
163
- ],
164
- generativeUI: mockRender
165
- };
166
- const actions = {
167
- doSomething: { name: "doSomething" }
168
- };
169
- const gqlMsgs = aguiToGQL(aguiMsg, actions);
170
- const aguiMsgs2 = gqlToAGUI(gqlMsgs, actions);
171
- globalExpect(typeof actions.doSomething.render).toBe("function");
172
- if ("toolCalls" in aguiMsgs2[1]) {
173
- globalExpect(aguiMsgs2[1].toolCalls[0].function.name).toBe(
174
- "doSomething"
175
- );
176
- }
177
- });
178
- test("image message GQL -> AGUI -> GQL", () => {
179
- const gqlMsg = new ImageMessage({
180
- id: "img-1",
181
- format: "jpeg",
182
- bytes: "somebase64string",
183
- role: Role.User
184
- });
185
- const aguiMsgs = gqlToAGUI(gqlMsg);
186
- const gqlMsgs2 = aguiToGQL(aguiMsgs);
187
- globalExpect(gqlMsgs2[0].id).toBe(gqlMsg.id);
188
- globalExpect(gqlMsgs2[0].format).toBe(gqlMsg.format);
189
- globalExpect(gqlMsgs2[0].bytes).toBe(gqlMsg.bytes);
190
- globalExpect(gqlMsgs2[0].role).toBe(gqlMsg.role);
191
- });
192
- test("image message AGUI -> GQL -> AGUI (assistant and user)", () => {
193
- const aguiAssistantImageMsg = {
194
- id: "img-assistant-1",
195
- role: "assistant",
196
- image: {
197
- format: "jpeg",
198
- bytes: "assistantbase64data"
199
- },
200
- content: ""
201
- // required for type
202
- };
203
- const gqlAssistantMsgs = aguiToGQL(aguiAssistantImageMsg);
204
- const aguiAssistantMsgs2 = gqlToAGUI(gqlAssistantMsgs);
205
- globalExpect(aguiAssistantMsgs2[0].id).toBe(aguiAssistantImageMsg.id);
206
- globalExpect(aguiAssistantMsgs2[0].role).toBe("assistant");
207
- globalExpect(aguiAssistantMsgs2[0].image.format).toBe("jpeg");
208
- globalExpect(aguiAssistantMsgs2[0].image.bytes).toBe(
209
- "assistantbase64data"
210
- );
211
- const aguiUserImageMsg = {
212
- id: "img-user-1",
213
- role: "user",
214
- image: {
215
- format: "png",
216
- bytes: "userbase64data"
217
- },
218
- content: ""
219
- // required for type
220
- };
221
- const gqlUserMsgs = aguiToGQL(aguiUserImageMsg);
222
- const aguiUserMsgs2 = gqlToAGUI(gqlUserMsgs);
223
- globalExpect(aguiUserMsgs2[0].id).toBe(aguiUserImageMsg.id);
224
- globalExpect(aguiUserMsgs2[0].role).toBe("user");
225
- globalExpect(aguiUserMsgs2[0].image.format).toBe("png");
226
- globalExpect(aguiUserMsgs2[0].image.bytes).toBe("userbase64data");
227
- });
228
- test("wild card action roundtrip conversion", () => {
229
- const mockRender = vi.fn(
230
- (props) => `Wildcard rendered: ${props.args.test}`
231
- );
232
- const aguiMsg = {
233
- id: "assistant-wildcard-1",
234
- role: "assistant",
235
- content: "Running wild card action",
236
- toolCalls: [
237
- {
238
- id: "tool-call-wildcard-1",
239
- type: "function",
240
- function: {
241
- name: "unknownAction",
242
- arguments: JSON.stringify({ test: "wildcard-value" })
243
- }
244
- }
245
- ],
246
- generativeUI: mockRender
247
- };
248
- const actions = {
249
- "*": { name: "*" }
250
- };
251
- const gqlMsgs = aguiToGQL(aguiMsg, actions);
252
- const aguiMsgs2 = gqlToAGUI(gqlMsgs, actions);
253
- globalExpect(typeof actions["*"].render).toBe("function");
254
- globalExpect(actions["*"].render).toBe(mockRender);
255
- globalExpect(aguiMsgs2).toHaveLength(2);
256
- globalExpect(aguiMsgs2[0].role).toBe("assistant");
257
- globalExpect(aguiMsgs2[1].role).toBe("assistant");
258
- if ("toolCalls" in aguiMsgs2[1]) {
259
- globalExpect(aguiMsgs2[1].toolCalls[0].function.name).toBe(
260
- "unknownAction"
261
- );
262
- globalExpect(aguiMsgs2[1].toolCalls[0].function.arguments).toBe(
263
- '{"test":"wildcard-value"}'
264
- );
265
- }
266
- });
267
- test("wild card action with specific action priority roundtrip", () => {
268
- const mockRender = vi.fn(
269
- (props) => `Specific action rendered: ${props.args.test}`
270
- );
271
- const aguiMsg = {
272
- id: "assistant-priority-1",
273
- role: "assistant",
274
- content: "Running specific action",
275
- toolCalls: [
276
- {
277
- id: "tool-call-priority-1",
278
- type: "function",
279
- function: {
280
- name: "specificAction",
281
- arguments: JSON.stringify({ test: "specific-value" })
282
- }
283
- }
284
- ],
285
- generativeUI: mockRender
286
- };
287
- const actions = {
288
- specificAction: { name: "specificAction" },
289
- "*": { name: "*" }
290
- };
291
- const gqlMsgs = aguiToGQL(aguiMsg, actions);
292
- const aguiMsgs2 = gqlToAGUI(gqlMsgs, actions);
293
- globalExpect(typeof actions.specificAction.render).toBe("function");
294
- globalExpect(actions.specificAction.render).toBe(mockRender);
295
- globalExpect(actions["*"].render).toBeUndefined();
296
- globalExpect(aguiMsgs2).toHaveLength(2);
297
- globalExpect(aguiMsgs2[0].role).toBe("assistant");
298
- globalExpect(aguiMsgs2[1].role).toBe("assistant");
299
- if ("toolCalls" in aguiMsgs2[1]) {
300
- globalExpect(aguiMsgs2[1].toolCalls[0].function.name).toBe(
301
- "specificAction"
302
- );
303
- globalExpect(aguiMsgs2[1].toolCalls[0].function.arguments).toBe(
304
- '{"test":"specific-value"}'
305
- );
306
- }
307
- });
308
- test("wild card action GQL -> AGUI -> GQL roundtrip", () => {
309
- const actionExecMsg = new ActionExecutionMessage({
310
- id: "wildcard-action-1",
311
- name: "unknownAction",
312
- arguments: { test: "wildcard-gql-value" },
313
- parentMessageId: "assistant-1"
314
- });
315
- const actions = {
316
- "*": {
317
- name: "*",
318
- render: vi.fn((props) => `GQL wildcard rendered: ${props.args.test}`)
319
- }
320
- };
321
- const aguiMsgs = gqlToAGUI([actionExecMsg], actions);
322
- const gqlMsgs2 = aguiToGQL(aguiMsgs, actions);
323
- globalExpect(gqlMsgs2).toHaveLength(2);
324
- globalExpect(gqlMsgs2[0].id).toBe("wildcard-action-1");
325
- globalExpect(gqlMsgs2[0].role).toBe(Role.Assistant);
326
- globalExpect(gqlMsgs2[1].id).toBe("wildcard-action-1");
327
- globalExpect(gqlMsgs2[1].name).toBe("unknownAction");
328
- globalExpect(gqlMsgs2[1].arguments).toEqual({
329
- test: "wildcard-gql-value"
330
- });
331
- });
332
- test("roundtrip conversion with result parsing edge cases", () => {
333
- const toolResultMsg = {
334
- id: "tool-result-json",
335
- role: "tool",
336
- content: '{"status": "success", "data": {"value": 42}}',
337
- toolCallId: "tool-call-json",
338
- toolName: "jsonAction"
339
- };
340
- const gqlMsgs = aguiToGQL(toolResultMsg);
341
- const aguiMsgs = gqlToAGUI(gqlMsgs);
342
- globalExpect(gqlMsgs).toHaveLength(1);
343
- globalExpect(gqlMsgs[0]).toBeInstanceOf(ResultMessage);
344
- globalExpect(gqlMsgs[0].result).toBe(
345
- '{"status": "success", "data": {"value": 42}}'
346
- );
347
- globalExpect(aguiMsgs).toHaveLength(1);
348
- globalExpect(aguiMsgs[0].role).toBe("tool");
349
- globalExpect(aguiMsgs[0].content).toBe(
350
- '{"status": "success", "data": {"value": 42}}'
351
- );
352
- });
353
- test("roundtrip conversion with object content in tool results", () => {
354
- const toolResultMsg = {
355
- id: "tool-result-object",
356
- role: "tool",
357
- content: { status: "success", data: { value: 42 } },
358
- toolCallId: "tool-call-object",
359
- toolName: "objectAction"
360
- };
361
- const gqlMsgs = aguiToGQL(toolResultMsg);
362
- const aguiMsgs = gqlToAGUI(gqlMsgs);
363
- globalExpect(gqlMsgs).toHaveLength(1);
364
- globalExpect(gqlMsgs[0]).toBeInstanceOf(ResultMessage);
365
- globalExpect(gqlMsgs[0].result).toBe(
366
- '{"status":"success","data":{"value":42}}'
367
- );
368
- globalExpect(aguiMsgs).toHaveLength(1);
369
- globalExpect(aguiMsgs[0].role).toBe("tool");
370
- globalExpect(aguiMsgs[0].content).toBe(
371
- '{"status":"success","data":{"value":42}}'
372
- );
373
- });
374
- test("roundtrip conversion with action execution and result parsing", () => {
375
- const mockRender = vi.fn(
376
- (props) => `Rendered: ${JSON.stringify(props.result)}`
377
- );
378
- const actionExecMsg = new ActionExecutionMessage({
379
- id: "action-with-result",
380
- name: "testAction",
381
- arguments: { input: "test-value" },
382
- parentMessageId: "parent-result"
383
- });
384
- const resultMsg = new ResultMessage({
385
- id: "result-with-json",
386
- result: '{"output": "processed", "count": 5}',
387
- actionExecutionId: "action-with-result",
388
- actionName: "testAction"
389
- });
390
- const actions = {
391
- testAction: {
392
- name: "testAction",
393
- render: mockRender
394
- }
395
- };
396
- const aguiMsgs = gqlToAGUI([actionExecMsg, resultMsg], actions);
397
- globalExpect(aguiMsgs).toHaveLength(2);
398
- globalExpect(aguiMsgs[0].role).toBe("assistant");
399
- globalExpect("generativeUI" in aguiMsgs[0]).toBe(true);
400
- globalExpect(aguiMsgs[1].role).toBe("tool");
401
- globalExpect(aguiMsgs[1].content).toBe('{"output": "processed", "count": 5}');
402
- if ("generativeUI" in aguiMsgs[0] && aguiMsgs[0].generativeUI) {
403
- aguiMsgs[0].generativeUI({ result: '{"parsed": true}' });
404
- globalExpect(mockRender).toHaveBeenCalledWith(
405
- globalExpect.objectContaining({
406
- result: { parsed: true }
407
- // Should be parsed from string
408
- })
409
- );
410
- }
411
- const gqlMsgs2 = aguiToGQL(aguiMsgs, actions);
412
- globalExpect(gqlMsgs2).toHaveLength(3);
413
- globalExpect(gqlMsgs2[0]).toBeInstanceOf(TextMessage);
414
- globalExpect(gqlMsgs2[1]).toBeInstanceOf(ActionExecutionMessage);
415
- globalExpect(gqlMsgs2[2]).toBeInstanceOf(ResultMessage);
416
- globalExpect(gqlMsgs2[1].arguments).toEqual({ input: "test-value" });
417
- globalExpect(gqlMsgs2[2].result).toBe(
418
- '{"output": "processed", "count": 5}'
419
- );
420
- });
421
- test("roundtrip conversion verifies correct property distribution for regular actions", () => {
422
- const mockRender = vi.fn(
423
- (props) => `Regular action: ${JSON.stringify(props.args)}`
424
- );
425
- const actionExecMsg = new ActionExecutionMessage({
426
- id: "regular-action-test",
427
- name: "regularAction",
428
- arguments: { test: "regular-value" },
429
- parentMessageId: "parent-regular"
430
- });
431
- const actions = {
432
- regularAction: {
433
- name: "regularAction",
434
- render: mockRender
435
- }
436
- };
437
- const aguiMsgs = gqlToAGUI([actionExecMsg], actions);
438
- const gqlMsgs2 = aguiToGQL(aguiMsgs, actions);
439
- globalExpect(gqlMsgs2).toHaveLength(2);
440
- globalExpect(gqlMsgs2[1]).toBeInstanceOf(ActionExecutionMessage);
441
- globalExpect(gqlMsgs2[1].name).toBe("regularAction");
442
- if ("generativeUI" in aguiMsgs[0] && aguiMsgs[0].generativeUI) {
443
- aguiMsgs[0].generativeUI();
444
- globalExpect(mockRender).toHaveBeenCalledWith(
445
- globalExpect.objectContaining({
446
- args: { test: "regular-value" }
447
- // name property should NOT be present for regular actions
448
- })
449
- );
450
- const callArgs = mockRender.mock.calls[0][0];
451
- globalExpect(callArgs).not.toHaveProperty("name");
452
- }
453
- });
454
- test("roundtrip conversion verifies correct property distribution for wildcard actions", () => {
455
- const mockRender = vi.fn(
456
- (props) => `Wildcard action: ${props.name} with ${JSON.stringify(props.args)}`
457
- );
458
- const actionExecMsg = new ActionExecutionMessage({
459
- id: "wildcard-action-test",
460
- name: "unknownAction",
461
- arguments: { test: "wildcard-value" },
462
- parentMessageId: "parent-wildcard"
463
- });
464
- const actions = {
465
- "*": {
466
- name: "*",
467
- render: mockRender
468
- }
469
- };
470
- const aguiMsgs = gqlToAGUI([actionExecMsg], actions);
471
- const gqlMsgs2 = aguiToGQL(aguiMsgs, actions);
472
- globalExpect(gqlMsgs2).toHaveLength(2);
473
- globalExpect(gqlMsgs2[1]).toBeInstanceOf(ActionExecutionMessage);
474
- globalExpect(gqlMsgs2[1].name).toBe("unknownAction");
475
- if ("generativeUI" in aguiMsgs[0] && aguiMsgs[0].generativeUI) {
476
- aguiMsgs[0].generativeUI();
477
- globalExpect(mockRender).toHaveBeenCalledWith(
478
- globalExpect.objectContaining({
479
- args: { test: "wildcard-value" },
480
- name: "unknownAction"
481
- // name property SHOULD be present for wildcard actions
482
- })
483
- );
484
- const callArgs = mockRender.mock.calls[0][0];
485
- globalExpect(callArgs).toHaveProperty("name", "unknownAction");
486
- }
487
- });
488
- });
489
- //# sourceMappingURL=roundtrip-conversion.test.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/message-conversion/roundtrip-conversion.test.ts"],"sourcesContent":["import { describe, test, expect, vi } from \"vitest\";\nimport * as gql from \"../client\";\nimport agui from \"@copilotkit/shared\";\nimport { aguiToGQL } from \"./agui-to-gql\";\nimport { gqlToAGUI } from \"./gql-to-agui\";\n\n// Helper to strip functions for deep equality\nfunction stripFunctions(obj: any): any {\n if (typeof obj === \"function\") return undefined;\n if (Array.isArray(obj)) return obj.map(stripFunctions);\n if (obj && typeof obj === \"object\") {\n const out: any = {};\n for (const k in obj) {\n if (typeof obj[k] !== \"function\") {\n out[k] = stripFunctions(obj[k]);\n }\n }\n return out;\n }\n return obj;\n}\n\ndescribe(\"roundtrip message conversion\", () => {\n test(\"text message AGUI -> GQL -> AGUI\", () => {\n const aguiMsg: agui.Message = {\n id: \"user-1\",\n role: \"user\",\n content: \"Hello!\",\n };\n const gqlMsgs = aguiToGQL(aguiMsg);\n const aguiMsgs2 = gqlToAGUI(gqlMsgs);\n expect(stripFunctions(aguiMsgs2[0])).toEqual(stripFunctions(aguiMsg));\n });\n\n test(\"text message GQL -> AGUI -> GQL\", () => {\n const gqlMsg = new gql.TextMessage({\n id: \"assistant-1\",\n content: \"Hi!\",\n role: gql.Role.Assistant,\n });\n const aguiMsgs = gqlToAGUI(gqlMsg);\n const gqlMsgs2 = aguiToGQL(aguiMsgs);\n // Should be equivalent in content, id, and role\n expect(gqlMsgs2[0].id).toBe(gqlMsg.id);\n expect((gqlMsgs2[0] as any).content).toBe(gqlMsg.content);\n expect((gqlMsgs2[0] as any).role).toBe(gqlMsg.role);\n });\n\n test(\"tool message AGUI -> GQL -> AGUI\", () => {\n const aguiMsg: agui.Message = {\n id: \"tool-1\",\n role: \"tool\",\n content: \"Tool result\",\n toolCallId: \"tool-call-1\",\n toolName: \"testAction\",\n };\n const gqlMsgs = aguiToGQL(aguiMsg);\n const aguiMsgs2 = gqlToAGUI(gqlMsgs);\n expect(stripFunctions(aguiMsgs2[0])).toEqual(stripFunctions(aguiMsg));\n });\n\n test(\"tool message GQL -> AGUI -> GQL\", () => {\n const gqlMsg = new gql.ResultMessage({\n id: \"tool-1\",\n result: \"Tool result\",\n actionExecutionId: \"tool-call-1\",\n actionName: \"testAction\",\n });\n const aguiMsgs = gqlToAGUI(gqlMsg);\n const gqlMsgs2 = aguiToGQL(aguiMsgs);\n expect(gqlMsgs2[0].id).toBe(gqlMsg.id);\n expect((gqlMsgs2[0] as any).result).toBe(gqlMsg.result);\n expect((gqlMsgs2[0] as any).actionExecutionId).toBe(\n gqlMsg.actionExecutionId,\n );\n });\n\n test(\"action execution AGUI -> GQL -> AGUI\", () => {\n const aguiMsg: agui.Message = {\n id: \"assistant-1\",\n role: \"assistant\",\n content: \"Running action\",\n toolCalls: [\n {\n id: \"tool-call-1\",\n type: \"function\",\n function: {\n name: \"doSomething\",\n arguments: JSON.stringify({ foo: \"bar\" }),\n },\n },\n ],\n };\n const gqlMsgs = aguiToGQL(aguiMsg);\n const aguiMsgs2 = gqlToAGUI(gqlMsgs);\n // Should have an assistant message and an action execution message\n expect(aguiMsgs2[0].role).toBe(\"assistant\");\n expect(aguiMsgs2[1].role).toBe(\"assistant\");\n // Only check toolCalls if present\n if (\"toolCalls\" in aguiMsgs2[1]) {\n expect((aguiMsgs2[1] as any).toolCalls[0].function.name).toBe(\n \"doSomething\",\n );\n }\n });\n\n test(\"action execution GQL -> AGUI -> GQL\", () => {\n const actionExecMsg = new gql.ActionExecutionMessage({\n id: \"tool-call-1\",\n name: \"doSomething\",\n arguments: { foo: \"bar\" },\n parentMessageId: \"assistant-1\",\n });\n const aguiMsgs = gqlToAGUI([actionExecMsg]);\n const gqlMsgs2 = aguiToGQL(aguiMsgs);\n // The ActionExecutionMessage is at index 1, not index 0\n expect(gqlMsgs2[1].id).toBe(\"tool-call-1\");\n // The name should be extracted from the toolCall function name\n expect((gqlMsgs2[1] as any).name).toBe(\"doSomething\");\n expect((gqlMsgs2[1] as any).arguments).toEqual({ foo: \"bar\" });\n });\n\n test(\"agent state GQL -> AGUI -> GQL\", () => {\n const agentStateMsg = new gql.AgentStateMessage({\n id: \"agent-state-1\",\n agentName: \"testAgent\",\n state: { status: \"running\" },\n role: gql.Role.Assistant,\n });\n const aguiMsgs = gqlToAGUI([agentStateMsg]);\n const gqlMsgs2 = aguiToGQL(aguiMsgs);\n expect(gqlMsgs2[0].id).toBe(\"agent-state-1\");\n // The agentName should be preserved in the roundtrip\n expect((gqlMsgs2[0] as any).agentName).toBe(\"testAgent\");\n });\n\n test(\"action execution with render function roundtrip\", () => {\n const mockRender = vi.fn();\n const aguiMsg: agui.Message = {\n id: \"assistant-1\",\n role: \"assistant\",\n content: \"Running action\",\n toolCalls: [\n {\n id: \"tool-call-1\",\n type: \"function\",\n function: {\n name: \"doSomething\",\n arguments: JSON.stringify({ foo: \"bar\" }),\n },\n },\n ],\n generativeUI: mockRender,\n };\n const actions: Record<string, any> = {\n doSomething: { name: \"doSomething\" },\n };\n const gqlMsgs = aguiToGQL(aguiMsg, actions);\n const aguiMsgs2 = gqlToAGUI(gqlMsgs, actions);\n // The render function should be preserved in actions context\n expect(typeof actions.doSomething.render).toBe(\"function\");\n // The roundtripped message should have the same tool call\n if (\"toolCalls\" in aguiMsgs2[1]) {\n expect((aguiMsgs2[1] as any).toolCalls[0].function.name).toBe(\n \"doSomething\",\n );\n }\n });\n\n test(\"image message GQL -> AGUI -> GQL\", () => {\n const gqlMsg = new gql.ImageMessage({\n id: \"img-1\",\n format: \"jpeg\",\n bytes: \"somebase64string\",\n role: gql.Role.User,\n });\n const aguiMsgs = gqlToAGUI(gqlMsg);\n const gqlMsgs2 = aguiToGQL(aguiMsgs);\n expect(gqlMsgs2[0].id).toBe(gqlMsg.id);\n expect((gqlMsgs2[0] as any).format).toBe(gqlMsg.format);\n expect((gqlMsgs2[0] as any).bytes).toBe(gqlMsg.bytes);\n expect((gqlMsgs2[0] as any).role).toBe(gqlMsg.role);\n });\n\n test(\"image message AGUI -> GQL -> AGUI (assistant and user)\", () => {\n // Assistant image message\n const aguiAssistantImageMsg: agui.Message = {\n id: \"img-assistant-1\",\n role: \"assistant\",\n image: {\n format: \"jpeg\",\n bytes: \"assistantbase64data\",\n },\n content: \"\", // required for type\n };\n const gqlAssistantMsgs = aguiToGQL(aguiAssistantImageMsg);\n const aguiAssistantMsgs2 = gqlToAGUI(gqlAssistantMsgs);\n expect(aguiAssistantMsgs2[0].id).toBe(aguiAssistantImageMsg.id);\n expect(aguiAssistantMsgs2[0].role).toBe(\"assistant\");\n expect((aguiAssistantMsgs2[0] as any).image.format).toBe(\"jpeg\");\n expect((aguiAssistantMsgs2[0] as any).image.bytes).toBe(\n \"assistantbase64data\",\n );\n\n // User image message\n const aguiUserImageMsg: agui.Message = {\n id: \"img-user-1\",\n role: \"user\",\n image: {\n format: \"png\",\n bytes: \"userbase64data\",\n },\n content: \"\", // required for type\n };\n const gqlUserMsgs = aguiToGQL(aguiUserImageMsg);\n const aguiUserMsgs2 = gqlToAGUI(gqlUserMsgs);\n expect(aguiUserMsgs2[0].id).toBe(aguiUserImageMsg.id);\n expect(aguiUserMsgs2[0].role).toBe(\"user\");\n expect((aguiUserMsgs2[0] as any).image.format).toBe(\"png\");\n expect((aguiUserMsgs2[0] as any).image.bytes).toBe(\"userbase64data\");\n });\n\n test(\"wild card action roundtrip conversion\", () => {\n const mockRender = vi.fn(\n (props) => `Wildcard rendered: ${props.args.test}`,\n );\n const aguiMsg: agui.Message = {\n id: \"assistant-wildcard-1\",\n role: \"assistant\",\n content: \"Running wild card action\",\n toolCalls: [\n {\n id: \"tool-call-wildcard-1\",\n type: \"function\",\n function: {\n name: \"unknownAction\",\n arguments: JSON.stringify({ test: \"wildcard-value\" }),\n },\n },\n ],\n generativeUI: mockRender,\n };\n\n const actions: Record<string, any> = {\n \"*\": { name: \"*\" },\n };\n\n // AGUI -> GQL -> AGUI roundtrip\n const gqlMsgs = aguiToGQL(aguiMsg, actions);\n const aguiMsgs2 = gqlToAGUI(gqlMsgs, actions);\n\n // Verify the wild card action preserved the render function\n expect(typeof actions[\"*\"].render).toBe(\"function\");\n expect(actions[\"*\"].render).toBe(mockRender);\n\n // Verify the roundtripped message structure\n expect(aguiMsgs2).toHaveLength(2);\n expect(aguiMsgs2[0].role).toBe(\"assistant\");\n expect(aguiMsgs2[1].role).toBe(\"assistant\");\n\n // Check that the tool call is preserved\n if (\"toolCalls\" in aguiMsgs2[1]) {\n expect((aguiMsgs2[1] as any).toolCalls[0].function.name).toBe(\n \"unknownAction\",\n );\n expect((aguiMsgs2[1] as any).toolCalls[0].function.arguments).toBe(\n '{\"test\":\"wildcard-value\"}',\n );\n }\n });\n\n test(\"wild card action with specific action priority roundtrip\", () => {\n const mockRender = vi.fn(\n (props) => `Specific action rendered: ${props.args.test}`,\n );\n const aguiMsg: agui.Message = {\n id: \"assistant-priority-1\",\n role: \"assistant\",\n content: \"Running specific action\",\n toolCalls: [\n {\n id: \"tool-call-priority-1\",\n type: \"function\",\n function: {\n name: \"specificAction\",\n arguments: JSON.stringify({ test: \"specific-value\" }),\n },\n },\n ],\n generativeUI: mockRender,\n };\n\n const actions: Record<string, any> = {\n specificAction: { name: \"specificAction\" },\n \"*\": { name: \"*\" },\n };\n\n // AGUI -> GQL -> AGUI roundtrip\n const gqlMsgs = aguiToGQL(aguiMsg, actions);\n const aguiMsgs2 = gqlToAGUI(gqlMsgs, actions);\n\n // Verify the specific action preserved the render function (not wild card)\n expect(typeof actions.specificAction.render).toBe(\"function\");\n expect(actions.specificAction.render).toBe(mockRender);\n expect(actions[\"*\"].render).toBeUndefined();\n\n // Verify the roundtripped message structure\n expect(aguiMsgs2).toHaveLength(2);\n expect(aguiMsgs2[0].role).toBe(\"assistant\");\n expect(aguiMsgs2[1].role).toBe(\"assistant\");\n\n // Check that the tool call is preserved\n if (\"toolCalls\" in aguiMsgs2[1]) {\n expect((aguiMsgs2[1] as any).toolCalls[0].function.name).toBe(\n \"specificAction\",\n );\n expect((aguiMsgs2[1] as any).toolCalls[0].function.arguments).toBe(\n '{\"test\":\"specific-value\"}',\n );\n }\n });\n\n test(\"wild card action GQL -> AGUI -> GQL roundtrip\", () => {\n const actionExecMsg = new gql.ActionExecutionMessage({\n id: \"wildcard-action-1\",\n name: \"unknownAction\",\n arguments: { test: \"wildcard-gql-value\" },\n parentMessageId: \"assistant-1\",\n });\n\n const actions: Record<string, any> = {\n \"*\": {\n name: \"*\",\n render: vi.fn((props) => `GQL wildcard rendered: ${props.args.test}`),\n },\n };\n\n // GQL -> AGUI -> GQL roundtrip\n const aguiMsgs = gqlToAGUI([actionExecMsg], actions);\n const gqlMsgs2 = aguiToGQL(aguiMsgs, actions);\n\n // When converting ActionExecutionMessage to AGUI and back, we get:\n // 1. A TextMessage (assistant message with toolCalls)\n // 2. An ActionExecutionMessage (the tool call itself)\n expect(gqlMsgs2).toHaveLength(2);\n expect(gqlMsgs2[0].id).toBe(\"wildcard-action-1\");\n expect((gqlMsgs2[0] as any).role).toBe(gql.Role.Assistant);\n expect(gqlMsgs2[1].id).toBe(\"wildcard-action-1\");\n expect((gqlMsgs2[1] as any).name).toBe(\"unknownAction\");\n expect((gqlMsgs2[1] as any).arguments).toEqual({\n test: \"wildcard-gql-value\",\n });\n });\n\n test(\"roundtrip conversion with result parsing edge cases\", () => {\n // Test with a tool result that contains a JSON string\n const toolResultMsg: agui.Message = {\n id: \"tool-result-json\",\n role: \"tool\",\n content: '{\"status\": \"success\", \"data\": {\"value\": 42}}',\n toolCallId: \"tool-call-json\",\n toolName: \"jsonAction\",\n };\n\n // Convert AGUI -> GQL -> AGUI\n const gqlMsgs = aguiToGQL(toolResultMsg);\n const aguiMsgs = gqlToAGUI(gqlMsgs);\n\n expect(gqlMsgs).toHaveLength(1);\n expect(gqlMsgs[0]).toBeInstanceOf(gql.ResultMessage);\n expect((gqlMsgs[0] as any).result).toBe(\n '{\"status\": \"success\", \"data\": {\"value\": 42}}',\n );\n\n expect(aguiMsgs).toHaveLength(1);\n expect(aguiMsgs[0].role).toBe(\"tool\");\n expect(aguiMsgs[0].content).toBe(\n '{\"status\": \"success\", \"data\": {\"value\": 42}}',\n );\n });\n\n test(\"roundtrip conversion with object content in tool results\", () => {\n // Test with a tool result that has object content (edge case)\n const toolResultMsg: agui.Message = {\n id: \"tool-result-object\",\n role: \"tool\",\n content: { status: \"success\", data: { value: 42 } } as any,\n toolCallId: \"tool-call-object\",\n toolName: \"objectAction\",\n };\n\n // Convert AGUI -> GQL -> AGUI\n const gqlMsgs = aguiToGQL(toolResultMsg);\n const aguiMsgs = gqlToAGUI(gqlMsgs);\n\n expect(gqlMsgs).toHaveLength(1);\n expect(gqlMsgs[0]).toBeInstanceOf(gql.ResultMessage);\n expect((gqlMsgs[0] as any).result).toBe(\n '{\"status\":\"success\",\"data\":{\"value\":42}}',\n );\n\n expect(aguiMsgs).toHaveLength(1);\n expect(aguiMsgs[0].role).toBe(\"tool\");\n expect(aguiMsgs[0].content).toBe(\n '{\"status\":\"success\",\"data\":{\"value\":42}}',\n );\n });\n\n test(\"roundtrip conversion with action execution and result parsing\", () => {\n const mockRender = vi.fn(\n (props) => `Rendered: ${JSON.stringify(props.result)}`,\n );\n\n // Create action execution message\n const actionExecMsg = new gql.ActionExecutionMessage({\n id: \"action-with-result\",\n name: \"testAction\",\n arguments: { input: \"test-value\" },\n parentMessageId: \"parent-result\",\n });\n\n // Create result message\n const resultMsg = new gql.ResultMessage({\n id: \"result-with-json\",\n result: '{\"output\": \"processed\", \"count\": 5}',\n actionExecutionId: \"action-with-result\",\n actionName: \"testAction\",\n });\n\n const actions = {\n testAction: {\n name: \"testAction\",\n render: mockRender,\n },\n };\n\n // Convert GQL -> AGUI\n const aguiMsgs = gqlToAGUI([actionExecMsg, resultMsg], actions);\n\n // The action execution should have a generativeUI function that parses string results\n expect(aguiMsgs).toHaveLength(2);\n expect(aguiMsgs[0].role).toBe(\"assistant\");\n expect(\"generativeUI\" in aguiMsgs[0]).toBe(true);\n expect(aguiMsgs[1].role).toBe(\"tool\");\n expect(aguiMsgs[1].content).toBe('{\"output\": \"processed\", \"count\": 5}');\n\n // Test that the render function receives parsed results\n if (\"generativeUI\" in aguiMsgs[0] && aguiMsgs[0].generativeUI) {\n aguiMsgs[0].generativeUI({ result: '{\"parsed\": true}' });\n expect(mockRender).toHaveBeenCalledWith(\n expect.objectContaining({\n result: { parsed: true }, // Should be parsed from string\n }),\n );\n }\n\n // Convert back AGUI -> GQL\n const gqlMsgs2 = aguiToGQL(aguiMsgs, actions);\n\n // Should have 3 messages: TextMessage, ActionExecutionMessage, ResultMessage\n expect(gqlMsgs2).toHaveLength(3);\n expect(gqlMsgs2[0]).toBeInstanceOf(gql.TextMessage);\n expect(gqlMsgs2[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect(gqlMsgs2[2]).toBeInstanceOf(gql.ResultMessage);\n\n // Check that arguments roundtripped correctly\n expect((gqlMsgs2[1] as any).arguments).toEqual({ input: \"test-value\" });\n expect((gqlMsgs2[2] as any).result).toBe(\n '{\"output\": \"processed\", \"count\": 5}',\n );\n });\n\n test(\"roundtrip conversion verifies correct property distribution for regular actions\", () => {\n const mockRender = vi.fn(\n (props) => `Regular action: ${JSON.stringify(props.args)}`,\n );\n\n const actionExecMsg = new gql.ActionExecutionMessage({\n id: \"regular-action-test\",\n name: \"regularAction\",\n arguments: { test: \"regular-value\" },\n parentMessageId: \"parent-regular\",\n });\n\n const actions = {\n regularAction: {\n name: \"regularAction\",\n render: mockRender,\n },\n };\n\n // GQL -> AGUI -> GQL roundtrip\n const aguiMsgs = gqlToAGUI([actionExecMsg], actions);\n const gqlMsgs2 = aguiToGQL(aguiMsgs, actions);\n\n // Verify the roundtrip preserved the action\n expect(gqlMsgs2).toHaveLength(2);\n expect(gqlMsgs2[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect((gqlMsgs2[1] as any).name).toBe(\"regularAction\");\n\n // Test that regular actions do NOT receive the name property in render props\n if (\"generativeUI\" in aguiMsgs[0] && aguiMsgs[0].generativeUI) {\n aguiMsgs[0].generativeUI();\n expect(mockRender).toHaveBeenCalledWith(\n expect.objectContaining({\n args: { test: \"regular-value\" },\n // name property should NOT be present for regular actions\n }),\n );\n\n // Verify name property is NOT present\n const callArgs = mockRender.mock.calls[0][0];\n expect(callArgs).not.toHaveProperty(\"name\");\n }\n });\n\n test(\"roundtrip conversion verifies correct property distribution for wildcard actions\", () => {\n const mockRender = vi.fn(\n (props) =>\n `Wildcard action: ${props.name} with ${JSON.stringify(props.args)}`,\n );\n\n const actionExecMsg = new gql.ActionExecutionMessage({\n id: \"wildcard-action-test\",\n name: \"unknownAction\",\n arguments: { test: \"wildcard-value\" },\n parentMessageId: \"parent-wildcard\",\n });\n\n const actions = {\n \"*\": {\n name: \"*\",\n render: mockRender,\n },\n };\n\n // GQL -> AGUI -> GQL roundtrip\n const aguiMsgs = gqlToAGUI([actionExecMsg], actions);\n const gqlMsgs2 = aguiToGQL(aguiMsgs, actions);\n\n // Verify the roundtrip preserved the action\n expect(gqlMsgs2).toHaveLength(2);\n expect(gqlMsgs2[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect((gqlMsgs2[1] as any).name).toBe(\"unknownAction\");\n\n // Test that wildcard actions DO receive the name property in render props\n if (\"generativeUI\" in aguiMsgs[0] && aguiMsgs[0].generativeUI) {\n aguiMsgs[0].generativeUI();\n expect(mockRender).toHaveBeenCalledWith(\n expect.objectContaining({\n args: { test: \"wildcard-value\" },\n name: \"unknownAction\", // name property SHOULD be present for wildcard actions\n }),\n );\n\n // Verify name property IS present\n const callArgs = mockRender.mock.calls[0][0];\n expect(callArgs).toHaveProperty(\"name\", \"unknownAction\");\n }\n });\n});\n"],"mappings":"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","names":[]}
package/jest.config.js DELETED
@@ -1,5 +0,0 @@
1
- /** @type {import('ts-jest').JestConfigWithTsJest} */
2
- module.exports = {
3
- preset: 'ts-jest',
4
- testEnvironment: 'node',
5
- };
package/rollup.config.mjs DELETED
@@ -1,62 +0,0 @@
1
- import resolve from '@rollup/plugin-node-resolve';
2
- import commonjs from '@rollup/plugin-commonjs';
3
- import typescript from '@rollup/plugin-typescript';
4
- import terser from '@rollup/plugin-terser';
5
- import json from '@rollup/plugin-json';
6
-
7
- function onwarn(warning, warn) {
8
- // Ignore circular dependency warnings from node_modules
9
- if (warning.code === 'CIRCULAR_DEPENDENCY' && warning.ids?.some(id => id.includes('node_modules'))) return;
10
- // Ignore "this" rewritten to "undefined" warnings from node_modules
11
- if (warning.code === 'THIS_IS_UNDEFINED' && warning.id?.includes('node_modules')) return;
12
- // Ignore TypeScript module/moduleResolution mismatch warning
13
- if (warning.code === 'PLUGIN_WARNING' && warning.message?.includes('TS5110')) return;
14
- warn(warning);
15
- }
16
-
17
- export default {
18
- input: 'src/index.ts',
19
- output: {
20
- file: 'dist/index.umd.js',
21
- format: 'umd',
22
- name: 'CopilotKitRuntimeClientGQL',
23
- sourcemap: true,
24
- inlineDynamicImports: true,
25
- globals: {
26
- 'react': 'React',
27
- '@copilotkit/runtime': 'CopilotKitRuntime',
28
- '@copilotkit/shared': 'CopilotKitShared',
29
- 'urql': 'Urql',
30
- '@urql/core': 'UrqlCore',
31
- 'graphql': 'GraphQL',
32
- },
33
- },
34
- external: [
35
- 'react',
36
- '@copilotkit/runtime',
37
- '@copilotkit/shared',
38
- 'urql',
39
- '@urql/core',
40
- 'graphql',
41
- ],
42
- onwarn,
43
- plugins: [
44
- resolve({ browser: true }),
45
- commonjs(),
46
- json(),
47
- typescript({
48
- tsconfig: './tsconfig.json',
49
- declaration: false,
50
- declarationMap: false,
51
- declarationDir: undefined,
52
- compilerOptions: {
53
- declaration: false,
54
- declarationMap: false,
55
- declarationDir: undefined,
56
- target: 'ES2017',
57
- module: 'ESNext',
58
- },
59
- }),
60
- terser(),
61
- ],
62
- };
package/tsup.config.ts DELETED
@@ -1,12 +0,0 @@
1
- import { defineConfig, Options } from "tsup";
2
-
3
- export default defineConfig((options: Options) => ({
4
- entry: ["src/**/*.{ts,tsx}"],
5
- format: ["esm", "cjs"],
6
- dts: true,
7
- minify: false,
8
- external: ["react"],
9
- sourcemap: true,
10
- exclude: ["**/*.test.ts", "**/*.test.tsx", "**/__tests__/*"],
11
- ...options,
12
- }));