@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 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/message-conversion/agui-to-gql.test.ts"],"sourcesContent":["import { describe, test, expect, vi } from \"vitest\";\nimport * as gql from \"../client\";\nimport agui from \"@copilotkit/shared\";\nimport {\n aguiToGQL,\n aguiTextMessageToGQLMessage,\n aguiToolCallToGQLActionExecution,\n aguiToolMessageToGQLResultMessage,\n aguiMessageWithRenderToGQL,\n aguiMessageWithImageToGQLMessage,\n} from \"./agui-to-gql\";\n\ndescribe(\"agui-to-gql\", () => {\n describe(\"aguiTextMessageToGQLMessage\", () => {\n test(\"should convert developer message\", () => {\n const aguiMessage: agui.Message = {\n id: \"dev-message-id\",\n role: \"developer\",\n content: \"Hello from developer\",\n };\n\n const result = aguiTextMessageToGQLMessage(aguiMessage);\n\n expect(result).toBeInstanceOf(gql.TextMessage);\n expect(result.id).toBe(\"dev-message-id\");\n expect(result.content).toBe(\"Hello from developer\");\n expect(result.role).toBe(gql.Role.Developer);\n });\n\n test(\"should convert system message\", () => {\n const aguiMessage: agui.Message = {\n id: \"system-message-id\",\n role: \"system\",\n content: \"System instruction\",\n };\n\n const result = aguiTextMessageToGQLMessage(aguiMessage);\n\n expect(result).toBeInstanceOf(gql.TextMessage);\n expect(result.id).toBe(\"system-message-id\");\n expect(result.content).toBe(\"System instruction\");\n expect(result.role).toBe(gql.Role.System);\n });\n\n test(\"should convert assistant message\", () => {\n const aguiMessage: agui.Message = {\n id: \"assistant-message-id\",\n role: \"assistant\",\n content: \"Assistant response\",\n };\n\n const result = aguiTextMessageToGQLMessage(aguiMessage);\n\n expect(result).toBeInstanceOf(gql.TextMessage);\n expect(result.id).toBe(\"assistant-message-id\");\n expect(result.content).toBe(\"Assistant response\");\n expect(result.role).toBe(gql.Role.Assistant);\n });\n\n test(\"should convert user message\", () => {\n const aguiMessage: agui.Message = {\n id: \"user-message-id\",\n role: \"user\",\n content: \"User input\",\n };\n\n const result = aguiTextMessageToGQLMessage(aguiMessage);\n\n expect(result).toBeInstanceOf(gql.TextMessage);\n expect(result.id).toBe(\"user-message-id\");\n expect(result.content).toBe(\"User input\");\n expect(result.role).toBe(gql.Role.User);\n });\n\n test(\"should throw error for unsupported role\", () => {\n const aguiMessage: agui.Message = {\n id: \"tool-message-id\",\n role: \"tool\",\n content: \"Tool response\",\n toolCallId: \"tool-call-id\",\n };\n\n expect(() => aguiTextMessageToGQLMessage(aguiMessage)).toThrow(\n \"Cannot convert message with role tool to TextMessage\",\n );\n });\n\n test(\"should handle undefined content\", () => {\n const aguiMessage: agui.Message = {\n id: \"assistant-message-id\",\n role: \"assistant\",\n content: undefined,\n } as any;\n\n const result = aguiTextMessageToGQLMessage(aguiMessage);\n\n expect(result.content).toBe(\"\");\n });\n });\n\n describe(\"aguiToolCallToGQLActionExecution\", () => {\n test(\"should convert function tool call to action execution message\", () => {\n const toolCall: agui.ToolCall = {\n id: \"tool-call-id\",\n type: \"function\",\n function: {\n name: \"testFunction\",\n arguments: JSON.stringify({ param: \"value\" }),\n },\n };\n\n const result = aguiToolCallToGQLActionExecution(\n toolCall,\n \"parent-message-id\",\n );\n\n expect(result).toBeInstanceOf(gql.ActionExecutionMessage);\n expect(result.id).toBe(\"tool-call-id\");\n expect(result.name).toBe(\"testFunction\");\n expect(result.arguments).toEqual({ param: \"value\" });\n expect(result.parentMessageId).toBe(\"parent-message-id\");\n });\n\n test(\"should throw error for unsupported tool call type\", () => {\n const toolCall = {\n id: \"tool-call-id\",\n type: \"unsupported-type\",\n function: {\n name: \"testFunction\",\n arguments: \"{}\",\n },\n } as any;\n\n expect(() =>\n aguiToolCallToGQLActionExecution(toolCall, \"parent-id\"),\n ).toThrow(\"Unsupported tool call type\");\n });\n });\n\n describe(\"aguiToolMessageToGQLResultMessage\", () => {\n test(\"should convert tool message to result message\", () => {\n const aguiMessage: agui.Message = {\n id: \"tool-message-id\",\n role: \"tool\",\n content: \"Tool execution result\",\n toolCallId: \"tool-call-id\",\n };\n\n const toolCallNames = { \"tool-call-id\": \"testFunction\" };\n const result = aguiToolMessageToGQLResultMessage(\n aguiMessage,\n toolCallNames,\n );\n\n expect(result).toBeInstanceOf(gql.ResultMessage);\n expect(result.id).toBe(\"tool-message-id\");\n expect(result.result).toBe(\"Tool execution result\");\n expect(result.actionExecutionId).toBe(\"tool-call-id\");\n expect(result.actionName).toBe(\"testFunction\");\n });\n\n test(\"should throw error for non-tool message\", () => {\n const aguiMessage: agui.Message = {\n id: \"assistant-message-id\",\n role: \"assistant\",\n content: \"Assistant response\",\n };\n\n expect(() => aguiToolMessageToGQLResultMessage(aguiMessage, {})).toThrow(\n \"Cannot convert message with role assistant to ResultMessage\",\n );\n });\n\n test(\"should throw error for tool message without toolCallId\", () => {\n const aguiMessage = {\n id: \"tool-message-id\",\n role: \"tool\",\n content: \"Tool execution result\",\n } as any;\n\n expect(() => aguiToolMessageToGQLResultMessage(aguiMessage, {})).toThrow(\n \"Tool message must have a toolCallId\",\n );\n });\n\n test(\"should handle undefined content\", () => {\n const aguiMessage: agui.Message = {\n id: \"tool-message-id\",\n role: \"tool\",\n content: undefined,\n toolCallId: \"tool-call-id\",\n } as any;\n\n const toolCallNames = { \"tool-call-id\": \"testFunction\" };\n const result = aguiToolMessageToGQLResultMessage(\n aguiMessage,\n toolCallNames,\n );\n\n expect(result.result).toBe(\"\");\n expect(result.actionName).toBe(\"testFunction\");\n });\n });\n\n describe(\"aguiToGQL\", () => {\n test(\"should convert an array of text messages\", () => {\n const aguiMessages: agui.Message[] = [\n {\n id: \"dev-1\",\n role: \"developer\",\n content: \"Hello\",\n },\n {\n id: \"assistant-1\",\n role: \"assistant\",\n content: \"Hi there\",\n },\n ];\n\n const result = aguiToGQL(aguiMessages);\n\n expect(result).toHaveLength(2);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[0].id).toBe(\"dev-1\");\n expect((result[0] as gql.TextMessage).content).toBe(\"Hello\");\n expect((result[0] as gql.TextMessage).role).toBe(gql.Role.Developer);\n\n expect(result[1]).toBeInstanceOf(gql.TextMessage);\n expect(result[1].id).toBe(\"assistant-1\");\n expect((result[1] as gql.TextMessage).content).toBe(\"Hi there\");\n expect((result[1] as gql.TextMessage).role).toBe(gql.Role.Assistant);\n });\n\n test(\"should convert an array of text messages including user messages\", () => {\n const aguiMessages: agui.Message[] = [\n {\n id: \"user-1\",\n role: \"user\",\n content: \"Hello from user\",\n },\n {\n id: \"assistant-1\",\n role: \"assistant\",\n content: \"Hi there\",\n },\n {\n id: \"user-2\",\n role: \"user\",\n content: \"Another user message\",\n },\n ];\n\n const result = aguiToGQL(aguiMessages);\n\n expect(result).toHaveLength(3);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[0].id).toBe(\"user-1\");\n expect((result[0] as gql.TextMessage).content).toBe(\"Hello from user\");\n expect((result[0] as gql.TextMessage).role).toBe(gql.Role.User);\n\n expect(result[1]).toBeInstanceOf(gql.TextMessage);\n expect(result[1].id).toBe(\"assistant-1\");\n expect((result[1] as gql.TextMessage).content).toBe(\"Hi there\");\n expect((result[1] as gql.TextMessage).role).toBe(gql.Role.Assistant);\n\n expect(result[2]).toBeInstanceOf(gql.TextMessage);\n expect(result[2].id).toBe(\"user-2\");\n expect((result[2] as gql.TextMessage).content).toBe(\n \"Another user message\",\n );\n expect((result[2] as gql.TextMessage).role).toBe(gql.Role.User);\n });\n\n test(\"should handle assistant messages with tool calls\", () => {\n const aguiMessages: agui.Message[] = [\n {\n id: \"assistant-1\",\n role: \"assistant\",\n content: \"I'll execute a function\",\n toolCalls: [\n {\n id: \"tool-call-1\",\n type: \"function\",\n function: {\n name: \"testFunction\",\n arguments: JSON.stringify({ param: \"value\" }),\n },\n },\n ],\n },\n ];\n\n const result = aguiToGQL(aguiMessages);\n\n expect(result).toHaveLength(2);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[0].id).toBe(\"assistant-1\");\n\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect(result[1].id).toBe(\"tool-call-1\");\n expect((result[1] as gql.ActionExecutionMessage).name).toBe(\n \"testFunction\",\n );\n expect((result[1] as gql.ActionExecutionMessage).arguments).toEqual({\n param: \"value\",\n });\n expect((result[1] as gql.ActionExecutionMessage).parentMessageId).toBe(\n \"assistant-1\",\n );\n });\n\n test(\"should handle multiple tool calls in assistant message\", () => {\n const aguiMessages: agui.Message[] = [\n {\n id: \"assistant-1\",\n role: \"assistant\",\n content: \"I'll execute multiple functions\",\n toolCalls: [\n {\n id: \"tool-call-1\",\n type: \"function\",\n function: {\n name: \"firstFunction\",\n arguments: JSON.stringify({ param: \"value1\" }),\n },\n },\n {\n id: \"tool-call-2\",\n type: \"function\",\n function: {\n name: \"secondFunction\",\n arguments: JSON.stringify({ param: \"value2\" }),\n },\n },\n ],\n },\n ];\n\n const result = aguiToGQL(aguiMessages);\n\n expect(result).toHaveLength(3);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect(result[1].id).toBe(\"tool-call-1\");\n expect((result[1] as gql.ActionExecutionMessage).name).toBe(\n \"firstFunction\",\n );\n\n expect(result[2]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect(result[2].id).toBe(\"tool-call-2\");\n expect((result[2] as gql.ActionExecutionMessage).name).toBe(\n \"secondFunction\",\n );\n });\n\n test(\"should convert tool messages to result messages\", () => {\n const aguiMessages: agui.Message[] = [\n {\n id: \"tool-1\",\n role: \"tool\",\n content: \"Tool result\",\n toolCallId: \"tool-call-1\",\n },\n ];\n\n const result = aguiToGQL(aguiMessages);\n\n expect(result).toHaveLength(1);\n expect(result[0]).toBeInstanceOf(gql.ResultMessage);\n expect(result[0].id).toBe(\"tool-1\");\n expect((result[0] as gql.ResultMessage).result).toBe(\"Tool result\");\n expect((result[0] as gql.ResultMessage).actionExecutionId).toBe(\n \"tool-call-1\",\n );\n });\n\n test(\"should handle a mix of message types\", () => {\n const aguiMessages: agui.Message[] = [\n {\n id: \"dev-1\",\n role: \"developer\",\n content: \"Can you run a function?\",\n },\n {\n id: \"assistant-1\",\n role: \"assistant\",\n content: \"Yes, I'll run it\",\n toolCalls: [\n {\n id: \"tool-call-1\",\n type: \"function\",\n function: {\n name: \"testFunction\",\n arguments: JSON.stringify({ param: \"value\" }),\n },\n },\n ],\n },\n {\n id: \"tool-1\",\n role: \"tool\",\n content: \"Function result\",\n toolCallId: \"tool-call-1\",\n },\n ];\n\n const result = aguiToGQL(aguiMessages);\n\n expect(result).toHaveLength(4);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[0].id).toBe(\"dev-1\");\n\n expect(result[1]).toBeInstanceOf(gql.TextMessage);\n expect(result[1].id).toBe(\"assistant-1\");\n\n expect(result[2]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect(result[2].id).toBe(\"tool-call-1\");\n\n expect(result[3]).toBeInstanceOf(gql.ResultMessage);\n expect(result[3].id).toBe(\"tool-1\");\n });\n\n test(\"should handle a mix of message types including user messages\", () => {\n const aguiMessages: agui.Message[] = [\n {\n id: \"user-1\",\n role: \"user\",\n content: \"Can you help me?\",\n },\n {\n id: \"assistant-1\",\n role: \"assistant\",\n content: \"Yes, I'll help you\",\n toolCalls: [\n {\n id: \"tool-call-1\",\n type: \"function\",\n function: {\n name: \"helpFunction\",\n arguments: JSON.stringify({ query: \"help\" }),\n },\n },\n ],\n },\n {\n id: \"tool-1\",\n role: \"tool\",\n content: \"Help result\",\n toolCallId: \"tool-call-1\",\n },\n {\n id: \"user-2\",\n role: \"user\",\n content: \"Thank you!\",\n },\n ];\n\n const result = aguiToGQL(aguiMessages);\n\n expect(result).toHaveLength(5);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[0].id).toBe(\"user-1\");\n expect((result[0] as gql.TextMessage).role).toBe(gql.Role.User);\n\n expect(result[1]).toBeInstanceOf(gql.TextMessage);\n expect(result[1].id).toBe(\"assistant-1\");\n expect((result[1] as gql.TextMessage).role).toBe(gql.Role.Assistant);\n\n expect(result[2]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect(result[2].id).toBe(\"tool-call-1\");\n\n expect(result[3]).toBeInstanceOf(gql.ResultMessage);\n expect(result[3].id).toBe(\"tool-1\");\n\n expect(result[4]).toBeInstanceOf(gql.TextMessage);\n expect(result[4].id).toBe(\"user-2\");\n expect((result[4] as gql.TextMessage).role).toBe(gql.Role.User);\n });\n });\n\n describe(\"aguiMessageWithRenderToGQL\", () => {\n test(\"should handle assistant message with tool calls and render function\", () => {\n const mockRender = () => \"Test Render\";\n const aguiMessage: agui.Message = {\n id: \"assistant-1\",\n role: \"assistant\",\n content: \"I'll execute a function\",\n toolCalls: [\n {\n id: \"tool-call-1\",\n type: \"function\",\n function: {\n name: \"testFunction\",\n arguments: JSON.stringify({ param: \"value\" }),\n },\n },\n ],\n generativeUI: mockRender,\n };\n\n const actions: Record<string, any> = {\n testFunction: {\n name: \"testFunction\",\n },\n };\n\n const result = aguiMessageWithRenderToGQL(aguiMessage, actions);\n\n expect(result).toHaveLength(2);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n\n // Check that the render function was preserved in actions\n expect(actions.testFunction.render).toBe(mockRender);\n });\n\n test(\"should handle assistant message with render function but no tool calls\", () => {\n const mockRender = () => \"Agent State Render\";\n const aguiMessage: agui.Message = {\n id: \"agent-state-1\",\n role: \"assistant\",\n generativeUI: mockRender,\n };\n\n const coAgentStateRenders: Record<string, any> = {};\n\n const result = aguiMessageWithRenderToGQL(\n aguiMessage,\n undefined,\n coAgentStateRenders,\n );\n\n expect(result).toHaveLength(1);\n expect(result[0]).toBeInstanceOf(gql.AgentStateMessage);\n expect((result[0] as gql.AgentStateMessage).agentName).toBe(\"unknown\");\n\n // Check that the render function was preserved in coAgentStateRenders\n expect(coAgentStateRenders.unknown.render).toBe(mockRender);\n });\n\n test(\"should handle regular assistant message without render function\", () => {\n const aguiMessage: agui.Message = {\n id: \"assistant-1\",\n role: \"assistant\",\n content: \"Regular assistant message\",\n };\n\n const result = aguiMessageWithRenderToGQL(aguiMessage);\n\n expect(result).toHaveLength(1);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect((result[0] as gql.TextMessage).content).toBe(\n \"Regular assistant message\",\n );\n });\n\n test(\"should handle non-assistant messages normally\", () => {\n const aguiMessage: agui.Message = {\n id: \"user-1\",\n role: \"user\",\n content: \"User message\",\n };\n\n const result = aguiMessageWithRenderToGQL(aguiMessage);\n\n expect(result).toHaveLength(1);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect((result[0] as gql.TextMessage).role).toBe(gql.Role.User);\n });\n\n test(\"should handle multiple tool calls with render functions\", () => {\n const mockRender1 = () => \"Render 1\";\n const mockRender2 = () => \"Render 2\";\n const aguiMessage: agui.Message = {\n id: \"assistant-1\",\n role: \"assistant\",\n content: \"I'll execute multiple functions\",\n toolCalls: [\n {\n id: \"tool-call-1\",\n type: \"function\",\n function: {\n name: \"firstFunction\",\n arguments: JSON.stringify({ param: \"value1\" }),\n },\n },\n {\n id: \"tool-call-2\",\n type: \"function\",\n function: {\n name: \"secondFunction\",\n arguments: JSON.stringify({ param: \"value2\" }),\n },\n },\n ],\n generativeUI: mockRender1,\n };\n\n const actions: Record<string, any> = {\n firstFunction: { name: \"firstFunction\" },\n secondFunction: { name: \"secondFunction\" },\n };\n\n const result = aguiMessageWithRenderToGQL(aguiMessage, actions);\n\n expect(result).toHaveLength(3);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect(result[2]).toBeInstanceOf(gql.ActionExecutionMessage);\n\n // Assert that all actions receive the render function\n Object.values(actions).forEach((action) => {\n expect(action.render).toBe(mockRender1);\n });\n });\n\n test(\"should verify render function receives correct props including name\", () => {\n const mockRender = vi.fn(\n (props) =>\n `Rendered: ${props.name} with args: ${JSON.stringify(props.args)}`,\n );\n const aguiMessage: agui.Message = {\n id: \"assistant-render-props\",\n role: \"assistant\",\n content: \"I'll execute a function\",\n toolCalls: [\n {\n id: \"tool-call-render-props\",\n type: \"function\",\n function: {\n name: \"testFunction\",\n arguments: JSON.stringify({ param: \"value\" }),\n },\n },\n ],\n generativeUI: mockRender,\n };\n\n const actions: Record<string, any> = {\n testFunction: { name: \"testFunction\" },\n };\n\n const result = aguiMessageWithRenderToGQL(aguiMessage, actions);\n\n expect(result).toHaveLength(2);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n\n // Check that the render function was preserved in actions\n expect(actions.testFunction.render).toBe(mockRender);\n\n // Now test that when the render function is called, it receives the correct props\n // This simulates what happens when the render function is actually used\n if (actions.testFunction.render) {\n actions.testFunction.render({\n status: \"inProgress\",\n args: { param: \"value\" },\n result: undefined,\n respond: () => {},\n messageId: \"tool-call-render-props\",\n name: \"testFunction\",\n });\n\n expect(mockRender).toHaveBeenCalledWith({\n status: \"inProgress\",\n args: { param: \"value\" },\n result: undefined,\n respond: expect.any(Function),\n messageId: \"tool-call-render-props\",\n name: \"testFunction\",\n });\n }\n });\n });\n\n describe(\"aguiImageMessageToGQLMessage\", () => {\n test(\"should throw error for missing format or bytes in image message\", () => {\n const aguiMessage: agui.Message = {\n id: \"image-1\",\n role: \"assistant\",\n content: \"Image message\",\n } as any;\n\n expect(() => aguiMessageWithImageToGQLMessage(aguiMessage)).toThrow(\n \"Cannot convert message to ImageMessage: missing format or bytes\",\n );\n });\n\n test(\"should convert valid assistant image message\", () => {\n const aguiMessage: agui.Message = {\n id: \"image-2\",\n role: \"assistant\",\n image: {\n format: \"jpeg\",\n bytes: \"base64stringdata\",\n },\n };\n\n const result = aguiMessageWithImageToGQLMessage(aguiMessage);\n expect(result).toBeInstanceOf(gql.ImageMessage);\n expect(result.id).toBe(\"image-2\");\n expect(result.format).toBe(\"jpeg\");\n expect(result.bytes).toBe(\"base64stringdata\");\n expect(result.role).toBe(gql.Role.Assistant);\n });\n\n test(\"should convert valid user image message\", () => {\n const aguiMessage: agui.Message = {\n id: \"image-3\",\n role: \"user\",\n content: \"\",\n image: {\n format: \"png\",\n bytes: \"anotherbase64string\",\n },\n };\n\n const result = aguiMessageWithImageToGQLMessage(aguiMessage);\n expect(result).toBeInstanceOf(gql.ImageMessage);\n expect(result.id).toBe(\"image-3\");\n expect(result.format).toBe(\"png\");\n expect(result.bytes).toBe(\"anotherbase64string\");\n expect(result.role).toBe(gql.Role.User);\n });\n });\n\n describe(\"Wild Card Actions\", () => {\n test(\"should preserve render function for specific action\", () => {\n const mockRender = () => \"Specific Action Render\";\n const aguiMessage: agui.Message = {\n id: \"assistant-1\",\n role: \"assistant\",\n content: \"I'll execute a function\",\n toolCalls: [\n {\n id: \"tool-call-1\",\n type: \"function\",\n function: {\n name: \"specificAction\",\n arguments: JSON.stringify({ param: \"value\" }),\n },\n },\n ],\n generativeUI: mockRender,\n };\n\n const actions: Record<string, any> = {\n specificAction: { name: \"specificAction\" },\n };\n\n const result = aguiToGQL(aguiMessage, actions);\n\n expect(result).toHaveLength(2);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect(actions.specificAction.render).toBe(mockRender);\n });\n\n test(\"should preserve render function for wild card action\", () => {\n const mockRender = () => \"Wild Card Action Render\";\n const aguiMessage: agui.Message = {\n id: \"assistant-2\",\n role: \"assistant\",\n content: \"I'll execute an unknown function\",\n toolCalls: [\n {\n id: \"tool-call-2\",\n type: \"function\",\n function: {\n name: \"unknownAction\",\n arguments: JSON.stringify({ param: \"value\" }),\n },\n },\n ],\n generativeUI: mockRender,\n };\n\n const actions: Record<string, any> = {\n \"*\": { name: \"*\" },\n };\n\n const result = aguiToGQL(aguiMessage, actions);\n\n expect(result).toHaveLength(2);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect(actions[\"*\"].render).toBe(mockRender);\n });\n\n test(\"should prioritize specific action over wild card action\", () => {\n const mockRender = () => \"Prioritized Render\";\n const aguiMessage: agui.Message = {\n id: \"assistant-3\",\n role: \"assistant\",\n content: \"I'll execute a function\",\n toolCalls: [\n {\n id: \"tool-call-3\",\n type: \"function\",\n function: {\n name: \"specificAction\",\n arguments: JSON.stringify({ param: \"value\" }),\n },\n },\n ],\n generativeUI: mockRender,\n };\n\n const actions: Record<string, any> = {\n specificAction: { name: \"specificAction\" },\n \"*\": { name: \"*\" },\n };\n\n const result = aguiToGQL(aguiMessage, actions);\n\n expect(result).toHaveLength(2);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect(actions.specificAction.render).toBe(mockRender);\n expect(actions[\"*\"].render).toBeUndefined();\n });\n\n test(\"should not preserve render function when no matching action\", () => {\n const mockRender = () => \"Unmatched Render\";\n const aguiMessage: agui.Message = {\n id: \"assistant-4\",\n role: \"assistant\",\n content: \"I'll execute an unmatched function\",\n toolCalls: [\n {\n id: \"tool-call-4\",\n type: \"function\",\n function: {\n name: \"unmatchedAction\",\n arguments: JSON.stringify({ param: \"value\" }),\n },\n },\n ],\n generativeUI: mockRender,\n };\n\n const actions: Record<string, any> = {\n otherAction: { name: \"otherAction\" },\n };\n\n const result = aguiToGQL(aguiMessage, actions);\n\n expect(result).toHaveLength(2);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect(actions.otherAction.render).toBeUndefined();\n });\n\n test(\"should handle multiple tool calls with wild card action\", () => {\n const mockRender = () => \"Wild Card Render\";\n const aguiMessage: agui.Message = {\n id: \"assistant-5\",\n role: \"assistant\",\n content: \"I'll execute multiple functions\",\n toolCalls: [\n {\n id: \"tool-call-5\",\n type: \"function\",\n function: {\n name: \"firstFunction\",\n arguments: JSON.stringify({ param: \"value1\" }),\n },\n },\n {\n id: \"tool-call-6\",\n type: \"function\",\n function: {\n name: \"secondFunction\",\n arguments: JSON.stringify({ param: \"value2\" }),\n },\n },\n ],\n generativeUI: mockRender,\n };\n\n const actions: Record<string, any> = {\n \"*\": { name: \"*\" },\n };\n\n const result = aguiToGQL(aguiMessage, actions);\n\n expect(result).toHaveLength(3);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect(result[2]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect(actions[\"*\"].render).toBe(mockRender);\n });\n\n test(\"should handle mixed specific and wild card actions\", () => {\n const mockRender = () => \"Mixed Render\";\n const aguiMessage: agui.Message = {\n id: \"assistant-6\",\n role: \"assistant\",\n content: \"I'll execute mixed functions\",\n toolCalls: [\n {\n id: \"tool-call-7\",\n type: \"function\",\n function: {\n name: \"specificAction\",\n arguments: JSON.stringify({ param: \"value1\" }),\n },\n },\n {\n id: \"tool-call-8\",\n type: \"function\",\n function: {\n name: \"unknownAction\",\n arguments: JSON.stringify({ param: \"value2\" }),\n },\n },\n ],\n generativeUI: mockRender,\n };\n\n const actions: Record<string, any> = {\n specificAction: { name: \"specificAction\" },\n \"*\": { name: \"*\" },\n };\n\n const result = aguiToGQL(aguiMessage, actions);\n\n expect(result).toHaveLength(3);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect(result[2]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect(actions.specificAction.render).toBe(mockRender);\n // The wild card action should get the render function for the second tool call\n expect(actions[\"*\"].render).toBe(mockRender);\n });\n\n test(\"should handle no actions provided\", () => {\n const mockRender = () => \"No Actions Render\";\n const aguiMessage: agui.Message = {\n id: \"assistant-7\",\n role: \"assistant\",\n content: \"I'll execute a function\",\n toolCalls: [\n {\n id: \"tool-call-9\",\n type: \"function\",\n function: {\n name: \"anyAction\",\n arguments: JSON.stringify({ param: \"value\" }),\n },\n },\n ],\n generativeUI: mockRender,\n };\n\n const result = aguiToGQL(aguiMessage);\n\n expect(result).toHaveLength(2);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n });\n\n test(\"should handle empty actions object\", () => {\n const mockRender = () => \"Empty Actions Render\";\n const aguiMessage: agui.Message = {\n id: \"assistant-8\",\n role: \"assistant\",\n content: \"I'll execute a function\",\n toolCalls: [\n {\n id: \"tool-call-10\",\n type: \"function\",\n function: {\n name: \"anyAction\",\n arguments: JSON.stringify({ param: \"value\" }),\n },\n },\n ],\n generativeUI: mockRender,\n };\n\n const actions: Record<string, any> = {};\n\n const result = aguiToGQL(aguiMessage, actions);\n\n expect(result).toHaveLength(2);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n });\n\n test(\"should handle actions with null render functions\", () => {\n const mockRender = () => \"Null Render Test\";\n const aguiMessage: agui.Message = {\n id: \"assistant-9\",\n role: \"assistant\",\n content: \"I'll execute a function\",\n toolCalls: [\n {\n id: \"tool-call-11\",\n type: \"function\",\n function: {\n name: \"specificAction\",\n arguments: JSON.stringify({ param: \"value\" }),\n },\n },\n ],\n generativeUI: mockRender,\n };\n\n const actions: Record<string, any> = {\n specificAction: { name: \"specificAction\", render: null },\n \"*\": { name: \"*\", render: null },\n };\n\n const result = aguiToGQL(aguiMessage, actions);\n\n expect(result).toHaveLength(2);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n // The render function should still be assigned even if the action had null render\n expect(actions.specificAction.render).toBe(mockRender);\n });\n\n test(\"should handle actions with undefined render functions\", () => {\n const mockRender = () => \"Undefined Render Test\";\n const aguiMessage: agui.Message = {\n id: \"assistant-10\",\n role: \"assistant\",\n content: \"I'll execute a function\",\n toolCalls: [\n {\n id: \"tool-call-12\",\n type: \"function\",\n function: {\n name: \"wildcardAction\",\n arguments: JSON.stringify({ param: \"value\" }),\n },\n },\n ],\n generativeUI: mockRender,\n };\n\n const actions: Record<string, any> = {\n \"*\": { name: \"*\", render: undefined },\n };\n\n const result = aguiToGQL(aguiMessage, actions);\n\n expect(result).toHaveLength(2);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n // The render function should still be assigned even if the action had undefined render\n expect(actions[\"*\"].render).toBe(mockRender);\n });\n\n test(\"should handle tool calls with malformed arguments\", () => {\n const mockRender = () => \"Malformed Args Test\";\n const aguiMessage: agui.Message = {\n id: \"assistant-11\",\n role: \"assistant\",\n content: \"I'll execute a function\",\n toolCalls: [\n {\n id: \"tool-call-13\",\n type: \"function\",\n function: {\n name: \"wildcardAction\",\n arguments: \"invalid json {\", // Malformed JSON\n },\n },\n ],\n generativeUI: mockRender,\n };\n\n const actions: Record<string, any> = {\n \"*\": { name: \"*\" },\n };\n\n const result = aguiToGQL(aguiMessage, actions);\n\n expect(result).toHaveLength(2);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect(actions[\"*\"].render).toBe(mockRender);\n });\n\n test(\"should handle tool calls with empty arguments string\", () => {\n const mockRender = () => \"Empty Args Test\";\n const aguiMessage: agui.Message = {\n id: \"assistant-12\",\n role: \"assistant\",\n content: \"I'll execute a function\",\n toolCalls: [\n {\n id: \"tool-call-14\",\n type: \"function\",\n function: {\n name: \"wildcardAction\",\n arguments: \"\",\n },\n },\n ],\n generativeUI: mockRender,\n };\n\n const actions: Record<string, any> = {\n \"*\": { name: \"*\" },\n };\n\n const result = aguiToGQL(aguiMessage, actions);\n\n expect(result).toHaveLength(2);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect(actions[\"*\"].render).toBe(mockRender);\n });\n\n test(\"should handle multiple wild card actions in same object\", () => {\n const mockRender = () => \"Multiple Wildcards Test\";\n const aguiMessage: agui.Message = {\n id: \"assistant-13\",\n role: \"assistant\",\n content: \"I'll execute a function\",\n toolCalls: [\n {\n id: \"tool-call-15\",\n type: \"function\",\n function: {\n name: \"unknownAction\",\n arguments: JSON.stringify({ param: \"value\" }),\n },\n },\n ],\n generativeUI: mockRender,\n };\n\n const actions: Record<string, any> = {\n wildcard1: { name: \"*\" },\n wildcard2: { name: \"*\" },\n };\n\n const result = aguiToGQL(aguiMessage, actions);\n\n expect(result).toHaveLength(2);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n // Should assign to the first wild card action found\n expect(actions.wildcard1.render).toBe(mockRender);\n expect(actions.wildcard2.render).toBeUndefined();\n });\n\n test(\"should handle tool calls with object arguments (backward compatibility)\", () => {\n const mockRender = () => \"Object Args Test\";\n const aguiMessage: agui.Message = {\n id: \"assistant-14\",\n role: \"assistant\",\n content: \"I'll execute a function\",\n toolCalls: [\n {\n id: \"tool-call-16\",\n type: \"function\",\n function: {\n name: \"objectArgsAction\",\n arguments: { param: \"value\" } as any, // Object instead of string\n },\n },\n ],\n generativeUI: mockRender,\n };\n\n const actions: Record<string, any> = {\n \"*\": { name: \"*\" },\n };\n\n const result = aguiToGQL(aguiMessage, actions);\n\n expect(result).toHaveLength(2);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect((result[1] as any).arguments).toEqual({ param: \"value\" });\n expect(actions[\"*\"].render).toBe(mockRender);\n });\n\n test(\"should handle tool calls with null/undefined arguments\", () => {\n const mockRender = () => \"Null Args Test\";\n const aguiMessage: agui.Message = {\n id: \"assistant-15\",\n role: \"assistant\",\n content: \"I'll execute a function\",\n toolCalls: [\n {\n id: \"tool-call-17\",\n type: \"function\",\n function: {\n name: \"nullArgsAction\",\n arguments: null as any,\n },\n },\n ],\n generativeUI: mockRender,\n };\n\n const actions: Record<string, any> = {\n \"*\": { name: \"*\" },\n };\n\n const result = aguiToGQL(aguiMessage, actions);\n\n expect(result).toHaveLength(2);\n expect(result[0]).toBeInstanceOf(gql.TextMessage);\n expect(result[1]).toBeInstanceOf(gql.ActionExecutionMessage);\n expect((result[1] as any).arguments).toEqual({});\n expect(actions[\"*\"].render).toBe(mockRender);\n });\n\n test(\"should handle tool result messages with object content\", () => {\n const aguiMessage: agui.Message = {\n id: \"tool-result-1\",\n role: \"tool\",\n content: { status: \"success\", data: { value: 42 } } as any,\n toolCallId: \"tool-call-1\",\n toolName: \"testAction\",\n };\n\n const toolCallNames = { \"tool-call-1\": \"testAction\" };\n const result = aguiToGQL(aguiMessage);\n\n expect(result).toHaveLength(1);\n expect(result[0]).toBeInstanceOf(gql.ResultMessage);\n expect((result[0] as any).result).toBe(\n '{\"status\":\"success\",\"data\":{\"value\":42}}',\n );\n expect((result[0] as any).actionExecutionId).toBe(\"tool-call-1\");\n expect((result[0] as any).actionName).toBe(\"testAction\");\n });\n\n test(\"should handle tool result messages with non-string content types\", () => {\n const aguiMessage: agui.Message = {\n id: \"tool-result-2\",\n role: \"tool\",\n content: 42 as any,\n toolCallId: \"tool-call-2\",\n toolName: \"numberAction\",\n };\n\n const result = aguiToGQL(aguiMessage);\n\n expect(result).toHaveLength(1);\n expect(result[0]).toBeInstanceOf(gql.ResultMessage);\n expect((result[0] as any).result).toBe(\"42\");\n expect((result[0] as any).actionExecutionId).toBe(\"tool-call-2\");\n expect((result[0] as any).actionName).toBe(\"numberAction\");\n });\n\n test(\"should handle tool result messages with circular reference content\", () => {\n const circularObj: any = { status: \"success\" };\n circularObj.self = circularObj;\n\n const aguiMessage: agui.Message = {\n id: \"tool-result-3\",\n role: \"tool\",\n content: circularObj as any,\n toolCallId: \"tool-call-3\",\n toolName: \"circularAction\",\n };\n\n const result = aguiToGQL(aguiMessage);\n\n expect(result).toHaveLength(1);\n expect(result[0]).toBeInstanceOf(gql.ResultMessage);\n expect((result[0] as any).result).toBe(\"[object Object]\"); // Should fallback to String conversion\n expect((result[0] as any).actionExecutionId).toBe(\"tool-call-3\");\n expect((result[0] as any).actionName).toBe(\"circularAction\");\n });\n\n test(\"should handle tool result messages with boolean content\", () => {\n const aguiMessage: agui.Message = {\n id: \"tool-result-4\",\n role: \"tool\",\n content: true as any,\n toolCallId: \"tool-call-4\",\n toolName: \"booleanAction\",\n };\n\n const result = aguiToGQL(aguiMessage);\n\n expect(result).toHaveLength(1);\n expect(result[0]).toBeInstanceOf(gql.ResultMessage);\n expect((result[0] as any).result).toBe(\"true\");\n expect((result[0] as any).actionExecutionId).toBe(\"tool-call-4\");\n expect((result[0] as any).actionName).toBe(\"booleanAction\");\n });\n });\n});\n"],"mappings":"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","names":[]}
|
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/message-conversion/gql-to-agui.ts
|
|
21
|
-
var gql_to_agui_exports = {};
|
|
22
|
-
__export(gql_to_agui_exports, {
|
|
23
|
-
gqlActionExecutionMessageToAGUIMessage: () => gqlActionExecutionMessageToAGUIMessage,
|
|
24
|
-
gqlImageMessageToAGUIMessage: () => gqlImageMessageToAGUIMessage,
|
|
25
|
-
gqlResultMessageToAGUIMessage: () => gqlResultMessageToAGUIMessage,
|
|
26
|
-
gqlTextMessageToAGUIMessage: () => gqlTextMessageToAGUIMessage,
|
|
27
|
-
gqlToAGUI: () => gqlToAGUI
|
|
28
|
-
});
|
|
29
|
-
module.exports = __toCommonJS(gql_to_agui_exports);
|
|
30
|
-
|
|
31
|
-
// src/graphql/@generated/graphql.ts
|
|
32
|
-
var MessageRole = /* @__PURE__ */ ((MessageRole2) => {
|
|
33
|
-
MessageRole2["Assistant"] = "assistant";
|
|
34
|
-
MessageRole2["Developer"] = "developer";
|
|
35
|
-
MessageRole2["System"] = "system";
|
|
36
|
-
MessageRole2["Tool"] = "tool";
|
|
37
|
-
MessageRole2["User"] = "user";
|
|
38
|
-
return MessageRole2;
|
|
39
|
-
})(MessageRole || {});
|
|
40
|
-
|
|
41
|
-
// src/client/types.ts
|
|
42
|
-
var import_shared = require("@copilotkit/shared");
|
|
43
|
-
var import_shared2 = require("@copilotkit/shared");
|
|
44
|
-
var Role = MessageRole;
|
|
45
|
-
|
|
46
|
-
// src/message-conversion/gql-to-agui.ts
|
|
47
|
-
var VALID_IMAGE_FORMATS = ["jpeg", "png", "webp", "gif"];
|
|
48
|
-
function validateImageFormat(format) {
|
|
49
|
-
return VALID_IMAGE_FORMATS.includes(format);
|
|
50
|
-
}
|
|
51
|
-
function gqlToAGUI(messages, actions, coAgentStateRenders) {
|
|
52
|
-
let aguiMessages = [];
|
|
53
|
-
messages = Array.isArray(messages) ? messages : [messages];
|
|
54
|
-
const actionResults = /* @__PURE__ */ new Map();
|
|
55
|
-
for (const message of messages) {
|
|
56
|
-
if (message.isResultMessage()) {
|
|
57
|
-
actionResults.set(message.actionExecutionId, message.result);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
for (const message of messages) {
|
|
61
|
-
if (message.isTextMessage()) {
|
|
62
|
-
aguiMessages.push(gqlTextMessageToAGUIMessage(message));
|
|
63
|
-
} else if (message.isResultMessage()) {
|
|
64
|
-
aguiMessages.push(gqlResultMessageToAGUIMessage(message));
|
|
65
|
-
} else if (message.isActionExecutionMessage()) {
|
|
66
|
-
aguiMessages.push(
|
|
67
|
-
gqlActionExecutionMessageToAGUIMessage(message, actions, actionResults)
|
|
68
|
-
);
|
|
69
|
-
} else if (message.isAgentStateMessage()) {
|
|
70
|
-
aguiMessages.push(
|
|
71
|
-
gqlAgentStateMessageToAGUIMessage(message, coAgentStateRenders)
|
|
72
|
-
);
|
|
73
|
-
} else if (message.isImageMessage()) {
|
|
74
|
-
aguiMessages.push(gqlImageMessageToAGUIMessage(message));
|
|
75
|
-
} else {
|
|
76
|
-
throw new Error("Unknown message type");
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return aguiMessages;
|
|
80
|
-
}
|
|
81
|
-
function gqlActionExecutionMessageToAGUIMessage(message, actions, actionResults) {
|
|
82
|
-
const hasSpecificAction = actions && Object.values(actions).some((action2) => action2.name === message.name);
|
|
83
|
-
const hasWildcardAction = actions && Object.values(actions).some((action2) => action2.name === "*");
|
|
84
|
-
if (!actions || !hasSpecificAction && !hasWildcardAction) {
|
|
85
|
-
return {
|
|
86
|
-
id: message.id,
|
|
87
|
-
role: "assistant",
|
|
88
|
-
toolCalls: [actionExecutionMessageToAGUIMessage(message)],
|
|
89
|
-
name: message.name
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
const action = Object.values(actions).find(
|
|
93
|
-
(action2) => action2.name === message.name
|
|
94
|
-
) || Object.values(actions).find((action2) => action2.name === "*");
|
|
95
|
-
const createRenderWrapper = (originalRender) => {
|
|
96
|
-
if (!originalRender)
|
|
97
|
-
return void 0;
|
|
98
|
-
return (props) => {
|
|
99
|
-
var _a;
|
|
100
|
-
let actionResult = actionResults == null ? void 0 : actionResults.get(message.id);
|
|
101
|
-
let status = "inProgress";
|
|
102
|
-
if (actionResult !== void 0) {
|
|
103
|
-
status = "complete";
|
|
104
|
-
} else if (((_a = message.status) == null ? void 0 : _a.code) !== "Pending" /* Pending */) {
|
|
105
|
-
status = "executing";
|
|
106
|
-
}
|
|
107
|
-
if (typeof (props == null ? void 0 : props.result) === "string") {
|
|
108
|
-
try {
|
|
109
|
-
props.result = JSON.parse(props.result);
|
|
110
|
-
} catch (e) {
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
if (typeof actionResult === "string") {
|
|
114
|
-
try {
|
|
115
|
-
actionResult = JSON.parse(actionResult);
|
|
116
|
-
} catch (e) {
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
const baseProps = {
|
|
120
|
-
status: (props == null ? void 0 : props.status) || status,
|
|
121
|
-
args: message.arguments || {},
|
|
122
|
-
result: (props == null ? void 0 : props.result) || actionResult || void 0,
|
|
123
|
-
messageId: message.id
|
|
124
|
-
};
|
|
125
|
-
if (action.name === "*") {
|
|
126
|
-
return originalRender({
|
|
127
|
-
...baseProps,
|
|
128
|
-
...props,
|
|
129
|
-
name: message.name
|
|
130
|
-
});
|
|
131
|
-
} else {
|
|
132
|
-
const respond = (props == null ? void 0 : props.respond) ?? (() => {
|
|
133
|
-
});
|
|
134
|
-
return originalRender({
|
|
135
|
-
...baseProps,
|
|
136
|
-
...props,
|
|
137
|
-
respond
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
};
|
|
141
|
-
};
|
|
142
|
-
return {
|
|
143
|
-
id: message.id,
|
|
144
|
-
role: "assistant",
|
|
145
|
-
content: "",
|
|
146
|
-
toolCalls: [actionExecutionMessageToAGUIMessage(message)],
|
|
147
|
-
generativeUI: createRenderWrapper(action.render),
|
|
148
|
-
name: message.name
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
function gqlAgentStateMessageToAGUIMessage(message, coAgentStateRenders) {
|
|
152
|
-
if (coAgentStateRenders && Object.values(coAgentStateRenders).some(
|
|
153
|
-
(render) => render.name === message.agentName
|
|
154
|
-
)) {
|
|
155
|
-
const render = Object.values(coAgentStateRenders).find(
|
|
156
|
-
(render2) => render2.name === message.agentName
|
|
157
|
-
);
|
|
158
|
-
const createRenderWrapper = (originalRender) => {
|
|
159
|
-
if (!originalRender)
|
|
160
|
-
return void 0;
|
|
161
|
-
return (props) => {
|
|
162
|
-
const state = message.state;
|
|
163
|
-
const renderProps = {
|
|
164
|
-
state
|
|
165
|
-
};
|
|
166
|
-
return originalRender(renderProps);
|
|
167
|
-
};
|
|
168
|
-
};
|
|
169
|
-
return {
|
|
170
|
-
id: message.id,
|
|
171
|
-
role: "assistant",
|
|
172
|
-
generativeUI: createRenderWrapper(render.render),
|
|
173
|
-
agentName: message.agentName,
|
|
174
|
-
state: message.state
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
return {
|
|
178
|
-
id: message.id,
|
|
179
|
-
role: "assistant",
|
|
180
|
-
agentName: message.agentName,
|
|
181
|
-
state: message.state
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
function actionExecutionMessageToAGUIMessage(actionExecutionMessage) {
|
|
185
|
-
return {
|
|
186
|
-
id: actionExecutionMessage.id,
|
|
187
|
-
function: {
|
|
188
|
-
name: actionExecutionMessage.name,
|
|
189
|
-
arguments: JSON.stringify(actionExecutionMessage.arguments)
|
|
190
|
-
},
|
|
191
|
-
type: "function"
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
function gqlTextMessageToAGUIMessage(message) {
|
|
195
|
-
switch (message.role) {
|
|
196
|
-
case Role.Developer:
|
|
197
|
-
return {
|
|
198
|
-
id: message.id,
|
|
199
|
-
role: "developer",
|
|
200
|
-
content: message.content
|
|
201
|
-
};
|
|
202
|
-
case Role.System:
|
|
203
|
-
return {
|
|
204
|
-
id: message.id,
|
|
205
|
-
role: "system",
|
|
206
|
-
content: message.content
|
|
207
|
-
};
|
|
208
|
-
case Role.Assistant:
|
|
209
|
-
return {
|
|
210
|
-
id: message.id,
|
|
211
|
-
role: "assistant",
|
|
212
|
-
content: message.content
|
|
213
|
-
};
|
|
214
|
-
case Role.User:
|
|
215
|
-
return {
|
|
216
|
-
id: message.id,
|
|
217
|
-
role: "user",
|
|
218
|
-
content: message.content
|
|
219
|
-
};
|
|
220
|
-
default:
|
|
221
|
-
throw new Error("Unknown message role");
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
function gqlResultMessageToAGUIMessage(message) {
|
|
225
|
-
return {
|
|
226
|
-
id: message.id,
|
|
227
|
-
role: "tool",
|
|
228
|
-
content: message.result,
|
|
229
|
-
toolCallId: message.actionExecutionId,
|
|
230
|
-
toolName: message.actionName
|
|
231
|
-
};
|
|
232
|
-
}
|
|
233
|
-
function gqlImageMessageToAGUIMessage(message) {
|
|
234
|
-
if (!validateImageFormat(message.format)) {
|
|
235
|
-
throw new Error(
|
|
236
|
-
`Invalid image format: ${message.format}. Supported formats are: ${VALID_IMAGE_FORMATS.join(", ")}`
|
|
237
|
-
);
|
|
238
|
-
}
|
|
239
|
-
if (!message.bytes || typeof message.bytes !== "string" || message.bytes.trim() === "") {
|
|
240
|
-
throw new Error("Image bytes must be a non-empty string");
|
|
241
|
-
}
|
|
242
|
-
const role = message.role === Role.Assistant ? "assistant" : "user";
|
|
243
|
-
const imageMessage = {
|
|
244
|
-
id: message.id,
|
|
245
|
-
role,
|
|
246
|
-
content: "",
|
|
247
|
-
image: {
|
|
248
|
-
format: message.format,
|
|
249
|
-
bytes: message.bytes
|
|
250
|
-
}
|
|
251
|
-
};
|
|
252
|
-
return imageMessage;
|
|
253
|
-
}
|
|
254
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
255
|
-
0 && (module.exports = {
|
|
256
|
-
gqlActionExecutionMessageToAGUIMessage,
|
|
257
|
-
gqlImageMessageToAGUIMessage,
|
|
258
|
-
gqlResultMessageToAGUIMessage,
|
|
259
|
-
gqlTextMessageToAGUIMessage,
|
|
260
|
-
gqlToAGUI
|
|
261
|
-
});
|
|
262
|
-
//# sourceMappingURL=gql-to-agui.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/message-conversion/gql-to-agui.ts","../../src/graphql/@generated/graphql.ts","../../src/client/types.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","/* eslint-disable */\nimport type { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };\nexport type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never };\nexport type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string; }\n String: { input: string; output: string; }\n Boolean: { input: boolean; output: boolean; }\n Int: { input: number; output: number; }\n Float: { input: number; output: number; }\n /** A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.This scalar is serialized to a string in ISO 8601 format and parsed from a string in ISO 8601 format. */\n DateTimeISO: { input: any; output: any; }\n /** The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). */\n JSON: { input: any; output: any; }\n /** The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). */\n JSONObject: { input: any; output: any; }\n};\n\nexport type ActionExecutionMessageInput = {\n arguments: Scalars['String']['input'];\n name: Scalars['String']['input'];\n parentMessageId?: InputMaybe<Scalars['String']['input']>;\n /** @deprecated This field will be removed in a future version */\n scope?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type ActionExecutionMessageOutput = BaseMessageOutput & {\n __typename?: 'ActionExecutionMessageOutput';\n arguments: Array<Scalars['String']['output']>;\n createdAt: Scalars['DateTimeISO']['output'];\n id: Scalars['String']['output'];\n name: Scalars['String']['output'];\n parentMessageId?: Maybe<Scalars['String']['output']>;\n /** @deprecated This field will be removed in a future version */\n scope?: Maybe<Scalars['String']['output']>;\n status: MessageStatus;\n};\n\nexport type ActionInput = {\n available?: InputMaybe<ActionInputAvailability>;\n description: Scalars['String']['input'];\n jsonSchema: Scalars['String']['input'];\n name: Scalars['String']['input'];\n};\n\n/** The availability of the frontend action */\nexport enum ActionInputAvailability {\n Disabled = 'disabled',\n Enabled = 'enabled',\n Remote = 'remote'\n}\n\nexport type Agent = {\n __typename?: 'Agent';\n description: Scalars['String']['output'];\n id: Scalars['String']['output'];\n name: Scalars['String']['output'];\n};\n\nexport type AgentSessionInput = {\n agentName: Scalars['String']['input'];\n nodeName?: InputMaybe<Scalars['String']['input']>;\n threadId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type AgentStateInput = {\n agentName: Scalars['String']['input'];\n config?: InputMaybe<Scalars['String']['input']>;\n state: Scalars['String']['input'];\n};\n\nexport type AgentStateMessageInput = {\n active: Scalars['Boolean']['input'];\n agentName: Scalars['String']['input'];\n nodeName: Scalars['String']['input'];\n role: MessageRole;\n runId: Scalars['String']['input'];\n running: Scalars['Boolean']['input'];\n state: Scalars['String']['input'];\n threadId: Scalars['String']['input'];\n};\n\nexport type AgentStateMessageOutput = BaseMessageOutput & {\n __typename?: 'AgentStateMessageOutput';\n active: Scalars['Boolean']['output'];\n agentName: Scalars['String']['output'];\n createdAt: Scalars['DateTimeISO']['output'];\n id: Scalars['String']['output'];\n nodeName: Scalars['String']['output'];\n role: MessageRole;\n runId: Scalars['String']['output'];\n running: Scalars['Boolean']['output'];\n state: Scalars['String']['output'];\n status: MessageStatus;\n threadId: Scalars['String']['output'];\n};\n\nexport type AgentsResponse = {\n __typename?: 'AgentsResponse';\n agents: Array<Agent>;\n};\n\nexport type BaseMessageOutput = {\n createdAt: Scalars['DateTimeISO']['output'];\n id: Scalars['String']['output'];\n status: MessageStatus;\n};\n\nexport type BaseMetaEvent = {\n name: MetaEventName;\n type: Scalars['String']['output'];\n};\n\nexport type BaseResponseStatus = {\n code: ResponseStatusCode;\n};\n\nexport type CloudInput = {\n guardrails?: InputMaybe<GuardrailsInput>;\n};\n\nexport type CopilotContextInput = {\n description: Scalars['String']['input'];\n value: Scalars['String']['input'];\n};\n\nexport type CopilotKitLangGraphInterruptEvent = BaseMetaEvent & {\n __typename?: 'CopilotKitLangGraphInterruptEvent';\n data: CopilotKitLangGraphInterruptEventData;\n name: MetaEventName;\n response?: Maybe<Scalars['String']['output']>;\n type: Scalars['String']['output'];\n};\n\nexport type CopilotKitLangGraphInterruptEventData = {\n __typename?: 'CopilotKitLangGraphInterruptEventData';\n messages: Array<BaseMessageOutput>;\n value: Scalars['String']['output'];\n};\n\n/** The type of Copilot request */\nexport enum CopilotRequestType {\n Chat = 'Chat',\n Suggestion = 'Suggestion',\n Task = 'Task',\n TextareaCompletion = 'TextareaCompletion',\n TextareaPopover = 'TextareaPopover'\n}\n\nexport type CopilotResponse = {\n __typename?: 'CopilotResponse';\n extensions?: Maybe<ExtensionsResponse>;\n messages: Array<BaseMessageOutput>;\n metaEvents?: Maybe<Array<BaseMetaEvent>>;\n runId?: Maybe<Scalars['String']['output']>;\n status: ResponseStatus;\n threadId: Scalars['String']['output'];\n};\n\nexport type ExtensionsInput = {\n openaiAssistantAPI?: InputMaybe<OpenAiApiAssistantApiInput>;\n};\n\nexport type ExtensionsResponse = {\n __typename?: 'ExtensionsResponse';\n openaiAssistantAPI?: Maybe<OpenAiApiAssistantApiResponse>;\n};\n\nexport type FailedMessageStatus = {\n __typename?: 'FailedMessageStatus';\n code: MessageStatusCode;\n reason: Scalars['String']['output'];\n};\n\nexport type FailedResponseStatus = BaseResponseStatus & {\n __typename?: 'FailedResponseStatus';\n code: ResponseStatusCode;\n details?: Maybe<Scalars['JSON']['output']>;\n reason: FailedResponseStatusReason;\n};\n\nexport enum FailedResponseStatusReason {\n GuardrailsValidationFailed = 'GUARDRAILS_VALIDATION_FAILED',\n MessageStreamInterrupted = 'MESSAGE_STREAM_INTERRUPTED',\n UnknownError = 'UNKNOWN_ERROR'\n}\n\nexport type ForwardedParametersInput = {\n maxTokens?: InputMaybe<Scalars['Float']['input']>;\n model?: InputMaybe<Scalars['String']['input']>;\n stop?: InputMaybe<Array<Scalars['String']['input']>>;\n temperature?: InputMaybe<Scalars['Float']['input']>;\n toolChoice?: InputMaybe<Scalars['String']['input']>;\n toolChoiceFunctionName?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type FrontendInput = {\n actions: Array<ActionInput>;\n toDeprecate_fullContext?: InputMaybe<Scalars['String']['input']>;\n url?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type GenerateCopilotResponseInput = {\n agentSession?: InputMaybe<AgentSessionInput>;\n agentState?: InputMaybe<AgentStateInput>;\n agentStates?: InputMaybe<Array<AgentStateInput>>;\n cloud?: InputMaybe<CloudInput>;\n context?: InputMaybe<Array<CopilotContextInput>>;\n extensions?: InputMaybe<ExtensionsInput>;\n forwardedParameters?: InputMaybe<ForwardedParametersInput>;\n frontend: FrontendInput;\n messages: Array<MessageInput>;\n metaEvents?: InputMaybe<Array<MetaEventInput>>;\n metadata: GenerateCopilotResponseMetadataInput;\n runId?: InputMaybe<Scalars['String']['input']>;\n threadId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type GenerateCopilotResponseMetadataInput = {\n requestType?: InputMaybe<CopilotRequestType>;\n};\n\nexport type GuardrailsInput = {\n inputValidationRules: GuardrailsRuleInput;\n};\n\nexport type GuardrailsRuleInput = {\n allowList?: InputMaybe<Array<Scalars['String']['input']>>;\n denyList?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type ImageMessageInput = {\n bytes: Scalars['String']['input'];\n format: Scalars['String']['input'];\n parentMessageId?: InputMaybe<Scalars['String']['input']>;\n role: MessageRole;\n};\n\nexport type ImageMessageOutput = BaseMessageOutput & {\n __typename?: 'ImageMessageOutput';\n bytes: Scalars['String']['output'];\n createdAt: Scalars['DateTimeISO']['output'];\n format: Scalars['String']['output'];\n id: Scalars['String']['output'];\n parentMessageId?: Maybe<Scalars['String']['output']>;\n role: MessageRole;\n status: MessageStatus;\n};\n\nexport type LangGraphInterruptEvent = BaseMetaEvent & {\n __typename?: 'LangGraphInterruptEvent';\n name: MetaEventName;\n response?: Maybe<Scalars['String']['output']>;\n type: Scalars['String']['output'];\n value: Scalars['String']['output'];\n};\n\nexport type LoadAgentStateInput = {\n agentName: Scalars['String']['input'];\n threadId: Scalars['String']['input'];\n};\n\nexport type LoadAgentStateResponse = {\n __typename?: 'LoadAgentStateResponse';\n messages: Scalars['String']['output'];\n state: Scalars['String']['output'];\n threadExists: Scalars['Boolean']['output'];\n threadId: Scalars['String']['output'];\n};\n\nexport type MessageInput = {\n actionExecutionMessage?: InputMaybe<ActionExecutionMessageInput>;\n agentStateMessage?: InputMaybe<AgentStateMessageInput>;\n createdAt: Scalars['DateTimeISO']['input'];\n id: Scalars['String']['input'];\n imageMessage?: InputMaybe<ImageMessageInput>;\n resultMessage?: InputMaybe<ResultMessageInput>;\n textMessage?: InputMaybe<TextMessageInput>;\n};\n\n/** The role of the message */\nexport enum MessageRole {\n Assistant = 'assistant',\n Developer = 'developer',\n System = 'system',\n Tool = 'tool',\n User = 'user'\n}\n\nexport type MessageStatus = FailedMessageStatus | PendingMessageStatus | SuccessMessageStatus;\n\nexport enum MessageStatusCode {\n Failed = 'Failed',\n Pending = 'Pending',\n Success = 'Success'\n}\n\nexport type MetaEventInput = {\n messages?: InputMaybe<Array<MessageInput>>;\n name: MetaEventName;\n response?: InputMaybe<Scalars['String']['input']>;\n value: Scalars['String']['input'];\n};\n\n/** Meta event types */\nexport enum MetaEventName {\n CopilotKitLangGraphInterruptEvent = 'CopilotKitLangGraphInterruptEvent',\n LangGraphInterruptEvent = 'LangGraphInterruptEvent'\n}\n\nexport type Mutation = {\n __typename?: 'Mutation';\n generateCopilotResponse: CopilotResponse;\n};\n\n\nexport type MutationGenerateCopilotResponseArgs = {\n data: GenerateCopilotResponseInput;\n properties?: InputMaybe<Scalars['JSONObject']['input']>;\n};\n\nexport type OpenAiApiAssistantApiInput = {\n runId?: InputMaybe<Scalars['String']['input']>;\n threadId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type OpenAiApiAssistantApiResponse = {\n __typename?: 'OpenAIApiAssistantAPIResponse';\n runId?: Maybe<Scalars['String']['output']>;\n threadId?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PendingMessageStatus = {\n __typename?: 'PendingMessageStatus';\n code: MessageStatusCode;\n};\n\nexport type PendingResponseStatus = BaseResponseStatus & {\n __typename?: 'PendingResponseStatus';\n code: ResponseStatusCode;\n};\n\nexport type Query = {\n __typename?: 'Query';\n availableAgents: AgentsResponse;\n hello: Scalars['String']['output'];\n loadAgentState: LoadAgentStateResponse;\n};\n\n\nexport type QueryLoadAgentStateArgs = {\n data: LoadAgentStateInput;\n};\n\nexport type ResponseStatus = FailedResponseStatus | PendingResponseStatus | SuccessResponseStatus;\n\nexport enum ResponseStatusCode {\n Failed = 'Failed',\n Pending = 'Pending',\n Success = 'Success'\n}\n\nexport type ResultMessageInput = {\n actionExecutionId: Scalars['String']['input'];\n actionName: Scalars['String']['input'];\n parentMessageId?: InputMaybe<Scalars['String']['input']>;\n result: Scalars['String']['input'];\n};\n\nexport type ResultMessageOutput = BaseMessageOutput & {\n __typename?: 'ResultMessageOutput';\n actionExecutionId: Scalars['String']['output'];\n actionName: Scalars['String']['output'];\n createdAt: Scalars['DateTimeISO']['output'];\n id: Scalars['String']['output'];\n result: Scalars['String']['output'];\n status: MessageStatus;\n};\n\nexport type SuccessMessageStatus = {\n __typename?: 'SuccessMessageStatus';\n code: MessageStatusCode;\n};\n\nexport type SuccessResponseStatus = BaseResponseStatus & {\n __typename?: 'SuccessResponseStatus';\n code: ResponseStatusCode;\n};\n\nexport type TextMessageInput = {\n content: Scalars['String']['input'];\n parentMessageId?: InputMaybe<Scalars['String']['input']>;\n role: MessageRole;\n};\n\nexport type TextMessageOutput = BaseMessageOutput & {\n __typename?: 'TextMessageOutput';\n content: Array<Scalars['String']['output']>;\n createdAt: Scalars['DateTimeISO']['output'];\n id: Scalars['String']['output'];\n parentMessageId?: Maybe<Scalars['String']['output']>;\n role: MessageRole;\n status: MessageStatus;\n};\n\nexport type GenerateCopilotResponseMutationVariables = Exact<{\n data: GenerateCopilotResponseInput;\n properties?: InputMaybe<Scalars['JSONObject']['input']>;\n}>;\n\n\nexport type GenerateCopilotResponseMutation = { __typename?: 'Mutation', generateCopilotResponse: { __typename?: 'CopilotResponse', threadId: string, runId?: string | null, extensions?: { __typename?: 'ExtensionsResponse', openaiAssistantAPI?: { __typename?: 'OpenAIApiAssistantAPIResponse', runId?: string | null, threadId?: string | null } | null } | null, messages: Array<{ __typename: 'ActionExecutionMessageOutput', id: string, createdAt: any, name: string, arguments: Array<string>, parentMessageId?: string | null, status: { __typename?: 'FailedMessageStatus', code: MessageStatusCode, reason: string } | { __typename?: 'PendingMessageStatus', code: MessageStatusCode } | { __typename?: 'SuccessMessageStatus', code: MessageStatusCode } } | { __typename: 'AgentStateMessageOutput', id: string, createdAt: any, threadId: string, state: string, running: boolean, agentName: string, nodeName: string, runId: string, active: boolean, role: MessageRole, status: { __typename?: 'FailedMessageStatus', code: MessageStatusCode, reason: string } | { __typename?: 'PendingMessageStatus', code: MessageStatusCode } | { __typename?: 'SuccessMessageStatus', code: MessageStatusCode } } | { __typename: 'ImageMessageOutput', id: string, createdAt: any, format: string, bytes: string, role: MessageRole, parentMessageId?: string | null, status: { __typename?: 'FailedMessageStatus', code: MessageStatusCode, reason: string } | { __typename?: 'PendingMessageStatus', code: MessageStatusCode } | { __typename?: 'SuccessMessageStatus', code: MessageStatusCode } } | { __typename: 'ResultMessageOutput', id: string, createdAt: any, result: string, actionExecutionId: string, actionName: string, status: { __typename?: 'FailedMessageStatus', code: MessageStatusCode, reason: string } | { __typename?: 'PendingMessageStatus', code: MessageStatusCode } | { __typename?: 'SuccessMessageStatus', code: MessageStatusCode } } | { __typename: 'TextMessageOutput', id: string, createdAt: any, content: Array<string>, role: MessageRole, parentMessageId?: string | null, status: { __typename?: 'FailedMessageStatus', code: MessageStatusCode, reason: string } | { __typename?: 'PendingMessageStatus', code: MessageStatusCode } | { __typename?: 'SuccessMessageStatus', code: MessageStatusCode } }>, metaEvents?: Array<{ __typename?: 'CopilotKitLangGraphInterruptEvent', type: string, name: MetaEventName, data: { __typename?: 'CopilotKitLangGraphInterruptEventData', value: string, messages: Array<{ __typename: 'ActionExecutionMessageOutput', id: string, createdAt: any, name: string, arguments: Array<string>, parentMessageId?: string | null, status: { __typename?: 'FailedMessageStatus', code: MessageStatusCode, reason: string } | { __typename?: 'PendingMessageStatus', code: MessageStatusCode } | { __typename?: 'SuccessMessageStatus', code: MessageStatusCode } } | { __typename: 'AgentStateMessageOutput', id: string, createdAt: any, status: { __typename?: 'FailedMessageStatus', code: MessageStatusCode, reason: string } | { __typename?: 'PendingMessageStatus', code: MessageStatusCode } | { __typename?: 'SuccessMessageStatus', code: MessageStatusCode } } | { __typename: 'ImageMessageOutput', id: string, createdAt: any, status: { __typename?: 'FailedMessageStatus', code: MessageStatusCode, reason: string } | { __typename?: 'PendingMessageStatus', code: MessageStatusCode } | { __typename?: 'SuccessMessageStatus', code: MessageStatusCode } } | { __typename: 'ResultMessageOutput', id: string, createdAt: any, result: string, actionExecutionId: string, actionName: string, status: { __typename?: 'FailedMessageStatus', code: MessageStatusCode, reason: string } | { __typename?: 'PendingMessageStatus', code: MessageStatusCode } | { __typename?: 'SuccessMessageStatus', code: MessageStatusCode } } | { __typename: 'TextMessageOutput', id: string, createdAt: any, content: Array<string>, role: MessageRole, parentMessageId?: string | null, status: { __typename?: 'FailedMessageStatus', code: MessageStatusCode, reason: string } | { __typename?: 'PendingMessageStatus', code: MessageStatusCode } | { __typename?: 'SuccessMessageStatus', code: MessageStatusCode } }> } } | { __typename?: 'LangGraphInterruptEvent', type: string, name: MetaEventName, value: string }> | null } & ({ __typename?: 'CopilotResponse', status: { __typename?: 'FailedResponseStatus', code: ResponseStatusCode, reason: FailedResponseStatusReason, details?: any | null } | { __typename?: 'PendingResponseStatus', code: ResponseStatusCode } | { __typename?: 'SuccessResponseStatus', code: ResponseStatusCode } } | { __typename?: 'CopilotResponse', status?: never }) };\n\nexport type AvailableAgentsQueryVariables = Exact<{ [key: string]: never; }>;\n\n\nexport type AvailableAgentsQuery = { __typename?: 'Query', availableAgents: { __typename?: 'AgentsResponse', agents: Array<{ __typename?: 'Agent', name: string, id: string, description: string }> } };\n\nexport type LoadAgentStateQueryVariables = Exact<{\n data: LoadAgentStateInput;\n}>;\n\n\nexport type LoadAgentStateQuery = { __typename?: 'Query', loadAgentState: { __typename?: 'LoadAgentStateResponse', threadId: string, threadExists: boolean, state: string, messages: string } };\n\n\nexport const GenerateCopilotResponseDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"generateCopilotResponse\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"GenerateCopilotResponseInput\"}}}},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"properties\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"JSONObject\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"generateCopilotResponse\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"properties\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"properties\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"threadId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"runId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"extensions\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"openaiAssistantAPI\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"runId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"threadId\"}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CopilotResponse\"}},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"defer\"}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BaseResponseStatus\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"FailedResponseStatus\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reason\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"details\"}}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"messages\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"stream\"}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BaseMessageOutput\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BaseMessageOutput\"}},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"defer\"}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SuccessMessageStatus\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"FailedMessageStatus\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reason\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PendingMessageStatus\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"TextMessageOutput\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"content\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"stream\"}}]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"role\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parentMessageId\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ImageMessageOutput\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"format\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"bytes\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"role\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parentMessageId\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ActionExecutionMessageOutput\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"arguments\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"stream\"}}]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parentMessageId\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ResultMessageOutput\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"result\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"actionExecutionId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"actionName\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AgentStateMessageOutput\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"threadId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"running\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"agentName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodeName\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"runId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"active\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"role\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"metaEvents\"},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"stream\"}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LangGraphInterruptEvent\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CopilotKitLangGraphInterruptEvent\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"messages\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"__typename\"}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BaseMessageOutput\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"BaseMessageOutput\"}},\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"defer\"}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SuccessMessageStatus\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"FailedMessageStatus\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reason\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PendingMessageStatus\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"code\"}}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"TextMessageOutput\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"content\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"role\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parentMessageId\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ActionExecutionMessageOutput\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"arguments\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parentMessageId\"}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ResultMessageOutput\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"result\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"actionExecutionId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"actionName\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode<GenerateCopilotResponseMutation, GenerateCopilotResponseMutationVariables>;\nexport const AvailableAgentsDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"availableAgents\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"availableAgents\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"agents\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"}}]}}]}}]}}]} as unknown as DocumentNode<AvailableAgentsQuery, AvailableAgentsQueryVariables>;\nexport const LoadAgentStateDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"loadAgentState\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LoadAgentStateInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"loadAgentState\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"threadId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"threadExists\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"messages\"}}]}}]}}]} as unknown as DocumentNode<LoadAgentStateQuery, LoadAgentStateQueryVariables>;","import { randomId } from \"@copilotkit/shared\";\nimport {\n ActionExecutionMessageInput,\n MessageRole,\n MessageStatus,\n ResultMessageInput,\n TextMessageInput,\n BaseMessageOutput,\n AgentStateMessageInput,\n MessageStatusCode,\n LangGraphInterruptEvent as GqlLangGraphInterruptEvent,\n MetaEventName,\n CopilotKitLangGraphInterruptEvent as GqlCopilotKitLangGraphInterruptEvent,\n ImageMessageInput,\n} from \"../graphql/@generated/graphql\";\nimport { parseJson } from \"@copilotkit/shared\";\n\ntype MessageType =\n | \"TextMessage\"\n | \"ActionExecutionMessage\"\n | \"ResultMessage\"\n | \"AgentStateMessage\"\n | \"ImageMessage\";\n\nexport class Message {\n type: MessageType;\n id: BaseMessageOutput[\"id\"];\n createdAt: BaseMessageOutput[\"createdAt\"];\n status: MessageStatus;\n\n constructor(props: any) {\n props.id ??= randomId();\n props.status ??= { code: MessageStatusCode.Success };\n props.createdAt ??= new Date();\n Object.assign(this, props);\n }\n\n isTextMessage(): this is TextMessage {\n return this.type === \"TextMessage\";\n }\n\n isActionExecutionMessage(): this is ActionExecutionMessage {\n return this.type === \"ActionExecutionMessage\";\n }\n\n isResultMessage(): this is ResultMessage {\n return this.type === \"ResultMessage\";\n }\n\n isAgentStateMessage(): this is AgentStateMessage {\n return this.type === \"AgentStateMessage\";\n }\n\n isImageMessage(): this is ImageMessage {\n return this.type === \"ImageMessage\";\n }\n}\n\n// alias Role to MessageRole\nexport const Role = MessageRole;\n\n// when constructing any message, the base fields are optional\ntype MessageConstructorOptions = Partial<Message>;\n\ntype TextMessageConstructorOptions = MessageConstructorOptions &\n TextMessageInput;\n\nexport class TextMessage\n extends Message\n implements TextMessageConstructorOptions\n{\n content: TextMessageInput[\"content\"];\n parentMessageId: TextMessageInput[\"parentMessageId\"];\n role: TextMessageInput[\"role\"];\n type = \"TextMessage\" as const;\n\n constructor(props: TextMessageConstructorOptions) {\n super(props);\n this.type = \"TextMessage\";\n }\n}\n\ntype ActionExecutionMessageConstructorOptions = MessageConstructorOptions &\n Omit<ActionExecutionMessageInput, \"arguments\"> & {\n arguments: Record<string, any>;\n };\n\nexport class ActionExecutionMessage\n extends Message\n implements Omit<ActionExecutionMessageInput, \"arguments\" | \"scope\">\n{\n name: ActionExecutionMessageInput[\"name\"];\n arguments: Record<string, any>;\n parentMessageId: ActionExecutionMessageInput[\"parentMessageId\"];\n constructor(props: ActionExecutionMessageConstructorOptions) {\n super(props);\n this.type = \"ActionExecutionMessage\";\n }\n}\n\ntype ResultMessageConstructorOptions = MessageConstructorOptions &\n ResultMessageInput;\n\nexport class ResultMessage\n extends Message\n implements ResultMessageConstructorOptions\n{\n actionExecutionId: ResultMessageInput[\"actionExecutionId\"];\n actionName: ResultMessageInput[\"actionName\"];\n result: ResultMessageInput[\"result\"];\n\n constructor(props: ResultMessageConstructorOptions) {\n super(props);\n this.type = \"ResultMessage\";\n }\n\n static decodeResult(result: string): any {\n return parseJson(result, result);\n }\n\n static encodeResult(result: any): string {\n if (result === undefined) {\n return \"\";\n } else if (typeof result === \"string\") {\n return result;\n } else {\n return JSON.stringify(result);\n }\n }\n}\n\nexport class AgentStateMessage\n extends Message\n implements Omit<AgentStateMessageInput, \"state\">\n{\n agentName: AgentStateMessageInput[\"agentName\"];\n state: any;\n running: AgentStateMessageInput[\"running\"];\n threadId: AgentStateMessageInput[\"threadId\"];\n role: AgentStateMessageInput[\"role\"];\n nodeName: AgentStateMessageInput[\"nodeName\"];\n runId: AgentStateMessageInput[\"runId\"];\n active: AgentStateMessageInput[\"active\"];\n\n constructor(props: any) {\n super(props);\n this.type = \"AgentStateMessage\";\n }\n}\n\ntype ImageMessageConstructorOptions = MessageConstructorOptions &\n ImageMessageInput;\n\nexport class ImageMessage\n extends Message\n implements ImageMessageConstructorOptions\n{\n format: ImageMessageInput[\"format\"];\n bytes: ImageMessageInput[\"bytes\"];\n role: ImageMessageInput[\"role\"];\n parentMessageId: ImageMessageInput[\"parentMessageId\"];\n\n constructor(props: ImageMessageConstructorOptions) {\n super(props);\n this.type = \"ImageMessage\";\n }\n}\n\nexport function langGraphInterruptEvent(\n eventProps: Omit<LangGraphInterruptEvent, \"name\" | \"type\" | \"__typename\">,\n): LangGraphInterruptEvent {\n return {\n ...eventProps,\n name: MetaEventName.LangGraphInterruptEvent,\n type: \"MetaEvent\",\n };\n}\n\nexport type LangGraphInterruptEvent<TValue extends any = any> =\n GqlLangGraphInterruptEvent & {\n value: TValue;\n };\n\ntype CopilotKitLangGraphInterruptEvent<TValue extends any = any> =\n GqlCopilotKitLangGraphInterruptEvent & {\n data: GqlCopilotKitLangGraphInterruptEvent[\"data\"] & { value: TValue };\n };\n\nexport type MetaEvent =\n | LangGraphInterruptEvent\n | CopilotKitLangGraphInterruptEvent;\n"],"mappings":"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","names":["MessageRole","import_shared","action","render"]}
|