UNPKG

@posthog/ai

Version:
1 lines 206 kB
{"version":3,"file":"index.cjs","sources":["../src/typeGuards.ts","../src/sanitization.ts","../src/utils.ts","../src/openai/utils.ts","../src/openai/index.ts","../src/openai/azure.ts","../src/vercel/middleware.ts","../src/otel/mappers/aiSdk.ts","../src/otel/mappers/index.ts","../src/otel/capture.ts","../src/otel/processor.ts","../src/anthropic/index.ts","../src/gemini/index.ts","../../../node_modules/.pnpm/decamelize@1.2.0/node_modules/decamelize/index.js","../../../node_modules/.pnpm/camelcase@6.3.0/node_modules/camelcase/index.js","../../../node_modules/.pnpm/@langchain+core@1.1.27_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@2.2.0_@op_709bf8d47bfdbc335b57febfb747c366/node_modules/@langchain/core/dist/load/map_keys.js","../../../node_modules/.pnpm/@langchain+core@1.1.27_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@2.2.0_@op_709bf8d47bfdbc335b57febfb747c366/node_modules/@langchain/core/dist/load/validation.js","../../../node_modules/.pnpm/@langchain+core@1.1.27_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@2.2.0_@op_709bf8d47bfdbc335b57febfb747c366/node_modules/@langchain/core/dist/load/serializable.js","../../../node_modules/.pnpm/@langchain+core@1.1.27_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@2.2.0_@op_709bf8d47bfdbc335b57febfb747c366/node_modules/@langchain/core/dist/utils/env.js","../../../node_modules/.pnpm/@langchain+core@1.1.27_@opentelemetry+api@1.9.0_@opentelemetry+sdk-trace-base@2.2.0_@op_709bf8d47bfdbc335b57febfb747c366/node_modules/@langchain/core/dist/callbacks/base.js","../src/langchain/callbacks.ts","../src/prompts.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,"'use strict';\nmodule.exports = function (str, sep) {\n\tif (typeof str !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\tsep = typeof sep === 'undefined' ? '_' : sep;\n\n\treturn str\n\t\t.replace(/([a-z\\d])([A-Z])/g, '$1' + sep + '$2')\n\t\t.replace(/([A-Z]+)([A-Z][a-z\\d]+)/g, '$1' + sep + '$2')\n\t\t.toLowerCase();\n};\n","'use strict';\n\nconst UPPERCASE = /[\\p{Lu}]/u;\nconst LOWERCASE = /[\\p{Ll}]/u;\nconst LEADING_CAPITAL = /^[\\p{Lu}](?![\\p{Lu}])/gu;\nconst IDENTIFIER = /([\\p{Alpha}\\p{N}_]|$)/u;\nconst SEPARATORS = /[_.\\- ]+/;\n\nconst LEADING_SEPARATORS = new RegExp('^' + SEPARATORS.source);\nconst SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, 'gu');\nconst NUMBERS_AND_IDENTIFIER = new RegExp('\\\\d+' + IDENTIFIER.source, 'gu');\n\nconst preserveCamelCase = (string, toLowerCase, toUpperCase) => {\n\tlet isLastCharLower = false;\n\tlet isLastCharUpper = false;\n\tlet isLastLastCharUpper = false;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst character = string[i];\n\n\t\tif (isLastCharLower && UPPERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i) + '-' + string.slice(i);\n\t\t\tisLastCharLower = false;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = true;\n\t\t\ti++;\n\t\t} else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = false;\n\t\t\tisLastCharLower = true;\n\t\t} else {\n\t\t\tisLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character;\n\t\t}\n\t}\n\n\treturn string;\n};\n\nconst preserveConsecutiveUppercase = (input, toLowerCase) => {\n\tLEADING_CAPITAL.lastIndex = 0;\n\n\treturn input.replace(LEADING_CAPITAL, m1 => toLowerCase(m1));\n};\n\nconst postProcess = (input, toUpperCase) => {\n\tSEPARATORS_AND_IDENTIFIER.lastIndex = 0;\n\tNUMBERS_AND_IDENTIFIER.lastIndex = 0;\n\n\treturn input.replace(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier))\n\t\t.replace(NUMBERS_AND_IDENTIFIER, m => toUpperCase(m));\n};\n\nconst camelCase = (input, options) => {\n\tif (!(typeof input === 'string' || Array.isArray(input))) {\n\t\tthrow new TypeError('Expected the input to be `string | string[]`');\n\t}\n\n\toptions = {\n\t\tpascalCase: false,\n\t\tpreserveConsecutiveUppercase: false,\n\t\t...options\n\t};\n\n\tif (Array.isArray(input)) {\n\t\tinput = input.map(x => x.trim())\n\t\t\t.filter(x => x.length)\n\t\t\t.join('-');\n\t} else {\n\t\tinput = input.trim();\n\t}\n\n\tif (input.length === 0) {\n\t\treturn '';\n\t}\n\n\tconst toLowerCase = options.locale === false ?\n\t\tstring => string.toLowerCase() :\n\t\tstring => string.toLocaleLowerCase(options.locale);\n\tconst toUpperCase = options.locale === false ?\n\t\tstring => string.toUpperCase() :\n\t\tstring => string.toLocaleUpperCase(options.locale);\n\n\tif (input.length === 1) {\n\t\treturn options.pascalCase ? toUpperCase(input) : toLowerCase(input);\n\t}\n\n\tconst hasUpperCase = input !== toLowerCase(input);\n\n\tif (hasUpperCase) {\n\t\tinput = preserveCamelCase(input, toLowerCase, toUpperCase);\n\t}\n\n\tinput = input.replace(LEADING_SEPARATORS, '');\n\n\tif (options.preserveConsecutiveUppercase) {\n\t\tinput = preserveConsecutiveUppercase(input, toLowerCase);\n\t} else {\n\t\tinput = toLowerCase(input);\n\t}\n\n\tif (options.pascalCase) {\n\t\tinput = toUpperCase(input.charAt(0)) + input.slice(1);\n\t}\n\n\treturn postProcess(input, toUpperCase);\n};\n\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;\n","import snakeCase from \"decamelize\";\nimport camelCase from \"camelcase\";\n\n//#region src/load/map_keys.ts\nfunction keyToJson(key, map) {\n\treturn map?.[key] || snakeCase(key);\n}\nfunction keyFromJson(key, map) {\n\treturn map?.[key] || camelCase(key);\n}\nfunction mapKeys(fields, mapper, map) {\n\tconst mapped = {};\n\tfor (const key in fields) if (Object.hasOwn(fields, key)) mapped[mapper(key, map)] = fields[key];\n\treturn mapped;\n}\n\n//#endregion\nexport { keyFromJson, keyToJson, mapKeys };\n//# sourceMappingURL=map_keys.js.map","//#region src/load/validation.ts\n/**\n* Sentinel key used to mark escaped user objects during serialization.\n*\n* When a plain object contains 'lc' key (which could be confused with LC objects),\n* we wrap it as `{\"__lc_escaped__\": {...original...}}`.\n*/\nconst LC_ESCAPED_KEY = \"__lc_escaped__\";\n/**\n* Check if an object needs escaping to prevent confusion with LC objects.\n*\n* An object needs escaping if:\n* 1. It has an `'lc'` key (could be confused with LC serialization format)\n* 2. It has only the escape key (would be mistaken for an escaped object)\n*/\nfunction needsEscaping(obj) {\n\treturn \"lc\" in obj || Object.keys(obj).length === 1 && LC_ESCAPED_KEY in obj;\n}\n/**\n* Wrap an object in the escape marker.\n*\n* @example\n* ```typescript\n* {\"key\": \"value\"} // becomes {\"__lc_escaped__\": {\"key\": \"value\"}}\n* ```\n*/\nfunction escapeObject(obj) {\n\treturn { [LC_ESCAPED_KEY]: obj };\n}\n/**\n* Check if an object is an escaped user object.\n*\n* @example\n* ```typescript\n* {\"__lc_escaped__\": {...}} // is an escaped object\n* ```\n*/\nfunction isEscapedObject(obj) {\n\treturn Object.keys(obj).length === 1 && LC_ESCAPED_KEY in obj;\n}\n/**\n* Check if an object looks like a Serializable instance (duck typing).\n*/\nfunction isSerializableLike(obj) {\n\treturn obj !== null && typeof obj === \"object\" && \"lc_serializable\" in obj && typeof obj.toJSON === \"function\";\n}\n/**\n* Create a \"not_implemented\" serialization result for objects that cannot be serialized.\n*/\nfunction createNotImplemented(obj) {\n\tlet id;\n\tif (obj !== null && typeof obj === \"object\") if (\"lc_id\" in obj && Array.isArray(obj.lc_id)) id = obj.lc_id;\n\telse id = [obj.constructor?.name ?? \"Object\"];\n\telse id = [typeof obj];\n\treturn {\n\t\tlc: 1,\n\t\ttype: \"not_implemented\",\n\t\tid\n\t};\n}\n/**\n* Escape a value if it needs escaping (contains `lc` key).\n*\n* This is a simpler version of `serializeValue` that doesn't handle Serializable\n* objects - it's meant to be called on kwargs values that have already been\n* processed by `toJSON()`.\n*\n* @param value - The value to potentially escape.\n* @param pathSet - WeakSet to track ancestor objects in the current path to detect circular references.\n* Objects are removed after processing to allow shared references (same object in\n* multiple places) while still detecting true circular references (ancestor in descendant).\n* @returns The value with any `lc`-containing objects wrapped in escape markers.\n*/\nfunction escapeIfNeeded(value, pathSet = /* @__PURE__ */ new WeakSet()) {\n\tif (value !== null && typeof value === \"object\" && !Array.isArray(value)) {\n\t\tif (pathSet.has(value)) return createNotImplemented(value);\n\t\tif (isSerializableLike(value)) return value;\n\t\tpathSet.add(value);\n\t\tconst record = value;\n\t\tif (needsEscaping(record)) {\n\t\t\tpathSet.delete(value);\n\t\t\treturn escapeObject(record);\n\t\t}\n\t\tconst result = {};\n\t\tfor (const [key, val] of Object.entries(record)) result[key] = escapeIfNeeded(val, pathSet);\n\t\tpathSet.delete(value);\n\t\treturn result;\n\t}\n\tif (Array.isArray(value)) return value.map((item) => escapeIfNeeded(item, pathSet));\n\treturn value;\n}\n/**\n* Unescape a value, processing escape markers in object values and arrays.\n*\n* When an escaped object is encountered (`{\"__lc_escaped__\": ...}`), it's\n* unwrapped and the contents are returned AS-IS (no further processing).\n* The contents represent user data that should not be modified.\n*\n* For regular objects and arrays, we recurse to find any nested escape markers.\n*\n* @param obj - The value to unescape.\n* @returns The unescaped value.\n*/\nfunction unescapeValue(obj) {\n\tif (obj !== null && typeof obj === \"object\" && !Array.isArray(obj)) {\n\t\tconst record = obj;\n\t\tif (isEscapedObject(record)) return record[LC_ESCAPED_KEY];\n\t\tconst result = {};\n\t\tfor (const [key, value] of Object.entries(record)) result[key] = unescapeValue(value);\n\t\treturn result;\n\t}\n\tif (Array.isArray(obj)) return obj.map((item) => unescapeValue(item));\n\treturn obj;\n}\n\n//#endregion\nexport { escapeIfNeeded, isEscapedObject, unescapeValue };\n//# sourceMappingURL=validation.js.map","import { __exportAll } from \"../_virtual/_rolldown/runtime.js\";\nimport { keyToJson, mapKeys } from \"./map_keys.js\";\nimport { escapeIfNeeded } from \"./validation.js\";\n\n//#region src/load/serializable.ts\nvar serializable_exports = /* @__PURE__ */ __exportAll({\n\tSerializable: () => Serializable,\n\tget_lc_unique_name: () => get_lc_unique_name\n});\nfunction shallowCopy(obj) {\n\treturn Array.isArray(obj) ? [...obj] : { ...obj };\n}\nfunction replaceSecrets(root, secretsMap) {\n\tconst result = shallowCopy(root);\n\tfor (const [path, secretId] of Object.entries(secretsMap)) {\n\t\tconst [last, ...partsReverse] = path.split(\".\").reverse();\n\t\tlet current = result;\n\t\tfor (const part of partsReverse.reverse()) {\n\t\t\tif (current[part] === void 0) break;\n\t\t\tcurrent[part] = shallowCopy(current[part]);\n\t\t\tcurrent = current[part];\n\t\t}\n\t\tif (current[last] !== void 0) current[last] = {\n\t\t\tlc: 1,\n\t\t\ttype: \"secret\",\n\t\t\tid: [secretId]\n\t\t};\n\t}\n\treturn result;\n}\n/**\n* Get a unique name for the module, rather than parent class implementations.\n* Should not be subclassed, subclass lc_name above instead.\n*/\nfunction get_lc_unique_name(serializableClass) {\n\tconst parentClass = Object.getPrototypeOf(serializableClass);\n\tif (typeof serializableClass.lc_name === \"function\" && (typeof parentClass.lc_name !== \"function\" || serializableClass.lc_name() !== parentClass.lc_name())) return serializableClass.lc_name();\n\telse return serializableClass.name;\n}\nvar Serializable = class Serializable {\n\tlc_serializable = false;\n\tlc_kwargs;\n\t/**\n\t* The name of the serializable. Override to provide an alias or\n\t* to preserve the serialized module name in minified environments.\n\t*\n\t* Implemented as a static method to support loading logic.\n\t*/\n\tstatic lc_name() {\n\t\treturn this.name;\n\t}\n\t/**\n\t* The final serialized identifier for the module.\n\t*/\n\tget lc_id() {\n\t\treturn [...this.lc_namespace, get_lc_unique_name(this.constructor)];\n\t}\n\t/**\n\t* A map of secrets, which will be omitted from serialization.\n\t* Keys are paths to the secret in constructor args, e.g. \"foo.bar.baz\".\n\t* Values are the secret ids, which will be used when deserializing.\n\t*/\n\tget lc_secrets() {}\n\t/**\n\t* A map of additional attributes to merge with constructor args.\n\t* Keys are the attribute names, e.g. \"foo\".\n\t* Values are the attribute values, which will be serialized.\n\t* These attributes need to be accepted by the constructor as arguments.\n\t*/\n\tget lc_attributes() {}\n\t/**\n\t* A map of aliases for constructor args.\n\t* Keys are the attribute names, e.g. \"foo\".\n\t* Values are the alias that will replace the key in serialization.\n\t* This is used to eg. make argument names match Python.\n\t*/\n\tget lc_aliases() {}\n\t/**\n\t* A manual list of keys that should be serialized.\n\t* If not overridden, all fields passed into the constructor will be serialized.\n\t*/\n\tget lc_serializable_keys() {}\n\tconstructor(kwargs, ..._args) {\n\t\tif (this.lc_serializable_keys !== void 0) this.lc_kwargs = Object.fromEntries(Object.entries(kwargs || {}).filter(([key]) => this.lc_serializable_keys?.includes(key)));\n\t\telse this.lc_kwargs = kwargs ?? {};\n\t}\n\ttoJSON() {\n\t\tif (!this.lc_serializable) return this.toJSONNotImplemented();\n\t\tif (this.lc_kwargs instanceof Serializable || typeof this.lc_kwargs !== \"object\" || Array.isArray(this.lc_kwargs)) return this.toJSONNotImplemented();\n\t\tconst aliases = {};\n\t\tconst secrets = {};\n\t\tconst kwargs = Object.keys(this.lc_kwargs).reduce((acc, key) => {\n\t\t\tacc[key] = key in this ? this[key] : this.lc_kwargs[key];\n\t\t\treturn acc;\n\t\t}, {});\n\t\tfor (let current = Object.getPrototypeOf(this); current; current = Object.getPrototypeOf(current)) {\n\t\t\tObject.assign(aliases, Reflect.get(current, \"lc_aliases\", this));\n\t\t\tObject.assign(secrets, Reflect.get(current, \"lc_secrets\", this));\n\t\t\tObject.assign(kwargs, Reflect.get(current, \"lc_attributes\", this));\n\t\t}\n\t\tObject.keys(secrets).forEach((keyPath) => {\n\t\t\tlet read = this;\n\t\t\tlet write = kwargs;\n\t\t\tconst [last, ...partsReverse] = keyPath.split(\".\").reverse();\n\t\t\tfor (const key of partsReverse.reverse()) {\n\t\t\t\tif (!(key in read) || read[key] === void 0) return;\n\t\t\t\tif (!(key in write) || write[key] === void 0) {\n\t\t\t\t\tif (typeof read[key] === \"object\" && read[key] != null) write[key] = {};\n\t\t\t\t\telse if (Array.isArray(read[key])) write[key] = [];\n\t\t\t\t}\n\t\t\t\tread = read[key];\n\t\t\t\twrite = write[key];\n\t\t\t}\n\t\t\tif (last in read && read[last] !== void 0) write[last] = write[last] || read[last];\n\t\t});\n\t\tconst escapedKwargs = {};\n\t\tconst pathSet = /* @__PURE__ */ new WeakSet();\n\t\tpathSet.add(this);\n\t\tfor (const [key, value] of Object.entries(kwargs)) escapedKwargs[key] = escapeIfNeeded(value, pathSet);\n\t\tconst processedKwargs = mapKeys(Object.keys(secrets).length ? replaceSecrets(escapedKwargs, secrets) : escapedKwargs, keyToJson, aliases);\n\t\treturn {\n\t\t\tlc: 1,\n\t\t\ttype: \"constructor\",\n\t\t\tid: this.lc_id,\n\t\t\tkwargs: processedKwargs\n\t\t};\n\t}\n\ttoJSONNotImplemented() {\n\t\treturn {\n\t\t\tlc: 1,\n\t\t\ttype: \"not_implemented\",\n\t\t\tid: this.lc_id\n\t\t};\n\t}\n};\n\n//#endregion\nexport { Serializable, get_lc_unique_name, serializable_exports };\n//# sourceMappingURL=serializable.js.map","import { __exportAll } from \"../_virtual/_rolldown/runtime.js\";\n\n//#region src/utils/env.ts\nvar env_exports = /* @__PURE__ */ __exportAll({\n\tgetEnv: () => getEnv,\n\tgetEnvironmentVariable: () => getEnvironmentVariable,\n\tgetRuntimeEnvironment: () => getRuntimeEnvironment,\n\tisBrowser: () => isBrowser,\n\tisDeno: () => isDeno,\n\tisJsDom: () => isJsDom,\n\tisNode: () => isNode,\n\tisWebWorker: () => isWebWorker\n});\nconst isBrowser = () => typeof window !== \"undefined\" && typeof window.document !== \"undefined\";\nconst isWebWorker = () => typeof globalThis === \"object\" && globalThis.constructor && globalThis.constructor.name === \"DedicatedWorkerGlobalScope\";\nconst isJsDom = () => typeof window !== \"undefined\" && window.name === \"nodejs\" || typeof navigator !== \"undefined\" && navigator.userAgent.includes(\"jsdom\");\nconst isDeno = () => typeof Deno !== \"undefined\";\nconst isNode = () => typeof process !== \"undefined\" && typeof process.versions !== \"undefined\" && typeof process.versions.node !== \"undefined\" && !isDeno();\nconst getEnv = () => {\n\tlet env;\n\tif (isBrowser()) env = \"browser\";\n\telse if (isNode()) env = \"node\";\n\telse if (isWebWorker()) env = \"webworker\";\n\telse if (isJsDom()) env = \"jsdom\";\n\telse if (isDeno()) env = \"deno\";\n\telse env = \"other\";\n\treturn env;\n};\nlet runtimeEnvironment;\nfunction getRuntimeEnvironment() {\n\tif (runtimeEnvironment === void 0) runtimeEnvironment = {\n\t\tlibrary: \"langchain-js\",\n\t\truntime: getEnv()\n\t};\n\treturn runtimeEnvironment;\n}\nfunction getEnvironmentVariable(name) {\n\ttry {\n\t\tif (typeof process !== \"undefined\") return process.env?.[name];\n\t\telse if (isDeno()) return Deno?.env.get(name);\n\t\telse return;\n\t} catch {\n\t\treturn;\n\t}\n}\n\n//#endregion\nexport { env_exports, getEnv, getEnvironmentVariable, getRuntimeEnvironment, isBrowser, isDeno, isJsDom, isNode, isWebWorker };\n//# sourceMappingURL=env.js.map","import { __exportAll } from \"../_virtual/_rolldown/runtime.js\";\nimport { Serializable, get_lc_unique_name } from \"../load/serializable.js\";\nimport { getEnvironmentVariable } from \"../utils/env.js\";\nimport * as uuid from \"uuid\";\n\n//#region src/callbacks/base.ts\nvar base_exports = /* @__PURE__ */ __exportAll({\n\tBaseCallbackHandler: () => BaseCallbackHandler,\n\tcallbackHandlerPrefersStreaming: () => callbackHandlerPrefersStreaming,\n\tisBaseCallbackHandler: () => isBaseCallbackHandler\n});\n/**\n* Abstract class that provides a set of optional methods that can be\n* overridden in derived classes to handle various events during the\n* execution of a LangChain application.\n*/\nvar BaseCallbackHandlerMethodsClass = class {};\nfunction callbackHandlerPrefersStreaming(x) {\n\treturn \"lc_prefer_streaming\" in x && x.lc_prefer_streaming;\n}\n/**\n* Abstract base class for creating callback handlers in the LangChain\n* framework. It provides a set of optional methods that can be overridden\n* in derived classes to handle various events during the execution of a\n* LangChain application.\n*/\nvar BaseCallbackHandler = class extends BaseCallbackHandlerMethodsClass {\n\tlc_serializable = false;\n\tget lc_namespace() {\n\t\treturn [\n\t\t\t\"langchain_core\",\n\t\t\t\"callbacks\",\n\t\t\tthis.name\n\t\t];\n\t}\n\tget lc_secrets() {}\n\tget lc_attributes() {}\n\tget lc_aliases() {}\n\tget lc_serializable_keys() {}\n\t/**\n\t* The name of the serializable. Override to provide an alias or\n\t* to preserve the serialized module name in minified environments.\n\t*\n\t* Implemented as a static method to support loading logic.\n\t*/\n\tstatic lc_name() {\n\t\treturn this.name;\n\t}\n\t/**\n\t* The final serialized identifier for the module.\n\t*/\n\tget lc_id() {\n\t\treturn [...this.lc_namespace, get_lc_unique_name(this.constructor)];\n\t}\n\tlc_kwargs;\n\tignoreLLM = false;\n\tignoreChain = false;\n\tignoreAgent = false;\n\tignoreRetriever = false;\n\tignoreCustomEvent = false;\n\traiseError = false;\n\tawaitHandlers = getEnvironmentVariable(\"LANGCHAIN_CALLBACKS_BACKGROUND\") === \"false\";\n\tconstructor(input) {\n\t\tsuper();\n\t\tthis.lc_kwargs = input || {};\n\t\tif (input) {\n\t\t\tthis.ignoreLLM = input.ignoreLLM ?? this.ignoreLLM;\n\t\t\tthis.ignoreChain = input.ignoreChain ?? this.ignoreChain;\n\t\t\tthis.ignoreAgent = input.ignoreAgent ?? this.ignoreAgent;\n\t\t\tthis.ignoreRetriever = input.ignoreRetriever ?? this.ignoreRetriever;\n\t\t\tthis.ignoreCustomEvent = input.ignoreCustomEvent ?? this.ignoreCustomEvent;\n\t\t\tthis.raiseError = input.raiseError ?? this.raiseError;\n\t\t\tthis.awaitHandlers = this.raiseError || (input._awaitHandler ?? this.awaitHandlers);\n\t\t}\n\t}\n\tcopy() {\n\t\treturn new this.constructor(this);\n\t}\n\ttoJSON() {\n\t\treturn Serializable.prototype.toJSON.call(this);\n\t}\n\ttoJSONNotImplemented() {\n\t\treturn Serializable.prototype.toJSONNotImplemented.call(this);\n\t}\n\tstatic fromMethods(methods) {\n\t\tclass Handler extends BaseCallbackHandler {\n\t\t\tname = uuid.v7();\n\t\t\tconstructor() {\n\t\t\t\tsuper();\n\t\t\t\tObject.assign(this, methods);\n\t\t\t}\n\t\t}\n\t\treturn new Handler();\n\t}\n};\nconst isBaseCallbackHandler = (x) => {\n\tconst callbackHandler = x;\n\treturn callbackHandler !== void 0 && typeof callbackHandler.copy === \"function\" && typeof callbackHandler.name === \"string\" && typeof callbackHandler.awaitHandlers === \"boolean\";\n};\n\n//#endregion\nexport { BaseCallbackHandler, base_exports, callbackHandlerPrefersStreaming, isBaseCallbackHandler };\n//# sourceMappingURL=base.js.map",null,null],"names":["isString","value","isObject","Array","isArray","REDACTED_IMAGE_PLACEHOLDER","isMultimodalEnabled","val","process","env","_INTERNAL_LLMA_MULTIMODAL","toLowerCase","isBase64DataUrl","str","test","isValidUrl","URL","startsWith","isRawBase64","length","redactBase64DataUrl","processMessages","messages","transformContent","processContent","content","map","processMessage","msg","sanitizeOpenAIImage","item","type","image_url","url","data","sanitizeOpenAIResponseImage","sanitizeAnthropicImage","source","sanitizeGeminiPart","part","inlineData","processGeminiItem","parts","sanitizeLangChainImage","sanitizeOpenAI","sanitizeOpenAIResponse","sanitizeAnthropic","sanitizeGemini","sanitizeLangChain","MAX_OUTPUT_SIZE","STRING_FORMAT","toContentString","undefined","JSON","stringify","String","getModelParams","params","modelParams","paramKeys","key","formatResponseAnthropic","response","output","choice","text","push","name","id","function","arguments","input","role","formatResponseOpenAI","choices","message","tool_calls","toolCall","audio","contentItem","image","call_id","formatResponseGemini","candidates","candidate","functionCall","args","mimeType","Uint8Array","Buffer","from","toString","binary","i","fromCharCode","btoa","mime_type","mergeSystemPrompt","provider","system","systemMessage","withPrivacyMode","client","privacyMode","privacy_mode","toSafeString","console","warn","truncate","encoder","TextEncoder","buffer","encode","TextDecoder","decode","truncatedBuffer","slice","decoder","fatal","truncatedStr","endsWith","calculateWebSearchCount","result","count","citations","search_results","usage","search_context_size","delta","annotations","hasUrlCitation","some","ann","grounding_metadata","extractAvailableToolCalls","tools","config","AIEvent","sanitizeValues","obj","jsonSafe","parse","Object","fromEntries","entries","k","v","POSTHOG_PARAMS_MAP","posthogDistinctId","posthogTraceId","posthogProperties","posthogPrivacyMode","posthogGroups","posthogModelOverride","posthogProviderOverride","posthogCostOverride","posthogCaptureImmediate","extractPosthogParams","body","providerParams","posthogParams","addDefaults","traceId","uuidv4","sendEventWithErrorToPosthog","error","httpStatus","status","properties","enrichedError","options","enableExceptionAutocapture","exceptionId","uuidv7","captureException","$ai_trace_id","__posthog_previously_captured_error","sendEventToPosthog","eventType","Generation","distinctId","model","latency","timeToFirstToken","baseURL","captureImmediate","capture","Promise","resolve","safeInput","safeOutput","safeError","errorData","$ai_is_error","$ai_error","$exception_event_id","costOverrideData","inputCostUSD","inputCost","inputTokens","outputCostUSD","outputCost","outputTokens","$ai_input_cost_usd","$ai_output_cost_usd","$ai_total_cost_usd","additionalTokenValues","reasoningTokens","$ai_reasoning_tokens","cacheReadInputTokens","$ai_cache_read_input_tokens","cacheCreationInputTokens","$ai_cache_creation_input_tokens","webSearchCount","$ai_web_search_count","rawUsage","$ai_usage","$ai_lib","$ai_lib_version","version","$ai_provider","$ai_model","$ai_model_parameters","$ai_input","$ai_output_choices","$ai_http_status","$ai_input_tokens","$ai_output_tokens","$ai_latency","$ai_time_to_first_token","$ai_base_url","$process_person_profile","$ai_tools","event","groups","formatOpenAIResponsesInput","instructions","isResponseTokenChunk","chunk","Chat","OpenAIOrignal","Completions","Responses","Embeddings","Audio","Transcriptions","PostHogOpenAI","constructor","posthog","openAIConfig","phClient","chat","WrappedChat","responses","WrappedResponses","embeddings","WrappedEmbeddings","WrappedAudio","parentClient","completions","WrappedCompletions","create","openAIParams","startTime","Date","now","parentPromise","stream","then","stream1","stream2","tee","contentBlocks","accumulatedContent","modelFromResponse","firstTokenTime","toolCallsInProgress","Map","rawUsageData","chunkWebSearchCount","deltaContent","deltaToolCalls","index","has","set","inProgressCall","get","prompt_tokens","completion_tokens","completion_tokens_details","reasoning_tokens","prompt_tokens_details","cached_tokens","values","formattedOutput","availableTools","wrappedPromise","finalContent","input_tokens","output_tokens","output_tokens_details","input_tokens_details","originalCreate","bind","originalSelfRecord","tempCreate","Embedding","transcriptions","WrappedTranscriptions","doneEvent","prompt","PostHogAzureOpenAI","AzureOpenAI","isV3Model","specificationVersion","mapVercelParams","temperature","max_output_tokens","maxOutputTokens","top_p","topP","frequency_penalty","frequencyPenalty","presence_penalty","presencePenalty","stop","stopSequences","mapVercelPrompt","inputs","c","fileData","contentData","file","mediaType","reasoning","toolCallId","toolName","isError","serialized","removedCount","initialSize","byteLength","shift","unshift","mapVercelOutput","sourceType","title","jsonOutput","extractProvider","providerName","split","extractWebSearchCount","providerMetadata","anthropic","serverToolUse","server_tool_use","web_search_requests","extractAdditionalTokenValues","adjustAnthropicV3CacheTokens","includes","cacheReadTokens","cacheWriteTokens","cacheTokens","Math","max","extractTokenCount","total","extractReasoningTokens","extractCacheReadTokens","cachedInputTokens","cacheRead","wrapVercelLanguageModel","mergedOptions","$ai_framework","$ai_framework_version","wrappedModel","doGenerate","mergedParams","modelId","usageObj","responseBody","rawResponse","usageMetadata","writable","configurable","enumerable","doStream","generatedText","reasoningText","rest","transformStream","TransformStream","transform","controller","chunkUsage","enqueue","flush","finalUsage","pipeThrough","OTEL_STATUS_ERROR","AI_TELEMETRY_METADATA_PREFIX","parseJsonValue","toNumber","Number","isFinite","parsed","toStringValue","toStringArray","filter","toSafeBinaryData","asString","toMimeType","getSpanLatencySeconds","span","duration","seconds","nanos","getOperationId","attributes","operationId","isDoGenerateSpan","isDoStreamSpan","isDoEmbedSpan","shouldMapAiSdkSpan","extractAiSdkTelemetryMetadata","metadata","trace_id","mapPromptMessagesInput","promptMessages","typedPart","mapPromptInput","mapOutputPart","partType","contentType","base64","bytes","uri","inline_data","object","mapResponseMessagesOutput","messagesRaw","mappedMessages","mapTextToolObjectOutputParts","responseText","toolCalls","responseObjectRaw","responseObject","contentParts","mapResponseFilesOutput","responseFiles","mapped","extractGeminiParts","visit","node","objectNode","maybeParts","mapProviderMetadataInlineDataOutput","mapProviderMetadataTextOutput","extractMediaBlocksFromUnknownNode","objectValue","child","mapUnknownResponseAttributeMediaOutput","mapGenericResponseAttributeMediaOutput","dedupeContentParts","seen","Set","deduped","add","mapOutput","responseMessages","textToolObjectParts","responseFileParts","unknownMediaParts","genericResponseMediaParts","providerMetadataTextParts","providerMetadataInlineParts","mergedContentParts","mapModelSettings","maxTokens","max_tokens","max_completion_tokens","mapUsage","tokens","totalTokens","promptTokens","completionTokens","parsePromptTools","rawTools","parsedTools","rawTool","extractProviderMetadata","rawProviderMetadata","getAiSdkFrameworkVersion","instrumentedSpan","instrumentationScopeVersion","instrumentationScope","instrumentationLibrary","aiUserAgent","userAgentVersionMatch","match","userAgentVersion","rawVersion","majorVersionMatch","buildPosthogProperties","telemetryMetadata","finishReasons","finishReason","toolChoice","ai_operation_id","ai_finish_reason","ai_response_model","ai_response_id","ai_response_timestamp","ai_response_ms_to_finish","ai_response_avg_completion_tokens_per_second","ai_telemetry_function_id","ai_settings_max_retries","ai_request_top_k","ai_schema_name","ai_schema_description","ai_settings_output","ai_prompt_tool_choice","buildAiSdkMapperResult","timeToFirstTokenMs","frameworkVersion","code","aiSdkSpanMapper","canMap","defaultSpanMappers","pickMapper","mappers","find","mapper","getTraceId","mapperTraceId","spanTraceId","spanContext","buildPosthogParams","captureSpan","shouldExportSpan","otelSpan","PostHogSpanProcessor","pendingCaptures","onStart","_span","_parentContext","onEnd","capturePromise","catch","finally","delete","shutdown","forceFlush","size","allSettled","createPostHogSpanProcessor","PostHogAnthropic","AnthropicOriginal","anthropicConfig","WrappedMessages","Messages","anthropicParams","toolsInProgress","currentTextBlock","lastRawUsage","content_block","toolBlock","block","inputString","toolId","tool","partial_json","e","cache_creation_input_tokens","cache_read_input_tokens","PostHogGoogleGenAI","geminiConfig","GoogleGenAI","models","WrappedModels","generateContent","geminiParams","formatInputForPostHog","promptTokenCount","candidatesTokenCount","thoughtsTokenCount","cachedContentTokenCount","calculateGoogleWebSearchCount","generateContentStream","lastTextItem","funcCall","formatPartsAsContentBlocks","blocks","formatInput","contents","extractSystemInstruction","systemInstruction","sanitized","hasSystemMessage","hasGrounding","groundingMetadata","webSearchQueries","groundingChunks","camelcaseModule","uuid","LangChainCallbackHandler","BaseCallbackHandler","Error","runs","parentTree","debug","handleChainStart","chain","runId","parentRunId","tags","_runType","runName","_logDebugEvent","_setParentOfRun","_setTraceOrSpanMetadata","handleChainEnd","outputs","_kwargs","_popRunAndCaptureTraceOrSpan","handleChainError","handleChatModelStart","extraParams","flat","m","_convertMessageToDict","_setLLMMetadata","handleLLMStart","prompts","handleLLMEnd","_extraParams","_popRunAndCaptureGeneration","handleLLMError","err","handleToolStart","handleToolEnd","handleToolError","handleRetrieverStart","retriever","query","handleRetrieverEnd","documents","handleRetrieverError","handleAgentAction","action","handleAgentEnd","_popParentOfRun","_findRootRun","defaultName","_getLangchainRunName","runNameFound","generation","invocation_params","ls_model_name","ls_provider","kwargs","openai_api_base","baseUrl","_popRunMetadata","endTime","run","_getTraceId","_getParentRunId","_runId","actualParentRunId","_captureTraceOrSpan","eventName","eventProperties","$ai_input_state","$ai_span_name","$ai_span_id","assign","_captureGeneration","$ai_parent_id","additionalTokenData","parseUsage","cacheWriteInputTokens","generations","lastGeneration","isChatGeneration","gen","_extractRawResponse","extra","log","arg","_convertLcToolCallsToOai","trim","additional_kwargs","additionalKwargs","messageDict","messageType","getType","_parseUsageModel","conversionList","parsedUsage","reduce","acc","modelKey","typeKey","finalCount","sum","tokenCount","input_token_details","cache_read","cachedPromptTokens","cache_creation","output_token_details","grounding_support","web_search_queries","isAnthropic","llmUsage","llmUsageKeys","llmOutput","genChunk","generationInfo","usage_metadata","messageChunk","responseMetadata","response_metadata","DEFAULT_CACHE_TTL_SECONDS","isPromptApiResponse","isPromptsWithPostHog","Prompts","cache","defaultCacheTtlSeconds","personalApiKey","projectApiKey","apiKey","host","cacheTtlSeconds","fallback","cached","isFresh","fetchedAt","fetchPromptFromApi","compile","variables","replace","variableName","clearCache","clear","encodedPromptName","encodeURIComponent","encodedProjectApiKey","fetch","method","headers","Authorization","ok","json"],"mappings":"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