Closed bakertn closed 3 weeks ago
Hey @bakertn, great to see you diving into LangChain JS again! How've you been since our last chat?
Thank you for providing such a detailed report. The deprecation warning you're seeing is likely due to an indirect dependency of LangChainJS. The whatwg-url
package, which is used by LangChainJS, depends on the tr46
package, which in turn depends on the punycode
package.
The punycode
module was deprecated in Node.js v7.0.0, and it seems that the whatwg-url
package hasn't updated its dependencies to remove or replace the punycode
module. This is why you're seeing the deprecation warning.
While this warning is not ideal, it should not affect the functionality of your LangChainJS application. The punycode
module is still included in Node.js for backwards compatibility, even though it's deprecated.
As a maintainer, I don't have the ability to fix this issue directly, as it's not caused by the LangChainJS codebase itself. However, I recommend the following steps:
whatwg-url
repository, explaining the problem and asking them to update their dependencies.punycode
module deprecated. However, this is not a recommended solution, as it's always best to use the latest stable version of Node.js.I hope this helps! If you have any other questions, feel free to ask.
For more information, you can check the following resources:
I am a bit confused by your response. You indicated there was nothing you could do about it. But previously you said: The whatwg-url package, which is used by LangChainJS, depends on the tr46 package, which in turn depends on the punycode package.
So Langchain has a dependency on the tr46 package, and this package has a dependency on punycode, which you say has been deprecated for some time. So by proxy, Langchain DOES have a dependency on punycode, based on your very detailed answer. So, if you fixed Langchain to remove the dependency on tr46 this issue would disappear. It is the execution of Langchain, which has this dependency, which is generating the warning.
Thank you for providing such a detailed report. The deprecation warning you're seeing is likely due to an indirect dependency of LangChainJS. The whatwg-url package, which is used by LangChainJS, depends on the tr46 package, which in turn depends on the punycode package.
The punycode module was deprecated in Node.js v7.0.0, and it seems that the whatwg-url package hasn't updated its dependencies to remove or replace the punycode module. This is why you're seeing the deprecation warning.
While this warning is not ideal, it should not affect the functionality of your LangChainJS application. The punycode module is still included in Node.js for backwards compatibility, even though it's deprecated.
As a maintainer, I don't have the ability to fix this issue directly, as it's not caused by the LangChainJS codebase itself. However, I recommend the following steps:
So why would a major dependency by Langchain, on the whatwg-url package be created when we know it has a very outdated dependency encapsulated within it? And why hasn't Langchain proper, notified whatwg-url to clean up its package, as you are a well-known entity, that would in all likelihood, get a much faster response than some random person.
Didn't anyone at Langchain notice that when you run the getting started demo/code it throws up? As a first-time user, it was the first thing I noticed.
Not a great impression out of the gate BTW.
@jacoblee93, this one's a bit out of my wheelhouse, could you step in and provide your guidance?
Hey, I don't think this appears below Node 21 which is why nobody noticed before since it's not LTS. Most people should use Node 20:
That said, still worth cleaning up. Thanks for the report!
Did a bit of digging, and seems like it's related to node-fetch
:
https://github.com/lquixada/cross-fetch/issues/177
It's a dep some popular packages like openai
use to polyfill fetch
behavior. Our model wrappers rely on these deps. Would imagine this will be cleared up by next Node LTS. Not much we can do until then.
In the meantime, I'd suggest switching to Node 20. I'll keep this open.
Thank you for your very detailed feedback and such a timely response. I will downgrade my Node version as you suggested to 20. Having smoke pouring off of it right at "getting started" was a bit concerning. The new platform looks amazing by the way. Took it for a few test drives already. Thanks again.
This issue is now closed. Appreciate it.
Checked other resources
Example Code
This is the sample from your Getting Started Docs that is generating the error.
...typescript import { ChatOpenAI } from "@langchain/openai"; import { ChatPromptTemplate } from "@langchain/core/prompts"; import { StringOutputParser } from "@langchain/core/output_parsers";
const prompt = ChatPromptTemplate.fromMessages([ ["human", "Tell me a short joke about {topic}"], ]); const model = new ChatOpenAI({}); const outputParser = new StringOutputParser();
const chain = prompt.pipe(model).pipe(outputParser);
const response = await chain.invoke({ topic: "ice cream", }); console.log(response); /** ...
Error Message and Stack Trace (if applicable)
(base) PS C:\Users\lbake\VSCode Projects\langchainjs> node --trace-deprecation app.js (node:4792) [DEP0040] DeprecationWarning: The punycode module is deprecated. Please use a userland alternative instead. at node:punycode:3:9 at BuiltinModule.compileForInternalLoader (node:internal/bootstrap/realm:398:7) at BuiltinModule.compileForPublicLoader (node:internal/bootstrap/realm:337:10) at loadBuiltinModule (node:internal/modules/helpers:104:7) at Module._load (node:internal/modules/cjs/loader:999:17) at Module.require (node:internal/modules/cjs/loader:1230:19) at require (node:internal/modules/helpers:179:18) at Object. (C:\Users\lbake\VSCode Projects\langchainjs\node_modules\whatwg-url\lib\url-state-machine.js:2:18) at Module._compile (node:internal/modules/cjs/loader:1368:14) at Module._extensions..js (node:internal/modules/cjs/loader:1426:10) Why did the ice cream cone go to therapy? Because it had too many toppings!
Description
I am getting the same issue as a previous post that is now Closed.
Vanilla getting started code from your lanchain getting started docs. No direct mention of punycode in the sample code.
node v21.7.0 - installed today Just installed langchainjs TODAY. Latest version. Also ran npm update. Completely up to date.
Also ran this to check the whatwg-url
(base) PS C:\Users\lbake\VSCode Projects\langchainjs> npm list whatwg-url your-package-name@1.0.0 C:\Users\lbake\VSCode Projects\LangChainJS βββ¬ @langchain/openai@0.0.18 βββ¬ openai@4.28.4 βββ¬ node-fetch@2.7.0 βββ whatwg-url@5.0.0
So I echo the previous closed post. Why is there a deprecated library in this project? Please fix ASAP. Extremely annoying.
New install of everything today, NODE, LangChainJS, etc. New project from scratch...
System Info
node v21.7.0 - installed today Just installed langchainjs TODAY. Latest version. Also ran npm update. Completely up to date.
Also ran this to check the whatwg-url
(base) PS C:\Users\lbake\VSCode Projects\langchainjs> npm list whatwg-url your-package-name@1.0.0 C:\Users\lbake\VSCode Projects\LangChainJS βββ¬ @langchain/openai@0.0.18 βββ¬ openai@4.28.4 βββ¬ node-fetch@2.7.0 βββ whatwg-url@5.0.0
windows 11
require: './chat_models/googlevertexai/web.cjs' }, './chat_models/googlepalm': { types: { import: './chat_models/googlepalm.d.ts', require: './chat_models/googlepalm.d.cts', default: './chat_models/googlepalm.d.ts' }, import: './chat_models/googlepalm.js', require: './chat_models/googlepalm.cjs' }, './chat_models/fireworks': { types: { import: './chat_models/fireworks.d.ts', require: './chat_models/fireworks.d.cts', default: './chat_models/fireworks.d.ts' }, import: './chat_models/fireworks.js', require: './chat_models/fireworks.cjs' }, './chat_models/baiduwenxin': { types: { import: './chat_models/baiduwenxin.d.ts', require: './chat_models/baiduwenxin.d.cts', default: './chat_models/baiduwenxin.d.ts' }, import: './chat_models/baiduwenxin.js', require: './chat_models/baiduwenxin.cjs' }, './chat_models/iflytek_xinghuo': { types: { import: './chat_models/iflytek_xinghuo.d.ts', require: './chat_models/iflytek_xinghuo.d.cts', default: './chat_models/iflytek_xinghuo.d.ts' }, import: './chat_models/iflytek_xinghuo.js', require: './chat_models/iflytek_xinghuo.cjs' }, './chat_models/iflytek_xinghuo/web': { types: { import: './chat_models/iflytek_xinghuo/web.d.ts', require: './chat_models/iflytek_xinghuo/web.d.cts', default: './chat_models/iflytek_xinghuo/web.d.ts' }, import: './chat_models/iflytek_xinghuo/web.js', require: './chat_models/iflytek_xinghuo/web.cjs' }, './chat_models/ollama': { types: { import: './chat_models/ollama.d.ts', require: './chat_models/ollama.d.cts', default: './chat_models/ollama.d.ts' }, import: './chat_models/ollama.js', require: './chat_models/ollama.cjs' }, './chat_models/minimax': { types: { import: './chat_models/minimax.d.ts', require: './chat_models/minimax.d.cts', default: './chat_models/minimax.d.ts' }, import: './chat_models/minimax.js', require: './chat_models/minimax.cjs' }, './chat_models/llama_cpp': { types: { import: './chat_models/llama_cpp.d.ts', require: './chat_models/llama_cpp.d.cts', default: './chat_models/llama_cpp.d.ts' }, import: './chat_models/llama_cpp.js', require: './chat_models/llama_cpp.cjs' }, './chat_models/yandex': { types: { import: './chat_models/yandex.d.ts', require: './chat_models/yandex.d.cts', default: './chat_models/yandex.d.ts' }, import: './chat_models/yandex.js', require: './chat_models/yandex.cjs' }, './chat_models/fake': { types: { import: './chat_models/fake.d.ts', require: './chat_models/fake.d.cts', default: './chat_models/fake.d.ts' }, import: './chat_models/fake.js', require: './chat_models/fake.cjs' }, './schema': { types: { import: './schema.d.ts', require: './schema.d.cts', default: './schema.d.ts' }, import: './schema.js', require: './schema.cjs' }, './schema/document': { types: { import: './schema/document.d.ts', require: './schema/document.d.cts', default: './schema/document.d.ts' }, import: './schema/document.js', require: './schema/document.cjs' }, './schema/output_parser': { types: { import: './schema/output_parser.d.ts', require: './schema/output_parser.d.cts', default: './schema/output_parser.d.ts' }, import: './schema/output_parser.js', require: './schema/output_parser.cjs' }, './schema/prompt_template': { types: { import: './schema/prompt_template.d.ts', require: './schema/prompt_template.d.cts', default: './schema/prompt_template.d.ts' }, import: './schema/prompt_template.js', require: './schema/prompt_template.cjs' }, './schema/query_constructor': { types: { import: './schema/query_constructor.d.ts', require: './schema/query_constructor.d.cts', default: './schema/query_constructor.d.ts' }, import: './schema/query_constructor.js', require: './schema/query_constructor.cjs' }, './schema/retriever': { types: { import: './schema/retriever.d.ts', require: './schema/retriever.d.cts', default: './schema/retriever.d.ts' }, import: './schema/retriever.js', require: './schema/retriever.cjs' }, './schema/runnable': { types: { import: './schema/runnable.d.ts', require: './schema/runnable.d.cts', default: './schema/runnable.d.ts' }, import: './schema/runnable.js', require: './schema/runnable.cjs' }, './schema/storage': { types: { import: './schema/storage.d.ts', require: './schema/storage.d.cts', default: './schema/storage.d.ts' }, import: './schema/storage.js', require: './schema/storage.cjs' }, './sql_db': { types: { import: './sql_db.d.ts', require: './sql_db.d.cts', default: './sql_db.d.ts' }, import: './sql_db.js', require: './sql_db.cjs' }, './callbacks': { types: { import: './callbacks.d.ts', require: './callbacks.d.cts', default: './callbacks.d.ts' }, import: './callbacks.js', require: './callbacks.cjs' }, './callbacks/handlers/llmonitor': { types: { import: './callbacks/handlers/llmonitor.d.ts', require: './callbacks/handlers/llmonitor.d.cts', default: './callbacks/handlers/llmonitor.d.ts' }, import: './callbacks/handlers/llmonitor.js', require: './callbacks/handlers/llmonitor.cjs' }, './output_parsers': { types: { import: './output_parsers.d.ts', require: './output_parsers.d.cts', default: './output_parsers.d.ts' }, import: './output_parsers.js', require: './output_parsers.cjs' }, './output_parsers/expression': { types: { import: './output_parsers/expression.d.ts', require: './output_parsers/expression.d.cts', default: './output_parsers/expression.d.ts' }, import: './output_parsers/expression.js', require: './output_parsers/expression.cjs' }, './retrievers/amazon_kendra': { types: { import: './retrievers/amazon_kendra.d.ts', require: './retrievers/amazon_kendra.d.cts', default: './retrievers/amazon_kendra.d.ts' }, import: './retrievers/amazon_kendra.js', require: './retrievers/amazon_kendra.cjs' }, './retrievers/remote': { types: { import: './retrievers/remote.d.ts', require: './retrievers/remote.d.cts', default: './retrievers/remote.d.ts' }, import: './retrievers/remote.js', require: './retrievers/remote.cjs' }, './retrievers/supabase': { types: { import: './retrievers/supabase.d.ts', require: './retrievers/supabase.d.cts', default: './retrievers/supabase.d.ts' }, import: './retrievers/supabase.js', require: './retrievers/supabase.cjs' }, './retrievers/zep': { types: { import: './retrievers/zep.d.ts', require: './retrievers/zep.d.cts', default: './retrievers/zep.d.ts' }, import: './retrievers/zep.js', require: './retrievers/zep.cjs' }, './retrievers/metal': { types: { import: './retrievers/metal.d.ts', require: './retrievers/metal.d.cts', default: './retrievers/metal.d.ts' }, import: './retrievers/metal.js', require: './retrievers/metal.cjs' }, './retrievers/chaindesk': { types: { import: './retrievers/chaindesk.d.ts', require: './retrievers/chaindesk.d.cts', default: './retrievers/chaindesk.d.ts' }, import: './retrievers/chaindesk.js', require: './retrievers/chaindesk.cjs' }, './retrievers/databerry': { types: { import: './retrievers/databerry.d.ts', require: './retrievers/databerry.d.cts', default: './retrievers/databerry.d.ts' }, import: './retrievers/databerry.js', require: './retrievers/databerry.cjs' }, './retrievers/contextual_compression': { types: { import: './retrievers/contextual_compression.d.ts', require: './retrievers/contextual_compression.d.cts', default: './retrievers/contextual_compression.d.ts' }, import: './retrievers/contextual_compression.js', require: './retrievers/contextual_compression.cjs' }, './retrievers/document_compressors': { types: { import: './retrievers/document_compressors.d.ts', require: './retrievers/document_compressors.d.cts', default: './retrievers/document_compressors.d.ts' }, import: './retrievers/document_compressors.js', require: './retrievers/document_compressors.cjs' }, './retrievers/multi_query': { types: { import: './retrievers/multi_query.d.ts', require: './retrievers/multi_query.d.cts', default: './retrievers/multi_query.d.ts' }, import: './retrievers/multi_query.js', require: './retrievers/multi_query.cjs' }, './retrievers/multi_vector': { types: { import: './retrievers/multi_vector.d.ts', require: './retrievers/multi_vector.d.cts', default: './retrievers/multi_vector.d.ts' }, import: './retrievers/multi_vector.js', require: './retrievers/multi_vector.cjs' }, './retrievers/parent_document': { types: { import: './retrievers/parent_document.d.ts', require: './retrievers/parent_document.d.cts', default: './retrievers/parent_document.d.ts' }, import: './retrievers/parent_document.js', require: './retrievers/parent_document.cjs' }, './retrievers/vectara_summary': { types: { import: './retrievers/vectara_summary.d.ts', require: './retrievers/vectara_summary.d.cts', default: './retrievers/vectara_summary.d.ts' }, import: './retrievers/vectara_summary.js', require: './retrievers/vectara_summary.cjs' }, './retrievers/tavily_search_api': { types: { import: './retrievers/tavily_search_api.d.ts', require: './retrievers/tavily_search_api.d.cts', default: './retrievers/tavily_search_api.d.ts' }, import: './retrievers/tavily_search_api.js', require: './retrievers/tavily_search_api.cjs' }, './retrievers/time_weighted': { types: { import: './retrievers/time_weighted.d.ts', require: './retrievers/time_weighted.d.cts', default: './retrievers/time_weighted.d.ts' }, import: './retrievers/time_weighted.js', require: './retrievers/time_weighted.cjs' }, './retrievers/document_compressors/chain_extract': { types: { import: './retrievers/document_compressors/chain_extract.d.ts', require: './retrievers/document_compressors/chain_extract.d.cts', default: './retrievers/document_compressors/chain_extract.d.ts' }, import: './retrievers/document_compressors/chain_extract.js', require: './retrievers/document_compressors/chain_extract.cjs' }, './retrievers/document_compressors/embeddings_filter': { types: { import: './retrievers/document_compressors/embeddings_filter.d.ts', require: './retrievers/document_compressors/embeddings_filter.d.cts', default: './retrievers/document_compressors/embeddings_filter.d.ts' }, import: './retrievers/document_compressors/embeddings_filter.js', require: './retrievers/document_compressors/embeddings_filter.cjs' }, './retrievers/hyde': { types: { import: './retrievers/hyde.d.ts', require: './retrievers/hyde.d.cts', default: './retrievers/hyde.d.ts' }, import: './retrievers/hyde.js', require: './retrievers/hyde.cjs' }, './retrievers/score_threshold': { types: { import: './retrievers/score_threshold.d.ts', require: './retrievers/score_threshold.d.cts', default: './retrievers/score_threshold.d.ts' }, import: './retrievers/score_threshold.js', require: './retrievers/score_threshold.cjs' }, './retrievers/self_query': { types: { import: './retrievers/self_query.d.ts', require: './retrievers/self_query.d.cts', default: './retrievers/self_query.d.ts' }, import: './retrievers/self_query.js', require: './retrievers/self_query.cjs' }, './retrievers/self_query/chroma': { types: { import: './retrievers/self_query/chroma.d.ts', require: './retrievers/self_query/chroma.d.cts', default: './retrievers/self_query/chroma.d.ts' }, import: './retrievers/self_query/chroma.js', require: './retrievers/self_query/chroma.cjs' }, './retrievers/self_query/functional': { types: { import: './retrievers/self_query/functional.d.ts', require: './retrievers/self_query/functional.d.cts', default: './retrievers/self_query/functional.d.ts' }, import: './retrievers/self_query/functional.js', require: './retrievers/self_query/functional.cjs' }, './retrievers/self_query/pinecone': { types: { import: './retrievers/self_query/pinecone.d.ts', require: './retrievers/self_query/pinecone.d.cts', default: './retrievers/self_query/pinecone.d.ts' }, import: './retrievers/self_query/pinecone.js', require: './retrievers/self_query/pinecone.cjs' }, './retrievers/self_query/supabase': { types: { import: './retrievers/self_query/supabase.d.ts', require: './retrievers/self_query/supabase.d.cts', default: './retrievers/self_query/supabase.d.ts' }, import: './retrievers/self_query/supabase.js', require: './retrievers/self_query/supabase.cjs' }, './retrievers/self_query/weaviate': { types: { import: './retrievers/self_query/weaviate.d.ts', require: './retrievers/self_query/weaviate.d.cts', default: './retrievers/self_query/weaviate.d.ts' }, import: './retrievers/self_query/weaviate.js', require: './retrievers/self_query/weaviate.cjs' }, './retrievers/self_query/vectara': { types: { import: './retrievers/self_query/vectara.d.ts', require: './retrievers/self_query/vectara.d.cts', default: './retrievers/self_query/vectara.d.ts' }, import: './retrievers/self_query/vectara.js', require: './retrievers/self_query/vectara.cjs' }, './retrievers/vespa': { types: { import: './retrievers/vespa.d.ts', require: './retrievers/vespa.d.cts', default: './retrievers/vespa.d.ts' }, import: './retrievers/vespa.js', require: './retrievers/vespa.cjs' }, './retrievers/matryoshka_retriever': { types: { import: './retrievers/matryoshka_retriever.d.ts', require: './retrievers/matryoshka_retriever.d.cts', default: './retrievers/matryoshka_retriever.d.ts' }, import: './retrievers/matryoshka_retriever.js', require: './retrievers/matryoshka_retriever.cjs' }, './cache': { types: { import: './cache.d.ts', require: './cache.d.cts', default: './cache.d.ts' }, import: './cache.js', require: './cache.cjs' }, './cache/cloudflare_kv': { types: { import: './cache/cloudflare_kv.d.ts', require: './cache/cloudflare_kv.d.cts', default: './cache/cloudflare_kv.d.ts' }, import: './cache/cloudflare_kv.js', require: './cache/cloudflare_kv.cjs' }, './cache/momento': { types: { import: './cache/momento.d.ts', require: './cache/momento.d.cts', default: './cache/momento.d.ts' }, import: './cache/momento.js', require: './cache/momento.cjs' }, './cache/redis': { types: { import: './cache/redis.d.ts', require: './cache/redis.d.cts', default: './cache/redis.d.ts' }, import: './cache/redis.js', require: './cache/redis.cjs' }, './cache/ioredis': { types: { import: './cache/ioredis.d.ts', require: './cache/ioredis.d.cts', default: './cache/ioredis.d.ts' }, import: './cache/ioredis.js', require: './cache/ioredis.cjs' }, './cache/file_system': { types: { import: './cache/file_system.d.ts', require: './cache/file_system.d.cts', default: './cache/file_system.d.ts' }, import: './cache/file_system.js', require: './cache/file_system.cjs' }, './cache/upstash_redis': { types: { import: './cache/upstash_redis.d.ts', require: './cache/upstash_redis.d.cts', default: './cache/upstash_redis.d.ts' }, import: './cache/upstash_redis.js', require: './cache/upstash_redis.cjs' }, './stores/doc/in_memory': { types: { import: './stores/doc/in_memory.d.ts', require: './stores/doc/in_memory.d.cts', default: './stores/doc/in_memory.d.ts' }, import: './stores/doc/in_memory.js', require: './stores/doc/in_memory.cjs' }, './stores/doc/gcs': { types: { import: './stores/doc/gcs.d.ts', require: './stores/doc/gcs.d.cts', default: './stores/doc/gcs.d.ts' }, import: './stores/doc/gcs.js', require: './stores/doc/gcs.cjs' }, './stores/file/in_memory': { types: { import: './stores/file/in_memory.d.ts', require: './stores/file/in_memory.d.cts', default: './stores/file/in_memory.d.ts' }, import: './stores/file/in_memory.js', require: './stores/file/in_memory.cjs' }, './stores/file/node': { types: { import: './stores/file/node.d.ts', require: './stores/file/node.d.cts', default: './stores/file/node.d.ts' }, import: './stores/file/node.js', require: './stores/file/node.cjs' }, './stores/message/cassandra': { types: { import: './stores/message/cassandra.d.ts', require: './stores/message/cassandra.d.cts', default: './stores/message/cassandra.d.ts' }, import: './stores/message/cassandra.js', require: './stores/message/cassandra.cjs' }, './stores/message/convex': { types: { import: './stores/message/convex.d.ts', require: './stores/message/convex.d.cts', default: './stores/message/convex.d.ts' }, import: './stores/message/convex.js', require: './stores/message/convex.cjs' }, './stores/message/cloudflare_d1': { types: { import: './stores/message/cloudflare_d1.d.ts', require: './stores/message/cloudflare_d1.d.cts', default: './stores/message/cloudflare_d1.d.ts' }, import: './stores/message/cloudflare_d1.js', require: './stores/message/cloudflare_d1.cjs' }, './stores/message/in_memory': { types: { import: './stores/message/in_memory.d.ts', require: './stores/message/in_memory.d.cts', default: './stores/message/in_memory.d.ts' }, import: './stores/message/in_memory.js', require: './stores/message/in_memory.cjs' }, './stores/message/dynamodb': { types: { import: './stores/message/dynamodb.d.ts', require: './stores/message/dynamodb.d.cts', default: './stores/message/dynamodb.d.ts' }, import: './stores/message/dynamodb.js', require: './stores/message/dynamodb.cjs' }, './stores/message/firestore': { types: { import: './stores/message/firestore.d.ts', require: './stores/message/firestore.d.cts', default: './stores/message/firestore.d.ts' }, import: './stores/message/firestore.js', require: './stores/message/firestore.cjs' }, './stores/message/momento': { types: { import: './stores/message/momento.d.ts', require: './stores/message/momento.d.cts', default: './stores/message/momento.d.ts' }, import: './stores/message/momento.js', require: './stores/message/momento.cjs' }, './stores/message/mongodb': { types: { import: './stores/message/mongodb.d.ts', require: './stores/message/mongodb.d.cts', default: './stores/message/mongodb.d.ts' }, import: './stores/message/mongodb.js', require: './stores/message/mongodb.cjs' }, './stores/message/redis': { types: { import: './stores/message/redis.d.ts', require: './stores/message/redis.d.cts', default: './stores/message/redis.d.ts' }, import: './stores/message/redis.js', require: './stores/message/redis.cjs' }, './stores/message/ioredis': { types: { import: './stores/message/ioredis.d.ts', require: './stores/message/ioredis.d.cts', default: './stores/message/ioredis.d.ts' }, import: './stores/message/ioredis.js', require: './stores/message/ioredis.cjs' }, './stores/message/upstash_redis': { types: { import: './stores/message/upstash_redis.d.ts', require: './stores/message/upstash_redis.d.cts', default: './stores/message/upstash_redis.d.ts' }, import: './stores/message/upstash_redis.js', require: './stores/message/upstash_redis.cjs' }, './stores/message/planetscale': { types: { import: './stores/message/planetscale.d.ts', require: './stores/message/planetscale.d.cts', default: './stores/message/planetscale.d.ts' }, import: './stores/message/planetscale.js', require: './stores/message/planetscale.cjs' }, './stores/message/xata': { types: { import: './stores/message/xata.d.ts', require: './stores/message/xata.d.cts', default: './stores/message/xata.d.ts' }, import: './stores/message/xata.js', require: './stores/message/xata.cjs' }, './storage/convex': { types: { import: './storage/convex.d.ts', require: './storage/convex.d.cts', default: './storage/convex.d.ts' }, import: './storage/convex.js', require: './storage/convex.cjs' }, './storage/encoder_backed': { types: { import: './storage/encoder_backed.d.ts', require: './storage/encoder_backed.d.cts', default: './storage/encoder_backed.d.ts' }, import: './storage/encoder_backed.js', require: './storage/encoder_backed.cjs' }, './storage/in_memory': { types: { import: './storage/in_memory.d.ts', require: './storage/in_memory.d.cts', default: './storage/in_memory.d.ts' }, import: './storage/in_memory.js', require: './storage/in_memory.cjs' }, './storage/ioredis': { types: { import: './storage/ioredis.d.ts', require: './storage/ioredis.d.cts', default: './storage/ioredis.d.ts' }, import: './storage/ioredis.js', require: './storage/ioredis.cjs' }, './storage/vercel_kv': { types: { import: './storage/vercel_kv.d.ts', require: './storage/vercel_kv.d.cts', default: './storage/vercel_kv.d.ts' }, import: './storage/vercel_kv.js', require: './storage/vercel_kv.cjs' }, './storage/upstash_redis': { types: { import: './storage/upstash_redis.d.ts', require: './storage/upstash_redis.d.cts', default: './storage/upstash_redis.d.ts' }, import: './storage/upstash_redis.js', require: './storage/upstash_redis.cjs' }, './storage/file_system': { types: { import: './storage/file_system.d.ts', require: './storage/file_system.d.cts', default: './storage/file_system.d.ts' }, import: './storage/file_system.js', require: './storage/file_system.cjs' }, './graphs/neo4j_graph': { types: { import: './graphs/neo4j_graph.d.ts', require: './graphs/neo4j_graph.d.cts', default: './graphs/neo4j_graph.d.ts' }, import: './graphs/neo4j_graph.js', require: './graphs/neo4j_graph.cjs' }, './hub': { types: { import: './hub.d.ts', require: './hub.d.cts', default: './hub.d.ts' }, import: './hub.js', require: './hub.cjs' }, './util/convex': { types: { import: './util/convex.d.ts', require: './util/convex.d.cts', default: './util/convex.d.ts' }, import: './util/convex.js', require: './util/convex.cjs' }, './util/document': { types: { import: './util/document.d.ts', require: './util/document.d.cts', default: './util/document.d.ts' }, import: './util/document.js', require: './util/document.cjs' }, './util/math': { types: { import: './util/math.d.ts', require: './util/math.d.cts', default: './util/math.d.ts' }, import: './util/math.js', require: './util/math.cjs' }, './util/time': { types: { import: './util/time.d.ts', require: './util/time.d.cts', default: './util/time.d.ts' }, import: './util/time.js', require: './util/time.cjs' }, './experimental/autogpt': { types: { import: './experimental/autogpt.d.ts', require: './experimental/autogpt.d.cts', default: './experimental/autogpt.d.ts' }, import: './experimental/autogpt.js', require: './experimental/autogpt.cjs' }, './experimental/openai_assistant': { types: { import: './experimental/openai_assistant.d.ts', require: './experimental/openai_assistant.d.cts', default: './experimental/openai_assistant.d.ts' }, import: './experimental/openai_assistant.js', require: './experimental/openai_assistant.cjs' }, './experimental/openai_files': { types: { import: './experimental/openai_files.d.ts', require: './experimental/openai_files.d.cts', default: './experimental/openai_files.d.ts' }, import: './experimental/openai_files.js', require: './experimental/openai_files.cjs' }, './experimental/babyagi': { types: { import: './experimental/babyagi.d.ts', require: './experimental/babyagi.d.cts', default: './experimental/babyagi.d.ts' }, import: './experimental/babyagi.js', require: './experimental/babyagi.cjs' }, './experimental/generative_agents': { types: { import: './experimental/generative_agents.d.ts', require: './experimental/generative_agents.d.cts', default: './experimental/generative_agents.d.ts' }, import: './experimental/generative_agents.js', require: './experimental/generative_agents.cjs' }, './experimental/plan_and_execute': { types: { import: './experimental/plan_and_execute.d.ts', require: './experimental/plan_and_execute.d.cts', default: './experimental/plan_and_execute.d.ts' }, import: './experimental/plan_and_execute.js', require: './experimental/plan_and_execute.cjs' }, './experimental/multimodal_embeddings/googlevertexai': { types: { import: './experimental/multimodal_embeddings/googlevertexai.d.ts', require: './experimental/multimodal_embeddings/googlevertexai.d.cts', default: './experimental/multimodal_embeddings/googlevertexai.d.ts' }, import: './experimental/multimodal_embeddings/googlevertexai.js', require: './experimental/multimodal_embeddings/googlevertexai.cjs' }, './experimental/chat_models/anthropic_functions': { types: { import: './experimental/chat_models/anthropic_functions.d.ts', require: './experimental/chat_models/anthropic_functions.d.cts', default: './experimental/chat_models/anthropic_functions.d.ts' }, import: './experimental/chat_models/anthropic_functions.js', require: './experimental/chat_models/anthropic_functions.cjs' }, './experimental/chat_models/bittensor': { types: { import: './experimental/chat_models/bittensor.d.ts', require: './experimental/chat_models/bittensor.d.cts', default: './experimental/chat_models/bittensor.d.ts' }, import: './experimental/chat_models/bittensor.js', require: './experimental/chat_models/bittensor.cjs' }, './experimental/chat_models/ollama_functions': { types: { import: './experimental/chat_models/ollama_functions.d.ts', require: './experimental/chat_models/ollama_functions.d.cts', default: './experimental/chat_models/ollama_functions.d.ts' }, import: './experimental/chat_models/ollama_functions.js', require: './experimental/chat_models/ollama_functions.cjs' }, './experimental/llms/bittensor': { types: { import: './experimental/llms/bittensor.d.ts', require: './experimental/llms/bittensor.d.cts', default: './experimental/llms/bittensor.d.ts' }, import: './experimental/llms/bittensor.js', require: './experimental/llms/bittensor.cjs' }, './experimental/hubs/makersuite/googlemakersuitehub': { types: { import: './experimental/hubs/makersuite/googlemakersuitehub.d.ts', require: './experimental/hubs/makersuite/googlemakersuitehub.d.cts', default: './experimental/hubs/makersuite/googlemakersuitehub.d.ts' }, import: './experimental/hubs/makersuite/googlemakersuitehub.js', require: './experimental/hubs/makersuite/googlemakersuitehub.cjs' }, './experimental/chains/violation_of_expectations': { types: { import: './experimental/chains/violation_of_expectations.d.ts', require: './experimental/chains/violation_of_expectations.d.cts', default: './experimental/chains/violation_of_expectations.d.ts' }, import: './experimental/chains/violation_of_expectations.js', require: './experimental/chains/violation_of_expectations.cjs' }, './experimental/masking': { types: { import: './experimental/masking.d.ts', require: './experimental/masking.d.cts', default: './experimental/masking.d.ts' }, import: './experimental/masking.js', require: './experimental/masking.cjs' }, './experimental/prompts/custom_format': { types: { import: './experimental/prompts/custom_format.d.ts', require: './experimental/prompts/custom_format.d.cts', default: './experimental/prompts/custom_format.d.ts' }, import: './experimental/prompts/custom_format.js', require: './experimental/prompts/custom_format.cjs' }, './experimental/prompts/handlebars': { types: { import: './experimental/prompts/handlebars.d.ts', require: './experimental/prompts/handlebars.d.cts', default: './experimental/prompts/handlebars.d.ts' }, import: './experimental/prompts/handlebars.js', require: './experimental/prompts/handlebars.cjs' }, './experimental/tools/pyinterpreter': { types: { import: './experimental/tools/pyinterpreter.d.ts', require: './experimental/tools/pyinterpreter.d.cts', default: './experimental/tools/pyinterpreter.d.ts' }, import: './experimental/tools/pyinterpreter.js', require: './experimental/tools/pyinterpreter.cjs' }, './evaluation': { types: { import: './evaluation.d.ts', require: './evaluation.d.cts', default: './evaluation.d.ts' }, import: './evaluation.js', require: './evaluation.cjs' }, './smith': { types: { import: './smith.d.ts', require: './smith.d.cts', default: './smith.d.ts' }, import: './smith.js', require: './smith.cjs' }, './runnables': { types: { import: './runnables.d.ts', require: './runnables.d.cts', default: './runnables.d.ts' }, import: './runnables.js', require: './runnables.cjs' }, './runnables/remote': { types: { import: './runnables/remote.d.ts', require: './runnables/remote.d.cts', default: './runnables/remote.d.ts' }, import: './runnables/remote.js', require: './runnables/remote.cjs' }, './indexes': { types: { import: './indexes.d.ts', require: './indexes.d.cts', default: './indexes.d.ts' }, import: './indexes.js', require: './indexes.cjs' }, './package.json': './package.json' }, gitHead: 'c9d445b3cf29c3253699fa4a375db9c560b4c2d3', dist: { integrity: 'sha512-sfEChvr4H2CklHdSByNBbytwBrFhgtA5kPOnwcBrxuXGg1iOaTzhVxQA0QcNcQucI3hZrsNbZjxGp+Can1ooZQ==', shasum: 'afd0faf2eadfb5e6e1d57bb3bbc5731918e62135', tarball: 'https://registry.npmjs.org/langchain/-/langchain-0.1.25.tgz', fileCount: 2813, unpackedSize: 4041149, signatures: [ { keyid: 'SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA', sig: 'MEUCIF60mZaGgguX4QEh2NSUCBlemKP3FNevmEAUIv4ipcUvAiEArOMbLLKgRwajDimz1W6LdgZ3fROeN3y4y6x31noCiXw=' } ] }, directories: {}