{"version":3,"file":"function.cjs","names":["BaseMessage","BaseMessageChunk","mergeContent","_mergeDicts"],"sources":["../../src/messages/function.ts"],"sourcesContent":["import {\n  BaseMessage,\n  BaseMessageChunk,\n  type BaseMessageFields,\n  mergeContent,\n  _mergeDicts,\n} from \"./base.js\";\nimport { MessageStructure } from \"./message.js\";\nimport { Constructor } from \"./utils.js\";\n\nexport interface FunctionMessageFields<\n  TStructure extends MessageStructure = MessageStructure,\n> extends BaseMessageFields<TStructure, \"function\"> {\n  name: string;\n}\n\n/**\n * Represents a function message in a conversation.\n */\nexport class FunctionMessage<\n  TStructure extends MessageStructure = MessageStructure,\n>\n  extends BaseMessage<TStructure, \"function\">\n  implements FunctionMessageFields<TStructure>\n{\n  static lc_name() {\n    return \"FunctionMessage\";\n  }\n\n  readonly type = \"function\" as const;\n\n  name: string;\n\n  constructor(fields: FunctionMessageFields<TStructure>) {\n    super(fields);\n    this.name = fields.name;\n  }\n}\n\n/**\n * Represents a chunk of a function message, which can be concatenated\n * with other function message chunks.\n */\nexport class FunctionMessageChunk<\n  TStructure extends MessageStructure = MessageStructure,\n> extends BaseMessageChunk<TStructure, \"function\"> {\n  static lc_name() {\n    return \"FunctionMessageChunk\";\n  }\n\n  readonly type = \"function\" as const;\n\n  concat(chunk: FunctionMessageChunk<TStructure>) {\n    const Cls = this.constructor as Constructor<this>;\n    return new Cls({\n      content: mergeContent(this.content, chunk.content),\n      additional_kwargs: _mergeDicts(\n        this.additional_kwargs,\n        chunk.additional_kwargs\n      ),\n      response_metadata: _mergeDicts(\n        this.response_metadata,\n        chunk.response_metadata\n      ),\n      name: this.name ?? \"\",\n      id: this.id ?? chunk.id,\n    });\n  }\n}\n\nexport function isFunctionMessage(x: BaseMessage): x is FunctionMessage {\n  return x._getType() === \"function\";\n}\n\nexport function isFunctionMessageChunk(\n  x: BaseMessageChunk\n): x is FunctionMessageChunk {\n  return x._getType() === \"function\";\n}\n"],"mappings":";;;;;AAmBA,IAAa,kBAAb,cAGUA,aAAAA,YAEV;CACE,OAAO,UAAU;AACf,SAAO;;CAGT,OAAgB;CAEhB;CAEA,YAAY,QAA2C;AACrD,QAAM,OAAO;AACb,OAAK,OAAO,OAAO;;;;;;;AAQvB,IAAa,uBAAb,cAEUC,aAAAA,iBAAyC;CACjD,OAAO,UAAU;AACf,SAAO;;CAGT,OAAgB;CAEhB,OAAO,OAAyC;EAC9C,MAAM,MAAM,KAAK;AACjB,SAAO,IAAI,IAAI;GACb,SAASC,aAAAA,aAAa,KAAK,SAAS,MAAM,QAAQ;GAClD,mBAAmBC,aAAAA,YACjB,KAAK,mBACL,MAAM,kBACP;GACD,mBAAmBA,aAAAA,YACjB,KAAK,mBACL,MAAM,kBACP;GACD,MAAM,KAAK,QAAQ;GACnB,IAAI,KAAK,MAAM,MAAM;GACtB,CAAC;;;AAIN,SAAgB,kBAAkB,GAAsC;AACtE,QAAO,EAAE,UAAU,KAAK;;AAG1B,SAAgB,uBACd,GAC2B;AAC3B,QAAO,EAAE,UAAU,KAAK"}