langchain 0.0.202 → 0.0.204-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cache/cloudflare_kv.cjs +15 -69
- package/dist/cache/cloudflare_kv.d.ts +1 -42
- package/dist/cache/cloudflare_kv.js +1 -67
- package/dist/cache/momento.cjs +15 -135
- package/dist/cache/momento.d.ts +1 -91
- package/dist/cache/momento.js +1 -133
- package/dist/cache/upstash_redis.cjs +15 -72
- package/dist/cache/upstash_redis.d.ts +1 -45
- package/dist/cache/upstash_redis.js +1 -70
- package/dist/callbacks/handlers/llmonitor.cjs +14 -238
- package/dist/callbacks/handlers/llmonitor.d.ts +1 -35
- package/dist/callbacks/handlers/llmonitor.js +1 -233
- package/dist/chains/openai_moderation.cjs +2 -2
- package/dist/chains/openai_moderation.d.ts +1 -1
- package/dist/chains/openai_moderation.js +1 -1
- package/dist/chat_models/anthropic.d.ts +4 -4
- package/dist/chat_models/baiduwenxin.cjs +15 -411
- package/dist/chat_models/baiduwenxin.d.ts +1 -150
- package/dist/chat_models/baiduwenxin.js +1 -409
- package/dist/chat_models/bedrock/index.cjs +15 -33
- package/dist/chat_models/bedrock/index.d.ts +1 -23
- package/dist/chat_models/bedrock/index.js +1 -29
- package/dist/chat_models/bedrock/web.cjs +15 -360
- package/dist/chat_models/bedrock/web.d.ts +1 -82
- package/dist/chat_models/bedrock/web.js +1 -356
- package/dist/chat_models/cloudflare_workersai.cjs +15 -216
- package/dist/chat_models/cloudflare_workersai.d.ts +1 -68
- package/dist/chat_models/cloudflare_workersai.js +1 -214
- package/dist/chat_models/fireworks.cjs +15 -89
- package/dist/chat_models/fireworks.d.ts +1 -43
- package/dist/chat_models/fireworks.js +1 -87
- package/dist/chat_models/googlepalm.cjs +15 -235
- package/dist/chat_models/googlepalm.d.ts +1 -108
- package/dist/chat_models/googlepalm.js +1 -233
- package/dist/chat_models/googlevertexai/index.cjs +15 -40
- package/dist/chat_models/googlevertexai/index.d.ts +1 -28
- package/dist/chat_models/googlevertexai/index.js +1 -38
- package/dist/chat_models/googlevertexai/web.cjs +15 -39
- package/dist/chat_models/googlevertexai/web.d.ts +1 -28
- package/dist/chat_models/googlevertexai/web.js +1 -37
- package/dist/chat_models/iflytek_xinghuo/index.cjs +14 -40
- package/dist/chat_models/iflytek_xinghuo/index.d.ts +1 -13
- package/dist/chat_models/iflytek_xinghuo/index.js +1 -36
- package/dist/chat_models/iflytek_xinghuo/web.cjs +15 -36
- package/dist/chat_models/iflytek_xinghuo/web.d.ts +1 -13
- package/dist/chat_models/iflytek_xinghuo/web.js +1 -34
- package/dist/chat_models/llama_cpp.cjs +15 -275
- package/dist/chat_models/llama_cpp.d.ts +1 -71
- package/dist/chat_models/llama_cpp.js +1 -273
- package/dist/chat_models/minimax.cjs +15 -578
- package/dist/chat_models/minimax.d.ts +1 -369
- package/dist/chat_models/minimax.js +1 -576
- package/dist/chat_models/ollama.cjs +15 -394
- package/dist/chat_models/ollama.d.ts +1 -127
- package/dist/chat_models/ollama.js +1 -392
- package/dist/chat_models/openai.cjs +4 -698
- package/dist/chat_models/openai.d.ts +4 -137
- package/dist/chat_models/openai.js +2 -695
- package/dist/chat_models/portkey.cjs +15 -167
- package/dist/chat_models/portkey.d.ts +1 -17
- package/dist/chat_models/portkey.js +1 -165
- package/dist/chat_models/yandex.cjs +15 -132
- package/dist/chat_models/yandex.d.ts +1 -30
- package/dist/chat_models/yandex.js +1 -130
- package/dist/document_loaders/fs/openai_whisper_audio.cjs +2 -2
- package/dist/document_loaders/fs/openai_whisper_audio.d.ts +1 -1
- package/dist/document_loaders/fs/openai_whisper_audio.js +1 -1
- package/dist/document_loaders/fs/pdf.cjs +1 -1
- package/dist/document_loaders/fs/pdf.js +1 -1
- package/dist/document_loaders/web/pdf.cjs +1 -1
- package/dist/document_loaders/web/pdf.js +1 -1
- package/dist/document_transformers/html_to_text.cjs +15 -47
- package/dist/document_transformers/html_to_text.d.ts +1 -30
- package/dist/document_transformers/html_to_text.js +1 -45
- package/dist/document_transformers/mozilla_readability.cjs +15 -53
- package/dist/document_transformers/mozilla_readability.d.ts +1 -31
- package/dist/document_transformers/mozilla_readability.js +1 -51
- package/dist/embeddings/bedrock.cjs +15 -109
- package/dist/embeddings/bedrock.d.ts +1 -71
- package/dist/embeddings/bedrock.js +1 -107
- package/dist/embeddings/cloudflare_workersai.cjs +15 -67
- package/dist/embeddings/cloudflare_workersai.d.ts +1 -28
- package/dist/embeddings/cloudflare_workersai.js +1 -65
- package/dist/embeddings/cohere.cjs +15 -124
- package/dist/embeddings/cohere.d.ts +1 -66
- package/dist/embeddings/cohere.js +1 -122
- package/dist/embeddings/googlepalm.cjs +15 -88
- package/dist/embeddings/googlepalm.d.ts +1 -61
- package/dist/embeddings/googlepalm.js +1 -86
- package/dist/embeddings/googlevertexai.cjs +15 -81
- package/dist/embeddings/googlevertexai.d.ts +1 -54
- package/dist/embeddings/googlevertexai.js +1 -79
- package/dist/embeddings/gradient_ai.cjs +15 -101
- package/dist/embeddings/gradient_ai.d.ts +1 -48
- package/dist/embeddings/gradient_ai.js +1 -99
- package/dist/embeddings/hf.cjs +15 -75
- package/dist/embeddings/hf.d.ts +1 -41
- package/dist/embeddings/hf.js +1 -73
- package/dist/embeddings/hf_transformers.cjs +15 -87
- package/dist/embeddings/hf_transformers.d.ts +1 -47
- package/dist/embeddings/hf_transformers.js +1 -85
- package/dist/embeddings/llama_cpp.cjs +15 -81
- package/dist/embeddings/llama_cpp.d.ts +1 -42
- package/dist/embeddings/llama_cpp.js +1 -79
- package/dist/embeddings/minimax.cjs +15 -165
- package/dist/embeddings/minimax.d.ts +1 -119
- package/dist/embeddings/minimax.js +1 -163
- package/dist/embeddings/ollama.cjs +15 -118
- package/dist/embeddings/ollama.d.ts +1 -34
- package/dist/embeddings/ollama.js +1 -116
- package/dist/embeddings/openai.cjs +2 -240
- package/dist/embeddings/openai.d.ts +1 -82
- package/dist/embeddings/openai.js +1 -239
- package/dist/embeddings/tensorflow.cjs +3 -96
- package/dist/embeddings/tensorflow.d.ts +1 -59
- package/dist/embeddings/tensorflow.js +1 -83
- package/dist/embeddings/voyage.cjs +15 -118
- package/dist/embeddings/voyage.d.ts +1 -66
- package/dist/embeddings/voyage.js +1 -116
- package/dist/experimental/chat_models/ollama_functions.d.ts +1 -1
- package/dist/experimental/masking/index.cjs +9 -0
- package/dist/experimental/masking/index.d.ts +4 -0
- package/dist/experimental/masking/index.js +3 -0
- package/dist/experimental/masking/parser.cjs +134 -0
- package/dist/experimental/masking/parser.d.ts +44 -0
- package/dist/experimental/masking/parser.js +130 -0
- package/dist/experimental/masking/regex_masking_transformer.cjs +145 -0
- package/dist/experimental/masking/regex_masking_transformer.d.ts +48 -0
- package/dist/experimental/masking/regex_masking_transformer.js +141 -0
- package/dist/experimental/masking/transformer.cjs +9 -0
- package/dist/experimental/masking/transformer.d.ts +7 -0
- package/dist/experimental/masking/transformer.js +5 -0
- package/dist/experimental/masking/types.cjs +2 -0
- package/dist/experimental/masking/types.d.ts +25 -0
- package/dist/experimental/masking/types.js +1 -0
- package/dist/experimental/openai_assistant/index.cjs +3 -3
- package/dist/experimental/openai_assistant/index.d.ts +1 -1
- package/dist/experimental/openai_assistant/index.js +1 -1
- package/dist/experimental/openai_assistant/schema.d.ts +1 -1
- package/dist/experimental/openai_files/index.cjs +2 -2
- package/dist/experimental/openai_files/index.d.ts +1 -1
- package/dist/experimental/openai_files/index.js +1 -1
- package/dist/graphs/neo4j_graph.cjs +3 -254
- package/dist/graphs/neo4j_graph.d.ts +1 -63
- package/dist/graphs/neo4j_graph.js +1 -241
- package/dist/llms/ai21.cjs +15 -200
- package/dist/llms/ai21.d.ts +1 -100
- package/dist/llms/ai21.js +1 -198
- package/dist/llms/aleph_alpha.cjs +15 -374
- package/dist/llms/aleph_alpha.d.ts +1 -161
- package/dist/llms/aleph_alpha.js +1 -372
- package/dist/llms/bedrock/web.cjs +15 -310
- package/dist/llms/bedrock/web.d.ts +1 -66
- package/dist/llms/bedrock/web.js +1 -308
- package/dist/llms/cloudflare_workersai.cjs +15 -168
- package/dist/llms/cloudflare_workersai.d.ts +1 -55
- package/dist/llms/cloudflare_workersai.js +1 -166
- package/dist/llms/cohere.cjs +15 -110
- package/dist/llms/cohere.d.ts +1 -54
- package/dist/llms/cohere.js +1 -108
- package/dist/llms/fireworks.cjs +15 -90
- package/dist/llms/fireworks.d.ts +1 -33
- package/dist/llms/fireworks.js +1 -88
- package/dist/llms/googlepalm.cjs +15 -134
- package/dist/llms/googlepalm.d.ts +1 -92
- package/dist/llms/googlepalm.js +1 -132
- package/dist/llms/googlevertexai/index.cjs +15 -45
- package/dist/llms/googlevertexai/index.d.ts +1 -38
- package/dist/llms/googlevertexai/index.js +1 -43
- package/dist/llms/googlevertexai/web.cjs +15 -42
- package/dist/llms/googlevertexai/web.d.ts +1 -36
- package/dist/llms/googlevertexai/web.js +1 -40
- package/dist/llms/gradient_ai.cjs +15 -110
- package/dist/llms/gradient_ai.d.ts +1 -55
- package/dist/llms/gradient_ai.js +1 -108
- package/dist/llms/hf.cjs +15 -136
- package/dist/llms/hf.d.ts +1 -68
- package/dist/llms/hf.js +1 -134
- package/dist/llms/llama_cpp.cjs +15 -111
- package/dist/llms/llama_cpp.d.ts +1 -41
- package/dist/llms/llama_cpp.js +1 -109
- package/dist/llms/ollama.cjs +15 -353
- package/dist/llms/ollama.d.ts +1 -106
- package/dist/llms/ollama.js +1 -351
- package/dist/llms/openai-chat.cjs +3 -445
- package/dist/llms/openai-chat.d.ts +4 -123
- package/dist/llms/openai-chat.js +2 -443
- package/dist/llms/openai.cjs +6 -530
- package/dist/llms/openai.d.ts +4 -123
- package/dist/llms/openai.js +2 -525
- package/dist/llms/portkey.cjs +14 -168
- package/dist/llms/portkey.d.ts +1 -57
- package/dist/llms/portkey.js +1 -162
- package/dist/llms/raycast.cjs +15 -94
- package/dist/llms/raycast.d.ts +1 -50
- package/dist/llms/raycast.js +1 -92
- package/dist/llms/replicate.cjs +15 -132
- package/dist/llms/replicate.d.ts +1 -51
- package/dist/llms/replicate.js +1 -130
- package/dist/llms/sagemaker_endpoint.cjs +15 -203
- package/dist/llms/sagemaker_endpoint.d.ts +1 -121
- package/dist/llms/sagemaker_endpoint.js +1 -200
- package/dist/llms/watsonx_ai.cjs +15 -152
- package/dist/llms/watsonx_ai.d.ts +1 -72
- package/dist/llms/watsonx_ai.js +1 -150
- package/dist/llms/writer.cjs +15 -165
- package/dist/llms/writer.d.ts +1 -60
- package/dist/llms/writer.js +1 -163
- package/dist/llms/yandex.cjs +15 -98
- package/dist/llms/yandex.d.ts +1 -40
- package/dist/llms/yandex.js +1 -96
- package/dist/load/import_map.cjs +2 -1
- package/dist/load/import_map.d.ts +1 -0
- package/dist/load/import_map.js +1 -0
- package/dist/load/index.cjs +3 -1
- package/dist/load/index.d.ts +1 -1
- package/dist/load/index.js +3 -1
- package/dist/retrievers/amazon_kendra.cjs +15 -273
- package/dist/retrievers/amazon_kendra.d.ts +1 -142
- package/dist/retrievers/amazon_kendra.js +1 -271
- package/dist/retrievers/chaindesk.cjs +15 -88
- package/dist/retrievers/chaindesk.d.ts +1 -31
- package/dist/retrievers/chaindesk.js +1 -86
- package/dist/retrievers/databerry.cjs +15 -82
- package/dist/retrievers/databerry.d.ts +1 -34
- package/dist/retrievers/databerry.js +1 -80
- package/dist/retrievers/metal.cjs +15 -51
- package/dist/retrievers/metal.d.ts +1 -36
- package/dist/retrievers/metal.js +1 -49
- package/dist/retrievers/supabase.cjs +15 -167
- package/dist/retrievers/supabase.d.ts +1 -82
- package/dist/retrievers/supabase.js +1 -165
- package/dist/retrievers/tavily_search_api.cjs +15 -142
- package/dist/retrievers/tavily_search_api.d.ts +1 -38
- package/dist/retrievers/tavily_search_api.js +1 -140
- package/dist/retrievers/zep.cjs +15 -150
- package/dist/retrievers/zep.d.ts +1 -76
- package/dist/retrievers/zep.js +1 -148
- package/dist/schema/document.cjs +2 -16
- package/dist/schema/document.d.ts +1 -11
- package/dist/schema/document.js +1 -16
- package/dist/schema/index.cjs +2 -7
- package/dist/schema/index.d.ts +2 -10
- package/dist/schema/index.js +1 -6
- package/dist/storage/convex.cjs +15 -143
- package/dist/storage/convex.d.ts +1 -106
- package/dist/storage/convex.js +1 -141
- package/dist/storage/ioredis.cjs +15 -158
- package/dist/storage/ioredis.d.ts +1 -71
- package/dist/storage/ioredis.js +1 -156
- package/dist/storage/upstash_redis.cjs +15 -172
- package/dist/storage/upstash_redis.d.ts +1 -78
- package/dist/storage/upstash_redis.js +1 -170
- package/dist/storage/vercel_kv.cjs +15 -161
- package/dist/storage/vercel_kv.d.ts +1 -62
- package/dist/storage/vercel_kv.js +1 -159
- package/dist/stores/doc/in_memory.cjs +15 -105
- package/dist/stores/doc/in_memory.d.ts +1 -46
- package/dist/stores/doc/in_memory.js +1 -102
- package/dist/stores/message/cassandra.cjs +15 -158
- package/dist/stores/message/cassandra.d.ts +1 -69
- package/dist/stores/message/cassandra.js +1 -156
- package/dist/stores/message/cloudflare_d1.cjs +15 -150
- package/dist/stores/message/cloudflare_d1.d.ts +1 -67
- package/dist/stores/message/cloudflare_d1.js +1 -148
- package/dist/stores/message/convex.cjs +15 -118
- package/dist/stores/message/convex.d.ts +1 -81
- package/dist/stores/message/convex.js +1 -116
- package/dist/stores/message/dynamodb.cjs +15 -159
- package/dist/stores/message/dynamodb.d.ts +1 -51
- package/dist/stores/message/dynamodb.js +1 -157
- package/dist/stores/message/firestore.cjs +15 -185
- package/dist/stores/message/firestore.d.ts +1 -68
- package/dist/stores/message/firestore.js +1 -183
- package/dist/stores/message/ioredis.cjs +15 -98
- package/dist/stores/message/ioredis.d.ts +1 -64
- package/dist/stores/message/ioredis.js +1 -96
- package/dist/stores/message/momento.cjs +15 -160
- package/dist/stores/message/momento.d.ts +1 -97
- package/dist/stores/message/momento.js +1 -158
- package/dist/stores/message/mongodb.cjs +15 -57
- package/dist/stores/message/mongodb.d.ts +1 -26
- package/dist/stores/message/mongodb.js +1 -55
- package/dist/stores/message/planetscale.cjs +15 -170
- package/dist/stores/message/planetscale.d.ts +1 -75
- package/dist/stores/message/planetscale.js +1 -168
- package/dist/stores/message/redis.cjs +15 -114
- package/dist/stores/message/redis.d.ts +1 -69
- package/dist/stores/message/redis.js +1 -112
- package/dist/stores/message/upstash_redis.cjs +15 -85
- package/dist/stores/message/upstash_redis.d.ts +1 -43
- package/dist/stores/message/upstash_redis.js +1 -83
- package/dist/stores/message/utils.cjs +3 -23
- package/dist/stores/message/utils.d.ts +1 -17
- package/dist/stores/message/utils.js +1 -21
- package/dist/stores/message/xata.cjs +15 -216
- package/dist/stores/message/xata.d.ts +1 -76
- package/dist/stores/message/xata.js +1 -214
- package/dist/tools/IFTTTWebhook.cjs +15 -87
- package/dist/tools/IFTTTWebhook.d.ts +1 -50
- package/dist/tools/IFTTTWebhook.js +1 -85
- package/dist/tools/aiplugin.cjs +15 -73
- package/dist/tools/aiplugin.d.ts +1 -34
- package/dist/tools/aiplugin.js +1 -71
- package/dist/tools/aws_sfn.cjs +15 -201
- package/dist/tools/aws_sfn.d.ts +1 -57
- package/dist/tools/aws_sfn.js +1 -197
- package/dist/tools/bingserpapi.cjs +15 -76
- package/dist/tools/bingserpapi.d.ts +1 -23
- package/dist/tools/bingserpapi.js +1 -75
- package/dist/tools/brave_search.cjs +15 -64
- package/dist/tools/brave_search.d.ts +1 -23
- package/dist/tools/brave_search.js +1 -62
- package/dist/tools/connery.cjs +15 -277
- package/dist/tools/connery.d.ts +1 -145
- package/dist/tools/connery.js +1 -274
- package/dist/tools/convert_to_openai.d.ts +1 -1
- package/dist/tools/dadjokeapi.cjs +15 -46
- package/dist/tools/dadjokeapi.d.ts +1 -15
- package/dist/tools/dadjokeapi.js +1 -45
- package/dist/tools/dataforseo_api_search.cjs +15 -280
- package/dist/tools/dataforseo_api_search.d.ts +1 -170
- package/dist/tools/dataforseo_api_search.js +1 -278
- package/dist/tools/gmail/index.cjs +15 -11
- package/dist/tools/gmail/index.d.ts +1 -11
- package/dist/tools/gmail/index.js +1 -5
- package/dist/tools/google_custom_search.cjs +15 -70
- package/dist/tools/google_custom_search.d.ts +1 -25
- package/dist/tools/google_custom_search.js +1 -68
- package/dist/tools/google_places.cjs +15 -79
- package/dist/tools/google_places.d.ts +1 -21
- package/dist/tools/google_places.js +1 -77
- package/dist/tools/searchapi.cjs +15 -164
- package/dist/tools/searchapi.d.ts +1 -91
- package/dist/tools/searchapi.js +1 -162
- package/dist/tools/searxng_search.cjs +15 -156
- package/dist/tools/searxng_search.d.ts +1 -114
- package/dist/tools/searxng_search.js +1 -154
- package/dist/tools/serpapi.cjs +15 -199
- package/dist/tools/serpapi.d.ts +1 -302
- package/dist/tools/serpapi.js +1 -197
- package/dist/tools/serper.cjs +15 -94
- package/dist/tools/serper.d.ts +1 -32
- package/dist/tools/serper.js +1 -92
- package/dist/tools/wikipedia_query_run.cjs +15 -133
- package/dist/tools/wikipedia_query_run.d.ts +1 -54
- package/dist/tools/wikipedia_query_run.js +1 -131
- package/dist/tools/wolframalpha.cjs +15 -47
- package/dist/tools/wolframalpha.d.ts +1 -21
- package/dist/tools/wolframalpha.js +1 -45
- package/dist/types/openai-types.d.ts +1 -1
- package/dist/util/convex.d.ts +1 -1
- package/dist/util/event-source-parse.cjs +15 -224
- package/dist/util/event-source-parse.d.ts +1 -39
- package/dist/util/event-source-parse.js +1 -219
- package/dist/util/math.cjs +15 -123
- package/dist/util/math.d.ts +1 -40
- package/dist/util/math.js +1 -116
- package/dist/util/openapi.d.ts +2 -2
- package/dist/vectorstores/analyticdb.cjs +3 -333
- package/dist/vectorstores/analyticdb.d.ts +1 -110
- package/dist/vectorstores/analyticdb.js +1 -317
- package/dist/vectorstores/base.cjs +15 -165
- package/dist/vectorstores/base.d.ts +1 -104
- package/dist/vectorstores/base.js +1 -161
- package/dist/vectorstores/cassandra.cjs +15 -478
- package/dist/vectorstores/cassandra.d.ts +1 -162
- package/dist/vectorstores/cassandra.js +1 -476
- package/dist/vectorstores/chroma.cjs +3 -312
- package/dist/vectorstores/chroma.d.ts +1 -133
- package/dist/vectorstores/chroma.js +1 -299
- package/dist/vectorstores/clickhouse.cjs +3 -272
- package/dist/vectorstores/clickhouse.d.ts +1 -126
- package/dist/vectorstores/clickhouse.js +1 -259
- package/dist/vectorstores/closevector/node.cjs +15 -107
- package/dist/vectorstores/closevector/node.d.ts +1 -83
- package/dist/vectorstores/closevector/node.js +1 -105
- package/dist/vectorstores/closevector/web.cjs +15 -107
- package/dist/vectorstores/closevector/web.d.ts +1 -80
- package/dist/vectorstores/closevector/web.js +1 -105
- package/dist/vectorstores/cloudflare_vectorize.cjs +3 -186
- package/dist/vectorstores/cloudflare_vectorize.d.ts +1 -90
- package/dist/vectorstores/cloudflare_vectorize.js +1 -173
- package/dist/vectorstores/convex.cjs +15 -175
- package/dist/vectorstores/convex.d.ts +1 -134
- package/dist/vectorstores/convex.js +1 -173
- package/dist/vectorstores/elasticsearch.cjs +3 -287
- package/dist/vectorstores/elasticsearch.d.ts +1 -143
- package/dist/vectorstores/elasticsearch.js +1 -274
- package/dist/vectorstores/faiss.cjs +3 -378
- package/dist/vectorstores/faiss.d.ts +1 -127
- package/dist/vectorstores/faiss.js +1 -365
- package/dist/vectorstores/googlevertexai.cjs +3 -538
- package/dist/vectorstores/googlevertexai.d.ts +1 -181
- package/dist/vectorstores/googlevertexai.js +1 -521
- package/dist/vectorstores/hnswlib.cjs +15 -273
- package/dist/vectorstores/hnswlib.d.ts +1 -122
- package/dist/vectorstores/hnswlib.js +1 -271
- package/dist/vectorstores/lancedb.cjs +15 -126
- package/dist/vectorstores/lancedb.d.ts +1 -61
- package/dist/vectorstores/lancedb.js +1 -124
- package/dist/vectorstores/memory.cjs +15 -143
- package/dist/vectorstores/memory.d.ts +1 -92
- package/dist/vectorstores/memory.js +1 -141
- package/dist/vectorstores/milvus.cjs +3 -592
- package/dist/vectorstores/milvus.d.ts +1 -139
- package/dist/vectorstores/milvus.js +1 -579
- package/dist/vectorstores/momento_vector_index.cjs +3 -305
- package/dist/vectorstores/momento_vector_index.d.ts +1 -143
- package/dist/vectorstores/momento_vector_index.js +1 -292
- package/dist/vectorstores/mongodb_atlas.cjs +15 -218
- package/dist/vectorstores/mongodb_atlas.d.ts +1 -118
- package/dist/vectorstores/mongodb_atlas.js +1 -216
- package/dist/vectorstores/myscale.cjs +3 -263
- package/dist/vectorstores/myscale.d.ts +1 -129
- package/dist/vectorstores/myscale.js +1 -250
- package/dist/vectorstores/neo4j_vector.cjs +3 -578
- package/dist/vectorstores/neo4j_vector.d.ts +1 -75
- package/dist/vectorstores/neo4j_vector.js +1 -562
- package/dist/vectorstores/opensearch.cjs +3 -274
- package/dist/vectorstores/opensearch.d.ts +1 -119
- package/dist/vectorstores/opensearch.js +1 -261
- package/dist/vectorstores/pgvector.cjs +14 -404
- package/dist/vectorstores/pgvector.d.ts +1 -160
- package/dist/vectorstores/pgvector.js +1 -400
- package/dist/vectorstores/pinecone.cjs +3 -280
- package/dist/vectorstores/pinecone.d.ts +1 -120
- package/dist/vectorstores/pinecone.js +1 -264
- package/dist/vectorstores/prisma.cjs +15 -305
- package/dist/vectorstores/prisma.d.ts +1 -180
- package/dist/vectorstores/prisma.js +1 -304
- package/dist/vectorstores/qdrant.cjs +15 -195
- package/dist/vectorstores/qdrant.d.ts +1 -95
- package/dist/vectorstores/qdrant.js +1 -193
- package/dist/vectorstores/redis.cjs +15 -333
- package/dist/vectorstores/redis.d.ts +1 -186
- package/dist/vectorstores/redis.js +1 -331
- package/dist/vectorstores/rockset.cjs +15 -351
- package/dist/vectorstores/rockset.d.ts +1 -202
- package/dist/vectorstores/rockset.js +1 -347
- package/dist/vectorstores/singlestore.cjs +15 -220
- package/dist/vectorstores/singlestore.d.ts +1 -88
- package/dist/vectorstores/singlestore.js +1 -218
- package/dist/vectorstores/supabase.cjs +15 -217
- package/dist/vectorstores/supabase.d.ts +1 -118
- package/dist/vectorstores/supabase.js +1 -215
- package/dist/vectorstores/tigris.cjs +3 -143
- package/dist/vectorstores/tigris.d.ts +1 -74
- package/dist/vectorstores/tigris.js +1 -130
- package/dist/vectorstores/typeorm.cjs +15 -259
- package/dist/vectorstores/typeorm.d.ts +1 -109
- package/dist/vectorstores/typeorm.js +1 -256
- package/dist/vectorstores/typesense.cjs +15 -223
- package/dist/vectorstores/typesense.d.ts +1 -131
- package/dist/vectorstores/typesense.js +1 -221
- package/dist/vectorstores/usearch.cjs +3 -203
- package/dist/vectorstores/usearch.d.ts +1 -85
- package/dist/vectorstores/usearch.js +1 -187
- package/dist/vectorstores/vectara.cjs +3 -409
- package/dist/vectorstores/vectara.d.ts +1 -148
- package/dist/vectorstores/vectara.js +1 -396
- package/dist/vectorstores/vercel_postgres.cjs +15 -320
- package/dist/vectorstores/vercel_postgres.d.ts +1 -145
- package/dist/vectorstores/vercel_postgres.js +1 -318
- package/dist/vectorstores/voy.cjs +15 -156
- package/dist/vectorstores/voy.d.ts +1 -73
- package/dist/vectorstores/voy.js +1 -154
- package/dist/vectorstores/weaviate.cjs +3 -347
- package/dist/vectorstores/weaviate.d.ts +1 -140
- package/dist/vectorstores/weaviate.js +1 -333
- package/dist/vectorstores/xata.cjs +15 -108
- package/dist/vectorstores/xata.d.ts +1 -70
- package/dist/vectorstores/xata.js +1 -106
- package/dist/vectorstores/zep.cjs +15 -313
- package/dist/vectorstores/zep.d.ts +1 -146
- package/dist/vectorstores/zep.js +1 -311
- package/experimental/masking.cjs +1 -0
- package/experimental/masking.d.ts +1 -0
- package/experimental/masking.js +1 -0
- package/package.json +13 -27
- package/dist/chat_models/googlevertexai/common.cjs +0 -274
- package/dist/chat_models/googlevertexai/common.d.ts +0 -123
- package/dist/chat_models/googlevertexai/common.js +0 -269
- package/dist/chat_models/iflytek_xinghuo/common.cjs +0 -340
- package/dist/chat_models/iflytek_xinghuo/common.d.ts +0 -165
- package/dist/chat_models/iflytek_xinghuo/common.js +0 -336
- package/dist/llms/googlevertexai/common.cjs +0 -168
- package/dist/llms/googlevertexai/common.d.ts +0 -82
- package/dist/llms/googlevertexai/common.js +0 -164
- package/dist/tools/gmail/base.cjs +0 -69
- package/dist/tools/gmail/base.d.ts +0 -19
- package/dist/tools/gmail/base.js +0 -65
- package/dist/tools/gmail/create_draft.cjs +0 -62
- package/dist/tools/gmail/create_draft.d.ts +0 -35
- package/dist/tools/gmail/create_draft.js +0 -58
- package/dist/tools/gmail/descriptions.cjs +0 -118
- package/dist/tools/gmail/descriptions.d.ts +0 -5
- package/dist/tools/gmail/descriptions.js +0 -115
- package/dist/tools/gmail/get_message.cjs +0 -83
- package/dist/tools/gmail/get_message.d.ts +0 -18
- package/dist/tools/gmail/get_message.js +0 -79
- package/dist/tools/gmail/get_thread.cjs +0 -89
- package/dist/tools/gmail/get_thread.d.ts +0 -18
- package/dist/tools/gmail/get_thread.js +0 -85
- package/dist/tools/gmail/search.cjs +0 -118
- package/dist/tools/gmail/search.d.ts +0 -29
- package/dist/tools/gmail/search.js +0 -114
- package/dist/tools/gmail/send_message.cjs +0 -74
- package/dist/tools/gmail/send_message.d.ts +0 -35
- package/dist/tools/gmail/send_message.js +0 -70
- package/dist/util/openai-format-fndef.cjs +0 -81
- package/dist/util/openai-format-fndef.d.ts +0 -44
- package/dist/util/openai-format-fndef.js +0 -77
- package/dist/util/openai.cjs +0 -21
- package/dist/util/openai.d.ts +0 -1
- package/dist/util/openai.js +0 -17
- package/dist/vectorstores/closevector/common.cjs +0 -128
- package/dist/vectorstores/closevector/common.d.ts +0 -82
- package/dist/vectorstores/closevector/common.js +0 -124
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { MaskingTransformer } from "./transformer.js";
|
|
2
|
+
import type { HashFunction, MaskingPattern } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* RegexMaskingTransformer class for masking and rehydrating messages with Regex.
|
|
5
|
+
*/
|
|
6
|
+
export declare class RegexMaskingTransformer extends MaskingTransformer {
|
|
7
|
+
private patterns;
|
|
8
|
+
private hashFunction;
|
|
9
|
+
/**
|
|
10
|
+
* Constructs a RegexMaskingTransformer with given patterns and an optional hash function.
|
|
11
|
+
* Validates the provided patterns to ensure they conform to the expected structure.
|
|
12
|
+
*
|
|
13
|
+
* @param patterns - An object containing masking patterns. Each pattern should include
|
|
14
|
+
* a regular expression (`regex`) and optionally a `replacement` string
|
|
15
|
+
* or a `mask` function.
|
|
16
|
+
* @param hashFunction - An optional custom hash function to be used for masking.
|
|
17
|
+
*/
|
|
18
|
+
constructor(patterns: {
|
|
19
|
+
[key: string]: MaskingPattern;
|
|
20
|
+
}, hashFunction?: HashFunction);
|
|
21
|
+
/**
|
|
22
|
+
* Validates the given masking patterns to ensure each pattern has a valid regular expression.
|
|
23
|
+
* Throws an error if any pattern is found to be invalid.
|
|
24
|
+
*
|
|
25
|
+
* @param patterns - The patterns object to validate.
|
|
26
|
+
*/
|
|
27
|
+
private validatePatterns;
|
|
28
|
+
/**
|
|
29
|
+
* Masks content in a message based on the defined patterns.
|
|
30
|
+
* @param message - The message to be masked.
|
|
31
|
+
* @param state - The current state containing original values.
|
|
32
|
+
* @returns A tuple of the masked message and the updated state.
|
|
33
|
+
*/
|
|
34
|
+
transform(message: string, state: Map<string, string>): Promise<[string, Map<string, string>]>;
|
|
35
|
+
/**
|
|
36
|
+
* Rehydrates a masked message back to its original form using the provided state.
|
|
37
|
+
* @param message - The masked message to be rehydrated.
|
|
38
|
+
* @param state - The state map containing mappings of masked values to their original values.
|
|
39
|
+
* @returns The rehydrated (original) message.
|
|
40
|
+
*/
|
|
41
|
+
rehydrate(message: string, state: Map<string, string>): Promise<string>;
|
|
42
|
+
/**
|
|
43
|
+
* Default hash function for creating unique hash values.
|
|
44
|
+
* @param input - The input string to hash.
|
|
45
|
+
* @returns The resulting hash as a string.
|
|
46
|
+
*/
|
|
47
|
+
private defaultHashFunction;
|
|
48
|
+
}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { MaskingTransformer } from "./transformer.js";
|
|
2
|
+
/**
|
|
3
|
+
* RegexMaskingTransformer class for masking and rehydrating messages with Regex.
|
|
4
|
+
*/
|
|
5
|
+
export class RegexMaskingTransformer extends MaskingTransformer {
|
|
6
|
+
/**
|
|
7
|
+
* Constructs a RegexMaskingTransformer with given patterns and an optional hash function.
|
|
8
|
+
* Validates the provided patterns to ensure they conform to the expected structure.
|
|
9
|
+
*
|
|
10
|
+
* @param patterns - An object containing masking patterns. Each pattern should include
|
|
11
|
+
* a regular expression (`regex`) and optionally a `replacement` string
|
|
12
|
+
* or a `mask` function.
|
|
13
|
+
* @param hashFunction - An optional custom hash function to be used for masking.
|
|
14
|
+
*/
|
|
15
|
+
constructor(patterns, hashFunction) {
|
|
16
|
+
super();
|
|
17
|
+
Object.defineProperty(this, "patterns", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
configurable: true,
|
|
20
|
+
writable: true,
|
|
21
|
+
value: void 0
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(this, "hashFunction", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
configurable: true,
|
|
26
|
+
writable: true,
|
|
27
|
+
value: void 0
|
|
28
|
+
});
|
|
29
|
+
// Validates the provided masking patterns before initializing the transformer.
|
|
30
|
+
// This ensures that each pattern has a valid regular expression.
|
|
31
|
+
this.validatePatterns(patterns);
|
|
32
|
+
// Assigns the validated patterns and the hash function to the transformer.
|
|
33
|
+
// If no custom hash function is provided, the default hash function is used.
|
|
34
|
+
this.patterns = patterns;
|
|
35
|
+
this.hashFunction = hashFunction || this.defaultHashFunction;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Validates the given masking patterns to ensure each pattern has a valid regular expression.
|
|
39
|
+
* Throws an error if any pattern is found to be invalid.
|
|
40
|
+
*
|
|
41
|
+
* @param patterns - The patterns object to validate.
|
|
42
|
+
*/
|
|
43
|
+
validatePatterns(patterns) {
|
|
44
|
+
for (const key of Object.keys(patterns)) {
|
|
45
|
+
const pattern = patterns[key];
|
|
46
|
+
// Checks that each pattern is an object and has a regex property that is an instance of RegExp.
|
|
47
|
+
// Throws an error if these conditions are not met, indicating an invalid pattern configuration.
|
|
48
|
+
if (!pattern ||
|
|
49
|
+
typeof pattern !== "object" ||
|
|
50
|
+
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
51
|
+
!(pattern.regex instanceof RegExp)) {
|
|
52
|
+
throw new Error("Invalid pattern configuration.");
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Masks content in a message based on the defined patterns.
|
|
58
|
+
* @param message - The message to be masked.
|
|
59
|
+
* @param state - The current state containing original values.
|
|
60
|
+
* @returns A tuple of the masked message and the updated state.
|
|
61
|
+
*/
|
|
62
|
+
async transform(message, state) {
|
|
63
|
+
if (typeof message !== "string") {
|
|
64
|
+
throw new TypeError("RegexMaskingTransformer.transform Error: The 'message' argument must be a string.");
|
|
65
|
+
}
|
|
66
|
+
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
67
|
+
if (!(state instanceof Map)) {
|
|
68
|
+
throw new TypeError("RegexMaskingTransformer.transform Error: The 'state' argument must be an instance of Map.");
|
|
69
|
+
}
|
|
70
|
+
// Holds the progressively masked message
|
|
71
|
+
let processedMessage = message;
|
|
72
|
+
// Initialize original values map with the current state or a new map
|
|
73
|
+
const originalValues = state || new Map();
|
|
74
|
+
// Iterate over each pattern defined in the transformer
|
|
75
|
+
for (const key of Object.keys(this.patterns)) {
|
|
76
|
+
const pattern = this.patterns[key];
|
|
77
|
+
// Apply the current pattern's regex to the message
|
|
78
|
+
processedMessage = processedMessage.replace(pattern.regex, (match) => {
|
|
79
|
+
// Determine the masked value: use the mask function if provided, else use the replacement string,
|
|
80
|
+
// else use the hash function.
|
|
81
|
+
const maskedValue = pattern.mask
|
|
82
|
+
? pattern.mask(match)
|
|
83
|
+
: pattern.replacement ?? this.hashFunction(match);
|
|
84
|
+
// Store the mapping of the masked value to the original value (match)
|
|
85
|
+
originalValues.set(maskedValue, match);
|
|
86
|
+
// Return the masked value to replace the original value in the message
|
|
87
|
+
return maskedValue;
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
// Return the fully masked message and the state map with all original values
|
|
91
|
+
// Wrap the synchronous return values in Promise.resolve() to maintain compatibility
|
|
92
|
+
// with the MaskingParser's expectation of a Promise return type.
|
|
93
|
+
return [processedMessage, originalValues];
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Rehydrates a masked message back to its original form using the provided state.
|
|
97
|
+
* @param message - The masked message to be rehydrated.
|
|
98
|
+
* @param state - The state map containing mappings of masked values to their original values.
|
|
99
|
+
* @returns The rehydrated (original) message.
|
|
100
|
+
*/
|
|
101
|
+
async rehydrate(message, state) {
|
|
102
|
+
if (typeof message !== "string") {
|
|
103
|
+
throw new TypeError("RegexMaskingTransformer.rehydrate Error: The 'message' argument must be a string.");
|
|
104
|
+
}
|
|
105
|
+
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
106
|
+
if (!(state instanceof Map)) {
|
|
107
|
+
throw new TypeError("RegexMaskingTransformer.rehydrate Error: The 'state' argument must be an instance of Map.");
|
|
108
|
+
}
|
|
109
|
+
// Convert the state map to an array and use reduce to sequentially replace masked values with original values.
|
|
110
|
+
const rehydratedMessage = Array.from(state).reduce((msg, [masked, original]) => {
|
|
111
|
+
// Escape special characters in the masked string to ensure it can be used in a regular expression safely.
|
|
112
|
+
// This is necessary because masked values might contain characters that have special meanings in regex.
|
|
113
|
+
const escapedMasked = masked.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
114
|
+
// Replace all instances of the escaped masked value in the message with the original value.
|
|
115
|
+
// The 'g' flag in the RegExp ensures that all occurrences of the masked value are replaced.
|
|
116
|
+
return msg.replace(new RegExp(escapedMasked, "g"), original);
|
|
117
|
+
}, message);
|
|
118
|
+
return rehydratedMessage;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Default hash function for creating unique hash values.
|
|
122
|
+
* @param input - The input string to hash.
|
|
123
|
+
* @returns The resulting hash as a string.
|
|
124
|
+
*/
|
|
125
|
+
defaultHashFunction(input) {
|
|
126
|
+
let hash = 0;
|
|
127
|
+
// Iterate over each character in the input string
|
|
128
|
+
for (let i = 0; i < input.length; i += 1) {
|
|
129
|
+
// Get ASCII value of the character
|
|
130
|
+
const char = input.charCodeAt(i);
|
|
131
|
+
// Combine the current hash with the new character and ensure it remains a 32-bit integer
|
|
132
|
+
hash = (hash << 5) - hash + char;
|
|
133
|
+
// Bitwise OR operation to convert to a 32-bit integer.
|
|
134
|
+
// This is a common technique to ensure the final hash value stays within the 32-bit limit,
|
|
135
|
+
// effectively wrapping the value when it becomes too large.
|
|
136
|
+
hash |= 0;
|
|
137
|
+
}
|
|
138
|
+
// Convert the numerical hash value to a string and return
|
|
139
|
+
return hash.toString();
|
|
140
|
+
}
|
|
141
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MaskingTransformer = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Abstract class representing a transformer used for masking and rehydrating messages.
|
|
6
|
+
*/
|
|
7
|
+
class MaskingTransformer {
|
|
8
|
+
}
|
|
9
|
+
exports.MaskingTransformer = MaskingTransformer;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract class representing a transformer used for masking and rehydrating messages.
|
|
3
|
+
*/
|
|
4
|
+
export declare abstract class MaskingTransformer {
|
|
5
|
+
abstract transform(message: string, state?: Map<string, string>): Promise<[string, Map<string, string>]>;
|
|
6
|
+
abstract rehydrate(message: string, state: Map<string, string>): Promise<string>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { MaskingTransformer } from "./transformer.js";
|
|
2
|
+
/**
|
|
3
|
+
* Configuration type for MaskingParser.
|
|
4
|
+
*/
|
|
5
|
+
export type MaskingParserConfig = {
|
|
6
|
+
transformers?: MaskingTransformer[];
|
|
7
|
+
defaultHashFunction?: HashFunction;
|
|
8
|
+
onMaskingStart?: HookFunction;
|
|
9
|
+
onMaskingEnd?: HookFunction;
|
|
10
|
+
onRehydratingStart?: HookFunction;
|
|
11
|
+
onRehydratingEnd?: HookFunction;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Regex Masking Pattern used for masking in PIIMaskingTransformer.
|
|
15
|
+
*/
|
|
16
|
+
export type MaskingPattern = {
|
|
17
|
+
regex: RegExp;
|
|
18
|
+
replacement?: string;
|
|
19
|
+
mask?: (match: string) => string;
|
|
20
|
+
};
|
|
21
|
+
export type HookFunction = ((message: string) => Promise<void>) | ((message: string) => void);
|
|
22
|
+
/**
|
|
23
|
+
* Represents a function that can hash a string input.
|
|
24
|
+
*/
|
|
25
|
+
export type HashFunction = (input: string) => string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.OpenAIAssistantRunnable = void 0;
|
|
4
|
-
const openai_1 = require("openai");
|
|
4
|
+
const openai_1 = require("@langchain/openai");
|
|
5
5
|
const base_js_1 = require("../../schema/runnable/base.cjs");
|
|
6
6
|
const time_js_1 = require("../../util/time.cjs");
|
|
7
7
|
const base_js_2 = require("../../tools/base.cjs");
|
|
@@ -39,7 +39,7 @@ class OpenAIAssistantRunnable extends base_js_1.Runnable {
|
|
|
39
39
|
writable: true,
|
|
40
40
|
value: void 0
|
|
41
41
|
});
|
|
42
|
-
this.client = fields.client ?? new openai_1.
|
|
42
|
+
this.client = fields.client ?? new openai_1.OpenAIClient(fields?.clientOptions);
|
|
43
43
|
this.assistantId = fields.assistantId;
|
|
44
44
|
this.asAgent = fields.asAgent ?? this.asAgent;
|
|
45
45
|
}
|
|
@@ -51,7 +51,7 @@ class OpenAIAssistantRunnable extends base_js_1.Runnable {
|
|
|
51
51
|
}
|
|
52
52
|
return tool;
|
|
53
53
|
}) ?? [];
|
|
54
|
-
const oaiClient = client ?? new openai_1.
|
|
54
|
+
const oaiClient = client ?? new openai_1.OpenAIClient(clientOptions);
|
|
55
55
|
const assistant = await oaiClient.beta.assistants.create({
|
|
56
56
|
name,
|
|
57
57
|
instructions,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ClientOptions,
|
|
1
|
+
import { type ClientOptions, OpenAIClient } from "@langchain/openai";
|
|
2
2
|
import { Runnable } from "../../schema/runnable/base.js";
|
|
3
3
|
import type { RunnableConfig } from "../../schema/runnable/config.js";
|
|
4
4
|
import type { OpenAIAssistantFinish, OpenAIAssistantAction, OpenAIToolType } from "./schema.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.OpenAIFiles = void 0;
|
|
4
|
-
const openai_1 = require("openai");
|
|
4
|
+
const openai_1 = require("@langchain/openai");
|
|
5
5
|
const serializable_js_1 = require("../../load/serializable.cjs");
|
|
6
6
|
class OpenAIFiles extends serializable_js_1.Serializable {
|
|
7
7
|
constructor(fields) {
|
|
@@ -18,7 +18,7 @@ class OpenAIFiles extends serializable_js_1.Serializable {
|
|
|
18
18
|
writable: true,
|
|
19
19
|
value: void 0
|
|
20
20
|
});
|
|
21
|
-
this.oaiClient = fields?.client ?? new openai_1.
|
|
21
|
+
this.oaiClient = fields?.client ?? new openai_1.OpenAIClient(fields?.clientOptions);
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* Upload file
|
|
@@ -10,259 +10,8 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
10
10
|
if (k2 === undefined) k2 = k;
|
|
11
11
|
o[k2] = m[k];
|
|
12
12
|
}));
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
24
15
|
};
|
|
25
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports
|
|
27
|
-
const neo4j_driver_1 = __importStar(require("neo4j-driver"));
|
|
28
|
-
/**
|
|
29
|
-
* @security *Security note*: Make sure that the database connection uses credentials
|
|
30
|
-
* that are narrowly-scoped to only include necessary permissions.
|
|
31
|
-
* Failure to do so may result in data corruption or loss, since the calling
|
|
32
|
-
* code may attempt commands that would result in deletion, mutation
|
|
33
|
-
* of data if appropriately prompted or reading sensitive data if such
|
|
34
|
-
* data is present in the database.
|
|
35
|
-
* The best way to guard against such negative outcomes is to (as appropriate)
|
|
36
|
-
* limit the permissions granted to the credentials used with this tool.
|
|
37
|
-
* For example, creating read only users for the database is a good way to
|
|
38
|
-
* ensure that the calling code cannot mutate or delete data.
|
|
39
|
-
*
|
|
40
|
-
* @link See https://js.langchain.com/docs/security for more information.
|
|
41
|
-
*/
|
|
42
|
-
class Neo4jGraph {
|
|
43
|
-
constructor({ url, username, password, database = "neo4j", }) {
|
|
44
|
-
Object.defineProperty(this, "driver", {
|
|
45
|
-
enumerable: true,
|
|
46
|
-
configurable: true,
|
|
47
|
-
writable: true,
|
|
48
|
-
value: void 0
|
|
49
|
-
});
|
|
50
|
-
Object.defineProperty(this, "database", {
|
|
51
|
-
enumerable: true,
|
|
52
|
-
configurable: true,
|
|
53
|
-
writable: true,
|
|
54
|
-
value: void 0
|
|
55
|
-
});
|
|
56
|
-
Object.defineProperty(this, "schema", {
|
|
57
|
-
enumerable: true,
|
|
58
|
-
configurable: true,
|
|
59
|
-
writable: true,
|
|
60
|
-
value: ""
|
|
61
|
-
});
|
|
62
|
-
Object.defineProperty(this, "structuredSchema", {
|
|
63
|
-
enumerable: true,
|
|
64
|
-
configurable: true,
|
|
65
|
-
writable: true,
|
|
66
|
-
value: {
|
|
67
|
-
nodeProps: {},
|
|
68
|
-
relProps: {},
|
|
69
|
-
relationships: [],
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
try {
|
|
73
|
-
this.driver = neo4j_driver_1.default.driver(url, neo4j_driver_1.default.auth.basic(username, password));
|
|
74
|
-
this.database = database;
|
|
75
|
-
}
|
|
76
|
-
catch (error) {
|
|
77
|
-
throw new Error("Could not create a Neo4j driver instance. Please check the connection details.");
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
static async initialize(config) {
|
|
81
|
-
const graph = new Neo4jGraph(config);
|
|
82
|
-
try {
|
|
83
|
-
await graph.verifyConnectivity();
|
|
84
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
85
|
-
}
|
|
86
|
-
catch (error) {
|
|
87
|
-
console.log("Failed to verify connection.");
|
|
88
|
-
}
|
|
89
|
-
try {
|
|
90
|
-
await graph.refreshSchema();
|
|
91
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
const message = [
|
|
95
|
-
"Could not use APOC procedures.",
|
|
96
|
-
"Please ensure the APOC plugin is installed in Neo4j and that",
|
|
97
|
-
"'apoc.meta.data()' is allowed in Neo4j configuration",
|
|
98
|
-
].join("\n");
|
|
99
|
-
throw new Error(message);
|
|
100
|
-
}
|
|
101
|
-
finally {
|
|
102
|
-
console.log("Schema refreshed successfully.");
|
|
103
|
-
}
|
|
104
|
-
return graph;
|
|
105
|
-
}
|
|
106
|
-
getSchema() {
|
|
107
|
-
return this.schema;
|
|
108
|
-
}
|
|
109
|
-
getStructuredSchema() {
|
|
110
|
-
return this.structuredSchema;
|
|
111
|
-
}
|
|
112
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
113
|
-
async query(query, params = {}) {
|
|
114
|
-
try {
|
|
115
|
-
const result = await this.driver.executeQuery(query, params, {
|
|
116
|
-
database: this.database,
|
|
117
|
-
});
|
|
118
|
-
return toObjects(result.records);
|
|
119
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
120
|
-
}
|
|
121
|
-
catch (error) {
|
|
122
|
-
if (
|
|
123
|
-
// eslint-disable-next-line
|
|
124
|
-
error instanceof neo4j_driver_1.Neo4jError &&
|
|
125
|
-
error.code === "Neo.ClientError.Procedure.ProcedureNotFound") {
|
|
126
|
-
throw new Error("Procedure not found in Neo4j.");
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
return undefined;
|
|
130
|
-
}
|
|
131
|
-
async verifyConnectivity() {
|
|
132
|
-
await this.driver.verifyAuthentication();
|
|
133
|
-
}
|
|
134
|
-
async refreshSchema() {
|
|
135
|
-
const nodePropertiesQuery = `
|
|
136
|
-
CALL apoc.meta.data()
|
|
137
|
-
YIELD label, other, elementType, type, property
|
|
138
|
-
WHERE NOT type = "RELATIONSHIP" AND elementType = "node"
|
|
139
|
-
WITH label AS nodeLabels, collect({property:property, type:type}) AS properties
|
|
140
|
-
RETURN {labels: nodeLabels, properties: properties} AS output
|
|
141
|
-
`;
|
|
142
|
-
const relPropertiesQuery = `
|
|
143
|
-
CALL apoc.meta.data()
|
|
144
|
-
YIELD label, other, elementType, type, property
|
|
145
|
-
WHERE NOT type = "RELATIONSHIP" AND elementType = "relationship"
|
|
146
|
-
WITH label AS nodeLabels, collect({property:property, type:type}) AS properties
|
|
147
|
-
RETURN {type: nodeLabels, properties: properties} AS output
|
|
148
|
-
`;
|
|
149
|
-
const relQuery = `
|
|
150
|
-
CALL apoc.meta.data()
|
|
151
|
-
YIELD label, other, elementType, type, property
|
|
152
|
-
WHERE type = "RELATIONSHIP" AND elementType = "node"
|
|
153
|
-
UNWIND other AS other_node
|
|
154
|
-
RETURN {start: label, type: property, end: toString(other_node)} AS output
|
|
155
|
-
`;
|
|
156
|
-
// Assuming query method is defined and returns a Promise
|
|
157
|
-
const nodeProperties = (await this.query(nodePropertiesQuery))?.map((el) => el.output);
|
|
158
|
-
const relationshipsProperties = (await this.query(relPropertiesQuery))?.map((el) => el.output);
|
|
159
|
-
const relationships = (await this.query(relQuery))?.map((el) => el.output);
|
|
160
|
-
// Structured schema similar to Python's dictionary comprehension
|
|
161
|
-
this.structuredSchema = {
|
|
162
|
-
nodeProps: Object.fromEntries(nodeProperties?.map((el) => [el.labels, el.properties]) || []),
|
|
163
|
-
relProps: Object.fromEntries(relationshipsProperties?.map((el) => [el.type, el.properties]) || []),
|
|
164
|
-
relationships: relationships || [],
|
|
165
|
-
};
|
|
166
|
-
// Format node properties
|
|
167
|
-
const formattedNodeProps = nodeProperties?.map((el) => {
|
|
168
|
-
const propsStr = el.properties
|
|
169
|
-
.map((prop) => `${prop.property}: ${prop.type}`)
|
|
170
|
-
.join(", ");
|
|
171
|
-
return `${el.labels} {${propsStr}}`;
|
|
172
|
-
});
|
|
173
|
-
// Format relationship properties
|
|
174
|
-
const formattedRelProps = relationshipsProperties?.map((el) => {
|
|
175
|
-
const propsStr = el.properties
|
|
176
|
-
.map((prop) => `${prop.property}: ${prop.type}`)
|
|
177
|
-
.join(", ");
|
|
178
|
-
return `${el.type} {${propsStr}}`;
|
|
179
|
-
});
|
|
180
|
-
// Format relationships
|
|
181
|
-
const formattedRels = relationships?.map((el) => `(:${el.start})-[:${el.type}]->(:${el.end})`);
|
|
182
|
-
// Combine all formatted elements into a single string
|
|
183
|
-
this.schema = [
|
|
184
|
-
"Node properties are the following:",
|
|
185
|
-
formattedNodeProps?.join(", "),
|
|
186
|
-
"Relationship properties are the following:",
|
|
187
|
-
formattedRelProps?.join(", "),
|
|
188
|
-
"The relationships are the following:",
|
|
189
|
-
formattedRels?.join(", "),
|
|
190
|
-
].join("\n");
|
|
191
|
-
}
|
|
192
|
-
async close() {
|
|
193
|
-
await this.driver.close();
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
exports.Neo4jGraph = Neo4jGraph;
|
|
197
|
-
function toObjects(records) {
|
|
198
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
199
|
-
const recordValues = records.map((record) => {
|
|
200
|
-
const rObj = record.toObject();
|
|
201
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
202
|
-
const out = {};
|
|
203
|
-
Object.keys(rObj).forEach((key) => {
|
|
204
|
-
out[key] = itemIntToString(rObj[key]);
|
|
205
|
-
});
|
|
206
|
-
return out;
|
|
207
|
-
});
|
|
208
|
-
return recordValues;
|
|
209
|
-
}
|
|
210
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
211
|
-
function itemIntToString(item) {
|
|
212
|
-
if (neo4j_driver_1.default.isInt(item))
|
|
213
|
-
return item.toString();
|
|
214
|
-
if (Array.isArray(item))
|
|
215
|
-
return item.map((ii) => itemIntToString(ii));
|
|
216
|
-
if (["number", "string", "boolean"].indexOf(typeof item) !== -1)
|
|
217
|
-
return item;
|
|
218
|
-
if (item === null)
|
|
219
|
-
return item;
|
|
220
|
-
if (typeof item === "object")
|
|
221
|
-
return objIntToString(item);
|
|
222
|
-
}
|
|
223
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
224
|
-
function objIntToString(obj) {
|
|
225
|
-
const entry = extractFromNeoObjects(obj);
|
|
226
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
227
|
-
let newObj = null;
|
|
228
|
-
if (Array.isArray(entry)) {
|
|
229
|
-
newObj = entry.map((item) => itemIntToString(item));
|
|
230
|
-
}
|
|
231
|
-
else if (entry !== null && typeof entry === "object") {
|
|
232
|
-
newObj = {};
|
|
233
|
-
Object.keys(entry).forEach((key) => {
|
|
234
|
-
newObj[key] = itemIntToString(entry[key]);
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
return newObj;
|
|
238
|
-
}
|
|
239
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
240
|
-
function extractFromNeoObjects(obj) {
|
|
241
|
-
if (
|
|
242
|
-
// eslint-disable-next-line
|
|
243
|
-
obj instanceof neo4j_driver_1.default.types.Node ||
|
|
244
|
-
// eslint-disable-next-line
|
|
245
|
-
obj instanceof neo4j_driver_1.default.types.Relationship) {
|
|
246
|
-
return obj.properties;
|
|
247
|
-
// eslint-disable-next-line
|
|
248
|
-
}
|
|
249
|
-
else if (obj instanceof neo4j_driver_1.default.types.Path) {
|
|
250
|
-
// eslint-disable-next-line
|
|
251
|
-
return [].concat.apply([], extractPathForRows(obj));
|
|
252
|
-
}
|
|
253
|
-
return obj;
|
|
254
|
-
}
|
|
255
|
-
const extractPathForRows = (path) => {
|
|
256
|
-
let { segments } = path;
|
|
257
|
-
// Zero length path. No relationship, end === start
|
|
258
|
-
if (!Array.isArray(path.segments) || path.segments.length < 1) {
|
|
259
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
260
|
-
segments = [{ ...path, end: null }];
|
|
261
|
-
}
|
|
262
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
263
|
-
return segments.map((segment) => [
|
|
264
|
-
objIntToString(segment.start),
|
|
265
|
-
objIntToString(segment.relationship),
|
|
266
|
-
objIntToString(segment.end),
|
|
267
|
-
].filter((part) => part !== null));
|
|
268
|
-
};
|
|
17
|
+
__exportStar(require("@langchain/community/graphs/neo4j_graph"), exports);
|
|
@@ -1,63 +1 @@
|
|
|
1
|
-
|
|
2
|
-
url: string;
|
|
3
|
-
username: string;
|
|
4
|
-
password: string;
|
|
5
|
-
database?: string;
|
|
6
|
-
}
|
|
7
|
-
interface StructuredSchema {
|
|
8
|
-
nodeProps: {
|
|
9
|
-
[key: NodeType["labels"]]: NodeType["properties"];
|
|
10
|
-
};
|
|
11
|
-
relProps: {
|
|
12
|
-
[key: RelType["type"]]: RelType["properties"];
|
|
13
|
-
};
|
|
14
|
-
relationships: PathType[];
|
|
15
|
-
}
|
|
16
|
-
type NodeType = {
|
|
17
|
-
labels: string;
|
|
18
|
-
properties: {
|
|
19
|
-
property: string;
|
|
20
|
-
type: string;
|
|
21
|
-
}[];
|
|
22
|
-
};
|
|
23
|
-
type RelType = {
|
|
24
|
-
type: string;
|
|
25
|
-
properties: {
|
|
26
|
-
property: string;
|
|
27
|
-
type: string;
|
|
28
|
-
}[];
|
|
29
|
-
};
|
|
30
|
-
type PathType = {
|
|
31
|
-
start: string;
|
|
32
|
-
type: string;
|
|
33
|
-
end: string;
|
|
34
|
-
};
|
|
35
|
-
/**
|
|
36
|
-
* @security *Security note*: Make sure that the database connection uses credentials
|
|
37
|
-
* that are narrowly-scoped to only include necessary permissions.
|
|
38
|
-
* Failure to do so may result in data corruption or loss, since the calling
|
|
39
|
-
* code may attempt commands that would result in deletion, mutation
|
|
40
|
-
* of data if appropriately prompted or reading sensitive data if such
|
|
41
|
-
* data is present in the database.
|
|
42
|
-
* The best way to guard against such negative outcomes is to (as appropriate)
|
|
43
|
-
* limit the permissions granted to the credentials used with this tool.
|
|
44
|
-
* For example, creating read only users for the database is a good way to
|
|
45
|
-
* ensure that the calling code cannot mutate or delete data.
|
|
46
|
-
*
|
|
47
|
-
* @link See https://js.langchain.com/docs/security for more information.
|
|
48
|
-
*/
|
|
49
|
-
export declare class Neo4jGraph {
|
|
50
|
-
private driver;
|
|
51
|
-
private database;
|
|
52
|
-
private schema;
|
|
53
|
-
private structuredSchema;
|
|
54
|
-
constructor({ url, username, password, database, }: Neo4jGraphConfig);
|
|
55
|
-
static initialize(config: Neo4jGraphConfig): Promise<Neo4jGraph>;
|
|
56
|
-
getSchema(): string;
|
|
57
|
-
getStructuredSchema(): StructuredSchema;
|
|
58
|
-
query(query: string, params?: any): Promise<any[] | undefined>;
|
|
59
|
-
verifyConnectivity(): Promise<void>;
|
|
60
|
-
refreshSchema(): Promise<void>;
|
|
61
|
-
close(): Promise<void>;
|
|
62
|
-
}
|
|
63
|
-
export {};
|
|
1
|
+
export * from "@langchain/community/graphs/neo4j_graph";
|