Metadata-Version: 2.4
Name: lfx-bundles
Version: 1.0.0
Summary: Langflow's long-tail provider bundles as a single manifest-less metapackage (the langchain-community model).
Project-URL: Homepage, https://github.com/langflow-ai/langflow
Project-URL: Documentation, https://docs.langflow.org/extensions
Project-URL: Repository, https://github.com/langflow-ai/langflow
Author-email: Langflow <contact@langflow.org>
License: MIT
Keywords: bundle,extension,langflow,lfx,providers
Requires-Python: <3.15,>=3.10
Requires-Dist: lfx<2.0.0,>=1.11.0.dev0
Provides-Extra: agentql
Provides-Extra: aiml
Requires-Dist: langchain-openai>=1.1.6; extra == 'aiml'
Requires-Dist: openai<3.0.0,>=1.68.2; extra == 'aiml'
Provides-Extra: all
Requires-Dist: agent-lifecycle-toolkit<1.0,>=0.10.1; (sys_platform != 'darwin' or platform_machine != 'x86_64') and extra == 'all'
Requires-Dist: apify-client>=1.8.1; extra == 'all'
Requires-Dist: assemblyai<1.0.0,>=0.33.0; extra == 'all'
Requires-Dist: atlassian-python-api==3.41.16; extra == 'all'
Requires-Dist: chromadb<2.0.0,>=1.0.0; extra == 'all'
Requires-Dist: cleanlab-tlm<2.0.0,>=1.1.2; extra == 'all'
Requires-Dist: clickhouse-connect==0.7.19; extra == 'all'
Requires-Dist: composio-langchain==0.9.2; extra == 'all'
Requires-Dist: composio==0.9.2; extra == 'all'
Requires-Dist: couchbase>=4.2.1; extra == 'all'
Requires-Dist: cuga<0.3.0,>=0.2.20; (sys_platform != 'darwin' and python_version < '3.14') and extra == 'all'
Requires-Dist: cuga<0.3.0,>=0.2.20; (sys_platform == 'darwin' and platform_machine == 'arm64' and python_version < '3.14') and extra == 'all'
Requires-Dist: elasticsearch~=8.19; extra == 'all'
Requires-Dist: faiss-cpu==1.9.0.post1; (python_version < '3.14') and extra == 'all'
Requires-Dist: faiss-cpu>=1.13.2; (python_version >= '3.14') and extra == 'all'
Requires-Dist: gassist>=0.0.1; (sys_platform == 'win32') and extra == 'all'
Requires-Dist: gitpython>=3.1.50; extra == 'all'
Requires-Dist: google-api-python-client~=2.161; extra == 'all'
Requires-Dist: google-search-results<3.0.0,>=2.4.1; extra == 'all'
Requires-Dist: huggingface-hub[inference]<2.0.0,>=1.0.0; extra == 'all'
Requires-Dist: jigsawstack==0.2.7; extra == 'all'
Requires-Dist: langchain-chroma~=0.2.6; extra == 'all'
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'all'
Requires-Dist: langchain-elasticsearch~=1.0.0; extra == 'all'
Requires-Dist: langchain-google-community~=3.0.2; extra == 'all'
Requires-Dist: langchain-google-genai~=4.1.2; extra == 'all'
Requires-Dist: langchain-google-vertexai>=3.2.0; extra == 'all'
Requires-Dist: langchain-groq~=1.1.1; extra == 'all'
Requires-Dist: langchain-huggingface~=1.2.0; (sys_platform != 'darwin' or platform_machine != 'x86_64') and extra == 'all'
Requires-Dist: langchain-milvus~=0.3.2; extra == 'all'
Requires-Dist: langchain-mistralai~=1.1.1; extra == 'all'
Requires-Dist: langchain-mongodb>=0.11.0; extra == 'all'
Requires-Dist: langchain-nvidia-ai-endpoints~=1.0.0; extra == 'all'
Requires-Dist: langchain-ollama~=0.3.10; extra == 'all'
Requires-Dist: langchain-openai>=1.1.6; extra == 'all'
Requires-Dist: langchain-perplexity<2.0.0,>=1.0.0; extra == 'all'
Requires-Dist: langchain-pinecone~=0.2.13; (python_version < '3.14') and extra == 'all'
Requires-Dist: langchain-qdrant<2.0.0,>=1.0.0; extra == 'all'
Requires-Dist: langchain-sambanova~=1.0.0; extra == 'all'
Requires-Dist: langchain-unstructured~=1.0.0; extra == 'all'
Requires-Dist: langchain-weaviate>=0.0.6; extra == 'all'
Requires-Dist: markdown>=3.8.0; extra == 'all'
Requires-Dist: mem0ai<3.0.0,>=2.0.2; extra == 'all'
Requires-Dist: metaphor-python==0.1.23; extra == 'all'
Requires-Dist: needle-python>=0.4.0; extra == 'all'
Requires-Dist: nv-ingest-client<27.0.0,>=26.1.0; (python_version >= '3.12') and extra == 'all'
Requires-Dist: openai<3.0.0,>=1.68.2; extra == 'all'
Requires-Dist: opendsstar==1.0.26; (python_version >= '3.11' and python_version < '3.14' and (sys_platform != 'darwin' or platform_machine != 'x86_64')) and extra == 'all'
Requires-Dist: opensearch-py==2.8.0; extra == 'all'
Requires-Dist: pgvector>=0.4.2; extra == 'all'
Requires-Dist: pymongo>=4.10.1; extra == 'all'
Requires-Dist: pytube==15.0.0; extra == 'all'
Requires-Dist: qdrant-client<2.0.0,>=1.12.0; extra == 'all'
Requires-Dist: qianfan==0.3.5; extra == 'all'
Requires-Dist: redis<8.0.0,>=7.4.0; extra == 'all'
Requires-Dist: requests>=2.32.0; extra == 'all'
Requires-Dist: scrapegraph-py>=1.12.0; extra == 'all'
Requires-Dist: smolagents>=1.8.0; extra == 'all'
Requires-Dist: spider-client<1.0.0,>=0.0.27; extra == 'all'
Requires-Dist: supabase<3.0.0,>=2.6.0; extra == 'all'
Requires-Dist: twelvelabs<1.0.0,>=0.4.7; extra == 'all'
Requires-Dist: upstash-vector==0.6.0; extra == 'all'
Requires-Dist: vlmrun[all]>=0.2.0; extra == 'all'
Requires-Dist: weaviate-client<5.0.0,>=4.10.2; extra == 'all'
Requires-Dist: wikipedia==1.4.0; extra == 'all'
Requires-Dist: wolframalpha==5.1.3; extra == 'all'
Requires-Dist: yfinance==0.2.50; extra == 'all'
Requires-Dist: youtube-transcript-api<2.0.0,>=1.0.0; extra == 'all'
Requires-Dist: zep-python==2.0.2; extra == 'all'
Provides-Extra: altk
Requires-Dist: agent-lifecycle-toolkit<1.0,>=0.10.1; (sys_platform != 'darwin' or platform_machine != 'x86_64') and extra == 'altk'
Provides-Extra: apify
Requires-Dist: apify-client>=1.8.1; extra == 'apify'
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'apify'
Provides-Extra: assemblyai
Requires-Dist: assemblyai<1.0.0,>=0.33.0; extra == 'assemblyai'
Provides-Extra: azure
Requires-Dist: langchain-openai>=1.1.6; extra == 'azure'
Provides-Extra: baidu
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'baidu'
Requires-Dist: qianfan==0.3.5; extra == 'baidu'
Provides-Extra: bing
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'bing'
Provides-Extra: chroma
Requires-Dist: chromadb<2.0.0,>=1.0.0; extra == 'chroma'
Requires-Dist: langchain-chroma~=0.2.6; extra == 'chroma'
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'chroma'
Provides-Extra: cleanlab
Requires-Dist: cleanlab-tlm<2.0.0,>=1.1.2; extra == 'cleanlab'
Provides-Extra: clickhouse
Requires-Dist: clickhouse-connect==0.7.19; extra == 'clickhouse'
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'clickhouse'
Provides-Extra: cloudflare
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'cloudflare'
Provides-Extra: codeagents
Requires-Dist: opendsstar==1.0.26; (python_version >= '3.11' and python_version < '3.14' and (sys_platform != 'darwin' or platform_machine != 'x86_64')) and extra == 'codeagents'
Requires-Dist: smolagents>=1.8.0; extra == 'codeagents'
Provides-Extra: cometapi
Requires-Dist: langchain-openai>=1.1.6; extra == 'cometapi'
Requires-Dist: requests>=2.32.0; extra == 'cometapi'
Provides-Extra: composio
Requires-Dist: composio-langchain==0.9.2; extra == 'composio'
Requires-Dist: composio==0.9.2; extra == 'composio'
Provides-Extra: confluence
Requires-Dist: atlassian-python-api==3.41.16; extra == 'confluence'
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'confluence'
Provides-Extra: couchbase
Requires-Dist: couchbase>=4.2.1; extra == 'couchbase'
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'couchbase'
Provides-Extra: cuga
Requires-Dist: cuga<0.3.0,>=0.2.20; (sys_platform != 'darwin' and python_version < '3.14') and extra == 'cuga'
Requires-Dist: cuga<0.3.0,>=0.2.20; (sys_platform == 'darwin' and platform_machine == 'arm64' and python_version < '3.14') and extra == 'cuga'
Provides-Extra: deepseek
Requires-Dist: langchain-openai>=1.1.6; extra == 'deepseek'
Requires-Dist: openai<3.0.0,>=1.68.2; extra == 'deepseek'
Requires-Dist: requests>=2.32.0; extra == 'deepseek'
Provides-Extra: elastic
Requires-Dist: elasticsearch~=8.19; extra == 'elastic'
Requires-Dist: langchain-elasticsearch~=1.0.0; extra == 'elastic'
Requires-Dist: opensearch-py==2.8.0; extra == 'elastic'
Provides-Extra: exa
Requires-Dist: metaphor-python==0.1.23; extra == 'exa'
Provides-Extra: faiss
Requires-Dist: faiss-cpu==1.9.0.post1; (python_version < '3.14') and extra == 'faiss'
Requires-Dist: faiss-cpu>=1.13.2; (python_version >= '3.14') and extra == 'faiss'
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'faiss'
Provides-Extra: git
Requires-Dist: gitpython>=3.1.50; extra == 'git'
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'git'
Provides-Extra: glean
Provides-Extra: google
Requires-Dist: google-api-python-client~=2.161; extra == 'google'
Requires-Dist: langchain-google-community~=3.0.2; extra == 'google'
Requires-Dist: langchain-google-genai~=4.1.2; extra == 'google'
Provides-Extra: groq
Requires-Dist: langchain-groq~=1.1.1; extra == 'groq'
Provides-Extra: homeassistant
Requires-Dist: requests>=2.32.0; extra == 'homeassistant'
Provides-Extra: huggingface
Requires-Dist: huggingface-hub[inference]<2.0.0,>=1.0.0; extra == 'huggingface'
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'huggingface'
Requires-Dist: langchain-huggingface~=1.2.0; (sys_platform != 'darwin' or platform_machine != 'x86_64') and extra == 'huggingface'
Provides-Extra: icosacomputing
Requires-Dist: requests>=2.32.0; extra == 'icosacomputing'
Provides-Extra: jigsawstack
Requires-Dist: jigsawstack==0.2.7; extra == 'jigsawstack'
Provides-Extra: langwatch
Provides-Extra: litellm
Requires-Dist: langchain-openai>=1.1.6; extra == 'litellm'
Requires-Dist: openai<3.0.0,>=1.68.2; extra == 'litellm'
Provides-Extra: lmstudio
Requires-Dist: langchain-nvidia-ai-endpoints~=1.0.0; extra == 'lmstudio'
Requires-Dist: langchain-openai>=1.1.6; extra == 'lmstudio'
Requires-Dist: openai<3.0.0,>=1.68.2; extra == 'lmstudio'
Provides-Extra: maritalk
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'maritalk'
Provides-Extra: mem0
Requires-Dist: mem0ai<3.0.0,>=2.0.2; extra == 'mem0'
Provides-Extra: milvus
Requires-Dist: langchain-milvus~=0.3.2; extra == 'milvus'
Provides-Extra: mistral
Requires-Dist: langchain-mistralai~=1.1.1; extra == 'mistral'
Provides-Extra: mongodb
Requires-Dist: langchain-mongodb>=0.11.0; extra == 'mongodb'
Requires-Dist: pymongo>=4.10.1; extra == 'mongodb'
Provides-Extra: needle
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'needle'
Requires-Dist: needle-python>=0.4.0; extra == 'needle'
Provides-Extra: notdiamond
Provides-Extra: notion
Requires-Dist: markdown>=3.8.0; extra == 'notion'
Requires-Dist: requests>=2.32.0; extra == 'notion'
Provides-Extra: novita
Requires-Dist: langchain-openai>=1.1.6; extra == 'novita'
Requires-Dist: requests>=2.32.0; extra == 'novita'
Provides-Extra: nvidia
Requires-Dist: gassist>=0.0.1; (sys_platform == 'win32') and extra == 'nvidia'
Requires-Dist: langchain-nvidia-ai-endpoints~=1.0.0; extra == 'nvidia'
Requires-Dist: nv-ingest-client<27.0.0,>=26.1.0; (python_version >= '3.12') and extra == 'nvidia'
Provides-Extra: olivya
Provides-Extra: ollama
Requires-Dist: langchain-ollama~=0.3.10; extra == 'ollama'
Provides-Extra: openrouter
Requires-Dist: langchain-openai>=1.1.6; extra == 'openrouter'
Provides-Extra: perplexity
Requires-Dist: langchain-perplexity<2.0.0,>=1.0.0; extra == 'perplexity'
Provides-Extra: pgvector
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'pgvector'
Requires-Dist: pgvector>=0.4.2; extra == 'pgvector'
Provides-Extra: pinecone
Requires-Dist: langchain-pinecone~=0.2.13; (python_version < '3.14') and extra == 'pinecone'
Provides-Extra: qdrant
Requires-Dist: langchain-qdrant<2.0.0,>=1.0.0; extra == 'qdrant'
Requires-Dist: qdrant-client<2.0.0,>=1.12.0; extra == 'qdrant'
Provides-Extra: redis
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'redis'
Requires-Dist: redis<8.0.0,>=7.4.0; extra == 'redis'
Provides-Extra: sambanova
Requires-Dist: langchain-sambanova~=1.0.0; extra == 'sambanova'
Provides-Extra: scrapegraph
Requires-Dist: scrapegraph-py>=1.12.0; extra == 'scrapegraph'
Provides-Extra: searchapi
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'searchapi'
Provides-Extra: serpapi
Requires-Dist: google-search-results<3.0.0,>=2.4.1; extra == 'serpapi'
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'serpapi'
Provides-Extra: spider
Requires-Dist: spider-client<1.0.0,>=0.0.27; extra == 'spider'
Provides-Extra: supabase
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'supabase'
Requires-Dist: supabase<3.0.0,>=2.6.0; extra == 'supabase'
Provides-Extra: tavily
Provides-Extra: twelvelabs
Requires-Dist: twelvelabs<1.0.0,>=0.4.7; extra == 'twelvelabs'
Provides-Extra: unstructured
Requires-Dist: langchain-unstructured~=1.0.0; extra == 'unstructured'
Provides-Extra: upstash
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'upstash'
Requires-Dist: upstash-vector==0.6.0; extra == 'upstash'
Provides-Extra: vectara
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'vectara'
Provides-Extra: vertexai
Requires-Dist: langchain-google-vertexai>=3.2.0; extra == 'vertexai'
Provides-Extra: vllm
Requires-Dist: langchain-openai>=1.1.6; extra == 'vllm'
Requires-Dist: openai<3.0.0,>=1.68.2; extra == 'vllm'
Provides-Extra: vlmrun
Requires-Dist: vlmrun[all]>=0.2.0; extra == 'vlmrun'
Provides-Extra: weaviate
Requires-Dist: langchain-weaviate>=0.0.6; extra == 'weaviate'
Requires-Dist: weaviate-client<5.0.0,>=4.10.2; extra == 'weaviate'
Provides-Extra: wikipedia
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'wikipedia'
Requires-Dist: wikipedia==1.4.0; extra == 'wikipedia'
Provides-Extra: wolframalpha
Requires-Dist: langchain-community<1.0.0,>=0.4.1; extra == 'wolframalpha'
Requires-Dist: wolframalpha==5.1.3; extra == 'wolframalpha'
Provides-Extra: xai
Requires-Dist: langchain-openai>=1.1.6; extra == 'xai'
Requires-Dist: openai<3.0.0,>=1.68.2; extra == 'xai'
Requires-Dist: requests>=2.32.0; extra == 'xai'
Provides-Extra: yahoosearch
Requires-Dist: yfinance==0.2.50; extra == 'yahoosearch'
Provides-Extra: youtube
Requires-Dist: google-api-python-client~=2.161; extra == 'youtube'
Requires-Dist: pytube==15.0.0; extra == 'youtube'
Requires-Dist: youtube-transcript-api<2.0.0,>=1.0.0; extra == 'youtube'
Provides-Extra: zep
Requires-Dist: zep-python==2.0.2; extra == 'zep'
Description-Content-Type: text/markdown

# lfx-bundles

The long tail of Langflow's provider components as a **single manifest-less
metapackage**, modeled on `langchain-community`. This is the destination for
every vendor/third-party provider that does not warrant its own standalone
distribution; the curated partner providers (OpenAI, Anthropic, AWS,
DataStax, Cohere) ship as separate `lfx-<provider>` packages instead.

## How it works

`lfx-bundles` declares the `lfx.bundles` entry point:

```toml
[project.entry-points."lfx.bundles"]
lfx_bundles = "lfx_bundles"
```

At startup, lfx resolves this package and **folder-walks its immediate
subdirectories**. Each subdirectory is one bundle, registered at the
`@official` slot under its directory name — no `extension.json`, no per-provider
manifest. Adding a provider is just adding a folder.

```
src/lfx_bundles/
├── __init__.py        # bare namespace marker
├── <provider>/        # one bundle, e.g. tavily/, pinecone/, ...
│   └── *.py           # Component subclasses
└── ...
```

A component's identity is its **bundle name** (`ext:<provider>:<Class>@official`),
which is stable whether the provider ships here or graduates to a standalone
`lfx-<provider>` package. Because a manifest-shipping package always shadows the
manifest-less metapackage, a provider can graduate with **no lockstep release**.

## Installing

```bash
pip install langflow                   # everything (langflow pins lfx-bundles[all])
pip install lfx                        # engine only, no bundles
pip install "lfx[bundles]"             # engine + this metapackage (deployment footnote)
pip install "lfx-bundles[<provider>]"  # one provider's code + that provider's SDK deps
```

`lfx-bundles` itself depends only on `lfx`. Each provider's third-party SDKs are
**optional extras** (PEP 685-normalized keys, e.g. `lfx-bundles[google]`); the
generated `all` extra pulls every provider's deps and is what `langflow` depends
on, so `pip install langflow` is unchanged.

## Adding a provider

Providers are moved here by `scripts/migrate/consolidate_bundles.py`, which also
maintains the per-provider extras and the generated `all` aggregate. **Do not**
hand-edit the extras block in `pyproject.toml`. Provider folder names must be
lowercase snake_case (`a-z`, `0-9`, `_`, 2–64 chars).
