@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.
- package/CHANGELOG.md +15 -0
- package/dist/_virtual/_rolldown/runtime.cjs +29 -0
- package/dist/client/CopilotRuntimeClient.cjs +119 -0
- package/dist/client/CopilotRuntimeClient.cjs.map +1 -0
- package/dist/client/CopilotRuntimeClient.d.cts +44 -0
- package/dist/client/CopilotRuntimeClient.d.cts.map +1 -0
- package/dist/client/CopilotRuntimeClient.d.mts +44 -0
- package/dist/client/CopilotRuntimeClient.d.mts.map +1 -0
- package/dist/client/CopilotRuntimeClient.mjs +116 -10
- package/dist/client/CopilotRuntimeClient.mjs.map +1 -1
- package/dist/client/conversion.cjs +194 -0
- package/dist/client/conversion.cjs.map +1 -0
- package/dist/client/{conversion.d.ts → conversion.d.cts} +5 -4
- package/dist/client/conversion.d.cts.map +1 -0
- package/dist/client/conversion.d.mts +12 -0
- package/dist/client/conversion.d.mts.map +1 -0
- package/dist/client/conversion.mjs +187 -17
- package/dist/client/conversion.mjs.map +1 -1
- package/dist/client/index.d.cts +5 -0
- package/dist/client/index.d.mts +5 -0
- package/dist/client/types.cjs +86 -0
- package/dist/client/types.cjs.map +1 -0
- package/dist/client/types.d.cts +76 -0
- package/dist/client/types.d.cts.map +1 -0
- package/dist/client/types.d.mts +76 -0
- package/dist/client/types.d.mts.map +1 -0
- package/dist/client/types.mjs +76 -21
- package/dist/client/types.mjs.map +1 -1
- package/dist/graphql/@generated/gql.cjs +15 -0
- package/dist/graphql/@generated/gql.cjs.map +1 -0
- package/dist/graphql/@generated/gql.mjs +13 -7
- package/dist/graphql/@generated/gql.mjs.map +1 -1
- package/dist/graphql/@generated/graphql.cjs +1154 -0
- package/dist/graphql/@generated/graphql.cjs.map +1 -0
- package/dist/graphql/@generated/graphql.d.cts +642 -0
- package/dist/graphql/@generated/graphql.d.cts.map +1 -0
- package/dist/graphql/@generated/graphql.d.mts +642 -0
- package/dist/graphql/@generated/graphql.d.mts.map +1 -0
- package/dist/graphql/@generated/graphql.mjs +1142 -24
- package/dist/graphql/@generated/graphql.mjs.map +1 -1
- package/dist/{chunk-E5FOLXLN.mjs → graphql/definitions/mutations.cjs} +8 -11
- package/dist/graphql/definitions/mutations.cjs.map +1 -0
- package/dist/graphql/definitions/mutations.mjs +140 -9
- package/dist/graphql/definitions/mutations.mjs.map +1 -1
- package/dist/graphql/definitions/queries.cjs +35 -0
- package/dist/graphql/definitions/queries.cjs.map +1 -0
- package/dist/graphql/definitions/queries.mjs +33 -11
- package/dist/graphql/definitions/queries.mjs.map +1 -1
- package/dist/index.cjs +43 -0
- package/dist/index.d.cts +9 -0
- package/dist/index.d.mts +9 -0
- package/dist/index.mjs +8 -91
- package/dist/index.umd.js +2080 -2
- package/dist/index.umd.js.map +1 -1
- package/dist/message-conversion/agui-to-gql.cjs +162 -0
- package/dist/message-conversion/agui-to-gql.cjs.map +1 -0
- package/dist/message-conversion/{agui-to-gql.d.ts → agui-to-gql.d.cts} +6 -5
- package/dist/message-conversion/agui-to-gql.d.cts.map +1 -0
- package/dist/message-conversion/agui-to-gql.d.mts +14 -0
- package/dist/message-conversion/agui-to-gql.d.mts.map +1 -0
- package/dist/message-conversion/agui-to-gql.mjs +156 -25
- package/dist/message-conversion/agui-to-gql.mjs.map +1 -1
- package/dist/message-conversion/gql-to-agui.cjs +169 -0
- package/dist/message-conversion/gql-to-agui.cjs.map +1 -0
- package/dist/message-conversion/{gql-to-agui.d.ts → gql-to-agui.d.cts} +6 -5
- package/dist/message-conversion/gql-to-agui.d.cts.map +1 -0
- package/dist/message-conversion/gql-to-agui.d.mts +13 -0
- package/dist/message-conversion/gql-to-agui.d.mts.map +1 -0
- package/dist/message-conversion/gql-to-agui.mjs +164 -23
- package/dist/message-conversion/gql-to-agui.mjs.map +1 -1
- package/dist/message-conversion/index.d.cts +2 -0
- package/dist/message-conversion/index.d.mts +2 -0
- package/dist/package.cjs +12 -0
- package/dist/package.cjs.map +1 -0
- package/dist/package.mjs +6 -0
- package/dist/package.mjs.map +1 -0
- package/package.json +15 -15
- package/src/message-conversion/agui-to-gql.test.ts +70 -0
- package/src/message-conversion/agui-to-gql.ts +4 -0
- package/tsdown.config.ts +49 -0
- package/vitest.config.mjs +11 -0
- package/dist/chunk-2XWNDVTL.mjs +0 -176
- package/dist/chunk-2XWNDVTL.mjs.map +0 -1
- package/dist/chunk-7ECCT6PK.mjs +0 -1
- package/dist/chunk-7ECCT6PK.mjs.map +0 -1
- package/dist/chunk-A4INSSNE.mjs +0 -17722
- package/dist/chunk-A4INSSNE.mjs.map +0 -1
- package/dist/chunk-CA4VMP2C.mjs +0 -1
- package/dist/chunk-CA4VMP2C.mjs.map +0 -1
- package/dist/chunk-DELDZXUX.mjs +0 -31
- package/dist/chunk-DELDZXUX.mjs.map +0 -1
- package/dist/chunk-E5FOLXLN.mjs.map +0 -1
- package/dist/chunk-LTVE64IE.mjs +0 -241
- package/dist/chunk-LTVE64IE.mjs.map +0 -1
- package/dist/chunk-M4CK5HDR.mjs +0 -237
- package/dist/chunk-M4CK5HDR.mjs.map +0 -1
- package/dist/chunk-OBDQ5BWD.mjs +0 -63
- package/dist/chunk-OBDQ5BWD.mjs.map +0 -1
- package/dist/chunk-QUH7QWUA.mjs +0 -38
- package/dist/chunk-QUH7QWUA.mjs.map +0 -1
- package/dist/chunk-SDQPJXLL.mjs +0 -20
- package/dist/chunk-SDQPJXLL.mjs.map +0 -1
- package/dist/chunk-UOAPP5IN.mjs +0 -93
- package/dist/chunk-UOAPP5IN.mjs.map +0 -1
- package/dist/chunk-VIHKTLUA.mjs +0 -221
- package/dist/chunk-VIHKTLUA.mjs.map +0 -1
- package/dist/chunk-XZPL6QVK.mjs +0 -24
- package/dist/chunk-XZPL6QVK.mjs.map +0 -1
- package/dist/client/CopilotRuntimeClient.d.ts +0 -39
- package/dist/client/CopilotRuntimeClient.js +0 -366
- package/dist/client/CopilotRuntimeClient.js.map +0 -1
- package/dist/client/conversion.js +0 -339
- package/dist/client/conversion.js.map +0 -1
- package/dist/client/index.d.ts +0 -8
- package/dist/client/index.js +0 -711
- package/dist/client/index.js.map +0 -1
- package/dist/client/index.mjs +0 -43
- package/dist/client/index.mjs.map +0 -1
- package/dist/client/types.d.ts +0 -75
- package/dist/client/types.js +0 -132
- package/dist/client/types.js.map +0 -1
- package/dist/graphql/@generated/fragment-masking.d.ts +0 -22
- package/dist/graphql/@generated/fragment-masking.js +0 -50
- package/dist/graphql/@generated/fragment-masking.js.map +0 -1
- package/dist/graphql/@generated/fragment-masking.mjs +0 -12
- package/dist/graphql/@generated/fragment-masking.mjs.map +0 -1
- package/dist/graphql/@generated/gql.d.ts +0 -48
- package/dist/graphql/@generated/gql.js +0 -45
- package/dist/graphql/@generated/gql.js.map +0 -1
- package/dist/graphql/@generated/graphql.d.ts +0 -655
- package/dist/graphql/@generated/graphql.js +0 -96
- package/dist/graphql/@generated/graphql.js.map +0 -1
- package/dist/graphql/@generated/index.d.ts +0 -4
- package/dist/graphql/@generated/index.js +0 -69
- package/dist/graphql/@generated/index.js.map +0 -1
- package/dist/graphql/@generated/index.mjs +0 -17
- package/dist/graphql/@generated/index.mjs.map +0 -1
- package/dist/graphql/definitions/mutations.d.ts +0 -9
- package/dist/graphql/definitions/mutations.js +0 -181
- package/dist/graphql/definitions/mutations.js.map +0 -1
- package/dist/graphql/definitions/queries.d.ts +0 -11
- package/dist/graphql/definitions/queries.js +0 -76
- package/dist/graphql/definitions/queries.js.map +0 -1
- package/dist/index.d.ts +0 -11
- package/dist/index.js +0 -1222
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/magic-string.es-XBKSJO3K.mjs +0 -1389
- package/dist/magic-string.es-XBKSJO3K.mjs.map +0 -1
- package/dist/message-conversion/agui-to-gql.js +0 -344
- package/dist/message-conversion/agui-to-gql.js.map +0 -1
- package/dist/message-conversion/agui-to-gql.test.d.ts +0 -2
- package/dist/message-conversion/agui-to-gql.test.js +0 -20553
- package/dist/message-conversion/agui-to-gql.test.js.map +0 -1
- package/dist/message-conversion/agui-to-gql.test.mjs +0 -1137
- package/dist/message-conversion/agui-to-gql.test.mjs.map +0 -1
- package/dist/message-conversion/gql-to-agui.js +0 -262
- package/dist/message-conversion/gql-to-agui.js.map +0 -1
- package/dist/message-conversion/gql-to-agui.test.d.ts +0 -2
- package/dist/message-conversion/gql-to-agui.test.js +0 -20850
- package/dist/message-conversion/gql-to-agui.test.js.map +0 -1
- package/dist/message-conversion/gql-to-agui.test.mjs +0 -1447
- package/dist/message-conversion/gql-to-agui.test.mjs.map +0 -1
- package/dist/message-conversion/index.d.ts +0 -6
- package/dist/message-conversion/index.js +0 -563
- package/dist/message-conversion/index.js.map +0 -1
- package/dist/message-conversion/index.mjs +0 -39
- package/dist/message-conversion/index.mjs.map +0 -1
- package/dist/message-conversion/roundtrip-conversion.test.d.ts +0 -2
- package/dist/message-conversion/roundtrip-conversion.test.js +0 -20095
- package/dist/message-conversion/roundtrip-conversion.test.js.map +0 -1
- package/dist/message-conversion/roundtrip-conversion.test.mjs +0 -489
- package/dist/message-conversion/roundtrip-conversion.test.mjs.map +0 -1
- package/jest.config.js +0 -5
- package/rollup.config.mjs +0 -62
- package/tsup.config.ts +0 -12
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import '@graphql-typed-document-node/core';
|
|
1
|
+
import { ActionExecutionMessage, ImageMessage, Message, ResultMessage, TextMessage } from "../client/types.cjs";
|
|
2
|
+
import "../client/index.cjs";
|
|
3
|
+
import agui from "@copilotkit/shared";
|
|
5
4
|
|
|
5
|
+
//#region src/message-conversion/agui-to-gql.d.ts
|
|
6
6
|
declare function aguiToGQL(messages: agui.Message[] | agui.Message, actions?: Record<string, any>, coAgentStateRenders?: Record<string, any>): Message[];
|
|
7
7
|
declare function aguiTextMessageToGQLMessage(message: agui.Message): TextMessage;
|
|
8
8
|
declare function aguiToolCallToGQLActionExecution(toolCall: agui.ToolCall, parentMessageId: string): ActionExecutionMessage;
|
|
9
9
|
declare function aguiToolMessageToGQLResultMessage(message: agui.Message, toolCallNames: Record<string, string>): ResultMessage;
|
|
10
10
|
declare function aguiMessageWithRenderToGQL(message: agui.Message, actions?: Record<string, any>, coAgentStateRenders?: Record<string, any>): Message[];
|
|
11
11
|
declare function aguiMessageWithImageToGQLMessage(message: agui.Message): ImageMessage;
|
|
12
|
-
|
|
12
|
+
//#endregion
|
|
13
13
|
export { aguiMessageWithImageToGQLMessage, aguiMessageWithRenderToGQL, aguiTextMessageToGQLMessage, aguiToGQL, aguiToolCallToGQLActionExecution, aguiToolMessageToGQLResultMessage };
|
|
14
|
+
//# sourceMappingURL=agui-to-gql.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agui-to-gql.d.cts","names":[],"sources":["../../src/message-conversion/agui-to-gql.ts"],"mappings":";;;;;iBA4CgB,SAAA,CACd,QAAA,EAAU,IAAA,CAAK,OAAA,KAAY,IAAA,CAAK,OAAA,EAChC,OAAA,GAAU,MAAA,eACV,mBAAA,GAAsB,MAAA,gBACrB,OAAA;AAAA,iBAqGa,2BAAA,CACd,OAAA,EAAS,IAAA,CAAK,OAAA,GACb,WAAA;AAAA,iBA+Ba,gCAAA,CACd,QAAA,EAAU,IAAA,CAAK,QAAA,EACf,eAAA,WACC,sBAAA;AAAA,iBA6Ca,iCAAA,CACd,OAAA,EAAS,IAAA,CAAK,OAAA,EACd,aAAA,EAAe,MAAA,mBACd,aAAA;AAAA,iBA0Ca,0BAAA,CACd,OAAA,EAAS,IAAA,CAAK,OAAA,EACd,OAAA,GAAU,MAAA,eACV,mBAAA,GAAsB,MAAA,gBACrB,OAAA;AAAA,iBA8Ba,gCAAA,CACd,OAAA,EAAS,IAAA,CAAK,OAAA,GACb,YAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ActionExecutionMessage, ImageMessage, Message, ResultMessage, TextMessage } from "../client/types.mjs";
|
|
2
|
+
import "../client/index.mjs";
|
|
3
|
+
import agui from "@copilotkit/shared";
|
|
4
|
+
|
|
5
|
+
//#region src/message-conversion/agui-to-gql.d.ts
|
|
6
|
+
declare function aguiToGQL(messages: agui.Message[] | agui.Message, actions?: Record<string, any>, coAgentStateRenders?: Record<string, any>): Message[];
|
|
7
|
+
declare function aguiTextMessageToGQLMessage(message: agui.Message): TextMessage;
|
|
8
|
+
declare function aguiToolCallToGQLActionExecution(toolCall: agui.ToolCall, parentMessageId: string): ActionExecutionMessage;
|
|
9
|
+
declare function aguiToolMessageToGQLResultMessage(message: agui.Message, toolCallNames: Record<string, string>): ResultMessage;
|
|
10
|
+
declare function aguiMessageWithRenderToGQL(message: agui.Message, actions?: Record<string, any>, coAgentStateRenders?: Record<string, any>): Message[];
|
|
11
|
+
declare function aguiMessageWithImageToGQLMessage(message: agui.Message): ImageMessage;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { aguiMessageWithImageToGQLMessage, aguiMessageWithRenderToGQL, aguiTextMessageToGQLMessage, aguiToGQL, aguiToolCallToGQLActionExecution, aguiToolMessageToGQLResultMessage };
|
|
14
|
+
//# sourceMappingURL=agui-to-gql.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agui-to-gql.d.mts","names":[],"sources":["../../src/message-conversion/agui-to-gql.ts"],"mappings":";;;;;iBA4CgB,SAAA,CACd,QAAA,EAAU,IAAA,CAAK,OAAA,KAAY,IAAA,CAAK,OAAA,EAChC,OAAA,GAAU,MAAA,eACV,mBAAA,GAAsB,MAAA,gBACrB,OAAA;AAAA,iBAqGa,2BAAA,CACd,OAAA,EAAS,IAAA,CAAK,OAAA,GACb,WAAA;AAAA,iBA+Ba,gCAAA,CACd,QAAA,EAAU,IAAA,CAAK,QAAA,EACf,eAAA,WACC,sBAAA;AAAA,iBA6Ca,iCAAA,CACd,OAAA,EAAS,IAAA,CAAK,OAAA,EACd,aAAA,EAAe,MAAA,mBACd,aAAA;AAAA,iBA0Ca,0BAAA,CACd,OAAA,EAAS,IAAA,CAAK,OAAA,EACd,OAAA,GAAU,MAAA,eACV,mBAAA,GAAsB,MAAA,gBACrB,OAAA;AAAA,iBA8Ba,gCAAA,CACd,OAAA,EAAS,IAAA,CAAK,OAAA,GACb,YAAA"}
|
|
@@ -1,26 +1,157 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
1
|
+
import { ActionExecutionMessage, AgentStateMessage, ImageMessage, ResultMessage, Role, TextMessage } from "../client/types.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/message-conversion/agui-to-gql.ts
|
|
4
|
+
function extractAgentName(message) {
|
|
5
|
+
if (message.role !== "assistant") throw new Error(`Cannot extract agent name from message with role ${message.role}`);
|
|
6
|
+
return message.agentName || "unknown";
|
|
7
|
+
}
|
|
8
|
+
function isAgentStateMessage(message) {
|
|
9
|
+
return message.role === "assistant" && "agentName" in message && "state" in message;
|
|
10
|
+
}
|
|
11
|
+
function hasImageProperty(message) {
|
|
12
|
+
if (!(message.role === "assistant" || message.role === "user") || message.image === void 0) return false;
|
|
13
|
+
if (message.image.format === void 0 || message.image.bytes === void 0) return false;
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
function aguiToGQL(messages, actions, coAgentStateRenders) {
|
|
17
|
+
const gqlMessages = [];
|
|
18
|
+
messages = Array.isArray(messages) ? messages : [messages];
|
|
19
|
+
const toolCallNames = {};
|
|
20
|
+
for (const message of messages) {
|
|
21
|
+
if (isAgentStateMessage(message)) {
|
|
22
|
+
const agentName = extractAgentName(message);
|
|
23
|
+
const state = "state" in message && message.state ? message.state : {};
|
|
24
|
+
gqlMessages.push(new AgentStateMessage({
|
|
25
|
+
id: message.id,
|
|
26
|
+
agentName,
|
|
27
|
+
state,
|
|
28
|
+
role: Role.Assistant
|
|
29
|
+
}));
|
|
30
|
+
if ("generativeUI" in message && message.generativeUI && coAgentStateRenders) coAgentStateRenders[agentName] = {
|
|
31
|
+
name: agentName,
|
|
32
|
+
render: message.generativeUI
|
|
33
|
+
};
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
if (hasImageProperty(message)) {
|
|
37
|
+
gqlMessages.push(aguiMessageWithImageToGQLMessage(message));
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
if (message.role === "assistant" && message.toolCalls) {
|
|
41
|
+
gqlMessages.push(aguiTextMessageToGQLMessage(message));
|
|
42
|
+
for (const toolCall of message.toolCalls) {
|
|
43
|
+
toolCallNames[toolCall.id] = toolCall.function.name;
|
|
44
|
+
const actionExecMsg = aguiToolCallToGQLActionExecution(toolCall, message.id);
|
|
45
|
+
if ("generativeUI" in message && message.generativeUI && actions) {
|
|
46
|
+
const actionName = toolCall.function.name;
|
|
47
|
+
const specificAction = Object.values(actions).find((action) => action.name === actionName);
|
|
48
|
+
const wildcardAction = Object.values(actions).find((action) => action.name === "*");
|
|
49
|
+
if (specificAction) specificAction.render = message.generativeUI;
|
|
50
|
+
else if (wildcardAction) wildcardAction.render = message.generativeUI;
|
|
51
|
+
}
|
|
52
|
+
gqlMessages.push(actionExecMsg);
|
|
53
|
+
}
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (message.role === "reasoning") continue;
|
|
57
|
+
if (message.role === "developer" || message.role === "system" || message.role === "assistant" || message.role === "user") {
|
|
58
|
+
gqlMessages.push(aguiTextMessageToGQLMessage(message));
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
if (message.role === "tool") {
|
|
62
|
+
gqlMessages.push(aguiToolMessageToGQLResultMessage(message, toolCallNames));
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
throw new Error(`Unknown message role: "${message.role}" in message with id: ${message.id}`);
|
|
66
|
+
}
|
|
67
|
+
return gqlMessages;
|
|
68
|
+
}
|
|
69
|
+
function aguiTextMessageToGQLMessage(message) {
|
|
70
|
+
if (message.role !== "developer" && message.role !== "system" && message.role !== "assistant" && message.role !== "user") throw new Error(`Cannot convert message with role ${message.role} to TextMessage`);
|
|
71
|
+
let roleValue;
|
|
72
|
+
if (message.role === "developer") roleValue = Role.Developer;
|
|
73
|
+
else if (message.role === "system") roleValue = Role.System;
|
|
74
|
+
else if (message.role === "assistant") roleValue = Role.Assistant;
|
|
75
|
+
else roleValue = Role.User;
|
|
76
|
+
return new TextMessage({
|
|
77
|
+
id: message.id,
|
|
78
|
+
content: message.content || "",
|
|
79
|
+
role: roleValue
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
function aguiToolCallToGQLActionExecution(toolCall, parentMessageId) {
|
|
83
|
+
if (toolCall.type !== "function") throw new Error(`Unsupported tool call type: ${toolCall.type}`);
|
|
84
|
+
let argumentsObj;
|
|
85
|
+
if (typeof toolCall.function.arguments === "string") try {
|
|
86
|
+
argumentsObj = JSON.parse(toolCall.function.arguments);
|
|
87
|
+
} catch (error) {
|
|
88
|
+
console.warn(`Failed to parse tool call arguments for ${toolCall.function.name}:`, error);
|
|
89
|
+
argumentsObj = {};
|
|
90
|
+
}
|
|
91
|
+
else if (typeof toolCall.function.arguments === "object" && toolCall.function.arguments !== null) argumentsObj = toolCall.function.arguments;
|
|
92
|
+
else {
|
|
93
|
+
console.warn(`Invalid tool call arguments type for ${toolCall.function.name}:`, typeof toolCall.function.arguments);
|
|
94
|
+
argumentsObj = {};
|
|
95
|
+
}
|
|
96
|
+
return new ActionExecutionMessage({
|
|
97
|
+
id: toolCall.id,
|
|
98
|
+
name: toolCall.function.name,
|
|
99
|
+
arguments: argumentsObj,
|
|
100
|
+
parentMessageId
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
function aguiToolMessageToGQLResultMessage(message, toolCallNames) {
|
|
104
|
+
if (message.role !== "tool") throw new Error(`Cannot convert message with role ${message.role} to ResultMessage`);
|
|
105
|
+
if (!message.toolCallId) throw new Error("Tool message must have a toolCallId");
|
|
106
|
+
const actionName = toolCallNames[message.toolCallId] || "unknown";
|
|
107
|
+
let resultContent;
|
|
108
|
+
const messageContent = message.content || "";
|
|
109
|
+
if (typeof messageContent === "string") resultContent = messageContent;
|
|
110
|
+
else if (typeof messageContent === "object" && messageContent !== null) try {
|
|
111
|
+
resultContent = JSON.stringify(messageContent);
|
|
112
|
+
} catch (error) {
|
|
113
|
+
console.warn(`Failed to stringify tool result for ${actionName}:`, error);
|
|
114
|
+
resultContent = String(messageContent);
|
|
115
|
+
}
|
|
116
|
+
else resultContent = String(messageContent);
|
|
117
|
+
return new ResultMessage({
|
|
118
|
+
id: message.id,
|
|
119
|
+
result: resultContent,
|
|
120
|
+
actionExecutionId: message.toolCallId,
|
|
121
|
+
actionName: message.toolName || actionName
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
function aguiMessageWithRenderToGQL(message, actions, coAgentStateRenders) {
|
|
125
|
+
if (message.role === "assistant" && "generativeUI" in message && message.generativeUI && !message.toolCalls) {
|
|
126
|
+
const gqlMessages = [];
|
|
127
|
+
gqlMessages.push(new AgentStateMessage({
|
|
128
|
+
id: message.id,
|
|
129
|
+
agentName: "unknown",
|
|
130
|
+
state: {},
|
|
131
|
+
role: Role.Assistant
|
|
132
|
+
}));
|
|
133
|
+
if (coAgentStateRenders) coAgentStateRenders.unknown = {
|
|
134
|
+
name: "unknown",
|
|
135
|
+
render: message.generativeUI
|
|
136
|
+
};
|
|
137
|
+
return gqlMessages;
|
|
138
|
+
}
|
|
139
|
+
return aguiToGQL([message], actions, coAgentStateRenders);
|
|
140
|
+
}
|
|
141
|
+
function aguiMessageWithImageToGQLMessage(message) {
|
|
142
|
+
if (!hasImageProperty(message)) throw new Error(`Cannot convert message to ImageMessage: missing format or bytes`);
|
|
143
|
+
let roleValue;
|
|
144
|
+
if (message.role === "assistant") roleValue = Role.Assistant;
|
|
145
|
+
else roleValue = Role.User;
|
|
146
|
+
if (message.role !== "assistant" && message.role !== "user") throw new Error(`Cannot convert message with role ${message.role} to ImageMessage`);
|
|
147
|
+
return new ImageMessage({
|
|
148
|
+
id: message.id,
|
|
149
|
+
format: message.image.format,
|
|
150
|
+
bytes: message.image.bytes,
|
|
151
|
+
role: roleValue
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
//#endregion
|
|
156
|
+
export { aguiMessageWithImageToGQLMessage, aguiMessageWithRenderToGQL, aguiTextMessageToGQLMessage, aguiToGQL, aguiToolCallToGQLActionExecution, aguiToolMessageToGQLResultMessage };
|
|
26
157
|
//# sourceMappingURL=agui-to-gql.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
1
|
+
{"version":3,"file":"agui-to-gql.mjs","names":["gql.AgentStateMessage","gql.TextMessage","gql.ActionExecutionMessage","gql.ResultMessage","gql.ImageMessage"],"sources":["../../src/message-conversion/agui-to-gql.ts"],"sourcesContent":["import * as gql from \"../client\";\nimport { MessageRole } from \"../graphql/@generated/graphql\";\nimport agui from \"@copilotkit/shared\"; // named agui for clarity, but this only includes agui message types\n\n// Helper function to extract agent name from message\nfunction extractAgentName(message: agui.Message): string {\n if (message.role !== \"assistant\") {\n throw new Error(\n `Cannot extract agent name from message with role ${message.role}`,\n );\n }\n\n return message.agentName || \"unknown\";\n}\n\n// Type guard for agent state message\nfunction isAgentStateMessage(message: agui.Message): boolean {\n return (\n message.role === \"assistant\" && \"agentName\" in message && \"state\" in message\n );\n}\n\n// Type guard for messages with image property\nfunction hasImageProperty(message: agui.Message): boolean {\n const canContainImage =\n message.role === \"assistant\" || message.role === \"user\";\n if (!canContainImage || message.image === undefined) {\n return false;\n }\n\n const isMalformed =\n message.image.format === undefined || message.image.bytes === undefined;\n if (isMalformed) {\n return false;\n }\n\n return true;\n}\n\n/*\n ----------------------------\n AGUI Message -> GQL Message\n ----------------------------\n*/\nexport function aguiToGQL(\n messages: agui.Message[] | agui.Message,\n actions?: Record<string, any>,\n coAgentStateRenders?: Record<string, any>,\n): gql.Message[] {\n const gqlMessages: gql.Message[] = [];\n messages = Array.isArray(messages) ? messages : [messages];\n\n // Track tool call names by their IDs for use in result messages\n const toolCallNames: Record<string, string> = {};\n\n for (const message of messages) {\n // Agent state message support\n if (isAgentStateMessage(message)) {\n const agentName = extractAgentName(message);\n const state = \"state\" in message && message.state ? message.state : {};\n gqlMessages.push(\n new gql.AgentStateMessage({\n id: message.id,\n agentName,\n state,\n role: gql.Role.Assistant,\n }),\n );\n // Optionally preserve render function\n if (\n \"generativeUI\" in message &&\n message.generativeUI &&\n coAgentStateRenders\n ) {\n coAgentStateRenders[agentName] = {\n name: agentName,\n render: message.generativeUI,\n };\n }\n continue;\n }\n\n if (hasImageProperty(message)) {\n gqlMessages.push(aguiMessageWithImageToGQLMessage(message));\n continue;\n }\n\n // Action execution message support\n if (message.role === \"assistant\" && message.toolCalls) {\n gqlMessages.push(aguiTextMessageToGQLMessage(message));\n for (const toolCall of message.toolCalls) {\n // Track the tool call name by its ID\n toolCallNames[toolCall.id] = toolCall.function.name;\n\n const actionExecMsg = aguiToolCallToGQLActionExecution(\n toolCall,\n message.id,\n );\n // Preserve render function in actions context\n if (\"generativeUI\" in message && message.generativeUI && actions) {\n const actionName = toolCall.function.name;\n // Check for specific action first, then wild card action\n const specificAction = Object.values(actions).find(\n (action: any) => action.name === actionName,\n );\n const wildcardAction = Object.values(actions).find(\n (action: any) => action.name === \"*\",\n );\n\n // Assign render function to the matching action (specific takes priority)\n if (specificAction) {\n specificAction.render = message.generativeUI;\n } else if (wildcardAction) {\n wildcardAction.render = message.generativeUI;\n }\n }\n gqlMessages.push(actionExecMsg);\n }\n continue;\n }\n // Reasoning messages are ephemeral display-only content with no GQL equivalent — skip them\n if (message.role === \"reasoning\") {\n continue;\n }\n // Regular text messages\n if (\n message.role === \"developer\" ||\n message.role === \"system\" ||\n message.role === \"assistant\" ||\n message.role === \"user\"\n ) {\n gqlMessages.push(aguiTextMessageToGQLMessage(message));\n continue;\n }\n // Tool result message\n if (message.role === \"tool\") {\n gqlMessages.push(\n aguiToolMessageToGQLResultMessage(message, toolCallNames),\n );\n continue;\n }\n throw new Error(\n `Unknown message role: \"${(message as any).role}\" in message with id: ${(message as any).id}`,\n );\n }\n\n return gqlMessages;\n}\n\nexport function aguiTextMessageToGQLMessage(\n message: agui.Message,\n): gql.TextMessage {\n if (\n message.role !== \"developer\" &&\n message.role !== \"system\" &&\n message.role !== \"assistant\" &&\n message.role !== \"user\"\n ) {\n throw new Error(\n `Cannot convert message with role ${message.role} to TextMessage`,\n );\n }\n\n let roleValue: MessageRole;\n\n if (message.role === \"developer\") {\n roleValue = gql.Role.Developer;\n } else if (message.role === \"system\") {\n roleValue = gql.Role.System;\n } else if (message.role === \"assistant\") {\n roleValue = gql.Role.Assistant;\n } else {\n roleValue = gql.Role.User;\n }\n\n return new gql.TextMessage({\n id: message.id,\n content: (message.content as any) || \"\",\n role: roleValue,\n });\n}\n\nexport function aguiToolCallToGQLActionExecution(\n toolCall: agui.ToolCall,\n parentMessageId: string,\n): gql.ActionExecutionMessage {\n if (toolCall.type !== \"function\") {\n throw new Error(`Unsupported tool call type: ${toolCall.type}`);\n }\n\n // Handle arguments - they should be a JSON string in AGUI format,\n // but we need to convert them to an object for GQL format\n let argumentsObj: any;\n\n if (typeof toolCall.function.arguments === \"string\") {\n // Expected case: arguments is a JSON string\n try {\n argumentsObj = JSON.parse(toolCall.function.arguments);\n } catch (error) {\n console.warn(\n `Failed to parse tool call arguments for ${toolCall.function.name}:`,\n error,\n );\n // Provide fallback empty object to prevent application crash\n argumentsObj = {};\n }\n } else if (\n typeof toolCall.function.arguments === \"object\" &&\n toolCall.function.arguments !== null\n ) {\n // Backward compatibility: arguments is already an object\n argumentsObj = toolCall.function.arguments;\n } else {\n // Fallback for undefined, null, or other types\n console.warn(\n `Invalid tool call arguments type for ${toolCall.function.name}:`,\n typeof toolCall.function.arguments,\n );\n argumentsObj = {};\n }\n\n // Always include name and arguments\n return new gql.ActionExecutionMessage({\n id: toolCall.id,\n name: toolCall.function.name,\n arguments: argumentsObj,\n parentMessageId: parentMessageId,\n });\n}\n\nexport function aguiToolMessageToGQLResultMessage(\n message: agui.Message,\n toolCallNames: Record<string, string>,\n): gql.ResultMessage {\n if (message.role !== \"tool\") {\n throw new Error(\n `Cannot convert message with role ${message.role} to ResultMessage`,\n );\n }\n\n if (!message.toolCallId) {\n throw new Error(\"Tool message must have a toolCallId\");\n }\n\n const actionName = toolCallNames[message.toolCallId] || \"unknown\";\n\n // Handle result content - it could be a string or an object that needs serialization\n let resultContent: string;\n const messageContent = message.content || \"\";\n\n if (typeof messageContent === \"string\") {\n // Expected case: content is already a string\n resultContent = messageContent;\n } else if (typeof messageContent === \"object\" && messageContent !== null) {\n // Handle case where content is an object that needs to be serialized\n try {\n resultContent = JSON.stringify(messageContent);\n } catch (error) {\n console.warn(`Failed to stringify tool result for ${actionName}:`, error);\n resultContent = String(messageContent);\n }\n } else {\n // Handle other types (number, boolean, etc.)\n resultContent = String(messageContent);\n }\n\n return new gql.ResultMessage({\n id: message.id,\n result: resultContent,\n actionExecutionId: message.toolCallId,\n actionName: message.toolName || actionName,\n });\n}\n\n// New function to handle AGUI messages with render functions\nexport function aguiMessageWithRenderToGQL(\n message: agui.Message,\n actions?: Record<string, any>,\n coAgentStateRenders?: Record<string, any>,\n): gql.Message[] {\n // Handle the special case: assistant messages with render function but no tool calls\n if (\n message.role === \"assistant\" &&\n \"generativeUI\" in message &&\n message.generativeUI &&\n !message.toolCalls\n ) {\n const gqlMessages: gql.Message[] = [];\n gqlMessages.push(\n new gql.AgentStateMessage({\n id: message.id,\n agentName: \"unknown\",\n state: {},\n role: gql.Role.Assistant,\n }),\n );\n if (coAgentStateRenders) {\n coAgentStateRenders.unknown = {\n name: \"unknown\",\n render: message.generativeUI,\n };\n }\n return gqlMessages;\n }\n\n // For all other cases, delegate to aguiToGQL\n return aguiToGQL([message], actions, coAgentStateRenders);\n}\n\nexport function aguiMessageWithImageToGQLMessage(\n message: agui.Message,\n): gql.ImageMessage {\n if (!hasImageProperty(message)) {\n throw new Error(\n `Cannot convert message to ImageMessage: missing format or bytes`,\n );\n }\n\n let roleValue: MessageRole;\n if (message.role === \"assistant\") {\n roleValue = gql.Role.Assistant;\n } else {\n roleValue = gql.Role.User;\n }\n\n if (message.role !== \"assistant\" && message.role !== \"user\") {\n throw new Error(\n `Cannot convert message with role ${message.role} to ImageMessage`,\n );\n }\n\n return new gql.ImageMessage({\n id: message.id,\n format: message.image!.format,\n bytes: message.image!.bytes,\n role: roleValue,\n });\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
const require_graphql = require('../graphql/@generated/graphql.cjs');
|
|
2
|
+
const require_types = require('../client/types.cjs');
|
|
3
|
+
|
|
4
|
+
//#region src/message-conversion/gql-to-agui.ts
|
|
5
|
+
const VALID_IMAGE_FORMATS = [
|
|
6
|
+
"jpeg",
|
|
7
|
+
"png",
|
|
8
|
+
"webp",
|
|
9
|
+
"gif"
|
|
10
|
+
];
|
|
11
|
+
function validateImageFormat(format) {
|
|
12
|
+
return VALID_IMAGE_FORMATS.includes(format);
|
|
13
|
+
}
|
|
14
|
+
function gqlToAGUI(messages, actions, coAgentStateRenders) {
|
|
15
|
+
let aguiMessages = [];
|
|
16
|
+
messages = Array.isArray(messages) ? messages : [messages];
|
|
17
|
+
const actionResults = /* @__PURE__ */ new Map();
|
|
18
|
+
for (const message of messages) if (message.isResultMessage()) actionResults.set(message.actionExecutionId, message.result);
|
|
19
|
+
for (const message of messages) if (message.isTextMessage()) aguiMessages.push(gqlTextMessageToAGUIMessage(message));
|
|
20
|
+
else if (message.isResultMessage()) aguiMessages.push(gqlResultMessageToAGUIMessage(message));
|
|
21
|
+
else if (message.isActionExecutionMessage()) aguiMessages.push(gqlActionExecutionMessageToAGUIMessage(message, actions, actionResults));
|
|
22
|
+
else if (message.isAgentStateMessage()) aguiMessages.push(gqlAgentStateMessageToAGUIMessage(message, coAgentStateRenders));
|
|
23
|
+
else if (message.isImageMessage()) aguiMessages.push(gqlImageMessageToAGUIMessage(message));
|
|
24
|
+
else throw new Error("Unknown message type");
|
|
25
|
+
return aguiMessages;
|
|
26
|
+
}
|
|
27
|
+
function gqlActionExecutionMessageToAGUIMessage(message, actions, actionResults) {
|
|
28
|
+
const hasSpecificAction = actions && Object.values(actions).some((action) => action.name === message.name);
|
|
29
|
+
const hasWildcardAction = actions && Object.values(actions).some((action) => action.name === "*");
|
|
30
|
+
if (!actions || !hasSpecificAction && !hasWildcardAction) return {
|
|
31
|
+
id: message.id,
|
|
32
|
+
role: "assistant",
|
|
33
|
+
toolCalls: [actionExecutionMessageToAGUIMessage(message)],
|
|
34
|
+
name: message.name
|
|
35
|
+
};
|
|
36
|
+
const action = Object.values(actions).find((action) => action.name === message.name) || Object.values(actions).find((action) => action.name === "*");
|
|
37
|
+
const createRenderWrapper = (originalRender) => {
|
|
38
|
+
if (!originalRender) return void 0;
|
|
39
|
+
return (props) => {
|
|
40
|
+
let actionResult = actionResults?.get(message.id);
|
|
41
|
+
let status = "inProgress";
|
|
42
|
+
if (actionResult !== void 0) status = "complete";
|
|
43
|
+
else if (message.status?.code !== require_graphql.MessageStatusCode.Pending) status = "executing";
|
|
44
|
+
if (typeof props?.result === "string") try {
|
|
45
|
+
props.result = JSON.parse(props.result);
|
|
46
|
+
} catch (e) {}
|
|
47
|
+
if (typeof actionResult === "string") try {
|
|
48
|
+
actionResult = JSON.parse(actionResult);
|
|
49
|
+
} catch (e) {}
|
|
50
|
+
const baseProps = {
|
|
51
|
+
status: props?.status || status,
|
|
52
|
+
args: message.arguments || {},
|
|
53
|
+
result: props?.result || actionResult || void 0,
|
|
54
|
+
messageId: message.id
|
|
55
|
+
};
|
|
56
|
+
if (action.name === "*") return originalRender({
|
|
57
|
+
...baseProps,
|
|
58
|
+
...props,
|
|
59
|
+
name: message.name
|
|
60
|
+
});
|
|
61
|
+
else {
|
|
62
|
+
const respond = props?.respond ?? (() => {});
|
|
63
|
+
return originalRender({
|
|
64
|
+
...baseProps,
|
|
65
|
+
...props,
|
|
66
|
+
respond
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
return {
|
|
72
|
+
id: message.id,
|
|
73
|
+
role: "assistant",
|
|
74
|
+
content: "",
|
|
75
|
+
toolCalls: [actionExecutionMessageToAGUIMessage(message)],
|
|
76
|
+
generativeUI: createRenderWrapper(action.render),
|
|
77
|
+
name: message.name
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
function gqlAgentStateMessageToAGUIMessage(message, coAgentStateRenders) {
|
|
81
|
+
if (coAgentStateRenders && Object.values(coAgentStateRenders).some((render) => render.name === message.agentName)) {
|
|
82
|
+
const render = Object.values(coAgentStateRenders).find((render) => render.name === message.agentName);
|
|
83
|
+
const createRenderWrapper = (originalRender) => {
|
|
84
|
+
if (!originalRender) return void 0;
|
|
85
|
+
return (props) => {
|
|
86
|
+
return originalRender({ state: message.state });
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
return {
|
|
90
|
+
id: message.id,
|
|
91
|
+
role: "assistant",
|
|
92
|
+
generativeUI: createRenderWrapper(render.render),
|
|
93
|
+
agentName: message.agentName,
|
|
94
|
+
state: message.state
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
id: message.id,
|
|
99
|
+
role: "assistant",
|
|
100
|
+
agentName: message.agentName,
|
|
101
|
+
state: message.state
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
function actionExecutionMessageToAGUIMessage(actionExecutionMessage) {
|
|
105
|
+
return {
|
|
106
|
+
id: actionExecutionMessage.id,
|
|
107
|
+
function: {
|
|
108
|
+
name: actionExecutionMessage.name,
|
|
109
|
+
arguments: JSON.stringify(actionExecutionMessage.arguments)
|
|
110
|
+
},
|
|
111
|
+
type: "function"
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function gqlTextMessageToAGUIMessage(message) {
|
|
115
|
+
switch (message.role) {
|
|
116
|
+
case require_types.Role.Developer: return {
|
|
117
|
+
id: message.id,
|
|
118
|
+
role: "developer",
|
|
119
|
+
content: message.content
|
|
120
|
+
};
|
|
121
|
+
case require_types.Role.System: return {
|
|
122
|
+
id: message.id,
|
|
123
|
+
role: "system",
|
|
124
|
+
content: message.content
|
|
125
|
+
};
|
|
126
|
+
case require_types.Role.Assistant: return {
|
|
127
|
+
id: message.id,
|
|
128
|
+
role: "assistant",
|
|
129
|
+
content: message.content
|
|
130
|
+
};
|
|
131
|
+
case require_types.Role.User: return {
|
|
132
|
+
id: message.id,
|
|
133
|
+
role: "user",
|
|
134
|
+
content: message.content
|
|
135
|
+
};
|
|
136
|
+
default: throw new Error("Unknown message role");
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
function gqlResultMessageToAGUIMessage(message) {
|
|
140
|
+
return {
|
|
141
|
+
id: message.id,
|
|
142
|
+
role: "tool",
|
|
143
|
+
content: message.result,
|
|
144
|
+
toolCallId: message.actionExecutionId,
|
|
145
|
+
toolName: message.actionName
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
function gqlImageMessageToAGUIMessage(message) {
|
|
149
|
+
if (!validateImageFormat(message.format)) throw new Error(`Invalid image format: ${message.format}. Supported formats are: ${VALID_IMAGE_FORMATS.join(", ")}`);
|
|
150
|
+
if (!message.bytes || typeof message.bytes !== "string" || message.bytes.trim() === "") throw new Error("Image bytes must be a non-empty string");
|
|
151
|
+
const role = message.role === require_types.Role.Assistant ? "assistant" : "user";
|
|
152
|
+
return {
|
|
153
|
+
id: message.id,
|
|
154
|
+
role,
|
|
155
|
+
content: "",
|
|
156
|
+
image: {
|
|
157
|
+
format: message.format,
|
|
158
|
+
bytes: message.bytes
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
//#endregion
|
|
164
|
+
exports.gqlActionExecutionMessageToAGUIMessage = gqlActionExecutionMessageToAGUIMessage;
|
|
165
|
+
exports.gqlImageMessageToAGUIMessage = gqlImageMessageToAGUIMessage;
|
|
166
|
+
exports.gqlResultMessageToAGUIMessage = gqlResultMessageToAGUIMessage;
|
|
167
|
+
exports.gqlTextMessageToAGUIMessage = gqlTextMessageToAGUIMessage;
|
|
168
|
+
exports.gqlToAGUI = gqlToAGUI;
|
|
169
|
+
//# sourceMappingURL=gql-to-agui.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gql-to-agui.cjs","names":["MessageStatusCode"],"sources":["../../src/message-conversion/gql-to-agui.ts"],"sourcesContent":["import * as gql from \"../client\";\nimport agui from \"@copilotkit/shared\";\nimport { MessageStatusCode } from \"../graphql/@generated/graphql\";\n\n// Define valid image formats based on the supported formats in the codebase\nconst VALID_IMAGE_FORMATS = [\"jpeg\", \"png\", \"webp\", \"gif\"] as const;\ntype ValidImageFormat = (typeof VALID_IMAGE_FORMATS)[number];\n\n// Validation function for image format\nfunction validateImageFormat(format: string): format is ValidImageFormat {\n return VALID_IMAGE_FORMATS.includes(format as ValidImageFormat);\n}\n\n/*\n ----------------------------\n GQL Message -> AGUI Message\n ----------------------------\n*/\nexport function gqlToAGUI(\n messages: gql.Message[] | gql.Message,\n actions?: Record<string, any>,\n coAgentStateRenders?: Record<string, any>,\n): agui.Message[] {\n let aguiMessages: agui.Message[] = [];\n messages = Array.isArray(messages) ? messages : [messages];\n\n // Create a map of action execution ID to result for completed actions\n const actionResults = new Map<string, string>();\n for (const message of messages) {\n if (message.isResultMessage()) {\n actionResults.set(message.actionExecutionId, message.result);\n }\n }\n\n for (const message of messages) {\n if (message.isTextMessage()) {\n aguiMessages.push(gqlTextMessageToAGUIMessage(message));\n } else if (message.isResultMessage()) {\n aguiMessages.push(gqlResultMessageToAGUIMessage(message));\n } else if (message.isActionExecutionMessage()) {\n aguiMessages.push(\n gqlActionExecutionMessageToAGUIMessage(message, actions, actionResults),\n );\n } else if (message.isAgentStateMessage()) {\n aguiMessages.push(\n gqlAgentStateMessageToAGUIMessage(message, coAgentStateRenders),\n );\n } else if (message.isImageMessage()) {\n aguiMessages.push(gqlImageMessageToAGUIMessage(message));\n } else {\n throw new Error(\"Unknown message type\");\n }\n }\n\n return aguiMessages;\n}\n\nexport function gqlActionExecutionMessageToAGUIMessage(\n message: gql.ActionExecutionMessage,\n actions?: Record<string, any>,\n actionResults?: Map<string, string>,\n): agui.Message {\n // Check if we have actions and if there's a specific action or wild card action\n const hasSpecificAction =\n actions &&\n Object.values(actions).some((action: any) => action.name === message.name);\n const hasWildcardAction =\n actions &&\n Object.values(actions).some((action: any) => action.name === \"*\");\n\n if (!actions || (!hasSpecificAction && !hasWildcardAction)) {\n return {\n id: message.id,\n role: \"assistant\",\n toolCalls: [actionExecutionMessageToAGUIMessage(message)],\n name: message.name,\n };\n }\n\n // Find the specific action first, then fall back to wild card action\n const action =\n Object.values(actions).find(\n (action: any) => action.name === message.name,\n ) || Object.values(actions).find((action: any) => action.name === \"*\");\n\n // Create render function wrapper that provides proper props\n const createRenderWrapper = (originalRender: any) => {\n if (!originalRender) return undefined;\n\n return (props?: any) => {\n // Determine the correct status based on the same logic as RenderActionExecutionMessage\n let actionResult: any = actionResults?.get(message.id);\n let status: \"inProgress\" | \"executing\" | \"complete\" = \"inProgress\";\n\n if (actionResult !== undefined) {\n status = \"complete\";\n } else if (message.status?.code !== MessageStatusCode.Pending) {\n status = \"executing\";\n }\n\n // if props.result is a string, parse it as JSON but don't throw an error if it's not valid JSON\n if (typeof props?.result === \"string\") {\n try {\n props.result = JSON.parse(props.result);\n } catch (e) {\n /* do nothing */\n }\n }\n\n // if actionResult is a string, parse it as JSON but don't throw an error if it's not valid JSON\n if (typeof actionResult === \"string\") {\n try {\n actionResult = JSON.parse(actionResult);\n } catch (e) {\n /* do nothing */\n }\n }\n\n // Base props that all actions receive\n const baseProps = {\n status: props?.status || status,\n args: message.arguments || {},\n result: props?.result || actionResult || undefined,\n messageId: message.id,\n };\n\n // Add properties based on action type\n if (action.name === \"*\") {\n // Wildcard actions get the tool name; ensure it cannot be overridden by incoming props\n return originalRender({\n ...baseProps,\n ...props,\n name: message.name,\n });\n } else {\n // Regular actions get respond (defaulting to a no-op if not provided)\n const respond = props?.respond ?? (() => {});\n return originalRender({\n ...baseProps,\n ...props,\n respond,\n });\n }\n };\n };\n\n return {\n id: message.id,\n role: \"assistant\",\n content: \"\",\n toolCalls: [actionExecutionMessageToAGUIMessage(message)],\n generativeUI: createRenderWrapper(action.render),\n name: message.name,\n } as agui.AIMessage;\n}\n\nfunction gqlAgentStateMessageToAGUIMessage(\n message: gql.AgentStateMessage,\n coAgentStateRenders?: Record<string, any>,\n): agui.Message {\n if (\n coAgentStateRenders &&\n Object.values(coAgentStateRenders).some(\n (render: any) => render.name === message.agentName,\n )\n ) {\n const render = Object.values(coAgentStateRenders).find(\n (render: any) => render.name === message.agentName,\n );\n\n // Create render function wrapper that provides proper props\n const createRenderWrapper = (originalRender: any) => {\n if (!originalRender) return undefined;\n\n return (props?: any) => {\n // Determine the correct status based on the same logic as RenderActionExecutionMessage\n const state = message.state;\n\n // Provide the full props structure that the render function expects\n const renderProps = {\n state: state,\n };\n\n return originalRender(renderProps);\n };\n };\n\n return {\n id: message.id,\n role: \"assistant\",\n generativeUI: createRenderWrapper(render.render),\n agentName: message.agentName,\n state: message.state,\n };\n }\n\n return {\n id: message.id,\n role: \"assistant\",\n agentName: message.agentName,\n state: message.state,\n };\n}\n\nfunction actionExecutionMessageToAGUIMessage(\n actionExecutionMessage: gql.ActionExecutionMessage,\n): agui.ToolCall {\n return {\n id: actionExecutionMessage.id,\n function: {\n name: actionExecutionMessage.name,\n arguments: JSON.stringify(actionExecutionMessage.arguments),\n },\n type: \"function\",\n };\n}\n\nexport function gqlTextMessageToAGUIMessage(\n message: gql.TextMessage,\n): agui.Message {\n switch (message.role) {\n case gql.Role.Developer:\n return {\n id: message.id,\n role: \"developer\",\n content: message.content,\n };\n case gql.Role.System:\n return {\n id: message.id,\n role: \"system\",\n content: message.content,\n };\n case gql.Role.Assistant:\n return {\n id: message.id,\n role: \"assistant\",\n content: message.content,\n };\n case gql.Role.User:\n return {\n id: message.id,\n role: \"user\",\n content: message.content,\n };\n default:\n throw new Error(\"Unknown message role\");\n }\n}\n\nexport function gqlResultMessageToAGUIMessage(\n message: gql.ResultMessage,\n): agui.Message {\n return {\n id: message.id,\n role: \"tool\",\n content: message.result,\n toolCallId: message.actionExecutionId,\n toolName: message.actionName,\n };\n}\n\nexport function gqlImageMessageToAGUIMessage(\n message: gql.ImageMessage,\n): agui.Message {\n // Validate image format\n if (!validateImageFormat(message.format)) {\n throw new Error(\n `Invalid image format: ${message.format}. Supported formats are: ${VALID_IMAGE_FORMATS.join(\", \")}`,\n );\n }\n\n // Validate that bytes is a non-empty string\n if (\n !message.bytes ||\n typeof message.bytes !== \"string\" ||\n message.bytes.trim() === \"\"\n ) {\n throw new Error(\"Image bytes must be a non-empty string\");\n }\n\n // Determine the role based on the message role\n const role = message.role === gql.Role.Assistant ? \"assistant\" : \"user\";\n\n // Create the image message with proper typing\n const imageMessage: agui.Message = {\n id: message.id,\n role,\n content: \"\",\n image: {\n format: message.format,\n bytes: message.bytes,\n },\n };\n\n return imageMessage;\n}\n"],"mappings":";;;;AAKA,MAAM,sBAAsB;CAAC;CAAQ;CAAO;CAAQ;CAAM;AAI1D,SAAS,oBAAoB,QAA4C;AACvE,QAAO,oBAAoB,SAAS,OAA2B;;AAQjE,SAAgB,UACd,UACA,SACA,qBACgB;CAChB,IAAI,eAA+B,EAAE;AACrC,YAAW,MAAM,QAAQ,SAAS,GAAG,WAAW,CAAC,SAAS;CAG1D,MAAM,gCAAgB,IAAI,KAAqB;AAC/C,MAAK,MAAM,WAAW,SACpB,KAAI,QAAQ,iBAAiB,CAC3B,eAAc,IAAI,QAAQ,mBAAmB,QAAQ,OAAO;AAIhE,MAAK,MAAM,WAAW,SACpB,KAAI,QAAQ,eAAe,CACzB,cAAa,KAAK,4BAA4B,QAAQ,CAAC;UAC9C,QAAQ,iBAAiB,CAClC,cAAa,KAAK,8BAA8B,QAAQ,CAAC;UAChD,QAAQ,0BAA0B,CAC3C,cAAa,KACX,uCAAuC,SAAS,SAAS,cAAc,CACxE;UACQ,QAAQ,qBAAqB,CACtC,cAAa,KACX,kCAAkC,SAAS,oBAAoB,CAChE;UACQ,QAAQ,gBAAgB,CACjC,cAAa,KAAK,6BAA6B,QAAQ,CAAC;KAExD,OAAM,IAAI,MAAM,uBAAuB;AAI3C,QAAO;;AAGT,SAAgB,uCACd,SACA,SACA,eACc;CAEd,MAAM,oBACJ,WACA,OAAO,OAAO,QAAQ,CAAC,MAAM,WAAgB,OAAO,SAAS,QAAQ,KAAK;CAC5E,MAAM,oBACJ,WACA,OAAO,OAAO,QAAQ,CAAC,MAAM,WAAgB,OAAO,SAAS,IAAI;AAEnE,KAAI,CAAC,WAAY,CAAC,qBAAqB,CAAC,kBACtC,QAAO;EACL,IAAI,QAAQ;EACZ,MAAM;EACN,WAAW,CAAC,oCAAoC,QAAQ,CAAC;EACzD,MAAM,QAAQ;EACf;CAIH,MAAM,SACJ,OAAO,OAAO,QAAQ,CAAC,MACpB,WAAgB,OAAO,SAAS,QAAQ,KAC1C,IAAI,OAAO,OAAO,QAAQ,CAAC,MAAM,WAAgB,OAAO,SAAS,IAAI;CAGxE,MAAM,uBAAuB,mBAAwB;AACnD,MAAI,CAAC,eAAgB,QAAO;AAE5B,UAAQ,UAAgB;GAEtB,IAAI,eAAoB,eAAe,IAAI,QAAQ,GAAG;GACtD,IAAI,SAAkD;AAEtD,OAAI,iBAAiB,OACnB,UAAS;YACA,QAAQ,QAAQ,SAASA,kCAAkB,QACpD,UAAS;AAIX,OAAI,OAAO,OAAO,WAAW,SAC3B,KAAI;AACF,UAAM,SAAS,KAAK,MAAM,MAAM,OAAO;YAChC,GAAG;AAMd,OAAI,OAAO,iBAAiB,SAC1B,KAAI;AACF,mBAAe,KAAK,MAAM,aAAa;YAChC,GAAG;GAMd,MAAM,YAAY;IAChB,QAAQ,OAAO,UAAU;IACzB,MAAM,QAAQ,aAAa,EAAE;IAC7B,QAAQ,OAAO,UAAU,gBAAgB;IACzC,WAAW,QAAQ;IACpB;AAGD,OAAI,OAAO,SAAS,IAElB,QAAO,eAAe;IACpB,GAAG;IACH,GAAG;IACH,MAAM,QAAQ;IACf,CAAC;QACG;IAEL,MAAM,UAAU,OAAO,kBAAkB;AACzC,WAAO,eAAe;KACpB,GAAG;KACH,GAAG;KACH;KACD,CAAC;;;;AAKR,QAAO;EACL,IAAI,QAAQ;EACZ,MAAM;EACN,SAAS;EACT,WAAW,CAAC,oCAAoC,QAAQ,CAAC;EACzD,cAAc,oBAAoB,OAAO,OAAO;EAChD,MAAM,QAAQ;EACf;;AAGH,SAAS,kCACP,SACA,qBACc;AACd,KACE,uBACA,OAAO,OAAO,oBAAoB,CAAC,MAChC,WAAgB,OAAO,SAAS,QAAQ,UAC1C,EACD;EACA,MAAM,SAAS,OAAO,OAAO,oBAAoB,CAAC,MAC/C,WAAgB,OAAO,SAAS,QAAQ,UAC1C;EAGD,MAAM,uBAAuB,mBAAwB;AACnD,OAAI,CAAC,eAAgB,QAAO;AAE5B,WAAQ,UAAgB;AAStB,WAAO,eAJa,EAClB,OAJY,QAAQ,OAKrB,CAEiC;;;AAItC,SAAO;GACL,IAAI,QAAQ;GACZ,MAAM;GACN,cAAc,oBAAoB,OAAO,OAAO;GAChD,WAAW,QAAQ;GACnB,OAAO,QAAQ;GAChB;;AAGH,QAAO;EACL,IAAI,QAAQ;EACZ,MAAM;EACN,WAAW,QAAQ;EACnB,OAAO,QAAQ;EAChB;;AAGH,SAAS,oCACP,wBACe;AACf,QAAO;EACL,IAAI,uBAAuB;EAC3B,UAAU;GACR,MAAM,uBAAuB;GAC7B,WAAW,KAAK,UAAU,uBAAuB,UAAU;GAC5D;EACD,MAAM;EACP;;AAGH,SAAgB,4BACd,SACc;AACd,SAAQ,QAAQ,MAAhB;EACE,wBAAc,UACZ,QAAO;GACL,IAAI,QAAQ;GACZ,MAAM;GACN,SAAS,QAAQ;GAClB;EACH,wBAAc,OACZ,QAAO;GACL,IAAI,QAAQ;GACZ,MAAM;GACN,SAAS,QAAQ;GAClB;EACH,wBAAc,UACZ,QAAO;GACL,IAAI,QAAQ;GACZ,MAAM;GACN,SAAS,QAAQ;GAClB;EACH,wBAAc,KACZ,QAAO;GACL,IAAI,QAAQ;GACZ,MAAM;GACN,SAAS,QAAQ;GAClB;EACH,QACE,OAAM,IAAI,MAAM,uBAAuB;;;AAI7C,SAAgB,8BACd,SACc;AACd,QAAO;EACL,IAAI,QAAQ;EACZ,MAAM;EACN,SAAS,QAAQ;EACjB,YAAY,QAAQ;EACpB,UAAU,QAAQ;EACnB;;AAGH,SAAgB,6BACd,SACc;AAEd,KAAI,CAAC,oBAAoB,QAAQ,OAAO,CACtC,OAAM,IAAI,MACR,yBAAyB,QAAQ,OAAO,2BAA2B,oBAAoB,KAAK,KAAK,GAClG;AAIH,KACE,CAAC,QAAQ,SACT,OAAO,QAAQ,UAAU,YACzB,QAAQ,MAAM,MAAM,KAAK,GAEzB,OAAM,IAAI,MAAM,yCAAyC;CAI3D,MAAM,OAAO,QAAQ,4BAAkB,YAAY,cAAc;AAajE,QAVmC;EACjC,IAAI,QAAQ;EACZ;EACA,SAAS;EACT,OAAO;GACL,QAAQ,QAAQ;GAChB,OAAO,QAAQ;GAChB;EACF"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import '@graphql-typed-document-node/core';
|
|
1
|
+
import { ActionExecutionMessage, ImageMessage, Message, ResultMessage, TextMessage } from "../client/types.cjs";
|
|
2
|
+
import "../client/index.cjs";
|
|
3
|
+
import agui from "@copilotkit/shared";
|
|
5
4
|
|
|
5
|
+
//#region src/message-conversion/gql-to-agui.d.ts
|
|
6
6
|
declare function gqlToAGUI(messages: Message[] | Message, actions?: Record<string, any>, coAgentStateRenders?: Record<string, any>): agui.Message[];
|
|
7
7
|
declare function gqlActionExecutionMessageToAGUIMessage(message: ActionExecutionMessage, actions?: Record<string, any>, actionResults?: Map<string, string>): agui.Message;
|
|
8
8
|
declare function gqlTextMessageToAGUIMessage(message: TextMessage): agui.Message;
|
|
9
9
|
declare function gqlResultMessageToAGUIMessage(message: ResultMessage): agui.Message;
|
|
10
10
|
declare function gqlImageMessageToAGUIMessage(message: ImageMessage): agui.Message;
|
|
11
|
-
|
|
11
|
+
//#endregion
|
|
12
12
|
export { gqlActionExecutionMessageToAGUIMessage, gqlImageMessageToAGUIMessage, gqlResultMessageToAGUIMessage, gqlTextMessageToAGUIMessage, gqlToAGUI };
|
|
13
|
+
//# sourceMappingURL=gql-to-agui.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gql-to-agui.d.cts","names":[],"sources":["../../src/message-conversion/gql-to-agui.ts"],"mappings":";;;;;iBAkBgB,SAAA,CACd,QAAA,EAAU,OAAA,KAAgB,OAAA,EAC1B,OAAA,GAAU,MAAA,eACV,mBAAA,GAAsB,MAAA,gBACrB,IAAA,CAAK,OAAA;AAAA,iBAmCQ,sCAAA,CACd,OAAA,EAAS,sBAAA,EACT,OAAA,GAAU,MAAA,eACV,aAAA,GAAgB,GAAA,mBACf,IAAA,CAAK,OAAA;AAAA,iBA4JQ,2BAAA,CACd,OAAA,EAAS,WAAA,GACR,IAAA,CAAK,OAAA;AAAA,iBA+BQ,6BAAA,CACd,OAAA,EAAS,aAAA,GACR,IAAA,CAAK,OAAA;AAAA,iBAUQ,4BAAA,CACd,OAAA,EAAS,YAAA,GACR,IAAA,CAAK,OAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ActionExecutionMessage, ImageMessage, Message, ResultMessage, TextMessage } from "../client/types.mjs";
|
|
2
|
+
import "../client/index.mjs";
|
|
3
|
+
import agui from "@copilotkit/shared";
|
|
4
|
+
|
|
5
|
+
//#region src/message-conversion/gql-to-agui.d.ts
|
|
6
|
+
declare function gqlToAGUI(messages: Message[] | Message, actions?: Record<string, any>, coAgentStateRenders?: Record<string, any>): agui.Message[];
|
|
7
|
+
declare function gqlActionExecutionMessageToAGUIMessage(message: ActionExecutionMessage, actions?: Record<string, any>, actionResults?: Map<string, string>): agui.Message;
|
|
8
|
+
declare function gqlTextMessageToAGUIMessage(message: TextMessage): agui.Message;
|
|
9
|
+
declare function gqlResultMessageToAGUIMessage(message: ResultMessage): agui.Message;
|
|
10
|
+
declare function gqlImageMessageToAGUIMessage(message: ImageMessage): agui.Message;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { gqlActionExecutionMessageToAGUIMessage, gqlImageMessageToAGUIMessage, gqlResultMessageToAGUIMessage, gqlTextMessageToAGUIMessage, gqlToAGUI };
|
|
13
|
+
//# sourceMappingURL=gql-to-agui.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gql-to-agui.d.mts","names":[],"sources":["../../src/message-conversion/gql-to-agui.ts"],"mappings":";;;;;iBAkBgB,SAAA,CACd,QAAA,EAAU,OAAA,KAAgB,OAAA,EAC1B,OAAA,GAAU,MAAA,eACV,mBAAA,GAAsB,MAAA,gBACrB,IAAA,CAAK,OAAA;AAAA,iBAmCQ,sCAAA,CACd,OAAA,EAAS,sBAAA,EACT,OAAA,GAAU,MAAA,eACV,aAAA,GAAgB,GAAA,mBACf,IAAA,CAAK,OAAA;AAAA,iBA4JQ,2BAAA,CACd,OAAA,EAAS,WAAA,GACR,IAAA,CAAK,OAAA;AAAA,iBA+BQ,6BAAA,CACd,OAAA,EAAS,aAAA,GACR,IAAA,CAAK,OAAA;AAAA,iBAUQ,4BAAA,CACd,OAAA,EAAS,YAAA,GACR,IAAA,CAAK,OAAA"}
|