@copilotkit/runtime-client-gql 1.10.7-next.0 → 1.50.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +0 -6
  2. package/dist/{chunk-TDZBGVZB.mjs → chunk-AMFKR5ST.mjs} +2 -2
  3. package/dist/{chunk-O7JH6IWQ.mjs → chunk-EIPAWDCN.mjs} +2 -2
  4. package/dist/{chunk-VVFJT2PN.mjs → chunk-NHOKFX55.mjs} +2 -1
  5. package/dist/chunk-NHOKFX55.mjs.map +1 -0
  6. package/dist/{chunk-TNC2H2EO.mjs → chunk-RNENVFJ3.mjs} +2 -2
  7. package/dist/chunk-RNENVFJ3.mjs.map +1 -0
  8. package/dist/{chunk-2R7M2FWR.mjs → chunk-SVJN2STA.mjs} +6 -6
  9. package/dist/chunk-SVJN2STA.mjs.map +1 -0
  10. package/dist/{chunk-UNOAOYT4.mjs → chunk-ZBNRBXIW.mjs} +2 -2
  11. package/dist/{chunk-UNOAOYT4.mjs.map → chunk-ZBNRBXIW.mjs.map} +1 -1
  12. package/dist/client/CopilotRuntimeClient.js +1 -1
  13. package/dist/client/CopilotRuntimeClient.js.map +1 -1
  14. package/dist/client/CopilotRuntimeClient.mjs +1 -1
  15. package/dist/client/conversion.js +1 -0
  16. package/dist/client/conversion.js.map +1 -1
  17. package/dist/client/conversion.mjs +2 -2
  18. package/dist/client/index.js +2 -1
  19. package/dist/client/index.js.map +1 -1
  20. package/dist/client/index.mjs +3 -3
  21. package/dist/client/types.d.ts +2 -1
  22. package/dist/client/types.js +1 -0
  23. package/dist/client/types.js.map +1 -1
  24. package/dist/client/types.mjs +1 -1
  25. package/dist/index.js +2 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/index.mjs +5 -5
  28. package/dist/message-conversion/agui-to-gql.js +1 -0
  29. package/dist/message-conversion/agui-to-gql.js.map +1 -1
  30. package/dist/message-conversion/agui-to-gql.mjs +4 -4
  31. package/dist/message-conversion/agui-to-gql.test.js +6 -5
  32. package/dist/message-conversion/agui-to-gql.test.js.map +1 -1
  33. package/dist/message-conversion/agui-to-gql.test.mjs +5 -5
  34. package/dist/message-conversion/gql-to-agui.js.map +1 -1
  35. package/dist/message-conversion/gql-to-agui.mjs +4 -4
  36. package/dist/message-conversion/gql-to-agui.test.js +6 -5
  37. package/dist/message-conversion/gql-to-agui.test.js.map +1 -1
  38. package/dist/message-conversion/gql-to-agui.test.mjs +5 -5
  39. package/dist/message-conversion/index.js +1 -0
  40. package/dist/message-conversion/index.js.map +1 -1
  41. package/dist/message-conversion/index.mjs +5 -5
  42. package/dist/message-conversion/roundtrip-conversion.test.js +6 -5
  43. package/dist/message-conversion/roundtrip-conversion.test.js.map +1 -1
  44. package/dist/message-conversion/roundtrip-conversion.test.mjs +6 -6
  45. package/package.json +3 -3
  46. package/src/client/types.ts +2 -1
  47. package/src/message-conversion/agui-to-gql.ts +1 -1
  48. package/dist/chunk-2R7M2FWR.mjs.map +0 -1
  49. package/dist/chunk-TNC2H2EO.mjs.map +0 -1
  50. package/dist/chunk-VVFJT2PN.mjs.map +0 -1
  51. /package/dist/{chunk-TDZBGVZB.mjs.map → chunk-AMFKR5ST.mjs.map} +0 -0
  52. /package/dist/{chunk-O7JH6IWQ.mjs.map → chunk-EIPAWDCN.mjs.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,11 +1,5 @@
1
1
  # @copilotkit/runtime-client-gql
2
2
 
3
- ## 1.10.7-next.0
4
-
5
- ### Patch Changes
6
-
7
- - @copilotkit/shared@1.10.7-next.0
8
-
9
3
  ## 1.10.6
10
4
 
11
5
  ### Patch Changes
@@ -4,7 +4,7 @@ import {
4
4
  ImageMessage,
5
5
  ResultMessage,
6
6
  TextMessage
7
- } from "./chunk-VVFJT2PN.mjs";
7
+ } from "./chunk-NHOKFX55.mjs";
8
8
 
9
9
  // src/client/conversion.ts
10
10
  import untruncateJson from "untruncate-json";
@@ -234,4 +234,4 @@ export {
234
234
  convertGqlOutputToMessages,
235
235
  loadMessagesFromJsonRepresentation
236
236
  };
237
- //# sourceMappingURL=chunk-TDZBGVZB.mjs.map
237
+ //# sourceMappingURL=chunk-AMFKR5ST.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Role
3
- } from "./chunk-VVFJT2PN.mjs";
3
+ } from "./chunk-NHOKFX55.mjs";
4
4
 
5
5
  // src/message-conversion/gql-to-agui.ts
6
6
  var VALID_IMAGE_FORMATS = ["jpeg", "png", "webp", "gif"];
@@ -210,4 +210,4 @@ export {
210
210
  gqlResultMessageToAGUIMessage,
211
211
  gqlImageMessageToAGUIMessage
212
212
  };
213
- //# sourceMappingURL=chunk-O7JH6IWQ.mjs.map
213
+ //# sourceMappingURL=chunk-EIPAWDCN.mjs.map
@@ -33,6 +33,7 @@ var TextMessage = class extends Message {
33
33
  constructor(props) {
34
34
  super(props);
35
35
  this.type = "TextMessage";
36
+ this.type = "TextMessage";
36
37
  }
37
38
  };
38
39
  var ActionExecutionMessage = class extends Message {
@@ -85,4 +86,4 @@ export {
85
86
  ImageMessage,
86
87
  langGraphInterruptEvent
87
88
  };
88
- //# sourceMappingURL=chunk-VVFJT2PN.mjs.map
89
+ //# sourceMappingURL=chunk-NHOKFX55.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/client/types.ts"],"sourcesContent":["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 & TextMessageInput;\n\nexport class TextMessage extends Message implements TextMessageConstructorOptions {\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 & ResultMessageInput;\n\nexport class ResultMessage extends Message implements ResultMessageConstructorOptions {\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 extends Message implements Omit<AgentStateMessageInput, \"state\"> {\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 & ImageMessageInput;\n\nexport class ImageMessage extends Message implements ImageMessageConstructorOptions {\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 { ...eventProps, name: MetaEventName.LangGraphInterruptEvent, type: \"MetaEvent\" };\n}\n\nexport type LangGraphInterruptEvent<TValue extends any = any> = 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 = LangGraphInterruptEvent | CopilotKitLangGraphInterruptEvent;\n"],"mappings":";;;;;AAAA,SAAS,gBAAgB;AAezB,SAAS,iBAAiB;AASnB,IAAM,UAAN,MAAc;AAAA,EAMnB,YAAY,OAAY;AACtB,UAAM,OAAN,MAAM,KAAO,SAAS;AACtB,UAAM,WAAN,MAAM,SAAW,EAAE,8BAAgC;AACnD,UAAM,cAAN,MAAM,YAAc,oBAAI,KAAK;AAC7B,WAAO,OAAO,MAAM,KAAK;AAAA,EAC3B;AAAA,EAEA,gBAAqC;AACnC,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA,EAEA,2BAA2D;AACzD,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA,EAEA,kBAAyC;AACvC,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA,EAEA,sBAAiD;AAC/C,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA,EAEA,iBAAuC;AACrC,WAAO,KAAK,SAAS;AAAA,EACvB;AACF;AAGO,IAAM,OAAO;AAOb,IAAM,cAAN,cAA0B,QAAiD;AAAA,EAMhF,YAAY,OAAsC;AAChD,UAAM,KAAK;AAHb,gBAAO;AAIL,SAAK,OAAO;AAAA,EACd;AACF;AAOO,IAAM,yBAAN,cACG,QAEV;AAAA,EAIE,YAAY,OAAiD;AAC3D,UAAM,KAAK;AACX,SAAK,OAAO;AAAA,EACd;AACF;AAIO,IAAM,gBAAN,cAA4B,QAAmD;AAAA,EAKpF,YAAY,OAAwC;AAClD,UAAM,KAAK;AACX,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,OAAO,aAAa,QAAqB;AACvC,WAAO,UAAU,QAAQ,MAAM;AAAA,EACjC;AAAA,EAEA,OAAO,aAAa,QAAqB;AACvC,QAAI,WAAW,QAAW;AACxB,aAAO;AAAA,IACT,WAAW,OAAO,WAAW,UAAU;AACrC,aAAO;AAAA,IACT,OAAO;AACL,aAAO,KAAK,UAAU,MAAM;AAAA,IAC9B;AAAA,EACF;AACF;AAEO,IAAM,oBAAN,cAAgC,QAAyD;AAAA,EAU9F,YAAY,OAAY;AACtB,UAAM,KAAK;AACX,SAAK,OAAO;AAAA,EACd;AACF;AAIO,IAAM,eAAN,cAA2B,QAAkD;AAAA,EAMlF,YAAY,OAAuC;AACjD,UAAM,KAAK;AACX,SAAK,OAAO;AAAA,EACd;AACF;AAEO,SAAS,wBACd,YACyB;AACzB,SAAO,EAAE,GAAG,YAAY,+DAA6C,MAAM,YAAY;AACzF;","names":[]}
@@ -5,7 +5,7 @@ import {
5
5
  ResultMessage,
6
6
  Role,
7
7
  TextMessage
8
- } from "./chunk-VVFJT2PN.mjs";
8
+ } from "./chunk-NHOKFX55.mjs";
9
9
 
10
10
  // src/message-conversion/agui-to-gql.ts
11
11
  function extractAgentName(message) {
@@ -218,4 +218,4 @@ export {
218
218
  aguiMessageWithRenderToGQL,
219
219
  aguiMessageWithImageToGQLMessage
220
220
  };
221
- //# sourceMappingURL=chunk-TNC2H2EO.mjs.map
221
+ //# sourceMappingURL=chunk-RNENVFJ3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/message-conversion/agui-to-gql.ts"],"sourcesContent":["import * as gql from \"../client\";\nimport { MessageRole } from \"../graphql/@generated/graphql\";\nimport agui from \"@copilotkit/shared\"; // named agui for clarity, but this only includes agui message types\n\n// Helper function to extract agent name from message\nfunction extractAgentName(message: agui.Message): string {\n if (message.role !== \"assistant\") {\n throw new Error(`Cannot extract agent name from message with role ${message.role}`);\n }\n\n return message.agentName || \"unknown\";\n}\n\n// Type guard for agent state message\nfunction isAgentStateMessage(message: agui.Message): boolean {\n return message.role === \"assistant\" && \"agentName\" in message && \"state\" in message;\n}\n\n// Type guard for messages with image property\nfunction hasImageProperty(message: agui.Message): boolean {\n const canContainImage = message.role === \"assistant\" || message.role === \"user\";\n if (!canContainImage || message.image === undefined) {\n return false;\n }\n\n const isMalformed = message.image.format === undefined || message.image.bytes === undefined;\n if (isMalformed) {\n return false;\n }\n\n return true;\n}\n\n/*\n ----------------------------\n AGUI Message -> GQL Message\n ----------------------------\n*/\nexport function aguiToGQL(\n messages: agui.Message[] | agui.Message,\n actions?: Record<string, any>,\n coAgentStateRenders?: Record<string, any>,\n): gql.Message[] {\n const gqlMessages: gql.Message[] = [];\n messages = Array.isArray(messages) ? messages : [messages];\n\n // Track tool call names by their IDs for use in result messages\n const toolCallNames: Record<string, string> = {};\n\n for (const message of messages) {\n // Agent state message support\n if (isAgentStateMessage(message)) {\n const agentName = extractAgentName(message);\n const state = \"state\" in message && message.state ? message.state : {};\n gqlMessages.push(\n new gql.AgentStateMessage({\n id: message.id,\n agentName,\n state,\n role: gql.Role.Assistant,\n }),\n );\n // Optionally preserve render function\n if (\"generativeUI\" in message && message.generativeUI && coAgentStateRenders) {\n coAgentStateRenders[agentName] = {\n name: agentName,\n render: message.generativeUI,\n };\n }\n continue;\n }\n\n if (hasImageProperty(message)) {\n gqlMessages.push(aguiMessageWithImageToGQLMessage(message));\n continue;\n }\n\n // Action execution message support\n if (message.role === \"assistant\" && message.toolCalls) {\n gqlMessages.push(aguiTextMessageToGQLMessage(message));\n for (const toolCall of message.toolCalls) {\n // Track the tool call name by its ID\n toolCallNames[toolCall.id] = toolCall.function.name;\n\n const actionExecMsg = aguiToolCallToGQLActionExecution(toolCall, message.id);\n // Preserve render function in actions context\n if (\"generativeUI\" in message && message.generativeUI && actions) {\n const actionName = toolCall.function.name;\n // Check for specific action first, then wild card action\n const specificAction = Object.values(actions).find(\n (action: any) => action.name === actionName,\n );\n const wildcardAction = Object.values(actions).find((action: any) => action.name === \"*\");\n\n // Assign render function to the matching action (specific takes priority)\n if (specificAction) {\n specificAction.render = message.generativeUI;\n } else if (wildcardAction) {\n wildcardAction.render = message.generativeUI;\n }\n }\n gqlMessages.push(actionExecMsg);\n }\n continue;\n }\n // Regular text messages\n if (\n message.role === \"developer\" ||\n message.role === \"system\" ||\n message.role === \"assistant\" ||\n message.role === \"user\"\n ) {\n gqlMessages.push(aguiTextMessageToGQLMessage(message));\n continue;\n }\n // Tool result message\n if (message.role === \"tool\") {\n gqlMessages.push(aguiToolMessageToGQLResultMessage(message, toolCallNames));\n continue;\n }\n throw new Error(\n `Unknown message role: \"${(message as any).role}\" in message with id: ${(message as any).id}`,\n );\n }\n\n return gqlMessages;\n}\n\nexport function aguiTextMessageToGQLMessage(message: agui.Message): gql.TextMessage {\n if (\n message.role !== \"developer\" &&\n message.role !== \"system\" &&\n message.role !== \"assistant\" &&\n message.role !== \"user\"\n ) {\n throw new Error(`Cannot convert message with role ${message.role} to TextMessage`);\n }\n\n let roleValue: MessageRole;\n\n if (message.role === \"developer\") {\n roleValue = gql.Role.Developer;\n } else if (message.role === \"system\") {\n roleValue = gql.Role.System;\n } else if (message.role === \"assistant\") {\n roleValue = gql.Role.Assistant;\n } else {\n roleValue = gql.Role.User;\n }\n\n return new gql.TextMessage({\n id: message.id,\n content: (message.content as any) || \"\",\n role: roleValue,\n });\n}\n\nexport function aguiToolCallToGQLActionExecution(\n toolCall: agui.ToolCall,\n parentMessageId: string,\n): gql.ActionExecutionMessage {\n if (toolCall.type !== \"function\") {\n throw new Error(`Unsupported tool call type: ${toolCall.type}`);\n }\n\n // Handle arguments - they should be a JSON string in AGUI format,\n // but we need to convert them to an object for GQL format\n let argumentsObj: any;\n\n if (typeof toolCall.function.arguments === \"string\") {\n // Expected case: arguments is a JSON string\n try {\n argumentsObj = JSON.parse(toolCall.function.arguments);\n } catch (error) {\n console.warn(`Failed to parse tool call arguments for ${toolCall.function.name}:`, error);\n // Provide fallback empty object to prevent application crash\n argumentsObj = {};\n }\n } else if (\n typeof toolCall.function.arguments === \"object\" &&\n toolCall.function.arguments !== null\n ) {\n // Backward compatibility: arguments is already an object\n argumentsObj = toolCall.function.arguments;\n } else {\n // Fallback for undefined, null, or other types\n console.warn(\n `Invalid tool call arguments type for ${toolCall.function.name}:`,\n typeof toolCall.function.arguments,\n );\n argumentsObj = {};\n }\n\n // Always include name and arguments\n return new gql.ActionExecutionMessage({\n id: toolCall.id,\n name: toolCall.function.name,\n arguments: argumentsObj,\n parentMessageId: parentMessageId,\n });\n}\n\nexport function aguiToolMessageToGQLResultMessage(\n message: agui.Message,\n toolCallNames: Record<string, string>,\n): gql.ResultMessage {\n if (message.role !== \"tool\") {\n throw new Error(`Cannot convert message with role ${message.role} to ResultMessage`);\n }\n\n if (!message.toolCallId) {\n throw new Error(\"Tool message must have a toolCallId\");\n }\n\n const actionName = toolCallNames[message.toolCallId] || \"unknown\";\n\n // Handle result content - it could be a string or an object that needs serialization\n let resultContent: string;\n const messageContent = message.content || \"\";\n\n if (typeof messageContent === \"string\") {\n // Expected case: content is already a string\n resultContent = messageContent;\n } else if (typeof messageContent === \"object\" && messageContent !== null) {\n // Handle case where content is an object that needs to be serialized\n try {\n resultContent = JSON.stringify(messageContent);\n } catch (error) {\n console.warn(`Failed to stringify tool result for ${actionName}:`, error);\n resultContent = String(messageContent);\n }\n } else {\n // Handle other types (number, boolean, etc.)\n resultContent = String(messageContent);\n }\n\n return new gql.ResultMessage({\n id: message.id,\n result: resultContent,\n actionExecutionId: message.toolCallId,\n actionName: message.toolName || actionName,\n });\n}\n\n// New function to handle AGUI messages with render functions\nexport function aguiMessageWithRenderToGQL(\n message: agui.Message,\n actions?: Record<string, any>,\n coAgentStateRenders?: Record<string, any>,\n): gql.Message[] {\n // Handle the special case: assistant messages with render function but no tool calls\n if (\n message.role === \"assistant\" &&\n \"generativeUI\" in message &&\n message.generativeUI &&\n !message.toolCalls\n ) {\n const gqlMessages: gql.Message[] = [];\n gqlMessages.push(\n new gql.AgentStateMessage({\n id: message.id,\n agentName: \"unknown\",\n state: {},\n role: gql.Role.Assistant,\n }),\n );\n if (coAgentStateRenders) {\n coAgentStateRenders.unknown = {\n name: \"unknown\",\n render: message.generativeUI,\n };\n }\n return gqlMessages;\n }\n\n // For all other cases, delegate to aguiToGQL\n return aguiToGQL([message], actions, coAgentStateRenders);\n}\n\nexport function aguiMessageWithImageToGQLMessage(message: agui.Message): gql.ImageMessage {\n if (!hasImageProperty(message)) {\n throw new Error(`Cannot convert message to ImageMessage: missing format or bytes`);\n }\n\n let roleValue: MessageRole;\n if (message.role === \"assistant\") {\n roleValue = gql.Role.Assistant;\n } else {\n roleValue = gql.Role.User;\n }\n\n if (message.role !== \"assistant\" && message.role !== \"user\") {\n throw new Error(`Cannot convert message with role ${message.role} to ImageMessage`);\n }\n\n return new gql.ImageMessage({\n id: message.id,\n format: message.image!.format,\n bytes: message.image!.bytes,\n role: roleValue,\n });\n}\n"],"mappings":"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","names":[]}
@@ -12536,7 +12536,7 @@ var JestExtend = (chai2, utils) => {
12536
12536
  });
12537
12537
  };
12538
12538
 
12539
- // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@20.14.12_jiti@1.21.6_jsdom@26.1.0_yaml@2.5.0/node_modules/vitest/dist/chunks/utils.XdZDrNZV.js
12539
+ // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@20.14.12_jsdom@26.1.0/node_modules/vitest/dist/chunks/utils.XdZDrNZV.js
12540
12540
  var NAME_WORKER_STATE = "__vitest_worker__";
12541
12541
  function getWorkerState() {
12542
12542
  const workerState = globalThis[NAME_WORKER_STATE];
@@ -12588,7 +12588,7 @@ async function waitForImportsToResolve() {
12588
12588
  await waitForImportsToResolve();
12589
12589
  }
12590
12590
 
12591
- // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@20.14.12_jiti@1.21.6_jsdom@26.1.0_yaml@2.5.0/node_modules/vitest/dist/chunks/_commonjsHelpers.BFTU3MAI.js
12591
+ // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@20.14.12_jsdom@26.1.0/node_modules/vitest/dist/chunks/_commonjsHelpers.BFTU3MAI.js
12592
12592
  var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
12593
12593
  function getDefaultExportFromCjs3(x) {
12594
12594
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
@@ -14621,7 +14621,7 @@ var SnapshotClient = class {
14621
14621
  }
14622
14622
  };
14623
14623
 
14624
- // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@20.14.12_jiti@1.21.6_jsdom@26.1.0_yaml@2.5.0/node_modules/vitest/dist/chunks/date.Bq6ZW5rf.js
14624
+ // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@20.14.12_jsdom@26.1.0/node_modules/vitest/dist/chunks/date.Bq6ZW5rf.js
14625
14625
  var RealDate = Date;
14626
14626
  var now2 = null;
14627
14627
  var MockDate = class extends RealDate {
@@ -14672,7 +14672,7 @@ function resetDate() {
14672
14672
  globalThis.Date = RealDate;
14673
14673
  }
14674
14674
 
14675
- // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@20.14.12_jiti@1.21.6_jsdom@26.1.0_yaml@2.5.0/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js
14675
+ // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@20.14.12_jsdom@26.1.0/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js
14676
14676
  var unsupported = [
14677
14677
  "matchSnapshot",
14678
14678
  "toMatchSnapshot",
@@ -17462,7 +17462,7 @@ function getImporter(name) {
17462
17462
  return (stack == null ? void 0 : stack.file) || "";
17463
17463
  }
17464
17464
 
17465
- // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@20.14.12_jiti@1.21.6_jsdom@26.1.0_yaml@2.5.0/node_modules/vitest/dist/index.js
17465
+ // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@20.14.12_jsdom@26.1.0/node_modules/vitest/dist/index.js
17466
17466
  var import_expect_type = __toESM(require_dist(), 1);
17467
17467
 
17468
17468
  export {
@@ -17762,4 +17762,4 @@ chai/chai.js:
17762
17762
  * @license MIT License
17763
17763
  *)
17764
17764
  */
17765
- //# sourceMappingURL=chunk-2R7M2FWR.mjs.map
17765
+ //# sourceMappingURL=chunk-SVJN2STA.mjs.map