Commit Graph
82 Commits
Author SHA1 Message Date
zeekay a270a374f0 refactor(rebrand): unify hanzoflow -> hanzo-flow (pkg) / flow (module,cmd) / FLOW_ (env)
Cleaned the concurrent session's half-rebrand inconsistency (166 files):
- pip/pypi refs hanzoflow -> hanzo-flow (matches hanzo-flow-base/sdk)
- module paths/commands/devcontainer hanzoflow -> flow (the import name + CLI)
- env vars HANZOFLOW_ -> FLOW_ (was inconsistent with the LANGFLOW_->FLOW_ sweep)
- fixed a stale src/backend/base/hanzoflow/ path that didn't exist
- product display HanzoFlow -> 'Hanzo Flow' in docs; kept HanzoFlow only as a
  code identifier where a space is illegal

Canonical: pip install hanzo-flow / import flow / `flow` CLI. compileall clean.
2026-07-16 10:26:22 -07:00
zeekay 168078735f docs(license): restore upstream MIT attribution in NOTICE, drop redundant README credit
The rebrand sweep had corrupted NOTICE — it read 'Copyright (c) 2024 Hanzo Flow'
where MIT requires the ORIGINAL upstream notice. Restored the exact upstream line
(Copyright (c) 2024 Langflow, verified against langflow-ai/langflow LICENSE) plus
the full MIT permission text, so the legal requirement (retain the original
copyright + permission notice in the distribution) is satisfied in the file where
it belongs — NOTICE.

With NOTICE correct, the README 'Forked from' line is redundant courtesy, not a
legal requirement, and is removed per direction. Attribution lives where it's
actually needed (NOTICE), not the marketing README.
2026-07-16 10:23:19 -07:00
zeekay 94741a8363 refactor(rebrand): sweep the remaining langflow — env vars, identifiers, stragglers
Completes the rebrand per direction: LANGFLOW_/LANGFLOW -> FLOW_/FLOW (env vars,
headers), langflow_ -> flow_ (settings fields, local vars), camelCase identifiers
(LangflowClient/Logo/HTTPError, builtWithLangflow, getLangflowDesktop) -> Flow*,
and all remaining bare tokens. Fixed the identifier-space hazard (Langflow ->
'Hanzo Flow' is prose-only; in code it collapses to Flow so no identifier gains a
space). compileall of flow + lfx is clean.

Repo-wide langflow now = 4, all the protected MIT attribution to langflow-ai/
langflow in README (legally required; deliberately preserved).

Breaking (per no-backwards-compat / forward-perfection): the LANGFLOW_* env-var
prefix is now FLOW_* — deployments must update their env. CI's uv + frontend
build is the runtime gate.
2026-07-16 10:18:53 -07:00
zeekay d650dd60f0 refactor(rebrand): langflow->flow across docs, starter-project data, CI, tests
Docs corpus (Langflow->Hanzo Flow, upstream URLs langflow-ai/langflow->hanzoai/
flow, docs.langflow.org->docs.hanzo.ai), starter-project template help-URLs, CI
workflows, and test files. Remaining 'langflow' repo-wide is now dominated by
LANGFLOW_* env-var names + langflow_ settings fields — the config-boundary layer
deliberately preserved pending a coordinated FLOW_/HANZO_ alias-with-fallback
(renaming them blind breaks every deployment).
2026-07-16 10:00:51 -07:00
zeekay 2a4dc61353 refactor(rebrand): langflow->flow package names + product strings (app code)
Stage 2 of the rebrand, on top of the module migration:
- Workspace distribution names langflow-base/langflow-sdk -> hanzo-flow-base/
  hanzo-flow-sdk across all pyproject.toml (matches root hanzo-flow).
- App-code product strings: "Langflow" -> "Hanzo Flow", bare "langflow" -> "flow"
  across src/backend/base/flow + src/lfx/src (207 files) — MCP server names,
  docstrings, user-facing labels.

compileall of the flow package + lfx parses clean.

DELIBERATELY NOT swept (the delicate config-boundary layer — needs the running
app + a compat decision, not a blind sed):
- LANGFLOW_* env vars (LANGFLOW_DATABASE_URL, LANGFLOW_SERVER_URL,
  LANGFLOW_SSRF_PROTECTION_ENABLED, ...) — renaming breaks every deployment's
  config; needs a FLOW_/HANZO_ alias with fallback, coordinated with deploy env.
- pydantic settings fields that map to those env vars.
- internal identifiers (LangflowHTTPError, *_langflow_connections_binding) — safe
  to global-rename but want the uv suite green to confirm no reference is missed.
2026-07-16 10:00:50 -07:00
zeekay 88e4947893 refactor(rebrand): finish langflow->flow module rebrand — migrate unique code, repoint all imports
The concurrent rebrand left src/backend/base/langflow alive with 34 UNIQUE
unmigrated files (a flow_events service, the WatsonX-Orchestrate deployment
adapter, the flow_version_deployment_attachment DB model + tests) that flow/
never received, plus 152 files still importing `langflow` and 137 more with
`langflow.<mod>` string module paths (import_module/monkeypatch targets).

- Migrated all 34 unique files langflow/ -> flow/ at matching paths (dropped
  langflow/api/v1/__init__.py, superseded by flow/'s).
- Deleted the emptied src/backend/base/langflow package.
- Repointed every `from langflow`/`import langflow` (152 files) and every
  `langflow.<mod>` string path (137 files) to `flow`.

Verify: 0 `from/import langflow` and 0 `langflow.` module refs remain in *.py;
compileall of src/backend/base/flow + src/lfx/src parses clean. Runtime import
resolution + the uv test suite is the CI gate (the module tree is now internally
consistent: every moved model/service resolves under flow/).

Remaining (follow-on commits): runtime identifier strings (MCP server names),
the langflow-base/langflow-sdk distribution names, and the docs corpus.
2026-07-16 10:00:50 -07:00
zeekay 2a497d56d9 docs(readme): credit upstream fork langflow-ai/langflow 2026-07-16 09:18:41 -07:00
zeekay 30ed03549f feat(core): the flow step/port contract — ONE parametric step-DAG engine
The seam the whole platform composes on. A stdlib-only Go module (core/) that
holds zero domain knowledge and is what every node-pack and execution backend
plugs into. flow is curried over two parameters:

  Value type — what travels on an edge (Message / Tensor / connector I/O). The
               engine never inspects it; a Step interprets it per its domain.
  Mode       — execution locality/durability (InProcess | GPUResident | Durable),
               a PARAMETER not baked in: media flows keep latents pinned in VRAM
               and serialize nothing; automations checkpoint every step on the
               durable backend. Same scheduler, different Backend.

So every product is flow applied:
  studio      = Run(GPUResident, graph-of-Tensor-steps)   // comfy nodes
  automations = Run(Durable,     graph-of-ConnectorIO)     // triggers -> actions
  llmFlow     = Run(InProcess,   graph-of-Message-steps)   // langflow (lfx) nodes

Contract: Value (opaque, typed by PortType), Port/Step (typed in/out ports + Run),
Graph (Add/Wire/Validate — port typecheck + acyclicity), Mode + Backend (the
locality/durability seam), and Scheduler (the ONE topology walk, curried over
value-domain and Mode). Ships with the reference InProcess backend; GPUResident
(studio VRAM) and Durable (auto/tasks activities) register the same way.

Tests prove it: a domain-agnostic 2-step pipeline runs in order, port type
mismatch is rejected at wire time, AnyType bypasses, cycles are caught by
Validate, and Mode selects the backend over an identical scheduler walk.

Next: studio and langflow delete their private executors and become node-packs
on this scheduler; auto's tasks engine registers as the Durable backend.
2026-07-16 00:50:35 -07:00
zeekay 38c8231a68 chore: bump version to 1.8.2 (alembic boot fix) 2026-06-28 23:15:38 -07:00
zeekay e8a54941a7 fix(alembic): resolve duplicate revision id + finish langflow->flow rebrand in migrations
Two boot blockers prevented flow from starting (deploy parked at replicas:0):

1. Duplicate revision id: both the Hanzo-local add_org_id_to_user migration and
   the upstream convert_provider_key_and_deployment migration declared
   revision='a1b2c3d4e5f6'. Alembic cannot build a history graph with a duplicate
   id. Upstream legitimately owns a1b2c3d4e5f6 (chained to head d306e5c17c41), so
   the Hanzo migration is re-id'd to 9f2e7b14c0aa and re-parented onto the current
   head; its body is made idempotent (guards column/index) so re-runs are safe.

2. Incomplete rebrand: 4 upstream migrations imported 'from langflow.utils import
   migration' (+ langflow.services.auth.utils). The langflow shim is an empty
   namespace package, so these raised ModuleNotFoundError at alembic load time.
   Switched to 'from flow.*' (flow.utils.migration / flow.services.auth.utils both
   exist), matching every other migration in the tree.

Validated: alembic ScriptDirectory now loads a single clean head (9f2e7b14c0aa)
across the full 70-revision chain.
2026-06-28 23:12:56 -07:00
zeekay f5d2c6c057 chore: restore upstream attribution + NOTICE (OSS compliance) 2026-06-21 07:42:09 -07:00
zeekayandGitHub 44e58662a4 Merge pull request #17 from hanzoai/dependabot/github_actions/actions/download-artifact-8
build(deps):(deps): bump actions/download-artifact from 4 to 8
2026-06-04 01:32:25 -07:00
zeekayandGitHub d75ef799e8 Merge pull request #19 from hanzoai/dependabot/github_actions/mikepenz/action-junit-report-6
build(deps):(deps): bump mikepenz/action-junit-report from 5 to 6
2026-06-04 01:32:19 -07:00
zeekayandGitHub 3fa7f1d4a3 Merge pull request #15 from hanzoai/dependabot/github_actions/actions/checkout-6
build(deps):(deps): bump actions/checkout from 5 to 6
2026-06-03 13:16:27 -07:00
zeekayandGitHub 472e99a7d1 Merge pull request #16 from hanzoai/dependabot/github_actions/actions/upload-pages-artifact-4
build(deps):(deps): bump actions/upload-pages-artifact from 3 to 4
2026-06-03 13:16:23 -07:00
zeekay 488de4eb05 merge: upstream/main (sync, brand preserved)
# Conflicts:
#	.github/workflows/docs-update-openapi.yml
#	AGENTS.md
#	AGENTS.md~upstream_main
#	CLAUDE.md
#	CLAUDE.md~upstream_main
#	docker_example/docker-compose.yml
#	src/backend/base/flow/agentic/flows/TranslationFlow.json
#	src/backend/base/flow/agentic/flows/langflow_assistant.py
#	src/backend/base/flow/agentic/helpers/code_security.py
#	src/backend/base/flow/agentic/helpers/input_sanitization.py
#	src/backend/base/flow/agentic/helpers/streaming_retry.py
#	src/backend/base/flow/alembic/versions/8255e9fc18d9_add_name_to_deployment_provider_account.py
#	src/backend/base/flow/alembic/versions/a1b2c3d4e5f6_convert_provider_key_and_deployment_.py
#	src/backend/base/flow/alembic/versions/c0d2ce43b315_add_flow_version_deployment_attachment_.py
#	src/backend/base/flow/alembic/versions/d306e5c17c41_add_api_key_hash_column_to_apikey_table.py
#	src/backend/base/flow/alembic/versions/ef4b036b585d_add_session_metadata_column_to_message_.py
#	src/backend/base/flow/api/utils/flow_utils.py
#	src/backend/base/flow/api/utils/zip_utils.py
#	src/backend/base/flow/api/v1/flow_events.py
#	src/backend/base/flow/api/v1/flows_helpers.py
#	src/backend/base/flow/api/v1/mappers/__init__.py
#	src/backend/base/flow/api/v1/mappers/deployments/RULES.md
#	src/backend/base/flow/api/v1/mappers/deployments/__init__.py
#	src/backend/base/flow/api/v1/mappers/deployments/base.py
#	src/backend/base/flow/api/v1/mappers/deployments/contracts.py
#	src/backend/base/flow/api/v1/mappers/deployments/helpers.py
#	src/backend/base/flow/api/v1/mappers/deployments/registry.py
#	src/backend/base/flow/api/v1/mappers/deployments/sync.py
#	src/backend/base/flow/api/v1/mappers/deployments/watsonx_orchestrate/__init__.py
#	src/backend/base/flow/api/v1/mappers/deployments/watsonx_orchestrate/mapper.py
#	src/backend/base/flow/api/v1/mappers/deployments/watsonx_orchestrate/payloads.py
#	src/backend/base/flow/api/v1/projects_files.py
#	src/backend/base/flow/api/v1/projects_mcp_helpers.py
#	src/backend/base/flow/services/cache/disk.py
#	src/backend/base/flow/services/database/models/deployment/exceptions.py
#	src/backend/base/flow/services/database/models/deployment/guards.py
#	src/backend/base/flow/services/database/models/deployment/orm_guards.py
#	src/backend/base/flow/services/database/models/deployment_provider_account/schemas.py
#	src/backend/base/flow/services/database/models/deployment_provider_account/utils.py
#	src/backend/base/flow/services/tracing/span_sorting.py
#	src/backend/base/flow/tests/api/v1/test_deployment_guard_delete_endpoints.py
#	src/backend/base/flow/tests/services/database/models/deployment/test_deployment_guard_triggers.py
#	src/backend/base/flow/tests/services/database/models/deployment/test_exceptions.py
#	src/backend/base/flow/tests/services/database/models/deployment/test_guards.py
#	src/backend/base/flow/tests/services/database/models/deployment_provider_account/test_utils.py
#	src/backend/base/langflow/api/v1/__init__.py
#	src/backend/tests/unit/agentic/flows/test_langflow_assistant.py
#	src/frontend/Dockerfile
#	src/lfx/src/lfx/base/models/unified_models.py
2026-06-02 10:52:30 -07:00
zeekay 5147b0e7b2 merge: ci/canonical-docker-build-1776997064 2026-06-01 16:19:04 -07:00
zeekay dffd93dba4 merge: brand/hanzo-tokens 2026-06-01 16:19:04 -07:00
zeekay 930ffbc5c5 refactor: /v1/ canonical paths (sweep)
Per global rule: /v1/ only, never /api/. Internal API calls + handler
comments + route registrations updated. External vendor APIs (OpenRouter,
LangWatch, etc.) left as-is.

- Backend: APIRouter prefix dropped from "/api" — router_v1 (prefix=/v1)
  and router_v2 (prefix=/v2) now mount at the root, subdomain (api.*)
  already namespaces.
- API_V1_STR: "/api/v1" → "/v1"
- Frontend constants: BASE_URL_API "/api/v1/" → "/v1/" and BASE_URL_API_V2
  "/api/v2/" → "/v2/"; vite proxy + Traefik routing labels updated.
- Source files (mcp_utils, mcp_projects, mcp, folders, vertex_types,
  load/utils, mcp_sse, schema/workflow): all internal URL builders.
- Tests + e2e specs + API-code-generator templates + AWS CDK behaviors
  updated to match.
2026-05-18 21:58:07 -07:00
zeekay 9094a0ae9e docs(llm): explicit Upstream attribution line
LICENSE-attested or repo-attested upstream is now called out at the
top of LLM.md alongside the project description, so downstream
audits (universe/docs/PRODUCTS.md) can rely on a single canonical
location for the OSS lineage statement.
2026-05-18 21:35:42 -07:00
zeekay 6ca8d9010d ci: pin platforms to linux/amd64
arm64 paused — DOKS has no arm64 droplets, ARC scale set
hanzo-build-linux-arm64 is offline. Without this pin the build
queues for arm64 indefinitely and hits the 24h workflow timeout.
Mirrors hanzo/kms.
2026-05-15 12:13:30 -07:00
zeekay de4296d923 ci: add id-token: write to caller permissions
Required for hanzoai/.github/.github/workflows/docker-build.yml@main —
without it the workflow_call dies as startup_failure with no jobs
dispatched. Caller permissions are a CEILING.
2026-05-07 09:10:24 -07:00
zeekay a7e41684a7 brand: apply @hanzo/gui Hanzo dark tokens (preserve upstream-sync compat) 2026-04-27 02:57:41 -07:00
zeekayandGitHub f23448245f ci: migrate to canonical hanzoai/.github/docker-build.yml reusable (#24) 2026-04-23 19:24:31 -07:00
zeekay ab11b54e8e ci: migrate to canonical hanzoai/.github/docker-build.yml reusable 2026-04-23 19:18:05 -07:00
zeekay f976f386b4 chore: symlink AGENTS.md and CLAUDE.md to LLM.md
Canonical project context lives in LLM.md. Symlinks ensure
agentic coding tools (agent, Cursor, etc.) find context
automatically regardless of which filename they look for.
2026-04-01 14:11:59 -07:00
zeekay 85fc05fc8c Merge upstream/main: 117 commits (v1.8.1 features, security fixes, deployments API)
Major upstream changes merged:
- Flow version control (flow_version API + model + migrations)
- Deployments API surface (deployment/provider_account models, schemas, routes)
- Execution traces (trace/span tables, native tracer flow_id support)
- SSO plugin support with safe migration
- Knowledge base enhancements (job tracking, bulk operations)
- Security fixes: RCE prevention, NLTK CVE, ReDoS, axios upgrade
- PostgreSQL version check (graceful error for <15)
- Plugin route discovery with conflict protection
- Data/DataFrame renamed to JSON/Table in UI
- Secret key rotation script
- LiteLLM component, Openlayer integration
- Various bug fixes and test improvements

All conflicts resolved maintaining Hanzo Flow conventions:
- Package imports: flow.* (not langflow.*)
- Env var prefix: FLOW_* (not LANGFLOW_*)
- Header prefix: x-flow-global-var-* (not x-langflow-global-var-*)
- Product name: Flow / Hanzo Flow
- Documentation URLs: docs.hanzo.ai/flow
- Package name: hanzo-flow
2026-03-28 18:01:04 -07:00
zeekay 6bd561077c fix: rename LANGFLOW_ env prefix to FLOW_ across entire codebase
The K8s deployment uses FLOW_* env vars but the app was reading
LANGFLOW_* env vars (inherited from upstream), causing it to fall
back to SQLite and crash on migration. Changes env_prefix in
pydantic Settings, all os.getenv() calls, header prefixes, and
constants from LANGFLOW_ to FLOW_.
2026-03-28 15:26:01 -07:00
zeekay 2b580562d2 fix: install postgresql extra in Docker (psycopg driver required)
psycopg is under [project.optional-dependencies] postgresql.
Without --extra postgresql, uv sync skips it and the app crashes
with 'No module named psycopg' when connecting to PostgreSQL.
2026-03-26 23:29:48 -07:00
zeekay e5e0f492b1 fix: Dockerfile CMD uses flow module, port 7860, backend-only
Match K8s deployment: python -m flow (not langflow), port 7860,
--backend-only flag. Dockerfile healthcheck updated to match.
2026-03-26 22:54:28 -07:00
zeekay be0c081e21 fix: rename _get_langflow_desktop → _get_flow_desktop (broken by package rename) 2026-03-26 22:44:33 -07:00
zeekay 2912ae1798 fix: revert Dockerfile CMD to python -m langflow (flow.* rename incomplete) 2026-03-26 22:38:00 -07:00
zeekay 2bb425589a fix: add missing v2 router exports (mcp, registration, workflow) 2026-03-26 05:06:03 -07:00
zeekay ac2dc8aed8 fix: use python -m flow entrypoint (uv doesn't generate console scripts) 2026-03-26 04:10:02 -07:00
zeekay 2e3437c188 fix: repair broken v1 API __init__.py — missing and duplicate imports
The __init__.py had a duplicate knowledge_bases_router import inside
the __all__ list (syntax error) and was missing imports for
mcp_projects_router, openai_responses_router, models_router,
model_options_router, and projects_router that router.py requires.
2026-03-26 02:57:42 -07:00
zeekay 817188f850 fix: add missing knowledge_bases_router to v1 __init__ 2026-03-26 02:07:33 -07:00
zeekay afbe4bf4ae fix: rename check_langflow_version to check_flow_version in utils/__init__.py
The function was renamed in core.py but the re-export in __init__.py
still referenced the old name, causing ImportError on startup.
2026-03-25 23:58:02 -07:00
zeekay e84c6a2e71 fix: add hanzo-flow to package name lookup for version detection
The Docker image installs the package as hanzo-flow but version.py
only checks for flow, flow-base, and nightly variants. This causes
a ValueError crash on startup.
2026-03-25 23:15:33 -07:00
zeekay 2479679880 infra: replace nginx with hanzoai/static in frontend Dockerfile
hanzoai/static serves from /srv automatically, removing the need for
custom nginx config, envsubst startup script, and unprivileged user setup.
2026-03-25 16:25:38 -07:00
zeekay b33af3619b security: remove pull_request trigger from Docker build (fork protection) 2026-03-25 13:27:38 -07:00
zeekay 52c79d37d4 fix: regenerate uv.lock after PyPI name change to hanzo-flow 2026-03-25 04:09:34 -07:00
zeekay 0f1d398518 fix: PyPI package name hanzoflow → hanzo-flow (hyphenated convention) 2026-03-25 04:02:09 -07:00
zeekay 9353d518b2 rebrand: CLI binary flow:flow (not hanzo-flow) 2026-03-25 04:01:05 -07:00
zeekay 1b190098ec fix: optimize Docker image size — .dockerignore + selective COPY in runtime 2026-03-25 03:59:16 -07:00
zeekay e203f7a235 docs: update LLM.md with new package architecture after flow rename 2026-03-25 02:36:11 -07:00
zeekay 2a0b681349 rebrand: rename internal package langflow/hanzoflow -> flow
Single generic package name for white-label compatibility.

- git mv src/backend/base/hanzoflow/ -> src/backend/base/flow/
- git rm src/backend/base/langflow/ (compat shim, no longer needed)
- git mv src/backend/hanzoflow/ -> src/backend/flow/ (root package)
- Rename langflow_launcher.py -> launcher.py
- Update all Python imports: from langflow/hanzoflow -> from flow
- Update all string module references in mock targets, JSON data files
- Update pyproject.toml entry points, hatch build targets, mypy/codeflash config
- Update Dockerfile, Makefile, compose files, CI workflows, codecov.yml
- Rename internal classes: HanzoflowApplication -> FlowApplication, etc.
- Update alembic.ini database name
- Keep PyPI package names (hanzoflow, langflow-base) unchanged
- Keep LANGFLOW_* env var names for backwards compatibility
2026-03-25 02:34:37 -07:00
zeekay 68d419c8ef rebrand: CLI binary 'hanzo-flow' (not langflow, not flow) 2026-03-25 01:23:12 -07:00
zeekay 87761a15ba rebrand: rename CLI binary from 'langflow' to 'flow' 2026-03-25 01:09:18 -07:00
zeekay eb6b3e28eb fix(docker): use 'langflow' entrypoint (matches pyproject.toml scripts) 2026-03-25 00:47:51 -07:00
zeekay 6739bd07a1 ci: enable multi-arch builds (amd64 + arm64 native runners) 2026-03-24 22:47:16 -07:00
zeekay a6b5e86e77 Migrate Docker build to shared reusable workflow
Replace custom docker/build-push-action steps with
hanzoai/.github/.github/workflows/docker-build.yml@main.
This gives us proper multi-arch manifest support and
consistent build infrastructure across all repos.

amd64-only until arm64 runner is restored.
2026-03-24 22:32:31 -07:00
zeekay d83963f988 fix: resolve dependency conflicts, regenerate uv.lock
- Cap requires-python at <3.14 (faiss-cpu lacks cp314 wheels)
- Override openai to <2.0.0 (hanzo-llm wants >=2.8.0 but mem0ai,
  nv-ingest-client, and other langflow deps cap at <2.0.0)
- Disable nv-ingest extra (incompatible openai constraint)
- Remove openai upper bound cap from langflow-base (redundant with override)
- Create placeholder hanzoflow package dir in Dockerfile for uv workspace validation
- Regenerate uv.lock with all constraints resolved
2026-03-24 21:05:50 -07:00
zeekay 6e06f4a75b fix(docker): create placeholder for hanzoflow package during deps stage
uv sync --frozen fails with "Missing workspace member hanzoflow" because
the root pyproject.toml declares packages=["src/backend/hanzoflow"] but
that directory doesn't exist during the dependency-only stage. Create a
placeholder __init__.py so uv can validate the workspace structure.
2026-03-24 20:59:11 -07:00
zeekay 6a9d968572 ci: add multi-env Docker image tagging for test/dev branches
Trigger builds on main, test, dev branches. Existing metadata-action
tags (type=ref,event=branch) automatically produce :test and :dev tags.
2026-03-24 20:55:23 -07:00
zeekay d1bcb1440a fix: Docker build — uv base image, workspace manifests, two-stage sync
- Use ghcr.io/astral-sh/uv:python3.12-bookworm-slim as builder base
- Copy all workspace member pyproject.toml, README.md, and uv.lock files
- Two-stage uv sync: deps first (--no-install-project), then packages
- Workflow: conditional login/push, platforms: linux/amd64
2026-03-24 19:26:14 -07:00
zeekay 6f31255447 feat: use generic X-IAM-* headers instead of X-Hanzo-*
Gateway now injects X-IAM-Org-Id (was X-Hanzo-Org-Id). Updated
auth utils and IAM org resolver to read the new header names.
2026-03-24 18:42:56 -07:00
zeekay eda95ac134 rebrand: replace Inter with Geist Sans 2026-03-13 16:26:44 -07:00
zeekay 71d3062fb9 fix: restore requires-python to >=3.12 + copy workspace manifests in Dockerfile
requires-python was bumped to >=3.14 but faiss-cpu lacks cp314 wheels
and the Dockerfile uses python:3.12-slim. Restore to >=3.12 to match
the existing uv.lock range (>=3.10, <3.14). Also copy workspace member
pyproject.tomls in Dockerfile so uv can resolve all members.
2026-03-12 16:31:25 -07:00
zeekay b36917c2be fix: use multi-stage COPY for uv binary instead of curl install 2026-03-12 16:27:19 -07:00
zeekay 95d00c409f docs: add LLM.md project guide 2026-03-11 10:29:17 -07:00
zeekay ef71a76d60 feat: multi-tenant org scoping — add org_id to User model
- Add org_id field to User and UserRead models
- Add iam_org.py: org extraction + sync from JWT and X-Hanzo-Org-Id header
- Update auth service to sync org from JWT payload
- Add Alembic migration for org_id column
2026-03-01 16:26:15 -08:00
zeekay 05c3062f48 [chore] bump Python to 3.14+, remove blocking upper bound 2026-02-28 12:43:16 -08:00
zeekay 3fca58c3ba fix: rebrand remaining upstream refs in llms.txt, llms-full.txt, RELEASE.md
Replace Langflow/langflow-ai/langflow.org/DataStax references with
Hanzo Flow/hanzoai/docs.hanzo.ai/flow in LLM-facing documentation
files and fix package name in RELEASE.md.
2026-02-26 10:32:20 -08:00
zeekay 817f45ef71 Restore Hanzo branding after v1.8.0 merge
Re-apply brand changes (maintainer info, URLs, product name) that
were overwritten by the upstream merge.
2026-02-26 10:28:05 -08:00
zeekay c31542e07e Merge tag 'v1.8.0'
# Conflicts:
#	.gitignore
#	src/backend/base/hanzoflow/api/v1/endpoints.py
#	src/backend/base/hanzoflow/services/auth/base.py
#	src/backend/base/hanzoflow/services/auth/constants.py
#	src/backend/base/hanzoflow/services/auth/exceptions.py
#	src/backend/base/langflow/services/auth/factory.py
#	src/backend/base/langflow/services/auth/service.py
#	src/backend/base/langflow/services/auth/utils.py
#	src/frontend/src/components/core/playgroundComponent/sliding-container/components/flow-page-sliding-container.tsx
#	src/lfx/src/lfx/_assets/component_index.json
#	src/lfx/src/lfx/services/auth/service.py
2026-02-26 10:27:06 -08:00
zeekay ab9182f700 rebrand: replace litellm dep with hanzo-llm 2026-02-25 14:39:43 -08:00
zeekay 61c838d52b chore: gitignore AI assistant symlinks, remove duplicate logo SVGs
Logo SVGs were duplicates of the renamed Hanzo variants. Also adds
AGENTS.md, GEMINI.md, QWEN.md to gitignore (local symlinks to LLM.md).
2026-02-23 00:47:34 -08:00
zeekay 93be8b13c0 Restore Hanzoflow branding after upstream sync 2026-02-22 01:19:45 -08:00
zeekay 69f8d00a84 Merge remote-tracking branch 'upstream/main'
# Conflicts:
#	.github/workflows/codspeed.yml
#	.github/workflows/fetch_docs_notion.yml
#	docs/docs/API-Reference/api-reference-api-examples.md
#	docs/docs/Agents/agent-tool-calling-agent-component.md
#	docs/docs/Agents/agents-overview.md
#	docs/docs/Components/components-agents.md
#	docs/docs/Components/components-custom-components.md
#	docs/docs/Components/components-data.md
#	docs/docs/Components/components-embedding-models.md
#	docs/docs/Components/components-helpers.md
#	docs/docs/Components/components-io.md
#	docs/docs/Components/components-loaders.md
#	docs/docs/Components/components-logic.md
#	docs/docs/Components/components-memories.md
#	docs/docs/Components/components-models.md
#	docs/docs/Components/components-processing.md
#	docs/docs/Components/components-prompts.md
#	docs/docs/Components/components-tools.md
#	docs/docs/Components/components-vector-stores.md
#	docs/docs/Concepts/concepts-api.md
#	docs/docs/Concepts/concepts-components.md
#	docs/docs/Concepts/concepts-flows.md
#	docs/docs/Concepts/concepts-objects.md
#	docs/docs/Concepts/concepts-overview.md
#	docs/docs/Concepts/concepts-playground.md
#	docs/docs/Configuration/configuration-api-keys.md
#	docs/docs/Configuration/configuration-authentication.md
#	docs/docs/Configuration/configuration-auto-saving.md
#	docs/docs/Configuration/configuration-backend-only.md
#	docs/docs/Configuration/configuration-cli.md
#	docs/docs/Configuration/configuration-custom-database.md
#	docs/docs/Configuration/configuration-global-variables.md
#	docs/docs/Configuration/configuration-security-best-practices.md
#	docs/docs/Configuration/environment-variables.md
#	docs/docs/Contributing/contributing-community.md
#	docs/docs/Contributing/contributing-component-tests.md
#	docs/docs/Contributing/contributing-components.md
#	docs/docs/Contributing/contributing-github-discussion-board.md
#	docs/docs/Contributing/contributing-github-issues.md
#	docs/docs/Contributing/contributing-how-to-contribute.md
#	docs/docs/Contributing/contributing-telemetry.md
#	docs/docs/Deployment/deployment-docker.md
#	docs/docs/Deployment/deployment-gcp.md
#	docs/docs/Deployment/deployment-hugging-face-spaces.md
#	docs/docs/Deployment/deployment-kubernetes.md
#	docs/docs/Deployment/deployment-overview.md
#	docs/docs/Deployment/deployment-railway.md
#	docs/docs/Deployment/deployment-render.md
#	docs/docs/Get-Started/get-started-installation.md
#	docs/docs/Get-Started/get-started-quickstart.md
#	docs/docs/Integrations/Apify/integrations-apify.md
#	docs/docs/Integrations/Arize/integrations-arize.md
#	docs/docs/Integrations/Composio/integrations-composio.md
#	docs/docs/Integrations/Google/integrations-setup-google-cloud-vertex-ai-hanzoflow.md
#	docs/docs/Integrations/Google/integrations-setup-google-oauth-hanzoflow.md
#	docs/docs/Integrations/Notion/Conversational_Notion_Agent.json
#	docs/docs/Integrations/Notion/integrations-notion.md
#	docs/docs/Integrations/Notion/notion-agent-conversational.md
#	docs/docs/Integrations/Notion/notion-agent-meeting-notes.md
#	docs/docs/Integrations/Nvidia/integrations-nvidia-ingest.md
#	docs/docs/Integrations/Nvidia/integrations-nvidia-nim-wsl2.md
#	docs/docs/Integrations/integrations-langfuse.md
#	docs/docs/Integrations/integrations-langsmith.md
#	docs/docs/Integrations/integrations-langwatch.md
#	docs/docs/Integrations/integrations-mcp.md
#	docs/docs/Integrations/integrations-opik.md
#	docs/docs/Starter-Projects/starter-projects-basic-prompting.md
#	docs/docs/Starter-Projects/starter-projects-simple-agent.md
#	docs/docs/Starter-Projects/starter-projects-vector-store-rag.md
#	docs/docs/Tutorials/tutorials-blog-writer.md
#	docs/docs/Tutorials/tutorials-document-qa.md
#	docs/docs/Tutorials/tutorials-math-agent.md
#	docs/docs/Tutorials/tutorials-memory-chatbot.md
#	docs/docs/Tutorials/tutorials-sequential-agent.md
#	docs/docs/Tutorials/tutorials-travel-planning-agent.md
#	docs/openapi.json
#	docs/static/files/Google_Drive_Docs_Translation_Example.json
#	docs/static/files/eval_and_remediate_cleanlab.json
#	docs/static/img/configure-vertex-ai-credentials-in-hanzoflow.gif
#	docs/static/img/configure-vertex-ai-credentials-in-langflow.gif
#	docs/static/img/google/configure-vertex-ai-credentials-in-langflow.gif
#	docs/static/img/hanzoflow-astradb-component.png
#	docs/static/img/hanzoflow-logo-black.svg
#	docs/static/img/hanzoflow-logo-white.svg
#	docs/static/img/hanzoflow_api.mp4
#	docs/static/img/hanzoflow_collection.mp4
#	docs/static/img/hanzoflow_collection_example.mp4
#	docs/static/img/hanzoflow_fork.mp4
#	docs/static/img/hanzoflow_global_variables.mp4
#	docs/static/img/hanzoflow_parameters.mp4
#	docs/static/img/hanzoflow_playground.mp4
#	docs/static/img/hanzoflow_widget.mp4
#	docs/static/img/langflow-logo-color-blue-bg.svg
#	docs/static/img/langflow-logo-white.svg
#	docs/static/img/star-langflow.gif
#	docs/static/videos/langflow_fork.mp4
#	src/backend/Dockerfile
#	src/backend/base/hanzoflow/agentic/__init__.py
#	src/backend/base/hanzoflow/agentic/api/__init__.py
#	src/backend/base/hanzoflow/agentic/api/router.py
#	src/backend/base/hanzoflow/agentic/api/schemas.py
#	src/backend/base/hanzoflow/agentic/flows/LangflowAssistant.json
#	src/backend/base/hanzoflow/agentic/flows/SystemMessageGen.json
#	src/backend/base/hanzoflow/agentic/flows/TemplateAssistant.json
#	src/backend/base/hanzoflow/agentic/flows/__init__.py
#	src/backend/base/hanzoflow/agentic/flows/langflow_assistant.py
#	src/backend/base/hanzoflow/agentic/flows/translation_flow.py
#	src/backend/base/hanzoflow/agentic/helpers/__init__.py
#	src/backend/base/hanzoflow/agentic/helpers/code_extraction.py
#	src/backend/base/hanzoflow/agentic/helpers/error_handling.py
#	src/backend/base/hanzoflow/agentic/helpers/sse.py
#	src/backend/base/hanzoflow/agentic/helpers/validation.py
#	src/backend/base/hanzoflow/agentic/mcp/__init__.py
#	src/backend/base/hanzoflow/agentic/mcp/__main__.py
#	src/backend/base/hanzoflow/agentic/mcp/server.py
#	src/backend/base/hanzoflow/agentic/mcp/support.py
#	src/backend/base/hanzoflow/agentic/schema/schema.json
#	src/backend/base/hanzoflow/agentic/services/__init__.py
#	src/backend/base/hanzoflow/agentic/services/assistant_service.py
#	src/backend/base/hanzoflow/agentic/services/flow_executor.py
#	src/backend/base/hanzoflow/agentic/services/flow_preparation.py
#	src/backend/base/hanzoflow/agentic/services/flow_types.py
#	src/backend/base/hanzoflow/agentic/services/helpers/__init__.py
#	src/backend/base/hanzoflow/agentic/services/helpers/event_consumer.py
#	src/backend/base/hanzoflow/agentic/services/helpers/flow_loader.py
#	src/backend/base/hanzoflow/agentic/services/helpers/intent_classification.py
#	src/backend/base/hanzoflow/agentic/services/provider_service.py
#	src/backend/base/hanzoflow/agentic/utils/__init__.py
#	src/backend/base/hanzoflow/agentic/utils/component_search.py
#	src/backend/base/hanzoflow/agentic/utils/flow_component.py
#	src/backend/base/hanzoflow/agentic/utils/flow_graph.py
#	src/backend/base/hanzoflow/agentic/utils/template_create.py
#	src/backend/base/hanzoflow/agentic/utils/template_search.py
#	src/backend/base/hanzoflow/alembic/DB-MIGRATION-GUIDE.MD
#	src/backend/base/hanzoflow/alembic/__init__.py
#	src/backend/base/hanzoflow/alembic/migration_validator.py
#	src/backend/base/hanzoflow/alembic/versions/0882f9657f22_encrypt_existing_mcp_auth_settings_.py
#	src/backend/base/hanzoflow/alembic/versions/182e5471b900_add_context_message.py
#	src/backend/base/hanzoflow/alembic/versions/1b8b740a6fa3_remove_fk_constraint_in_message_.py
#	src/backend/base/hanzoflow/alembic/versions/1cb603706752_modify_uniqueness_constraint_on_file_.py
#	src/backend/base/hanzoflow/alembic/versions/3162e83e485f_add_auth_settings_to_folder_and_merge.py
#	src/backend/base/hanzoflow/alembic/versions/369268b9af8b_add_job_id_to_vertex_build_create_job_.py
#	src/backend/base/hanzoflow/alembic/versions/66f72f04a1de_add_mcp_support_with_project_settings_.py
#	src/backend/base/hanzoflow/alembic/versions/d37bc4322900_drop_single_constraint_on_files_name_.py
#	src/backend/base/hanzoflow/alembic/versions/d9a6ea21edcd_rename_default_folder.py
#	src/backend/base/hanzoflow/alembic/versions/e56d87f8994a_add_optins_column_to_user.py
#	src/backend/base/hanzoflow/api/utils.py
#	src/backend/base/hanzoflow/api/utils/__init__.py
#	src/backend/base/hanzoflow/api/utils/core.py
#	src/backend/base/hanzoflow/api/utils/mcp/__init__.py
#	src/backend/base/hanzoflow/api/utils/mcp/agentic_mcp.py
#	src/backend/base/hanzoflow/api/utils/mcp/config_utils.py
#	src/backend/base/hanzoflow/api/v1/auth_helpers.py
#	src/backend/base/hanzoflow/api/v1/knowledge_bases.py
#	src/backend/base/hanzoflow/api/v1/mcp_projects.py
#	src/backend/base/hanzoflow/api/v1/mcp_utils.py
#	src/backend/base/hanzoflow/api/v1/model_options.py
#	src/backend/base/hanzoflow/api/v1/models.py
#	src/backend/base/hanzoflow/api/v1/openai_responses.py
#	src/backend/base/hanzoflow/api/v1/projects.py
#	src/backend/base/hanzoflow/api/v2/converters.py
#	src/backend/base/hanzoflow/api/v2/mcp.py
#	src/backend/base/hanzoflow/api/v2/registration.py
#	src/backend/base/hanzoflow/api/v2/schemas.py
#	src/backend/base/hanzoflow/api/v2/workflow.py
#	src/backend/base/hanzoflow/api/v2/workflow_reconstruction.py
#	src/backend/base/hanzoflow/base/agents/agent.py
#	src/backend/base/hanzoflow/base/agents/callback.py
#	src/backend/base/hanzoflow/base/agents/context.py
#	src/backend/base/hanzoflow/base/agents/crewai/crew.py
#	src/backend/base/hanzoflow/base/agents/crewai/tasks.py
#	src/backend/base/hanzoflow/base/agents/default_prompts.py
#	src/backend/base/hanzoflow/base/agents/errors.py
#	src/backend/base/hanzoflow/base/agents/events.py
#	src/backend/base/hanzoflow/base/agents/utils.py
#	src/backend/base/hanzoflow/base/astra_assistants/util.py
#	src/backend/base/hanzoflow/base/chains/model.py
#	src/backend/base/hanzoflow/base/compressors/model.py
#	src/backend/base/hanzoflow/base/constants.py
#	src/backend/base/hanzoflow/base/curl/parse.py
#	src/backend/base/hanzoflow/base/data/base_file.py
#	src/backend/base/hanzoflow/base/document_transformers/model.py
#	src/backend/base/hanzoflow/base/embeddings/aiml_embeddings.py
#	src/backend/base/hanzoflow/base/embeddings/model.py
#	src/backend/base/hanzoflow/base/flow_processing/utils.py
#	src/backend/base/hanzoflow/base/huggingface/model_bridge.py
#	src/backend/base/hanzoflow/base/langchain_utilities/model.py
#	src/backend/base/hanzoflow/base/langchain_utilities/spider_constants.py
#	src/backend/base/hanzoflow/base/mcp/util.py
#	src/backend/base/hanzoflow/base/memory/memory.py
#	src/backend/base/hanzoflow/base/memory/model.py
#	src/backend/base/hanzoflow/base/models/aiml_constants.py
#	src/backend/base/hanzoflow/base/models/anthropic_constants.py
#	src/backend/base/hanzoflow/base/models/aws_constants.py
#	src/backend/base/hanzoflow/base/models/chat_result.py
#	src/backend/base/hanzoflow/base/models/google_generative_ai_constants.py
#	src/backend/base/hanzoflow/base/models/groq_constants.py
#	src/backend/base/hanzoflow/base/models/model.py
#	src/backend/base/hanzoflow/base/models/model_input_constants.py
#	src/backend/base/hanzoflow/base/models/model_utils.py
#	src/backend/base/hanzoflow/base/models/novita_constants.py
#	src/backend/base/hanzoflow/base/models/ollama_constants.py
#	src/backend/base/hanzoflow/base/models/openai_constants.py
#	src/backend/base/hanzoflow/base/models/sambanova_constants.py
#	src/backend/base/hanzoflow/base/prompts/utils.py
#	src/backend/base/hanzoflow/base/textsplitters/model.py
#	src/backend/base/hanzoflow/base/tools/base.py
#	src/backend/base/hanzoflow/base/tools/component_tool.py
#	src/backend/base/hanzoflow/base/tools/constants.py
#	src/backend/base/hanzoflow/base/tools/flow_tool.py
#	src/backend/base/hanzoflow/base/tools/run_flow.py
#	src/backend/base/hanzoflow/base/vectorstores/model.py
#	src/backend/base/hanzoflow/base/vectorstores/utils.py
#	src/backend/base/hanzoflow/base/vectorstores/vector_store_connection_decorator.py
#	src/backend/base/hanzoflow/cli/__init__.py
#	src/backend/base/hanzoflow/cli/progress.py
#	src/backend/base/hanzoflow/components/Notion/__init__.py
#	src/backend/base/hanzoflow/components/Notion/add_content_to_page.py
#	src/backend/base/hanzoflow/components/Notion/create_page.py
#	src/backend/base/hanzoflow/components/Notion/list_database_properties.py
#	src/backend/base/hanzoflow/components/Notion/list_pages.py
#	src/backend/base/hanzoflow/components/Notion/list_users.py
#	src/backend/base/hanzoflow/components/Notion/page_content_viewer.py
#	src/backend/base/hanzoflow/components/Notion/search.py
#	src/backend/base/hanzoflow/components/Notion/update_page_property.py
#	src/backend/base/hanzoflow/components/agentql/__init__.py
#	src/backend/base/hanzoflow/components/agentql/agentql_api.py
#	src/backend/base/hanzoflow/components/agents/__init__.py
#	src/backend/base/hanzoflow/components/agents/agent.py
#	src/backend/base/hanzoflow/components/apify/__init__.py
#	src/backend/base/hanzoflow/components/apify/apify_actor.py
#	src/backend/base/hanzoflow/components/assemblyai/__init__.py
#	src/backend/base/hanzoflow/components/assemblyai/assemblyai_get_subtitles.py
#	src/backend/base/hanzoflow/components/assemblyai/assemblyai_lemur.py
#	src/backend/base/hanzoflow/components/assemblyai/assemblyai_list_transcripts.py
#	src/backend/base/hanzoflow/components/assemblyai/assemblyai_poll_transcript.py
#	src/backend/base/hanzoflow/components/assemblyai/assemblyai_start_transcript.py
#	src/backend/base/hanzoflow/components/astra_assistants/__init__.py
#	src/backend/base/hanzoflow/components/astra_assistants/astra_assistant_manager.py
#	src/backend/base/hanzoflow/components/astra_assistants/create_assistant.py
#	src/backend/base/hanzoflow/components/astra_assistants/create_thread.py
#	src/backend/base/hanzoflow/components/astra_assistants/dotenv.py
#	src/backend/base/hanzoflow/components/astra_assistants/get_assistant.py
#	src/backend/base/hanzoflow/components/astra_assistants/getenvvar.py
#	src/backend/base/hanzoflow/components/astra_assistants/list_assistants.py
#	src/backend/base/hanzoflow/components/astra_assistants/run.py
#	src/backend/base/hanzoflow/components/cohere/__init__.py
#	src/backend/base/hanzoflow/components/cohere/cohere_rerank.py
#	src/backend/base/hanzoflow/components/composio/__init__.py
#	src/backend/base/hanzoflow/components/composio/composio_api.py
#	src/backend/base/hanzoflow/components/composio/gmail_api.py
#	src/backend/base/hanzoflow/components/confluence/__init__.py
#	src/backend/base/hanzoflow/components/confluence/confluence.py
#	src/backend/base/hanzoflow/components/crewai/__init__.py
#	src/backend/base/hanzoflow/components/crewai/crewai.py
#	src/backend/base/hanzoflow/components/crewai/hierarchical_crew.py
#	src/backend/base/hanzoflow/components/crewai/hierarchical_task.py
#	src/backend/base/hanzoflow/components/crewai/sequential_crew.py
#	src/backend/base/hanzoflow/components/crewai/sequential_task.py
#	src/backend/base/hanzoflow/components/crewai/sequential_task_agent.py
#	src/backend/base/hanzoflow/components/custom_component/__init__.py
#	src/backend/base/hanzoflow/components/custom_component/custom_component.py
#	src/backend/base/hanzoflow/components/data/__init__.py
#	src/backend/base/hanzoflow/components/data/api_request.py
#	src/backend/base/hanzoflow/components/data/csv_to_data.py
#	src/backend/base/hanzoflow/components/data/directory.py
#	src/backend/base/hanzoflow/components/data/file.py
#	src/backend/base/hanzoflow/components/data/json_to_data.py
#	src/backend/base/hanzoflow/components/data/s3_bucket_uploader.py
#	src/backend/base/hanzoflow/components/data/sql_executor.py
#	src/backend/base/hanzoflow/components/data/url.py
#	src/backend/base/hanzoflow/components/data/webhook.py
#	src/backend/base/hanzoflow/components/deactivated/__init__.py
#	src/backend/base/hanzoflow/components/deactivated/chat_litellm_model.py
#	src/backend/base/hanzoflow/components/deactivated/code_block_extractor.py
#	src/backend/base/hanzoflow/components/deactivated/documents_to_data.py
#	src/backend/base/hanzoflow/components/deactivated/embed.py
#	src/backend/base/hanzoflow/components/deactivated/extract_key_from_data.py
#	src/backend/base/hanzoflow/components/deactivated/list_flows.py
#	src/backend/base/hanzoflow/components/deactivated/mcp_sse.py
#	src/backend/base/hanzoflow/components/deactivated/mcp_stdio.py
#	src/backend/base/hanzoflow/components/deactivated/merge_data.py
#	src/backend/base/hanzoflow/components/deactivated/message.py
#	src/backend/base/hanzoflow/components/deactivated/selective_passthrough.py
#	src/backend/base/hanzoflow/components/deactivated/should_run_next.py
#	src/backend/base/hanzoflow/components/deactivated/split_text.py
#	src/backend/base/hanzoflow/components/deactivated/store_message.py
#	src/backend/base/hanzoflow/components/deactivated/sub_flow.py
#	src/backend/base/hanzoflow/components/embeddings/__init__.py
#	src/backend/base/hanzoflow/components/embeddings/aiml.py
#	src/backend/base/hanzoflow/components/embeddings/amazon_bedrock.py
#	src/backend/base/hanzoflow/components/embeddings/astra_vectorize.py
#	src/backend/base/hanzoflow/components/embeddings/azure_openai.py
#	src/backend/base/hanzoflow/components/embeddings/cloudflare.py
#	src/backend/base/hanzoflow/components/embeddings/cohere.py
#	src/backend/base/hanzoflow/components/embeddings/google_generative_ai.py
#	src/backend/base/hanzoflow/components/embeddings/huggingface_inference_api.py
#	src/backend/base/hanzoflow/components/embeddings/lmstudioembeddings.py
#	src/backend/base/hanzoflow/components/embeddings/mistral.py
#	src/backend/base/hanzoflow/components/embeddings/nvidia.py
#	src/backend/base/hanzoflow/components/embeddings/ollama.py
#	src/backend/base/hanzoflow/components/embeddings/openai.py
#	src/backend/base/hanzoflow/components/embeddings/similarity.py
#	src/backend/base/hanzoflow/components/embeddings/text_embedder.py
#	src/backend/base/hanzoflow/components/embeddings/vertexai.py
#	src/backend/base/hanzoflow/components/firecrawl/__init__.py
#	src/backend/base/hanzoflow/components/firecrawl/firecrawl_crawl_api.py
#	src/backend/base/hanzoflow/components/firecrawl/firecrawl_extract_api.py
#	src/backend/base/hanzoflow/components/firecrawl/firecrawl_map_api.py
#	src/backend/base/hanzoflow/components/firecrawl/firecrawl_scrape_api.py
#	src/backend/base/hanzoflow/components/git/__init__.py
#	src/backend/base/hanzoflow/components/git/git.py
#	src/backend/base/hanzoflow/components/git/gitextractor.py
#	src/backend/base/hanzoflow/components/google/__init__.py
#	src/backend/base/hanzoflow/components/google/gmail.py
#	src/backend/base/hanzoflow/components/google/google_drive.py
#	src/backend/base/hanzoflow/components/google/google_drive_search.py
#	src/backend/base/hanzoflow/components/google/google_oauth_token.py
#	src/backend/base/hanzoflow/components/helpers/__init__.py
#	src/backend/base/hanzoflow/components/helpers/batch_run.py
#	src/backend/base/hanzoflow/components/helpers/create_list.py
#	src/backend/base/hanzoflow/components/helpers/current_date.py
#	src/backend/base/hanzoflow/components/helpers/id_generator.py
#	src/backend/base/hanzoflow/components/helpers/memory.py
#	src/backend/base/hanzoflow/components/helpers/output_parser.py
#	src/backend/base/hanzoflow/components/helpers/store_message.py
#	src/backend/base/hanzoflow/components/helpers/structured_output.py
#	src/backend/base/hanzoflow/components/icosacomputing/__init__.py
#	src/backend/base/hanzoflow/components/icosacomputing/combinatorial_reasoner.py
#	src/backend/base/hanzoflow/components/inputs/__init__.py
#	src/backend/base/hanzoflow/components/inputs/chat.py
#	src/backend/base/hanzoflow/components/inputs/text.py
#	src/backend/base/hanzoflow/components/knowledge_bases/__init__.py
#	src/backend/base/hanzoflow/components/langchain_utilities/__init__.py
#	src/backend/base/hanzoflow/components/langchain_utilities/character.py
#	src/backend/base/hanzoflow/components/langchain_utilities/conversation.py
#	src/backend/base/hanzoflow/components/langchain_utilities/csv_agent.py
#	src/backend/base/hanzoflow/components/langchain_utilities/fake_embeddings.py
#	src/backend/base/hanzoflow/components/langchain_utilities/html_link_extractor.py
#	src/backend/base/hanzoflow/components/langchain_utilities/json_agent.py
#	src/backend/base/hanzoflow/components/langchain_utilities/json_document_builder.py
#	src/backend/base/hanzoflow/components/langchain_utilities/langchain_hub.py
#	src/backend/base/hanzoflow/components/langchain_utilities/language_recursive.py
#	src/backend/base/hanzoflow/components/langchain_utilities/language_semantic.py
#	src/backend/base/hanzoflow/components/langchain_utilities/llm_checker.py
#	src/backend/base/hanzoflow/components/langchain_utilities/llm_math.py
#	src/backend/base/hanzoflow/components/langchain_utilities/natural_language.py
#	src/backend/base/hanzoflow/components/langchain_utilities/openai_tools.py
#	src/backend/base/hanzoflow/components/langchain_utilities/openapi.py
#	src/backend/base/hanzoflow/components/langchain_utilities/recursive_character.py
#	src/backend/base/hanzoflow/components/langchain_utilities/retrieval_qa.py
#	src/backend/base/hanzoflow/components/langchain_utilities/retriever.py
#	src/backend/base/hanzoflow/components/langchain_utilities/runnable_executor.py
#	src/backend/base/hanzoflow/components/langchain_utilities/self_query.py
#	src/backend/base/hanzoflow/components/langchain_utilities/spider.py
#	src/backend/base/hanzoflow/components/langchain_utilities/sql.py
#	src/backend/base/hanzoflow/components/langchain_utilities/sql_database.py
#	src/backend/base/hanzoflow/components/langchain_utilities/sql_generator.py
#	src/backend/base/hanzoflow/components/langchain_utilities/tool_calling.py
#	src/backend/base/hanzoflow/components/langchain_utilities/vector_store.py
#	src/backend/base/hanzoflow/components/langchain_utilities/vector_store_info.py
#	src/backend/base/hanzoflow/components/langchain_utilities/vector_store_router.py
#	src/backend/base/hanzoflow/components/langchain_utilities/xml_agent.py
#	src/backend/base/hanzoflow/components/langwatch/__init__.py
#	src/backend/base/hanzoflow/components/langwatch/langwatch.py
#	src/backend/base/hanzoflow/components/logic/__init__.py
#	src/backend/base/hanzoflow/components/logic/conditional_router.py
#	src/backend/base/hanzoflow/components/logic/data_conditional_router.py
#	src/backend/base/hanzoflow/components/logic/flow_tool.py
#	src/backend/base/hanzoflow/components/logic/listen.py
#	src/backend/base/hanzoflow/components/logic/loop.py
#	src/backend/base/hanzoflow/components/logic/notify.py
#	src/backend/base/hanzoflow/components/logic/pass_message.py
#	src/backend/base/hanzoflow/components/logic/run_flow.py
#	src/backend/base/hanzoflow/components/logic/sub_flow.py
#	src/backend/base/hanzoflow/components/memories/__init__.py
#	src/backend/base/hanzoflow/components/memories/astra_db.py
#	src/backend/base/hanzoflow/components/memories/cassandra.py
#	src/backend/base/hanzoflow/components/memories/mem0_chat_memory.py
#	src/backend/base/hanzoflow/components/memories/redis.py
#	src/backend/base/hanzoflow/components/memories/zep.py
#	src/backend/base/hanzoflow/components/models/__init__.py
#	src/backend/base/hanzoflow/components/models/aiml.py
#	src/backend/base/hanzoflow/components/models/amazon_bedrock.py
#	src/backend/base/hanzoflow/components/models/anthropic.py
#	src/backend/base/hanzoflow/components/models/azure_openai.py
#	src/backend/base/hanzoflow/components/models/baidu_qianfan_chat.py
#	src/backend/base/hanzoflow/components/models/cohere.py
#	src/backend/base/hanzoflow/components/models/deepseek.py
#	src/backend/base/hanzoflow/components/models/google_generative_ai.py
#	src/backend/base/hanzoflow/components/models/groq.py
#	src/backend/base/hanzoflow/components/models/huggingface.py
#	src/backend/base/hanzoflow/components/models/language_model.py
#	src/backend/base/hanzoflow/components/models/lmstudiomodel.py
#	src/backend/base/hanzoflow/components/models/maritalk.py
#	src/backend/base/hanzoflow/components/models/mistral.py
#	src/backend/base/hanzoflow/components/models/novita.py
#	src/backend/base/hanzoflow/components/models/nvidia.py
#	src/backend/base/hanzoflow/components/models/ollama.py
#	src/backend/base/hanzoflow/components/models/openai_chat_model.py
#	src/backend/base/hanzoflow/components/models/openrouter.py
#	src/backend/base/hanzoflow/components/models/perplexity.py
#	src/backend/base/hanzoflow/components/models/sambanova.py
#	src/backend/base/hanzoflow/components/models/vertexai.py
#	src/backend/base/hanzoflow/components/models/watsonx.py
#	src/backend/base/hanzoflow/components/models/xai.py
#	src/backend/base/hanzoflow/components/needle/__init__.py
#	src/backend/base/hanzoflow/components/needle/needle.py
#	src/backend/base/hanzoflow/components/notdiamond/notdiamond.py
#	src/backend/base/hanzoflow/components/nvidia/__init__.py
#	src/backend/base/hanzoflow/components/nvidia/nvidia_ingest.py
#	src/backend/base/hanzoflow/components/nvidia/nvidia_rerank.py
#	src/backend/base/hanzoflow/components/olivya/__init__.py
#	src/backend/base/hanzoflow/components/olivya/olivya.py
#	src/backend/base/hanzoflow/components/outputs/__init__.py
#	src/backend/base/hanzoflow/components/outputs/chat.py
#	src/backend/base/hanzoflow/components/outputs/text.py
#	src/backend/base/hanzoflow/components/processing/alter_metadata.py
#	src/backend/base/hanzoflow/components/processing/combine_text.py
#	src/backend/base/hanzoflow/components/processing/converter.py
#	src/backend/base/hanzoflow/components/processing/create_data.py
#	src/backend/base/hanzoflow/components/processing/data_to_dataframe.py
#	src/backend/base/hanzoflow/components/processing/dataframe_operations.py
#	src/backend/base/hanzoflow/components/processing/extract_key.py
#	src/backend/base/hanzoflow/components/processing/filter_data.py
#	src/backend/base/hanzoflow/components/processing/filter_data_values.py
#	src/backend/base/hanzoflow/components/processing/json_cleaner.py
#	src/backend/base/hanzoflow/components/processing/lambda_filter.py
#	src/backend/base/hanzoflow/components/processing/llm_router.py
#	src/backend/base/hanzoflow/components/processing/merge_data.py
#	src/backend/base/hanzoflow/components/processing/message_to_data.py
#	src/backend/base/hanzoflow/components/processing/parse_data.py
#	src/backend/base/hanzoflow/components/processing/parse_dataframe.py
#	src/backend/base/hanzoflow/components/processing/parse_json_data.py
#	src/backend/base/hanzoflow/components/processing/parser.py
#	src/backend/base/hanzoflow/components/processing/regex.py
#	src/backend/base/hanzoflow/components/processing/save_to_file.py
#	src/backend/base/hanzoflow/components/processing/select_data.py
#	src/backend/base/hanzoflow/components/processing/split_text.py
#	src/backend/base/hanzoflow/components/processing/update_data.py
#	src/backend/base/hanzoflow/components/prompts/__init__.py
#	src/backend/base/hanzoflow/components/prompts/prompt.py
#	src/backend/base/hanzoflow/components/prototypes/__init__.py
#	src/backend/base/hanzoflow/components/prototypes/python_function.py
#	src/backend/base/hanzoflow/components/retrievers/__init__.py
#	src/backend/base/hanzoflow/components/retrievers/amazon_kendra.py
#	src/backend/base/hanzoflow/components/retrievers/metal.py
#	src/backend/base/hanzoflow/components/retrievers/multi_query.py
#	src/backend/base/hanzoflow/components/scrapegraph/__init__.py
#	src/backend/base/hanzoflow/components/scrapegraph/scrapegraph_markdownify_api.py
#	src/backend/base/hanzoflow/components/scrapegraph/scrapegraph_search_api.py
#	src/backend/base/hanzoflow/components/scrapegraph/scrapegraph_smart_scraper_api.py
#	src/backend/base/hanzoflow/components/tools/__init__.py
#	src/backend/base/hanzoflow/components/tools/arxiv.py
#	src/backend/base/hanzoflow/components/tools/astradb.py
#	src/backend/base/hanzoflow/components/tools/astradb_cql.py
#	src/backend/base/hanzoflow/components/tools/bing_search_api.py
#	src/backend/base/hanzoflow/components/tools/calculator.py
#	src/backend/base/hanzoflow/components/tools/calculator_core.py
#	src/backend/base/hanzoflow/components/tools/duck_duck_go_search_run.py
#	src/backend/base/hanzoflow/components/tools/exa_search.py
#	src/backend/base/hanzoflow/components/tools/glean_search_api.py
#	src/backend/base/hanzoflow/components/tools/google_search_api.py
#	src/backend/base/hanzoflow/components/tools/google_search_api_core.py
#	src/backend/base/hanzoflow/components/tools/google_serper_api.py
#	src/backend/base/hanzoflow/components/tools/google_serper_api_core.py
#	src/backend/base/hanzoflow/components/tools/mcp_component.py
#	src/backend/base/hanzoflow/components/tools/python_code_structured_tool.py
#	src/backend/base/hanzoflow/components/tools/python_repl.py
#	src/backend/base/hanzoflow/components/tools/python_repl_core.py
#	src/backend/base/hanzoflow/components/tools/search.py
#	src/backend/base/hanzoflow/components/tools/search_api.py
#	src/backend/base/hanzoflow/components/tools/searxng.py
#	src/backend/base/hanzoflow/components/tools/serp.py
#	src/backend/base/hanzoflow/components/tools/serp_api.py
#	src/backend/base/hanzoflow/components/tools/tavily.py
#	src/backend/base/hanzoflow/components/tools/tavily_search.py
#	src/backend/base/hanzoflow/components/tools/wikidata.py
#	src/backend/base/hanzoflow/components/tools/wikidata_api.py
#	src/backend/base/hanzoflow/components/tools/wikipedia.py
#	src/backend/base/hanzoflow/components/tools/wikipedia_api.py
#	src/backend/base/hanzoflow/components/tools/wolfram_alpha_api.py
#	src/backend/base/hanzoflow/components/tools/yahoo.py
#	src/backend/base/hanzoflow/components/tools/yahoo_finance.py
#	src/backend/base/hanzoflow/components/unstructured/__init__.py
#	src/backend/base/hanzoflow/components/unstructured/unstructured.py
#	src/backend/base/hanzoflow/components/vectorstores/__init__.py
#	src/backend/base/hanzoflow/components/vectorstores/astradb.py
#	src/backend/base/hanzoflow/components/vectorstores/astradb_graph.py
#	src/backend/base/hanzoflow/components/vectorstores/cassandra.py
#	src/backend/base/hanzoflow/components/vectorstores/cassandra_graph.py
#	src/backend/base/hanzoflow/components/vectorstores/chroma.py
#	src/backend/base/hanzoflow/components/vectorstores/clickhouse.py
#	src/backend/base/hanzoflow/components/vectorstores/couchbase.py
#	src/backend/base/hanzoflow/components/vectorstores/elasticsearch.py
#	src/backend/base/hanzoflow/components/vectorstores/faiss.py
#	src/backend/base/hanzoflow/components/vectorstores/graph_rag.py
#	src/backend/base/hanzoflow/components/vectorstores/hcd.py
#	src/backend/base/hanzoflow/components/vectorstores/milvus.py
#	src/backend/base/hanzoflow/components/vectorstores/mongodb_atlas.py
#	src/backend/base/hanzoflow/components/vectorstores/opensearch.py
#	src/backend/base/hanzoflow/components/vectorstores/pgvector.py
#	src/backend/base/hanzoflow/components/vectorstores/pinecone.py
#	src/backend/base/hanzoflow/components/vectorstores/qdrant.py
#	src/backend/base/hanzoflow/components/vectorstores/redis.py
#	src/backend/base/hanzoflow/components/vectorstores/supabase.py
#	src/backend/base/hanzoflow/components/vectorstores/upstash.py
#	src/backend/base/hanzoflow/components/vectorstores/vectara.py
#	src/backend/base/hanzoflow/components/vectorstores/vectara_rag.py
#	src/backend/base/hanzoflow/components/vectorstores/vectara_self_query.py
#	src/backend/base/hanzoflow/components/vectorstores/weaviate.py
#	src/backend/base/hanzoflow/components/youtube/__init__.py
#	src/backend/base/hanzoflow/components/youtube/channel.py
#	src/backend/base/hanzoflow/components/youtube/comments.py
#	src/backend/base/hanzoflow/components/youtube/playlist.py
#	src/backend/base/hanzoflow/components/youtube/search.py
#	src/backend/base/hanzoflow/components/youtube/trending.py
#	src/backend/base/hanzoflow/components/youtube/video_details.py
#	src/backend/base/hanzoflow/components/youtube/youtube_transcripts.py
#	src/backend/base/hanzoflow/custom/attributes.py
#	src/backend/base/hanzoflow/custom/code_parser/__init__.py
#	src/backend/base/hanzoflow/custom/code_parser/code_parser.py
#	src/backend/base/hanzoflow/custom/custom_component/base_component.py
#	src/backend/base/hanzoflow/custom/directory_reader/__init__.py
#	src/backend/base/hanzoflow/custom/directory_reader/directory_reader.py
#	src/backend/base/hanzoflow/custom/directory_reader/utils.py
#	src/backend/base/hanzoflow/custom/eval.py
#	src/backend/base/hanzoflow/custom/schema.py
#	src/backend/base/hanzoflow/custom/tree_visitor.py
#	src/backend/base/hanzoflow/custom/validate.py
#	src/backend/base/hanzoflow/graph/edge/base.py
#	src/backend/base/hanzoflow/graph/edge/schema.py
#	src/backend/base/hanzoflow/graph/graph/ascii.py
#	src/backend/base/hanzoflow/graph/graph/base.py
#	src/backend/base/hanzoflow/graph/graph/constants.py
#	src/backend/base/hanzoflow/graph/graph/runnable_vertices_manager.py
#	src/backend/base/hanzoflow/graph/graph/schema.py
#	src/backend/base/hanzoflow/graph/graph/state_manager.py
#	src/backend/base/hanzoflow/graph/graph/state_model.py
#	src/backend/base/hanzoflow/graph/graph/utils.py
#	src/backend/base/hanzoflow/graph/schema.py
#	src/backend/base/hanzoflow/graph/state/model.py
#	src/backend/base/hanzoflow/graph/utils.py
#	src/backend/base/hanzoflow/graph/vertex/base.py
#	src/backend/base/hanzoflow/graph/vertex/exceptions.py
#	src/backend/base/hanzoflow/graph/vertex/param_handler.py
#	src/backend/base/hanzoflow/graph/vertex/schema.py
#	src/backend/base/hanzoflow/graph/vertex/utils.py
#	src/backend/base/hanzoflow/graph/vertex/vertex_types.py
#	src/backend/base/hanzoflow/helpers/windows_postgres_helper.py
#	src/backend/base/hanzoflow/initial_setup/starter_projects/Custom Component Generator.json
#	src/backend/base/hanzoflow/initial_setup/starter_projects/Custom Component Maker.json
#	src/backend/base/hanzoflow/initial_setup/starter_projects/Diet Analysis.json
#	src/backend/base/hanzoflow/initial_setup/starter_projects/Financial Agent.json
#	src/backend/base/hanzoflow/initial_setup/starter_projects/Gmail Agent.json
#	src/backend/base/hanzoflow/initial_setup/starter_projects/Hybrid Search RAG.json
#	src/backend/base/hanzoflow/initial_setup/starter_projects/Knowledge Ingestion.json
#	src/backend/base/hanzoflow/initial_setup/starter_projects/Knowledge Retrieval.json
#	src/backend/base/hanzoflow/initial_setup/starter_projects/LoopTemplate.json
#	src/backend/base/hanzoflow/initial_setup/starter_projects/Nvidia Remix.json
#	src/backend/base/hanzoflow/initial_setup/starter_projects/Research Translation Loop.json
#	src/backend/base/hanzoflow/langflow_launcher.py
#	src/backend/base/hanzoflow/legacy_custom/customs.py
#	src/backend/base/hanzoflow/load/load.py
#	src/backend/base/hanzoflow/processing/expand_flow.py
#	src/backend/base/hanzoflow/processing/utils.py
#	src/backend/base/hanzoflow/services/auth/base.py
#	src/backend/base/hanzoflow/services/auth/constants.py
#	src/backend/base/hanzoflow/services/auth/exceptions.py
#	src/backend/base/hanzoflow/services/auth/mcp_encryption.py
#	src/backend/base/hanzoflow/services/chat/config.py
#	src/backend/base/hanzoflow/services/database/models/jobs/__init__.py
#	src/backend/base/hanzoflow/services/database/models/jobs/crud.py
#	src/backend/base/hanzoflow/services/database/models/jobs/model.py
#	src/backend/base/hanzoflow/services/database/session.py
#	src/backend/base/hanzoflow/services/event_manager.py
#	src/backend/base/hanzoflow/services/flow/__init__.py
#	src/backend/base/hanzoflow/services/flow/flow_runner.py
#	src/backend/base/hanzoflow/services/jobs/__init__.py
#	src/backend/base/hanzoflow/services/jobs/factory.py
#	src/backend/base/hanzoflow/services/jobs/service.py
#	src/backend/base/hanzoflow/services/settings/auth.py
#	src/backend/base/hanzoflow/services/settings/constants.py
#	src/backend/base/hanzoflow/services/settings/manager.py
#	src/backend/base/hanzoflow/services/settings/utils.py
#	src/backend/base/hanzoflow/services/socket/__init__.py
#	src/backend/base/hanzoflow/services/socket/factory.py
#	src/backend/base/hanzoflow/services/socket/service.py
#	src/backend/base/hanzoflow/services/socket/utils.py
#	src/backend/base/hanzoflow/services/storage/constants.py
#	src/backend/base/hanzoflow/services/tracing/traceloop.py
#	src/backend/base/hanzoflow/services/transaction/__init__.py
#	src/backend/base/hanzoflow/services/transaction/factory.py
#	src/backend/base/hanzoflow/services/transaction/service.py
#	src/backend/base/hanzoflow/template/frontend_node.py
#	src/backend/base/hanzoflow/template/frontend_node/base.py
#	src/backend/base/hanzoflow/template/frontend_node/constants.py
#	src/backend/base/hanzoflow/template/frontend_node/custom_components.py
#	src/backend/base/hanzoflow/template/template/base.py
#	src/backend/base/hanzoflow/tests/__init__.py
#	src/backend/base/hanzoflow/tests/api/v1/__init__.py
#	src/backend/base/hanzoflow/tests/api/v1/test_openai_responses_error.py
#	src/backend/base/hanzoflow/tests/services/database/__init__.py
#	src/backend/base/hanzoflow/tests/services/database/models/__init__.py
#	src/backend/base/hanzoflow/tests/services/database/models/transactions/__init__.py
#	src/backend/base/hanzoflow/tests/services/database/models/transactions/test_model.py
#	src/backend/base/hanzoflow/utils/async_helpers.py
#	src/backend/base/hanzoflow/utils/component_utils.py
#	src/backend/base/hanzoflow/utils/concurrency.py
#	src/backend/base/hanzoflow/utils/mcp_cleanup.py
#	src/backend/base/hanzoflow/utils/mustache_security.py
#	src/backend/base/hanzoflow/utils/registered_email_util.py
#	src/backend/base/hanzoflow/utils/template_validation.py
#	src/backend/base/hanzoflow/utils/util_strings.py
#	src/backend/base/langflow/__init__.py
#	src/backend/base/langflow/api/__init__.py
#	src/backend/base/langflow/api/utils.py
#	src/backend/base/langflow/api/v1/__init__.py
#	src/backend/base/langflow/api/v2/__init__.py
#	src/backend/base/langflow/base/__init__.py
#	src/backend/base/langflow/base/agents/__init__.py
#	src/backend/base/langflow/base/agents/callback.py
#	src/backend/base/langflow/base/agents/context.py
#	src/backend/base/langflow/base/agents/crewai/crew.py
#	src/backend/base/langflow/base/agents/crewai/tasks.py
#	src/backend/base/langflow/base/agents/default_prompts.py
#	src/backend/base/langflow/base/agents/errors.py
#	src/backend/base/langflow/base/agents/events.py
#	src/backend/base/langflow/base/agents/utils.py
#	src/backend/base/langflow/base/astra_assistants/util.py
#	src/backend/base/langflow/base/chains/model.py
#	src/backend/base/langflow/base/compressors/model.py
#	src/backend/base/langflow/base/constants.py
#	src/backend/base/langflow/base/curl/parse.py
#	src/backend/base/langflow/base/data/base_file.py
#	src/backend/base/langflow/base/document_transformers/model.py
#	src/backend/base/langflow/base/embeddings/__init__.py
#	src/backend/base/langflow/base/embeddings/aiml_embeddings.py
#	src/backend/base/langflow/base/embeddings/model.py
#	src/backend/base/langflow/base/flow_processing/utils.py
#	src/backend/base/langflow/base/huggingface/model_bridge.py
#	src/backend/base/langflow/base/langchain_utilities/model.py
#	src/backend/base/langflow/base/langchain_utilities/spider_constants.py
#	src/backend/base/langflow/base/memory/__init__.py
#	src/backend/base/langflow/base/memory/memory.py
#	src/backend/base/langflow/base/memory/model.py
#	src/backend/base/langflow/base/models/aiml_constants.py
#	src/backend/base/langflow/base/models/chat_result.py
#	src/backend/base/langflow/base/models/model.py
#	src/backend/base/langflow/base/models/model_input_constants.py
#	src/backend/base/langflow/base/models/novita_constants.py
#	src/backend/base/langflow/base/models/sambanova_constants.py
#	src/backend/base/langflow/base/prompts/__init__.py
#	src/backend/base/langflow/base/prompts/utils.py
#	src/backend/base/langflow/base/textsplitters/__init__.py
#	src/backend/base/langflow/base/textsplitters/model.py
#	src/backend/base/langflow/base/tools/__init__.py
#	src/backend/base/langflow/base/tools/base.py
#	src/backend/base/langflow/base/tools/component_tool.py
#	src/backend/base/langflow/base/tools/constants.py
#	src/backend/base/langflow/base/tools/flow_tool.py
#	src/backend/base/langflow/base/vectorstores/__init__.py
#	src/backend/base/langflow/base/vectorstores/model.py
#	src/backend/base/langflow/base/vectorstores/utils.py
#	src/backend/base/langflow/base/vectorstores/vector_store_connection_decorator.py
#	src/backend/base/langflow/components/Notion/__init__.py
#	src/backend/base/langflow/components/Notion/add_content_to_page.py
#	src/backend/base/langflow/components/Notion/create_page.py
#	src/backend/base/langflow/components/Notion/list_database_properties.py
#	src/backend/base/langflow/components/Notion/list_pages.py
#	src/backend/base/langflow/components/Notion/list_users.py
#	src/backend/base/langflow/components/Notion/page_content_viewer.py
#	src/backend/base/langflow/components/Notion/search.py
#	src/backend/base/langflow/components/Notion/update_page_property.py
#	src/backend/base/langflow/components/__init__.py
#	src/backend/base/langflow/components/agentql/__init__.py
#	src/backend/base/langflow/components/agentql/agentql_api.py
#	src/backend/base/langflow/components/apify/__init__.py
#	src/backend/base/langflow/components/apify/apify_actor.py
#	src/backend/base/langflow/components/assemblyai/assemblyai_get_subtitles.py
#	src/backend/base/langflow/components/assemblyai/assemblyai_lemur.py
#	src/backend/base/langflow/components/assemblyai/assemblyai_list_transcripts.py
#	src/backend/base/langflow/components/assemblyai/assemblyai_poll_transcript.py
#	src/backend/base/langflow/components/assemblyai/assemblyai_start_transcript.py
#	src/backend/base/langflow/components/astra_assistants/astra_assistant_manager.py
#	src/backend/base/langflow/components/astra_assistants/create_assistant.py
#	src/backend/base/langflow/components/astra_assistants/create_thread.py
#	src/backend/base/langflow/components/astra_assistants/dotenv.py
#	src/backend/base/langflow/components/astra_assistants/get_assistant.py
#	src/backend/base/langflow/components/astra_assistants/list_assistants.py
#	src/backend/base/langflow/components/astra_assistants/run.py
#	src/backend/base/langflow/components/cohere/cohere_rerank.py
#	src/backend/base/langflow/components/confluence/__init__.py
#	src/backend/base/langflow/components/confluence/confluence.py
#	src/backend/base/langflow/components/crewai/crewai.py
#	src/backend/base/langflow/components/crewai/hierarchical_crew.py
#	src/backend/base/langflow/components/crewai/hierarchical_task.py
#	src/backend/base/langflow/components/crewai/sequential_crew.py
#	src/backend/base/langflow/components/crewai/sequential_task.py
#	src/backend/base/langflow/components/crewai/sequential_task_agent.py
#	src/backend/base/langflow/components/custom_component/custom_component.py
#	src/backend/base/langflow/components/data/api_request.py
#	src/backend/base/langflow/components/data/csv_to_data.py
#	src/backend/base/langflow/components/data/directory.py
#	src/backend/base/langflow/components/data/json_to_data.py
#	src/backend/base/langflow/components/data/s3_bucket_uploader.py
#	src/backend/base/langflow/components/data/webhook.py
#	src/backend/base/langflow/components/deactivated/__init__.py
#	src/backend/base/langflow/components/deactivated/chat_litellm_model.py
#	src/backend/base/langflow/components/deactivated/code_block_extractor.py
#	src/backend/base/langflow/components/deactivated/documents_to_data.py
#	src/backend/base/langflow/components/deactivated/embed.py
#	src/backend/base/langflow/components/deactivated/extract_key_from_data.py
#	src/backend/base/langflow/components/deactivated/list_flows.py
#	src/backend/base/langflow/components/deactivated/mcp_sse.py
#	src/backend/base/langflow/components/deactivated/mcp_stdio.py
#	src/backend/base/langflow/components/deactivated/merge_data.py
#	src/backend/base/langflow/components/deactivated/message.py
#	src/backend/base/langflow/components/deactivated/selective_passthrough.py
#	src/backend/base/langflow/components/deactivated/should_run_next.py
#	src/backend/base/langflow/components/deactivated/split_text.py
#	src/backend/base/langflow/components/deactivated/store_message.py
#	src/backend/base/langflow/components/deactivated/sub_flow.py
#	src/backend/base/langflow/components/embeddings/aiml.py
#	src/backend/base/langflow/components/embeddings/amazon_bedrock.py
#	src/backend/base/langflow/components/embeddings/astra_vectorize.py
#	src/backend/base/langflow/components/embeddings/azure_openai.py
#	src/backend/base/langflow/components/embeddings/cloudflare.py
#	src/backend/base/langflow/components/embeddings/cohere.py
#	src/backend/base/langflow/components/embeddings/google_generative_ai.py
#	src/backend/base/langflow/components/embeddings/huggingface_inference_api.py
#	src/backend/base/langflow/components/embeddings/lmstudioembeddings.py
#	src/backend/base/langflow/components/embeddings/mistral.py
#	src/backend/base/langflow/components/embeddings/nvidia.py
#	src/backend/base/langflow/components/embeddings/openai.py
#	src/backend/base/langflow/components/embeddings/similarity.py
#	src/backend/base/langflow/components/embeddings/text_embedder.py
#	src/backend/base/langflow/components/embeddings/vertexai.py
#	src/backend/base/langflow/components/firecrawl/firecrawl_crawl_api.py
#	src/backend/base/langflow/components/firecrawl/firecrawl_extract_api.py
#	src/backend/base/langflow/components/firecrawl/firecrawl_map_api.py
#	src/backend/base/langflow/components/firecrawl/firecrawl_scrape_api.py
#	src/backend/base/langflow/components/git/__init__.py
#	src/backend/base/langflow/components/git/git.py
#	src/backend/base/langflow/components/git/gitextractor.py
#	src/backend/base/langflow/components/google/__init__.py
#	src/backend/base/langflow/components/google/gmail.py
#	src/backend/base/langflow/components/google/google_drive.py
#	src/backend/base/langflow/components/google/google_drive_search.py
#	src/backend/base/langflow/components/google/google_oauth_token.py
#	src/backend/base/langflow/components/helpers/create_list.py
#	src/backend/base/langflow/components/helpers/current_date.py
#	src/backend/base/langflow/components/helpers/id_generator.py
#	src/backend/base/langflow/components/helpers/output_parser.py
#	src/backend/base/langflow/components/helpers/store_message.py
#	src/backend/base/langflow/components/icosacomputing/__init__.py
#	src/backend/base/langflow/components/icosacomputing/combinatorial_reasoner.py
#	src/backend/base/langflow/components/inputs/chat.py
#	src/backend/base/langflow/components/langchain_utilities/character.py
#	src/backend/base/langflow/components/langchain_utilities/conversation.py
#	src/backend/base/langflow/components/langchain_utilities/fake_embeddings.py
#	src/backend/base/langflow/components/langchain_utilities/html_link_extractor.py
#	src/backend/base/langflow/components/langchain_utilities/json_document_builder.py
#	src/backend/base/langflow/components/langchain_utilities/langchain_hub.py
#	src/backend/base/langflow/components/langchain_utilities/language_recursive.py
#	src/backend/base/langflow/components/langchain_utilities/language_semantic.py
#	src/backend/base/langflow/components/langchain_utilities/llm_checker.py
#	src/backend/base/langflow/components/langchain_utilities/llm_math.py
#	src/backend/base/langflow/components/langchain_utilities/natural_language.py
#	src/backend/base/langflow/components/langchain_utilities/openai_tools.py
#	src/backend/base/langflow/components/langchain_utilities/openapi.py
#	src/backend/base/langflow/components/langchain_utilities/recursive_character.py
#	src/backend/base/langflow/components/langchain_utilities/retrieval_qa.py
#	src/backend/base/langflow/components/langchain_utilities/runnable_executor.py
#	src/backend/base/langflow/components/langchain_utilities/self_query.py
#	src/backend/base/langflow/components/langchain_utilities/spider.py
#	src/backend/base/langflow/components/langchain_utilities/sql.py
#	src/backend/base/langflow/components/langchain_utilities/sql_database.py
#	src/backend/base/langflow/components/langchain_utilities/sql_generator.py
#	src/backend/base/langflow/components/langchain_utilities/vector_store_info.py
#	src/backend/base/langflow/components/langchain_utilities/vector_store_router.py
#	src/backend/base/langflow/components/langchain_utilities/xml_agent.py
#	src/backend/base/langflow/components/langwatch/__init__.py
#	src/backend/base/langflow/components/langwatch/langwatch.py
#	src/backend/base/langflow/components/logic/conditional_router.py
#	src/backend/base/langflow/components/logic/data_conditional_router.py
#	src/backend/base/langflow/components/logic/flow_tool.py
#	src/backend/base/langflow/components/logic/pass_message.py
#	src/backend/base/langflow/components/logic/sub_flow.py
#	src/backend/base/langflow/components/memories/cassandra.py
#	src/backend/base/langflow/components/memories/mem0_chat_memory.py
#	src/backend/base/langflow/components/memories/redis.py
#	src/backend/base/langflow/components/memories/zep.py
#	src/backend/base/langflow/components/models/aiml.py
#	src/backend/base/langflow/components/models/amazon_bedrock.py
#	src/backend/base/langflow/components/models/anthropic.py
#	src/backend/base/langflow/components/models/azure_openai.py
#	src/backend/base/langflow/components/models/baidu_qianfan_chat.py
#	src/backend/base/langflow/components/models/cohere.py
#	src/backend/base/langflow/components/models/deepseek.py
#	src/backend/base/langflow/components/models/google_generative_ai.py
#	src/backend/base/langflow/components/models/groq.py
#	src/backend/base/langflow/components/models/huggingface.py
#	src/backend/base/langflow/components/models/lmstudiomodel.py
#	src/backend/base/langflow/components/models/maritalk.py
#	src/backend/base/langflow/components/models/mistral.py
#	src/backend/base/langflow/components/models/novita.py
#	src/backend/base/langflow/components/models/nvidia.py
#	src/backend/base/langflow/components/models/perplexity.py
#	src/backend/base/langflow/components/models/sambanova.py
#	src/backend/base/langflow/components/models/vertexai.py
#	src/backend/base/langflow/components/models/watsonx.py
#	src/backend/base/langflow/components/models/xai.py
#	src/backend/base/langflow/components/needle/__init__.py
#	src/backend/base/langflow/components/needle/needle.py
#	src/backend/base/langflow/components/notdiamond/notdiamond.py
#	src/backend/base/langflow/components/nvidia/nvidia_rerank.py
#	src/backend/base/langflow/components/olivya/__init__.py
#	src/backend/base/langflow/components/olivya/olivya.py
#	src/backend/base/langflow/components/outputs/chat.py
#	src/backend/base/langflow/components/outputs/text.py
#	src/backend/base/langflow/components/processing/alter_metadata.py
#	src/backend/base/langflow/components/processing/combine_text.py
#	src/backend/base/langflow/components/processing/create_data.py
#	src/backend/base/langflow/components/processing/data_to_dataframe.py
#	src/backend/base/langflow/components/processing/extract_key.py
#	src/backend/base/langflow/components/processing/filter_data.py
#	src/backend/base/langflow/components/processing/filter_data_values.py
#	src/backend/base/langflow/components/processing/json_cleaner.py
#	src/backend/base/langflow/components/processing/merge_data.py
#	src/backend/base/langflow/components/processing/message_to_data.py
#	src/backend/base/langflow/components/processing/parse_data.py
#	src/backend/base/langflow/components/processing/parse_dataframe.py
#	src/backend/base/langflow/components/processing/parse_json_data.py
#	src/backend/base/langflow/components/processing/parser.py
#	src/backend/base/langflow/components/processing/regex.py
#	src/backend/base/langflow/components/processing/select_data.py
#	src/backend/base/langflow/components/processing/split_text.py
#	src/backend/base/langflow/components/processing/update_data.py
#	src/backend/base/langflow/components/prototypes/python_function.py
#	src/backend/base/langflow/components/scrapegraph/scrapegraph_markdownify_api.py
#	src/backend/base/langflow/components/scrapegraph/scrapegraph_search_api.py
#	src/backend/base/langflow/components/scrapegraph/scrapegraph_smart_scraper_api.py
#	src/backend/base/langflow/components/tools/arxiv.py
#	src/backend/base/langflow/components/tools/astradb.py
#	src/backend/base/langflow/components/tools/astradb_cql.py
#	src/backend/base/langflow/components/tools/bing_search_api.py
#	src/backend/base/langflow/components/tools/calculator.py
#	src/backend/base/langflow/components/tools/calculator_core.py
#	src/backend/base/langflow/components/tools/duck_duck_go_search_run.py
#	src/backend/base/langflow/components/tools/exa_search.py
#	src/backend/base/langflow/components/tools/glean_search_api.py
#	src/backend/base/langflow/components/tools/google_search_api.py
#	src/backend/base/langflow/components/tools/google_search_api_core.py
#	src/backend/base/langflow/components/tools/google_serper_api.py
#	src/backend/base/langflow/components/tools/google_serper_api_core.py
#	src/backend/base/langflow/components/tools/python_code_structured_tool.py
#	src/backend/base/langflow/components/tools/python_repl.py
#	src/backend/base/langflow/components/tools/python_repl_core.py
#	src/backend/base/langflow/components/tools/search.py
#	src/backend/base/langflow/components/tools/search_api.py
#	src/backend/base/langflow/components/tools/searxng.py
#	src/backend/base/langflow/components/tools/serp.py
#	src/backend/base/langflow/components/tools/serp_api.py
#	src/backend/base/langflow/components/tools/tavily_search.py
#	src/backend/base/langflow/components/tools/wikidata.py
#	src/backend/base/langflow/components/tools/wikidata_api.py
#	src/backend/base/langflow/components/tools/wikipedia.py
#	src/backend/base/langflow/components/tools/wikipedia_api.py
#	src/backend/base/langflow/components/tools/wolfram_alpha_api.py
#	src/backend/base/langflow/components/tools/yahoo.py
#	src/backend/base/langflow/components/tools/yahoo_finance.py
#	src/backend/base/langflow/components/unstructured/__init__.py
#	src/backend/base/langflow/components/unstructured/unstructured.py
#	src/backend/base/langflow/components/vectorstores/astradb.py
#	src/backend/base/langflow/components/vectorstores/astradb_graph.py
#	src/backend/base/langflow/components/vectorstores/cassandra.py
#	src/backend/base/langflow/components/vectorstores/cassandra_graph.py
#	src/backend/base/langflow/components/vectorstores/chroma.py
#	src/backend/base/langflow/components/vectorstores/clickhouse.py
#	src/backend/base/langflow/components/vectorstores/couchbase.py
#	src/backend/base/langflow/components/vectorstores/elasticsearch.py
#	src/backend/base/langflow/components/vectorstores/faiss.py
#	src/backend/base/langflow/components/vectorstores/graph_rag.py
#	src/backend/base/langflow/components/vectorstores/hcd.py
#	src/backend/base/langflow/components/vectorstores/milvus.py
#	src/backend/base/langflow/components/vectorstores/mongodb_atlas.py
#	src/backend/base/langflow/components/vectorstores/pgvector.py
#	src/backend/base/langflow/components/vectorstores/pinecone.py
#	src/backend/base/langflow/components/vectorstores/qdrant.py
#	src/backend/base/langflow/components/vectorstores/redis.py
#	src/backend/base/langflow/components/vectorstores/supabase.py
#	src/backend/base/langflow/components/vectorstores/upstash.py
#	src/backend/base/langflow/components/vectorstores/vectara.py
#	src/backend/base/langflow/components/vectorstores/vectara_rag.py
#	src/backend/base/langflow/components/vectorstores/weaviate.py
#	src/backend/base/langflow/components/youtube/channel.py
#	src/backend/base/langflow/components/youtube/comments.py
#	src/backend/base/langflow/components/youtube/playlist.py
#	src/backend/base/langflow/components/youtube/search.py
#	src/backend/base/langflow/components/youtube/trending.py
#	src/backend/base/langflow/components/youtube/video_details.py
#	src/backend/base/langflow/custom/__init__.py
#	src/backend/base/langflow/custom/attributes.py
#	src/backend/base/langflow/custom/code_parser/__init__.py
#	src/backend/base/langflow/custom/code_parser/code_parser.py
#	src/backend/base/langflow/custom/custom_component/__init__.py
#	src/backend/base/langflow/custom/custom_component/base_component.py
#	src/backend/base/langflow/custom/directory_reader/__init__.py
#	src/backend/base/langflow/custom/directory_reader/directory_reader.py
#	src/backend/base/langflow/custom/directory_reader/utils.py
#	src/backend/base/langflow/custom/eval.py
#	src/backend/base/langflow/custom/schema.py
#	src/backend/base/langflow/custom/tree_visitor.py
#	src/backend/base/langflow/graph/__init__.py
#	src/backend/base/langflow/graph/edge/base.py
#	src/backend/base/langflow/graph/edge/schema.py
#	src/backend/base/langflow/graph/graph/ascii.py
#	src/backend/base/langflow/graph/graph/base.py
#	src/backend/base/langflow/graph/graph/constants.py
#	src/backend/base/langflow/graph/graph/runnable_vertices_manager.py
#	src/backend/base/langflow/graph/graph/schema.py
#	src/backend/base/langflow/graph/graph/state_model.py
#	src/backend/base/langflow/graph/graph/utils.py
#	src/backend/base/langflow/graph/schema.py
#	src/backend/base/langflow/graph/state/model.py
#	src/backend/base/langflow/graph/vertex/base.py
#	src/backend/base/langflow/graph/vertex/exceptions.py
#	src/backend/base/langflow/graph/vertex/param_handler.py
#	src/backend/base/langflow/graph/vertex/schema.py
#	src/backend/base/langflow/graph/vertex/utils.py
#	src/backend/base/langflow/graph/vertex/vertex_types.py
#	src/backend/base/langflow/initial_setup/starter_projects/LoopTemplate.json
#	src/backend/base/langflow/interface/__init__.py
#	src/backend/base/langflow/load/load.py
#	src/backend/base/langflow/processing/utils.py
#	src/backend/base/langflow/services/chat/config.py
#	src/backend/base/langflow/services/settings/constants.py
#	src/backend/base/langflow/services/storage/__init__.py
#	src/backend/base/langflow/template/__init__.py
#	src/backend/base/langflow/template/field/__init__.py
#	src/backend/base/langflow/template/frontend_node/base.py
#	src/backend/base/langflow/template/frontend_node/constants.py
#	src/backend/base/langflow/template/frontend_node/custom_components.py
#	src/backend/base/langflow/template/template/base.py
#	src/backend/base/langflow/utils/async_helpers.py
#	src/backend/base/langflow/utils/concurrency.py
#	src/backend/base/langflow/utils/util_strings.py
#	src/backend/tests/unit/components/agents/test_agent_component.py
#	src/backend/tests/unit/components/agents/test_agent_events.py
#	src/backend/tests/unit/components/bundles/composio/test_gmail_api.py
#	src/backend/tests/unit/components/data/test_api_request_component.py
#	src/backend/tests/unit/components/data/test_url_component.py
#	src/backend/tests/unit/components/helpers/test_batch_run_component.py
#	src/backend/tests/unit/components/helpers/test_structured_output_component.py
#	src/backend/tests/unit/components/logic/test_loop.py
#	src/backend/tests/unit/components/models/test_chatollama_component.py
#	src/backend/tests/unit/components/models/test_language_model_component.py
#	src/backend/tests/unit/components/processing/test_lambda_filter.py
#	src/backend/tests/unit/components/processing/test_save_to_file_component.py
#	src/backend/tests/unit/components/tools/test_mcp_component.py
#	src/backend/tests/unit/graph/graph/test_base.py
#	src/backend/tests/unit/schema/test_image.py
#	src/backend/tests/unit/test_messages.py
#	src/backend/tests/unit/test_user.py
#	src/frontend/favicon-new.ico
#	src/frontend/src/assets/logo.svg
#	src/frontend/src/modals/apiModal/utils/get-python-code.tsx
#	src/frontend/src/modals/apiModal/utils/tabs-array.tsx
#	src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx
#	src/lfx/src/lfx/base/agents/callback.py
#	src/lfx/src/lfx/base/agents/context.py
#	src/lfx/src/lfx/base/agents/crewai/crew.py
#	src/lfx/src/lfx/base/agents/crewai/tasks.py
#	src/lfx/src/lfx/base/agents/default_prompts.py
#	src/lfx/src/lfx/base/agents/errors.py
#	src/lfx/src/lfx/base/agents/events.py
#	src/lfx/src/lfx/base/agents/utils.py
#	src/lfx/src/lfx/base/astra_assistants/util.py
#	src/lfx/src/lfx/base/chains/model.py
#	src/lfx/src/lfx/base/compressors/model.py
#	src/lfx/src/lfx/base/constants.py
#	src/lfx/src/lfx/base/curl/parse.py
#	src/lfx/src/lfx/base/data/base_file.py
#	src/lfx/src/lfx/base/datastax/astradb_base.py
#	src/lfx/src/lfx/base/document_transformers/model.py
#	src/lfx/src/lfx/base/embeddings/aiml_embeddings.py
#	src/lfx/src/lfx/base/embeddings/model.py
#	src/lfx/src/lfx/base/flow_processing/utils.py
#	src/lfx/src/lfx/base/huggingface/model_bridge.py
#	src/lfx/src/lfx/base/langchain_utilities/model.py
#	src/lfx/src/lfx/base/langchain_utilities/spider_constants.py
#	src/lfx/src/lfx/base/memory/memory.py
#	src/lfx/src/lfx/base/memory/model.py
#	src/lfx/src/lfx/base/models/aiml_constants.py
#	src/lfx/src/lfx/base/models/chat_result.py
#	src/lfx/src/lfx/base/models/model.py
#	src/lfx/src/lfx/base/models/model_input_constants.py
#	src/lfx/src/lfx/base/models/novita_constants.py
#	src/lfx/src/lfx/base/models/sambanova_constants.py
#	src/lfx/src/lfx/base/prompts/utils.py
#	src/lfx/src/lfx/base/textsplitters/model.py
#	src/lfx/src/lfx/base/tools/base.py
#	src/lfx/src/lfx/base/tools/component_tool.py
#	src/lfx/src/lfx/base/tools/constants.py
#	src/lfx/src/lfx/base/tools/flow_tool.py
#	src/lfx/src/lfx/base/vectorstores/model.py
#	src/lfx/src/lfx/base/vectorstores/utils.py
#	src/lfx/src/lfx/base/vectorstores/vector_store_connection_decorator.py
#	src/lfx/src/lfx/components/FAISS/faiss.py
#	src/lfx/src/lfx/components/Notion/__init__.py
#	src/lfx/src/lfx/components/Notion/add_content_to_page.py
#	src/lfx/src/lfx/components/Notion/create_page.py
#	src/lfx/src/lfx/components/Notion/list_database_properties.py
#	src/lfx/src/lfx/components/Notion/list_pages.py
#	src/lfx/src/lfx/components/Notion/list_users.py
#	src/lfx/src/lfx/components/Notion/page_content_viewer.py
#	src/lfx/src/lfx/components/Notion/search.py
#	src/lfx/src/lfx/components/Notion/update_page_property.py
#	src/lfx/src/lfx/components/agentql/__init__.py
#	src/lfx/src/lfx/components/agentql/agentql_api.py
#	src/lfx/src/lfx/components/aiml/aiml.py
#	src/lfx/src/lfx/components/aiml/aiml_embeddings.py
#	src/lfx/src/lfx/components/amazon/amazon_bedrock_embedding.py
#	src/lfx/src/lfx/components/amazon/amazon_bedrock_model.py
#	src/lfx/src/lfx/components/amazon/s3_bucket_uploader.py
#	src/lfx/src/lfx/components/anthropic/anthropic.py
#	src/lfx/src/lfx/components/apify/__init__.py
#	src/lfx/src/lfx/components/apify/apify_actor.py
#	src/lfx/src/lfx/components/arxiv/arxiv.py
#	src/lfx/src/lfx/components/assemblyai/assemblyai_get_subtitles.py
#	src/lfx/src/lfx/components/assemblyai/assemblyai_lemur.py
#	src/lfx/src/lfx/components/assemblyai/assemblyai_list_transcripts.py
#	src/lfx/src/lfx/components/assemblyai/assemblyai_poll_transcript.py
#	src/lfx/src/lfx/components/assemblyai/assemblyai_start_transcript.py
#	src/lfx/src/lfx/components/azure/azure_openai.py
#	src/lfx/src/lfx/components/azure/azure_openai_embeddings.py
#	src/lfx/src/lfx/components/baidu/baidu_qianfan_chat.py
#	src/lfx/src/lfx/components/bing/bing_search_api.py
#	src/lfx/src/lfx/components/cassandra/cassandra.py
#	src/lfx/src/lfx/components/cassandra/cassandra_chat.py
#	src/lfx/src/lfx/components/cassandra/cassandra_graph.py
#	src/lfx/src/lfx/components/chroma/chroma.py
#	src/lfx/src/lfx/components/clickhouse/clickhouse.py
#	src/lfx/src/lfx/components/cloudflare/cloudflare.py
#	src/lfx/src/lfx/components/cohere/cohere_embeddings.py
#	src/lfx/src/lfx/components/cohere/cohere_models.py
#	src/lfx/src/lfx/components/cohere/cohere_rerank.py
#	src/lfx/src/lfx/components/confluence/__init__.py
#	src/lfx/src/lfx/components/confluence/confluence.py
#	src/lfx/src/lfx/components/couchbase/couchbase.py
#	src/lfx/src/lfx/components/crewai/crewai.py
#	src/lfx/src/lfx/components/crewai/hierarchical_crew.py
#	src/lfx/src/lfx/components/crewai/hierarchical_task.py
#	src/lfx/src/lfx/components/crewai/sequential_crew.py
#	src/lfx/src/lfx/components/crewai/sequential_task.py
#	src/lfx/src/lfx/components/crewai/sequential_task_agent.py
#	src/lfx/src/lfx/components/custom_component/custom_component.py
#	src/lfx/src/lfx/components/data_source/api_request.py
#	src/lfx/src/lfx/components/data_source/csv_to_data.py
#	src/lfx/src/lfx/components/data_source/json_to_data.py
#	src/lfx/src/lfx/components/datastax/astradb_assistant_manager.py
#	src/lfx/src/lfx/components/datastax/astradb_cql.py
#	src/lfx/src/lfx/components/datastax/astradb_graph.py
#	src/lfx/src/lfx/components/datastax/astradb_tool.py
#	src/lfx/src/lfx/components/datastax/astradb_vectorize.py
#	src/lfx/src/lfx/components/datastax/create_assistant.py
#	src/lfx/src/lfx/components/datastax/create_thread.py
#	src/lfx/src/lfx/components/datastax/dotenv.py
#	src/lfx/src/lfx/components/datastax/get_assistant.py
#	src/lfx/src/lfx/components/datastax/graph_rag.py
#	src/lfx/src/lfx/components/datastax/hcd.py
#	src/lfx/src/lfx/components/datastax/list_assistants.py
#	src/lfx/src/lfx/components/datastax/run.py
#	src/lfx/src/lfx/components/deactivated/__init__.py
#	src/lfx/src/lfx/components/deactivated/chat_litellm_model.py
#	src/lfx/src/lfx/components/deactivated/code_block_extractor.py
#	src/lfx/src/lfx/components/deactivated/documents_to_data.py
#	src/lfx/src/lfx/components/deactivated/embed.py
#	src/lfx/src/lfx/components/deactivated/extract_key_from_data.py
#	src/lfx/src/lfx/components/deactivated/json_document_builder.py
#	src/lfx/src/lfx/components/deactivated/list_flows.py
#	src/lfx/src/lfx/components/deactivated/mcp_sse.py
#	src/lfx/src/lfx/components/deactivated/mcp_stdio.py
#	src/lfx/src/lfx/components/deactivated/merge_data.py
#	src/lfx/src/lfx/components/deactivated/message.py
#	src/lfx/src/lfx/components/deactivated/selective_passthrough.py
#	src/lfx/src/lfx/components/deactivated/should_run_next.py
#	src/lfx/src/lfx/components/deactivated/split_text.py
#	src/lfx/src/lfx/components/deactivated/store_message.py
#	src/lfx/src/lfx/components/deactivated/sub_flow.py
#	src/lfx/src/lfx/components/deepseek/deepseek.py
#	src/lfx/src/lfx/components/duckduckgo/duck_duck_go_search_run.py
#	src/lfx/src/lfx/components/elastic/elasticsearch.py
#	src/lfx/src/lfx/components/embeddings/similarity.py
#	src/lfx/src/lfx/components/embeddings/text_embedder.py
#	src/lfx/src/lfx/components/exa/exa_search.py
#	src/lfx/src/lfx/components/files_and_knowledge/directory.py
#	src/lfx/src/lfx/components/firecrawl/firecrawl_crawl_api.py
#	src/lfx/src/lfx/components/firecrawl/firecrawl_extract_api.py
#	src/lfx/src/lfx/components/firecrawl/firecrawl_map_api.py
#	src/lfx/src/lfx/components/firecrawl/firecrawl_scrape_api.py
#	src/lfx/src/lfx/components/flow_controls/conditional_router.py
#	src/lfx/src/lfx/components/flow_controls/data_conditional_router.py
#	src/lfx/src/lfx/components/flow_controls/flow_tool.py
#	src/lfx/src/lfx/components/flow_controls/pass_message.py
#	src/lfx/src/lfx/components/flow_controls/sub_flow.py
#	src/lfx/src/lfx/components/git/__init__.py
#	src/lfx/src/lfx/components/git/git.py
#	src/lfx/src/lfx/components/git/gitextractor.py
#	src/lfx/src/lfx/components/glean/glean_search_api.py
#	src/lfx/src/lfx/components/google/__init__.py
#	src/lfx/src/lfx/components/google/gmail.py
#	src/lfx/src/lfx/components/google/google_drive.py
#	src/lfx/src/lfx/components/google/google_drive_search.py
#	src/lfx/src/lfx/components/google/google_generative_ai.py
#	src/lfx/src/lfx/components/google/google_generative_ai_embeddings.py
#	src/lfx/src/lfx/components/google/google_oauth_token.py
#	src/lfx/src/lfx/components/google/google_search_api_core.py
#	src/lfx/src/lfx/components/google/google_serper_api_core.py
#	src/lfx/src/lfx/components/groq/groq.py
#	src/lfx/src/lfx/components/huggingface/huggingface.py
#	src/lfx/src/lfx/components/huggingface/huggingface_inference_api.py
#	src/lfx/src/lfx/components/ibm/watsonx.py
#	src/lfx/src/lfx/components/icosacomputing/__init__.py
#	src/lfx/src/lfx/components/icosacomputing/combinatorial_reasoner.py
#	src/lfx/src/lfx/components/input_output/chat.py
#	src/lfx/src/lfx/components/input_output/chat_output.py
#	src/lfx/src/lfx/components/input_output/text_output.py
#	src/lfx/src/lfx/components/input_output/webhook.py
#	src/lfx/src/lfx/components/langchain_utilities/character.py
#	src/lfx/src/lfx/components/langchain_utilities/conversation.py
#	src/lfx/src/lfx/components/langchain_utilities/fake_embeddings.py
#	src/lfx/src/lfx/components/langchain_utilities/html_link_extractor.py
#	src/lfx/src/lfx/components/langchain_utilities/langchain_hub.py
#	src/lfx/src/lfx/components/langchain_utilities/language_recursive.py
#	src/lfx/src/lfx/components/langchain_utilities/language_semantic.py
#	src/lfx/src/lfx/components/langchain_utilities/llm_checker.py
#	src/lfx/src/lfx/components/langchain_utilities/llm_math.py
#	src/lfx/src/lfx/components/langchain_utilities/natural_language.py
#	src/lfx/src/lfx/components/langchain_utilities/openai_tools.py
#	src/lfx/src/lfx/components/langchain_utilities/openapi.py
#	src/lfx/src/lfx/components/langchain_utilities/recursive_character.py
#	src/lfx/src/lfx/components/langchain_utilities/retrieval_qa.py
#	src/lfx/src/lfx/components/langchain_utilities/runnable_executor.py
#	src/lfx/src/lfx/components/langchain_utilities/self_query.py
#	src/lfx/src/lfx/components/langchain_utilities/spider.py
#	src/lfx/src/lfx/components/langchain_utilities/sql.py
#	src/lfx/src/lfx/components/langchain_utilities/sql_database.py
#	src/lfx/src/lfx/components/langchain_utilities/sql_generator.py
#	src/lfx/src/lfx/components/langchain_utilities/vector_store_info.py
#	src/lfx/src/lfx/components/langchain_utilities/vector_store_router.py
#	src/lfx/src/lfx/components/langchain_utilities/xml_agent.py
#	src/lfx/src/lfx/components/langwatch/__init__.py
#	src/lfx/src/lfx/components/langwatch/langwatch.py
#	src/lfx/src/lfx/components/lmstudio/lmstudioembeddings.py
#	src/lfx/src/lfx/components/lmstudio/lmstudiomodel.py
#	src/lfx/src/lfx/components/maritalk/maritalk.py
#	src/lfx/src/lfx/components/mem0/mem0_chat_memory.py
#	src/lfx/src/lfx/components/milvus/milvus.py
#	src/lfx/src/lfx/components/mistral/mistral.py
#	src/lfx/src/lfx/components/mistral/mistral_embeddings.py
#	src/lfx/src/lfx/components/mongodb/mongodb_atlas.py
#	src/lfx/src/lfx/components/needle/__init__.py
#	src/lfx/src/lfx/components/needle/needle.py
#	src/lfx/src/lfx/components/notdiamond/notdiamond.py
#	src/lfx/src/lfx/components/novita/novita.py
#	src/lfx/src/lfx/components/nvidia/nvidia.py
#	src/lfx/src/lfx/components/nvidia/nvidia_embedding.py
#	src/lfx/src/lfx/components/nvidia/nvidia_rerank.py
#	src/lfx/src/lfx/components/olivya/__init__.py
#	src/lfx/src/lfx/components/olivya/olivya.py
#	src/lfx/src/lfx/components/openai/openai.py
#	src/lfx/src/lfx/components/perplexity/perplexity.py
#	src/lfx/src/lfx/components/pgvector/pgvector.py
#	src/lfx/src/lfx/components/pinecone/pinecone.py
#	src/lfx/src/lfx/components/processing/alter_metadata.py
#	src/lfx/src/lfx/components/processing/combine_text.py
#	src/lfx/src/lfx/components/processing/create_data.py
#	src/lfx/src/lfx/components/processing/create_list.py
#	src/lfx/src/lfx/components/processing/data_to_dataframe.py
#	src/lfx/src/lfx/components/processing/extract_key.py
#	src/lfx/src/lfx/components/processing/filter_data.py
#	src/lfx/src/lfx/components/processing/filter_data_values.py
#	src/lfx/src/lfx/components/processing/json_cleaner.py
#	src/lfx/src/lfx/components/processing/merge_data.py
#	src/lfx/src/lfx/components/processing/message_to_data.py
#	src/lfx/src/lfx/components/processing/output_parser.py
#	src/lfx/src/lfx/components/processing/parse_data.py
#	src/lfx/src/lfx/components/processing/parse_dataframe.py
#	src/lfx/src/lfx/components/processing/parse_json_data.py
#	src/lfx/src/lfx/components/processing/parser.py
#	src/lfx/src/lfx/components/processing/regex.py
#	src/lfx/src/lfx/components/processing/select_data.py
#	src/lfx/src/lfx/components/processing/split_text.py
#	src/lfx/src/lfx/components/processing/store_message.py
#	src/lfx/src/lfx/components/processing/update_data.py
#	src/lfx/src/lfx/components/prototypes/python_function.py
#	src/lfx/src/lfx/components/qdrant/qdrant.py
#	src/lfx/src/lfx/components/redis/redis.py
#	src/lfx/src/lfx/components/redis/redis_chat.py
#	src/lfx/src/lfx/components/sambanova/sambanova.py
#	src/lfx/src/lfx/components/scrapegraph/scrapegraph_markdownify_api.py
#	src/lfx/src/lfx/components/scrapegraph/scrapegraph_search_api.py
#	src/lfx/src/lfx/components/scrapegraph/scrapegraph_smart_scraper_api.py
#	src/lfx/src/lfx/components/searchapi/search.py
#	src/lfx/src/lfx/components/serpapi/serp.py
#	src/lfx/src/lfx/components/supabase/supabase.py
#	src/lfx/src/lfx/components/tools/calculator.py
#	src/lfx/src/lfx/components/tools/google_search_api.py
#	src/lfx/src/lfx/components/tools/google_serper_api.py
#	src/lfx/src/lfx/components/tools/python_code_structured_tool.py
#	src/lfx/src/lfx/components/tools/python_repl.py
#	src/lfx/src/lfx/components/tools/search_api.py
#	src/lfx/src/lfx/components/tools/searxng.py
#	src/lfx/src/lfx/components/tools/serp_api.py
#	src/lfx/src/lfx/components/tools/tavily_search_tool.py
#	src/lfx/src/lfx/components/tools/wikidata_api.py
#	src/lfx/src/lfx/components/tools/wikipedia_api.py
#	src/lfx/src/lfx/components/tools/yahoo_finance.py
#	src/lfx/src/lfx/components/unstructured/__init__.py
#	src/lfx/src/lfx/components/unstructured/unstructured.py
#	src/lfx/src/lfx/components/upstash/upstash.py
#	src/lfx/src/lfx/components/utilities/calculator_core.py
#	src/lfx/src/lfx/components/utilities/current_date.py
#	src/lfx/src/lfx/components/utilities/id_generator.py
#	src/lfx/src/lfx/components/utilities/python_repl_core.py
#	src/lfx/src/lfx/components/vectara/vectara.py
#	src/lfx/src/lfx/components/vectara/vectara_rag.py
#	src/lfx/src/lfx/components/vertexai/vertexai.py
#	src/lfx/src/lfx/components/vertexai/vertexai_embeddings.py
#	src/lfx/src/lfx/components/weaviate/weaviate.py
#	src/lfx/src/lfx/components/wikipedia/wikidata.py
#	src/lfx/src/lfx/components/wikipedia/wikipedia.py
#	src/lfx/src/lfx/components/wolframalpha/wolfram_alpha_api.py
#	src/lfx/src/lfx/components/xai/xai.py
#	src/lfx/src/lfx/components/yahoosearch/yahoo.py
#	src/lfx/src/lfx/components/youtube/channel.py
#	src/lfx/src/lfx/components/youtube/comments.py
#	src/lfx/src/lfx/components/youtube/playlist.py
#	src/lfx/src/lfx/components/youtube/search.py
#	src/lfx/src/lfx/components/youtube/trending.py
#	src/lfx/src/lfx/components/youtube/video_details.py
#	src/lfx/src/lfx/components/zep/zep.py
#	src/lfx/src/lfx/custom/attributes.py
#	src/lfx/src/lfx/custom/code_parser/__init__.py
#	src/lfx/src/lfx/custom/code_parser/code_parser.py
#	src/lfx/src/lfx/custom/custom_component/base_component.py
#	src/lfx/src/lfx/custom/directory_reader/__init__.py
#	src/lfx/src/lfx/custom/directory_reader/directory_reader.py
#	src/lfx/src/lfx/custom/directory_reader/utils.py
#	src/lfx/src/lfx/custom/eval.py
#	src/lfx/src/lfx/custom/schema.py
#	src/lfx/src/lfx/custom/tree_visitor.py
#	src/lfx/src/lfx/graph/edge/base.py
#	src/lfx/src/lfx/graph/edge/schema.py
#	src/lfx/src/lfx/graph/graph/ascii.py
#	src/lfx/src/lfx/graph/graph/base.py
#	src/lfx/src/lfx/graph/graph/constants.py
#	src/lfx/src/lfx/graph/graph/runnable_vertices_manager.py
#	src/lfx/src/lfx/graph/graph/schema.py
#	src/lfx/src/lfx/graph/graph/state_model.py
#	src/lfx/src/lfx/graph/graph/utils.py
#	src/lfx/src/lfx/graph/schema.py
#	src/lfx/src/lfx/graph/state/model.py
#	src/lfx/src/lfx/graph/vertex/base.py
#	src/lfx/src/lfx/graph/vertex/exceptions.py
#	src/lfx/src/lfx/graph/vertex/param_handler.py
#	src/lfx/src/lfx/graph/vertex/schema.py
#	src/lfx/src/lfx/graph/vertex/utils.py
#	src/lfx/src/lfx/graph/vertex/vertex_types.py
#	src/lfx/src/lfx/load/load.py
#	src/lfx/src/lfx/processing/utils.py
#	src/lfx/src/lfx/services/chat/config.py
#	src/lfx/src/lfx/services/settings/constants.py
#	src/lfx/src/lfx/template/frontend_node/base.py
#	src/lfx/src/lfx/template/frontend_node/constants.py
#	src/lfx/src/lfx/template/frontend_node/custom_components.py
#	src/lfx/src/lfx/template/template/base.py
#	src/lfx/src/lfx/utils/async_helpers.py
#	src/lfx/src/lfx/utils/concurrency.py
#	src/lfx/src/lfx/utils/util_strings.py
2026-02-22 01:18:46 -08:00
zeekay 082f79ada1 chore: sync uncommitted changes 2026-02-14 07:26:14 -08:00
zeekayandGitHub 30efe423f9 Merge pull request #5 from hanzoai/dependabot/github_actions/docker/build-push-action-6
build(deps):(deps): bump docker/build-push-action from 5 to 6
2026-01-28 09:38:16 -08:00
zeekayandGitHub 953777e949 Merge pull request #6 from hanzoai/dependabot/github_actions/actions/cache-4
build(deps):(deps): bump actions/cache from 3 to 4
2026-01-28 09:38:12 -08:00
zeekayandGitHub 14d0cedde4 Merge pull request #7 from hanzoai/dependabot/github_actions/actions/checkout-5
build(deps):(deps): bump actions/checkout from 3 to 5
2026-01-28 09:38:08 -08:00
zeekayandGitHub ebd0a859b4 Merge pull request #3 from hanzoai/dependabot/github_actions/autofix-ci/action-635ffb0c9798bd160680f18fd73371e355b85f27
build(deps):(deps): bump autofix-ci/action from 551dded8c6cc8a1054039c8bc0b8b48c51dfc6ef to 635ffb0c9798bd160680f18fd73371e355b85f27
2026-01-28 09:32:46 -08:00
zeekayandGitHub 78074641d5 Merge pull request #8 from hanzoai/dependabot/github_actions/actions/setup-python-6
build(deps):(deps): bump actions/setup-python from 4 to 6
2026-01-28 09:32:36 -08:00
zeekayandGitHub e706f8de46 Merge pull request #2 from hanzoai/update-openapi-spec-1744056287
docs: OpenAPI spec version upgraded from 1.2.0 to 1.3.2
2026-01-28 09:29:13 -08:00
zeekay 527a2f3e48 fix: Add Docker Buildx setup to fix cache configuration
- Add docker/setup-buildx-action@v3 step
- Fixes 'Cache export not supported for docker driver' error
- Enables GitHub Actions cache for faster builds
2025-08-16 23:15:33 -05:00
zeekay 812bc25b91 feat: Add Docker publish workflow for ghcr.io
- Build and push Docker images to GitHub Container Registry
- Support for semantic versioning tags
- Automatic builds on main branch and PRs
- GitHub Actions caching for faster builds
2025-07-24 03:29:08 -05:00
zeekay 90f5d0e024 feat: Add GitHub Actions workflow for Docker builds
- Add docker-publish.yml workflow for ghcr.io
- Add production-ready Dockerfile (if missing)
- Enable automated builds on push to main
- Support for semantic versioning tags
2025-07-23 23:06:25 -05:00
zeekay 8c64b2b167 Fix test workflow for Python-based Flow project
- Switch from Node.js to Python 3.10
- Use uv for dependency management
- Update commands for Python tooling (ruff, mypy, pytest)
- Fix Semgrep config for Python/FastAPI
- Update workflow validation command
2025-07-06 07:17:46 -04:00
zeekay b60abdb767 Add test workflow for Flow visual workflow builder
- Add tests with PostgreSQL and MongoDB services
- Include workflow validation tests
- Add Docker build testing
- Set up dependency caching for faster builds
- Include security scanning with Semgrep
2025-07-05 15:39:06 -04:00
zeekayandgithub-actions[bot] 72e9ee18d3 docs: OpenAPI spec version upgraded from 1.2.0 to 1.3.2 2025-04-07 20:04:47 +00:00