@copilotkit/runtime-client-gql 0.0.0-main-20260220223427 → 0.0.0-main-20260402184302
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.
- package/CHANGELOG.md +267 -3
- package/dist/client/conversion.cjs +6 -1
- package/dist/client/conversion.cjs.map +1 -1
- package/dist/client/conversion.mjs +6 -1
- package/dist/client/conversion.mjs.map +1 -1
- package/dist/index.umd.js +13 -4
- package/dist/index.umd.js.map +1 -1
- package/dist/message-conversion/agui-to-gql.cjs +6 -2
- package/dist/message-conversion/agui-to-gql.cjs.map +1 -1
- package/dist/message-conversion/agui-to-gql.d.cts +1 -1
- package/dist/message-conversion/agui-to-gql.d.cts.map +1 -1
- package/dist/message-conversion/agui-to-gql.d.mts +1 -1
- package/dist/message-conversion/agui-to-gql.d.mts.map +1 -1
- package/dist/message-conversion/agui-to-gql.mjs +6 -2
- package/dist/message-conversion/agui-to-gql.mjs.map +1 -1
- package/dist/message-conversion/gql-to-agui.cjs.map +1 -1
- package/dist/message-conversion/gql-to-agui.d.cts +1 -1
- package/dist/message-conversion/gql-to-agui.d.mts +1 -1
- package/dist/message-conversion/gql-to-agui.mjs.map +1 -1
- package/dist/package.cjs +1 -1
- package/dist/package.mjs +1 -1
- package/package.json +27 -28
- package/project.json +4 -0
- package/src/client/__tests__/conversion.test.ts +64 -0
- package/src/client/conversion.ts +13 -1
- package/src/message-conversion/agui-to-gql.test.ts +20 -1
- package/src/message-conversion/agui-to-gql.ts +15 -5
- package/src/message-conversion/gql-to-agui.ts +1 -1
- package/src/message-conversion/roundtrip-conversion.test.ts +1 -1
- package/tsconfig.json +1 -1
- package/tsdown.config.ts +0 -2
- package/vitest.config.mjs +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,263 @@
|
|
|
1
1
|
# @copilotkit/runtime-client-gql
|
|
2
2
|
|
|
3
|
-
## 0.0.0-main-
|
|
3
|
+
## 0.0.0-main-20260402184302
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 1ceb963: refactor: consolidate V1/V2 packages into flat @copilotkit/\* structure
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [1ceb963]
|
|
12
|
+
- @copilotkit/shared@0.0.0-main-20260402184302
|
|
13
|
+
|
|
14
|
+
## 1.55.0-next.8
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- @copilotkit/shared@1.55.0-next.8
|
|
19
|
+
|
|
20
|
+
## 1.55.0-next.7
|
|
21
|
+
|
|
22
|
+
### Minor Changes
|
|
23
|
+
|
|
24
|
+
- 1ceb963: refactor: consolidate V1/V2 packages into flat @copilotkit/\* structure
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- Updated dependencies [1ceb963]
|
|
29
|
+
- @copilotkit/shared@1.55.0-next.7
|
|
30
|
+
|
|
31
|
+
## 1.54.1-next.6
|
|
32
|
+
|
|
33
|
+
### Patch Changes
|
|
34
|
+
|
|
35
|
+
- @copilotkit/shared@1.54.1-next.6
|
|
36
|
+
|
|
37
|
+
## 1.54.1-next.5
|
|
38
|
+
|
|
39
|
+
### Patch Changes
|
|
40
|
+
|
|
41
|
+
- @copilotkit/shared@1.54.1-next.5
|
|
42
|
+
|
|
43
|
+
## 1.54.1-next.4
|
|
44
|
+
|
|
45
|
+
### Patch Changes
|
|
46
|
+
|
|
47
|
+
- @copilotkit/shared@1.54.1-next.4
|
|
48
|
+
|
|
49
|
+
## 1.54.1-next.3
|
|
50
|
+
|
|
51
|
+
### Patch Changes
|
|
52
|
+
|
|
53
|
+
- @copilotkit/shared@1.54.1-next.3
|
|
54
|
+
|
|
55
|
+
## 1.54.1-next.2
|
|
56
|
+
|
|
57
|
+
### Patch Changes
|
|
58
|
+
|
|
59
|
+
- @copilotkit/shared@1.54.1-next.2
|
|
60
|
+
|
|
61
|
+
## 1.54.1-next.1
|
|
62
|
+
|
|
63
|
+
### Patch Changes
|
|
64
|
+
|
|
65
|
+
- @copilotkit/shared@1.54.1-next.1
|
|
66
|
+
|
|
67
|
+
## 1.54.1-next.0
|
|
4
68
|
|
|
5
69
|
### Patch Changes
|
|
6
70
|
|
|
71
|
+
- @copilotkit/shared@1.54.1-next.0
|
|
72
|
+
|
|
73
|
+
## 1.54.0
|
|
74
|
+
|
|
75
|
+
### Patch Changes
|
|
76
|
+
|
|
77
|
+
- @copilotkit/shared@1.54.0
|
|
78
|
+
|
|
79
|
+
## 1.54.0-next.9
|
|
80
|
+
|
|
81
|
+
### Patch Changes
|
|
82
|
+
|
|
83
|
+
- @copilotkit/shared@1.54.0-next.9
|
|
84
|
+
|
|
85
|
+
## 1.54.0-next.8
|
|
86
|
+
|
|
87
|
+
### Patch Changes
|
|
88
|
+
|
|
89
|
+
- @copilotkit/shared@1.54.0-next.8
|
|
90
|
+
|
|
91
|
+
## 1.54.0-next.7
|
|
92
|
+
|
|
93
|
+
### Patch Changes
|
|
94
|
+
|
|
95
|
+
- @copilotkit/shared@1.54.0-next.7
|
|
96
|
+
|
|
97
|
+
## 1.54.0-next.6
|
|
98
|
+
|
|
99
|
+
### Patch Changes
|
|
100
|
+
|
|
101
|
+
- @copilotkit/shared@1.54.0-next.6
|
|
102
|
+
|
|
103
|
+
## 1.54.0-next.5
|
|
104
|
+
|
|
105
|
+
### Patch Changes
|
|
106
|
+
|
|
107
|
+
- @copilotkit/shared@1.54.0-next.5
|
|
108
|
+
|
|
109
|
+
## 1.54.0-next.4
|
|
110
|
+
|
|
111
|
+
### Patch Changes
|
|
112
|
+
|
|
113
|
+
- @copilotkit/shared@1.54.0-next.4
|
|
114
|
+
|
|
115
|
+
## 1.54.0-next.3
|
|
116
|
+
|
|
117
|
+
### Patch Changes
|
|
118
|
+
|
|
119
|
+
- @copilotkit/shared@1.54.0-next.3
|
|
120
|
+
|
|
121
|
+
## 1.53.1-next.2
|
|
122
|
+
|
|
123
|
+
### Patch Changes
|
|
124
|
+
|
|
125
|
+
- @copilotkit/shared@1.53.1-next.2
|
|
126
|
+
|
|
127
|
+
## 1.53.1-next.1
|
|
128
|
+
|
|
129
|
+
### Patch Changes
|
|
130
|
+
|
|
131
|
+
- @copilotkit/shared@1.53.1-next.1
|
|
132
|
+
|
|
133
|
+
## 1.53.1-next.0
|
|
134
|
+
|
|
135
|
+
### Patch Changes
|
|
136
|
+
|
|
137
|
+
- @copilotkit/shared@1.53.1-next.0
|
|
138
|
+
|
|
139
|
+
## 1.53.0
|
|
140
|
+
|
|
141
|
+
### Patch Changes
|
|
142
|
+
|
|
143
|
+
- Updated dependencies [1510f64]
|
|
144
|
+
- Updated dependencies [bf1fc6f]
|
|
145
|
+
- @copilotkit/shared@1.53.0
|
|
146
|
+
|
|
147
|
+
## 1.53.0-next.6
|
|
148
|
+
|
|
149
|
+
### Patch Changes
|
|
150
|
+
|
|
151
|
+
- @copilotkit/shared@1.53.0-next.6
|
|
152
|
+
|
|
153
|
+
## 1.53.0-next.5
|
|
154
|
+
|
|
155
|
+
### Patch Changes
|
|
156
|
+
|
|
157
|
+
- @copilotkit/shared@1.53.0-next.5
|
|
158
|
+
|
|
159
|
+
## 1.52.2-next.4
|
|
160
|
+
|
|
161
|
+
### Patch Changes
|
|
162
|
+
|
|
163
|
+
- @copilotkit/shared@1.52.2-next.4
|
|
164
|
+
|
|
165
|
+
## 1.52.2-next.3
|
|
166
|
+
|
|
167
|
+
### Patch Changes
|
|
168
|
+
|
|
169
|
+
- Updated dependencies [1510f64]
|
|
170
|
+
- @copilotkit/shared@1.52.2-next.3
|
|
171
|
+
|
|
172
|
+
## 1.52.2-next.2
|
|
173
|
+
|
|
174
|
+
### Patch Changes
|
|
175
|
+
|
|
176
|
+
- Updated dependencies [8e0f94f]
|
|
177
|
+
- @copilotkit/runtime@1.52.2-next.2
|
|
178
|
+
- @copilotkit/shared@1.52.2-next.2
|
|
179
|
+
|
|
180
|
+
## 1.52.2-next.1
|
|
181
|
+
|
|
182
|
+
### Patch Changes
|
|
183
|
+
|
|
184
|
+
- Updated dependencies [d1f7aba]
|
|
185
|
+
- Updated dependencies [bf1fc6f]
|
|
186
|
+
- @copilotkit/runtime@1.52.2-next.1
|
|
187
|
+
- @copilotkit/shared@1.52.2-next.1
|
|
188
|
+
|
|
189
|
+
## 1.52.2-next.0
|
|
190
|
+
|
|
191
|
+
### Patch Changes
|
|
192
|
+
|
|
193
|
+
- @copilotkit/runtime@1.52.2-next.0
|
|
194
|
+
- @copilotkit/shared@1.52.2-next.0
|
|
195
|
+
|
|
196
|
+
## 1.52.1
|
|
197
|
+
|
|
198
|
+
### Patch Changes
|
|
199
|
+
|
|
200
|
+
- @copilotkit/runtime@1.52.1
|
|
201
|
+
- @copilotkit/shared@1.52.1
|
|
202
|
+
|
|
203
|
+
## 1.52.1-next.1
|
|
204
|
+
|
|
205
|
+
### Patch Changes
|
|
206
|
+
|
|
207
|
+
- @copilotkit/runtime@1.52.1-next.1
|
|
208
|
+
- @copilotkit/shared@1.52.1-next.1
|
|
209
|
+
|
|
210
|
+
## 1.52.1-next.0
|
|
211
|
+
|
|
212
|
+
### Patch Changes
|
|
213
|
+
|
|
214
|
+
- @copilotkit/runtime@1.52.1-next.0
|
|
215
|
+
- @copilotkit/shared@1.52.1-next.0
|
|
216
|
+
|
|
217
|
+
## 1.52.0
|
|
218
|
+
|
|
219
|
+
### Patch Changes
|
|
220
|
+
|
|
221
|
+
- Updated dependencies [6dd6c84]
|
|
7
222
|
- Updated dependencies [ef0f539]
|
|
8
|
-
- @copilotkit/runtime@
|
|
9
|
-
- @copilotkit/shared@
|
|
223
|
+
- @copilotkit/runtime@1.52.0
|
|
224
|
+
- @copilotkit/shared@1.52.0
|
|
225
|
+
|
|
226
|
+
## 1.52.0-next.8
|
|
227
|
+
|
|
228
|
+
### Patch Changes
|
|
229
|
+
|
|
230
|
+
- @copilotkit/runtime@1.52.0-next.8
|
|
231
|
+
- @copilotkit/shared@1.52.0-next.8
|
|
232
|
+
|
|
233
|
+
## 1.52.0-next.7
|
|
234
|
+
|
|
235
|
+
### Patch Changes
|
|
236
|
+
|
|
237
|
+
- @copilotkit/runtime@1.52.0-next.7
|
|
238
|
+
- @copilotkit/shared@1.52.0-next.7
|
|
239
|
+
|
|
240
|
+
## 1.52.0-next.6
|
|
241
|
+
|
|
242
|
+
### Patch Changes
|
|
243
|
+
|
|
244
|
+
- @copilotkit/runtime@1.52.0-next.6
|
|
245
|
+
- @copilotkit/shared@1.52.0-next.6
|
|
246
|
+
|
|
247
|
+
## 1.52.0-next.5
|
|
248
|
+
|
|
249
|
+
### Patch Changes
|
|
250
|
+
|
|
251
|
+
- Updated dependencies [6dd6c84]
|
|
252
|
+
- @copilotkit/runtime@1.52.0-next.5
|
|
253
|
+
- @copilotkit/shared@1.52.0-next.5
|
|
254
|
+
|
|
255
|
+
## 1.51.5-next.4
|
|
256
|
+
|
|
257
|
+
### Patch Changes
|
|
258
|
+
|
|
259
|
+
- @copilotkit/runtime@1.51.5-next.4
|
|
260
|
+
- @copilotkit/shared@1.51.5-next.4
|
|
10
261
|
|
|
11
262
|
## 1.51.5-next.3
|
|
12
263
|
|
|
@@ -712,6 +963,7 @@
|
|
|
712
963
|
- 7bf9dfa: - fix: address issue where catch-all tool renders don't work
|
|
713
964
|
|
|
714
965
|
Signed-off-by: Tyler Slaton <tyler@copilotkit.ai>
|
|
966
|
+
|
|
715
967
|
- @copilotkit/shared@1.10.1
|
|
716
968
|
|
|
717
969
|
## 1.10.1-next.2
|
|
@@ -727,6 +979,7 @@
|
|
|
727
979
|
- 76e2603: - fix: make tool call results be structured in generativeUI
|
|
728
980
|
|
|
729
981
|
Signed-off-by: Tyler Slaton <tyler@copilotkit.ai>
|
|
982
|
+
|
|
730
983
|
- @copilotkit/shared@1.10.1-next.1
|
|
731
984
|
|
|
732
985
|
## 1.10.1-next.0
|
|
@@ -736,6 +989,7 @@
|
|
|
736
989
|
- 7bf9dfa: - fix: address issue where catch-all tool renders don't work
|
|
737
990
|
|
|
738
991
|
Signed-off-by: Tyler Slaton <tyler@copilotkit.ai>
|
|
992
|
+
|
|
739
993
|
- @copilotkit/shared@1.10.1-next.0
|
|
740
994
|
|
|
741
995
|
## 1.10.0
|
|
@@ -748,12 +1002,14 @@
|
|
|
748
1002
|
agentic runtimes we acquired tech-debt that, with this PR, is being alleviated.
|
|
749
1003
|
|
|
750
1004
|
As such, the following features have been updated to be completely functional with Headless UI.
|
|
1005
|
+
|
|
751
1006
|
- Generative UI
|
|
752
1007
|
- Suggestions
|
|
753
1008
|
- Agentic Generative UI
|
|
754
1009
|
- Interrupts
|
|
755
1010
|
|
|
756
1011
|
In addition, a variety of QOL changes have been made.
|
|
1012
|
+
|
|
757
1013
|
- New AG-UI based message types
|
|
758
1014
|
- Inline code rendering is fixed
|
|
759
1015
|
|
|
@@ -856,12 +1112,14 @@
|
|
|
856
1112
|
agentic runtimes we acquired tech-debt that, with this PR, is being alleviated.
|
|
857
1113
|
|
|
858
1114
|
As such, the following features have been updated to be completely functional with Headless UI.
|
|
1115
|
+
|
|
859
1116
|
- Generative UI
|
|
860
1117
|
- Suggestions
|
|
861
1118
|
- Agentic Generative UI
|
|
862
1119
|
- Interrupts
|
|
863
1120
|
|
|
864
1121
|
In addition, a variety of QOL changes have been made.
|
|
1122
|
+
|
|
865
1123
|
- New AG-UI based message types
|
|
866
1124
|
- Inline code rendering is fixed
|
|
867
1125
|
|
|
@@ -1838,6 +2096,7 @@
|
|
|
1838
2096
|
- 0dc0f43: - fix(runtime-client-gql): call controller.close() after suppressing abort errors
|
|
1839
2097
|
|
|
1840
2098
|
Signed-off-by: Tyler Slaton <tyler@copilotkit.ai>
|
|
2099
|
+
|
|
1841
2100
|
- @copilotkit/shared@1.5.15-next.5
|
|
1842
2101
|
|
|
1843
2102
|
## 1.5.15-next.4
|
|
@@ -2269,6 +2528,7 @@
|
|
|
2269
2528
|
- e16d95e: New prerelease
|
|
2270
2529
|
- 1721cbd: Add convertActionsToDynamicStructuredTools to sdk-js
|
|
2271
2530
|
- CopilotKit Core:
|
|
2531
|
+
|
|
2272
2532
|
- Improved error messages and overall logs
|
|
2273
2533
|
- `useCopilotAction.renderAndAwait` renamed to `.renderAndAwaitForResponse` (backwards compatible, will be deprecated in the future)
|
|
2274
2534
|
- Improved scrolling behavior. It is now possible to scroll up during LLM response generation
|
|
@@ -2276,6 +2536,7 @@
|
|
|
2276
2536
|
- Updated interfaces for better developer ergonomics
|
|
2277
2537
|
|
|
2278
2538
|
CoAgents:
|
|
2539
|
+
|
|
2279
2540
|
- Renamed `remoteActions` to `remoteEndpoints` (backwards compatible, will be deprecated in the future)
|
|
2280
2541
|
- Support for LangGraph Platform in Remote Endpoints
|
|
2281
2542
|
- LangGraph JS Support for CoAgents (locally via `langgraph dev`, `langgraph up` or deployed to LangGraph Platform)
|
|
@@ -2283,6 +2544,7 @@
|
|
|
2283
2544
|
- Enhanced state management and message handling
|
|
2284
2545
|
|
|
2285
2546
|
CopilotKid Back-end SDK:
|
|
2547
|
+
|
|
2286
2548
|
- Released a whole-new `@copilotkit/sdk-js` for building agents with LangGraph JS Support
|
|
2287
2549
|
|
|
2288
2550
|
- 8d0144f: bump
|
|
@@ -2649,6 +2911,7 @@ CopilotKid Back-end SDK:
|
|
|
2649
2911
|
### Patch Changes
|
|
2650
2912
|
|
|
2651
2913
|
- inject minified css in bundle
|
|
2914
|
+
|
|
2652
2915
|
- removes the need to import `styles.css` manually
|
|
2653
2916
|
- empty `styles.css` included in the build for backwards compatibility
|
|
2654
2917
|
- uses tsup's `injectStyles` with `postcss` to bundle and minify the CSS, then inject it as a style tag
|
|
@@ -2799,6 +3062,7 @@ CopilotKid Back-end SDK:
|
|
|
2799
3062
|
### Major Changes
|
|
2800
3063
|
|
|
2801
3064
|
- b6a4b6eb: V1.0 Release Candidate
|
|
3065
|
+
|
|
2802
3066
|
- A robust new protocol between the frontend and the Copilot Runtime
|
|
2803
3067
|
- Support for Copilot Cloud
|
|
2804
3068
|
- Generative UI
|
|
@@ -179,7 +179,12 @@ function loadMessagesFromJsonRepresentation(json) {
|
|
|
179
179
|
function getPartialArguments(args) {
|
|
180
180
|
try {
|
|
181
181
|
if (!args.length) return {};
|
|
182
|
-
|
|
182
|
+
const parsed = JSON.parse((0, untruncate_json.default)(args.join("")));
|
|
183
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
184
|
+
console.warn(`[CopilotKit] Tool arguments parsed to non-object (${typeof parsed}), falling back to empty object`);
|
|
185
|
+
return {};
|
|
186
|
+
}
|
|
187
|
+
return parsed;
|
|
183
188
|
} catch (e) {
|
|
184
189
|
return {};
|
|
185
190
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversion.cjs","names":["TextMessage","MessageStatusCode","ActionExecutionMessage","ResultMessage","AgentStateMessage","ImageMessage"],"sources":["../../src/client/conversion.ts"],"sourcesContent":["import {\n GenerateCopilotResponseMutation,\n MessageInput,\n MessageStatusCode,\n} from \"../graphql/@generated/graphql\";\nimport {\n ActionExecutionMessage,\n AgentStateMessage,\n Message,\n ResultMessage,\n TextMessage,\n ImageMessage,\n} from \"./types\";\n\nimport untruncateJson from \"untruncate-json\";\nimport { parseJson } from \"@copilotkit/shared\";\n\nexport function filterAgentStateMessages(messages: Message[]): Message[] {\n return messages.filter((message) => !message.isAgentStateMessage());\n}\n\nexport function convertMessagesToGqlInput(messages: Message[]): MessageInput[] {\n return messages.map((message) => {\n if (message.isTextMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n textMessage: {\n content: message.content,\n role: message.role as any,\n parentMessageId: message.parentMessageId,\n },\n };\n } else if (message.isActionExecutionMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n actionExecutionMessage: {\n name: message.name,\n arguments: JSON.stringify(message.arguments),\n parentMessageId: message.parentMessageId,\n },\n };\n } else if (message.isResultMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n resultMessage: {\n result: message.result,\n actionExecutionId: message.actionExecutionId,\n actionName: message.actionName,\n },\n };\n } else if (message.isAgentStateMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n agentStateMessage: {\n threadId: message.threadId,\n role: message.role,\n agentName: message.agentName,\n nodeName: message.nodeName,\n runId: message.runId,\n active: message.active,\n running: message.running,\n state: JSON.stringify(message.state),\n },\n };\n } else if (message.isImageMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n imageMessage: {\n format: message.format,\n bytes: message.bytes,\n role: message.role as any,\n parentMessageId: message.parentMessageId,\n },\n };\n } else {\n throw new Error(\"Unknown message type\");\n }\n });\n}\n\nexport function filterAdjacentAgentStateMessages(\n messages: GenerateCopilotResponseMutation[\"generateCopilotResponse\"][\"messages\"],\n): GenerateCopilotResponseMutation[\"generateCopilotResponse\"][\"messages\"] {\n const filteredMessages: GenerateCopilotResponseMutation[\"generateCopilotResponse\"][\"messages\"] =\n [];\n\n messages.forEach((message, i) => {\n // keep all other message types\n if (message.__typename !== \"AgentStateMessageOutput\") {\n filteredMessages.push(message);\n } else {\n const prevAgentStateMessageIndex = filteredMessages.findIndex(\n // TODO: also check runId\n (m) =>\n m.__typename === \"AgentStateMessageOutput\" &&\n m.agentName === message.agentName,\n );\n if (prevAgentStateMessageIndex === -1) {\n filteredMessages.push(message);\n } else {\n filteredMessages[prevAgentStateMessageIndex] = message;\n }\n }\n });\n\n return filteredMessages;\n}\n\nexport function convertGqlOutputToMessages(\n messages: GenerateCopilotResponseMutation[\"generateCopilotResponse\"][\"messages\"],\n): Message[] {\n return messages.map((message) => {\n if (message.__typename === \"TextMessageOutput\") {\n return new TextMessage({\n id: message.id,\n role: message.role,\n content: message.content.join(\"\"),\n parentMessageId: message.parentMessageId,\n createdAt: new Date(),\n status: message.status || { code: MessageStatusCode.Pending },\n });\n } else if (message.__typename === \"ActionExecutionMessageOutput\") {\n return new ActionExecutionMessage({\n id: message.id,\n name: message.name,\n arguments: getPartialArguments(message.arguments),\n parentMessageId: message.parentMessageId,\n createdAt: new Date(),\n status: message.status || { code: MessageStatusCode.Pending },\n });\n } else if (message.__typename === \"ResultMessageOutput\") {\n return new ResultMessage({\n id: message.id,\n result: message.result,\n actionExecutionId: message.actionExecutionId,\n actionName: message.actionName,\n createdAt: new Date(),\n status: message.status || { code: MessageStatusCode.Pending },\n });\n } else if (message.__typename === \"AgentStateMessageOutput\") {\n return new AgentStateMessage({\n id: message.id,\n threadId: message.threadId,\n role: message.role,\n agentName: message.agentName,\n nodeName: message.nodeName,\n runId: message.runId,\n active: message.active,\n running: message.running,\n state: parseJson(message.state, {}),\n createdAt: new Date(),\n });\n } else if (message.__typename === \"ImageMessageOutput\") {\n return new ImageMessage({\n id: message.id,\n format: message.format,\n bytes: message.bytes,\n role: message.role,\n parentMessageId: message.parentMessageId,\n createdAt: new Date(),\n status: message.status || { code: MessageStatusCode.Pending },\n });\n }\n\n throw new Error(\"Unknown message type\");\n });\n}\n\nexport function loadMessagesFromJsonRepresentation(json: any[]): Message[] {\n const result: Message[] = [];\n for (const item of json) {\n if (\"content\" in item) {\n result.push(\n new TextMessage({\n id: item.id,\n role: item.role,\n content: item.content,\n parentMessageId: item.parentMessageId,\n createdAt: item.createdAt || new Date(),\n status: item.status || { code: MessageStatusCode.Success },\n }),\n );\n } else if (\"arguments\" in item) {\n result.push(\n new ActionExecutionMessage({\n id: item.id,\n name: item.name,\n arguments: item.arguments,\n parentMessageId: item.parentMessageId,\n createdAt: item.createdAt || new Date(),\n status: item.status || { code: MessageStatusCode.Success },\n }),\n );\n } else if (\"result\" in item) {\n result.push(\n new ResultMessage({\n id: item.id,\n result: item.result,\n actionExecutionId: item.actionExecutionId,\n actionName: item.actionName,\n createdAt: item.createdAt || new Date(),\n status: item.status || { code: MessageStatusCode.Success },\n }),\n );\n } else if (\"state\" in item) {\n result.push(\n new AgentStateMessage({\n id: item.id,\n threadId: item.threadId,\n role: item.role,\n agentName: item.agentName,\n nodeName: item.nodeName,\n runId: item.runId,\n active: item.active,\n running: item.running,\n state: item.state,\n createdAt: item.createdAt || new Date(),\n }),\n );\n } else if (\"format\" in item && \"bytes\" in item) {\n result.push(\n new ImageMessage({\n id: item.id,\n format: item.format,\n bytes: item.bytes,\n role: item.role,\n parentMessageId: item.parentMessageId,\n createdAt: item.createdAt || new Date(),\n status: item.status || { code: MessageStatusCode.Success },\n }),\n );\n }\n }\n return result;\n}\n\nfunction getPartialArguments(args: string[]) {\n try {\n if (!args.length) return {};\n\n return JSON.parse(untruncateJson(args.join(\"\")));\n } catch (e) {\n return {};\n }\n}\n"],"mappings":";;;;;;;;AAiBA,SAAgB,yBAAyB,UAAgC;AACvE,QAAO,SAAS,QAAQ,YAAY,CAAC,QAAQ,qBAAqB,CAAC;;AAGrE,SAAgB,0BAA0B,UAAqC;AAC7E,QAAO,SAAS,KAAK,YAAY;AAC/B,MAAI,QAAQ,eAAe,CACzB,QAAO;GACL,IAAI,QAAQ;GACZ,WAAW,QAAQ;GACnB,aAAa;IACX,SAAS,QAAQ;IACjB,MAAM,QAAQ;IACd,iBAAiB,QAAQ;IAC1B;GACF;WACQ,QAAQ,0BAA0B,CAC3C,QAAO;GACL,IAAI,QAAQ;GACZ,WAAW,QAAQ;GACnB,wBAAwB;IACtB,MAAM,QAAQ;IACd,WAAW,KAAK,UAAU,QAAQ,UAAU;IAC5C,iBAAiB,QAAQ;IAC1B;GACF;WACQ,QAAQ,iBAAiB,CAClC,QAAO;GACL,IAAI,QAAQ;GACZ,WAAW,QAAQ;GACnB,eAAe;IACb,QAAQ,QAAQ;IAChB,mBAAmB,QAAQ;IAC3B,YAAY,QAAQ;IACrB;GACF;WACQ,QAAQ,qBAAqB,CACtC,QAAO;GACL,IAAI,QAAQ;GACZ,WAAW,QAAQ;GACnB,mBAAmB;IACjB,UAAU,QAAQ;IAClB,MAAM,QAAQ;IACd,WAAW,QAAQ;IACnB,UAAU,QAAQ;IAClB,OAAO,QAAQ;IACf,QAAQ,QAAQ;IAChB,SAAS,QAAQ;IACjB,OAAO,KAAK,UAAU,QAAQ,MAAM;IACrC;GACF;WACQ,QAAQ,gBAAgB,CACjC,QAAO;GACL,IAAI,QAAQ;GACZ,WAAW,QAAQ;GACnB,cAAc;IACZ,QAAQ,QAAQ;IAChB,OAAO,QAAQ;IACf,MAAM,QAAQ;IACd,iBAAiB,QAAQ;IAC1B;GACF;MAED,OAAM,IAAI,MAAM,uBAAuB;GAEzC;;AAGJ,SAAgB,iCACd,UACwE;CACxE,MAAM,mBACJ,EAAE;AAEJ,UAAS,SAAS,SAAS,MAAM;AAE/B,MAAI,QAAQ,eAAe,0BACzB,kBAAiB,KAAK,QAAQ;OACzB;GACL,MAAM,6BAA6B,iBAAiB,WAEjD,MACC,EAAE,eAAe,6BACjB,EAAE,cAAc,QAAQ,UAC3B;AACD,OAAI,+BAA+B,GACjC,kBAAiB,KAAK,QAAQ;OAE9B,kBAAiB,8BAA8B;;GAGnD;AAEF,QAAO;;AAGT,SAAgB,2BACd,UACW;AACX,QAAO,SAAS,KAAK,YAAY;AAC/B,MAAI,QAAQ,eAAe,oBACzB,QAAO,IAAIA,0BAAY;GACrB,IAAI,QAAQ;GACZ,MAAM,QAAQ;GACd,SAAS,QAAQ,QAAQ,KAAK,GAAG;GACjC,iBAAiB,QAAQ;GACzB,2BAAW,IAAI,MAAM;GACrB,QAAQ,QAAQ,UAAU,EAAE,MAAMC,kCAAkB,SAAS;GAC9D,CAAC;WACO,QAAQ,eAAe,+BAChC,QAAO,IAAIC,qCAAuB;GAChC,IAAI,QAAQ;GACZ,MAAM,QAAQ;GACd,WAAW,oBAAoB,QAAQ,UAAU;GACjD,iBAAiB,QAAQ;GACzB,2BAAW,IAAI,MAAM;GACrB,QAAQ,QAAQ,UAAU,EAAE,MAAMD,kCAAkB,SAAS;GAC9D,CAAC;WACO,QAAQ,eAAe,sBAChC,QAAO,IAAIE,4BAAc;GACvB,IAAI,QAAQ;GACZ,QAAQ,QAAQ;GAChB,mBAAmB,QAAQ;GAC3B,YAAY,QAAQ;GACpB,2BAAW,IAAI,MAAM;GACrB,QAAQ,QAAQ,UAAU,EAAE,MAAMF,kCAAkB,SAAS;GAC9D,CAAC;WACO,QAAQ,eAAe,0BAChC,QAAO,IAAIG,gCAAkB;GAC3B,IAAI,QAAQ;GACZ,UAAU,QAAQ;GAClB,MAAM,QAAQ;GACd,WAAW,QAAQ;GACnB,UAAU,QAAQ;GAClB,OAAO,QAAQ;GACf,QAAQ,QAAQ;GAChB,SAAS,QAAQ;GACjB,yCAAiB,QAAQ,OAAO,EAAE,CAAC;GACnC,2BAAW,IAAI,MAAM;GACtB,CAAC;WACO,QAAQ,eAAe,qBAChC,QAAO,IAAIC,2BAAa;GACtB,IAAI,QAAQ;GACZ,QAAQ,QAAQ;GAChB,OAAO,QAAQ;GACf,MAAM,QAAQ;GACd,iBAAiB,QAAQ;GACzB,2BAAW,IAAI,MAAM;GACrB,QAAQ,QAAQ,UAAU,EAAE,MAAMJ,kCAAkB,SAAS;GAC9D,CAAC;AAGJ,QAAM,IAAI,MAAM,uBAAuB;GACvC;;AAGJ,SAAgB,mCAAmC,MAAwB;CACzE,MAAM,SAAoB,EAAE;AAC5B,MAAK,MAAM,QAAQ,KACjB,KAAI,aAAa,KACf,QAAO,KACL,IAAID,0BAAY;EACd,IAAI,KAAK;EACT,MAAM,KAAK;EACX,SAAS,KAAK;EACd,iBAAiB,KAAK;EACtB,WAAW,KAAK,6BAAa,IAAI,MAAM;EACvC,QAAQ,KAAK,UAAU,EAAE,MAAMC,kCAAkB,SAAS;EAC3D,CAAC,CACH;UACQ,eAAe,KACxB,QAAO,KACL,IAAIC,qCAAuB;EACzB,IAAI,KAAK;EACT,MAAM,KAAK;EACX,WAAW,KAAK;EAChB,iBAAiB,KAAK;EACtB,WAAW,KAAK,6BAAa,IAAI,MAAM;EACvC,QAAQ,KAAK,UAAU,EAAE,MAAMD,kCAAkB,SAAS;EAC3D,CAAC,CACH;UACQ,YAAY,KACrB,QAAO,KACL,IAAIE,4BAAc;EAChB,IAAI,KAAK;EACT,QAAQ,KAAK;EACb,mBAAmB,KAAK;EACxB,YAAY,KAAK;EACjB,WAAW,KAAK,6BAAa,IAAI,MAAM;EACvC,QAAQ,KAAK,UAAU,EAAE,MAAMF,kCAAkB,SAAS;EAC3D,CAAC,CACH;UACQ,WAAW,KACpB,QAAO,KACL,IAAIG,gCAAkB;EACpB,IAAI,KAAK;EACT,UAAU,KAAK;EACf,MAAM,KAAK;EACX,WAAW,KAAK;EAChB,UAAU,KAAK;EACf,OAAO,KAAK;EACZ,QAAQ,KAAK;EACb,SAAS,KAAK;EACd,OAAO,KAAK;EACZ,WAAW,KAAK,6BAAa,IAAI,MAAM;EACxC,CAAC,CACH;UACQ,YAAY,QAAQ,WAAW,KACxC,QAAO,KACL,IAAIC,2BAAa;EACf,IAAI,KAAK;EACT,QAAQ,KAAK;EACb,OAAO,KAAK;EACZ,MAAM,KAAK;EACX,iBAAiB,KAAK;EACtB,WAAW,KAAK,6BAAa,IAAI,MAAM;EACvC,QAAQ,KAAK,UAAU,EAAE,MAAMJ,kCAAkB,SAAS;EAC3D,CAAC,CACH;AAGL,QAAO;;AAGT,SAAS,oBAAoB,MAAgB;AAC3C,KAAI;AACF,MAAI,CAAC,KAAK,OAAQ,QAAO,EAAE;AAE3B,SAAO,KAAK,mCAAqB,KAAK,KAAK,GAAG,CAAC,CAAC;UACzC,GAAG;AACV,SAAO,EAAE"}
|
|
1
|
+
{"version":3,"file":"conversion.cjs","names":["TextMessage","MessageStatusCode","ActionExecutionMessage","ResultMessage","AgentStateMessage","ImageMessage"],"sources":["../../src/client/conversion.ts"],"sourcesContent":["import {\n GenerateCopilotResponseMutation,\n MessageInput,\n MessageStatusCode,\n} from \"../graphql/@generated/graphql\";\nimport {\n ActionExecutionMessage,\n AgentStateMessage,\n Message,\n ResultMessage,\n TextMessage,\n ImageMessage,\n} from \"./types\";\n\nimport untruncateJson from \"untruncate-json\";\nimport { parseJson } from \"@copilotkit/shared\";\n\nexport function filterAgentStateMessages(messages: Message[]): Message[] {\n return messages.filter((message) => !message.isAgentStateMessage());\n}\n\nexport function convertMessagesToGqlInput(messages: Message[]): MessageInput[] {\n return messages.map((message) => {\n if (message.isTextMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n textMessage: {\n content: message.content,\n role: message.role as any,\n parentMessageId: message.parentMessageId,\n },\n };\n } else if (message.isActionExecutionMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n actionExecutionMessage: {\n name: message.name,\n arguments: JSON.stringify(message.arguments),\n parentMessageId: message.parentMessageId,\n },\n };\n } else if (message.isResultMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n resultMessage: {\n result: message.result,\n actionExecutionId: message.actionExecutionId,\n actionName: message.actionName,\n },\n };\n } else if (message.isAgentStateMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n agentStateMessage: {\n threadId: message.threadId,\n role: message.role,\n agentName: message.agentName,\n nodeName: message.nodeName,\n runId: message.runId,\n active: message.active,\n running: message.running,\n state: JSON.stringify(message.state),\n },\n };\n } else if (message.isImageMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n imageMessage: {\n format: message.format,\n bytes: message.bytes,\n role: message.role as any,\n parentMessageId: message.parentMessageId,\n },\n };\n } else {\n throw new Error(\"Unknown message type\");\n }\n });\n}\n\nexport function filterAdjacentAgentStateMessages(\n messages: GenerateCopilotResponseMutation[\"generateCopilotResponse\"][\"messages\"],\n): GenerateCopilotResponseMutation[\"generateCopilotResponse\"][\"messages\"] {\n const filteredMessages: GenerateCopilotResponseMutation[\"generateCopilotResponse\"][\"messages\"] =\n [];\n\n messages.forEach((message, i) => {\n // keep all other message types\n if (message.__typename !== \"AgentStateMessageOutput\") {\n filteredMessages.push(message);\n } else {\n const prevAgentStateMessageIndex = filteredMessages.findIndex(\n // TODO: also check runId\n (m) =>\n m.__typename === \"AgentStateMessageOutput\" &&\n m.agentName === message.agentName,\n );\n if (prevAgentStateMessageIndex === -1) {\n filteredMessages.push(message);\n } else {\n filteredMessages[prevAgentStateMessageIndex] = message;\n }\n }\n });\n\n return filteredMessages;\n}\n\nexport function convertGqlOutputToMessages(\n messages: GenerateCopilotResponseMutation[\"generateCopilotResponse\"][\"messages\"],\n): Message[] {\n return messages.map((message) => {\n if (message.__typename === \"TextMessageOutput\") {\n return new TextMessage({\n id: message.id,\n role: message.role,\n content: message.content.join(\"\"),\n parentMessageId: message.parentMessageId,\n createdAt: new Date(),\n status: message.status || { code: MessageStatusCode.Pending },\n });\n } else if (message.__typename === \"ActionExecutionMessageOutput\") {\n return new ActionExecutionMessage({\n id: message.id,\n name: message.name,\n arguments: getPartialArguments(message.arguments),\n parentMessageId: message.parentMessageId,\n createdAt: new Date(),\n status: message.status || { code: MessageStatusCode.Pending },\n });\n } else if (message.__typename === \"ResultMessageOutput\") {\n return new ResultMessage({\n id: message.id,\n result: message.result,\n actionExecutionId: message.actionExecutionId,\n actionName: message.actionName,\n createdAt: new Date(),\n status: message.status || { code: MessageStatusCode.Pending },\n });\n } else if (message.__typename === \"AgentStateMessageOutput\") {\n return new AgentStateMessage({\n id: message.id,\n threadId: message.threadId,\n role: message.role,\n agentName: message.agentName,\n nodeName: message.nodeName,\n runId: message.runId,\n active: message.active,\n running: message.running,\n state: parseJson(message.state, {}),\n createdAt: new Date(),\n });\n } else if (message.__typename === \"ImageMessageOutput\") {\n return new ImageMessage({\n id: message.id,\n format: message.format,\n bytes: message.bytes,\n role: message.role,\n parentMessageId: message.parentMessageId,\n createdAt: new Date(),\n status: message.status || { code: MessageStatusCode.Pending },\n });\n }\n\n throw new Error(\"Unknown message type\");\n });\n}\n\nexport function loadMessagesFromJsonRepresentation(json: any[]): Message[] {\n const result: Message[] = [];\n for (const item of json) {\n if (\"content\" in item) {\n result.push(\n new TextMessage({\n id: item.id,\n role: item.role,\n content: item.content,\n parentMessageId: item.parentMessageId,\n createdAt: item.createdAt || new Date(),\n status: item.status || { code: MessageStatusCode.Success },\n }),\n );\n } else if (\"arguments\" in item) {\n result.push(\n new ActionExecutionMessage({\n id: item.id,\n name: item.name,\n arguments: item.arguments,\n parentMessageId: item.parentMessageId,\n createdAt: item.createdAt || new Date(),\n status: item.status || { code: MessageStatusCode.Success },\n }),\n );\n } else if (\"result\" in item) {\n result.push(\n new ResultMessage({\n id: item.id,\n result: item.result,\n actionExecutionId: item.actionExecutionId,\n actionName: item.actionName,\n createdAt: item.createdAt || new Date(),\n status: item.status || { code: MessageStatusCode.Success },\n }),\n );\n } else if (\"state\" in item) {\n result.push(\n new AgentStateMessage({\n id: item.id,\n threadId: item.threadId,\n role: item.role,\n agentName: item.agentName,\n nodeName: item.nodeName,\n runId: item.runId,\n active: item.active,\n running: item.running,\n state: item.state,\n createdAt: item.createdAt || new Date(),\n }),\n );\n } else if (\"format\" in item && \"bytes\" in item) {\n result.push(\n new ImageMessage({\n id: item.id,\n format: item.format,\n bytes: item.bytes,\n role: item.role,\n parentMessageId: item.parentMessageId,\n createdAt: item.createdAt || new Date(),\n status: item.status || { code: MessageStatusCode.Success },\n }),\n );\n }\n }\n return result;\n}\n\nfunction getPartialArguments(args: string[]) {\n try {\n if (!args.length) return {};\n\n const parsed = JSON.parse(untruncateJson(args.join(\"\")));\n if (\n typeof parsed !== \"object\" ||\n parsed === null ||\n Array.isArray(parsed)\n ) {\n console.warn(\n `[CopilotKit] Tool arguments parsed to non-object (${typeof parsed}), falling back to empty object`,\n );\n return {};\n }\n return parsed;\n } catch (e) {\n // Incomplete JSON is expected during streaming — no warning needed\n return {};\n }\n}\n"],"mappings":"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"}
|
|
@@ -177,7 +177,12 @@ function loadMessagesFromJsonRepresentation(json) {
|
|
|
177
177
|
function getPartialArguments(args) {
|
|
178
178
|
try {
|
|
179
179
|
if (!args.length) return {};
|
|
180
|
-
|
|
180
|
+
const parsed = JSON.parse(untruncateJson(args.join("")));
|
|
181
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
182
|
+
console.warn(`[CopilotKit] Tool arguments parsed to non-object (${typeof parsed}), falling back to empty object`);
|
|
183
|
+
return {};
|
|
184
|
+
}
|
|
185
|
+
return parsed;
|
|
181
186
|
} catch (e) {
|
|
182
187
|
return {};
|
|
183
188
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversion.mjs","names":[],"sources":["../../src/client/conversion.ts"],"sourcesContent":["import {\n GenerateCopilotResponseMutation,\n MessageInput,\n MessageStatusCode,\n} from \"../graphql/@generated/graphql\";\nimport {\n ActionExecutionMessage,\n AgentStateMessage,\n Message,\n ResultMessage,\n TextMessage,\n ImageMessage,\n} from \"./types\";\n\nimport untruncateJson from \"untruncate-json\";\nimport { parseJson } from \"@copilotkit/shared\";\n\nexport function filterAgentStateMessages(messages: Message[]): Message[] {\n return messages.filter((message) => !message.isAgentStateMessage());\n}\n\nexport function convertMessagesToGqlInput(messages: Message[]): MessageInput[] {\n return messages.map((message) => {\n if (message.isTextMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n textMessage: {\n content: message.content,\n role: message.role as any,\n parentMessageId: message.parentMessageId,\n },\n };\n } else if (message.isActionExecutionMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n actionExecutionMessage: {\n name: message.name,\n arguments: JSON.stringify(message.arguments),\n parentMessageId: message.parentMessageId,\n },\n };\n } else if (message.isResultMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n resultMessage: {\n result: message.result,\n actionExecutionId: message.actionExecutionId,\n actionName: message.actionName,\n },\n };\n } else if (message.isAgentStateMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n agentStateMessage: {\n threadId: message.threadId,\n role: message.role,\n agentName: message.agentName,\n nodeName: message.nodeName,\n runId: message.runId,\n active: message.active,\n running: message.running,\n state: JSON.stringify(message.state),\n },\n };\n } else if (message.isImageMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n imageMessage: {\n format: message.format,\n bytes: message.bytes,\n role: message.role as any,\n parentMessageId: message.parentMessageId,\n },\n };\n } else {\n throw new Error(\"Unknown message type\");\n }\n });\n}\n\nexport function filterAdjacentAgentStateMessages(\n messages: GenerateCopilotResponseMutation[\"generateCopilotResponse\"][\"messages\"],\n): GenerateCopilotResponseMutation[\"generateCopilotResponse\"][\"messages\"] {\n const filteredMessages: GenerateCopilotResponseMutation[\"generateCopilotResponse\"][\"messages\"] =\n [];\n\n messages.forEach((message, i) => {\n // keep all other message types\n if (message.__typename !== \"AgentStateMessageOutput\") {\n filteredMessages.push(message);\n } else {\n const prevAgentStateMessageIndex = filteredMessages.findIndex(\n // TODO: also check runId\n (m) =>\n m.__typename === \"AgentStateMessageOutput\" &&\n m.agentName === message.agentName,\n );\n if (prevAgentStateMessageIndex === -1) {\n filteredMessages.push(message);\n } else {\n filteredMessages[prevAgentStateMessageIndex] = message;\n }\n }\n });\n\n return filteredMessages;\n}\n\nexport function convertGqlOutputToMessages(\n messages: GenerateCopilotResponseMutation[\"generateCopilotResponse\"][\"messages\"],\n): Message[] {\n return messages.map((message) => {\n if (message.__typename === \"TextMessageOutput\") {\n return new TextMessage({\n id: message.id,\n role: message.role,\n content: message.content.join(\"\"),\n parentMessageId: message.parentMessageId,\n createdAt: new Date(),\n status: message.status || { code: MessageStatusCode.Pending },\n });\n } else if (message.__typename === \"ActionExecutionMessageOutput\") {\n return new ActionExecutionMessage({\n id: message.id,\n name: message.name,\n arguments: getPartialArguments(message.arguments),\n parentMessageId: message.parentMessageId,\n createdAt: new Date(),\n status: message.status || { code: MessageStatusCode.Pending },\n });\n } else if (message.__typename === \"ResultMessageOutput\") {\n return new ResultMessage({\n id: message.id,\n result: message.result,\n actionExecutionId: message.actionExecutionId,\n actionName: message.actionName,\n createdAt: new Date(),\n status: message.status || { code: MessageStatusCode.Pending },\n });\n } else if (message.__typename === \"AgentStateMessageOutput\") {\n return new AgentStateMessage({\n id: message.id,\n threadId: message.threadId,\n role: message.role,\n agentName: message.agentName,\n nodeName: message.nodeName,\n runId: message.runId,\n active: message.active,\n running: message.running,\n state: parseJson(message.state, {}),\n createdAt: new Date(),\n });\n } else if (message.__typename === \"ImageMessageOutput\") {\n return new ImageMessage({\n id: message.id,\n format: message.format,\n bytes: message.bytes,\n role: message.role,\n parentMessageId: message.parentMessageId,\n createdAt: new Date(),\n status: message.status || { code: MessageStatusCode.Pending },\n });\n }\n\n throw new Error(\"Unknown message type\");\n });\n}\n\nexport function loadMessagesFromJsonRepresentation(json: any[]): Message[] {\n const result: Message[] = [];\n for (const item of json) {\n if (\"content\" in item) {\n result.push(\n new TextMessage({\n id: item.id,\n role: item.role,\n content: item.content,\n parentMessageId: item.parentMessageId,\n createdAt: item.createdAt || new Date(),\n status: item.status || { code: MessageStatusCode.Success },\n }),\n );\n } else if (\"arguments\" in item) {\n result.push(\n new ActionExecutionMessage({\n id: item.id,\n name: item.name,\n arguments: item.arguments,\n parentMessageId: item.parentMessageId,\n createdAt: item.createdAt || new Date(),\n status: item.status || { code: MessageStatusCode.Success },\n }),\n );\n } else if (\"result\" in item) {\n result.push(\n new ResultMessage({\n id: item.id,\n result: item.result,\n actionExecutionId: item.actionExecutionId,\n actionName: item.actionName,\n createdAt: item.createdAt || new Date(),\n status: item.status || { code: MessageStatusCode.Success },\n }),\n );\n } else if (\"state\" in item) {\n result.push(\n new AgentStateMessage({\n id: item.id,\n threadId: item.threadId,\n role: item.role,\n agentName: item.agentName,\n nodeName: item.nodeName,\n runId: item.runId,\n active: item.active,\n running: item.running,\n state: item.state,\n createdAt: item.createdAt || new Date(),\n }),\n );\n } else if (\"format\" in item && \"bytes\" in item) {\n result.push(\n new ImageMessage({\n id: item.id,\n format: item.format,\n bytes: item.bytes,\n role: item.role,\n parentMessageId: item.parentMessageId,\n createdAt: item.createdAt || new Date(),\n status: item.status || { code: MessageStatusCode.Success },\n }),\n );\n }\n }\n return result;\n}\n\nfunction getPartialArguments(args: string[]) {\n try {\n if (!args.length) return {};\n\n return JSON.parse(untruncateJson(args.join(\"\")));\n } catch (e) {\n return {};\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conversion.mjs","names":[],"sources":["../../src/client/conversion.ts"],"sourcesContent":["import {\n GenerateCopilotResponseMutation,\n MessageInput,\n MessageStatusCode,\n} from \"../graphql/@generated/graphql\";\nimport {\n ActionExecutionMessage,\n AgentStateMessage,\n Message,\n ResultMessage,\n TextMessage,\n ImageMessage,\n} from \"./types\";\n\nimport untruncateJson from \"untruncate-json\";\nimport { parseJson } from \"@copilotkit/shared\";\n\nexport function filterAgentStateMessages(messages: Message[]): Message[] {\n return messages.filter((message) => !message.isAgentStateMessage());\n}\n\nexport function convertMessagesToGqlInput(messages: Message[]): MessageInput[] {\n return messages.map((message) => {\n if (message.isTextMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n textMessage: {\n content: message.content,\n role: message.role as any,\n parentMessageId: message.parentMessageId,\n },\n };\n } else if (message.isActionExecutionMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n actionExecutionMessage: {\n name: message.name,\n arguments: JSON.stringify(message.arguments),\n parentMessageId: message.parentMessageId,\n },\n };\n } else if (message.isResultMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n resultMessage: {\n result: message.result,\n actionExecutionId: message.actionExecutionId,\n actionName: message.actionName,\n },\n };\n } else if (message.isAgentStateMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n agentStateMessage: {\n threadId: message.threadId,\n role: message.role,\n agentName: message.agentName,\n nodeName: message.nodeName,\n runId: message.runId,\n active: message.active,\n running: message.running,\n state: JSON.stringify(message.state),\n },\n };\n } else if (message.isImageMessage()) {\n return {\n id: message.id,\n createdAt: message.createdAt,\n imageMessage: {\n format: message.format,\n bytes: message.bytes,\n role: message.role as any,\n parentMessageId: message.parentMessageId,\n },\n };\n } else {\n throw new Error(\"Unknown message type\");\n }\n });\n}\n\nexport function filterAdjacentAgentStateMessages(\n messages: GenerateCopilotResponseMutation[\"generateCopilotResponse\"][\"messages\"],\n): GenerateCopilotResponseMutation[\"generateCopilotResponse\"][\"messages\"] {\n const filteredMessages: GenerateCopilotResponseMutation[\"generateCopilotResponse\"][\"messages\"] =\n [];\n\n messages.forEach((message, i) => {\n // keep all other message types\n if (message.__typename !== \"AgentStateMessageOutput\") {\n filteredMessages.push(message);\n } else {\n const prevAgentStateMessageIndex = filteredMessages.findIndex(\n // TODO: also check runId\n (m) =>\n m.__typename === \"AgentStateMessageOutput\" &&\n m.agentName === message.agentName,\n );\n if (prevAgentStateMessageIndex === -1) {\n filteredMessages.push(message);\n } else {\n filteredMessages[prevAgentStateMessageIndex] = message;\n }\n }\n });\n\n return filteredMessages;\n}\n\nexport function convertGqlOutputToMessages(\n messages: GenerateCopilotResponseMutation[\"generateCopilotResponse\"][\"messages\"],\n): Message[] {\n return messages.map((message) => {\n if (message.__typename === \"TextMessageOutput\") {\n return new TextMessage({\n id: message.id,\n role: message.role,\n content: message.content.join(\"\"),\n parentMessageId: message.parentMessageId,\n createdAt: new Date(),\n status: message.status || { code: MessageStatusCode.Pending },\n });\n } else if (message.__typename === \"ActionExecutionMessageOutput\") {\n return new ActionExecutionMessage({\n id: message.id,\n name: message.name,\n arguments: getPartialArguments(message.arguments),\n parentMessageId: message.parentMessageId,\n createdAt: new Date(),\n status: message.status || { code: MessageStatusCode.Pending },\n });\n } else if (message.__typename === \"ResultMessageOutput\") {\n return new ResultMessage({\n id: message.id,\n result: message.result,\n actionExecutionId: message.actionExecutionId,\n actionName: message.actionName,\n createdAt: new Date(),\n status: message.status || { code: MessageStatusCode.Pending },\n });\n } else if (message.__typename === \"AgentStateMessageOutput\") {\n return new AgentStateMessage({\n id: message.id,\n threadId: message.threadId,\n role: message.role,\n agentName: message.agentName,\n nodeName: message.nodeName,\n runId: message.runId,\n active: message.active,\n running: message.running,\n state: parseJson(message.state, {}),\n createdAt: new Date(),\n });\n } else if (message.__typename === \"ImageMessageOutput\") {\n return new ImageMessage({\n id: message.id,\n format: message.format,\n bytes: message.bytes,\n role: message.role,\n parentMessageId: message.parentMessageId,\n createdAt: new Date(),\n status: message.status || { code: MessageStatusCode.Pending },\n });\n }\n\n throw new Error(\"Unknown message type\");\n });\n}\n\nexport function loadMessagesFromJsonRepresentation(json: any[]): Message[] {\n const result: Message[] = [];\n for (const item of json) {\n if (\"content\" in item) {\n result.push(\n new TextMessage({\n id: item.id,\n role: item.role,\n content: item.content,\n parentMessageId: item.parentMessageId,\n createdAt: item.createdAt || new Date(),\n status: item.status || { code: MessageStatusCode.Success },\n }),\n );\n } else if (\"arguments\" in item) {\n result.push(\n new ActionExecutionMessage({\n id: item.id,\n name: item.name,\n arguments: item.arguments,\n parentMessageId: item.parentMessageId,\n createdAt: item.createdAt || new Date(),\n status: item.status || { code: MessageStatusCode.Success },\n }),\n );\n } else if (\"result\" in item) {\n result.push(\n new ResultMessage({\n id: item.id,\n result: item.result,\n actionExecutionId: item.actionExecutionId,\n actionName: item.actionName,\n createdAt: item.createdAt || new Date(),\n status: item.status || { code: MessageStatusCode.Success },\n }),\n );\n } else if (\"state\" in item) {\n result.push(\n new AgentStateMessage({\n id: item.id,\n threadId: item.threadId,\n role: item.role,\n agentName: item.agentName,\n nodeName: item.nodeName,\n runId: item.runId,\n active: item.active,\n running: item.running,\n state: item.state,\n createdAt: item.createdAt || new Date(),\n }),\n );\n } else if (\"format\" in item && \"bytes\" in item) {\n result.push(\n new ImageMessage({\n id: item.id,\n format: item.format,\n bytes: item.bytes,\n role: item.role,\n parentMessageId: item.parentMessageId,\n createdAt: item.createdAt || new Date(),\n status: item.status || { code: MessageStatusCode.Success },\n }),\n );\n }\n }\n return result;\n}\n\nfunction getPartialArguments(args: string[]) {\n try {\n if (!args.length) return {};\n\n const parsed = JSON.parse(untruncateJson(args.join(\"\")));\n if (\n typeof parsed !== \"object\" ||\n parsed === null ||\n Array.isArray(parsed)\n ) {\n console.warn(\n `[CopilotKit] Tool arguments parsed to non-object (${typeof parsed}), falling back to empty object`,\n );\n return {};\n }\n return parsed;\n } catch (e) {\n // Incomplete JSON is expected during streaming — no warning needed\n return {};\n }\n}\n"],"mappings":"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"}
|
package/dist/index.umd.js
CHANGED
|
@@ -34,7 +34,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
34
34
|
untruncate_json = __toESM(untruncate_json);
|
|
35
35
|
|
|
36
36
|
//#region package.json
|
|
37
|
-
var version = "1.
|
|
37
|
+
var version = "1.55.0-next.8";
|
|
38
38
|
|
|
39
39
|
//#endregion
|
|
40
40
|
//#region src/graphql/@generated/graphql.ts
|
|
@@ -1719,7 +1719,12 @@ untruncate_json = __toESM(untruncate_json);
|
|
|
1719
1719
|
function getPartialArguments(args) {
|
|
1720
1720
|
try {
|
|
1721
1721
|
if (!args.length) return {};
|
|
1722
|
-
|
|
1722
|
+
const parsed = JSON.parse((0, untruncate_json.default)(args.join("")));
|
|
1723
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
1724
|
+
console.warn(`[CopilotKit] Tool arguments parsed to non-object (${typeof parsed}), falling back to empty object`);
|
|
1725
|
+
return {};
|
|
1726
|
+
}
|
|
1727
|
+
return parsed;
|
|
1723
1728
|
} catch (e) {
|
|
1724
1729
|
return {};
|
|
1725
1730
|
}
|
|
@@ -1811,12 +1816,16 @@ untruncate_json = __toESM(untruncate_json);
|
|
|
1811
1816
|
if (typeof toolCall.function.arguments === "string") try {
|
|
1812
1817
|
argumentsObj = JSON.parse(toolCall.function.arguments);
|
|
1813
1818
|
} catch (error) {
|
|
1814
|
-
console.warn(`Failed to parse tool
|
|
1819
|
+
console.warn(`[CopilotKit] Failed to parse tool arguments, falling back to empty object`);
|
|
1815
1820
|
argumentsObj = {};
|
|
1816
1821
|
}
|
|
1817
1822
|
else if (typeof toolCall.function.arguments === "object" && toolCall.function.arguments !== null) argumentsObj = toolCall.function.arguments;
|
|
1818
1823
|
else {
|
|
1819
|
-
console.warn(`
|
|
1824
|
+
console.warn(`[CopilotKit] Tool arguments parsed to non-object (${typeof toolCall.function.arguments}), falling back to empty object`);
|
|
1825
|
+
argumentsObj = {};
|
|
1826
|
+
}
|
|
1827
|
+
if (typeof argumentsObj !== "object" || argumentsObj === null || Array.isArray(argumentsObj)) {
|
|
1828
|
+
console.warn(`[CopilotKit] Tool arguments parsed to non-object (${typeof argumentsObj}), falling back to empty object`);
|
|
1820
1829
|
argumentsObj = {};
|
|
1821
1830
|
}
|
|
1822
1831
|
return new ActionExecutionMessage({
|