@langchain/core
Version:
Core LangChain.js abstractions and schemas
1 lines • 3.13 kB
Source Map (JSON)
{"version":3,"file":"format.cjs","names":["message: BaseMessage","format: MessageStringFormat","lines: string[]"],"sources":["../../src/messages/format.ts"],"sourcesContent":["import { type BaseMessage } from \"./base.js\";\nimport { type AIMessage } from \"./ai.js\";\nimport { type ToolMessage } from \"./tool.js\";\n\nexport type MessageStringFormat = \"pretty\";\n\nexport function convertToFormattedString(\n message: BaseMessage,\n format: MessageStringFormat = \"pretty\"\n): string {\n if (format === \"pretty\") return convertToPrettyString(message);\n return JSON.stringify(message);\n}\n\nfunction convertToPrettyString(message: BaseMessage): string {\n const lines: string[] = [];\n const title = ` ${\n message.type.charAt(0).toUpperCase() + message.type.slice(1)\n } Message `;\n const sepLen = Math.floor((80 - title.length) / 2);\n const sep = \"=\".repeat(sepLen);\n const secondSep = title.length % 2 === 0 ? sep : `${sep}=`;\n lines.push(`${sep}${title}${secondSep}`);\n\n // Add message type specific details\n if (message.type === \"ai\") {\n const aiMessage = message as AIMessage;\n if (aiMessage.tool_calls && aiMessage.tool_calls.length > 0) {\n lines.push(\"Tool Calls:\");\n for (const tc of aiMessage.tool_calls) {\n lines.push(` ${tc.name} (${tc.id})`);\n lines.push(` Call ID: ${tc.id}`);\n lines.push(\" Args:\");\n for (const [key, value] of Object.entries(tc.args)) {\n lines.push(` ${key}: ${value}`);\n }\n }\n }\n }\n if (message.type === \"tool\") {\n const toolMessage = message as ToolMessage;\n if (toolMessage.name) {\n lines.push(`Name: ${toolMessage.name}`);\n }\n }\n\n // Add content if it's a string and not empty\n if (typeof message.content === \"string\" && message.content.trim()) {\n if (lines.length > 1) {\n lines.push(\"\"); // blank line before content\n }\n lines.push(message.content);\n }\n\n return lines.join(\"\\n\");\n}\n"],"mappings":";;AAMA,SAAgB,yBACdA,SACAC,SAA8B,UACtB;AACR,KAAI,WAAW,SAAU,QAAO,sBAAsB,QAAQ;AAC9D,QAAO,KAAK,UAAU,QAAQ;AAC/B;AAED,SAAS,sBAAsBD,SAA8B;CAC3D,MAAME,QAAkB,CAAE;CAC1B,MAAM,QAAQ,CAAC,CAAC,EACd,QAAQ,KAAK,OAAO,EAAE,CAAC,aAAa,GAAG,QAAQ,KAAK,MAAM,EAAE,CAC7D,SAAS,CAAC;CACX,MAAM,SAAS,KAAK,OAAO,KAAK,MAAM,UAAU,EAAE;CAClD,MAAM,MAAM,IAAI,OAAO,OAAO;CAC9B,MAAM,YAAY,MAAM,SAAS,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC;CAC1D,MAAM,KAAK,GAAG,MAAM,QAAQ,WAAW,CAAC;AAGxC,KAAI,QAAQ,SAAS,MAAM;EACzB,MAAM,YAAY;AAClB,MAAI,UAAU,cAAc,UAAU,WAAW,SAAS,GAAG;GAC3D,MAAM,KAAK,cAAc;AACzB,QAAK,MAAM,MAAM,UAAU,YAAY;IACrC,MAAM,KAAK,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IACrC,MAAM,KAAK,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC;IAChC,MAAM,KAAK,UAAU;AACrB,SAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,GAAG,KAAK,EAChD,MAAM,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC;GAErC;EACF;CACF;AACD,KAAI,QAAQ,SAAS,QAAQ;EAC3B,MAAM,cAAc;AACpB,MAAI,YAAY,MACd,MAAM,KAAK,CAAC,MAAM,EAAE,YAAY,MAAM,CAAC;CAE1C;AAGD,KAAI,OAAO,QAAQ,YAAY,YAAY,QAAQ,QAAQ,MAAM,EAAE;AACjE,MAAI,MAAM,SAAS,GACjB,MAAM,KAAK,GAAG;EAEhB,MAAM,KAAK,QAAQ,QAAQ;CAC5B;AAED,QAAO,MAAM,KAAK,KAAK;AACxB"}