1 |
- {"ast":null,"code":"import { Serializable } from \"../load/serializable.js\";\nexport function mergeContent(firstContent, secondContent) {\n // If first content is a string\n if (typeof firstContent === \"string\") {\n if (typeof secondContent === \"string\") {\n return firstContent + secondContent;\n } else {\n return [{\n type: \"text\",\n text: firstContent\n }, ...secondContent];\n }\n // If both are arrays\n } else if (Array.isArray(secondContent)) {\n var _mergeLists2;\n return (_mergeLists2 = _mergeLists(firstContent, secondContent)) !== null && _mergeLists2 !== void 0 ? _mergeLists2 : [...firstContent, ...secondContent];\n } else {\n // Otherwise, add the second content as a new element of the list\n return [...firstContent, {\n type: \"text\",\n text: secondContent\n }];\n }\n}\n/**\n * 'Merge' two statuses. If either value passed is 'error', it will return 'error'. Else\n * it will return 'success'.\n *\n * @param {\"success\" | \"error\" | undefined} left The existing value to 'merge' with the new value.\n * @param {\"success\" | \"error\" | undefined} right The new value to 'merge' with the existing value\n * @returns {\"success\" | \"error\"} The 'merged' value.\n */\nexport function _mergeStatus(left, right) {\n if (left === \"error\" || right === \"error\") {\n return \"error\";\n }\n return \"success\";\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction stringifyWithDepthLimit(obj, depthLimit) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function helper(obj, currentDepth) {\n if (typeof obj !== \"object\" || obj === null || obj === undefined) {\n return obj;\n }\n if (currentDepth >= depthLimit) {\n if (Array.isArray(obj)) {\n return \"[Array]\";\n }\n return \"[Object]\";\n }\n if (Array.isArray(obj)) {\n return obj.map(item => helper(item, currentDepth + 1));\n }\n const result = {};\n for (const key of Object.keys(obj)) {\n result[key] = helper(obj[key], currentDepth + 1);\n }\n return result;\n }\n return JSON.stringify(helper(obj, 0), null, 2);\n}\n/**\n * Base class for all types of messages in a conversation. It includes\n * properties like `content`, `name`, and `additional_kwargs`. It also\n * includes methods like `toDict()` and `_getType()`.\n */\nexport class BaseMessage extends Serializable {\n get lc_aliases() {\n // exclude snake case conversion to pascal case\n return {\n additional_kwargs: \"additional_kwargs\",\n response_metadata: \"response_metadata\"\n };\n }\n /**\n * @deprecated\n * Use {@link BaseMessage.content} instead.\n */\n get text() {\n return typeof this.content === \"string\" ? this.content : \"\";\n }\n /** The type of the message. */\n getType() {\n return this._getType();\n }\n constructor(fields, /** @deprecated */\n kwargs) {\n if (typeof fields === \"string\") {\n // eslint-disable-next-line no-param-reassign\n fields = {\n content: fields,\n additional_kwargs: kwargs,\n response_metadata: {}\n };\n }\n // Make sure the default value for additional_kwargs is passed into super() for serialization\n if (!fields.additional_kwargs) {\n // eslint-disable-next-line no-param-reassign\n fields.additional_kwargs = {};\n }\n if (!fields.response_metadata) {\n // eslint-disable-next-line no-param-reassign\n fields.response_metadata = {};\n }\n super(fields);\n Object.defineProperty(this, \"lc_namespace\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: [\"langchain_core\", \"messages\"]\n });\n Object.defineProperty(this, \"lc_serializable\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n });\n /** The content of the message. */\n Object.defineProperty(this, \"content\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /** The name of the message sender in a multi-user chat. */\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /** Additional keyword arguments */\n Object.defineProperty(this, \"additional_kwargs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /** Response metadata. For example: response headers, logprobs, token counts. */\n Object.defineProperty(this, \"response_metadata\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * An optional unique identifier for the message. This should ideally be\n * provided by the provider/model which created the message.\n */\n Object.defineProperty(this, \"id\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.name = fields.name;\n this.content = fields.content;\n this.additional_kwargs = fields.additional_kwargs;\n this.response_metadata = fields.response_metadata;\n this.id = fields.id;\n }\n toDict() {\n return {\n type: this._getType(),\n data: this.toJSON().kwargs\n };\n }\n static lc_name() {\n return \"BaseMessage\";\n }\n // Can't be protected for silly reasons\n get _printableFields() {\n return {\n id: this.id,\n content: this.content,\n name: this.name,\n additional_kwargs: this.additional_kwargs,\n response_metadata: this.response_metadata\n };\n }\n // this private method is used to update the ID for the runtime\n // value as well as in lc_kwargs for serialisation\n _updateId(value) {\n this.id = value;\n // lc_attributes wouldn't work here, because jest compares the\n // whole object\n this.lc_kwargs.id = value;\n }\n get [Symbol.toStringTag]() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this.constructor.lc_name();\n }\n // Override the default behavior of console.log\n [Symbol.for(\"nodejs.util.inspect.custom\")](depth) {\n if (depth === null) {\n return this;\n }\n const printable = stringifyWithDepthLimit(this._printableFields, Math.max(4, depth));\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return `${this.constructor.lc_name()} ${printable}`;\n }\n}\nexport function isOpenAIToolCallArray(value) {\n return Array.isArray(value) && value.every(v => typeof v.index === \"number\");\n}\nexport function _mergeDicts(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nleft,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nright\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n const merged = {\n ...left\n };\n for (const [key, value] of Object.entries(right)) {\n if (merged[key] == null) {\n merged[key] = value;\n } else if (value == null) {\n continue;\n } else if (typeof merged[key] !== typeof value || Array.isArray(merged[key]) !== Array.isArray(value)) {\n throw new Error(`field[${key}] already exists in the message chunk, but with a different type.`);\n } else if (typeof merged[key] === \"string\") {\n if (key === \"type\") {\n // Do not merge 'type' fields\n continue;\n }\n merged[key] += value;\n } else if (typeof merged[key] === \"object\" && !Array.isArray(merged[key])) {\n merged[key] = _mergeDicts(merged[key], value);\n } else if (Array.isArray(merged[key])) {\n merged[key] = _mergeLists(merged[key], value);\n } else if (merged[key] === value) {\n continue;\n } else {\n console.warn(`field[${key}] already exists in this message chunk and value has unsupported type.`);\n }\n }\n return merged;\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function _mergeLists(left, right) {\n if (left === undefined && right === undefined) {\n return undefined;\n } else if (left === undefined || right === undefined) {\n return left || right;\n } else {\n const merged = [...left];\n for (const item of right) {\n if (typeof item === \"object\" && \"index\" in item && typeof item.index === \"number\") {\n const toMerge = merged.findIndex(leftItem => leftItem.index === item.index);\n if (toMerge !== -1) {\n merged[toMerge] = _mergeDicts(merged[toMerge], item);\n } else {\n merged.push(item);\n }\n } else if (typeof item === \"object\" && \"text\" in item && item.text === \"\") {\n // No-op - skip empty text blocks\n continue;\n } else {\n merged.push(item);\n }\n }\n return merged;\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function _mergeObj(left, right) {\n if (!left && !right) {\n throw new Error(\"Cannot merge two undefined objects.\");\n }\n if (!left || !right) {\n return left || right;\n } else if (typeof left !== typeof right) {\n throw new Error(`Cannot merge objects of different types.\\nLeft ${typeof left}\\nRight ${typeof right}`);\n } else if (typeof left === \"string\" && typeof right === \"string\") {\n return left + right;\n } else if (Array.isArray(left) && Array.isArray(right)) {\n return _mergeLists(left, right);\n } else if (typeof left === \"object\" && typeof right === \"object\") {\n return _mergeDicts(left, right);\n } else if (left === right) {\n return left;\n } else {\n throw new Error(`Can not merge objects of different types.\\nLeft ${left}\\nRight ${right}`);\n }\n}\n/**\n * Represents a chunk of a message, which can be concatenated with other\n * message chunks. It includes a method `_merge_kwargs_dict()` for merging\n * additional keyword arguments from another `BaseMessageChunk` into this\n * one. It also overrides the `__add__()` method to support concatenation\n * of `BaseMessageChunk` instances.\n */\nexport class BaseMessageChunk extends BaseMessage {}\nexport function _isMessageFieldWithRole(x) {\n return typeof x.role === \"string\";\n}\nexport function isBaseMessage(messageLike) {\n return typeof (messageLike === null || messageLike === void 0 ? void 0 : messageLike._getType) === \"function\";\n}\nexport function isBaseMessageChunk(messageLike) {\n return isBaseMessage(messageLike) && typeof messageLike.concat === \"function\";\n}","map":{"version":3,"names":["Serializable","mergeContent","firstContent","secondContent","type","text","Array","isArray","_mergeLists2","_mergeLists","_mergeStatus","left","right","stringifyWithDepthLimit","obj","depthLimit","helper","currentDepth","undefined","map","item","result","key","Object","keys","JSON","stringify","BaseMessage","lc_aliases","additional_kwargs","response_metadata","content","getType","_getType","constructor","fields","kwargs","defineProperty","enumerable","configurable","writable","value","name","id","toDict","data","toJSON","lc_name","_printableFields","_updateId","lc_kwargs","Symbol","toStringTag","for","depth","printable","Math","max","isOpenAIToolCallArray","every","v","index","_mergeDicts","merged","entries","Error","console","warn","toMerge","findIndex","leftItem","push","_mergeObj","BaseMessageChunk","_isMessageFieldWithRole","x","role","isBaseMessage","messageLike","isBaseMessageChunk","concat"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@langchain/core/dist/messages/base.js"],"sourcesContent":["import { Serializable } from \"../load/serializable.js\";\nexport function mergeContent(firstContent, secondContent) {\n // If first content is a string\n if (typeof firstContent === \"string\") {\n if (typeof secondContent === \"string\") {\n return firstContent + secondContent;\n }\n else {\n return [{ type: \"text\", text: firstContent }, ...secondContent];\n }\n // If both are arrays\n }\n else if (Array.isArray(secondContent)) {\n return (_mergeLists(firstContent, secondContent) ?? [\n ...firstContent,\n ...secondContent,\n ]);\n }\n else {\n // Otherwise, add the second content as a new element of the list\n return [...firstContent, { type: \"text\", text: secondContent }];\n }\n}\n/**\n * 'Merge' two statuses. If either value passed is 'error', it will return 'error'. Else\n * it will return 'success'.\n *\n * @param {\"success\" | \"error\" | undefined} left The existing value to 'merge' with the new value.\n * @param {\"success\" | \"error\" | undefined} right The new value to 'merge' with the existing value\n * @returns {\"success\" | \"error\"} The 'merged' value.\n */\nexport function _mergeStatus(left, right) {\n if (left === \"error\" || right === \"error\") {\n return \"error\";\n }\n return \"success\";\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction stringifyWithDepthLimit(obj, depthLimit) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function helper(obj, currentDepth) {\n if (typeof obj !== \"object\" || obj === null || obj === undefined) {\n return obj;\n }\n if (currentDepth >= depthLimit) {\n if (Array.isArray(obj)) {\n return \"[Array]\";\n }\n return \"[Object]\";\n }\n if (Array.isArray(obj)) {\n return obj.map((item) => helper(item, currentDepth + 1));\n }\n const result = {};\n for (const key of Object.keys(obj)) {\n result[key] = helper(obj[key], currentDepth + 1);\n }\n return result;\n }\n return JSON.stringify(helper(obj, 0), null, 2);\n}\n/**\n * Base class for all types of messages in a conversation. It includes\n * properties like `content`, `name`, and `additional_kwargs`. It also\n * includes methods like `toDict()` and `_getType()`.\n */\nexport class BaseMessage extends Serializable {\n get lc_aliases() {\n // exclude snake case conversion to pascal case\n return {\n additional_kwargs: \"additional_kwargs\",\n response_metadata: \"response_metadata\",\n };\n }\n /**\n * @deprecated\n * Use {@link BaseMessage.content} instead.\n */\n get text() {\n return typeof this.content === \"string\" ? this.content : \"\";\n }\n /** The type of the message. */\n getType() {\n return this._getType();\n }\n constructor(fields, \n /** @deprecated */\n kwargs) {\n if (typeof fields === \"string\") {\n // eslint-disable-next-line no-param-reassign\n fields = {\n content: fields,\n additional_kwargs: kwargs,\n response_metadata: {},\n };\n }\n // Make sure the default value for additional_kwargs is passed into super() for serialization\n if (!fields.additional_kwargs) {\n // eslint-disable-next-line no-param-reassign\n fields.additional_kwargs = {};\n }\n if (!fields.response_metadata) {\n // eslint-disable-next-line no-param-reassign\n fields.response_metadata = {};\n }\n super(fields);\n Object.defineProperty(this, \"lc_namespace\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: [\"langchain_core\", \"messages\"]\n });\n Object.defineProperty(this, \"lc_serializable\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n });\n /** The content of the message. */\n Object.defineProperty(this, \"content\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /** The name of the message sender in a multi-user chat. */\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /** Additional keyword arguments */\n Object.defineProperty(this, \"additional_kwargs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /** Response metadata. For example: response headers, logprobs, token counts. */\n Object.defineProperty(this, \"response_metadata\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * An optional unique identifier for the message. This should ideally be\n * provided by the provider/model which created the message.\n */\n Object.defineProperty(this, \"id\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.name = fields.name;\n this.content = fields.content;\n this.additional_kwargs = fields.additional_kwargs;\n this.response_metadata = fields.response_metadata;\n this.id = fields.id;\n }\n toDict() {\n return {\n type: this._getType(),\n data: this.toJSON()\n .kwargs,\n };\n }\n static lc_name() {\n return \"BaseMessage\";\n }\n // Can't be protected for silly reasons\n get _printableFields() {\n return {\n id: this.id,\n content: this.content,\n name: this.name,\n additional_kwargs: this.additional_kwargs,\n response_metadata: this.response_metadata,\n };\n }\n // this private method is used to update the ID for the runtime\n // value as well as in lc_kwargs for serialisation\n _updateId(value) {\n this.id = value;\n // lc_attributes wouldn't work here, because jest compares the\n // whole object\n this.lc_kwargs.id = value;\n }\n get [Symbol.toStringTag]() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return this.constructor.lc_name();\n }\n // Override the default behavior of console.log\n [Symbol.for(\"nodejs.util.inspect.custom\")](depth) {\n if (depth === null) {\n return this;\n }\n const printable = stringifyWithDepthLimit(this._printableFields, Math.max(4, depth));\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return `${this.constructor.lc_name()} ${printable}`;\n }\n}\nexport function isOpenAIToolCallArray(value) {\n return (Array.isArray(value) &&\n value.every((v) => typeof v.index === \"number\"));\n}\nexport function _mergeDicts(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nleft, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nright\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n const merged = { ...left };\n for (const [key, value] of Object.entries(right)) {\n if (merged[key] == null) {\n merged[key] = value;\n }\n else if (value == null) {\n continue;\n }\n else if (typeof merged[key] !== typeof value ||\n Array.isArray(merged[key]) !== Array.isArray(value)) {\n throw new Error(`field[${key}] already exists in the message chunk, but with a different type.`);\n }\n else if (typeof merged[key] === \"string\") {\n if (key === \"type\") {\n // Do not merge 'type' fields\n continue;\n }\n merged[key] += value;\n }\n else if (typeof merged[key] === \"object\" && !Array.isArray(merged[key])) {\n merged[key] = _mergeDicts(merged[key], value);\n }\n else if (Array.isArray(merged[key])) {\n merged[key] = _mergeLists(merged[key], value);\n }\n else if (merged[key] === value) {\n continue;\n }\n else {\n console.warn(`field[${key}] already exists in this message chunk and value has unsupported type.`);\n }\n }\n return merged;\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function _mergeLists(left, right) {\n if (left === undefined && right === undefined) {\n return undefined;\n }\n else if (left === undefined || right === undefined) {\n return left || right;\n }\n else {\n const merged = [...left];\n for (const item of right) {\n if (typeof item === \"object\" &&\n \"index\" in item &&\n typeof item.index === \"number\") {\n const toMerge = merged.findIndex((leftItem) => leftItem.index === item.index);\n if (toMerge !== -1) {\n merged[toMerge] = _mergeDicts(merged[toMerge], item);\n }\n else {\n merged.push(item);\n }\n }\n else if (typeof item === \"object\" &&\n \"text\" in item &&\n item.text === \"\") {\n // No-op - skip empty text blocks\n continue;\n }\n else {\n merged.push(item);\n }\n }\n return merged;\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function _mergeObj(left, right) {\n if (!left && !right) {\n throw new Error(\"Cannot merge two undefined objects.\");\n }\n if (!left || !right) {\n return left || right;\n }\n else if (typeof left !== typeof right) {\n throw new Error(`Cannot merge objects of different types.\\nLeft ${typeof left}\\nRight ${typeof right}`);\n }\n else if (typeof left === \"string\" && typeof right === \"string\") {\n return (left + right);\n }\n else if (Array.isArray(left) && Array.isArray(right)) {\n return _mergeLists(left, right);\n }\n else if (typeof left === \"object\" && typeof right === \"object\") {\n return _mergeDicts(left, right);\n }\n else if (left === right) {\n return left;\n }\n else {\n throw new Error(`Can not merge objects of different types.\\nLeft ${left}\\nRight ${right}`);\n }\n}\n/**\n * Represents a chunk of a message, which can be concatenated with other\n * message chunks. It includes a method `_merge_kwargs_dict()` for merging\n * additional keyword arguments from another `BaseMessageChunk` into this\n * one. It also overrides the `__add__()` method to support concatenation\n * of `BaseMessageChunk` instances.\n */\nexport class BaseMessageChunk extends BaseMessage {\n}\nexport function _isMessageFieldWithRole(x) {\n return typeof x.role === \"string\";\n}\nexport function isBaseMessage(messageLike) {\n return typeof messageLike?._getType === \"function\";\n}\nexport function isBaseMessageChunk(messageLike) {\n return (isBaseMessage(messageLike) &&\n typeof messageLike.concat === \"function\");\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|