{"version":3,"file":"types.cjs","names":["MessageStatusCode","MessageRole","MetaEventName"],"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 &\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":";;;;;AAwBA,IAAa,UAAb,MAAqB;CAMnB,YAAY,OAAY;AACtB,QAAM,yCAAiB;AACvB,QAAM,WAAW,EAAE,MAAMA,kCAAkB,SAAS;AACpD,QAAM,8BAAc,IAAI,MAAM;AAC9B,SAAO,OAAO,MAAM,MAAM;;CAG5B,gBAAqC;AACnC,SAAO,KAAK,SAAS;;CAGvB,2BAA2D;AACzD,SAAO,KAAK,SAAS;;CAGvB,kBAAyC;AACvC,SAAO,KAAK,SAAS;;CAGvB,sBAAiD;AAC/C,SAAO,KAAK,SAAS;;CAGvB,iBAAuC;AACrC,SAAO,KAAK,SAAS;;;AAKzB,MAAa,OAAOC;AAQpB,IAAa,cAAb,cACU,QAEV;CAME,YAAY,OAAsC;AAChD,QAAM,MAAM;cAHP;AAIL,OAAK,OAAO;;;AAShB,IAAa,yBAAb,cACU,QAEV;CAIE,YAAY,OAAiD;AAC3D,QAAM,MAAM;AACZ,OAAK,OAAO;;;AAOhB,IAAa,gBAAb,cACU,QAEV;CAKE,YAAY,OAAwC;AAClD,QAAM,MAAM;AACZ,OAAK,OAAO;;CAGd,OAAO,aAAa,QAAqB;AACvC,2CAAiB,QAAQ,OAAO;;CAGlC,OAAO,aAAa,QAAqB;AACvC,MAAI,WAAW,OACb,QAAO;WACE,OAAO,WAAW,SAC3B,QAAO;MAEP,QAAO,KAAK,UAAU,OAAO;;;AAKnC,IAAa,oBAAb,cACU,QAEV;CAUE,YAAY,OAAY;AACtB,QAAM,MAAM;AACZ,OAAK,OAAO;;;AAOhB,IAAa,eAAb,cACU,QAEV;CAME,YAAY,OAAuC;AACjD,QAAM,MAAM;AACZ,OAAK,OAAO;;;AAIhB,SAAgB,wBACd,YACyB;AACzB,QAAO;EACL,GAAG;EACH,MAAMC,8BAAc;EACpB,MAAM;EACP"}