{"version":3,"sources":["../../../src/llms/primitives/message.ts"],"names":["Role","ASSISTANT","SYSTEM","USER","BaseMessage","Serializable","constructor","role","text","meta","register","of","createSnapshot","shallowCopy","loadSnapshot","state","Object","assign"],"mappings":";;;;;;;AAoBO,MAAMA,IAAO,GAAA;EAClBC,SAAW,EAAA,WAAA;EACXC,MAAQ,EAAA,QAAA;EACRC,IAAM,EAAA;AACR;AAeO,MAAMC,oBAAoBC,6BAAAA,CAAAA;EAvCjC;;;;;;EAwCEC,WACkBC,CAAAA,IAAAA,EACAC,MACAC,IAChB,EAAA;AACA,IAAK,KAAA,EAAA,EAAA,KAJWF,IAAAA,GAAAA,IAAAA,EAAAA,KACAC,IAAAA,GAAAA,IAAAA,EAAAA,KACAC,IAAAA,GAAAA,IAAAA;AAGlB;EAEA;AACE,IAAA,IAAA,CAAKC,QAAQ,EAAA;AACf;AAEA,EAAA,OAAOC,EAAG,CAAA,EAAEJ,IAAMC,EAAAA,IAAAA,EAAMC,MAA0B,EAAA;AAChD,IAAA,OAAO,IAAIL,WAAAA,CAAYG,IAAMC,EAAAA,IAAAA,EAAMC,IAAAA,CAAAA;AACrC;EAEAG,cAAiB,GAAA;AACf,IAAO,OAAA;AACLL,MAAAA,IAAAA,EAAM,IAAKA,CAAAA,IAAAA;AACXC,MAAAA,IAAAA,EAAM,IAAKA,CAAAA,IAAAA;MACXC,IAAMI,EAAAA,qBAAAA,CAAY,KAAKJ,IAAI;AAC7B,KAAA;AACF;AAEAK,EAAAA,YAAAA,CAAaC,KAA+C,EAAA;AAC1D,IAAOC,OAAAA,MAAAA,CAAOC,MAAO,CAAA,IAAA,EAAMF,KAAAA,CAAAA;AAC7B;AACF","file":"message.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { EnumLowerCaseValue } from \"@/internals/types.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\n\nexport const Role = {\n  ASSISTANT: \"assistant\",\n  SYSTEM: \"system\",\n  USER: \"user\",\n} as const;\n\nexport type RoleType = EnumLowerCaseValue<typeof Role> | string;\n\nexport interface BaseMessageMeta {\n  [key: string]: any;\n  createdAt?: Date;\n}\n\nexport interface BaseMessageInput {\n  role: RoleType;\n  text: string;\n  meta?: BaseMessageMeta;\n}\n\nexport class BaseMessage extends Serializable {\n  constructor(\n    public readonly role: RoleType,\n    public readonly text: string,\n    public readonly meta?: BaseMessageMeta,\n  ) {\n    super();\n  }\n\n  static {\n    this.register();\n  }\n\n  static of({ role, text, meta }: BaseMessageInput) {\n    return new BaseMessage(role, text, meta);\n  }\n\n  createSnapshot() {\n    return {\n      role: this.role,\n      text: this.text,\n      meta: shallowCopy(this.meta),\n    };\n  }\n\n  loadSnapshot(state: ReturnType<typeof this.createSnapshot>) {\n    return Object.assign(this, state);\n  }\n}\n"]}