UNPKG

@langchain/core

Version:
1 lines 3.08 kB
{"version":3,"file":"format.cjs","names":[],"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(\n ` ${key}: ${\n typeof value === \"object\" ? JSON.stringify(value) : value\n }`\n );\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,yBACd,SACA,SAA8B,UACtB;CACR,IAAI,WAAW,UAAU,OAAO,sBAAsB,OAAO;CAC7D,OAAO,KAAK,UAAU,OAAO;AAC/B;AAEA,SAAS,sBAAsB,SAA8B;CAC3D,MAAM,QAAkB,CAAC;CACzB,MAAM,QAAQ,IACZ,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,QAAQ,KAAK,MAAM,CAAC,EAC5D;CACD,MAAM,SAAS,KAAK,OAAO,KAAK,MAAM,UAAU,CAAC;CACjD,MAAM,MAAM,IAAI,OAAO,MAAM;CAC7B,MAAM,YAAY,MAAM,SAAS,MAAM,IAAI,MAAM,GAAG,IAAI;CACxD,MAAM,KAAK,GAAG,MAAM,QAAQ,WAAW;CAGvC,IAAI,QAAQ,SAAS,MAAM;EACzB,MAAM,YAAY;EAClB,IAAI,UAAU,cAAc,UAAU,WAAW,SAAS,GAAG;GAC3D,MAAM,KAAK,aAAa;GACxB,KAAK,MAAM,MAAM,UAAU,YAAY;IACrC,MAAM,KAAK,KAAK,GAAG,KAAK,IAAI,GAAG,GAAG,EAAE;IACpC,MAAM,KAAK,aAAa,GAAG,IAAI;IAC/B,MAAM,KAAK,SAAS;IACpB,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,GAAG,IAAI,GAC/C,MAAM,KACJ,OAAO,IAAI,IACT,OAAO,UAAU,WAAW,KAAK,UAAU,KAAK,IAAI,OAExD;GAEJ;EACF;CACF;CACA,IAAI,QAAQ,SAAS,QAAQ;EAC3B,MAAM,cAAc;EACpB,IAAI,YAAY,MACd,MAAM,KAAK,SAAS,YAAY,MAAM;CAE1C;CAGA,IAAI,OAAO,QAAQ,YAAY,YAAY,QAAQ,QAAQ,KAAK,GAAG;EACjE,IAAI,MAAM,SAAS,GACjB,MAAM,KAAK,EAAE;EAEf,MAAM,KAAK,QAAQ,OAAO;CAC5B;CAEA,OAAO,MAAM,KAAK,IAAI;AACxB"}