Full Code of FlowiseAI/Flowise for AI

main 03a0cf6b3fbd cached
1790 files
14.3 MB
3.9M tokens
4913 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (15,345K chars total). Download the full file to get everything.
Repository: FlowiseAI/Flowise
Branch: main
Commit: 03a0cf6b3fbd
Files: 1790
Total size: 14.3 MB

Directory structure:
gitextract_ry1pyiq_/

├── .dockerignore
├── .eslintrc.js
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   └── feature_request.yml
│   └── workflows/
│       ├── docker-image-dockerhub.yml
│       ├── docker-image-ecr.yml
│       ├── main.yml
│       ├── proprietary-path-guard.yml
│       ├── publish-agentflow.yml
│       └── test_docker_build.yml
├── .gitignore
├── .husky/
│   ├── pre-commit
│   └── pre-push
├── .npmrc
├── .nvmrc
├── .prettierignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Dockerfile
├── LICENSE.md
├── README.md
├── SECURITY.md
├── artillery-load-test.yml
├── docker/
│   ├── Dockerfile
│   ├── README.md
│   ├── docker-compose-queue-prebuilt.yml
│   ├── docker-compose-queue-source.yml
│   ├── docker-compose.yml
│   └── worker/
│       ├── Dockerfile
│       ├── README.md
│       ├── docker-compose.yml
│       └── healthcheck/
│           ├── healthcheck.js
│           └── package.json
├── i18n/
│   ├── CODE_OF_CONDUCT-ZH.md
│   ├── CONTRIBUTING-ZH.md
│   ├── README-JA.md
│   ├── README-KR.md
│   ├── README-TW.md
│   └── README-ZH.md
├── metrics/
│   ├── grafana/
│   │   ├── grafana.dashboard.app.json.txt
│   │   └── grafana.dashboard.server.json.txt
│   ├── otel/
│   │   ├── compose.yaml
│   │   └── otel.config.yml
│   └── prometheus/
│       └── prometheus.config.yml
├── package.json
├── packages/
│   ├── agentflow/
│   │   ├── .eslintignore
│   │   ├── .eslintrc.js
│   │   ├── .npmignore
│   │   ├── .prettierignore
│   │   ├── .prettierrc
│   │   ├── ARCHITECTURE.md
│   │   ├── README.md
│   │   ├── TESTS.md
│   │   ├── examples/
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package-lock.json
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── App.tsx
│   │   │   │   ├── FlowStatePanel.tsx
│   │   │   │   ├── PropsDisplay.tsx
│   │   │   │   ├── config.ts
│   │   │   │   ├── demos/
│   │   │   │   │   ├── AllNodeTypesExample.tsx
│   │   │   │   │   ├── BasicExample.tsx
│   │   │   │   │   ├── CustomNodeExample.tsx
│   │   │   │   │   ├── CustomUIExample.tsx
│   │   │   │   │   ├── DarkModeExample.tsx
│   │   │   │   │   ├── FilteredComponentsExample.tsx
│   │   │   │   │   ├── MultiNodeFlow.tsx
│   │   │   │   │   ├── StatusIndicatorsExample.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── main.tsx
│   │   │   │   └── vite-env.d.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── Agentflow.test.tsx
│   │   │   ├── Agentflow.tsx
│   │   │   ├── AgentflowProvider.tsx
│   │   │   ├── __mocks__/
│   │   │   │   ├── @tiptap/
│   │   │   │   │   ├── extension-code-block-lowlight.ts
│   │   │   │   │   ├── extension-placeholder.ts
│   │   │   │   │   ├── react.ts
│   │   │   │   │   └── starter-kit.ts
│   │   │   │   ├── axios.ts
│   │   │   │   ├── lowlight.ts
│   │   │   │   ├── reactflow.tsx
│   │   │   │   └── styleMock.js
│   │   │   ├── __test_utils__/
│   │   │   │   ├── factories.ts
│   │   │   │   └── jest-environment-jsdom.js
│   │   │   ├── atoms/
│   │   │   │   ├── ArrayInput.test.tsx
│   │   │   │   ├── ArrayInput.tsx
│   │   │   │   ├── CodeInput.test.tsx
│   │   │   │   ├── CodeInput.tsx
│   │   │   │   ├── ConditionBuilder.test.tsx
│   │   │   │   ├── ConditionBuilder.tsx
│   │   │   │   ├── ExpandTextDialog.test.tsx
│   │   │   │   ├── ExpandTextDialog.tsx
│   │   │   │   ├── JsonInput.test.tsx
│   │   │   │   ├── JsonInput.tsx
│   │   │   │   ├── MainCard.tsx
│   │   │   │   ├── MessagesInput.test.tsx
│   │   │   │   ├── MessagesInput.tsx
│   │   │   │   ├── NodeInputHandler.test.tsx
│   │   │   │   ├── NodeInputHandler.tsx
│   │   │   │   ├── RichTextEditor.lazy.tsx
│   │   │   │   ├── RichTextEditor.test.tsx
│   │   │   │   ├── RichTextEditor.tsx
│   │   │   │   ├── ScenariosInput.test.tsx
│   │   │   │   ├── ScenariosInput.tsx
│   │   │   │   ├── SelectVariable.test.tsx
│   │   │   │   ├── SelectVariable.tsx
│   │   │   │   ├── StructuredOutputBuilder.test.tsx
│   │   │   │   ├── StructuredOutputBuilder.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── useStableKeys.test.tsx
│   │   │   │   └── useStableKeys.ts
│   │   │   ├── core/
│   │   │   │   ├── index.ts
│   │   │   │   ├── node-catalog/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── nodeFilters.test.ts
│   │   │   │   │   └── nodeFilters.ts
│   │   │   │   ├── node-config/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── nodeIconUtils.test.ts
│   │   │   │   │   ├── nodeIconUtils.ts
│   │   │   │   │   └── nodeIcons.ts
│   │   │   │   ├── theme/
│   │   │   │   │   ├── createAgentflowTheme.test.ts
│   │   │   │   │   ├── createAgentflowTheme.ts
│   │   │   │   │   ├── cssVariables.test.ts
│   │   │   │   │   ├── cssVariables.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── tokens.test.ts
│   │   │   │   │   ├── tokens.ts
│   │   │   │   │   └── types.ts
│   │   │   │   ├── types/
│   │   │   │   │   ├── agentflow.ts
│   │   │   │   │   ├── api.ts
│   │   │   │   │   ├── context.ts
│   │   │   │   │   ├── flow.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── node.ts
│   │   │   │   │   └── validation.ts
│   │   │   │   ├── utils/
│   │   │   │   │   ├── dynamicOutputAnchors.test.ts
│   │   │   │   │   ├── dynamicOutputAnchors.ts
│   │   │   │   │   ├── fieldVisibility.test.ts
│   │   │   │   │   ├── fieldVisibility.ts
│   │   │   │   │   ├── flowExport.test.ts
│   │   │   │   │   ├── flowExport.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── nodeFactory.test.ts
│   │   │   │   │   └── nodeFactory.ts
│   │   │   │   └── validation/
│   │   │   │       ├── connectionValidation.test.ts
│   │   │   │       ├── connectionValidation.ts
│   │   │   │       ├── constraintValidation.test.ts
│   │   │   │       ├── constraintValidation.ts
│   │   │   │       ├── flowValidation.test.ts
│   │   │   │       ├── flowValidation.ts
│   │   │   │       └── index.ts
│   │   │   ├── features/
│   │   │   │   ├── canvas/
│   │   │   │   │   ├── canvas.css
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── AgentflowHeader.tsx
│   │   │   │   │   │   ├── ConnectionLine.test.tsx
│   │   │   │   │   │   ├── ConnectionLine.tsx
│   │   │   │   │   │   ├── NodeIcon.tsx
│   │   │   │   │   │   ├── NodeInfoDialog.tsx
│   │   │   │   │   │   ├── NodeInputHandle.tsx
│   │   │   │   │   │   ├── NodeModelConfigs.tsx
│   │   │   │   │   │   ├── NodeOutputHandles.test.ts
│   │   │   │   │   │   ├── NodeOutputHandles.tsx
│   │   │   │   │   │   ├── NodeStatusIndicator.tsx
│   │   │   │   │   │   ├── NodeToolbarActions.tsx
│   │   │   │   │   │   ├── ValidationFeedback.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── containers/
│   │   │   │   │   │   ├── AgentFlowEdge.tsx
│   │   │   │   │   │   ├── AgentFlowNode.tsx
│   │   │   │   │   │   ├── IterationNode.tsx
│   │   │   │   │   │   ├── StickyNote.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── useDragAndDrop.test.tsx
│   │   │   │   │   │   ├── useDragAndDrop.ts
│   │   │   │   │   │   ├── useFlowHandlers.test.tsx
│   │   │   │   │   │   ├── useFlowHandlers.ts
│   │   │   │   │   │   ├── useFlowNodes.test.tsx
│   │   │   │   │   │   ├── useFlowNodes.ts
│   │   │   │   │   │   ├── useNodeColors.test.tsx
│   │   │   │   │   │   ├── useNodeColors.ts
│   │   │   │   │   │   ├── useOpenNodeEditor.test.tsx
│   │   │   │   │   │   └── useOpenNodeEditor.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── nodeIcons.tsx
│   │   │   │   │   └── styled.ts
│   │   │   │   ├── generator/
│   │   │   │   │   ├── GenerateFlowDialog.test.tsx
│   │   │   │   │   ├── GenerateFlowDialog.tsx
│   │   │   │   │   ├── SuggestionChips.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── node-editor/
│   │   │   │   │   ├── AsyncInput.test.tsx
│   │   │   │   │   ├── AsyncInput.tsx
│   │   │   │   │   ├── ConfigInput.test.tsx
│   │   │   │   │   ├── ConfigInput.tsx
│   │   │   │   │   ├── EditNodeDialog.test.tsx
│   │   │   │   │   ├── EditNodeDialog.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── useAvailableVariables.test.tsx
│   │   │   │   │   ├── useAvailableVariables.ts
│   │   │   │   │   ├── useDynamicOutputPorts.test.tsx
│   │   │   │   │   └── useDynamicOutputPorts.ts
│   │   │   │   └── node-palette/
│   │   │   │       ├── AddNodesDrawer.tsx
│   │   │   │       ├── NodeListItem.tsx
│   │   │   │       ├── StyledFab.tsx
│   │   │   │       ├── index.ts
│   │   │   │       ├── search.test.ts
│   │   │   │       ├── search.ts
│   │   │   │       └── useDrawerMaxHeight.ts
│   │   │   ├── index.ts
│   │   │   ├── infrastructure/
│   │   │   │   ├── api/
│   │   │   │   │   ├── chatflows.test.ts
│   │   │   │   │   ├── chatflows.ts
│   │   │   │   │   ├── client.test.ts
│   │   │   │   │   ├── client.ts
│   │   │   │   │   ├── credentials.test.ts
│   │   │   │   │   ├── credentials.ts
│   │   │   │   │   ├── deduplicatedClient.test.ts
│   │   │   │   │   ├── deduplicatedClient.ts
│   │   │   │   │   ├── embeddings.ts
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── useAsyncOptions.test.tsx
│   │   │   │   │   │   └── useAsyncOptions.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── loadMethodRegistry.test.ts
│   │   │   │   │   ├── loadMethodRegistry.ts
│   │   │   │   │   ├── models.test.ts
│   │   │   │   │   ├── models.ts
│   │   │   │   │   ├── nodes.test.ts
│   │   │   │   │   ├── nodes.ts
│   │   │   │   │   ├── runtimeState.ts
│   │   │   │   │   ├── stores.ts
│   │   │   │   │   ├── tools.test.ts
│   │   │   │   │   └── tools.ts
│   │   │   │   └── store/
│   │   │   │       ├── AgentflowContext.e2e.test.tsx
│   │   │   │       ├── AgentflowContext.test.tsx
│   │   │   │       ├── AgentflowContext.tsx
│   │   │   │       ├── ApiContext.test.tsx
│   │   │   │       ├── ApiContext.tsx
│   │   │   │       ├── ConfigContext.test.tsx
│   │   │   │       ├── ConfigContext.tsx
│   │   │   │       ├── agentflowReducer.test.ts
│   │   │   │       ├── agentflowReducer.ts
│   │   │   │       └── index.ts
│   │   │   ├── useAgentflow.test.tsx
│   │   │   ├── useAgentflow.ts
│   │   │   └── vite-env.d.ts
│   │   ├── tsconfig.json
│   │   └── vite.config.ts
│   ├── api-documentation/
│   │   ├── README-ZH.md
│   │   ├── README.md
│   │   ├── nodemon.json
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── configs/
│   │   │   │   └── swagger.config.ts
│   │   │   ├── index.ts
│   │   │   └── yml/
│   │   │       └── swagger.yml
│   │   └── tsconfig.json
│   ├── components/
│   │   ├── README-ZH.md
│   │   ├── README.md
│   │   ├── __mocks__/
│   │   │   └── esm-stub.js
│   │   ├── credentials/
│   │   │   ├── AWSCredential.credential.ts
│   │   │   ├── AgentflowApi.credential.ts
│   │   │   ├── AirtableApi.credential.ts
│   │   │   ├── AlibabaApi.credential.ts
│   │   │   ├── AnthropicApi.credential.ts
│   │   │   ├── ApifyApi.credential.ts
│   │   │   ├── ArizeApi.credential.ts
│   │   │   ├── AssemblyAI.credential.ts
│   │   │   ├── AstraApi.credential.ts
│   │   │   ├── AzureCognitiveServices.credential.ts
│   │   │   ├── AzureOpenAIApi.credential.ts
│   │   │   ├── AzureRerankerApi.credential.ts
│   │   │   ├── BaiduApi.credential.ts
│   │   │   ├── BraveSearchApi.credential.ts
│   │   │   ├── CerebrasApi.credential.ts
│   │   │   ├── ChatflowApi.credential.ts
│   │   │   ├── ChromaApi.credential.ts
│   │   │   ├── CloudflareApi.credential.ts
│   │   │   ├── CohereApi.credential.ts
│   │   │   ├── CometApi.credential.ts
│   │   │   ├── ComposioApi.credential.ts
│   │   │   ├── ConfluenceCloudApi.credential.ts
│   │   │   ├── ConfluenceServerDCApi.credential.ts
│   │   │   ├── CouchbaseApi.credential.ts
│   │   │   ├── DeepseekApi.credential.ts
│   │   │   ├── DynamodbMemoryApi.credential.ts
│   │   │   ├── E2B.credential.ts
│   │   │   ├── ElasticsearchAPI.credential.ts
│   │   │   ├── ElectricsearchUserPassword.credential.ts
│   │   │   ├── ElevenLabsApi.credential.ts
│   │   │   ├── ExaSearchApi.credential.ts
│   │   │   ├── FigmaApi.credential.ts
│   │   │   ├── FireCrawlApi.credential.ts
│   │   │   ├── FireworksApi.credential.ts
│   │   │   ├── GithubApi.credential.ts
│   │   │   ├── GmailOAuth2.credential.ts
│   │   │   ├── GoogleAuth.credential.ts
│   │   │   ├── GoogleCalendarOAuth2.credential.ts
│   │   │   ├── GoogleDocsOAuth2.credential.ts
│   │   │   ├── GoogleDriveOAuth2.credential.ts
│   │   │   ├── GoogleGenerativeAI.credential.ts
│   │   │   ├── GoogleMakerSuite.credential.ts
│   │   │   ├── GoogleSearchApi.credential.ts
│   │   │   ├── GoogleSheetsOAuth2.credential.ts
│   │   │   ├── GroqApi.credential.ts
│   │   │   ├── HTTPApiKey.credential.ts
│   │   │   ├── HTTPBasicAuth.credential.ts
│   │   │   ├── HTTPBearerToken.credential.ts
│   │   │   ├── HuggingFaceApi.credential.ts
│   │   │   ├── IBMWatsonx.credential.ts
│   │   │   ├── JinaApi.credential.ts
│   │   │   ├── JiraApi.credential.ts
│   │   │   ├── JiraApiBearerToken.credential.ts
│   │   │   ├── LangWatchApi.credential.ts
│   │   │   ├── LangfuseApi.credential.ts
│   │   │   ├── LangsmithApi.credential.ts
│   │   │   ├── LitellmApi.credential.ts
│   │   │   ├── LocalAIApi.credential.ts
│   │   │   ├── LunaryApi.credential.ts
│   │   │   ├── MeilisearchApi.credential.ts
│   │   │   ├── Mem0MemoryApi.credential.ts
│   │   │   ├── MicrosoftOutlookOAuth2.credential.ts
│   │   │   ├── MicrosoftTeamsOAuth2.credential.ts
│   │   │   ├── MilvusAuth.credential.ts
│   │   │   ├── MistralApi.credential.ts
│   │   │   ├── MomentoCacheApi.credential.ts
│   │   │   ├── MongoDBUrlApi.credential.ts
│   │   │   ├── MySQLApi.credential.ts
│   │   │   ├── Neo4jApi.credential.ts
│   │   │   ├── NotionApi.credential.ts
│   │   │   ├── NvdiaNIMApi.credential.ts
│   │   │   ├── Ollama.credential.ts
│   │   │   ├── OpenAIApi.credential.ts
│   │   │   ├── OpenRouterApi.credential.ts
│   │   │   ├── OpenSearchUrl.credential.ts
│   │   │   ├── OpikApi.credential.ts
│   │   │   ├── OxylabsApi.credential.ts
│   │   │   ├── PerplexityApi.credential.ts
│   │   │   ├── PhoenixApi.credential.ts
│   │   │   ├── PineconeApi.credential.ts
│   │   │   ├── PostgresApi.credential.ts
│   │   │   ├── PostgresUrl.credential.ts
│   │   │   ├── QdrantApi.credential.ts
│   │   │   ├── RedisCacheApi.credential.ts
│   │   │   ├── RedisCacheUrlApi.credential.ts
│   │   │   ├── ReplicateApi.credential.ts
│   │   │   ├── SambanovaApi.credential.ts
│   │   │   ├── SearchApi.credential.ts
│   │   │   ├── SerpApi.credential.ts
│   │   │   ├── SerperApi.credential.ts
│   │   │   ├── SingleStoreApi.credential.ts
│   │   │   ├── SlackApi.credential.ts
│   │   │   ├── SpiderApi.credential.ts
│   │   │   ├── StripeApi.credential.ts
│   │   │   ├── SupabaseApi.credential.ts
│   │   │   ├── TavilyApi.credential.ts
│   │   │   ├── TeradataBearerToken.credential.ts
│   │   │   ├── TeradataTD2.credential.ts
│   │   │   ├── TeradataVectorStoreApi.credential.ts
│   │   │   ├── TogetherAIApi.credential.ts
│   │   │   ├── UnstructuredApi.credential.ts
│   │   │   ├── UpstashRedisApi.credential.ts
│   │   │   ├── UpstashRedisMemoryApi.credential.ts
│   │   │   ├── UpstashVectorApi.credential.ts
│   │   │   ├── VectaraApi.credential.ts
│   │   │   ├── VoyageAIApi.credential.ts
│   │   │   ├── WeaviateApi.credential.ts
│   │   │   ├── WolframAlphaApp.credential.ts
│   │   │   ├── XaiApi.credential.ts
│   │   │   └── ZepMemoryApi.credential.ts
│   │   ├── evaluation/
│   │   │   ├── EvaluationRunTracer.ts
│   │   │   ├── EvaluationRunTracerLlama.ts
│   │   │   └── EvaluationRunner.ts
│   │   ├── gulpfile.ts
│   │   ├── jest.config.js
│   │   ├── models.json
│   │   ├── nodes/
│   │   │   ├── agentflow/
│   │   │   │   ├── Agent/
│   │   │   │   │   └── Agent.ts
│   │   │   │   ├── Condition/
│   │   │   │   │   └── Condition.ts
│   │   │   │   ├── ConditionAgent/
│   │   │   │   │   ├── ConditionAgent.ts
│   │   │   │   │   ├── matchScenario.test.ts
│   │   │   │   │   └── matchScenario.ts
│   │   │   │   ├── CustomFunction/
│   │   │   │   │   └── CustomFunction.ts
│   │   │   │   ├── DirectReply/
│   │   │   │   │   └── DirectReply.ts
│   │   │   │   ├── ExecuteFlow/
│   │   │   │   │   └── ExecuteFlow.ts
│   │   │   │   ├── HTTP/
│   │   │   │   │   └── HTTP.ts
│   │   │   │   ├── HumanInput/
│   │   │   │   │   └── HumanInput.ts
│   │   │   │   ├── Interface.Agentflow.ts
│   │   │   │   ├── Iteration/
│   │   │   │   │   └── Iteration.ts
│   │   │   │   ├── LLM/
│   │   │   │   │   └── LLM.ts
│   │   │   │   ├── Loop/
│   │   │   │   │   └── Loop.ts
│   │   │   │   ├── Retriever/
│   │   │   │   │   └── Retriever.ts
│   │   │   │   ├── Start/
│   │   │   │   │   └── Start.ts
│   │   │   │   ├── StickyNote/
│   │   │   │   │   └── StickyNote.ts
│   │   │   │   ├── Tool/
│   │   │   │   │   └── Tool.ts
│   │   │   │   ├── prompt.ts
│   │   │   │   ├── utils.test.ts
│   │   │   │   └── utils.ts
│   │   │   ├── agents/
│   │   │   │   ├── AirtableAgent/
│   │   │   │   │   ├── AirtableAgent.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── CSVAgent/
│   │   │   │   │   ├── CSVAgent.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── ConversationalAgent/
│   │   │   │   │   └── ConversationalAgent.ts
│   │   │   │   ├── ConversationalRetrievalToolAgent/
│   │   │   │   │   └── ConversationalRetrievalToolAgent.ts
│   │   │   │   ├── LlamaIndexAgents/
│   │   │   │   │   ├── AnthropicAgent/
│   │   │   │   │   │   └── AnthropicAgent_LlamaIndex.ts
│   │   │   │   │   └── OpenAIToolAgent/
│   │   │   │   │       └── OpenAIToolAgent_LlamaIndex.ts
│   │   │   │   ├── OpenAIAssistant/
│   │   │   │   │   └── OpenAIAssistant.ts
│   │   │   │   ├── ReActAgentChat/
│   │   │   │   │   └── ReActAgentChat.ts
│   │   │   │   ├── ReActAgentLLM/
│   │   │   │   │   └── ReActAgentLLM.ts
│   │   │   │   ├── ToolAgent/
│   │   │   │   │   └── ToolAgent.ts
│   │   │   │   └── XMLAgent/
│   │   │   │       └── XMLAgent.ts
│   │   │   ├── analytic/
│   │   │   │   ├── Arize/
│   │   │   │   │   └── Arize.ts
│   │   │   │   ├── LangFuse/
│   │   │   │   │   └── LangFuse.ts
│   │   │   │   ├── LangSmith/
│   │   │   │   │   └── LangSmith.ts
│   │   │   │   ├── LangWatch/
│   │   │   │   │   └── LangWatch.ts
│   │   │   │   ├── Lunary/
│   │   │   │   │   └── Lunary.ts
│   │   │   │   ├── Opik/
│   │   │   │   │   └── Opik.ts
│   │   │   │   └── Phoenix/
│   │   │   │       └── Phoenix.ts
│   │   │   ├── cache/
│   │   │   │   ├── InMemoryCache/
│   │   │   │   │   ├── InMemoryCache.ts
│   │   │   │   │   └── InMemoryEmbeddingCache.ts
│   │   │   │   ├── MomentoCache/
│   │   │   │   │   └── MomentoCache.ts
│   │   │   │   ├── RedisCache/
│   │   │   │   │   ├── RedisCache.ts
│   │   │   │   │   └── RedisEmbeddingsCache.ts
│   │   │   │   └── UpstashRedisCache/
│   │   │   │       └── UpstashRedisCache.ts
│   │   │   ├── chains/
│   │   │   │   ├── ApiChain/
│   │   │   │   │   ├── GETApiChain.ts
│   │   │   │   │   ├── OpenAPIChain.ts
│   │   │   │   │   ├── POSTApiChain.ts
│   │   │   │   │   └── postCore.ts
│   │   │   │   ├── ConversationChain/
│   │   │   │   │   └── ConversationChain.ts
│   │   │   │   ├── ConversationalRetrievalQAChain/
│   │   │   │   │   ├── ConversationalRetrievalQAChain.ts
│   │   │   │   │   └── prompts.ts
│   │   │   │   ├── GraphCypherQAChain/
│   │   │   │   │   ├── GraphCypherQAChain.test.ts
│   │   │   │   │   └── GraphCypherQAChain.ts
│   │   │   │   ├── LLMChain/
│   │   │   │   │   └── LLMChain.ts
│   │   │   │   ├── MultiPromptChain/
│   │   │   │   │   └── MultiPromptChain.ts
│   │   │   │   ├── MultiRetrievalQAChain/
│   │   │   │   │   └── MultiRetrievalQAChain.ts
│   │   │   │   ├── RetrievalQAChain/
│   │   │   │   │   └── RetrievalQAChain.ts
│   │   │   │   ├── SqlDatabaseChain/
│   │   │   │   │   └── SqlDatabaseChain.ts
│   │   │   │   ├── VectaraChain/
│   │   │   │   │   └── VectaraChain.ts
│   │   │   │   └── VectorDBQAChain/
│   │   │   │       └── VectorDBQAChain.ts
│   │   │   ├── chatmodels/
│   │   │   │   ├── AWSBedrock/
│   │   │   │   │   ├── AWSChatBedrock.ts
│   │   │   │   │   └── FlowiseAWSChatBedrock.ts
│   │   │   │   ├── AzureChatOpenAI/
│   │   │   │   │   ├── AzureChatOpenAI.ts
│   │   │   │   │   ├── AzureChatOpenAI_LlamaIndex.ts
│   │   │   │   │   ├── FlowiseAzureChatOpenAI.ts
│   │   │   │   │   └── README.md
│   │   │   │   ├── ChatAlibabaTongyi/
│   │   │   │   │   └── ChatAlibabaTongyi.ts
│   │   │   │   ├── ChatAnthropic/
│   │   │   │   │   ├── ChatAnthropic.ts
│   │   │   │   │   ├── ChatAnthropic_LlamaIndex.ts
│   │   │   │   │   └── FlowiseChatAnthropic.ts
│   │   │   │   ├── ChatBaiduWenxin/
│   │   │   │   │   └── ChatBaiduWenxin.ts
│   │   │   │   ├── ChatCerebras/
│   │   │   │   │   └── ChatCerebras.ts
│   │   │   │   ├── ChatCloudflareWorkersAI/
│   │   │   │   │   └── ChatCloudflareWorkersAI.ts
│   │   │   │   ├── ChatCohere/
│   │   │   │   │   └── ChatCohere.ts
│   │   │   │   ├── ChatCometAPI/
│   │   │   │   │   └── ChatCometAPI.ts
│   │   │   │   ├── ChatFireworks/
│   │   │   │   │   ├── ChatFireworks.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── ChatGoogleGenerativeAI/
│   │   │   │   │   ├── ChatGoogleGenerativeAI.ts
│   │   │   │   │   └── FlowiseChatGoogleGenerativeAI.ts
│   │   │   │   ├── ChatGoogleVertexAI/
│   │   │   │   │   └── ChatGoogleVertexAI.ts
│   │   │   │   ├── ChatHuggingFace/
│   │   │   │   │   ├── ChatHuggingFace.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── ChatIBMWatsonx/
│   │   │   │   │   └── ChatIBMWatsonx.ts
│   │   │   │   ├── ChatLitellm/
│   │   │   │   │   └── ChatLitellm.ts
│   │   │   │   ├── ChatLocalAI/
│   │   │   │   │   └── ChatLocalAI.ts
│   │   │   │   ├── ChatMistral/
│   │   │   │   │   ├── ChatMistral.ts
│   │   │   │   │   └── ChatMistral_LlamaIndex.ts
│   │   │   │   ├── ChatNemoGuardrails/
│   │   │   │   │   ├── ChatNemoGuardrails.ts
│   │   │   │   │   ├── NemoClient.ts
│   │   │   │   │   └── readme.md
│   │   │   │   ├── ChatNvdiaNIM/
│   │   │   │   │   └── ChatNvdiaNIM.ts
│   │   │   │   ├── ChatOllama/
│   │   │   │   │   ├── ChatOllama.ts
│   │   │   │   │   ├── ChatOllama_LlamaIndex.ts
│   │   │   │   │   └── FlowiseChatOllama.ts
│   │   │   │   ├── ChatOpenAI/
│   │   │   │   │   ├── ChatOpenAI.ts
│   │   │   │   │   ├── ChatOpenAI_LlamaIndex.ts
│   │   │   │   │   └── FlowiseChatOpenAI.ts
│   │   │   │   ├── ChatOpenAICustom/
│   │   │   │   │   └── ChatOpenAICustom.ts
│   │   │   │   ├── ChatOpenRouter/
│   │   │   │   │   ├── ChatOpenRouter.ts
│   │   │   │   │   └── FlowiseChatOpenRouter.ts
│   │   │   │   ├── ChatPerplexity/
│   │   │   │   │   ├── ChatPerplexity.ts
│   │   │   │   │   └── FlowiseChatPerplexity.ts
│   │   │   │   ├── ChatSambanova/
│   │   │   │   │   └── ChatSambanova.ts
│   │   │   │   ├── ChatTogetherAI/
│   │   │   │   │   ├── ChatTogetherAI.ts
│   │   │   │   │   └── ChatTogether_LlamaIndex.ts
│   │   │   │   ├── ChatXAI/
│   │   │   │   │   ├── ChatXAI.ts
│   │   │   │   │   └── FlowiseChatXAI.ts
│   │   │   │   ├── Deepseek/
│   │   │   │   │   └── Deepseek.ts
│   │   │   │   └── Groq/
│   │   │   │       ├── ChatGroq_LlamaIndex.ts
│   │   │   │       └── Groq.ts
│   │   │   ├── documentloaders/
│   │   │   │   ├── API/
│   │   │   │   │   └── APILoader.ts
│   │   │   │   ├── Airtable/
│   │   │   │   │   └── Airtable.ts
│   │   │   │   ├── ApifyWebsiteContentCrawler/
│   │   │   │   │   └── ApifyWebsiteContentCrawler.ts
│   │   │   │   ├── BraveSearchAPI/
│   │   │   │   │   └── BraveSearchAPI.ts
│   │   │   │   ├── Cheerio/
│   │   │   │   │   └── Cheerio.ts
│   │   │   │   ├── Confluence/
│   │   │   │   │   └── Confluence.ts
│   │   │   │   ├── Csv/
│   │   │   │   │   ├── Csv.ts
│   │   │   │   │   └── CsvLoader.ts
│   │   │   │   ├── CustomDocumentLoader/
│   │   │   │   │   └── CustomDocumentLoader.ts
│   │   │   │   ├── DocumentStore/
│   │   │   │   │   └── DocStoreLoader.ts
│   │   │   │   ├── Docx/
│   │   │   │   │   └── Docx.ts
│   │   │   │   ├── Epub/
│   │   │   │   │   └── Epub.ts
│   │   │   │   ├── Figma/
│   │   │   │   │   └── Figma.ts
│   │   │   │   ├── File/
│   │   │   │   │   └── File.ts
│   │   │   │   ├── FireCrawl/
│   │   │   │   │   └── FireCrawl.ts
│   │   │   │   ├── Folder/
│   │   │   │   │   └── Folder.ts
│   │   │   │   ├── Gitbook/
│   │   │   │   │   └── Gitbook.ts
│   │   │   │   ├── Github/
│   │   │   │   │   └── Github.ts
│   │   │   │   ├── GoogleDrive/
│   │   │   │   │   └── GoogleDrive.ts
│   │   │   │   ├── GoogleSheets/
│   │   │   │   │   └── GoogleSheets.ts
│   │   │   │   ├── Jira/
│   │   │   │   │   └── Jira.ts
│   │   │   │   ├── Json/
│   │   │   │   │   └── Json.ts
│   │   │   │   ├── Jsonlines/
│   │   │   │   │   └── Jsonlines.ts
│   │   │   │   ├── MicrosoftExcel/
│   │   │   │   │   ├── ExcelLoader.ts
│   │   │   │   │   └── MicrosoftExcel.ts
│   │   │   │   ├── MicrosoftPowerpoint/
│   │   │   │   │   ├── MicrosoftPowerpoint.ts
│   │   │   │   │   └── PowerpointLoader.ts
│   │   │   │   ├── MicrosoftWord/
│   │   │   │   │   ├── MicrosoftWord.ts
│   │   │   │   │   └── WordLoader.ts
│   │   │   │   ├── Notion/
│   │   │   │   │   ├── NotionDB.ts
│   │   │   │   │   ├── NotionFolder.ts
│   │   │   │   │   └── NotionPage.ts
│   │   │   │   ├── Oxylabs/
│   │   │   │   │   └── Oxylabs.ts
│   │   │   │   ├── Pdf/
│   │   │   │   │   └── Pdf.ts
│   │   │   │   ├── PlainText/
│   │   │   │   │   └── PlainText.ts
│   │   │   │   ├── Playwright/
│   │   │   │   │   └── Playwright.ts
│   │   │   │   ├── Puppeteer/
│   │   │   │   │   └── Puppeteer.ts
│   │   │   │   ├── S3Directory/
│   │   │   │   │   └── S3Directory.ts
│   │   │   │   ├── S3File/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── S3File.ts
│   │   │   │   ├── SearchApi/
│   │   │   │   │   └── SearchAPI.ts
│   │   │   │   ├── SerpApi/
│   │   │   │   │   └── SerpAPI.ts
│   │   │   │   ├── Spider/
│   │   │   │   │   ├── Spider.ts
│   │   │   │   │   └── SpiderApp.ts
│   │   │   │   ├── Text/
│   │   │   │   │   └── Text.ts
│   │   │   │   ├── Unstructured/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── Unstructured.ts
│   │   │   │   │   └── UnstructuredFile.ts
│   │   │   │   └── VectorStoreToDocument/
│   │   │   │       └── VectorStoreToDocument.ts
│   │   │   ├── embeddings/
│   │   │   │   ├── AWSBedrockEmbedding/
│   │   │   │   │   └── AWSBedrockEmbedding.ts
│   │   │   │   ├── AzureOpenAIEmbedding/
│   │   │   │   │   ├── AzureOpenAIEmbedding.ts
│   │   │   │   │   ├── AzureOpenAIEmbedding_LlamaIndex.ts
│   │   │   │   │   └── README.md
│   │   │   │   ├── CohereEmbedding/
│   │   │   │   │   └── CohereEmbedding.ts
│   │   │   │   ├── GoogleGenerativeAIEmbedding/
│   │   │   │   │   └── GoogleGenerativeAIEmbedding.ts
│   │   │   │   ├── GoogleVertexAIEmbedding/
│   │   │   │   │   └── GoogleVertexAIEmbedding.ts
│   │   │   │   ├── HuggingFaceInferenceEmbedding/
│   │   │   │   │   ├── HuggingFaceInferenceEmbedding.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── IBMWatsonxEmbedding/
│   │   │   │   │   └── IBMWatsonxEmbedding.ts
│   │   │   │   ├── JinaAIEmbedding/
│   │   │   │   │   └── JinaAIEmbedding.ts
│   │   │   │   ├── LocalAIEmbedding/
│   │   │   │   │   └── LocalAIEmbedding.ts
│   │   │   │   ├── MistralEmbedding/
│   │   │   │   │   └── MistralEmbedding.ts
│   │   │   │   ├── OllamaEmbedding/
│   │   │   │   │   └── OllamaEmbedding.ts
│   │   │   │   ├── OpenAIEmbedding/
│   │   │   │   │   ├── OpenAIEmbedding.ts
│   │   │   │   │   └── OpenAIEmbedding_LlamaIndex.ts
│   │   │   │   ├── OpenAIEmbeddingCustom/
│   │   │   │   │   └── OpenAIEmbeddingCustom.ts
│   │   │   │   ├── TogetherAIEmbedding/
│   │   │   │   │   └── TogetherAIEmbedding.ts
│   │   │   │   └── VoyageAIEmbedding/
│   │   │   │       └── VoyageAIEmbedding.ts
│   │   │   ├── engine/
│   │   │   │   ├── ChatEngine/
│   │   │   │   │   ├── ContextChatEngine.ts
│   │   │   │   │   └── SimpleChatEngine.ts
│   │   │   │   ├── EngineUtils.ts
│   │   │   │   ├── QueryEngine/
│   │   │   │   │   └── QueryEngine.ts
│   │   │   │   └── SubQuestionQueryEngine/
│   │   │   │       └── SubQuestionQueryEngine.ts
│   │   │   ├── graphs/
│   │   │   │   └── Neo4j/
│   │   │   │       └── Neo4j.ts
│   │   │   ├── llms/
│   │   │   │   ├── AWSBedrock/
│   │   │   │   │   └── AWSBedrock.ts
│   │   │   │   ├── Azure OpenAI/
│   │   │   │   │   ├── AzureOpenAI.ts
│   │   │   │   │   └── README.md
│   │   │   │   ├── Cohere/
│   │   │   │   │   └── Cohere.ts
│   │   │   │   ├── Fireworks/
│   │   │   │   │   └── Fireworks.ts
│   │   │   │   ├── GoogleVertexAI/
│   │   │   │   │   └── GoogleVertexAI.ts
│   │   │   │   ├── HuggingFaceInference/
│   │   │   │   │   ├── HuggingFaceInference.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── IBMWatsonx/
│   │   │   │   │   └── IBMWatsonx.ts
│   │   │   │   ├── Ollama/
│   │   │   │   │   └── Ollama.ts
│   │   │   │   ├── OpenAI/
│   │   │   │   │   └── OpenAI.ts
│   │   │   │   ├── Replicate/
│   │   │   │   │   ├── Replicate.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── SambaNova/
│   │   │   │   │   └── Sambanova.ts
│   │   │   │   └── TogetherAI/
│   │   │   │       └── TogetherAI.ts
│   │   │   ├── memory/
│   │   │   │   ├── AgentMemory/
│   │   │   │   │   ├── AgentMemory.ts
│   │   │   │   │   ├── MySQLAgentMemory/
│   │   │   │   │   │   ├── MySQLAgentMemory.ts
│   │   │   │   │   │   └── mysqlSaver.ts
│   │   │   │   │   ├── PostgresAgentMemory/
│   │   │   │   │   │   ├── PostgresAgentMemory.ts
│   │   │   │   │   │   └── pgSaver.ts
│   │   │   │   │   ├── SQLiteAgentMemory/
│   │   │   │   │   │   ├── SQLiteAgentMemory.ts
│   │   │   │   │   │   └── sqliteSaver.ts
│   │   │   │   │   └── interface.ts
│   │   │   │   ├── BufferMemory/
│   │   │   │   │   └── BufferMemory.ts
│   │   │   │   ├── BufferWindowMemory/
│   │   │   │   │   └── BufferWindowMemory.ts
│   │   │   │   ├── ConversationSummaryBufferMemory/
│   │   │   │   │   └── ConversationSummaryBufferMemory.ts
│   │   │   │   ├── ConversationSummaryMemory/
│   │   │   │   │   └── ConversationSummaryMemory.ts
│   │   │   │   ├── DynamoDb/
│   │   │   │   │   └── DynamoDb.ts
│   │   │   │   ├── Mem0/
│   │   │   │   │   └── Mem0.ts
│   │   │   │   ├── MongoDBMemory/
│   │   │   │   │   └── MongoDBMemory.ts
│   │   │   │   ├── RedisBackedChatMemory/
│   │   │   │   │   └── RedisBackedChatMemory.ts
│   │   │   │   ├── UpstashRedisBackedChatMemory/
│   │   │   │   │   └── UpstashRedisBackedChatMemory.ts
│   │   │   │   ├── ZepMemory/
│   │   │   │   │   └── ZepMemory.ts
│   │   │   │   └── ZepMemoryCloud/
│   │   │   │       └── ZepMemoryCloud.ts
│   │   │   ├── moderation/
│   │   │   │   ├── Moderation.ts
│   │   │   │   ├── OpenAIModeration/
│   │   │   │   │   ├── OpenAIModeration.ts
│   │   │   │   │   └── OpenAIModerationRunner.ts
│   │   │   │   └── SimplePromptModeration/
│   │   │   │       ├── SimplePromptModeration.ts
│   │   │   │       └── SimplePromptModerationRunner.ts
│   │   │   ├── multiagents/
│   │   │   │   ├── Supervisor/
│   │   │   │   │   └── Supervisor.ts
│   │   │   │   └── Worker/
│   │   │   │       └── Worker.ts
│   │   │   ├── outputparsers/
│   │   │   │   ├── CSVListOutputParser/
│   │   │   │   │   └── CSVListOutputParser.ts
│   │   │   │   ├── CustomListOutputParser/
│   │   │   │   │   └── CustomListOutputParser.ts
│   │   │   │   ├── OutputParserHelpers.ts
│   │   │   │   ├── StructuredOutputParser/
│   │   │   │   │   └── StructuredOutputParser.ts
│   │   │   │   └── StructuredOutputParserAdvanced/
│   │   │   │       └── StructuredOutputParserAdvanced.ts
│   │   │   ├── prompts/
│   │   │   │   ├── ChatPromptTemplate/
│   │   │   │   │   └── ChatPromptTemplate.ts
│   │   │   │   ├── FewShotPromptTemplate/
│   │   │   │   │   └── FewShotPromptTemplate.ts
│   │   │   │   ├── PromptLangfuse/
│   │   │   │   │   └── PromptLangfuse.ts
│   │   │   │   └── PromptTemplate/
│   │   │   │       └── PromptTemplate.ts
│   │   │   ├── recordmanager/
│   │   │   │   ├── MySQLRecordManager/
│   │   │   │   │   └── MySQLrecordManager.ts
│   │   │   │   ├── PostgresRecordManager/
│   │   │   │   │   ├── PostgresRecordManager.ts
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── utils.ts
│   │   │   │   └── SQLiteRecordManager/
│   │   │   │       └── SQLiteRecordManager.ts
│   │   │   ├── responsesynthesizer/
│   │   │   │   ├── CompactRefine/
│   │   │   │   │   └── CompactRefine.ts
│   │   │   │   ├── Refine/
│   │   │   │   │   └── Refine.ts
│   │   │   │   ├── SimpleResponseBuilder/
│   │   │   │   │   └── SimpleResponseBuilder.ts
│   │   │   │   ├── TreeSummarize/
│   │   │   │   │   └── TreeSummarize.ts
│   │   │   │   └── base.ts
│   │   │   ├── retrievers/
│   │   │   │   ├── AWSBedrockKBRetriever/
│   │   │   │   │   └── AWSBedrockKBRetriever.ts
│   │   │   │   ├── AzureRerankRetriever/
│   │   │   │   │   ├── AzureRerank.ts
│   │   │   │   │   └── AzureRerankRetriever.ts
│   │   │   │   ├── CohereRerankRetriever/
│   │   │   │   │   ├── CohereRerank.ts
│   │   │   │   │   └── CohereRerankRetriever.ts
│   │   │   │   ├── CustomRetriever/
│   │   │   │   │   └── CustomRetriever.ts
│   │   │   │   ├── EmbeddingsFilterRetriever/
│   │   │   │   │   └── EmbeddingsFilterRetriever.ts
│   │   │   │   ├── ExtractMetadataRetriever/
│   │   │   │   │   └── ExtractMetadataRetriever.ts
│   │   │   │   ├── HydeRetriever/
│   │   │   │   │   └── HydeRetriever.ts
│   │   │   │   ├── JinaRerankRetriever/
│   │   │   │   │   ├── JinaRerank.ts
│   │   │   │   │   └── JinaRerankRetriever.ts
│   │   │   │   ├── LLMFilterRetriever/
│   │   │   │   │   └── LLMFilterCompressionRetriever.ts
│   │   │   │   ├── MultiQueryRetriever/
│   │   │   │   │   └── MultiQueryRetriever.ts
│   │   │   │   ├── PromptRetriever/
│   │   │   │   │   └── PromptRetriever.ts
│   │   │   │   ├── RRFRetriever/
│   │   │   │   │   ├── RRFRetriever.ts
│   │   │   │   │   └── ReciprocalRankFusion.ts
│   │   │   │   ├── SimilarityThresholdRetriever/
│   │   │   │   │   └── SimilarityThresholdRetriever.ts
│   │   │   │   ├── VectorStoreRetriever/
│   │   │   │   │   └── VectorStoreRetriever.ts
│   │   │   │   └── VoyageAIRetriever/
│   │   │   │       ├── VoyageAIRerank.ts
│   │   │   │       └── VoyageAIRerankRetriever.ts
│   │   │   ├── sequentialagents/
│   │   │   │   ├── Agent/
│   │   │   │   │   └── Agent.ts
│   │   │   │   ├── Condition/
│   │   │   │   │   └── Condition.ts
│   │   │   │   ├── ConditionAgent/
│   │   │   │   │   └── ConditionAgent.ts
│   │   │   │   ├── CustomFunction/
│   │   │   │   │   └── CustomFunction.ts
│   │   │   │   ├── End/
│   │   │   │   │   └── End.ts
│   │   │   │   ├── ExecuteFlow/
│   │   │   │   │   └── ExecuteFlow.ts
│   │   │   │   ├── LLMNode/
│   │   │   │   │   └── LLMNode.ts
│   │   │   │   ├── Loop/
│   │   │   │   │   └── Loop.ts
│   │   │   │   ├── Start/
│   │   │   │   │   └── Start.ts
│   │   │   │   ├── State/
│   │   │   │   │   └── State.ts
│   │   │   │   ├── ToolNode/
│   │   │   │   │   └── ToolNode.ts
│   │   │   │   └── commonUtils.ts
│   │   │   ├── speechtotext/
│   │   │   │   └── assemblyai/
│   │   │   │       └── AssemblyAI.ts
│   │   │   ├── textsplitters/
│   │   │   │   ├── CharacterTextSplitter/
│   │   │   │   │   └── CharacterTextSplitter.ts
│   │   │   │   ├── CodeTextSplitter/
│   │   │   │   │   └── CodeTextSplitter.ts
│   │   │   │   ├── HtmlToMarkdownTextSplitter/
│   │   │   │   │   └── HtmlToMarkdownTextSplitter.ts
│   │   │   │   ├── MarkdownTextSplitter/
│   │   │   │   │   └── MarkdownTextSplitter.ts
│   │   │   │   ├── RecursiveCharacterTextSplitter/
│   │   │   │   │   └── RecursiveCharacterTextSplitter.ts
│   │   │   │   └── TokenTextSplitter/
│   │   │   │       └── TokenTextSplitter.ts
│   │   │   ├── tools/
│   │   │   │   ├── AWSDynamoDBKVStorage/
│   │   │   │   │   ├── AWSDynamoDBKVStorage.test.ts
│   │   │   │   │   └── AWSDynamoDBKVStorage.ts
│   │   │   │   ├── AWSSNS/
│   │   │   │   │   └── AWSSNS.ts
│   │   │   │   ├── AgentAsTool/
│   │   │   │   │   └── AgentAsTool.ts
│   │   │   │   ├── Arxiv/
│   │   │   │   │   ├── Arxiv.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── BraveSearchAPI/
│   │   │   │   │   └── BraveSearchAPI.ts
│   │   │   │   ├── Calculator/
│   │   │   │   │   └── Calculator.ts
│   │   │   │   ├── ChainTool/
│   │   │   │   │   ├── ChainTool.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── ChatflowTool/
│   │   │   │   │   └── ChatflowTool.ts
│   │   │   │   ├── CodeInterpreterE2B/
│   │   │   │   │   └── CodeInterpreterE2B.ts
│   │   │   │   ├── Composio/
│   │   │   │   │   └── Composio.ts
│   │   │   │   ├── CurrentDateTime/
│   │   │   │   │   └── CurrentDateTime.ts
│   │   │   │   ├── CustomTool/
│   │   │   │   │   ├── CustomTool.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── ExaSearch/
│   │   │   │   │   └── ExaSearch.ts
│   │   │   │   ├── Gmail/
│   │   │   │   │   ├── Gmail.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── GoogleCalendar/
│   │   │   │   │   ├── GoogleCalendar.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── GoogleDocs/
│   │   │   │   │   ├── GoogleDocs.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── GoogleDrive/
│   │   │   │   │   ├── GoogleDrive.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── GoogleSearchAPI/
│   │   │   │   │   └── GoogleSearchAPI.ts
│   │   │   │   ├── GoogleSheets/
│   │   │   │   │   ├── GoogleSheets.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── JSONPathExtractor/
│   │   │   │   │   ├── JSONPathExtractor.test.ts
│   │   │   │   │   └── JSONPathExtractor.ts
│   │   │   │   ├── Jira/
│   │   │   │   │   ├── Jira.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── MCP/
│   │   │   │   │   ├── BraveSearch/
│   │   │   │   │   │   └── BraveSearchMCP.ts
│   │   │   │   │   ├── CustomMCP/
│   │   │   │   │   │   └── CustomMCP.ts
│   │   │   │   │   ├── Github/
│   │   │   │   │   │   └── GithubMCP.ts
│   │   │   │   │   ├── PostgreSQL/
│   │   │   │   │   │   └── PostgreSQLMCP.ts
│   │   │   │   │   ├── SequentialThinking/
│   │   │   │   │   │   └── SequentialThinkingMCP.ts
│   │   │   │   │   ├── Slack/
│   │   │   │   │   │   └── SlackMCP.ts
│   │   │   │   │   ├── Supergateway/
│   │   │   │   │   │   └── SupergatewayMCP.ts
│   │   │   │   │   ├── Teradata/
│   │   │   │   │   │   └── TeradataMCP.ts
│   │   │   │   │   ├── core.test.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── MicrosoftOutlook/
│   │   │   │   │   ├── MicrosoftOutlook.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── MicrosoftTeams/
│   │   │   │   │   ├── MicrosoftTeams.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── OpenAPIToolkit/
│   │   │   │   │   ├── OpenAPIToolkit.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── QueryEngineTool/
│   │   │   │   │   └── QueryEngineTool.ts
│   │   │   │   ├── RequestsDelete/
│   │   │   │   │   ├── RequestsDelete.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── RequestsGet/
│   │   │   │   │   ├── RequestsGet.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── RequestsPost/
│   │   │   │   │   ├── RequestsPost.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── RequestsPut/
│   │   │   │   │   ├── RequestsPut.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── RetrieverTool/
│   │   │   │   │   └── RetrieverTool.ts
│   │   │   │   ├── SearchApi/
│   │   │   │   │   └── SearchAPI.ts
│   │   │   │   ├── Searxng/
│   │   │   │   │   └── Searxng.ts
│   │   │   │   ├── SerpAPI/
│   │   │   │   │   └── SerpAPI.ts
│   │   │   │   ├── Serper/
│   │   │   │   │   └── Serper.ts
│   │   │   │   ├── StripeTool/
│   │   │   │   │   └── StripeTool.ts
│   │   │   │   ├── TavilyAPI/
│   │   │   │   │   └── TavilyAPI.ts
│   │   │   │   ├── WebBrowser/
│   │   │   │   │   └── WebBrowser.ts
│   │   │   │   ├── WebScraperTool/
│   │   │   │   │   └── WebScraperTool.ts
│   │   │   │   └── WolframAlpha/
│   │   │   │       └── WolframAlpha.ts
│   │   │   ├── utilities/
│   │   │   │   ├── CustomFunction/
│   │   │   │   │   └── CustomFunction.ts
│   │   │   │   ├── GetVariable/
│   │   │   │   │   └── GetVariable.ts
│   │   │   │   ├── IfElseFunction/
│   │   │   │   │   └── IfElseFunction.ts
│   │   │   │   ├── SetVariable/
│   │   │   │   │   └── SetVariable.ts
│   │   │   │   └── StickyNote/
│   │   │   │       └── StickyNote.ts
│   │   │   └── vectorstores/
│   │   │       ├── Astra/
│   │   │       │   └── Astra.ts
│   │   │       ├── Chroma/
│   │   │       │   ├── Chroma.ts
│   │   │       │   └── core.ts
│   │   │       ├── Couchbase/
│   │   │       │   └── Couchbase.ts
│   │   │       ├── DocumentStoreVS/
│   │   │       │   └── DocStoreVector.ts
│   │   │       ├── Elasticsearch/
│   │   │       │   └── Elasticsearch.ts
│   │   │       ├── Faiss/
│   │   │       │   └── Faiss.ts
│   │   │       ├── InMemory/
│   │   │       │   └── InMemoryVectorStore.ts
│   │   │       ├── Kendra/
│   │   │       │   └── Kendra.ts
│   │   │       ├── Meilisearch/
│   │   │       │   ├── Meilisearch.ts
│   │   │       │   └── core.ts
│   │   │       ├── Milvus/
│   │   │       │   └── Milvus.ts
│   │   │       ├── MongoDBAtlas/
│   │   │       │   ├── MongoDBAtlas.ts
│   │   │       │   └── core.ts
│   │   │       ├── OpenSearch/
│   │   │       │   └── OpenSearch.ts
│   │   │       ├── Pinecone/
│   │   │       │   ├── Pinecone.ts
│   │   │       │   └── Pinecone_LlamaIndex.ts
│   │   │       ├── Postgres/
│   │   │       │   ├── Postgres.ts
│   │   │       │   ├── README.md
│   │   │       │   ├── driver/
│   │   │       │   │   ├── Base.ts
│   │   │       │   │   ├── PGVector.ts
│   │   │       │   │   └── TypeORM.ts
│   │   │       │   └── utils.ts
│   │   │       ├── Qdrant/
│   │   │       │   └── Qdrant.ts
│   │   │       ├── Redis/
│   │   │       │   ├── Redis.ts
│   │   │       │   └── utils.ts
│   │   │       ├── SimpleStore/
│   │   │       │   └── SimpleStore.ts
│   │   │       ├── Singlestore/
│   │   │       │   └── Singlestore.ts
│   │   │       ├── Supabase/
│   │   │       │   ├── Supabase.ts
│   │   │       │   └── filterParser.ts
│   │   │       ├── Upstash/
│   │   │       │   └── Upstash.ts
│   │   │       ├── Vectara/
│   │   │       │   ├── Vectara.ts
│   │   │       │   └── Vectara_Upload.ts
│   │   │       ├── VectorStoreUtils.ts
│   │   │       ├── Weaviate/
│   │   │       │   └── Weaviate.ts
│   │   │       ├── Zep/
│   │   │       │   └── Zep.ts
│   │   │       └── ZepCloud/
│   │   │           └── ZepCloud.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── Interface.Evaluation.ts
│   │   │   ├── Interface.ts
│   │   │   ├── MetricsLogger.ts
│   │   │   ├── agentflowv2Generator.ts
│   │   │   ├── agents.ts
│   │   │   ├── awsToolsUtils.ts
│   │   │   ├── error.ts
│   │   │   ├── followUpPrompts.ts
│   │   │   ├── google-utils.ts
│   │   │   ├── handler.test.ts
│   │   │   ├── handler.ts
│   │   │   ├── httpSecurity.ts
│   │   │   ├── index.ts
│   │   │   ├── indexing.ts
│   │   │   ├── modelLoader.ts
│   │   │   ├── multiModalUtils.ts
│   │   │   ├── pythonCodeValidator.test.ts
│   │   │   ├── pythonCodeValidator.ts
│   │   │   ├── secureZodParser.ts
│   │   │   ├── speechToText.ts
│   │   │   ├── storage/
│   │   │   │   ├── AzureBlobStorageProvider.ts
│   │   │   │   ├── BaseStorageProvider.ts
│   │   │   │   ├── GCSStorageProvider.ts
│   │   │   │   ├── IStorageProvider.ts
│   │   │   │   ├── LocalStorageProvider.ts
│   │   │   │   ├── S3StorageProvider.ts
│   │   │   │   ├── StorageProviderFactory.ts
│   │   │   │   └── index.ts
│   │   │   ├── storageUtils.ts
│   │   │   ├── textToSpeech.ts
│   │   │   ├── utils.test.ts
│   │   │   ├── utils.ts
│   │   │   ├── validator.test.ts
│   │   │   └── validator.ts
│   │   └── tsconfig.json
│   ├── server/
│   │   ├── README-ZH.md
│   │   ├── README.md
│   │   ├── babel.config.js
│   │   ├── bin/
│   │   │   ├── .gitattributes
│   │   │   ├── dev
│   │   │   ├── dev.cmd
│   │   │   ├── run
│   │   │   └── run.cmd
│   │   ├── cypress/
│   │   │   ├── e2e/
│   │   │   │   ├── 1-apikey/
│   │   │   │   │   └── apikey.cy.js
│   │   │   │   └── 2-variables/
│   │   │   │       └── variables.cy.js
│   │   │   ├── fixtures/
│   │   │   │   └── .keep
│   │   │   └── support/
│   │   │       ├── commands.ts
│   │   │       └── e2e.ts
│   │   ├── cypress.config.ts
│   │   ├── gulpfile.ts
│   │   ├── jest.config.js
│   │   ├── marketplaces/
│   │   │   ├── agentflows/
│   │   │   │   ├── Agentic RAG.json
│   │   │   │   ├── Branch Out Merge In.json
│   │   │   │   ├── Customer Support Team Agents.json
│   │   │   │   ├── Essay Writing & Grading.json
│   │   │   │   ├── Human In Loop RAG.json
│   │   │   │   ├── Lead Outreach.json
│   │   │   │   ├── Multi Agents.json
│   │   │   │   ├── Patient Concierge.json
│   │   │   │   ├── Plan and Execute.json
│   │   │   │   ├── Portfolio Management Team.json
│   │   │   │   ├── Prompt Engineering Team.json
│   │   │   │   ├── Software Team.json
│   │   │   │   ├── Support Routing System.json
│   │   │   │   └── Text to SQL.json
│   │   │   ├── agentflowsv2/
│   │   │   │   ├── Agentic RAG.json
│   │   │   │   ├── Agents Handoff.json
│   │   │   │   ├── Deep Research With Multi-turn Conversations.json
│   │   │   │   ├── Deep Research With Subagents.json
│   │   │   │   ├── Human In The Loop.json
│   │   │   │   ├── Interacting With API.json
│   │   │   │   ├── Iterations.json
│   │   │   │   ├── SQL Agent.json
│   │   │   │   ├── Simple RAG.json
│   │   │   │   ├── Structured Output.json
│   │   │   │   ├── Supervisor Worker.json
│   │   │   │   ├── Translator.json
│   │   │   │   └── Workplace Chat.json
│   │   │   ├── chatflows/
│   │   │   │   ├── Advanced Structured Output Parser.json
│   │   │   │   ├── CSV Agent.json
│   │   │   │   ├── Context Chat Engine.json
│   │   │   │   ├── Conversation Chain.json
│   │   │   │   ├── Conversational Agent.json
│   │   │   │   ├── Conversational Retrieval QA Chain.json
│   │   │   │   ├── Github Docs QnA.json
│   │   │   │   ├── HuggingFace LLM Chain.json
│   │   │   │   ├── Image Generation.json
│   │   │   │   ├── Input Moderation.json
│   │   │   │   ├── LLM Chain.json
│   │   │   │   ├── List Output Parser.json
│   │   │   │   ├── Local QnA.json
│   │   │   │   ├── Multiple Documents QnA.json
│   │   │   │   ├── OpenAI Assistant.json
│   │   │   │   ├── OpenAPI YAML Agent.json
│   │   │   │   ├── Prompt Chaining.json
│   │   │   │   ├── Query Engine.json
│   │   │   │   ├── ReAct Agent.json
│   │   │   │   ├── Replicate LLM.json
│   │   │   │   ├── SQL DB Chain.json
│   │   │   │   ├── Simple Chat Engine.json
│   │   │   │   ├── SubQuestion Query Engine.json
│   │   │   │   └── Tool Agent.json
│   │   │   └── tools/
│   │   │       ├── Add Hubspot Contact.json
│   │   │       ├── Create Airtable Record.json
│   │   │       ├── Get Current DateTime.json
│   │   │       ├── Get Stock Mover.json
│   │   │       ├── Make Webhook.json
│   │   │       ├── Perplexity AI Search.json
│   │   │       ├── Print or Export Text Document.json
│   │   │       ├── Send Discord Message.json
│   │   │       ├── Send Slack Message.json
│   │   │       ├── Send Teams Message.json
│   │   │       ├── SendGrid Email.json
│   │   │       ├── Spider Web Scraper.json
│   │   │       └── Spider Web Search & Scrape.json
│   │   ├── nodemon.json
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── AbortControllerPool.ts
│   │   │   ├── AppConfig.ts
│   │   │   ├── CachePool.ts
│   │   │   ├── DataSource.ts
│   │   │   ├── IdentityManager.ts
│   │   │   ├── Interface.DocumentStore.ts
│   │   │   ├── Interface.Evaluation.ts
│   │   │   ├── Interface.Metrics.ts
│   │   │   ├── Interface.ts
│   │   │   ├── NodesPool.ts
│   │   │   ├── StripeManager.ts
│   │   │   ├── UsageCacheManager.ts
│   │   │   ├── commands/
│   │   │   │   ├── base.ts
│   │   │   │   ├── start.ts
│   │   │   │   ├── user.ts
│   │   │   │   └── worker.ts
│   │   │   ├── controllers/
│   │   │   │   ├── agentflowv2-generator/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── apikey/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── assistants/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── attachments/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── chat-messages/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── chatflows/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── components-credentials/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── credentials/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── dataset/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── documentstore/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── evaluations/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── evaluators/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── executions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── export-import/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── feedback/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── fetch-links/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── files/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── flow-configs/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── get-upload-file/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── internal-predictions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── leads/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── load-prompts/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── log/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── marketplaces/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── node-configs/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── node-icons/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── nodes/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── nvidia-nim/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── openai-assistants/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── openai-assistants-vector-store/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── openai-realtime/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── ping/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── predictions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── pricing/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── prompts-lists/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── settings/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── stats/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── text-to-speech/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── tools/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── upsert-history/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── validation/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── variables/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── vectors/
│   │   │   │   │   └── index.ts
│   │   │   │   └── versions/
│   │   │   │       └── index.ts
│   │   │   ├── database/
│   │   │   │   ├── entities/
│   │   │   │   │   ├── ApiKey.ts
│   │   │   │   │   ├── Assistant.ts
│   │   │   │   │   ├── ChatFlow.ts
│   │   │   │   │   ├── ChatMessage.ts
│   │   │   │   │   ├── ChatMessageFeedback.ts
│   │   │   │   │   ├── Credential.ts
│   │   │   │   │   ├── CustomTemplate.ts
│   │   │   │   │   ├── Dataset.ts
│   │   │   │   │   ├── DatasetRow.ts
│   │   │   │   │   ├── DocumentStore.ts
│   │   │   │   │   ├── DocumentStoreFileChunk.ts
│   │   │   │   │   ├── Evaluation.ts
│   │   │   │   │   ├── EvaluationRun.ts
│   │   │   │   │   ├── Evaluator.ts
│   │   │   │   │   ├── Execution.ts
│   │   │   │   │   ├── Lead.ts
│   │   │   │   │   ├── Tool.ts
│   │   │   │   │   ├── UpsertHistory.ts
│   │   │   │   │   ├── Variable.ts
│   │   │   │   │   └── index.ts
│   │   │   │   └── migrations/
│   │   │   │       ├── mariadb/
│   │   │   │       │   ├── 1693840429259-Init.ts
│   │   │   │       │   ├── 1693997791471-ModifyChatFlow.ts
│   │   │   │       │   ├── 1693999022236-ModifyChatMessage.ts
│   │   │   │       │   ├── 1693999261583-ModifyCredential.ts
│   │   │   │       │   ├── 1694001465232-ModifyTool.ts
│   │   │   │       │   ├── 1694099200729-AddApiConfig.ts
│   │   │   │       │   ├── 1694432361423-AddAnalytic.ts
│   │   │   │       │   ├── 1694658767766-AddChatHistory.ts
│   │   │   │       │   ├── 1699325775451-AddAssistantEntity.ts
│   │   │   │       │   ├── 1699481607341-AddUsedToolsToChatMessage.ts
│   │   │   │       │   ├── 1699900910291-AddCategoryToChatFlow.ts
│   │   │   │       │   ├── 1700271021237-AddFileAnnotationsToChatMessage.ts
│   │   │   │       │   ├── 1701788586491-AddFileUploadsToChatMessage.ts
│   │   │   │       │   ├── 1702200925471-AddVariableEntity.ts
│   │   │   │       │   ├── 1706364937060-AddSpeechToText.ts
│   │   │   │       │   ├── 1707213626553-AddFeedback.ts
│   │   │   │       │   ├── 1709814301358-AddUpsertHistoryEntity.ts
│   │   │   │       │   ├── 1710832127079-AddLead.ts
│   │   │   │       │   ├── 1711538023578-AddLeadToChatMessage.ts
│   │   │   │       │   ├── 1711637331047-AddDocumentStore.ts
│   │   │   │       │   ├── 1714548873039-AddEvaluation.ts
│   │   │   │       │   ├── 1714548903384-AddDataset.ts
│   │   │   │       │   ├── 1714679514451-AddAgentReasoningToChatMessage.ts
│   │   │   │       │   ├── 1714808591644-AddEvaluator.ts
│   │   │   │       │   ├── 1715861032479-AddVectorStoreConfigToDocStore.ts
│   │   │   │       │   ├── 1716300000000-AddTypeToChatFlow.ts
│   │   │   │       │   ├── 1720230151480-AddApiKey.ts
│   │   │   │       │   ├── 1721078251523-AddActionToChatMessage.ts
│   │   │   │       │   ├── 1722301395521-LongTextColumn.ts
│   │   │   │       │   ├── 1725629836652-AddCustomTemplate.ts
│   │   │   │       │   ├── 1726156258465-AddArtifactsToChatMessage.ts
│   │   │   │       │   ├── 1726666318346-AddFollowUpPrompts.ts
│   │   │   │       │   ├── 1733011290987-AddTypeToAssistant.ts
│   │   │   │       │   ├── 1733752119696-AddSeqNoToDatasetRow.ts
│   │   │   │       │   ├── 1738090872625-AddExecutionEntity.ts
│   │   │   │       │   ├── 1743758056188-FixOpenSourceAssistantTable.ts
│   │   │   │       │   ├── 1744964560174-AddErrorToEvaluationRun.ts
│   │   │   │       │   ├── 1747902489801-ModifyExecutionDataColumnType.ts
│   │   │   │       │   ├── 1754986457485-AddTextToSpeechToChatFlow.ts
│   │   │   │       │   ├── 1755066758601-ModifyChatflowType.ts
│   │   │   │       │   ├── 1759419231100-AddTextToSpeechToChatFlow.ts
│   │   │   │       │   ├── 1759424809984-AddChatFlowNameIndex.ts
│   │   │   │       │   ├── 1764759496768-AddReasonContentToChatMessage.ts
│   │   │   │       │   ├── 1765000000000-FixDocumentStoreFileChunkLongText.ts
│   │   │   │       │   ├── 1765360298674-AddApiKeyPermission.ts
│   │   │   │       │   └── index.ts
│   │   │   │       ├── mysql/
│   │   │   │       │   ├── 1693840429259-Init.ts
│   │   │   │       │   ├── 1693997791471-ModifyChatFlow.ts
│   │   │   │       │   ├── 1693999022236-ModifyChatMessage.ts
│   │   │   │       │   ├── 1693999261583-ModifyCredential.ts
│   │   │   │       │   ├── 1694001465232-ModifyTool.ts
│   │   │   │       │   ├── 1694099200729-AddApiConfig.ts
│   │   │   │       │   ├── 1694432361423-AddAnalytic.ts
│   │   │   │       │   ├── 1694658767766-AddChatHistory.ts
│   │   │   │       │   ├── 1699325775451-AddAssistantEntity.ts
│   │   │   │       │   ├── 1699481607341-AddUsedToolsToChatMessage.ts
│   │   │   │       │   ├── 1699900910291-AddCategoryToChatFlow.ts
│   │   │   │       │   ├── 1700271021237-AddFileAnnotationsToChatMessage.ts
│   │   │   │       │   ├── 1701788586491-AddFileUploadsToChatMessage.ts
│   │   │   │       │   ├── 1702200925471-AddVariableEntity.ts
│   │   │   │       │   ├── 1706364937060-AddSpeechToText.ts
│   │   │   │       │   ├── 1707213626553-AddFeedback.ts
│   │   │   │       │   ├── 1709814301358-AddUpsertHistoryEntity.ts
│   │   │   │       │   ├── 1710832127079-AddLead.ts
│   │   │   │       │   ├── 1711538023578-AddLeadToChatMessage.ts
│   │   │   │       │   ├── 1711637331047-AddDocumentStore.ts
│   │   │   │       │   ├── 1714548873039-AddEvaluation.ts
│   │   │   │       │   ├── 1714548903384-AddDataset.ts
│   │   │   │       │   ├── 1714679514451-AddAgentReasoningToChatMessage.ts
│   │   │   │       │   ├── 1714808591644-AddEvaluator.ts
│   │   │   │       │   ├── 1715861032479-AddVectorStoreConfigToDocStore.ts
│   │   │   │       │   ├── 1716300000000-AddTypeToChatFlow.ts
│   │   │   │       │   ├── 1720230151480-AddApiKey.ts
│   │   │   │       │   ├── 1721078251523-AddActionToChatMessage.ts
│   │   │   │       │   ├── 1722301395521-LongTextColumn.ts
│   │   │   │       │   ├── 1725629836652-AddCustomTemplate.ts
│   │   │   │       │   ├── 1726156258465-AddArtifactsToChatMessage.ts
│   │   │   │       │   ├── 1726666302024-AddFollowUpPrompts.ts
│   │   │   │       │   ├── 1733011290987-AddTypeToAssistant.ts
│   │   │   │       │   ├── 1733752119696-AddSeqNoToDatasetRow.ts
│   │   │   │       │   ├── 1738090872625-AddExecutionEntity.ts
│   │   │   │       │   ├── 1743758056188-FixOpenSourceAssistantTable.ts
│   │   │   │       │   ├── 1744964560174-AddErrorToEvaluationRun.ts
│   │   │   │       │   ├── 1746437114935-FixErrorsColumnInEvaluationRun.ts
│   │   │   │       │   ├── 1747902489801-ModifyExecutionDataColumnType.ts
│   │   │   │       │   ├── 1754986468397-AddTextToSpeechToChatFlow.ts
│   │   │   │       │   ├── 1755066758601-ModifyChatflowType.ts
│   │   │   │       │   ├── 1759419216034-AddTextToSpeechToChatFlow.ts
│   │   │   │       │   ├── 1759424828558-AddChatFlowNameIndex.ts
│   │   │   │       │   ├── 1764759496768-AddReasonContentToChatMessage.ts
│   │   │   │       │   ├── 1765000000000-FixDocumentStoreFileChunkLongText.ts
│   │   │   │       │   ├── 1765360298674-AddApiKeyPermission.ts
│   │   │   │       │   └── index.ts
│   │   │   │       ├── postgres/
│   │   │   │       │   ├── 1693891895163-Init.ts
│   │   │   │       │   ├── 1693995626941-ModifyChatFlow.ts
│   │   │   │       │   ├── 1693996694528-ModifyChatMessage.ts
│   │   │   │       │   ├── 1693997070000-ModifyCredential.ts
│   │   │   │       │   ├── 1693997339912-ModifyTool.ts
│   │   │   │       │   ├── 1694099183389-AddApiConfig.ts
│   │   │   │       │   ├── 1694432361423-AddAnalytic.ts
│   │   │   │       │   ├── 1694658756136-AddChatHistory.ts
│   │   │   │       │   ├── 1699325775451-AddAssistantEntity.ts
│   │   │   │       │   ├── 1699481607341-AddUsedToolsToChatMessage.ts
│   │   │   │       │   ├── 1699900910291-AddCategoryToChatFlow.ts
│   │   │   │       │   ├── 1700271021237-AddFileAnnotationsToChatMessage.ts
│   │   │   │       │   ├── 1701788586491-AddFileUploadsToChatMessage.ts
│   │   │   │       │   ├── 1702200925471-AddVariableEntity.ts
│   │   │   │       │   ├── 1706364937060-AddSpeechToText.ts
│   │   │   │       │   ├── 1707213601923-AddFeedback.ts
│   │   │   │       │   ├── 1709814301358-AddUpsertHistoryEntity.ts
│   │   │   │       │   ├── 1710497452584-FieldTypes.ts
│   │   │   │       │   ├── 1710832137905-AddLead.ts
│   │   │   │       │   ├── 1711538016098-AddLeadToChatMessage.ts
│   │   │   │       │   ├── 1711637331047-AddDocumentStore.ts
│   │   │   │       │   ├── 1714548873039-AddEvaluation.ts
│   │   │   │       │   ├── 1714548903384-AddDataset.ts
│   │   │   │       │   ├── 1714679514451-AddAgentReasoningToChatMessage.ts
│   │   │   │       │   ├── 1714808591644-AddEvaluator.ts
│   │   │   │       │   ├── 1715861032479-AddVectorStoreConfigToDocStore.ts
│   │   │   │       │   ├── 1716300000000-AddTypeToChatFlow.ts
│   │   │   │       │   ├── 1720230151480-AddApiKey.ts
│   │   │   │       │   ├── 1721078251523-AddActionToChatMessage.ts
│   │   │   │       │   ├── 1725629836652-AddCustomTemplate.ts
│   │   │   │       │   ├── 1726156258465-AddArtifactsToChatMessage.ts
│   │   │   │       │   ├── 1726666309552-AddFollowUpPrompts.ts
│   │   │   │       │   ├── 1733011290987-AddTypeToAssistant.ts
│   │   │   │       │   ├── 1733752119696-AddSeqNoToDatasetRow.ts
│   │   │   │       │   ├── 1738090872625-AddExecutionEntity.ts
│   │   │   │       │   ├── 1743758056188-FixOpenSourceAssistantTable.ts
│   │   │   │       │   ├── 1744964560174-AddErrorToEvaluationRun.ts
│   │   │   │       │   ├── 1748450230238-ModifyExecutionSessionIdFieldType.ts
│   │   │   │       │   ├── 1754986480347-AddTextToSpeechToChatFlow.ts
│   │   │   │       │   ├── 1755066758601-ModifyChatflowType.ts
│   │   │   │       │   ├── 1759419194331-AddTextToSpeechToChatFlow.ts
│   │   │   │       │   ├── 1759424903973-AddChatFlowNameIndex.ts
│   │   │   │       │   ├── 1764759496768-AddReasonContentToChatMessage.ts
│   │   │   │       │   ├── 1765360298674-AddApiKeyPermission.ts
│   │   │   │       │   └── index.ts
│   │   │   │       └── sqlite/
│   │   │   │           ├── 1693835579790-Init.ts
│   │   │   │           ├── 1693920824108-ModifyChatFlow.ts
│   │   │   │           ├── 1693921865247-ModifyChatMessage.ts
│   │   │   │           ├── 1693923551694-ModifyCredential.ts
│   │   │   │           ├── 1693924207475-ModifyTool.ts
│   │   │   │           ├── 1694090982460-AddApiConfig.ts
│   │   │   │           ├── 1694432361423-AddAnalytic.ts
│   │   │   │           ├── 1694657778173-AddChatHistory.ts
│   │   │   │           ├── 1699325775451-AddAssistantEntity.ts
│   │   │   │           ├── 1699481607341-AddUsedToolsToChatMessage.ts
│   │   │   │           ├── 1699900910291-AddCategoryToChatFlow.ts
│   │   │   │           ├── 1700271021237-AddFileAnnotationsToChatMessage.ts
│   │   │   │           ├── 1701788586491-AddFileUploadsToChatMessage.ts
│   │   │   │           ├── 1702200925471-AddVariableEntity.ts
│   │   │   │           ├── 1706364937060-AddSpeechToText.ts
│   │   │   │           ├── 1707213619308-AddFeedback.ts
│   │   │   │           ├── 1709814301358-AddUpsertHistoryEntity.ts
│   │   │   │           ├── 1710832117612-AddLead.ts
│   │   │   │           ├── 1711537986113-AddLeadToChatMessage.ts
│   │   │   │           ├── 1711637331047-AddDocumentStore.ts
│   │   │   │           ├── 1714548873039-AddEvaluation.ts
│   │   │   │           ├── 1714548903384-AddDataset.ts
│   │   │   │           ├── 1714679514451-AddAgentReasoningToChatMessage.ts
│   │   │   │           ├── 1714808591644-AddEvaluator.ts
│   │   │   │           ├── 1715861032479-AddVectorStoreConfigToDocStore.ts
│   │   │   │           ├── 1716300000000-AddTypeToChatFlow.ts
│   │   │   │           ├── 1720230151480-AddApiKey.ts
│   │   │   │           ├── 1721078251523-AddActionToChatMessage.ts
│   │   │   │           ├── 1725629836652-AddCustomTemplate.ts
│   │   │   │           ├── 1726156258465-AddArtifactsToChatMessage.ts
│   │   │   │           ├── 1726666294213-AddFollowUpPrompts.ts
│   │   │   │           ├── 1733011290987-AddTypeToAssistant.ts
│   │   │   │           ├── 1733752119696-AddSeqNoToDatasetRow.ts
│   │   │   │           ├── 1738090872625-AddExecutionEntity.ts
│   │   │   │           ├── 1743758056188-FixOpenSourceAssistantTable.ts
│   │   │   │           ├── 1744964560174-AddErrorToEvaluationRun.ts
│   │   │   │           ├── 1754986486669-AddTextToSpeechToChatFlow.ts
│   │   │   │           ├── 1755066758601-ModifyChatflowType.ts
│   │   │   │           ├── 1759419136055-AddTextToSpeechToChatFlow.ts
│   │   │   │           ├── 1759424923093-AddChatFlowNameIndex.ts
│   │   │   │           ├── 1764759496768-AddReasonContentToChatMessage.ts
│   │   │   │           ├── 1765360298674-AddApiKeyPermission.ts
│   │   │   │           └── index.ts
│   │   │   ├── enterprise/
│   │   │   │   ├── Interface.Enterprise.ts
│   │   │   │   ├── LICENSE.md
│   │   │   │   ├── controllers/
│   │   │   │   │   ├── account.controller.ts
│   │   │   │   │   ├── audit/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── auth/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── login-method.controller.ts
│   │   │   │   │   ├── organization-user.controller.ts
│   │   │   │   │   ├── organization.controller.ts
│   │   │   │   │   ├── role.controller.ts
│   │   │   │   │   ├── user.controller.ts
│   │   │   │   │   ├── workspace-user.controller.ts
│   │   │   │   │   └── workspace.controller.ts
│   │   │   │   ├── database/
│   │   │   │   │   ├── entities/
│   │   │   │   │   │   ├── EnterpriseEntities.ts
│   │   │   │   │   │   ├── login-method.entity.ts
│   │   │   │   │   │   ├── login-session.entity.ts
│   │   │   │   │   │   ├── organization-user.entity.ts
│   │   │   │   │   │   ├── organization.entity.ts
│   │   │   │   │   │   ├── role.entity.ts
│   │   │   │   │   │   ├── user.entity.ts
│   │   │   │   │   │   ├── workspace-user.entity.ts
│   │   │   │   │   │   └── workspace.entity.ts
│   │   │   │   │   └── migrations/
│   │   │   │   │       ├── mariadb/
│   │   │   │   │       │   ├── 1720230151482-AddAuthTables.ts
│   │   │   │   │       │   ├── 1725437498242-AddWorkspace.ts
│   │   │   │   │       │   ├── 1726654922034-AddWorkspaceShared.ts
│   │   │   │   │       │   ├── 1726655750383-AddWorkspaceIdToCustomTemplate.ts
│   │   │   │   │       │   ├── 1727798417345-AddOrganization.ts
│   │   │   │   │       │   ├── 1729130948686-LinkWorkspaceId.ts
│   │   │   │   │       │   ├── 1729133111652-LinkOrganizationId.ts
│   │   │   │   │       │   ├── 1730519457880-AddSSOColumns.ts
│   │   │   │   │       │   ├── 1734074497540-AddPersonalWorkspace.ts
│   │   │   │   │       │   ├── 1737076223692-RefactorEnterpriseDatabase.ts
│   │   │   │   │       │   ├── 1746862866554-ExecutionLinkWorkspaceId.ts
│   │   │   │   │       │   └── mariaDbCustomFunctions.ts
│   │   │   │   │       ├── mysql/
│   │   │   │   │       │   ├── 1720230151482-AddAuthTables.ts
│   │   │   │   │       │   ├── 1720230151484-AddWorkspace.ts
│   │   │   │   │       │   ├── 1726654922034-AddWorkspaceShared.ts
│   │   │   │   │       │   ├── 1726655750383-AddWorkspaceIdToCustomTemplate.ts
│   │   │   │   │       │   ├── 1727798417345-AddOrganization.ts
│   │   │   │   │       │   ├── 1729130948686-LinkWorkspaceId.ts
│   │   │   │   │       │   ├── 1729133111652-LinkOrganizationId.ts
│   │   │   │   │       │   ├── 1730519457880-AddSSOColumns.ts
│   │   │   │   │       │   ├── 1734074497540-AddPersonalWorkspace.ts
│   │   │   │   │       │   ├── 1737076223692-RefactorEnterpriseDatabase.ts
│   │   │   │   │       │   ├── 1746862866554-ExecutionLinkWorkspaceId.ts
│   │   │   │   │       │   └── mysqlCustomFunctions.ts
│   │   │   │   │       ├── postgres/
│   │   │   │   │       │   ├── 1720230151482-AddAuthTables.ts
│   │   │   │   │       │   ├── 1720230151484-AddWorkspace.ts
│   │   │   │   │       │   ├── 1726654922034-AddWorkspaceShared.ts
│   │   │   │   │       │   ├── 1726655750383-AddWorkspaceIdToCustomTemplate.ts
│   │   │   │   │       │   ├── 1727798417345-AddOrganization.ts
│   │   │   │   │       │   ├── 1729130948686-LinkWorkspaceId.ts
│   │   │   │   │       │   ├── 1729133111652-LinkOrganizationId.ts
│   │   │   │   │       │   ├── 1730519457880-AddSSOColumns.ts
│   │   │   │   │       │   ├── 1734074497540-AddPersonalWorkspace.ts
│   │   │   │   │       │   ├── 1737076223692-RefactorEnterpriseDatabase.ts
│   │   │   │   │       │   └── 1746862866554-ExecutionLinkWorkspaceId.ts
│   │   │   │   │       └── sqlite/
│   │   │   │   │           ├── 1720230151482-AddAuthTables.ts
│   │   │   │   │           ├── 1720230151484-AddWorkspace.ts
│   │   │   │   │           ├── 1726654922034-AddWorkspaceShared.ts
│   │   │   │   │           ├── 1726655750383-AddWorkspaceIdToCustomTemplate.ts
│   │   │   │   │           ├── 1727798417345-AddOrganization.ts
│   │   │   │   │           ├── 1729130948686-LinkWorkspaceId.ts
│   │   │   │   │           ├── 1729133111652-LinkOrganizationId.ts
│   │   │   │   │           ├── 1730519457880-AddSSOColumns.ts
│   │   │   │   │           ├── 1734074497540-AddPersonalWorkspace.ts
│   │   │   │   │           ├── 1737076223692-RefactorEnterpriseDatabase.ts
│   │   │   │   │           ├── 1746862866554-ExecutionLinkWorkspaceId.ts
│   │   │   │   │           └── sqlliteCustomFunctions.ts
│   │   │   │   ├── emails/
│   │   │   │   │   ├── verify_email_cloud.hbs
│   │   │   │   │   ├── verify_email_cloud.html
│   │   │   │   │   ├── workspace_add_cloud.hbs
│   │   │   │   │   ├── workspace_add_cloud.html
│   │   │   │   │   ├── workspace_new_invite_cloud.hbs
│   │   │   │   │   ├── workspace_new_invite_cloud.html
│   │   │   │   │   ├── workspace_new_invite_enterprise.hbs
│   │   │   │   │   ├── workspace_new_invite_enterprise.html
│   │   │   │   │   ├── workspace_update_invite_cloud.hbs
│   │   │   │   │   ├── workspace_update_invite_cloud.html
│   │   │   │   │   ├── workspace_update_invite_enterprise.hbs
│   │   │   │   │   ├── workspace_update_invite_enterprise.html
│   │   │   │   │   ├── workspace_user_reset_password.hbs
│   │   │   │   │   └── workspace_user_reset_password.html
│   │   │   │   ├── middleware/
│   │   │   │   │   ├── passport/
│   │   │   │   │   │   ├── AuthStrategy.ts
│   │   │   │   │   │   ├── SessionPersistance.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   └── prometheus/
│   │   │   │   │       └── index.ts
│   │   │   │   ├── rbac/
│   │   │   │   │   ├── PermissionCheck.ts
│   │   │   │   │   └── Permissions.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── account.route.ts
│   │   │   │   │   ├── audit/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── auth/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── login-method.route.ts
│   │   │   │   │   ├── organization-user.route.ts
│   │   │   │   │   ├── organization.route.ts
│   │   │   │   │   ├── role.route.ts
│   │   │   │   │   ├── user.route.ts
│   │   │   │   │   ├── workspace-user.route.ts
│   │   │   │   │   └── workspace.route.ts
│   │   │   │   ├── services/
│   │   │   │   │   ├── account.service.ts
│   │   │   │   │   ├── audit/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── login-method.service.ts
│   │   │   │   │   ├── organization-user.service.ts
│   │   │   │   │   ├── organization.service.ts
│   │   │   │   │   ├── role.service.ts
│   │   │   │   │   ├── user.service.ts
│   │   │   │   │   ├── workspace-user.service.ts
│   │   │   │   │   └── workspace.service.ts
│   │   │   │   ├── sso/
│   │   │   │   │   ├── Auth0SSO.ts
│   │   │   │   │   ├── AzureSSO.ts
│   │   │   │   │   ├── GithubSSO.ts
│   │   │   │   │   ├── GoogleSSO.ts
│   │   │   │   │   └── SSOBase.ts
│   │   │   │   └── utils/
│   │   │   │       ├── ControllerServiceUtils.ts
│   │   │   │       ├── authSecrets.ts
│   │   │   │       ├── encryption.util.ts
│   │   │   │       ├── sendEmail.ts
│   │   │   │       ├── tempTokenUtils.ts
│   │   │   │       ├── url.util.test.ts
│   │   │   │       ├── url.util.ts
│   │   │   │       └── validation.util.ts
│   │   │   ├── errors/
│   │   │   │   ├── internalFlowiseError/
│   │   │   │   │   └── index.ts
│   │   │   │   └── utils.ts
│   │   │   ├── index.ts
│   │   │   ├── metrics/
│   │   │   │   ├── OpenTelemetry.ts
│   │   │   │   └── Prometheus.ts
│   │   │   ├── middlewares/
│   │   │   │   └── errors/
│   │   │   │       └── index.ts
│   │   │   ├── queue/
│   │   │   │   ├── BaseQueue.ts
│   │   │   │   ├── PredictionQueue.ts
│   │   │   │   ├── QueueManager.ts
│   │   │   │   ├── RedisEventPublisher.ts
│   │   │   │   ├── RedisEventSubscriber.ts
│   │   │   │   └── UpsertQueue.ts
│   │   │   ├── routes/
│   │   │   │   ├── agentflowv2-generator/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── apikey/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── assistants/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── attachments/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── chat-messages/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── chatflows/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── chatflows-streaming/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── chatflows-uploads/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── components-credentials/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── components-credentials-icon/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── credentials/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── dataset/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── documentstore/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── evaluations/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── evaluator/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── executions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── export-import/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── feedback/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── fetch-links/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── files/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── flow-config/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── get-upload-file/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── internal-chat-messages/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── internal-predictions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── leads/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── load-prompts/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── log/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── marketplaces/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── node-configs/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── node-custom-functions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── node-icons/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── node-load-methods/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── nodes/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── nvidia-nim/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── oauth2/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── templates.ts
│   │   │   │   ├── openai-assistants/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── openai-assistants-files/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── openai-assistants-vector-store/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── openai-realtime/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── ping/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── predictions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── pricing/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── prompts-lists/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── public-chatbots/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── public-chatflows/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── public-executions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── settings/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── stats/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── text-to-speech/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── tools/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── upsert-history/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── validation/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── variables/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── vectors/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── verify/
│   │   │   │   │   └── index.ts
│   │   │   │   └── versions/
│   │   │   │       └── index.ts
│   │   │   ├── services/
│   │   │   │   ├── agentflowv2-generator/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── prompt.ts
│   │   │   │   ├── apikey/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── assistants/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── attachments/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── chat-messages/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── chatflows/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── components-credentials/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── credentials/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── dataset/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── documentstore/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── evaluations/
│   │   │   │   │   ├── CostCalculator.ts
│   │   │   │   │   ├── EvaluatorRunner.ts
│   │   │   │   │   ├── LLMEvaluationRunner.ts
│   │   │   │   │   └── index.ts
│   │   │   │   ├── evaluator/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── executions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── export-import/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── feedback/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── validation.ts
│   │   │   │   ├── fetch-links/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── flow-configs/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── leads/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── load-prompts/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── log/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── marketplaces/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── node-configs/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── nodes/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── openai-assistants/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── openai-assistants-vector-store/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── openai-realtime/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── predictions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── prompts-lists/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── settings/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── stats/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── text-to-speech/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── tools/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── upsert-history/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── validation/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── variables/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── vectors/
│   │   │   │   │   └── index.ts
│   │   │   │   └── versions/
│   │   │   │       └── index.ts
│   │   │   └── utils/
│   │   │       ├── SSEStreamer.ts
│   │   │       ├── XSS.ts
│   │   │       ├── addChatMesage.ts
│   │   │       ├── addChatMessageFeedback.ts
│   │   │       ├── addChatflowsCount.ts
│   │   │       ├── apiKey.test.ts
│   │   │       ├── apiKey.ts
│   │   │       ├── buildAgentGraph.ts
│   │   │       ├── buildAgentflow.ts
│   │   │       ├── buildChatflow.ts
│   │   │       ├── config.ts
│   │   │       ├── constants.ts
│   │   │       ├── createAttachment.ts
│   │   │       ├── database.util.ts
│   │   │       ├── domainValidation.ts
│   │   │       ├── executeCustomNodeFunction.ts
│   │   │       ├── fileRepository.ts
│   │   │       ├── fileValidation.ts
│   │   │       ├── getChatMessage.ts
│   │   │       ├── getChatMessageFeedback.ts
│   │   │       ├── getRunningExpressApp.ts
│   │   │       ├── getUploadsConfig.ts
│   │   │       ├── hub.ts
│   │   │       ├── index.ts
│   │   │       ├── logger.ts
│   │   │       ├── pagination.ts
│   │   │       ├── prompt.ts
│   │   │       ├── quotaUsage.ts
│   │   │       ├── rateLimit.ts
│   │   │       ├── sanitize.util.ts
│   │   │       ├── sanitizeFlowData.test.ts
│   │   │       ├── sanitizeFlowData.ts
│   │   │       ├── telemetry.ts
│   │   │       ├── typeormDataSource.ts
│   │   │       ├── updateChatMessageFeedback.ts
│   │   │       ├── upsertVector.ts
│   │   │       └── validateKey.ts
│   │   └── tsconfig.json
│   └── ui/
│       ├── .npmignore
│       ├── README-ZH.md
│       ├── README.md
│       ├── craco.config.js
│       ├── index.html
│       ├── jsconfig.json
│       ├── package.json
│       ├── public/
│       │   ├── index.html
│       │   └── manifest.json
│       ├── src/
│       │   ├── App.jsx
│       │   ├── ErrorBoundary.jsx
│       │   ├── api/
│       │   │   ├── account.api.js
│       │   │   ├── apikey.js
│       │   │   ├── assistants.js
│       │   │   ├── attachments.js
│       │   │   ├── audit.js
│       │   │   ├── auth.js
│       │   │   ├── chatflows.js
│       │   │   ├── chatmessage.js
│       │   │   ├── chatmessagefeedback.js
│       │   │   ├── client.js
│       │   │   ├── config.js
│       │   │   ├── credentials.js
│       │   │   ├── dataset.js
│       │   │   ├── documentstore.js
│       │   │   ├── evaluations.js
│       │   │   ├── evaluators.js
│       │   │   ├── executions.js
│       │   │   ├── exportimport.js
│       │   │   ├── feedback.js
│       │   │   ├── files.js
│       │   │   ├── lead.js
│       │   │   ├── log.js
│       │   │   ├── loginmethod.js
│       │   │   ├── marketplaces.js
│       │   │   ├── nodes.js
│       │   │   ├── oauth2.js
│       │   │   ├── platformsettings.js
│       │   │   ├── prediction.js
│       │   │   ├── pricing.js
│       │   │   ├── prompt.js
│       │   │   ├── role.js
│       │   │   ├── scraper.js
│       │   │   ├── sso.js
│       │   │   ├── tools.js
│       │   │   ├── tts.js
│       │   │   ├── user.js
│       │   │   ├── validation.js
│       │   │   ├── variables.js
│       │   │   ├── vectorstore.js
│       │   │   └── workspace.js
│       │   ├── assets/
│       │   │   └── scss/
│       │   │       ├── _themes-vars.module.scss
│       │   │       └── style.scss
│       │   ├── config.js
│       │   ├── hooks/
│       │   │   ├── useApi.jsx
│       │   │   ├── useAuth.jsx
│       │   │   ├── useConfirm.jsx
│       │   │   ├── useScriptRef.jsx
│       │   │   └── useSearchShortcut.jsx
│       │   ├── index.jsx
│       │   ├── layout/
│       │   │   ├── AuthLayout/
│       │   │   │   └── index.jsx
│       │   │   ├── MainLayout/
│       │   │   │   ├── Header/
│       │   │   │   │   ├── OrgWorkspaceBreadcrumbs/
│       │   │   │   │   │   └── index.jsx
│       │   │   │   │   ├── ProfileSection/
│       │   │   │   │   │   ├── index.css
│       │   │   │   │   │   └── index.jsx
│       │   │   │   │   ├── WorkspaceSwitcher/
│       │   │   │   │   │   └── index.jsx
│       │   │   │   │   └── index.jsx
│       │   │   │   ├── LogoSection/
│       │   │   │   │   └── index.jsx
│       │   │   │   ├── Sidebar/
│       │   │   │   │   ├── CloudMenuList.jsx
│       │   │   │   │   ├── MenuList/
│       │   │   │   │   │   ├── NavCollapse/
│       │   │   │   │   │   │   └── index.jsx
│       │   │   │   │   │   ├── NavGroup/
│       │   │   │   │   │   │   └── index.jsx
│       │   │   │   │   │   ├── NavItem/
│       │   │   │   │   │   │   └── index.jsx
│       │   │   │   │   │   └── index.jsx
│       │   │   │   │   ├── TrialInfo.jsx
│       │   │   │   │   └── index.jsx
│       │   │   │   ├── ViewHeader.jsx
│       │   │   │   └── index.jsx
│       │   │   ├── MinimalLayout/
│       │   │   │   └── index.jsx
│       │   │   ├── NavMotion.jsx
│       │   │   └── NavigationScroll.jsx
│       │   ├── menu-items/
│       │   │   ├── agentsettings.js
│       │   │   ├── customassistant.js
│       │   │   ├── dashboard.js
│       │   │   ├── index.js
│       │   │   └── settings.js
│       │   ├── routes/
│       │   │   ├── AuthRoutes.jsx
│       │   │   ├── CanvasRoutes.jsx
│       │   │   ├── ChatbotRoutes.jsx
│       │   │   ├── DefaultRedirect.jsx
│       │   │   ├── ExecutionRoutes.jsx
│       │   │   ├── MainRoutes.jsx
│       │   │   ├── RequireAuth.jsx
│       │   │   └── index.jsx
│       │   ├── serviceWorker.js
│       │   ├── store/
│       │   │   ├── actions.js
│       │   │   ├── constant.js
│       │   │   ├── context/
│       │   │   │   ├── ConfigContext.jsx
│       │   │   │   ├── ConfirmContext.jsx
│       │   │   │   ├── ConfirmContextProvider.jsx
│       │   │   │   ├── ErrorContext.jsx
│       │   │   │   └── ReactFlowContext.jsx
│       │   │   ├── index.jsx
│       │   │   ├── reducer.jsx
│       │   │   └── reducers/
│       │   │       ├── authSlice.js
│       │   │       ├── canvasReducer.js
│       │   │       ├── customizationReducer.js
│       │   │       ├── dialogReducer.js
│       │   │       └── notifierReducer.js
│       │   ├── themes/
│       │   │   ├── compStyleOverride.js
│       │   │   ├── index.js
│       │   │   ├── palette.js
│       │   │   └── typography.js
│       │   ├── ui-component/
│       │   │   ├── array/
│       │   │   │   └── ArrayRenderer.jsx
│       │   │   ├── button/
│       │   │   │   ├── AnimateButton.jsx
│       │   │   │   ├── CopyToClipboardButton.jsx
│       │   │   │   ├── FlowListMenu.jsx
│       │   │   │   ├── ImageButton.js
│       │   │   │   ├── RBACButtons.jsx
│       │   │   │   ├── StyledButton.jsx
│       │   │   │   ├── StyledFab.jsx
│       │   │   │   ├── ThumbsDownButton.jsx
│       │   │   │   └── ThumbsUpButton.jsx
│       │   │   ├── cards/
│       │   │   │   ├── DocumentStoreCard.jsx
│       │   │   │   ├── FollowUpPromptsCard.jsx
│       │   │   │   ├── ItemCard.jsx
│       │   │   │   ├── MainCard.jsx
│       │   │   │   ├── NodeCardWrapper.jsx
│       │   │   │   ├── Skeleton/
│       │   │   │   │   └── ChatflowCard.jsx
│       │   │   │   ├── StarterPromptsCard.css
│       │   │   │   ├── StarterPromptsCard.jsx
│       │   │   │   └── StatsCard.jsx
│       │   │   ├── checkbox/
│       │   │   │   └── Checkbox.jsx
│       │   │   ├── dialog/
│       │   │   │   ├── AboutDialog.jsx
│       │   │   │   ├── AdditionalParamsDialog.jsx
│       │   │   │   ├── AgentflowGeneratorDialog.jsx
│       │   │   │   ├── AllowedDomainsDialog.jsx
│       │   │   │   ├── ChatFeedbackContentDialog.jsx
│       │   │   │   ├── ChatFeedbackDialog.jsx
│       │   │   │   ├── ChatflowConfigurationDialog.jsx
│       │   │   │   ├── ConditionDialog.jsx
│       │   │   │   ├── ConfirmDialog.jsx
│       │   │   │   ├── ExpandRichInputDialog.jsx
│       │   │   │   ├── ExpandTextDialog.css
│       │   │   │   ├── ExpandTextDialog.jsx
│       │   │   │   ├── ExportAsTemplateDialog.jsx
│       │   │   │   ├── FormatPromptValuesDialog.jsx
│       │   │   │   ├── InputHintDialog.jsx
│       │   │   │   ├── InviteUsersDialog.jsx
│       │   │   │   ├── ManageScrapedLinksDialog.jsx
│       │   │   │   ├── NodeInfoDialog.jsx
│       │   │   │   ├── NvidiaNIMDialog.jsx
│       │   │   │   ├── PromptGeneratorDialog.jsx
│       │   │   │   ├── PromptLangsmithHubDialog.jsx
│       │   │   │   ├── SaveChatflowDialog.jsx
│       │   │   │   ├── ShareWithWorkspaceDialog.jsx
│       │   │   │   ├── SourceDocDialog.jsx
│       │   │   │   ├── SpeechToTextDialog.jsx
│       │   │   │   ├── StarterPromptsDialog.jsx
│       │   │   │   ├── TagDialog.jsx
│       │   │   │   ├── ViewLeadsDialog.jsx
│       │   │   │   └── ViewMessagesDialog.jsx
│       │   │   ├── dropdown/
│       │   │   │   ├── AsyncDropdown.jsx
│       │   │   │   ├── Dropdown.jsx
│       │   │   │   └── MultiDropdown.jsx
│       │   │   ├── editor/
│       │   │   │   └── CodeEditor.jsx
│       │   │   ├── extended/
│       │   │   │   ├── AllowedDomains.jsx
│       │   │   │   ├── AnalyseFlow.jsx
│       │   │   │   ├── AudioWaveform.jsx
│       │   │   │   ├── Avatar.jsx
│       │   │   │   ├── Breadcrumbs.jsx
│       │   │   │   ├── ChatFeedback.jsx
│       │   │   │   ├── Feedback.jsx
│       │   │   │   ├── FileUpload.jsx
│       │   │   │   ├── FollowUpPrompts.jsx
│       │   │   │   ├── Leads.jsx
│       │   │   │   ├── Logo.jsx
│       │   │   │   ├── OverrideConfig.jsx
│       │   │   │   ├── PostProcessing.jsx
│       │   │   │   ├── RateLimit.jsx
│       │   │   │   ├── Security.jsx
│       │   │   │   ├── SpeechToText.jsx
│       │   │   │   ├── StarterPrompts.jsx
│       │   │   │   ├── TextToSpeech.jsx
│       │   │   │   └── Transitions.jsx
│       │   │   ├── file/
│       │   │   │   └── File.jsx
│       │   │   ├── form/
│       │   │   │   └── settings.jsx
│       │   │   ├── grid/
│       │   │   │   ├── DataGrid.jsx
│       │   │   │   └── Grid.jsx
│       │   │   ├── input/
│       │   │   │   ├── Input.jsx
│       │   │   │   ├── RichInput.jsx
│       │   │   │   ├── SuggestionList.jsx
│       │   │   │   └── suggestionOption.js
│       │   │   ├── json/
│       │   │   │   ├── JsonEditor.jsx
│       │   │   │   ├── JsonViewer.jsx
│       │   │   │   └── SelectVariable.jsx
│       │   │   ├── loading/
│       │   │   │   ├── BackdropLoader.jsx
│       │   │   │   ├── Loadable.jsx
│       │   │   │   └── Loader.jsx
│       │   │   ├── markdown/
│       │   │   │   ├── CodeBlock.jsx
│       │   │   │   ├── Markdown.css
│       │   │   │   └── MemoizedReactMarkdown.jsx
│       │   │   ├── pagination/
│       │   │   │   └── TablePagination.jsx
│       │   │   ├── rbac/
│       │   │   │   └── available.jsx
│       │   │   ├── safe/
│       │   │   │   └── SafeHTML.jsx
│       │   │   ├── slider/
│       │   │   │   └── InputSlider.jsx
│       │   │   ├── subscription/
│       │   │   │   └── PricingDialog.jsx
│       │   │   ├── switch/
│       │   │   │   └── Switch.jsx
│       │   │   ├── table/
│       │   │   │   ├── DocumentStoreTable.jsx
│       │   │   │   ├── ExecutionsListTable.jsx
│       │   │   │   ├── FilesTable.jsx
│       │   │   │   ├── FlowListTable.jsx
│       │   │   │   ├── MarketplaceTable.jsx
│       │   │   │   ├── Table.jsx
│       │   │   │   ├── TableStyles.jsx
│       │   │   │   └── ToolsListTable.jsx
│       │   │   ├── tabs/
│       │   │   │   ├── Tab.jsx
│       │   │   │   ├── TabPanel.jsx
│       │   │   │   ├── TabsList.jsx
│       │   │   │   └── tabColors.js
│       │   │   ├── toolbar/
│       │   │   │   └── Toolbar.js
│       │   │   └── tooltip/
│       │   │       ├── MoreItemsTooltip.jsx
│       │   │       ├── NodeTooltip.jsx
│       │   │       └── TooltipWithParser.jsx
│       │   ├── utils/
│       │   │   ├── authUtils.js
│       │   │   ├── customMention.js
│       │   │   ├── errorHandler.js
│       │   │   ├── exportImport.js
│       │   │   ├── genericHelper.js
│       │   │   ├── useNotifier.js
│       │   │   ├── usePrompt.js
│       │   │   └── validation.js
│       │   └── views/
│       │       ├── account/
│       │       │   └── index.jsx
│       │       ├── agentexecutions/
│       │       │   ├── ExecutionDetails.jsx
│       │       │   ├── NodeExecutionDetails.jsx
│       │       │   ├── PublicExecutionDetails.jsx
│       │       │   ├── ShareExecutionDialog.jsx
│       │       │   └── index.jsx
│       │       ├── agentflows/
│       │       │   └── index.jsx
│       │       ├── agentflowsv2/
│       │       │   ├── AgentFlowEdge.jsx
│       │       │   ├── AgentFlowNode.jsx
│       │       │   ├── Canvas.jsx
│       │       │   ├── ConfigInput.jsx
│       │       │   ├── ConnectionLine.jsx
│       │       │   ├── EditNodeDialog.jsx
│       │       │   ├── IterationNode.jsx
│       │       │   ├── MarketplaceCanvas.jsx
│       │       │   ├── StickyNote.jsx
│       │       │   └── index.css
│       │       ├── apikey/
│       │       │   ├── APIKeyDialog.css
│       │       │   ├── APIKeyDialog.jsx
│       │       │   └── index.jsx
│       │       ├── assistants/
│       │       │   ├── custom/
│       │       │   │   ├── AddCustomAssistantDialog.jsx
│       │       │   │   ├── CustomAssistantConfigurePreview.jsx
│       │       │   │   ├── CustomAssistantLayout.jsx
│       │       │   │   └── toolAgentFlow.js
│       │       │   ├── index.jsx
│       │       │   └── openai/
│       │       │       ├── AssistantDialog.jsx
│       │       │       ├── AssistantVectorStoreDialog.jsx
│       │       │       ├── DeleteConfirmDialog.jsx
│       │       │       ├── LoadAssistantDialog.jsx
│       │       │       └── OpenAIAssistantLayout.jsx
│       │       ├── auth/
│       │       │   ├── expired.jsx
│       │       │   ├── forgotPassword.jsx
│       │       │   ├── login.jsx
│       │       │   ├── loginActivity.jsx
│       │       │   ├── rateLimited.jsx
│       │       │   ├── register.jsx
│       │       │   ├── resetPassword.jsx
│       │       │   ├── signIn.jsx
│       │       │   ├── ssoConfig.jsx
│       │       │   ├── ssoSuccess.jsx
│       │       │   ├── unauthorized.jsx
│       │       │   └── verify-email.jsx
│       │       ├── canvas/
│       │       │   ├── AddNodes.jsx
│       │       │   ├── ButtonEdge.jsx
│       │       │   ├── CanvasHeader.jsx
│       │       │   ├── CanvasNode.jsx
│       │       │   ├── CredentialInputHandler.jsx
│       │       │   ├── NodeInputHandler.jsx
│       │       │   ├── NodeOutputHandler.jsx
│       │       │   ├── StickyNote.jsx
│       │       │   ├── index.css
│       │       │   └── index.jsx
│       │       ├── chatbot/
│       │       │   └── index.jsx
│       │       ├── chatflows/
│       │       │   ├── APICodeDialog.jsx
│       │       │   ├── EmbedChat.jsx
│       │       │   ├── ShareChatbot.jsx
│       │       │   └── index.jsx
│       │       ├── chatmessage/
│       │       │   ├── AgentExecutedDataCard.jsx
│       │       │   ├── AgentReasoningCard.jsx
│       │       │   ├── ChatExpandDialog.jsx
│       │       │   ├── ChatInputHistory.js
│       │       │   ├── ChatMessage.css
│       │       │   ├── ChatMessage.jsx
│       │       │   ├── ChatPopUp.jsx
│       │       │   ├── ThinkingCard.jsx
│       │       │   ├── ValidationPopUp.jsx
│       │       │   ├── audio-recording.css
│       │       │   └── audio-recording.js
│       │       ├── credentials/
│       │       │   ├── AddEditCredentialDialog.jsx
│       │       │   ├── CredentialInputHandler.jsx
│       │       │   ├── CredentialListDialog.jsx
│       │       │   └── index.jsx
│       │       ├── datasets/
│       │       │   ├── AddEditDatasetDialog.jsx
│       │       │   ├── AddEditDatasetRowDialog.jsx
│       │       │   ├── DatasetItems.jsx
│       │       │   ├── UploadCSVFileDialog.jsx
│       │       │   └── index.jsx
│       │       ├── docstore/
│       │       │   ├── AddDocStoreDialog.jsx
│       │       │   ├── ComponentsListDialog.jsx
│       │       │   ├── DeleteDocStoreDialog.jsx
│       │       │   ├── DocStoreAPIDialog.jsx
│       │       │   ├── DocStoreInputHandler.jsx
│       │       │   ├── DocumentLoaderListDialog.jsx
│       │       │   ├── DocumentStoreDetail.jsx
│       │       │   ├── DocumentStoreStatus.jsx
│       │       │   ├── ExpandedChunkDialog.jsx
│       │       │   ├── LoaderConfigPreviewChunks.jsx
│       │       │   ├── ShowStoredChunks.jsx
│       │       │   ├── UpsertHistoryDetailsDialog.jsx
│       │       │   ├── UpsertHistorySideDrawer.jsx
│       │       │   ├── VectorStoreConfigure.jsx
│       │       │   ├── VectorStoreQuery.jsx
│       │       │   └── index.jsx
│       │       ├── evaluations/
│       │       │   ├── ChartLatency.jsx
│       │       │   ├── ChartPassPrnt.jsx
│       │       │   ├── ChartTokens.jsx
│       │       │   ├── CreateEvaluationDialog.jsx
│       │       │   ├── EvalsResultDialog.jsx
│       │       │   ├── EvaluationResult.jsx
│       │       │   ├── EvaluationResultSideDrawer.jsx
│       │       │   ├── EvaluationResultVersionsSideDrawer.jsx
│       │       │   ├── MetricsItemCard.jsx
│       │       │   └── index.jsx
│       │       ├── evaluators/
│       │       │   ├── AddEditEvaluatorDialog.jsx
│       │       │   ├── SamplePromptDialog.jsx
│       │       │   ├── evaluationPrompts.js
│       │       │   ├── evaluatorConstant.js
│       │       │   └── index.jsx
│       │       ├── files/
│       │       │   └── index.jsx
│       │       ├── marketplaces/
│       │       │   ├── MarketplaceCanvas.jsx
│       │       │   ├── MarketplaceCanvasHeader.jsx
│       │       │   ├── MarketplaceCanvasNode.jsx
│       │       │   └── index.jsx
│       │       ├── organization/
│       │       │   └── index.jsx
│       │       ├── roles/
│       │       │   ├── CreateEditRoleDialog.css
│       │       │   ├── CreateEditRoleDialog.jsx
│       │       │   └── index.jsx
│       │       ├── serverlogs/
│       │       │   └── index.jsx
│       │       ├── settings/
│       │       │   └── index.jsx
│       │       ├── tools/
│       │       │   ├── HowToUseFunctionDialog.jsx
│       │       │   ├── PasteJSONDialog.jsx
│       │       │   ├── ToolDialog.jsx
│       │       │   └── index.jsx
│       │       ├── users/
│       │       │   ├── EditUserDialog.jsx
│       │       │   └── index.jsx
│       │       ├── variables/
│       │       │   ├── AddEditVariableDialog.jsx
│       │       │   ├── HowToUseVariablesDialog.jsx
│       │       │   └── index.jsx
│       │       ├── vectorstore/
│       │       │   ├── UpsertHistoryDialog.jsx
│       │       │   ├── UpsertResultDialog.jsx
│       │       │   ├── VectorStoreDialog.jsx
│       │       │   └── VectorStorePopUp.jsx
│       │       └── workspace/
│       │           ├── AddEditWorkspaceDialog.jsx
│       │           ├── EditWorkspaceUserRoleDialog.jsx
│       │           ├── WorkspaceUsers.jsx
│       │           └── index.jsx
│       └── vite.config.js
├── pnpm-workspace.yaml
└── turbo.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .dockerignore
================================================
node_modules
dist
build

**/node_modules
**/build
**/dist

packages/server/.env
packages/ui/.env


================================================
FILE: .eslintrc.js
================================================
module.exports = {
    extends: [
        'eslint:recommended',
        'plugin:markdown/recommended',
        'plugin:react/recommended',
        'plugin:react/jsx-runtime',
        'plugin:react-hooks/recommended',
        'plugin:jsx-a11y/recommended',
        'plugin:prettier/recommended'
    ],
    settings: {
        react: {
            version: 'detect'
        }
    },
    parser: '@typescript-eslint/parser',
    ignorePatterns: ['**/node_modules', '**/dist', '**/build', '**/coverage', '**/package-lock.json'],
    plugins: ['unused-imports'],
    rules: {
        '@typescript-eslint/explicit-module-boundary-types': 'off',
        'no-unused-vars': 'off',
        'unused-imports/no-unused-imports': 'warn',
        'unused-imports/no-unused-vars': ['warn', { vars: 'all', varsIgnorePattern: '^_', args: 'after-used', argsIgnorePattern: '^_' }],
        'no-undef': 'off',
        'no-console': [process.env.CI ? 'error' : 'warn', { allow: ['warn', 'error', 'info'] }],
        'prettier/prettier': 'error',
        'no-control-regex': 0 // Used to match control regex's in user input
    }
}


================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

github: [FlowiseAI] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
name: Bug Report
description: File a bug report to help us improve
labels: ['bug']
assignees: []
body:
    - type: markdown
      attributes:
          value: |
              Make sure to have a proper title and description.

    - type: textarea
      id: bug-description
      attributes:
          label: Describe the bug
          description: A clear and concise description of what the bug is.
          placeholder: Tell us what you see!
      validations:
          required: true

    - type: textarea
      id: reproduce
      attributes:
          label: To Reproduce
          description: Steps to reproduce the behavior
          placeholder: |
              1. Go to '...'
              2. Click on '....'
              3. Scroll down to '....'
              4. See error
      validations:
          required: true

    - type: textarea
      id: expected
      attributes:
          label: Expected behavior
          description: A clear and concise description of what you expected to happen.
      validations:
          required: true

    - type: textarea
      id: screenshots
      attributes:
          label: Screenshots
          description: If applicable, add screenshots to help explain your problem.
          placeholder: Drag and drop or paste screenshots here

    - type: textarea
      id: flow
      attributes:
          label: Flow
          description: If applicable, add exported flow in order to help replicating the problem.
          placeholder: Paste your exported flow here

    - type: dropdown
      id: method
      attributes:
          label: Use Method
          description: How did you use Flowise?
          options:
              - Flowise Cloud
              - Docker
              - npx flowise start
              - pnpm start

    - type: input
      id: version
      attributes:
          label: Flowise Version
          description: What version of Flowise are you running?
          placeholder: e.g., 1.2.11

    - type: dropdown
      id: os
      attributes:
          label: Operating System
          description: What operating system are you using?
          options:
              - Windows
              - macOS
              - Linux
              - Other

    - type: dropdown
      id: browser
      attributes:
          label: Browser
          description: What browser are you using?
          options:
              - Chrome
              - Firefox
              - Safari
              - Edge
              - Other

    - type: textarea
      id: context
      attributes:
          label: Additional context
          description: Add any other context about the problem here.
          placeholder: Any additional information that might be helpful


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.yml
================================================
name: Feature Request
description: Suggest a new feature or enhancement for Flowise
labels: ['enhancement']
assignees: []
body:
    - type: markdown
      attributes:
          value: |
              Thanks for suggesting a new feature! Please provide as much detail as possible to help us understand your request.

    - type: textarea
      id: feature-description
      attributes:
          label: Feature Description
          description: A clear and concise description of the feature you'd like to see in Flowise.
          placeholder: Describe what you want to be added or improved...
      validations:
          required: true

    - type: dropdown
      id: feature-category
      attributes:
          label: Feature Category
          description: What category does this feature belong to?
          options:
              - UI/UX Improvement
              - New Node/Component
              - Integration
              - Performance
              - Security
              - Documentation
              - API Enhancement
              - Workflow/Flow Management
              - Authentication/Authorization
              - Database/Storage
              - Deployment/DevOps
              - Other
      validations:
          required: true

    - type: textarea
      id: problem-statement
      attributes:
          label: Problem Statement
          description: What problem does this feature solve? What's the current pain point?
          placeholder: Describe the problem or limitation you're facing...

    - type: textarea
      id: proposed-solution
      attributes:
          label: Proposed Solution
          description: How would you like this feature to work? Be as specific as possible.
          placeholder: Describe your ideal solution in detail...

    - type: textarea
      id: mockups-references
      attributes:
          label: Mockups or References
          description: Any mockups, screenshots, or references to similar features in other tools?
          placeholder: Upload images or provide links to examples...

    - type: textarea
      id: additional-context
      attributes:
          label: Additional Context
          description: Any other information, context, or examples that would help us understand this request.
          placeholder: Add any other relevant information...


================================================
FILE: .github/workflows/docker-image-dockerhub.yml
================================================
name: Docker Image CI - Docker Hub

on:
    workflow_dispatch:
        inputs:
            node_version:
                description: 'Node.js version to build this image with.'
                type: choice
                required: true
                default: '20'
                options:
                    - '20'
            tag_version:
                description: 'Tag version of the image to be pushed.'
                type: string
                required: true
                default: 'latest'

jobs:
    docker:
        runs-on: ubuntu-latest
        steps:
            - name: Set default values
              id: defaults
              run: |
                  echo "node_version=${{ github.event.inputs.node_version || '20' }}" >> $GITHUB_OUTPUT
                  echo "tag_version=${{ github.event.inputs.tag_version || 'latest' }}" >> $GITHUB_OUTPUT

            - name: Checkout
              uses: actions/checkout@v6.0.2

            - name: Set up QEMU
              uses: docker/setup-qemu-action@v4.0.0

            - name: Set up Docker Buildx
              uses: docker/setup-buildx-action@v4.0.0

            - name: Login to Docker Hub
              uses: docker/login-action@v4
              with:
                  username: ${{ secrets.DOCKERHUB_USERNAME }}
                  password: ${{ secrets.DOCKERHUB_TOKEN }}

            # -------------------------
            # Build and push main image
            # -------------------------
            - name: Build and push main image
              uses: docker/build-push-action@v6.19.2
              with:
                  context: .
                  file: ./docker/Dockerfile
                  build-args: |
                      NODE_VERSION=${{ steps.defaults.outputs.node_version }}
                  platforms: linux/amd64,linux/arm64
                  push: true
                  tags: |
                      flowiseai/flowise:${{ steps.defaults.outputs.tag_version }}

            # -------------------------
            # Build and push worker image
            # -------------------------
            - name: Build and push worker image
              uses: docker/build-push-action@v6.19.2
              with:
                  context: .
                  file: docker/worker/Dockerfile
                  build-args: |
                      NODE_VERSION=${{ steps.defaults.outputs.node_version }}
                  platforms: linux/amd64,linux/arm64
                  push: true
                  tags: |
                      flowiseai/flowise-worker:${{ steps.defaults.outputs.tag_version }}


================================================
FILE: .github/workflows/docker-image-ecr.yml
================================================
name: Docker Image CI - AWS ECR

on:
    workflow_dispatch:
        inputs:
            environment:
                description: 'Environment to push the image to.'
                required: true
                default: 'dev'
                type: choice
                options:
                    - dev
                    - prod
            node_version:
                description: 'Node.js version to build this image with.'
                type: choice
                required: true
                default: '20'
                options:
                    - '20'
            tag_version:
                description: 'Tag version of the image to be pushed.'
                type: string
                required: true
                default: 'latest'

permissions:
    contents: read # Required for checkout
    id-token: write # Required for AWS OIDC

jobs:
    docker:
        runs-on: ubuntu-latest
        environment: ${{ github.event.inputs.environment }}
        steps:
            - name: Set default values
              id: defaults
              run: |
                  echo "node_version=${{ github.event.inputs.node_version || '20' }}" >> $GITHUB_OUTPUT
                  echo "tag_version=${{ github.event.inputs.tag_version || 'latest' }}" >> $GITHUB_OUTPUT

            - name: Checkout
              uses: actions/checkout@v6.0.2

            - name: Set up QEMU
              uses: docker/setup-qemu-action@v4.0.0

            - name: Set up Docker Buildx
              uses: docker/setup-buildx-action@v4.0.0

            - name: Configure AWS Credentials
              if: ${{ inputs.environment != 'prod' }}
              uses: aws-actions/configure-aws-credentials@v6
              with:
                  aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
                  aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
                  aws-region: ${{ secrets.AWS_REGION }}

            - name: Configure AWS OIDC Credentials
              if: ${{ inputs.environment == 'prod' }}
              uses: aws-actions/configure-aws-credentials@8df5847569e6427dd6c4fb1cf565c83acfa8afa7 # v6.0.0
              with:
                  aws-region: ${{ secrets.AWS_REGION }}
                  role-to-assume: ${{ secrets.AWS_OIDC_IAM_ROLE }}
                  mask-aws-account-id: true
                  unset-current-credentials: true

            - name: Login to Amazon ECR
              uses: aws-actions/amazon-ecr-login@v2

            # -------------------------
            # Build and push main image
            # -------------------------
            - name: Build and push main image
              uses: docker/build-push-action@v6.19.2
              with:
                  context: .
                  file: Dockerfile
                  build-args: |
                      NODE_VERSION=${{ steps.defaults.outputs.node_version }}
                  platforms: linux/amd64,linux/arm64
                  push: true
                  tags: |
                      ${{ format('{0}.dkr.ecr.{1}.amazonaws.com/flowise:{2}', 
                          secrets.AWS_ACCOUNT_ID, 
                          secrets.AWS_REGION, 
                          steps.defaults.outputs.tag_version) }}


================================================
FILE: .github/workflows/main.yml
================================================
name: Node CI
on:
    push:
        branches:
            - main
    pull_request:
        branches:
            - '*'
    workflow_dispatch:
permissions:
    contents: read
jobs:
    build:
        strategy:
            matrix:
                platform: [ubuntu-latest]
                node-version: [18.15.0]
        runs-on: ${{ matrix.platform }}
        env:
            PUPPETEER_SKIP_DOWNLOAD: true
        steps:
            - uses: actions/checkout@v6
            - uses: pnpm/action-setup@v4
              with:
                  version: 10.26.0
            - name: Use Node.js ${{ matrix.node-version }}
              uses: actions/setup-node@v6
              with:
                  node-version: ${{ matrix.node-version }}
                  cache: 'pnpm'
                  cache-dependency-path: 'pnpm-lock.yaml'
            - run: pnpm install
            - run: pnpm lint
            - run: pnpm build
              env:
                  NODE_OPTIONS: '--max_old_space_size=4096'
            - run: pnpm test:coverage
            - name: Cypress install
              run: pnpm cypress install
            - name: Install dependencies (Cypress Action)
              uses: cypress-io/github-action@v7.1.5
              with:
                  working-directory: ./
                  runTests: false
            - name: Cypress test
              uses: cypress-io/github-action@v7.1.5
              with:
                  install: false
                  working-directory: packages/server
                  start: pnpm start
                  wait-on: 'http://localhost:3000'
                  wait-on-timeout: 120
                  browser: chrome


================================================
FILE: .github/workflows/proprietary-path-guard.yml
================================================
name: Proprietary Path Guard

# =============================================================================
# This workflow checks that PRs don't add files to proprietary paths.
#
# Proprietary paths:
#   - extensions/     Reserved for enterprise extensions
#   - apps/*          Only apps/oss-app/ is allowed
#
# These paths are reserved for downstream forks and enterprise distributions.
# =============================================================================

on:
    pull_request:
        branches: [main, develop, master]
    push:
        branches: ['**']

    # Manual trigger for testing
    workflow_dispatch:
        inputs:
            reason:
                description: 'Reason for manual run'
                required: false
                default: 'Testing'

permissions:
    contents: read

jobs:
    check-proprietary-paths:
        name: Check for Proprietary Paths
        runs-on: ubuntu-latest
        if: github.repository == 'FlowiseAI/Flowise'

        steps:
            - name: Checkout repository
              uses: actions/checkout@v6
              with:
                  fetch-depth: 0

            - name: Check for proprietary paths
              id: check-paths
              run: |
                  echo "🔍 Checking for proprietary paths..."
                  echo "Trigger: ${{ github.event_name }}"
                  echo ""

                  # Get changed files based on event type
                  if [ "${{ github.event_name }}" = "pull_request" ]; then
                    CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD)
                  elif [ "${{ github.event.before }}" != "0000000000000000000000000000000000000000" ]; then
                    # Push to existing branch - compare with previous commit
                    # Fall back to default branch comparison if before SHA is unreachable (e.g. force-push, shallow clone)
                    CHANGED_FILES=$(git diff --name-only ${{ github.event.before }} ${{ github.sha }} 2>/dev/null || git diff --name-only origin/${{ github.event.repository.default_branch }}...${{ github.sha }} 2>/dev/null || echo "")
                  else
                    # New branch - compare against default branch
                    CHANGED_FILES=$(git diff --name-only origin/${{ github.event.repository.default_branch }}...${{ github.sha }} 2>/dev/null || echo "")
                  fi

                  echo "Files to check:"
                  echo "$CHANGED_FILES" | head -50 | sed 's/^/  /'
                  echo ""

                  # Check for proprietary paths
                  VIOLATIONS=""

                  while IFS= read -r file; do
                    [ -z "$file" ] && continue

                    # Block all extensions/
                    if echo "$file" | grep -qE "^extensions/"; then
                      VIOLATIONS="$VIOLATIONS$file\n"
                      continue
                    fi

                    # Block all apps/ except apps/oss-app/
                    if echo "$file" | grep -qE "^apps/"; then
                      if ! echo "$file" | grep -qE "^apps/oss-app/"; then
                        VIOLATIONS="$VIOLATIONS$file\n"
                      fi
                    fi
                  done <<< "$CHANGED_FILES"

                  if [ -n "$VIOLATIONS" ]; then
                    echo "has_violations=true" >> $GITHUB_OUTPUT
                    echo "violations<<EOF" >> $GITHUB_OUTPUT
                    printf "%s" "$VIOLATIONS" >> $GITHUB_OUTPUT
                    echo "EOF" >> $GITHUB_OUTPUT

                    echo "❌ Files in proprietary paths detected!"
                    echo ""
                    printf "%s" "$VIOLATIONS" | sed 's/^/  ❌ /'
                    echo ""
                    echo "Proprietary paths:"
                    echo "  - extensions/    (reserved for enterprise extensions)"
                    echo "  - apps/*         (only apps/oss-app/ is allowed)"
                  else
                    echo "has_violations=false" >> $GITHUB_OUTPUT
                    echo "✅ No proprietary paths detected"
                  fi

            - name: Fail if violations found
              if: steps.check-paths.outputs.has_violations == 'true'
              run: |
                  echo "::error::Files detected in proprietary paths. These paths are reserved for enterprise extensions."
                  exit 1


================================================
FILE: .github/workflows/publish-agentflow.yml
================================================
name: Publish @flowiseai/agentflow
on:
    workflow_dispatch:
        inputs:
            bump:
                description: 'Version bump type'
                required: true
                type: choice
                default: 'prerelease'
                options:
                    - prerelease
                    - patch
                    - minor
                    - major
                    - custom
            custom_version:
                description: 'Custom version (only used when bump is "custom", e.g. 1.0.0-beta.1)'
                required: false
                type: string
            tag:
                description: 'npm dist-tag'
                required: false
                type: choice
                default: 'dev'
                options:
                    - dev
                    - latest

jobs:
    dry-run:
        runs-on: ubuntu-latest
        permissions:
            contents: read
        outputs:
            version: ${{ steps.resolve-version.outputs.version }}
        steps:
            - uses: actions/checkout@v4

            - uses: pnpm/action-setup@v2
              with:
                  version: 10.26.0

            - uses: actions/setup-node@v4
              with:
                  node-version: '18.15.0'
                  registry-url: 'https://registry.npmjs.org'

            - name: Validate custom version
              if: inputs.bump == 'custom'
              run: |
                  if [ -z "$CUSTOM_VERSION" ]; then
                    echo "::error::custom_version is required when bump is 'custom'"
                    exit 1
                  fi
                  npx semver "$CUSTOM_VERSION" || (echo "::error::Invalid semver: $CUSTOM_VERSION" && exit 1)
              env:
                  CUSTOM_VERSION: ${{ inputs.custom_version }}

            - name: Install dependencies
              run: pnpm install --frozen-lockfile
              env:
                  PUPPETEER_SKIP_DOWNLOAD: 'true'

            - name: Set version
              run: |
                  CURRENT=$(npm pkg get version --prefix packages/agentflow | tr -d '"')
                  if [ "$BUMP" = "custom" ]; then
                    NEW_VERSION="$CUSTOM_VERSION"
                  else
                    NEW_VERSION=$(npx semver "$CURRENT" -i "$BUMP" --preid dev)
                  fi
                  npm pkg set version="$NEW_VERSION" --prefix packages/agentflow
                  echo "Version set to $NEW_VERSION"
              env:
                  BUMP: ${{ inputs.bump }}
                  CUSTOM_VERSION: ${{ inputs.custom_version }}

            - name: Resolve version
              id: resolve-version
              run: |
                  VERSION=$(npm pkg get version --prefix packages/agentflow | tr -d '"')
                  echo "version=$VERSION" >> "$GITHUB_OUTPUT"
                  echo "## Version to publish: \`$VERSION\`" >> "$GITHUB_STEP_SUMMARY"
                  echo "## Tag: \`${{ inputs.tag }}\`" >> "$GITHUB_STEP_SUMMARY"

            - name: Package contents
              run: pnpm --filter @flowiseai/agentflow pack --dry-run

            - name: Dry run publish
              run: pnpm --filter @flowiseai/agentflow publish --no-git-checks --dry-run --tag ${{ inputs.tag }}
              env:
                  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

    publish:
        needs: dry-run
        runs-on: ubuntu-latest
        environment: npm-publish
        permissions:
            contents: write
            pull-requests: write
        steps:
            - uses: actions/checkout@v4

            - uses: pnpm/action-setup@v2
              with:
                  version: 10.26.0

            - uses: actions/setup-node@v4
              with:
                  node-version: '18.15.0'
                  registry-url: 'https://registry.npmjs.org'

            - name: Install dependencies
              run: pnpm install --frozen-lockfile
              env:
                  PUPPETEER_SKIP_DOWNLOAD: 'true'

            - name: Set version
              run: |
                  CURRENT=$(npm pkg get version --prefix packages/agentflow | tr -d '"')
                  if [ "$BUMP" = "custom" ]; then
                    NEW_VERSION="$CUSTOM_VERSION"
                  else
                    NEW_VERSION=$(npx semver "$CURRENT" -i "$BUMP" --preid dev)
                  fi
                  npm pkg set version="$NEW_VERSION" --prefix packages/agentflow
                  echo "Version set to $NEW_VERSION"
              env:
                  BUMP: ${{ inputs.bump }}
                  CUSTOM_VERSION: ${{ inputs.custom_version }}

            - name: Log version
              run: |
                  echo "Publishing version: ${{ needs.dry-run.outputs.version }}"
                  echo "Tag: ${{ inputs.tag }}"

            - name: Publish
              run: pnpm --filter @flowiseai/agentflow publish --no-git-checks --tag ${{ inputs.tag }}
              env:
                  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

            - name: Create version bump PR
              run: |
                  VERSION="${{ needs.dry-run.outputs.version }}"
                  BRANCH="chore/bump-agentflow-${VERSION}"
                  git config user.name "github-actions[bot]"
                  git config user.email "github-actions[bot]@users.noreply.github.com"
                  git checkout -b "$BRANCH"
                  git add packages/agentflow/package.json
                  git commit -m "chore: bump @flowiseai/agentflow to ${VERSION}"
                  git push -u origin "$BRANCH"
                  gh pr create \
                    --title "chore: bump @flowiseai/agentflow to ${VERSION}" \
                    --body "Automated version bump after publishing \`@flowiseai/agentflow@${VERSION}\` to npm with tag \`${{ inputs.tag }}\`." \
                    --base main \
                    --head "$BRANCH"
              env:
                  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}


================================================
FILE: .github/workflows/test_docker_build.yml
================================================
name: Test Docker Build

on:
    push:
        branches:
            - main

    pull_request:
        branches:
            - '*'
    workflow_dispatch:
jobs:
    build:
        runs-on: ubuntu-latest
        env:
            PUPPETEER_SKIP_DOWNLOAD: true
        steps:
            - uses: actions/checkout@v6
            - run: docker build --no-cache -t flowise .


================================================
FILE: .gitignore
================================================
# editor
.idea
.vscode

# dependencies
**/node_modules
**/package-lock.json
!**/examples/package-lock.json
**/yarn.lock

## logs
**/logs
**/*.log

## pnpm
.pnpm-store/

## build
**/dist
**/build

## temp
**/tmp
**/temp

## test
**/coverage

# misc
.DS_Store

## env
.env.local
.env.development.local
.env.test.local
.env.production.local
.env

## turbo
.turbo

## secrets
**/*.key
**/api.json

## uploads
**/uploads

## compressed
**/*.tgz

## vscode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets

# Local History for Visual Studio Code
.history/

## other keys
*.key
*.keys
*.priv
*.rsa
*.key.json

## ssh keys
*.ssh
*.ssh-key
.key-mrc

## Certificate Authority
*.ca

## Certificate
*.crt

## Certificate Sign Request
*.csr

## Certificate
*.der 

## Key database file
*.kdb

## OSCP request data
*.org

## PKCS #12
*.p12

## PEM-encoded certificate data
*.pem

## Random number seed
*.rnd

## SSLeay data
*.ssleay

## S/MIME message
*.smime
*.vsix

# =============================================================================
# Proprietary paths (should never exist in OSS)
# =============================================================================
extensions/

# Only allow apps/oss-app, ignore all other apps
apps/*/
!apps/oss-app/

# Claude - session/user specific files
.claude/plans/
.claude/settings.local.json


================================================
FILE: .husky/pre-commit
================================================
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

pnpm quick # prettify
pnpm lint-staged # eslint lint(also include prettify but prettify support more file extensions than eslint, so run prettify first)


================================================
FILE: .husky/pre-push
================================================
#!/bin/bash
[ -f "$(dirname "$0")/_/husky.sh" ] && . "$(dirname "$0")/_/husky.sh"

# =============================================================================
# OSS Guardrail: Prevent pushing proprietary code to OSS repository
# =============================================================================

# Paths that should NEVER go to OSS (explicitly blocked)
BLOCKED_PATHS="^extensions/"

# Allowed apps (whitelist) - everything else in apps/ is blocked
ALLOWED_APPS="^apps/oss-app/"

# Get the remote being pushed to
remote="$1"
url="$2"

# Check if pushing to OSS remote (FlowiseAI/Flowise)
if echo "$url" | grep -qE "FlowiseAI/Flowise(\.git)?$"; then
    echo "🔒 Pushing to OSS repo - checking for proprietary code..."

    # Read stdin for refs being pushed
    while read local_ref local_sha remote_ref remote_sha; do
        # Skip delete operations
        if [ "$local_sha" = "0000000000000000000000000000000000000000" ]; then
            continue
        fi

        # Get list of files to check based on whether this is a new or existing branch
        if [ "$remote_sha" = "0000000000000000000000000000000000000000" ]; then
            # New branch - check ALL files across ALL commits being pushed
            # Find merge base with remote's main/master to determine the branch point
            base=$(git merge-base "$local_sha" "$remote/main" 2>/dev/null || \
                   git merge-base "$local_sha" "$remote/master" 2>/dev/null || \
                   echo "")
            if [ -n "$base" ]; then
                # Found common ancestor - diff from there to get all new files
                files_to_check=$(git diff --name-only "$base..$local_sha")
            else
                # No common ancestor - check all files in all commits on this branch
                files_to_check=$(git log --name-only --pretty=format: "$local_sha" | sort -u)
            fi
        else
            # Existing branch - check only files changed in new commits
            files_to_check=$(git diff --name-only "$remote_sha..$local_sha")
        fi

        # Check for proprietary paths
        # Note: || true prevents grep's exit code 1 (no match) from aborting the subshell
        violations=$(
            {
                echo "$files_to_check" | grep -E "$BLOCKED_PATHS" || true
                echo "$files_to_check" | grep -E "^apps/" | grep -vE "$ALLOWED_APPS" || true
            } 2>/dev/null | sort -u
        )

        if [ -n "$violations" ]; then
            echo ""
            echo "❌ BLOCKED: Push contains changes to proprietary paths!"
            echo ""
            echo "The following files cannot be pushed to OSS:"
            echo "$violations" | sed 's/^/  - /'
            echo ""
            echo "Proprietary paths that are blocked:"
            echo "  - extensions/           (all extensions)"
            echo "  - apps/*                (except apps/oss-app/)"
            echo ""
            echo "Only apps/oss-app/ is allowed in the OSS repository."
            echo ""
            echo "These paths are reserved for proprietary extensions."
            echo ""
            exit 1
        fi
    done

    echo "✅ No proprietary code detected - push allowed"
fi

exit 0


================================================
FILE: .npmrc
================================================
auto-install-peers = true
strict-peer-dependencies = false
prefer-workspace-packages = true
link-workspace-packages = deep
hoist = true
shamefully-hoist = true
engine-strict = false


================================================
FILE: .nvmrc
================================================
v20.19.2


================================================
FILE: .prettierignore
================================================
pnpm-lock.yaml


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct

English | [中文](./i18n/CODE_OF_CONDUCT-ZH.md)

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

-   Using welcoming and inclusive language
-   Being respectful of differing viewpoints and experiences
-   Gracefully accepting constructive criticism
-   Focusing on what is best for the community
-   Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

-   The use of sexualized language or imagery and unwelcome sexual attention or
    advances
-   Trolling, insulting/derogatory comments, and personal or political attacks
-   Public or private harassment
-   Publishing others' private information, such as a physical or electronic
    address, without explicit permission
-   Other conduct which could reasonably be considered inappropriate in a
    professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at hello@flowiseai.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/


================================================
FILE: CONTRIBUTING.md
================================================
<!-- markdownlint-disable MD030 -->

# Contributing to Flowise

English | [中文](./i18n/CONTRIBUTING-ZH.md)

We appreciate any form of contributions.

## ⭐ Star

Star and share the [Github Repo](https://github.com/FlowiseAI/Flowise).

## 🙋 Q&A

Search up for any questions in [Q&A section](https://github.com/FlowiseAI/Flowise/discussions/categories/q-a), if you can't find one, don't hesitate to create one. It might helps others that have similar question.

## 🙌 Share Chatflow

Yes! Sharing how you use Flowise is a way of contribution. Export your chatflow as JSON, attach a screenshot and share it in [Show and Tell section](https://github.com/FlowiseAI/Flowise/discussions/categories/show-and-tell).

## 💡 Ideas

Ideas are welcome such as new feature, apps integration, and blockchain networks. Submit in [Ideas section](https://github.com/FlowiseAI/Flowise/discussions/categories/ideas).

## 🐞 Report Bugs

Found an issue? [Report it](https://github.com/FlowiseAI/Flowise/issues/new/choose).

## 👨‍💻 Contribute to Code

Not sure what to contribute? Some ideas:

-   Create new components from `packages/components`
-   Update existing components such as extending functionality, fixing bugs
-   Add new chatflow ideas

### Developers

Flowise has 3 different modules in a single mono repository.

-   `server`: Node backend to serve API logics
-   `ui`: React frontend
-   `components`: Third-party nodes integrations

#### Prerequisite

-   Install [PNPM](https://pnpm.io/installation). The project is configured to use pnpm v10.
    ```bash
    npm i -g pnpm
    ```

#### Step by step

1. Fork the official [Flowise Github Repository](https://github.com/FlowiseAI/Flowise).

2. Clone your forked repository.

3. Create a new branch, see [guide](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository). Naming conventions:

    - For feature branch: `feature/<Your New Feature>`
    - For bug fix branch: `bugfix/<Your New Bugfix>`.

4. Switch to the newly created branch.

5. Go into repository folder

    ```bash
    cd Flowise
    ```

6. Install all dependencies of all modules:

    ```bash
    pnpm install
    ```

7. Build all the code:

    ```bash
    pnpm build
    ```

8. Start the app on [http://localhost:3000](http://localhost:3000)

    ```bash
    pnpm start
    ```

9. For development:

    - Create `.env` file and specify the `VITE_PORT` (refer to `.env.example`) in `packages/ui`
    - Create `.env` file and specify the `PORT` (refer to `.env.example`) in `packages/server`
    - Run

    ```bash
    pnpm dev
    ```

    Any changes made in `packages/ui` or `packages/server` will be reflected on [http://localhost:8080](http://localhost:8080)

    For changes made in `packages/components`, run `pnpm build` again to pickup the changes.

10. After making all the changes, run

    ```bash
    pnpm build
    ```

    and

    ```bash
    pnpm start
    ```

    to make sure everything works fine in production.

11. Commit code and submit Pull Request from forked branch pointing to [Flowise main](https://github.com/FlowiseAI/Flowise/tree/main).

### Testing

-   Unit tests are **co-located** with their source files — a test for `Foo.ts` lives in `Foo.test.ts` in the same directory. This is the standard used across all packages in this repo.

-   Run tests per package:

    ```bash
    cd packages/server && pnpm test
    cd packages/components && pnpm test
    cd packages/agentflow && pnpm test
    ```

    Or from the repo root using `--filter`:

    ```bash
    pnpm --filter flowise-components test
    pnpm --filter @flowiseai/agentflow test
    pnpm --filter "./packages/server" test # root and server share the same package name.
    ```

-   Or run all tests from the repo root:

    ```bash
    pnpm test
    ```

-   When adding new functionality, place your test file next to the source file it tests:

    ```
    packages/components/nodes/tools/MyTool/
    ├── MyTool.ts
    └── MyTool.test.ts        ← co-located test
    ```

## 🌱 Env Variables

Flowise support different environment variables to configure your instance. You can specify the following variables in the `.env` file inside `packages/server` folder. Read [more](https://docs.flowiseai.com/environment-variables)

| Variable                             | Description                                                                                                                                                                                                                                                                       | Type                                             | Default                             |
| ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ | ----------------------------------- |
| PORT                                 | The HTTP port Flowise runs on                                                                                                                                                                                                                                                     | Number                                           | 3000                                |
| CORS_ORIGINS                         | The allowed origins for all cross-origin HTTP calls                                                                                                                                                                                                                               | String                                           |                                     |
| IFRAME_ORIGINS                       | The allowed origins for iframe src embedding                                                                                                                                                                                                                                      | String                                           |                                     |
| FLOWISE_FILE_SIZE_LIMIT              | Upload File Size Limit                                                                                                                                                                                                                                                            | String                                           | 50mb                                |
| DEBUG                                | Print logs from components                                                                                                                                                                                                                                                        | Boolean                                          |                                     |
| LOG_PATH                             | Location where log files are stored                                                                                                                                                                                                                                               | String                                           | `your-path/Flowise/logs`            |
| LOG_LEVEL                            | Different levels of logs                                                                                                                                                                                                                                                          | Enum String: `error`, `info`, `verbose`, `debug` | `info`                              |
| LOG_JSON_SPACES                      | Spaces to beautify JSON logs                                                                                                                                                                                                                                                      |                                                  | 2                                   |
| TOOL_FUNCTION_BUILTIN_DEP            | NodeJS built-in modules to be used for Custom Tool or Function                                                                                                                                                                                                                    | String                                           |                                     |
| TOOL_FUNCTION_EXTERNAL_DEP           | External modules to be used for Custom Tool or Function                                                                                                                                                                                                                           | String                                           |                                     |
| ALLOW_BUILTIN_DEP                    | Allow project dependencies to be used for Custom Tool or Function                                                                                                                                                                                                                 | Boolean                                          | false                               |
| DATABASE_TYPE                        | Type of database to store the flowise data                                                                                                                                                                                                                                        | Enum String: `sqlite`, `mysql`, `postgres`       | `sqlite`                            |
| DATABASE_PATH                        | Location where database is saved (When DATABASE_TYPE is sqlite)                                                                                                                                                                                                                   | String                                           | `your-home-dir/.flowise`            |
| DATABASE_HOST                        | Host URL or IP address (When DATABASE_TYPE is not sqlite)                                                                                                                                                                                                                         | String                                           |                                     |
| DATABASE_PORT                        | Database port (When DATABASE_TYPE is not sqlite)                                                                                                                                                                                                                                  | String                                           |                                     |
| DATABASE_USER                        | Database username (When DATABASE_TYPE is not sqlite)                                                                                                                                                                                                                              | String                                           |                                     |
| DATABASE_PASSWORD                    | Database password (When DATABASE_TYPE is not sqlite)                                                                                                                                                                                                                              | String                                           |                                     |
| DATABASE_NAME                        | Database name (When DATABASE_TYPE is not sqlite)                                                                                                                                                                                                                                  | String                                           |                                     |
| DATABASE_SSL_KEY_BASE64              | Database SSL client cert in base64 (takes priority over DATABASE_SSL)                                                                                                                                                                                                             | Boolean                                          | false                               |
| DATABASE_SSL                         | Database connection overssl (When DATABASE_TYPE is postgre)                                                                                                                                                                                                                       | Boolean                                          | false                               |
| SECRETKEY_PATH                       | Location where encryption key (used to encrypt/decrypt credentials) is saved                                                                                                                                                                                                      | String                                           | `your-path/Flowise/packages/server` |
| FLOWISE_SECRETKEY_OVERWRITE          | Encryption key to be used instead of the key stored in SECRETKEY_PATH                                                                                                                                                                                                             | String                                           |                                     |
| MODEL_LIST_CONFIG_JSON               | File path to load list of models from your local config file                                                                                                                                                                                                                      | String                                           | `/your_model_list_config_file_path` |
| STORAGE_TYPE                         | Type of storage for uploaded files. default is `local`                                                                                                                                                                                                                            | Enum String: `s3`, `local`, `gcs` ,`azure`       | `local`                             |
| BLOB_STORAGE_PATH                    | Local folder path where uploaded files are stored when `STORAGE_TYPE` is `local`                                                                                                                                                                                                  | String                                           | `your-home-dir/.flowise/storage`    |
| S3_STORAGE_BUCKET_NAME               | Bucket name to hold the uploaded files when `STORAGE_TYPE` is `s3`                                                                                                                                                                                                                | String                                           |                                     |
| S3_STORAGE_ACCESS_KEY_ID             | AWS Access Key                                                                                                                                                                                                                                                                    | String                                           |                                     |
| S3_STORAGE_SECRET_ACCESS_KEY         | AWS Secret Key                                                                                                                                                                                                                                                                    | String                                           |                                     |
| S3_STORAGE_REGION                    | Region for S3 bucket                                                                                                                                                                                                                                                              | String                                           |                                     |
| S3_ENDPOINT_URL                      | Custom Endpoint for S3                                                                                                                                                                                                                                                            | String                                           |                                     |
| S3_FORCE_PATH_STYLE                  | Set this to true to force the request to use path-style addressing                                                                                                                                                                                                                | Boolean                                          | false                               |
| GOOGLE_CLOUD_STORAGE_PROJ_ID         | The GCP project id for cloud storage & logging when `STORAGE_TYPE` is `gcs`                                                                                                                                                                                                       | String                                           |                                     |
| GOOGLE_CLOUD_STORAGE_CREDENTIAL      | The credential key file path when `STORAGE_TYPE` is `gcs`                                                                                                                                                                                                                         | String                                           |                                     |
| GOOGLE_CLOUD_STORAGE_BUCKET_NAME     | Bucket name to hold the uploaded files when `STORAGE_TYPE` is `gcs`                                                                                                                                                                                                               | String                                           |                                     |
| GOOGLE_CLOUD_UNIFORM_BUCKET_ACCESS   | Enable uniform bucket level access when `STORAGE_TYPE` is `gcs`                                                                                                                                                                                                                   | Boolean                                          | true                                |
| AZURE_BLOB_STORAGE_CONNECTION_STRING | Azure Blob Storage connection string when `STORAGE_TYPE` is `azure`. Either this or account name + key is required                                                                                                                                                                | String                                           |                                     |
| AZURE_BLOB_STORAGE_ACCOUNT_NAME      | Azure storage account name when `STORAGE_TYPE` is `azure`. Required if connection string is not provided                                                                                                                                                                          | String                                           |                                     |
| AZURE_BLOB_STORAGE_ACCOUNT_KEY       | Azure storage account key when `STORAGE_TYPE` is `azure`. Required if connection string is not provided                                                                                                                                                                           | String                                           |                                     |
| AZURE_BLOB_STORAGE_CONTAINER_NAME    | Container name to hold the uploaded files when `STORAGE_TYPE` is `azure`                                                                                                                                                                                                          | String                                           |                                     |
| SHOW_COMMUNITY_NODES                 | Show nodes created by community                                                                                                                                                                                                                                                   | Boolean                                          |                                     |
| DISABLED_NODES                       | Hide nodes from UI (comma separated list of node names)                                                                                                                                                                                                                           | String                                           |                                     |
| TRUST_PROXY                          | Configure proxy trust settings for proper IP detection. Values: 'true' (trust all), 'false' (disable), number (hop count), or Express proxy values (e.g., 'loopback', 'linklocal', 'uniquelocal', IP addresses). [Learn More](https://expressjs.com/en/guide/behind-proxies.html) | Boolean/String/Number                            | true                                |

You can also specify the env variables when using `npx`. For example:

```
npx flowise start --PORT=3000 --DEBUG=true
```

## 📖 Contribute to Docs

[Flowise Docs](https://github.com/FlowiseAI/FlowiseDocs)

## 🏷️ Pull Request process

A member of the FlowiseAI team will automatically be notified/assigned when you open a pull request. You can also reach out to us on [Discord](https://discord.gg/jbaHfsRVBW).

## 📜 Code of Conduct

This project and everyone participating in it are governed by the Code of Conduct which can be found in the [file](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to hello@flowiseai.com.


================================================
FILE: Dockerfile
================================================
# Build local monorepo image
# docker build --no-cache -t  flowise .

# Run image
# docker run -d -p 3000:3000 flowise

FROM node:20-alpine

# Install system dependencies and build tools
RUN apk update && \
    apk add --no-cache \
        libc6-compat \
        python3 \
        make \
        g++ \
        build-base \
        cairo-dev \
        pango-dev \
        chromium \
        curl && \
    npm install -g pnpm

ENV PUPPETEER_SKIP_DOWNLOAD=true
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser

ENV NODE_OPTIONS=--max-old-space-size=8192

WORKDIR /usr/src/flowise

# Copy app source
COPY . .

# Install dependencies and build
RUN pnpm install && \
    pnpm build

# Give the node user ownership of the application files
RUN chown -R node:node .

# Switch to non-root user (node user already exists in node:20-alpine)
USER node

EXPOSE 3000

CMD [ "pnpm", "start" ]

================================================
FILE: LICENSE.md
================================================
Copyright (c) 2023-present FlowiseAI, Inc.

Portions of this software are licensed as follows:

-   All content that resides under https://github.com/FlowiseAI/Flowise/tree/main/packages/server/src/enterprise directory and files with explicit copyright notice such as [IdentityManager.ts](https://github.com/FlowiseAI/Flowise/tree/main/packages/server/src/IdentityManager.ts) are licensed under [Commercial License](https://github.com/FlowiseAI/Flowise/tree/main/packages/server/src/enterprise/LICENSE.md).
-   All third party components incorporated into the FlowiseAI Software are licensed under the original license provided by the owner of the applicable component.
-   Content outside of the above mentioned directories or restrictions above is available under the "Apache 2.0" license as defined below.

                                  Apache License
                             Version 2.0, January 2004
                          http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

    "License" shall mean the terms and conditions for use, reproduction,
    and distribution as defined by Sections 1 through 9 of this document.

    "Licensor" shall mean the copyright owner or entity authorized by
    the copyright owner that is granting the License.

    "Legal Entity" shall mean the union of the acting entity and all
    other entities that control, are controlled by, or are under common
    control with that entity. For the purposes of this definition,
    "control" means (i) the power, direct or indirect, to cause the
    direction or management of such entity, whether by contract or
    otherwise, or (ii) ownership of fifty percent (50%) or more of the
    outstanding shares, or (iii) beneficial ownership of such entity.

    "You" (or "Your") shall mean an individual or Legal Entity
    exercising permissions granted by this License.

    "Source" form shall mean the preferred form for making modifications,
    including but not limited to software source code, documentation
    source, and configuration files.

    "Object" form shall mean any form resulting from mechanical
    transformation or translation of a Source form, including but
    not limited to compiled object code, generated documentation,
    and conversions to other media types.

    "Work" shall mean the work of authorship, whether in Source or
    Object form, made available under the License, as indicated by a
    copyright notice that is included in or attached to the work
    (an example is provided in the Appendix below).

    "Derivative Works" shall mean any work, whether in Source or Object
    form, that is based on (or derived from) the Work and for which the
    editorial revisions, annotations, elaborations, or other modifications
    represent, as a whole, an original work of authorship. For the purposes
    of this License, Derivative Works shall not include works that remain
    separable from, or merely link (or bind by name) to the interfaces of,
    the Work and Derivative Works thereof.

    "Contribution" shall mean any work of authorship, including
    the original version of the Work and any modifications or additions
    to that Work or Derivative Works thereof, that is intentionally
    submitted to Licensor for inclusion in the Work by the copyright owner
    or by an individual or Legal Entity authorized to submit on behalf of
    the copyright owner. For the purposes of this definition, "submitted"
    means any form of electronic, verbal, or written communication sent
    to the Licensor or its representatives, including but not limited to
    communication on electronic mailing lists, source code control systems,
    and issue tracking systems that are managed by, or on behalf of, the
    Licensor for the purpose of discussing and improving the Work, but
    excluding communication that is conspicuously marked or otherwise
    designated in writing by the copyright owner as "Not a Contribution."

    "Contributor" shall mean Licensor and any individual or Legal Entity
    on behalf of whom a Contribution has been received by Licensor and
    subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
   this License, each Contributor hereby grants to You a perpetual,
   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
   copyright license to reproduce, prepare Derivative Works of,
   publicly display, publicly perform, sublicense, and distribute the
   Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
   this License, each Contributor hereby grants to You a perpetual,
   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
   (except as stated in this section) patent license to make, have made,
   use, offer to sell, sell, import, and otherwise transfer the Work,
   where such license applies only to those patent claims licensable
   by such Contributor that are necessarily infringed by their
   Contribution(s) alone or by combination of their Contribution(s)
   with the Work to which such Contribution(s) was submitted. If You
   institute patent litigation against any entity (including a
   cross-claim or counterclaim in a lawsuit) alleging that the Work
   or a Contribution incorporated within the Work constitutes direct
   or contributory patent infringement, then any patent licenses
   granted to You under this License for that Work shall terminate
   as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
   Work or Derivative Works thereof in any medium, with or without
   modifications, and in Source or Object form, provided that You
   meet the following conditions:

    (a) You must give any other recipients of the Work or
    Derivative Works a copy of this License; and

    (b) You must cause any modified files to carry prominent notices
    stating that You changed the files; and

    (c) You must retain, in the Source form of any Derivative Works
    that You distribute, all copyright, patent, trademark, and
    attribution notices from the Source form of the Work,
    excluding those notices that do not pertain to any part of
    the Derivative Works; and

    (d) If the Work includes a "NOTICE" text file as part of its
    distribution, then any Derivative Works that You distribute must
    include a readable copy of the attribution notices contained
    within such NOTICE file, excluding those notices that do not
    pertain to any part of the Derivative Works, in at least one
    of the following places: within a NOTICE text file distributed
    as part of the Derivative Works; within the Source form or
    documentation, if provided along with the Derivative Works; or,
    within a display generated by the Derivative Works, if and
    wherever such third-party notices normally appear. The contents
    of the NOTICE file are for informational purposes only and
    do not modify the License. You may add Your own attribution
    notices within Derivative Works that You distribute, alongside
    or as an addendum to the NOTICE text from the Work, provided
    that such additional attribution notices cannot be construed
    as modifying the License.

    You may add Your own copyright statement to Your modifications and
    may provide additional or different license terms and conditions
    for use, reproduction, or distribution of Your modifications, or
    for any such Derivative Works as a whole, provided Your use,
    reproduction, and distribution of the Work otherwise complies with
    the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
   names, trademarks, service marks, or product names of the Licensor,
   except as required for reasonable and customary use in describing the
   origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
   agreed to in writing, Licensor provides the Work (and each
   Contributor provides its Contributions) on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
   implied, including, without limitation, any warranties or conditions
   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
   PARTICULAR PURPOSE. You are solely responsible for determining the
   appropriateness of using or redistributing the Work and assume any
   risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
   whether in tort (including negligence), contract, or otherwise,
   unless required by applicable law (such as deliberate and grossly
   negligent acts) or agreed to in writing, shall any Contributor be
   liable to You for damages, including any direct, indirect, special,
   incidental, or consequential damages of any character arising as a
   result of this License or out of the use or inability to use the
   Work (including but not limited to damages for loss of goodwill,
   work stoppage, computer failure or malfunction, or any and all
   other commercial damages or losses), even if such Contributor
   has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
   the Work or Derivative Works thereof, You may choose to offer,
   and charge a fee for, acceptance of support, warranty, indemnity,
   or other liability obligations and/or rights consistent with this
   License. However, in accepting such obligations, You may act only
   on Your own behalf and on Your sole responsibility, not on behalf
   of any other Contributor, and only if You agree to indemnify,
   defend, and hold each Contributor harmless for any liability
   incurred by, or claims asserted against, such Contributor by reason
   of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS


================================================
FILE: README.md
================================================
<!-- markdownlint-disable MD030 -->

<p align="center">
<img src="https://github.com/FlowiseAI/Flowise/blob/main/images/flowise_white.svg#gh-light-mode-only">
<img src="https://github.com/FlowiseAI/Flowise/blob/main/images/flowise_dark.svg#gh-dark-mode-only">
</p>

<div align="center">

[![Release Notes](https://img.shields.io/github/release/FlowiseAI/Flowise)](https://github.com/FlowiseAI/Flowise/releases)
[![Discord](https://img.shields.io/discord/1087698854775881778?label=Discord&logo=discord)](https://discord.gg/jbaHfsRVBW)
[![Twitter Follow](https://img.shields.io/twitter/follow/FlowiseAI?style=social)](https://twitter.com/FlowiseAI)
[![GitHub star chart](https://img.shields.io/github/stars/FlowiseAI/Flowise?style=social)](https://star-history.com/#FlowiseAI/Flowise)
[![GitHub fork](https://img.shields.io/github/forks/FlowiseAI/Flowise?style=social)](https://github.com/FlowiseAI/Flowise/fork)

English | [繁體中文](./i18n/README-TW.md) | [简体中文](./i18n/README-ZH.md) | [日本語](./i18n/README-JA.md) | [한국어](./i18n/README-KR.md)

</div>

<h3>Build AI Agents, Visually</h3>
<a href="https://github.com/FlowiseAI/Flowise">
<img width="100%" src="https://github.com/FlowiseAI/Flowise/blob/main/images/flowise_agentflow.gif?raw=true"></a>

## 📚 Table of Contents

-   [⚡ Quick Start](#-quick-start)
-   [🐳 Docker](#-docker)
-   [👨‍💻 Developers](#-developers)
-   [🌱 Env Variables](#-env-variables)
-   [📖 Documentation](#-documentation)
-   [🌐 Self Host](#-self-host)
-   [☁️ Flowise Cloud](#️-flowise-cloud)
-   [🙋 Support](#-support)
-   [🙌 Contributing](#-contributing)
-   [📄 License](#-license)

## ⚡Quick Start

Download and Install [NodeJS](https://nodejs.org/en/download) >= 18.15.0

1. Install Flowise
    ```bash
    npm install -g flowise
    ```
2. Start Flowise

    ```bash
    npx flowise start
    ```

3. Open [http://localhost:3000](http://localhost:3000)

## 🐳 Docker

### Docker Compose

1. Clone the Flowise project
2. Go to `docker` folder at the root of the project
3. Copy `.env.example` file, paste it into the same location, and rename to `.env` file
4. `docker compose up -d`
5. Open [http://localhost:3000](http://localhost:3000)
6. You can bring the containers down by `docker compose stop`

### Docker Image

1. Build the image locally:

    ```bash
    docker build --no-cache -t flowise .
    ```

2. Run image:

    ```bash
    docker run -d --name flowise -p 3000:3000 flowise
    ```

3. Stop image:

    ```bash
    docker stop flowise
    ```

## 👨‍💻 Developers

Flowise has 3 different modules in a single mono repository.

-   `server`: Node backend to serve API logics
-   `ui`: React frontend
-   `components`: Third-party nodes integrations
-   `api-documentation`: Auto-generated swagger-ui API docs from express

### Prerequisite

-   Install [PNPM](https://pnpm.io/installation)
    ```bash
    npm i -g pnpm
    ```

### Setup

1.  Clone the repository:

    ```bash
    git clone https://github.com/FlowiseAI/Flowise.git
    ```

2.  Go into repository folder:

    ```bash
    cd Flowise
    ```

3.  Install all dependencies of all modules:

    ```bash
    pnpm install
    ```

4.  Build all the code:

    ```bash
    pnpm build
    ```

    <details>
    <summary>Exit code 134 (JavaScript heap out of memory)</summary>  
    If you get this error when running the above `build` script, try increasing the Node.js heap size and run the script again:

    ```bash
    # macOS / Linux / Git Bash
    export NODE_OPTIONS="--max-old-space-size=4096"

    # Windows PowerShell
    $env:NODE_OPTIONS="--max-old-space-size=4096"

    # Windows CMD
    set NODE_OPTIONS=--max-old-space-size=4096
    ```

    Then run:

    ```bash
    pnpm build
    ```

    </details>

5.  Start the app:

    ```bash
    pnpm start
    ```

    You can now access the app on [http://localhost:3000](http://localhost:3000)

6.  For development build:

    -   Create `.env` file and specify the `VITE_PORT` (refer to `.env.example`) in `packages/ui`
    -   Create `.env` file and specify the `PORT` (refer to `.env.example`) in `packages/server`
    -   Run:

        ```bash
        pnpm dev
        ```

    Any code changes will reload the app automatically on [http://localhost:8080](http://localhost:8080)

## 🌱 Env Variables

Flowise supports different environment variables to configure your instance. You can specify the following variables in the `.env` file inside `packages/server` folder. Read [more](https://github.com/FlowiseAI/Flowise/blob/main/CONTRIBUTING.md#-env-variables)

## 📖 Documentation

You can view the Flowise Docs [here](https://docs.flowiseai.com/)

## 🌐 Self Host

Deploy Flowise self-hosted in your existing infrastructure, we support various [deployments](https://docs.flowiseai.com/configuration/deployment)

-   [AWS](https://docs.flowiseai.com/configuration/deployment/aws)
-   [Azure](https://docs.flowiseai.com/configuration/deployment/azure)
-   [Digital Ocean](https://docs.flowiseai.com/configuration/deployment/digital-ocean)
-   [GCP](https://docs.flowiseai.com/configuration/deployment/gcp)
-   [Alibaba Cloud](https://computenest.console.aliyun.com/service/instance/create/default?type=user&ServiceName=Flowise社区版)
-   <details>
      <summary>Others</summary>

    -   [Railway](https://docs.flowiseai.com/configuration/deployment/railway)

        [![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/pn4G8S?referralCode=WVNPD9)

    -   [Northflank](https://northflank.com/stacks/deploy-flowiseai)

        [![Deploy to Northflank](https://assets.northflank.com/deploy_to_northflank_smm_36700fb050.svg)](https://northflank.com/stacks/deploy-flowiseai)

    -   [Render](https://docs.flowiseai.com/configuration/deployment/render)

        [![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://docs.flowiseai.com/configuration/deployment/render)

    -   [HuggingFace Spaces](https://docs.flowiseai.com/deployment/hugging-face)

        <a href="https://huggingface.co/spaces/FlowiseAI/Flowise"><img src="https://huggingface.co/datasets/huggingface/badges/raw/main/open-in-hf-spaces-sm.svg" alt="HuggingFace Spaces"></a>

    -   [Elestio](https://elest.io/open-source/flowiseai)

        [![Deploy on Elestio](https://elest.io/images/logos/deploy-to-elestio-btn.png)](https://elest.io/open-source/flowiseai)

    -   [Sealos](https://template.sealos.io/deploy?templateName=flowise)

        [![Deploy on Sealos](https://sealos.io/Deploy-on-Sealos.svg)](https://template.sealos.io/deploy?templateName=flowise)

    -   [RepoCloud](https://repocloud.io/details/?app_id=29)

        [![Deploy on RepoCloud](https://d16t0pc4846x52.cloudfront.net/deploy.png)](https://repocloud.io/details/?app_id=29)

      </details>

## ☁️ Flowise Cloud

Get Started with [Flowise Cloud](https://flowiseai.com/).

## 🙋 Support

Feel free to ask any questions, raise problems, and request new features in [Discussion](https://github.com/FlowiseAI/Flowise/discussions).

## 🙌 Contributing

Thanks go to these awesome contributors

<a href="https://github.com/FlowiseAI/Flowise/graphs/contributors">
<img src="https://contrib.rocks/image?repo=FlowiseAI/Flowise" />
</a><br><br>

See [Contributing Guide](CONTRIBUTING.md). Reach out to us at [Discord](https://discord.gg/jbaHfsRVBW) if you have any questions or issues.

[![Star History Chart](https://api.star-history.com/svg?repos=FlowiseAI/Flowise&type=Timeline)](https://star-history.com/#FlowiseAI/Flowise&Date)

## 📄 License

Source code in this repository is made available under the [Apache License Version 2.0](LICENSE.md).


================================================
FILE: SECURITY.md
================================================
### Responsible Disclosure Policy

At Flowise, we prioritize security and continuously work to safeguard our systems. However, vulnerabilities can still exist. If you identify a security issue, please report it to us so we can address it promptly. Your cooperation helps us better protect our platform and users.

### Scope

-   Flowise Cloud: cloud.flowiseai.com
-   Public Flowise Repositories

### Out of scope vulnerabilities

-   Hypothetical issues that do not have a demonstrable, practical impact
-   Vulnerabilities that affect out-of-date browsers
-   ClickjackingCSRF on unauthenticated/logout/login pages
-   Banner disclosure on common/public services
-   Disclosure of known public files or directories (e.g. robots.txt)
-   Attacks requiring MITM (Man-in-the-Middle) or physical device access
-   Social engineering attacks
-   Denial service via bruteforce attack
-   Content spoofing and text injection without a valid attack vector
-   Username enumeration via Login Page error message
-   Username enumeration via Forgot password error message
-   Bruteforce attacks
-   Email spoofing
-   Absence of DNSSEC, CAA, CSP headers
-   Missing Secure or HTTP-only flag on non-sensitive cookies
-   Deadlinks
-   User enumeration
-   Social Engineering
-   Version Disclosure
-   Vulnerabilities that can only affect the attacker (e.g. self-XSS)
-   Known vulnerabilities in used libraries (unless exploitability can be proven)
-   Static application security testing findings

### Reporting Guidelines

-   Submit your findings to https://github.com/FlowiseAI/Flowise/security
-   Provide clear details to help us reproduce and fix the issue quickly.

### Reporting Guidelines

-   Submit your findings to https://github.com/FlowiseAI/Flowise/security
-   Ensure that the vulnerability is exploitable. Theoretical or static application security testing reports are subject to dismissal.
-   Submit the report with CVSS vector and calculated severity.
-   Provide a clear detailed report with proof of concept to help us reproduce and remediate the vulnerability.

### Disclosure Terms

The Flowise team believes that transparency is important and public bug bounty reports are a valuable source of knowledge for bug bounty researchers. However, the Flowise team may have legitimate reasons not to disclose vulnerabilities.

Do not discuss or disclose vulnerability information without prior written consent. If you plan on presenting your research, please share a draft with us at least 45 days in advance for review. Avoid including:

-   Data from any Flowise customer projects
-   Flowise user/customer information
-   Details about Flowise employees, contractors, or partners

### Report Validation Times

We will validate submissions within the below timelines.
| Vulnerability Severity | Time to Validate |
| ---------------------- | ---------------- |
| Critical | 5 business days |
| High | 5 business days |
| Medium | 15 business days |
| Low | 15 business days |

Your report will be kept _confidential_, and your details will not be shared without your consent. The Flowise team will triage and adjust severity or CVSS score if necessary.
We appreciate your efforts in helping us maintain a secure platform and look forward to working together to resolve any issues responsibly.

### Remediation

Once the report has been verified, the Flowise team will plan the remediation steps.
Below is the estimated time to remediate the triaged security reports.

| Triaged Severity | Estimated Time to Remediate |
| ---------------- | --------------------------- |
| Critical         | 30 business days            |
| High             | 60 business days            |
| Medium           | 90 business days            |

### Public Disclosure Timeline

Public Disclosure occurs exactly 30 days after the next official release that includes the security patch. This period gives Flowise users a time to adopt the patched version before technical vulnerability details are made public, mitigating the risk of immediate post-disclosure exploitation.

#### Reaching out to the Security team

To report a new vulnerability, please submit a Github security Security Advisory report.
If you have any questions or concerns about the existing Security Advisory, please contact security-team@flowiseai.com.


================================================
FILE: artillery-load-test.yml
================================================
# npm install -g artillery@latest
# artillery run artillery-load-test.yml
# Refer https://www.artillery.io/docs

config:
    target: http://128.128.128.128:3000 # replace with your url
    phases:
        - duration: 1
          arrivalRate: 1
          rampTo: 2
          name: Warm up phase
        - duration: 1
          arrivalRate: 2
          rampTo: 3
          name: Ramp up load
        - duration: 1
          arrivalRate: 3
          name: Sustained peak load
scenarios:
    - flow:
          - loop:
                - post:
                      url: '/api/v1/prediction/chatflow-id' # replace with your chatflowid
                      json:
                          question: 'hello' # replace with your question
            count: 1 # how many request each user make

# User  __
# 3    /
# 2   /
# 1 _/
#     1 2 3
#     Seconds
# Total Users = 2 + 3 + 3 = 8
# Each making 1 HTTP call
# Over a durations of 3 seconds


================================================
FILE: docker/Dockerfile
================================================
# Stage 1: Build stage
FROM node:20-alpine AS build

USER root

# Skip downloading Chrome for Puppeteer (saves build time)
ENV PUPPETEER_SKIP_DOWNLOAD=true

# Install latest Flowise globally (specific version can be set: flowise@1.0.0)
RUN npm install -g flowise

# Stage 2: Runtime stage
FROM node:20-alpine

# Install runtime dependencies
RUN apk add --no-cache chromium git python3 py3-pip make g++ build-base cairo-dev pango-dev curl

# Set the environment variable for Puppeteer to find Chromium
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser

# Copy Flowise from the build stage
COPY --from=build /usr/local/lib/node_modules /usr/local/lib/node_modules
COPY --from=build /usr/local/bin /usr/local/bin

ENTRYPOINT ["flowise", "start"]


================================================
FILE: docker/README.md
================================================
# Flowise Docker Hub Image

Starts Flowise from [DockerHub Image](https://hub.docker.com/r/flowiseai/flowise)

## Usage

1. Create `.env` file and specify the `PORT` (refer to `.env.example`)
2. `docker compose up -d`
3. Open [http://localhost:3000](http://localhost:3000)
4. You can bring the containers down by `docker compose stop`

## 🌱 Env Variables

If you like to persist your data (flows, logs, credentials, storage), set these variables in the `.env` file inside `docker` folder:

-   DATABASE_PATH=/root/.flowise
-   LOG_PATH=/root/.flowise/logs
-   SECRETKEY_PATH=/root/.flowise
-   BLOB_STORAGE_PATH=/root/.flowise/storage

Flowise also support different environment variables to configure your instance. Read [more](https://docs.flowiseai.com/configuration/environment-variables)

## Queue Mode:

### Building from source:

You can build the images for worker and main from scratch with:

```
docker compose -f docker-compose-queue-source.yml up -d
```

Monitor Health:

```
docker compose -f docker-compose-queue-source.yml ps
```

### From pre-built images:

You can also use the pre-built images:

```
docker compose -f docker-compose-queue-prebuilt.yml up -d
```

Monitor Health:

```
docker compose -f docker-compose-queue-prebuilt.yml ps
```


================================================
FILE: docker/docker-compose-queue-prebuilt.yml
================================================
version: '3.1'

services:
    redis:
        image: redis:alpine
        container_name: flowise-redis
        ports:
            - '6379:6379'
        volumes:
            - redis_data:/data
        networks:
            - flowise-net
        restart: always

    flowise:
        image: flowiseai/flowise:latest
        container_name: flowise-main
        restart: always
        ports:
            - '${PORT:-3000}:${PORT:-3000}'
        volumes:
            - ~/.flowise:/root/.flowise
        environment:
            # --- Essential Flowise Vars ---
            - PORT=${PORT:-3000}
            - DATABASE_PATH=${DATABASE_PATH:-/root/.flowise}
            - DATABASE_TYPE=${DATABASE_TYPE}
            - DATABASE_PORT=${DATABASE_PORT}
            - DATABASE_HOST=${DATABASE_HOST}
            - DATABASE_NAME=${DATABASE_NAME}
            - DATABASE_USER=${DATABASE_USER}
            - DATABASE_PASSWORD=${DATABASE_PASSWORD}
            - DATABASE_SSL=${DATABASE_SSL}
            - DATABASE_SSL_KEY_BASE64=${DATABASE_SSL_KEY_BASE64}

            # SECRET KEYS
            - SECRETKEY_STORAGE_TYPE=${SECRETKEY_STORAGE_TYPE}
            - SECRETKEY_PATH=${SECRETKEY_PATH}
            - FLOWISE_SECRETKEY_OVERWRITE=${FLOWISE_SECRETKEY_OVERWRITE}
            - SECRETKEY_AWS_ACCESS_KEY=${SECRETKEY_AWS_ACCESS_KEY}
            - SECRETKEY_AWS_SECRET_KEY=${SECRETKEY_AWS_SECRET_KEY}
            - SECRETKEY_AWS_REGION=${SECRETKEY_AWS_REGION}
            - SECRETKEY_AWS_NAME=${SECRETKEY_AWS_NAME}

            # LOGGING
            - DEBUG=${DEBUG}
            - LOG_PATH=${LOG_PATH}
            - LOG_LEVEL=${LOG_LEVEL}
            - LOG_SANITIZE_BODY_FIELDS=${LOG_SANITIZE_BODY_FIELDS}
            - LOG_SANITIZE_HEADER_FIELDS=${LOG_SANITIZE_HEADER_FIELDS}

            # CUSTOM TOOL/FUNCTION DEPENDENCIES
            - TOOL_FUNCTION_BUILTIN_DEP=${TOOL_FUNCTION_BUILTIN_DEP}
            - TOOL_FUNCTION_EXTERNAL_DEP=${TOOL_FUNCTION_EXTERNAL_DEP}
            - ALLOW_BUILTIN_DEP=${ALLOW_BUILTIN_DEP}

            # STORAGE
            - STORAGE_TYPE=${STORAGE_TYPE}
            - BLOB_STORAGE_PATH=${BLOB_STORAGE_PATH}
            - S3_STORAGE_BUCKET_NAME=${S3_STORAGE_BUCKET_NAME}
            - S3_STORAGE_ACCESS_KEY_ID=${S3_STORAGE_ACCESS_KEY_ID}
            - S3_STORAGE_SECRET_ACCESS_KEY=${S3_STORAGE_SECRET_ACCESS_KEY}
            - S3_STORAGE_REGION=${S3_STORAGE_REGION}
            - S3_ENDPOINT_URL=${S3_ENDPOINT_URL}
            - S3_FORCE_PATH_STYLE=${S3_FORCE_PATH_STYLE}
            - GOOGLE_CLOUD_STORAGE_CREDENTIAL=${GOOGLE_CLOUD_STORAGE_CREDENTIAL}
            - GOOGLE_CLOUD_STORAGE_PROJ_ID=${GOOGLE_CLOUD_STORAGE_PROJ_ID}
            - GOOGLE_CLOUD_STORAGE_BUCKET_NAME=${GOOGLE_CLOUD_STORAGE_BUCKET_NAME}
            - GOOGLE_CLOUD_UNIFORM_BUCKET_ACCESS=${GOOGLE_CLOUD_UNIFORM_BUCKET_ACCESS}
            # Azure Blob Storage (provide EITHER connection string OR account name + key)
            - AZURE_BLOB_STORAGE_CONNECTION_STRING=${AZURE_BLOB_STORAGE_CONNECTION_STRING}
            - AZURE_BLOB_STORAGE_ACCOUNT_NAME=${AZURE_BLOB_STORAGE_ACCOUNT_NAME}
            - AZURE_BLOB_STORAGE_ACCOUNT_KEY=${AZURE_BLOB_STORAGE_ACCOUNT_KEY}
            - AZURE_BLOB_STORAGE_CONTAINER_NAME=${AZURE_BLOB_STORAGE_CONTAINER_NAME}

            # SETTINGS
            - NUMBER_OF_PROXIES=${NUMBER_OF_PROXIES}
            - CORS_ORIGINS=${CORS_ORIGINS}
            - IFRAME_ORIGINS=${IFRAME_ORIGINS}
            - FLOWISE_FILE_SIZE_LIMIT=${FLOWISE_FILE_SIZE_LIMIT}
            - SHOW_COMMUNITY_NODES=${SHOW_COMMUNITY_NODES}
            - DISABLE_FLOWISE_TELEMETRY=${DISABLE_FLOWISE_TELEMETRY}
            - DISABLED_NODES=${DISABLED_NODES}
            - MODEL_LIST_CONFIG_JSON=${MODEL_LIST_CONFIG_JSON}

            # AUTH PARAMETERS
            - APP_URL=${APP_URL}
            - JWT_AUTH_TOKEN_SECRET=${JWT_AUTH_TOKEN_SECRET}
            - JWT_REFRESH_TOKEN_SECRET=${JWT_REFRESH_TOKEN_SECRET}
            - JWT_ISSUER=${JWT_ISSUER}
            - JWT_AUDIENCE=${JWT_AUDIENCE}
            - JWT_TOKEN_EXPIRY_IN_MINUTES=${JWT_TOKEN_EXPIRY_IN_MINUTES}
            - JWT_REFRESH_TOKEN_EXPIRY_IN_MINUTES=${JWT_REFRESH_TOKEN_EXPIRY_IN_MINUTES}
            - EXPIRE_AUTH_TOKENS_ON_RESTART=${EXPIRE_AUTH_TOKENS_ON_RESTART}
            - EXPRESS_SESSION_SECRET=${EXPRESS_SESSION_SECRET}
            - PASSWORD_RESET_TOKEN_EXPIRY_IN_MINS=${PASSWORD_RESET_TOKEN_EXPIRY_IN_MINS}
            - PASSWORD_SALT_HASH_ROUNDS=${PASSWORD_SALT_HASH_ROUNDS}
            - TOKEN_HASH_SECRET=${TOKEN_HASH_SECRET}
            - SECURE_COOKIES=${SECURE_COOKIES}

            # EMAIL
            - SMTP_HOST=${SMTP_HOST}
            - SMTP_PORT=${SMTP_PORT}
            - SMTP_USER=${SMTP_USER}
            - SMTP_PASSWORD=${SMTP_PASSWORD}
            - SMTP_SECURE=${SMTP_SECURE}
            - ALLOW_UNAUTHORIZED_CERTS=${ALLOW_UNAUTHORIZED_CERTS}
            - SENDER_EMAIL=${SENDER_EMAIL}

            # ENTERPRISE
            - LICENSE_URL=${LICENSE_URL}
            - FLOWISE_EE_LICENSE_KEY=${FLOWISE_EE_LICENSE_KEY}
            - OFFLINE=${OFFLINE}
            - INVITE_TOKEN_EXPIRY_IN_HOURS=${INVITE_TOKEN_EXPIRY_IN_HOURS}
            - WORKSPACE_INVITE_TEMPLATE_PATH=${WORKSPACE_INVITE_TEMPLATE_PATH}

            # METRICS COLLECTION
            - POSTHOG_PUBLIC_API_KEY=${POSTHOG_PUBLIC_API_KEY}
            - ENABLE_METRICS=${ENABLE_METRICS}
            - METRICS_PROVIDER=${METRICS_PROVIDER}
            - METRICS_INCLUDE_NODE_METRICS=${METRICS_INCLUDE_NODE_METRICS}
            - METRICS_SERVICE_NAME=${METRICS_SERVICE_NAME}
            - METRICS_OPEN_TELEMETRY_METRIC_ENDPOINT=${METRICS_OPEN_TELEMETRY_METRIC_ENDPOINT}
            - METRICS_OPEN_TELEMETRY_PROTOCOL=${METRICS_OPEN_TELEMETRY_PROTOCOL}
            - METRICS_OPEN_TELEMETRY_DEBUG=${METRICS_OPEN_TELEMETRY_DEBUG}

            # PROXY
            - GLOBAL_AGENT_HTTP_PROXY=${GLOBAL_AGENT_HTTP_PROXY}
            - GLOBAL_AGENT_HTTPS_PROXY=${GLOBAL_AGENT_HTTPS_PROXY}
            - GLOBAL_AGENT_NO_PROXY=${GLOBAL_AGENT_NO_PROXY}

            # --- Queue Configuration (Main Instance) ---
            - MODE=${MODE:-queue}
            - QUEUE_NAME=${QUEUE_NAME:-flowise-queue}
            - QUEUE_REDIS_EVENT_STREAM_MAX_LEN=${QUEUE_REDIS_EVENT_STREAM_MAX_LEN}
            - WORKER_CONCURRENCY=${WORKER_CONCURRENCY}
            - REMOVE_ON_AGE=${REMOVE_ON_AGE}
            - REMOVE_ON_COUNT=${REMOVE_ON_COUNT}
            - REDIS_URL=${REDIS_URL:-redis://redis:6379}
            - REDIS_HOST=${REDIS_HOST}
            - REDIS_PORT=${REDIS_PORT}
            - REDIS_USERNAME=${REDIS_USERNAME}
            - REDIS_PASSWORD=${REDIS_PASSWORD}
            - REDIS_TLS=${REDIS_TLS}
            - REDIS_CERT=${REDIS_CERT}
            - REDIS_KEY=${REDIS_KEY}
            - REDIS_CA=${REDIS_CA}
            - REDIS_KEEP_ALIVE=${REDIS_KEEP_ALIVE}
            - ENABLE_BULLMQ_DASHBOARD=${ENABLE_BULLMQ_DASHBOARD}

            # SECURITY
            - CUSTOM_MCP_SECURITY_CHECK=${CUSTOM_MCP_SECURITY_CHECK}
            - CUSTOM_MCP_PROTOCOL=${CUSTOM_MCP_PROTOCOL}
            - HTTP_DENY_LIST=${HTTP_DENY_LIST}
            - HTTP_SECURITY_CHECK=${HTTP_SECURITY_CHECK}
            - PATH_TRAVERSAL_SAFETY=${PATH_TRAVERSAL_SAFETY}
            - TRUST_PROXY=${TRUST_PROXY}
        healthcheck:
            test: ['CMD', 'curl', '-f', 'http://localhost:${PORT:-3000}/api/v1/ping']
            interval: 10s
            timeout: 5s
            retries: 5
            start_period: 30s
        entrypoint: /bin/sh -c "sleep 3; flowise start"
        depends_on:
            - redis
        networks:
            - flowise-net

    flowise-worker:
        image: flowiseai/flowise-worker:latest
        container_name: flowise-worker
        restart: always
        volumes:
            - ~/.flowise:/root/.flowise
        environment:
            # --- Essential Flowise Vars ---
            - WORKER_PORT=${WORKER_PORT:-5566}
            - DATABASE_PATH=${DATABASE_PATH:-/root/.flowise}
            - DATABASE_TYPE=${DATABASE_TYPE}
            - DATABASE_PORT=${DATABASE_PORT}
            - DATABASE_HOST=${DATABASE_HOST}
            - DATABASE_NAME=${DATABASE_NAME}
            - DATABASE_USER=${DATABASE_USER}
            - DATABASE_PASSWORD=${DATABASE_PASSWORD}
            - DATABASE_SSL=${DATABASE_SSL}
            - DATABASE_SSL_KEY_BASE64=${DATABASE_SSL_KEY_BASE64}

            # SECRET KEYS
            - SECRETKEY_STORAGE_TYPE=${SECRETKEY_STORAGE_TYPE}
            - SECRETKEY_PATH=${SECRETKEY_PATH}
            - FLOWISE_SECRETKEY_OVERWRITE=${FLOWISE_SECRETKEY_OVERWRITE}
            - SECRETKEY_AWS_ACCESS_KEY=${SECRETKEY_AWS_ACCESS_KEY}
            - SECRETKEY_AWS_SECRET_KEY=${SECRETKEY_AWS_SECRET_KEY}
            - SECRETKEY_AWS_REGION=${SECRETKEY_AWS_REGION}
            - SECRETKEY_AWS_NAME=${SECRETKEY_AWS_NAME}

            # LOGGING
            - DEBUG=${DEBUG}
            - LOG_PATH=${LOG_PATH}
            - LOG_LEVEL=${LOG_LEVEL}
            - LOG_SANITIZE_BODY_FIELDS=${LOG_SANITIZE_BODY_FIELDS}
            - LOG_SANITIZE_HEADER_FIELDS=${LOG_SANITIZE_HEADER_FIELDS}

            # CUSTOM TOOL/FUNCTION DEPENDENCIES
            - TOOL_FUNCTION_BUILTIN_DEP=${TOOL_FUNCTION_BUILTIN_DEP}
            - TOOL_FUNCTION_EXTERNAL_DEP=${TOOL_FUNCTION_EXTERNAL_DEP}
            - ALLOW_BUILTIN_DEP=${ALLOW_BUILTIN_DEP}

            # STORAGE
            - STORAGE_TYPE=${STORAGE_TYPE}
            - BLOB_STORAGE_PATH=${BLOB_STORAGE_PATH}
            - S3_STORAGE_BUCKET_NAME=${S3_STORAGE_BUCKET_NAME}
            - S3_STORAGE_ACCESS_KEY_ID=${S3_STORAGE_ACCESS_KEY_ID}
            - S3_STORAGE_SECRET_ACCESS_KEY=${S3_STORAGE_SECRET_ACCESS_KEY}
            - S3_STORAGE_REGION=${S3_STORAGE_REGION}
            - S3_ENDPOINT_URL=${S3_ENDPOINT_URL}
            - S3_FORCE_PATH_STYLE=${S3_FORCE_PATH_STYLE}
            - GOOGLE_CLOUD_STORAGE_CREDENTIAL=${GOOGLE_CLOUD_STORAGE_CREDENTIAL}
            - GOOGLE_CLOUD_STORAGE_PROJ_ID=${GOOGLE_CLOUD_STORAGE_PROJ_ID}
            - GOOGLE_CLOUD_STORAGE_BUCKET_NAME=${GOOGLE_CLOUD_STORAGE_BUCKET_NAME}
            - GOOGLE_CLOUD_UNIFORM_BUCKET_ACCESS=${GOOGLE_CLOUD_UNIFORM_BUCKET_ACCESS}

            # SETTINGS
            - NUMBER_OF_PROXIES=${NUMBER_OF_PROXIES}
            - CORS_ORIGINS=${CORS_ORIGINS}
            - IFRAME_ORIGINS=${IFRAME_ORIGINS}
            - FLOWISE_FILE_SIZE_LIMIT=${FLOWISE_FILE_SIZE_LIMIT}
            - SHOW_COMMUNITY_NODES=${SHOW_COMMUNITY_NODES}
            - DISABLE_FLOWISE_TELEMETRY=${DISABLE_FLOWISE_TELEMETRY}
            - DISABLED_NODES=${DISABLED_NODES}
            - MODEL_LIST_CONFIG_JSON=${MODEL_LIST_CONFIG_JSON}

            # AUTH PARAMETERS
            - APP_URL=${APP_URL}
            - JWT_AUTH_TOKEN_SECRET=${JWT_AUTH_TOKEN_SECRET}
            - JWT_REFRESH_TOKEN_SECRET=${JWT_REFRESH_TOKEN_SECRET}
            - JWT_ISSUER=${JWT_ISSUER}
            - JWT_AUDIENCE=${JWT_AUDIENCE}
            - JWT_TOKEN_EXPIRY_IN_MINUTES=${JWT_TOKEN_EXPIRY_IN_MINUTES}
            - JWT_REFRESH_TOKEN_EXPIRY_IN_MINUTES=${JWT_REFRESH_TOKEN_EXPIRY_IN_MINUTES}
            - EXPIRE_AUTH_TOKENS_ON_RESTART=${EXPIRE_AUTH_TOKENS_ON_RESTART}
            - EXPRESS_SESSION_SECRET=${EXPRESS_SESSION_SECRET}
            - PASSWORD_RESET_TOKEN_EXPIRY_IN_MINS=${PASSWORD_RESET_TOKEN_EXPIRY_IN_MINS}
            - PASSWORD_SALT_HASH_ROUNDS=${PASSWORD_SALT_HASH_ROUNDS}
            - TOKEN_HASH_SECRET=${TOKEN_HASH_SECRET}
            - SECURE_COOKIES=${SECURE_COOKIES}

            # EMAIL
            - SMTP_HOST=${SMTP_HOST}
            - SMTP_PORT=${SMTP_PORT}
            - SMTP_USER=${SMTP_USER}
            - SMTP_PASSWORD=${SMTP_PASSWORD}
            - SMTP_SECURE=${SMTP_SECURE}
            - ALLOW_UNAUTHORIZED_CERTS=${ALLOW_UNAUTHORIZED_CERTS}
            - SENDER_EMAIL=${SENDER_EMAIL}

            # ENTERPRISE
            - LICENSE_URL=${LICENSE_URL}
            - FLOWISE_EE_LICENSE_KEY=${FLOWISE_EE_LICENSE_KEY}
            - OFFLINE=${OFFLINE}
            - INVITE_TOKEN_EXPIRY_IN_HOURS=${INVITE_TOKEN_EXPIRY_IN_HOURS}
            - WORKSPACE_INVITE_TEMPLATE_PATH=${WORKSPACE_INVITE_TEMPLATE_PATH}

            # METRICS COLLECTION
            - POSTHOG_PUBLIC_API_KEY=${POSTHOG_PUBLIC_API_KEY}
            - ENABLE_METRICS=${ENABLE_METRICS}
            - METRICS_PROVIDER=${METRICS_PROVIDER}
            - METRICS_INCLUDE_NODE_METRICS=${METRICS_INCLUDE_NODE_METRICS}
            - METRICS_SERVICE_NAME=${METRICS_SERVICE_NAME}
            - METRICS_OPEN_TELEMETRY_METRIC_ENDPOINT=${METRICS_OPEN_TELEMETRY_METRIC_ENDPOINT}
            - METRICS_OPEN_TELEMETRY_PROTOCOL=${METRICS_OPEN_TELEMETRY_PROTOCOL}
            - METRICS_OPEN_TELEMETRY_DEBUG=${METRICS_OPEN_TELEMETRY_DEBUG}

            # PROXY
            - GLOBAL_AGENT_HTTP_PROXY=${GLOBAL_AGENT_HTTP_PROXY}
            - GLOBAL_AGENT_HTTPS_PROXY=${GLOBAL_AGENT_HTTPS_PROXY}
            - GLOBAL_AGENT_NO_PROXY=${GLOBAL_AGENT_NO_PROXY}

            # --- Queue Configuration (Worker Instance) ---
            - MODE=${MODE:-queue}
            - QUEUE_NAME=${QUEUE_NAME:-flowise-queue}
            - QUEUE_REDIS_EVENT_STREAM_MAX_LEN=${QUEUE_REDIS_EVENT_STREAM_MAX_LEN}
            - WORKER_CONCURRENCY=${WORKER_CONCURRENCY}
            - REMOVE_ON_AGE=${REMOVE_ON_AGE}
            - REMOVE_ON_COUNT=${REMOVE_ON_COUNT}
            - REDIS_URL=${REDIS_URL:-redis://redis:6379}
            - REDIS_HOST=${REDIS_HOST}
            - REDIS_PORT=${REDIS_PORT}
            - REDIS_USERNAME=${REDIS_USERNAME}
            - REDIS_PASSWORD=${REDIS_PASSWORD}
            - REDIS_TLS=${REDIS_TLS}
            - REDIS_CERT=${REDIS_CERT}
            - REDIS_KEY=${REDIS_KEY}
            - REDIS_CA=${REDIS_CA}
            - REDIS_KEEP_ALIVE=${REDIS_KEEP_ALIVE}
            - ENABLE_BULLMQ_DASHBOARD=${ENABLE_BULLMQ_DASHBOARD}

            # SECURITY
            - CUSTOM_MCP_SECURITY_CHECK=${CUSTOM_MCP_SECURITY_CHECK}
            - CUSTOM_MCP_PROTOCOL=${CUSTOM_MCP_PROTOCOL}
            - HTTP_DENY_LIST=${HTTP_DENY_LIST}
            - HTTP_SECURITY_CHECK=${HTTP_SECURITY_CHECK}
            - PATH_TRAVERSAL_SAFETY=${PATH_TRAVERSAL_SAFETY}
            - TRUST_PROXY=${TRUST_PROXY}
        healthcheck:
            test: ['CMD', 'curl', '-f', 'http://localhost:${WORKER_PORT:-5566}/healthz']
            interval: 10s
            timeout: 5s
            retries: 5
            start_period: 30s
        entrypoint: /bin/sh -c "node /app/healthcheck/healthcheck.js & sleep 5 && pnpm run start-worker"
        depends_on:
            - redis
            - flowise
        networks:
            - flowise-net

volumes:
    redis_data:
        driver: local

networks:
    flowise-net:
        driver: bridge


================================================
FILE: docker/docker-compose-queue-source.yml
================================================
version: '3.1'

services:
    redis:
        image: redis:alpine
        container_name: flowise-redis
        ports:
            - '6379:6379'
        volumes:
            - redis_data:/data
        networks:
            - flowise-net

    flowise:
        container_name: flowise-main
        build:
            context: .. # Build using the Dockerfile in the root directory
            dockerfile: docker/Dockerfile
        ports:
            - '${PORT}:${PORT}'
        volumes:
            # Mount local .flowise to container's default location
            - ../.flowise:/root/.flowise
        environment:
            # --- Essential Flowise Vars ---
            - PORT=${PORT:-3000}
            - DATABASE_PATH=/root/.flowise
            - SECRETKEY_PATH=/root/.flowise
            - LOG_PATH=/root/.flowise/logs
            - BLOB_STORAGE_PATH=/root/.flowise/storage
            # --- Queue Vars (Main Instance) ---
            - MODE=queue
            - QUEUE_NAME=flowise-queue # Ensure this matches worker
            - REDIS_URL=redis://redis:6379 # Use service name 'redis'
        depends_on:
            - redis
        networks:
            - flowise-net

    flowise-worker:
        container_name: flowise-worker
        build:
            context: .. # Build context is still the root
            dockerfile: docker/worker/Dockerfile # Ensure this path is correct
        volumes:
            # Mount same local .flowise to worker
            - ../.flowise:/root/.flowise
        environment:
            # --- Essential Flowise Vars ---
            - WORKER_PORT=${WORKER_PORT:-5566} # Port for worker healthcheck
            - DATABASE_PATH=/root/.flowise
            - SECRETKEY_PATH=/root/.flowise
            - LOG_PATH=/root/.flowise/logs
            - BLOB_STORAGE_PATH=/root/.flowise/storage
            # --- Queue Vars (Main Instance) ---
            - MODE=queue
            - QUEUE_NAME=flowise-queue # Ensure this matches worker
            - REDIS_URL=redis://redis:6379 # Use service name 'redis'
        depends_on:
            - redis
            - flowise
        networks:
            - flowise-net

volumes:
    redis_data:
        driver: local

networks:
    flowise-net:
        driver: bridge


================================================
FILE: docker/docker-compose.yml
================================================
version: '3.1'

services:
    flowise:
        image: flowiseai/flowise:latest
        restart: always
        environment:
            - PORT=${PORT}

            # DATABASE
            - DATABASE_PATH=${DATABASE_PATH}
            - DATABASE_TYPE=${DATABASE_TYPE}
            - DATABASE_PORT=${DATABASE_PORT}
            - DATABASE_HOST=${DATABASE_HOST}
            - DATABASE_NAME=${DATABASE_NAME}
            - DATABASE_USER=${DATABASE_USER}
            - DATABASE_PASSWORD=${DATABASE_PASSWORD}
            - DATABASE_SSL=${DATABASE_SSL}
            - DATABASE_SSL_KEY_BASE64=${DATABASE_SSL_KEY_BASE64}

            # SECRET KEYS
            - SECRETKEY_STORAGE_TYPE=${SECRETKEY_STORAGE_TYPE}
            - SECRETKEY_PATH=${SECRETKEY_PATH}
            - FLOWISE_SECRETKEY_OVERWRITE=${FLOWISE_SECRETKEY_OVERWRITE}
            - SECRETKEY_AWS_ACCESS_KEY=${SECRETKEY_AWS_ACCESS_KEY}
            - SECRETKEY_AWS_SECRET_KEY=${SECRETKEY_AWS_SECRET_KEY}
            - SECRETKEY_AWS_REGION=${SECRETKEY_AWS_REGION}
            - SECRETKEY_AWS_NAME=${SECRETKEY_AWS_NAME}

            # LOGGING
            - DEBUG=${DEBUG}
            - LOG_PATH=${LOG_PATH}
            - LOG_LEVEL=${LOG_LEVEL}
            - LOG_SANITIZE_BODY_FIELDS=${LOG_SANITIZE_BODY_FIELDS}
            - LOG_SANITIZE_HEADER_FIELDS=${LOG_SANITIZE_HEADER_FIELDS}

            # CUSTOM TOOL/FUNCTION DEPENDENCIES
            - TOOL_FUNCTION_BUILTIN_DEP=${TOOL_FUNCTION_BUILTIN_DEP}
            - TOOL_FUNCTION_EXTERNAL_DEP=${TOOL_FUNCTION_EXTERNAL_DEP}
            - ALLOW_BUILTIN_DEP=${ALLOW_BUILTIN_DEP}

            # STORAGE
            - STORAGE_TYPE=${STORAGE_TYPE}
            - BLOB_STORAGE_PATH=${BLOB_STORAGE_PATH}
            - S3_STORAGE_BUCKET_NAME=${S3_STORAGE_BUCKET_NAME}
            - S3_STORAGE_ACCESS_KEY_ID=${S3_STORAGE_ACCESS_KEY_ID}
            - S3_STORAGE_SECRET_ACCESS_KEY=${S3_STORAGE_SECRET_ACCESS_KEY}
            - S3_STORAGE_REGION=${S3_STORAGE_REGION}
            - S3_ENDPOINT_URL=${S3_ENDPOINT_URL}
            - S3_FORCE_PATH_STYLE=${S3_FORCE_PATH_STYLE}
            - GOOGLE_CLOUD_STORAGE_CREDENTIAL=${GOOGLE_CLOUD_STORAGE_CREDENTIAL}
            - GOOGLE_CLOUD_STORAGE_PROJ_ID=${GOOGLE_CLOUD_STORAGE_PROJ_ID}
            - GOOGLE_CLOUD_STORAGE_BUCKET_NAME=${GOOGLE_CLOUD_STORAGE_BUCKET_NAME}
            - GOOGLE_CLOUD_UNIFORM_BUCKET_ACCESS=${GOOGLE_CLOUD_UNIFORM_BUCKET_ACCESS}
            # Azure Blob Storage (provide EITHER connection string OR account name + key)
            - AZURE_BLOB_STORAGE_CONNECTION_STRING=${AZURE_BLOB_STORAGE_CONNECTION_STRING}
            - AZURE_BLOB_STORAGE_ACCOUNT_NAME=${AZURE_BLOB_STORAGE_ACCOUNT_NAME}
            - AZURE_BLOB_STORAGE_ACCOUNT_KEY=${AZURE_BLOB_STORAGE_ACCOUNT_KEY}
            - AZURE_BLOB_STORAGE_CONTAINER_NAME=${AZURE_BLOB_STORAGE_CONTAINER_NAME}

            # SETTINGS
            - NUMBER_OF_PROXIES=${NUMBER_OF_PROXIES}
            - CORS_ORIGINS=${CORS_ORIGINS}
            - IFRAME_ORIGINS=${IFRAME_ORIGINS}
            - FLOWISE_FILE_SIZE_LIMIT=${FLOWISE_FILE_SIZE_LIMIT}
            - SHOW_COMMUNITY_NODES=${SHOW_COMMUNITY_NODES}
            - DISABLE_FLOWISE_TELEMETRY=${DISABLE_FLOWISE_TELEMETRY}
            - DISABLED_NODES=${DISABLED_NODES}
            - MODEL_LIST_CONFIG_JSON=${MODEL_LIST_CONFIG_JSON}

            # AUTH PARAMETERS
            - APP_URL=${APP_URL}
            - JWT_AUTH_TOKEN_SECRET=${JWT_AUTH_TOKEN_SECRET}
            - JWT_REFRESH_TOKEN_SECRET=${JWT_REFRESH_TOKEN_SECRET}
            - JWT_ISSUER=${JWT_ISSUER}
            - JWT_AUDIENCE=${JWT_AUDIENCE}
            - JWT_TOKEN_EXPIRY_IN_MINUTES=${JWT_TOKEN_EXPIRY_IN_MINUTES}
            - JWT_REFRESH_TOKEN_EXPIRY_IN_MINUTES=${JWT_REFRESH_TOKEN_EXPIRY_IN_MINUTES}
            - EXPIRE_AUTH_TOKENS_ON_RESTART=${EXPIRE_AUTH_TOKENS_ON_RESTART}
            - EXPRESS_SESSION_SECRET=${EXPRESS_SESSION_SECRET}
            - PASSWORD_RESET_TOKEN_EXPIRY_IN_MINS=${PASSWORD_RESET_TOKEN_EXPIRY_IN_MINS}
            - PASSWORD_SALT_HASH_ROUNDS=${PASSWORD_SALT_HASH_ROUNDS}
            - TOKEN_HASH_SECRET=${TOKEN_HASH_SECRET}
            - SECURE_COOKIES=${SECURE_COOKIES}

            # EMAIL
            - SMTP_HOST=${SMTP_HOST}
            - SMTP_PORT=${SMTP_PORT}
            - SMTP_USER=${SMTP_USER}
            - SMTP_PASSWORD=${SMTP_PASSWORD}
            - SMTP_SECURE=${SMTP_SECURE}
            - ALLOW_UNAUTHORIZED_CERTS=${ALLOW_UNAUTHORIZED_CERTS}
            - SENDER_EMAIL=${SENDER_EMAIL}

            # ENTERPRISE
            - LICENSE_URL=${LICENSE_URL}
            - FLOWISE_EE_LICENSE_KEY=${FLOWISE_EE_LICENSE_KEY}
            - OFFLINE=${OFFLINE}
            - INVITE_TOKEN_EXPIRY_IN_HOURS=${INVITE_TOKEN_EXPIRY_IN_HOURS}
            - WORKSPACE_INVITE_TEMPLATE_PATH=${WORKSPACE_INVITE_TEMPLATE_PATH}

            # METRICS COLLECTION
            - POSTHOG_PUBLIC_API_KEY=${POSTHOG_PUBLIC_API_KEY}
            - ENABLE_METRICS=${ENABLE_METRICS}
            - METRICS_PROVIDER=${METRICS_PROVIDER}
            - METRICS_INCLUDE_NODE_METRICS=${METRICS_INCLUDE_NODE_METRICS}
            - METRICS_SERVICE_NAME=${METRICS_SERVICE_NAME}
            - METRICS_OPEN_TELEMETRY_METRIC_ENDPOINT=${METRICS_OPEN_TELEMETRY_METRIC_ENDPOINT}
            - METRICS_OPEN_TELEMETRY_PROTOCOL=${METRICS_OPEN_TELEMETRY_PROTOCOL}
            - METRICS_OPEN_TELEMETRY_DEBUG=${METRICS_OPEN_TELEMETRY_DEBUG}

            # PROXY
            - GLOBAL_AGENT_HTTP_PROXY=${GLOBAL_AGENT_HTTP_PROXY}
            - GLOBAL_AGENT_HTTPS_PROXY=${GLOBAL_AGENT_HTTPS_PROXY}
            - GLOBAL_AGENT_NO_PROXY=${GLOBAL_AGENT_NO_PROXY}

            # QUEUE CONFIGURATION
            - MODE=${MODE}
            - QUEUE_NAME=${QUEUE_NAME}
            - QUEUE_REDIS_EVENT_STREAM_MAX_LEN=${QUEUE_REDIS_EVENT_STREAM_MAX_LEN}
            - WORKER_CONCURRENCY=${WORKER_CONCURRENCY}
            - REMOVE_ON_AGE=${REMOVE_ON_AGE}
            - REMOVE_ON_COUNT=${REMOVE_ON_COUNT}
            - REDIS_URL=${REDIS_URL}
            - REDIS_HOST=${REDIS_HOST}
            - REDIS_PORT=${REDIS_PORT}
            - REDIS_USERNAME=${REDIS_USERNAME}
            - REDIS_PASSWORD=${REDIS_PASSWORD}
            - REDIS_TLS=${REDIS_TLS}
            - REDIS_CERT=${REDIS_CERT}
            - REDIS_KEY=${REDIS_KEY}
            - REDIS_CA=${REDIS_CA}
            - REDIS_KEEP_ALIVE=${REDIS_KEEP_ALIVE}
            - ENABLE_BULLMQ_DASHBOARD=${ENABLE_BULLMQ_DASHBOARD}

            # SECURITY
            - CUSTOM_MCP_SECURITY_CHECK=${CUSTOM_MCP_SECURITY_CHECK}
            - CUSTOM_MCP_PROTOCOL=${CUSTOM_MCP_PROTOCOL}
            - HTTP_DENY_LIST=${HTTP_DENY_LIST}
            - HTTP_SECURITY_CHECK=${HTTP_SECURITY_CHECK}
            - PATH_TRAVERSAL_SAFETY=${PATH_TRAVERSAL_SAFETY}
            - TRUST_PROXY=${TRUST_PROXY}
        ports:
            - '${PORT}:${PORT}'
        healthcheck:
            test: ['CMD', 'curl', '-f', 'http://localhost:${PORT}/api/v1/ping']
            interval: 10s
            timeout: 5s
            retries: 5
            start_period: 30s
        volumes:
            - ~/.flowise:/root/.flowise
        entrypoint: /bin/sh -c "sleep 3; flowise start"


================================================
FILE: docker/worker/Dockerfile
================================================
FROM node:20-alpine

RUN apk add --update libc6-compat python3 make g++
# needed for pdfjs-dist
RUN apk add --no-cache build-base cairo-dev pango-dev

# Install Chromium and curl for container-level health checks
RUN apk add --no-cache chromium curl

#install PNPM globally
RUN npm install -g pnpm

ENV PUPPETEER_SKIP_DOWNLOAD=true
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser

ENV NODE_OPTIONS=--max-old-space-size=8192

WORKDIR /usr/src

# Copy app source
COPY . .

RUN pnpm install

RUN pnpm build

# --- Healthcheck Setup ---

WORKDIR /app/healthcheck

COPY docker/worker/healthcheck/package.json . 

RUN npm install --omit=dev

COPY docker/worker/healthcheck/healthcheck.js .

# --- End Healthcheck Setup ---

# Set the main working directory back
WORKDIR /usr/src

# Environment variables for port configuration
ENV WORKER_PORT=5566

# Expose port (can be overridden by env var)
EXPOSE ${WORKER_PORT}

# Start healthcheck in background and flowise worker in foreground
CMD ["/bin/sh", "-c", "node /app/healthcheck/healthcheck.js & sleep 5 && pnpm run start-worker"]


================================================
FILE: docker/worker/README.md
================================================
# Flowise Worker

By utilizing worker instances when operating in queue mode, Flowise can be scaled horizontally by adding more workers to handle increased workloads or scaled down by removing workers when demand decreases.

Here’s an overview of the process:

1. The primary Flowise instance sends an execution ID to a message broker, Redis, which maintains a queue of pending executions, allowing the next available worker to process them.
2. A worker from the pool retrieves a message from Redis.
   The worker starts execute the actual job.
3. Once the execution is completed, the worker alerts the main instance that the execution is finished.

# How to use

## Setting up Main Server:

1. Follow [setup guide](https://github.com/FlowiseAI/Flowise/blob/main/docker/README.md)
2. In the `.env.example`, setup all the necessary env variables for `QUEUE CONFIGURATION`

## Setting up Worker:

1. Navigate to `docker/worker` folder
2. In the `.env.example`, setup all the necessary env variables for `QUEUE CONFIGURATION`. Env variables for worker must match the one for main server. Change the `WORKER_PORT` to other available port numbers to listen for healthcheck. Ex: 5566
3. `docker compose up -d`
4. You can bring the worker container down by `docker compose stop`

## Entrypoint:

Different from main server image which is using `flowise start`, entrypoint for worker is `pnpm run start-worker`. This is because the worker's [Dockerfile](./Dockerfile) build the image from source files via `pnpm build` instead of npm registry via `RUN npm install -g flowise`.


================================================
FILE: docker/worker/docker-compose.yml
================================================
version: '3.1'

services:
    flowise:
        image: flowiseai/flowise-worker:latest
        restart: always
        environment:
            - WORKER_PORT=${WORKER_PORT:-5566}

            # DATABASE
            - DATABASE_PATH=${DATABASE_PATH}
            - DATABASE_TYPE=${DATABASE_TYPE}
            - DATABASE_PORT=${DATABASE_PORT}
            - DATABASE_HOST=${DATABASE_HOST}
            - DATABASE_NAME=${DATABASE_NAME}
            - DATABASE_USER=${DATABASE_USER}
            - DATABASE_PASSWORD=${DATABASE_PASSWORD}
            - DATABASE_SSL=${DATABASE_SSL}
            - DATABASE_SSL_KEY_BASE64=${DATABASE_SSL_KEY_BASE64}

            # SECRET KEYS
            - SECRETKEY_STORAGE_TYPE=${SECRETKEY_STORAGE_TYPE}
            - SECRETKEY_PATH=${SECRETKEY_PATH}
            - FLOWISE_SECRETKEY_OVERWRITE=${FLOWISE_SECRETKEY_OVERWRITE}
            - SECRETKEY_AWS_ACCESS_KEY=${SECRETKEY_AWS_ACCESS_KEY}
            - SECRETKEY_AWS_SECRET_KEY=${SECRETKEY_AWS_SECRET_KEY}
            - SECRETKEY_AWS_REGION=${SECRETKEY_AWS_REGION}
            - SECRETKEY_AWS_NAME=${SECRETKEY_AWS_NAME}

            # LOGGING
            - DEBUG=${DEBUG}
            - LOG_PATH=${LOG_PATH}
            - LOG_LEVEL=${LOG_LEVEL}
            - LOG_SANITIZE_BODY_FIELDS=${LOG_SANITIZE_BODY_FIELDS}
            - LOG_SANITIZE_HEADER_FIELDS=${LOG_SANITIZE_HEADER_FIELDS}

            # CUSTOM TOOL/FUNCTION DEPENDENCIES
            - TOOL_FUNCTION_BUILTIN_DEP=${TOOL_FUNCTION_BUILTIN_DEP}
            - TOOL_FUNCTION_EXTERNAL_DEP=${TOOL_FUNCTION_EXTERNAL_DEP}
            - ALLOW_BUILTIN_DEP=${ALLOW_BUILTIN_DEP}

            # STORAGE
            - STORAGE_TYPE=${STORAGE_TYPE}
            - BLOB_STORAGE_PATH=${BLOB_STORAGE_PATH}
            - S3_STORAGE_BUCKET_NAME=${S3_STORAGE_BUCKET_NAME}
            - S3_STORAGE_ACCESS_KEY_ID=${S3_STORAGE_ACCESS_KEY_ID}
            - S3_STORAGE_SECRET_ACCESS_KEY=${S3_STORAGE_SECRET_ACCESS_KEY}
            - S3_STORAGE_REGION=${S3_STORAGE_REGION}
            - S3_ENDPOINT_URL=${S3_ENDPOINT_URL}
            - S3_FORCE_PATH_STYLE=${S3_FORCE_PATH_STYLE}
            - GOOGLE_CLOUD_STORAGE_CREDENTIAL=${GOOGLE_CLOUD_STORAGE_CREDENTIAL}
            - GOOGLE_CLOUD_STORAGE_PROJ_ID=${GOOGLE_CLOUD_STORAGE_PROJ_ID}
            - GOOGLE_CLOUD_STORAGE_BUCKET_NAME=${GOOGLE_CLOUD_STORAGE_BUCKET_NAME}
            - GOOGLE_CLOUD_UNIFORM_BUCKET_ACCESS=${GOOGLE_CLOUD_UNIFORM_BUCKET_ACCESS}
            # Azure Blob Storage (provide EITHER connection string OR account name + key)
            - AZURE_BLOB_STORAGE_CONNECTION_STRING=${AZURE_BLOB_STORAGE_CONNECTION_STRING}
            - AZURE_BLOB_STORAGE_ACCOUNT_NAME=${AZURE_BLOB_STORAGE_ACCOUNT_NAME}
            - AZURE_BLOB_STORAGE_ACCOUNT_KEY=${AZURE_BLOB_STORAGE_ACCOUNT_KEY}
            - AZURE_BLOB_STORAGE_CONTAINER_NAME=${AZURE_BLOB_STORAGE_CONTAINER_NAME}

            # SETTINGS
            - NUMBER_OF_PROXIES=${NUMBER_OF_PROXIES}
            - CORS_ORIGINS=${CORS_ORIGINS}
            - IFRAME_ORIGINS=${IFRAME_ORIGINS}
            - FLOWISE_FILE_SIZE_LIMIT=${FLOWISE_FILE_SIZE_LIMIT}
            - SHOW_COMMUNITY_NODES=${SHOW_COMMUNITY_NODES}
            - DISABLE_FLOWISE_TELEMETRY=${DISABLE_FLOWISE_TELEMETRY}
            - DISABLED_NODES=${DISABLED_NODES}
            - MODEL_LIST_CONFIG_JSON=${MODEL_LIST_CONFIG_JSON}

            # AUTH PARAMETERS
            - APP_URL=${APP_URL}
            - JWT_AUTH_TOKEN_SECRET=${JWT_AUTH_TOKEN_SECRET}
            - JWT_REFRESH_TOKEN_SECRET=${JWT_REFRESH_TOKEN_SECRET}
            - JWT_ISSUER=${JWT_ISSUER}
            - JWT_AUDIENCE=${JWT_AUDIENCE}
            - JWT_TOKEN_EXPIRY_IN_MINUTES=${JWT_TOKEN_EXPIRY_IN_MINUTES}
            - JWT_REFRESH_TOKEN_EXPIRY_IN_MINUTES=${JWT_REFRESH_TOKEN_EXPIRY_IN_MINUTES}
            - EXPIRE_AUTH_TOKENS_ON_RESTART=${EXPIRE_AUTH_TOKENS_ON_RESTART}
            - EXPRESS_SESSION_SECRET=${EXPRESS_SESSION_SECRET}
            - PASSWORD_RESET_TOKEN_EXPIRY_IN_MINS=${PASSWORD_RESET_TOKEN_EXPIRY_IN_MINS}
            - PASSWORD_SALT_HASH_ROUNDS=${PASSWORD_SALT_HASH_ROUNDS}
            - TOKEN_HASH_SECRET=${TOKEN_HASH_SECRET}
            - SECURE_COOKIES=${SECURE_COOKIES}

            # EMAIL
            - SMTP_HOST=${SMTP_HOST}
            - SMTP_PORT=${SMTP_PORT}
            - SMTP_USER=${SMTP_USER}
            - SMTP_PASSWORD=${SMTP_PASSWORD}
            - SMTP_SECURE=${SMTP_SECURE}
            - ALLOW_UNAUTHORIZED_CERTS=${ALLOW_UNAUTHORIZED_CERTS}
            - SENDER_EMAIL=${SENDER_EMAIL}

            # ENTERPRISE
            - LICENSE_URL=${LICENSE_URL}
            - FLOWISE_EE_LICENSE_KEY=${FLOWISE_EE_LICENSE_KEY}
            - OFFLINE=${OFFLINE}
            - INVITE_TOKEN_EXPIRY_IN_HOURS=${INVITE_TOKEN_EXPIRY_IN_HOURS}
            - WORKSPACE_INVITE_TEMPLATE_PATH=${WORKSPACE_INVITE_TEMPLATE_PATH}

            # METRICS COLLECTION
            - POSTHOG_PUBLIC_API_KEY=${POSTHOG_PUBLIC_API_KEY}
            - ENABLE_METRICS=${ENABLE_METRICS}
            - METRICS_PROVIDER=${METRICS_PROVIDER}
            - METRICS_INCLUDE_NODE_METRICS=${METRICS_INCLUDE_NODE_METRICS}
            - METRICS_SERVICE_NAME=${METRICS_SERVICE_NAME}
            - METRICS_OPEN_TELEMETRY_METRIC_ENDPOINT=${METRICS_OPEN_TELEMETRY_METRIC_ENDPOINT}
            - METRICS_OPEN_TELEMETRY_PROTOCOL=${METRICS_OPEN_TELEMETRY_PROTOCOL}
            - METRICS_OPEN_TELEMETRY_DEBUG=${METRICS_OPEN_TELEMETRY_DEBUG}

            # PROXY
            - GLOBAL_AGENT_HTTP_PROXY=${GLOBAL_AGENT_HTTP_PROXY}
            - GLOBAL_AGENT_HTTPS_PROXY=${GLOBAL_AGENT_HTTPS_PROXY}
            - GLOBAL_AGENT_NO_PROXY=${GLOBAL_AGENT_NO_PROXY}

            # QUEUE CONFIGURATION
            - MODE=${MODE}
            - QUEUE_NAME=${QUEUE_NAME}
            - QUEUE_REDIS_EVENT_STREAM_MAX_LEN=${QUEUE_REDIS_EVENT_STREAM_MAX_LEN}
            - WORKER_CONCURRENCY=${WORKER_CONCURRENCY}
            - REMOVE_ON_AGE=${REMOVE_ON_AGE}
            - REMOVE_ON_COUNT=${REMOVE_ON_COUNT}
            - REDIS_URL=${REDIS_URL}
            - REDIS_HOST=${REDIS_HOST}
            - REDIS_PORT=${REDIS_PORT}
            - REDIS_USERNAME=${REDIS_USERNAME}
            - REDIS_PASSWORD=${REDIS_PASSWORD}
            - REDIS_TLS=${REDIS_TLS}
            - REDIS_CERT=${REDIS_CERT}
            - REDIS_KEY=${REDIS_KEY}
            - REDIS_CA=${REDIS_CA}
            - REDIS_KEEP_ALIVE=${REDIS_KEEP_ALIVE}
            - ENABLE_BULLMQ_DASHBOARD=${ENABLE_BULLMQ_DASHBOARD}

            # SECURITY
            - CUSTOM_MCP_SECURITY_CHECK=${CUSTOM_MCP_SECURITY_CHECK}
            - CUSTOM_MCP_PROTOCOL=${CUSTOM_MCP_PROTOCOL}
            - HTTP_DENY_LIST=${HTTP_DENY_LIST}
            - HTTP_SECURITY_CHECK=${HTTP_SECURITY_CHECK}
            - PATH_TRAVERSAL_SAFETY=${PATH_TRAVERSAL_SAFETY}
            - TRUST_PROXY=${TRUST_PROXY}
        ports:
            - '${WORKER_PORT}:${WORKER_PORT}'
        healthcheck:
            test: ['CMD', 'curl', '-f', 'http://localhost:${WORKER_PORT}/healthz']
            interval: 10s
            timeout: 5s
            retries: 5
            start_period: 30s
        volumes:
            - ~/.flowise:/root/.flowise
        entrypoint: /bin/sh -c "node /app/healthcheck/healthcheck.js & sleep 5 && pnpm run start-worker"


================================================
FILE: docker/worker/healthcheck/healthcheck.js
================================================
const express = require('express')
const app = express()

const port = process.env.WORKER_PORT || 5566

app.get('/healthz', (req, res) => {
    res.status(200).send('OK')
})

app.listen(port, () => {
    // eslint-disable-next-line no-console
    console.log(`Healthcheck server listening on port ${port}`)
})


================================================
FILE: docker/worker/healthcheck/package.json
================================================
{
    "name": "flowise-worker-healthcheck",
    "version": "1.0.0",
    "description": "Simple healthcheck server for Flowise worker",
    "main": "healthcheck.js",
    "private": true,
    "scripts": {
        "start": "node healthcheck.js"
    },
    "dependencies": {
        "express": "^4.19.2"
    }
}


================================================
FILE: i18n/CODE_OF_CONDUCT-ZH.md
================================================
<!-- markdownlint-disable MD030 -->

# 贡献者公约行为准则

[English](../CODE_OF_CONDUCT.md) | 中文

## 我们的承诺

为了促进一个开放和友好的环境,我们作为贡献者和维护者承诺,使参与我们的项目和社区的体验对每个人来说都是无骚扰的,无论年龄、体型、残疾、种族、性别认同和表达、经验水平、国籍、个人形象、种族、宗教或性取向如何。

## 我们的标准

有助于创建积极环境的行为示例包括:

-   使用友好和包容性的语言
-   尊重不同的观点和经验
-   优雅地接受建设性的批评
-   关注社区最有利的事情
-   向其他社区成员表达同理心

参与者不可接受的行为示例包括:

-   使用性暗示的语言或图像和不受欢迎的性关注或进展
-   恶作剧、侮辱/贬低的评论和个人或政治攻击
-   公开或私下骚扰
-   未经明确许可发布他人的私人信息,如实际或电子地址
-   在专业环境中可能被合理认为不适当的其他行为

## 我们的责任

项目维护者有责任明确可接受行为的标准,并预期对任何不可接受行为的情况采取适当和公正的纠正措施。

项目维护者有权和责任删除、编辑或拒绝不符合本行为准则的评论、提交、代码、维基编辑、问题和其他贡献,或者临时或永久禁止任何贡献者,如果他们认为其行为不适当、威胁、冒犯或有害。

## 适用范围

本行为准则适用于项目空间和公共空间,当个人代表项目或其社区时。代表项目或社区的示例包括使用官方项目电子邮件地址、通过官方社交媒体账号发布或在线或离线活动中担任指定代表。项目的代表可以由项目维护者进一步定义和澄清。

## 执法

可以通过联系项目团队 hello@flowiseai.com 来报告滥用、骚扰或其他不可接受的行为。所有投诉将经过审核和调查,并将得出视情况认为必要和适当的回应。项目团队有义务对事件举报人保持机密。具体执行政策的更多细节可能会单独发布。

如果项目维护者不诚信地遵守或执行行为准则,可能会面临其他项目领导成员决定的临时或永久的后果。

## 归属

该行为准则的内容来自于[贡献者公约](http://contributor-covenant.org/)1.4 版,可在[http://contributor-covenant.org/version/1/4](http://contributor-covenant.org/version/1/4)上获取。

[主页]: http://contributor-covenant.org


================================================
FILE: i18n/CONTRIBUTING-ZH.md
================================================
<!-- markdownlint-disable MD030 -->

# 贡献给 Flowise

[English](../CONTRIBUTING.md) | 中文

我们欢迎任何形式的贡献。

## ⭐ 点赞

点赞并分享[Github 仓库](https://github.com/FlowiseAI/Flowise)。

## 🙋 问题和回答

在[问题和回答](https://github.com/FlowiseAI/Flowise/discussions/categories/q-a)部分搜索任何问题,如果找不到,可以毫不犹豫地创建一个。这可能会帮助到其他有类似问题的人。

## 🙌 分享 Chatflow

是的!分享你如何使用 Flowise 是一种贡献方式。将你的 Chatflow 导出为 JSON,附上截图并在[展示和分享](https://github.com/FlowiseAI/Flowise/discussions/categories/show-and-tell)部分分享。

## 💡 想法

欢迎各种想法,如新功能、应用集成和区块链网络。在[想法](https://github.com/FlowiseAI/Flowise/discussions/categories/ideas)部分提交。

## 🐞 报告错误

发现问题了吗?[报告它](https://github.com/FlowiseAI/Flowise/issues/new/choose)。

## 👨‍💻 贡献代码

不确定要贡献什么?一些想法:

-   从 `packages/components` 创建新组件
-   更新现有组件,如扩展功能、修复错误
-   添加新的 Chatflow 想法

### 开发人员

Flowise 在一个单一的单体存储库中有 3 个不同的模块。

-   `server`:用于提供 API 逻辑的 Node 后端
-   `ui`:React 前端
-   `components`:Langchain/LlamaIndex 组件

#### 先决条件

-   安装 [PNPM](https://pnpm.io/installation)
    ```bash
    npm i -g pnpm
    ```

#### 逐步指南

1. Fork 官方的[Flowise Github 仓库](https://github.com/FlowiseAI/Flowise)。

2. 克隆你 fork 的存储库。

3. 创建一个新的分支,参考[指南](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository)。命名约定:

    - 对于功能分支:`feature/<你的新功能>`
    - 对于 bug 修复分支:`bugfix/<你的新bug修复>`。

4. 切换到新创建的分支。

5. 进入存储库文件夹

    ```bash
    cd Flowise
    ```

6. 安装所有模块的依赖项:

    ```bash
    pnpm install
    ```

7. 构建所有代码:

    ```bash
    pnpm build
    ```

8. 在[http://localhost:3000](http://localhost:3000)上启动应用程序

    ```bash
    pnpm start
    ```

9. 开发时:

    - 在`packages/ui`中创建`.env`文件并指定`VITE_PORT`(参考`.env.example`)
    - 在`packages/server`中创建`.env`文件并指定`PORT`(参考`.env.example`)
    - 运行

    ```bash
    pnpm dev
    ```

    对`packages/ui`或`packages/server`进行的任何更改都将反映在[http://localhost:8080](http://localhost:8080)上

    对于`packages/components`中进行的更改,再次运行`pnpm build`以应用更改。

10. 做完所有的更改后,运行以下命令来确保在生产环境中一切正常:

    ```bash
    pnpm build
    ```

    和

    ```bash
    pnpm start
    ```

11. 提交代码并从指向 [Flowise 主分支](https://github.com/FlowiseAI/Flowise/tree/main) 的分叉分支上提交 Pull Request。

## 🌱 环境变量

Flowise 支持不同的环境变量来配置您的实例。您可以在 `packages/server` 文件夹中的 `.env` 文件中指定以下变量。阅读[更多信息](https://docs.flowiseai.com/environment-variables)

| 变量名                       | 描述                                                    | 类型                                            | 默认值                              |
|-----------------------------|---------------------------------------------------------|-------------------------------------------------|-------------------------------------|
| `PORT`                      | Flowise 运行的 HTTP 端口                                | 数字                                            | 3000                                |
| `FLOWISE_FILE_SIZE_LIMIT`   | 上传文件大小限制                                        | 字符串                                          | 50mb                                |
| `DEBUG`                     | 打印组件的日志                                          | 布尔值                                          |                                     |
| `LOG_PATH`                  | 存储日志文件的位置                                      | 字符串                                          | `your-path/Flowise/logs`            |
| `LOG_LEVEL`                 | 日志的不同级别                                          | 枚举字符串: `error`, `info`, `verbose`, `debug` | `info`                              |
| `TOOL_FUNCTION_BUILTIN_DEP` | 用于工具函数的 NodeJS 内置模块                          | 字符串                                          |                                     |
| `TOOL_FUNCTION_EXTERNAL_DEP`| 用于工具函数的外部模块                                  | 字符串                                          |                                     |
| `DATABASE_TYPE`             | 存储 Flowise 数据的数据库类型                           | 枚举字符串: `sqlite`, `mysql`, `postgres`       | `sqlite`                            |
| `DATABASE_PATH`             | 数据库保存的位置(当 `DATABASE_TYPE` 是 sqlite 时)     | 字符串                                          | `your-home-dir/.flowise`            |
| `DATABASE_HOST`             | 主机 URL 或 IP 地址(当 `DATABASE_TYPE` 不是 sqlite 时)| 字符串                                          |                                     |
| `DATABASE_PORT`             | 数据库端口(当 `DATABASE_TYPE` 不是 sqlite 时)         | 字符串                                          |                                     |
| `DATABASE_USERNAME`         | 数据库用户名(当 `DATABASE_TYPE` 不是 sqlite 时)       | 字符串                                          |                                     |
| `DATABASE_PASSWORD`         | 数据库密码(当 `DATABASE_TYPE` 不是 sqlite 时)         | 字符串                                          |                                     |
| `DATABASE_NAME`             | 数据库名称(当 `DATABASE_TYPE` 不是 sqlite 时)         | 字符串                                          |                                     |
| `SECRETKEY_PATH`            | 保存加密密钥(用于加密/解密凭据)的位置                 | 字符串                                          | `your-path/Flowise/packages/server` |
| `FLOWISE_SECRETKEY_OVERWRITE`| 加密密钥用于替代存储在 `SECRETKEY_PATH` 中的密钥        | 字符串                                          |                                     |
| `MODEL_LIST_CONFIG_JSON`    | 加载模型的位置                                          | 字符串                                          | `/your_model_list_config_file_path` |
| `STORAGE_TYPE`              | 上传文件的存储类型                                      | 枚举字符串: `local`, `s3`                       | `local`                             |
| `BLOB_STORAGE_PATH`         | 本地上传文件存储路径(当 `STORAGE_TYPE` 为 `local`)    | 字符串                                          | `your-home-dir/.flowise/storage`    |
| `S3_STORAGE_BUCKET_NAME`    | S3 存储文件夹路径(当 `STORAGE_TYPE` 为 `s3`)          | 字符串                                          |                                     |
| `S3_STORAGE_ACCESS_KEY_ID`  | AWS 访问密钥 (Access Key)                               | 字符串                                          |                                     |
| `S3_STORAGE_SECRET_ACCESS_KEY` | AWS 密钥 (Secret Key)                                | 字符串                                          |                                     |
| `S3_STORAGE_REGION`         | S3 存储地区                                             | 字符串                                          |                                     |
| `S3_ENDPOINT_URL`           | S3 端点 URL                                             | 字符串                                          |                                     |
| `S3_FORCE_PATH_STYLE`       | 设置为 true 以强制请求使用路径样式寻址                  | 布尔值                                          | false                               |
| `SHOW_COMMUNITY_NODES`      | 显示由社区创建的节点                                    | 布尔值                                          |                                     |
| `DISABLED_NODES`            | 从界面中隐藏节点(以逗号分隔的节点名称列表)            | 字符串                                          |                                     |

您也可以在使用 `npx` 时指定环境变量。例如:

```
npx flowise start --PORT=3000 --DEBUG=true
```

## 📖 贡献文档

[Flowise 文档](https://github.com/FlowiseAI/FlowiseDocs)

## 🏷️ Pull Request 流程

当您打开一个 Pull Request 时,FlowiseAI 团队的成员将自动收到通知/指派。您也可以在 [Discord](https://discord.gg/jbaHfsRVBW) 上联系我们。


================================================
FILE: i18n/README-JA.md
================================================
<!-- markdownlint-disable MD030 -->

<p align="center">
<img src="https://github.com/FlowiseAI/Flowise/blob/main/images/flowise_white.svg#gh-light-mode-only">
<img src="https://github.com/FlowiseAI/Flowise/blob/main/images/flowise_dark.svg#gh-dark-mode-only">
</p>

[![Release Notes](https://img.shields.io/github/release/FlowiseAI/Flowise)](https://github.com/FlowiseAI/Flowise/releases)
[![Discord](https://img.shields.io/discord/1087698854775881778?label=Discord&logo=discord)](https://discord.gg/jbaHfsRVBW)
[![Twitter Follow](https://img.shields.io/twitter/follow/FlowiseAI?style=social)](https://twitter.com/FlowiseAI)
[![GitHub star chart](https://img.shields.io/github/stars/FlowiseAI/Flowise?style=social)](https://star-history.com/#FlowiseAI/Flowise)
[![GitHub fork](https://img.shields.io/github/forks/FlowiseAI/Flowise?style=social)](https://github.com/FlowiseAI/Flowise/fork)

[English](../README.md) | [繁體中文](./README-TW.md) | [简体中文](./README-ZH.md) | 日本語 | [한국어](./README-KR.md)

<h3>AIエージェントをビジュアルに構築</h3>
<a href="https://github.com/FlowiseAI/Flowise">
<img width="100%" src="https://github.com/FlowiseAI/Flowise/blob/main/images/flowise_agentflow.gif?raw=true"></a>

## ⚡ クイックスタート

[NodeJS](https://nodejs.org/en/download) >= 18.15.0 をダウンロードしてインストール

1. Flowise のインストール
    ```bash
    npm install -g flowise
    ```
2. Flowise の実行

    ```bash
    npx flowise start
    ```

3. [http://localhost:3000](http://localhost:3000) を開く

## 🐳 Docker

### Docker Compose

1. プロジェクトのルートにある `docker` フォルダに移動する
2. `.env.example` ファイルをコピーして同じ場所に貼り付け、名前を `.env` に変更する
3. `docker compose up -d`
4. [http://localhost:3000](http://localhost:3000) を開く
5. コンテナを停止するには、`docker compose stop` を使用します

### Docker Image

1. ローカルにイメージを構築する:
    ```bash
    docker build --no-cache -t flowise .
    ```
2. image を実行:

    ```bash
    docker run -d --name flowise -p 3000:3000 flowise
    ```

3. image を停止:
    ```bash
    docker stop flowise
    ```

## 👨‍💻 開発者向け

Flowise には、3 つの異なるモジュールが 1 つの mono リポジトリにあります。

-   `server`: API ロジックを提供する Node バックエンド
-   `ui`: React フロントエンド
-   `components`: サードパーティノードとの統合

### 必須条件

-   [PNPM](https://pnpm.io/installation) をインストール
    ```bash
    npm i -g pnpm
    ```

### セットアップ

1. リポジトリをクローン

    ```bash
    git clone https://github.com/FlowiseAI/Flowise.git
    ```

2. リポジトリフォルダに移動

    ```bash
    cd Flowise
    ```

3. すべてのモジュールの依存関係をインストール:

    ```bash
    pnpm install
    ```

4. すべてのコードをビルド:

    ```bash
    pnpm build
    ```

5. アプリを起動:

    ```bash
    pnpm start
    ```

    [http://localhost:3000](http://localhost:3000) でアプリにアクセスできるようになりました

6. 開発用ビルド:

    - `.env` ファイルを作成し、`packages/ui` に `VITE_PORT` を指定する(`.env.example` を参照)
    - `.env` ファイルを作成し、`packages/server` に `PORT` を指定する(`.env.example` を参照)
    - 実行

        ```bash
        pnpm dev
        ```

    コードの変更は [http://localhost:8080](http://localhost:8080) に自動的にアプリをリロードします

## 🌱 環境変数

Flowise は、インスタンスを設定するためのさまざまな環境変数をサポートしています。`packages/server` フォルダ内の `.env` ファイルで以下の変数を指定することができる。[続き](https://github.com/FlowiseAI/Flowise/blob/main/CONTRIBUTING.md#-env-variables)を読む

## 📖 ドキュメント

[Flowise ドキュメント](https://docs.flowiseai.com/)

## 🌐 セルフホスト

お客様の既存インフラに Flowise をセルフホストでデプロイ、様々な[デプロイ](https://docs.flowiseai.com/configuration/deployment)をサポートします

-   [AWS](https://docs.flowiseai.com/deployment/aws)
-   [Azure](https://docs.flowiseai.com/deployment/azure)
-   [Digital Ocean](https://docs.flowiseai.com/deployment/digital-ocean)
-   [GCP](https://docs.flowiseai.com/deployment/gcp)
-   <details>
      <summary>その他</summary>

    -   [Railway](https://docs.flowiseai.com/deployment/railway)

        [![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/pn4G8S?referralCode=WVNPD9)

    -   [Render](https://docs.flowiseai.com/deployment/render)

        [![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://docs.flowiseai.com/deployment/render)

    -   [Hugging Face Spaces](https://docs.flowiseai.com/deployment/hugging-face)

        <a href="https://huggingface.co/spaces/FlowiseAI/Flowise"><img src="https://huggingface.co/datasets/huggingface/badges/raw/main/open-in-hf-spaces-sm.svg" alt="Hugging Face Spaces"></a>

    -   [Elestio](https://elest.io/open-source/flowiseai)

        [![Deploy](https://pub-da36157c854648669813f3f76c526c2b.r2.dev/deploy-on-elestio-black.png)](https://elest.io/open-source/flowiseai)

    -   [Sealos](https://cloud.sealos.io/?openapp=system-template%3FtemplateName%3Dflowise)

        [![](https://raw.githubusercontent.com/labring-actions/templates/main/Deploy-on-Sealos.svg)](https://cloud.sealos.io/?openapp=system-template%3FtemplateName%3Dflowise)

    -   [RepoCloud](https://repocloud.io/details/?app_id=29)

        [![Deploy on RepoCloud](https://d16t0pc4846x52.cloudfront.net/deploy.png)](https://repocloud.io/details/?app_id=29)

      </details>

## ☁️ クラウドホスト

[Flowise Cloud の使い方を始める](https://flowiseai.com/)

## 🙋 サポート

ご質問、問題提起、新機能のご要望は、[discussion](https://github.com/FlowiseAI/Flowise/discussions)までお気軽にどうぞ

## 🙌 コントリビュート

これらの素晴らしい貢献者に感謝します

<a href="https://github.com/FlowiseAI/Flowise/graphs/contributors">
<img src="https://contrib.rocks/image?repo=FlowiseAI/Flowise" />
</a>

[コントリビューティングガイド](../CONTRIBUTING.md)を参照してください。質問や問題があれば、[Discord](https://discord.gg/jbaHfsRVBW) までご連絡ください。
[![Star History Chart](https://api.star-history.com/svg?repos=FlowiseAI/Flowise&type=Timeline)](https://star-history.com/#FlowiseAI/Flowise&Date)

## 📄 ライセンス

このリポジトリのソースコードは、[Apache License Version 2.0](../LICENSE.md)の下で利用可能です。


================================================
FILE: i18n/README-KR.md
================================================
<!-- markdownlint-disable MD030 -->

<p align="center">
<img src="https://github.com/FlowiseAI/Flowise/blob/main/images/flowise_white.svg#gh-light-mode-only">
<img src="https://github.com/FlowiseAI/Flowise/blob/main/images/flowise_dark.svg#gh-dark-mode-only">
</p>

[![Release Notes](https://img.shields.io/github/release/FlowiseAI/Flowise)](https://github.com/FlowiseAI/Flowise/releases)
[![Discord](https://img.shields.io/discord/1087698854775881778?label=Discord&logo=discord)](https://discord.gg/jbaHfsRVBW)
[![Twitter Follow](https://img.shields.io/twitter/follow/FlowiseAI?style=social)](https://twitter.com/FlowiseAI)
[![GitHub star chart](https://img.shields.io/github/stars/FlowiseAI/Flowise?style=social)](https://star-history.com/#FlowiseAI/Flowise)
[![GitHub fork](https://img.shields.io/github/forks/FlowiseAI/Flowise?style=social)](https://github.com/FlowiseAI/Flowise/fork)

[English](../README.md) | [繁體中文](./README-TW.md) | [简体中文](./README-ZH.md) | [日本語](./README-JA.md) | 한국어

<h3>AI 에이전트를 시각적으로 구축하세요</h3>
<a href="https://github.com/FlowiseAI/Flowise">
<img width="100%" src="https://github.com/FlowiseAI/Flowise/blob/main/images/flowise_agentflow.gif?raw=true"></a>

## ⚡빠른 시작 가이드

18.15.0 버전 이상의 [NodeJS](https://nodejs.org/en/download) 다운로드 및 설치

1. Flowise 설치
    ```bash
    npm install -g flowise
    ```
2. Flowise 시작하기

    ```bash
    npx flowise start
    ```

3. [http://localhost:3000](http://localhost:3000) URL 열기

## 🐳 도커(Docker)를 활용하여 시작하기

### 도커 컴포즈 활용

1. 프로젝트의 최상위(root) 디렉토리에 있는 `docker` 폴더로 이동하세요.
2. `.env.example` 파일을 복사한 후, 같은 경로에 붙여넣기 한 다음, `.env`로 이름을 변경합니다.
3. `docker compose up -d` 실행
4. [http://localhost:3000](http://localhost:3000) URL 열기
5. `docker compose stop` 명령어를 통해 컨테이너를 종료시킬 수 있습니다.

### 도커 이미지 활용

1. 로컬에서 이미지 빌드하기:
    ```bash
    docker build --no-cache -t flowise .
    ```
2. 이미지 실행하기:

    ```bash
    docker run -d --name flowise -p 3000:3000 flowise
    ```

3. 이미지 종료하기:
    ```bash
    docker stop flowise
    ```

## 👨‍💻 개발자들을 위한 가이드

Flowise는 단일 리포지토리에 3개의 서로 다른 모듈이 있습니다.

-   `server`: API 로직을 제공하는 노드 백엔드
-   `ui`: 리액트 프론트엔드
-   `components`: 서드파티 노드 통합을 위한 컴포넌트

### 사전 설치 요건

-   [PNPM](https://pnpm.io/installation) 설치하기
    ```bash
    npm i -g pnpm
    ```

### 설치 및 설정

1. 리포지토리 복제

    ```bash
    git clone https://github.com/FlowiseAI/Flowise.git
    ```

2. 리포지토리 폴더로 이동

    ```bash
    cd Flowise
    ```

3. 모든 모듈의 종속성 설치:

    ```bash
    pnpm install
    ```

4. 모든 코드 빌드하기:

    ```bash
    pnpm build
    ```

5. 애플리케이션 시작:

    ```bash
    pnpm start
    ```

    이제 [http://localhost:3000](http://localhost:3000)에서 애플리케이션에 접속할 수 있습니다.

6. 개발 환경에서 빌드할 경우:

    - `packages/ui`경로에 `.env` 파일을 생성하고 `VITE_PORT`(`.env.example` 참조)를 지정합니다.
    - `packages/server`경로에 `.env` 파일을 생성하고 `PORT`(`.env.example` 참조)를 지정합니다.
    - 실행하기

        ```bash
        pnpm dev
        ```

    코드가 변경되면 [http://localhost:8080](http://localhost:8080)에서 자동으로 애플리케이션을 새로고침 합니다.

## 🌱 환경 변수

Flowise는 인스턴스 구성을 위한 다양한 환경 변수를 지원합니다. `packages/server` 폴더 내 `.env` 파일에 다양한 환경 변수를 지정할 수 있습니다. [자세히 보기](https://github.com/FlowiseAI/Flowise/blob/main/CONTRIBUTING.md#-env-variables)

## 📖 공식 문서

[Flowise 문서](https://docs.flowiseai.com/)

## 🌐 자체 호스팅 하기

기존 인프라 환경에서 Flowise를 자체 호스팅으로 배포하세요. 다양한 배포 [deployments](https://docs.flowiseai.com/configuration/deployment) 방법을 지원합니다.

-   [AWS](https://docs.flowiseai.com/deployment/aws)
-   [Azure](https://docs.flowiseai.com/deployment/azure)
-   [Digital Ocean](https://docs.flowiseai.com/deployment/digital-ocean)
-   [GCP](https://docs.flowiseai.com/deployment/gcp)
-   <details>
      <summary>그 외</summary>

    -   [Railway](https://docs.flowiseai.com/deployment/railway)

        [![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/pn4G8S?referralCode=WVNPD9)

    -   [Render](https://docs.flowiseai.com/deployment/render)

        [![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://docs.flowiseai.com/deployment/render)

    -   [HuggingFace Spaces](https://docs.flowiseai.com/deployment/hugging-face)

        <a href="https://huggingface.co/spaces/FlowiseAI/Flowise"><img src="https://huggingface.co/datasets/huggingface/badges/raw/main/open-in-hf-spaces-sm.svg" alt="HuggingFace Spaces"></a>

    -   [Elestio](https://elest.io/open-source/flowiseai)

        [![Deploy](https://pub-da36157c854648669813f3f76c526c2b.r2.dev/deploy-on-elestio-black.png)](https://elest.io/open-source/flowiseai)

    -   [Sealos](https://cloud.sealos.io/?openapp=system-template%3FtemplateName%3Dflowise)

        [![](https://raw.githubusercontent.com/labring-actions/templates/main/Deploy-on-Sealos.svg)](https://cloud.sealos.io/?openapp=system-template%3FtemplateName%3Dflowise)

    -   [RepoCloud](https://repocloud.io/details/?app_id=29)

        [![Deploy on RepoCloud](https://d16t0pc4846x52.cloudfront.net/deploy.png)](https://repocloud.io/details/?app_id=29)

      </details>

## ☁️ 클라우드 호스팅 서비스

[Flowise Cloud 시작하기](https://flowiseai.com/)

## 🙋 기술 지원

질문, 버그 리포팅, 새로운 기능 요청 등은 [discussion](https://github.com/FlowiseAI/Flowise/discussions) 섹션에서 자유롭게 이야기 해주세요.

## 🙌 오픈소스 활동에 기여하기

다음과 같은 멋진 기여자들(contributors)에게 감사드립니다.

<a href="https://github.com/FlowiseAI/Flowise/graphs/contributors">
<img src="https://contrib.rocks/image?repo=FlowiseAI/Flowise" />
</a>

[contributing guide](../CONTRIBUTING.md)를 살펴보세요. 디스코드 [Discord](https://discord.gg/jbaHfsRVBW) 채널에서도 이슈나 질의응답을 진행하실 수 있습니다.
[![Star History Chart](https://api.star-history.com/svg?repos=FlowiseAI/Flowise&type=Timeline)](https://star-history.com/#FlowiseAI/Flowise&Date)

## 📄 라이센스

본 리포지토리의 소스코드는 [Apache License Version 2.0](../LICENSE.md) 라이센스가 적용됩니다.


================================================
FILE: i18n/README-TW.md
================================================
<!-- markdownlint-disable MD030 -->

<p align="center">
<img src="https://github.com/FlowiseAI/Flowise/blob/main/images/flowise_white.svg#gh-light-mode-only">
<img src="https://github.com/FlowiseAI/Flowise/blob/main/images/flowise_dark.svg#gh-dark-mode-only">
</p>

[![Release Notes](https://img.shields.io/github/release/FlowiseAI/Flowise)](https://github.com/FlowiseAI/Flowise/releases)
[![Discord](https://img.shields.io/discord/1087698854775881778?label=Discord&logo=discord)](https://discord.gg/jbaHfsRVBW)
[![Twitter Follow](https://img.shields.io/twitter/follow/FlowiseAI?style=social)](https://twitter.com/FlowiseAI)
[![GitHub star chart](https://img.shields.io/github/stars/FlowiseAI/Flowise?style=social)](https://star-history.com/#FlowiseAI/Flowise)
[![GitHub fork](https://img.shields.io/github/forks/FlowiseAI/Flowise?style=social)](https://github.com/FlowiseAI/Flowise/fork)

[English](../README.md) | 繁體中文 | [简体中文](./README-ZH.md) | [日本語](./README-JA.md) | [한국어](./README-KR.md)

<h3>可視化建置 AI/LLM 流程</h3>
<a href="https://github.com/FlowiseAI/Flowise">
<img width="100%" src="https://github.com/FlowiseAI/Flowise/blob/main/images/flowise_agentflow.gif?raw=true"></a>

## ⚡ 快速開始

下載並安裝 [NodeJS](https://nodejs.org/en/download) >= 18.15.0

1. 安裝 Flowise
    ```bash
    npm install -g flowise
    ```
2. 啟動 Flowise

    ```bash
    npx flowise start
    ```

3. 打開 [http://localhost:3000](http://localhost:3000)

## 🐳 Docker

### Docker Compose

1. 複製 Flowise 專案
2. 進入專案根目錄的 `docker` 資料夾
3. 複製 `.env.example` 文件,貼到相同位置,並重新命名為 `.env` 文件
4. `docker compose up -d`
5. 打開 [http://localhost:3000](http://localhost:3000)
6. 您可以透過 `docker compose stop` 停止容器

### Docker 映像

1. 本地建置映像:
    ```bash
    docker build --no-cache -t flowise .
    ```
2. 運行映像:

    ```bash
    docker run -d --name flowise -p 3000:3000 flowise
    ```

3. 停止映像:
    ```bash
    docker stop flowise
    ```

## 👨‍💻 開發者

Flowise 在單個 mono 儲存庫中有 3 個不同的模組。

-   `server`: 提供 API 邏輯的 Node 後端
-   `ui`: React 前端
-   `components`: 第三方節點集成
-   `api-documentation`: 從 express 自動生成的 swagger-ui API 文檔

### 先決條件

-   安裝 [PNPM](https://pnpm.io/installation)
    ```bash
    npm i -g pnpm
    ```

### 設置

1.  複製儲存庫

    ```bash
    git clone https://github.com/FlowiseAI/Flowise.git
    ```

2.  進入儲存庫文件夾

    ```bash
    cd Flowise
    ```

3.  安裝所有模組的所有依賴項:

    ```bash
    pnpm install
    ```

4.  建置所有程式碼:

    ```bash
    pnpm build
    ```

    <details>
    <summary>Exit code 134(JavaScript heap out of memory)</summary>  
      如果在運行上述 `build` 腳本時遇到此錯誤,請嘗試增加 Node.js 中的 Heap 記憶體大小並重新運行腳本:

        export NODE_OPTIONS="--max-old-space-size=4096"
        pnpm build

    </details>

5.  啟動應用:

    ```bash
    pnpm start
    ```

    您現在可以開啟 [http://localhost:3000](http://localhost:3000)

6.  對於開發建置:

    -   在 `packages/ui` 中創建 `.env` 文件並指定 `VITE_PORT`(參考 `.env.example`)
    -   在 `packages/server` 中創建 `.env` 文件並指定 `PORT`(參考 `.env.example`)
    -   運行

        ```bash
        pnpm dev
        ```

    任何程式碼更改都會自動重新加載應用程式 [http://localhost:8080](http://localhost:8080)

## 🌱 環境變數

Flowise 支持不同的環境變數來配置您的實例。您可以在 `packages/server` 文件夾中的 `.env` 文件中指定以下變數。閱讀 [更多](https://github.com/FlowiseAI/Flowise/blob/main/CONTRIBUTING.md#-env-variables)

## 📖 文檔

[Flowise 文檔](https://docs.flowiseai.com/)

## 🌐 自行架設

在您現有的基礎設施中部署 Flowise,我們支持各種自行架設選項 [部署](https://docs.flowiseai.com/configuration/deployment)

-   [AWS](https://docs.flowiseai.com/configuration/deployment/aws)
-   [Azure](https://docs.flowiseai.com/configuration/deployment/azure)
-   [Digital Ocean](https://docs.flowiseai.com/configuration/deployment/digital-ocean)
-   [GCP](https://docs.flowiseai.com/configuration/deployment/gcp)
-   [阿里雲](https://computenest.console.aliyun.com/service/instance/create/default?type=user&ServiceName=Flowise社区版)
-   <details>
      <summary>其他</summary>

    -   [Railway](https://docs.flowiseai.com/configuration/deployment/railway)

        [![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/pn4G8S?referralCode=WVNPD9)

    -   [Render](https://docs.flowiseai.com/configuration/deployment/render)

        [![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://docs.flowiseai.com/configuration/deployment/render)

    -   [HuggingFace Spaces](https://docs.flowiseai.com/deployment/hugging-face)

        <a href="https://huggingface.co/spaces/FlowiseAI/Flowise"><img src="https://huggingface.co/datasets/huggingface/badges/raw/main/open-in-hf-spaces-sm.svg" alt="HuggingFace Spaces"></a>

    -   [Elestio](https://elest.io/open-source/flowiseai)

        [![Deploy on Elestio](https://elest.io/images/logos/deploy-to-elestio-btn.png)](https://elest.io/open-source/flowiseai)

    -   [Sealos](https://cloud.sealos.io/?openapp=system-template%3FtemplateName%3Dflowise)

        [![](https://raw.githubusercontent.com/labring-actions/templates/main/Deploy-on-Sealos.svg)](https://cloud.sealos.io/?openapp=system-template%3FtemplateName%3Dflowise)

    -   [RepoCloud](https://repocloud.io/details/?app_id=29)

        [![Deploy on RepoCloud](https://d16t0pc4846x52.cloudfront.net/deploy.png)](https://repocloud.io/details/?app_id=29)

      </details>

## ☁️ Flowise 雲端平台

[開始使用 Flowise 雲端平台](https://flowiseai.com/)

## 🙋 支持

隨時在 [討論](https://github.com/FlowiseAI/Flowise/discussions) 中提出任何問題、提出問題和請求新功能

## 🙌 貢獻

感謝這些出色的貢獻者

<a href="https://github.com/FlowiseAI/Flowise/graphs/contributors">
<img src="https://contrib.rocks/image?repo=FlowiseAI/Flowise" />
</a>

請參閱 [貢獻指南](../CONTRIBUTING.md)。如果您有任何問題或問題,請透過 [Discord](https://discord.gg/jbaHfsRVBW) 與我們聯繫。
[![Star History Chart](https://api.star-history.com/svg?repos=FlowiseAI/Flowise&type=Timeline)](https://star-history.com/#FlowiseAI/Flowise&Date)

## 📄 許可證

此儲存庫中的原始碼根據 [Apache 2.0 授權條款](../LICENSE.md) 授權使用。


================================================
FILE: i18n/README-ZH.md
================================================
<!-- markdownlint-disable MD030 -->

<p align="center">
<img src="https://github.com/FlowiseAI/Flowise/blob/main/images/flowise_white.svg#gh-light-mode-only">
<img src="https://github.com/FlowiseAI/Flowise/blob/main/images/flowise_dark.svg#gh-dark-mode-only">
</p>

[![发布说明](https://img.shields.io/github/release/FlowiseAI/Flowise)](https://github.com/FlowiseAI/Flowise/releases)
[![Discord](https://img.shields.io/discord/1087698854775881778?label=Discord&logo=discord)](https://discord.gg/jbaHfsRVBW)
[![Twitter关注](https://img.shields.io/twitter/follow/FlowiseAI?style=social)](https://twitter.com/FlowiseAI)
[![GitHub星图](https://img.shields.io/github/stars/FlowiseAI/Flowise?style=social)](https://star-history.com/#FlowiseAI/Flowise)
[![GitHub分支](https://img.shields.io/github/forks/FlowiseAI/Flowise?style=social)](https://github.com/FlowiseAI/Flowise/fork)

[English](../README.md) | [繁體中文](./README-TW.md) | 简体中文 | [日本語](./README-JA.md) | [한국어](./README-KR.md)

<h3>可视化构建 AI/LLM 流程</h3>
<a href="https://github.com/FlowiseAI/Flowise">
<img width="100%" src="https://github.com/FlowiseAI/Flowise/blob/main/images/flowise_agentflow.gif?raw=true"></a>

## ⚡ 快速入门

下载并安装 [NodeJS](https://nodejs.org/en/download) >= 18.15.0

1. 安装 Flowise
    ```bash
    npm install -g flowise
    ```
2. 启动 Flowise

    ```bash
    npx flowise start
    ```

3. 打开 [http://localhost:3000](http://localhost:3000)

## 🐳 Docker

### Docker Compose

1. 进入项目根目录下的 `docker` 文件夹
2. 创建 `.env` 文件并指定 `PORT`(参考 `.env.example`)
3. 运行 `docker compose up -d`
4. 打开 [http://localhost:3000](http://localhost:3000)
5. 可以通过 `docker compose stop` 停止容器

### Docker 镜像

1. 本地构建镜像:
    ```bash
    docker build --no-cache -t flowise .
    ```
2. 运行镜像:

    ```bash
    docker run -d --name flowise -p 3000:3000 flowise
    ```

3. 停止镜像:
    ```bash
    docker stop flowise
    ```

## 👨‍💻 开发者

Flowise 在一个单一的代码库中有 3 个不同的模块。

-   `server`:用于提供 API 逻辑的 Node 后端
-   `ui`:React 前端
-   `components`:第三方节点集成

### 先决条件

-   安装 [PNPM](https://pnpm.io/installation)
    ```bash
    npm i -g pnpm
    ```

### 设置

1. 克隆仓库

    ```bash
    git clone https://github.com/FlowiseAI/Flowise.git
    ```

2. 进入仓库文件夹

    ```bash
    cd Flowise
    ```

3. 安装所有模块的依赖:

    ```bash
    pnpm install
    ```

4. 构建所有代码:

    ```bash
    pnpm build
    ```

5. 启动应用:

    ```bash
    pnpm start
    ```

    现在可以在 [http://localhost:3000](http://localhost:3000) 访问应用

6. 用于开发构建:

    - 在 `packages/ui` 中创建 `.env` 文件并指定 `VITE_PORT`(参考 `.env.example`)
    - 在 `packages/server` 中创建 `.env` 文件并指定 `PORT`(参考 `.env.example`)
    - 运行

        ```bash
        pnpm dev
        ```

    任何代码更改都会自动重新加载应用程序,访问 [http://localhost:8080](http://localhost:8080)

## 🌱 环境变量

Flowise 支持不同的环境变量来配置您的实例。您可以在 `packages/server` 文件夹中的 `.env` 文件中指定以下变量。了解更多信息,请阅读[文档](https://github.com/FlowiseAI/Flowise/blob/main/CONTRIBUTING.md#-env-variables)

## 📖 文档

[Flowise 文档](https://docs.flowiseai.com/)

## 🌐 自托管

在您现有的基础设施中部署自托管的 Flowise,我们支持各种[部署](https://docs.flowiseai.com/configuration/deployment)

-   [AWS](https://docs.flowiseai.com/deployment/aws)
-   [Azure](https://docs.flowiseai.com/deployment/azure)
-   [Digital Ocean](https://docs.flowiseai.com/deployment/digital-ocean)
-   [GCP](https://docs.flowiseai.com/deployment/gcp)
-   <details>
      <summary>其他</summary>

    -   [Railway](https://docs.flowiseai.com/deployment/railway)

        [![在 Railway 上部署](https://railway.app/button.svg)](https://railway.app/template/pn4G8S?referralCode=WVNPD9)

    -   [Render](https://docs.flowiseai.com/deployment/render)

        [![部署到 Render](https://render.com/images/deploy-to-render-button.svg)](https://docs.flowiseai.com/deployment/render)

    -   [HuggingFace Spaces](https://docs.flowiseai.com/deployment/hugging-face)

        <a href="https://huggingface.co/spaces/FlowiseAI/Flowise"><img src="https://huggingface.co/datasets/huggingface/badges/raw/main/open-in-hf-spaces-sm.svg" alt="HuggingFace Spaces"></a>

    -   [Elestio](https://elest.io/open-source/flowiseai)

        [![Deploy](https://pub-da36157c854648669813f3f76c526c2b.r2.dev/deploy-on-elestio-black.png)](https://elest.io/open-source/flowiseai)

    -   [Sealos](https://template.sealos.io/deploy?templateName=flowise)

        [![部署到 Sealos](https://sealos.io/Deploy-on-Sealos.svg)](https://template.sealos.io/deploy?templateName=flowise)

    -   [RepoCloud](https://repocloud.io/details/?app_id=29)

        [![部署到 RepoCloud](https://d16t0pc4846x52.cloudfront.net/deploy.png)](https://repocloud.io/details/?app_id=29)

      </details>

## ☁️ 云托管

[开始使用云托管](https://flowiseai.com/)

## 🙋 支持

在[讨论区](https://github.com/FlowiseAI/Flowise/discussions)中随时提问、提出问题和请求新功能

## 🙌 贡献

感谢这些了不起的贡献者

<a href="https://github.com/FlowiseAI/Flowise/graphs/contributors">
<img src="https://contrib.rocks/image?repo=FlowiseAI/Flowise" />
</a>

参见[贡献指南](CONTRIBUTING-ZH.md)。如果您有任何问题或问题,请在[Discord](https://discord.gg/jbaHfsRVBW)上与我们联系。

## 📄 许可证

此代码库中的源代码在[Apache License Version 2.0 许可证](../LICENSE.md)下提供。


================================================
FILE: metrics/grafana/grafana.dashboard.app.json.txt
================================================
{
  "annotations": {
    "list": [
      {
        "builtIn": 1,
        "datasource": {
          "type": "grafana",
          "uid": "-- Grafana --"
        },
        "enable": true,
        "hide": true,
        "iconColor": "rgba(0, 211, 255, 1)",
        "name": "Annotations & Alerts",
        "type": "dashboard"
      },
      {
        "datasource": {
          "type": "prometheus",
          "uid": "cds4j1ybfuhogb"
        },
        "enable": true,
        "expr": "ALERTS",
        "hide": false,
        "iconColor": "rgba(255, 96, 96, 1)",
        "limit": 100,
        "name": "Alerts",
        "showIn": 0,
        "step": "10s",
        "type": "alert"
      }
    ]
  },
  "description": "Application metrics",
  "editable": true,
  "fiscalYearStartMonth": 0,
  "graphTooltip": 0,
  "id": 3,
  "links": [],
  "panels": [
    {
      "datasource": {
        "type": "prometheus",
        "uid": "cds4j1ybfuhogb"
      },
      "fieldConfig": {
        "defaults": {
          "color": {
            "mode": "palette-classic"
          },
          "custom": {
            "axisBorderShow": false,
            "axisCenteredZero": false,
            "axisColorMode": "text",
            "axisLabel": "",
            "axisPlacement": "auto",
            "barAlignment": 0,
            "drawStyle": "line",
            "fillOpacity": 0,
            "gradientMode": "none",
            "hideFrom": {
              "legend": false,
              "tooltip": false,
              "viz": false
            },
            "insertNulls": false,
            "lineInterpolation": "linear",
            "lineWidth": 1,
            "pointSize": 5,
            "scaleDistribution": {
              "type": "linear"
            },
            "showPoints": "auto",
            "spanNulls": false,
            "stacking": {
              "group": "A",
              "mode": "none"
            },
            "thresholdsStyle": {
              "mode": "off"
            }
          },
          "mappings": [],
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "red",
                "value": 80
              }
            ]
          }
        },
        "overrides": []
      },
      "gridPos": {
        "h": 8,
        "w": 12,
        "x": 0,
        "y": 0
      },
      "id": 11,
      "options": {
        "legend": {
          "calcs": [],
          "displayMode": "list",
          "placement": "bottom",
          "showLegend": true
        },
        "tooltip": {
          "mode": "single",
          "sort": "none"
        }
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "disableTextWrap": false,
          "editorMode": "code",
          "expr": "sum(rate(internal_predictions[1m])) by (status)  * 60",
          "fullMetaSearch": false,
          "hide": false,
          "includeNullMetadata": false,
          "instant": false,
          "legendFormat": "__auto",
          "range": true,
          "refId": "B",
          "useBackend": false
        }
      ],
      "title": "Internal Predictions",
      "type": "timeseries"
    },
    {
      "collapsed": false,
      "datasource": {
        "type": "prometheus",
        "uid": "cds4j1ybfuhogb"
      },
      "gridPos": {
        "h": 1,
        "w": 24,
        "x": 0,
        "y": 8
      },
      "id": 7,
      "panels": [],
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "refId": "A"
        }
      ],
      "title": "Throughput",
      "type": "row"
    },
    {
      "datasource": {
        "type": "prometheus",
        "uid": "cds4j1ybfuhogb"
      },
      "fieldConfig": {
        "defaults": {
          "mappings": [
            {
              "options": {
                "match": "null",
                "result": {
                  "text": "N/A"
                }
              },
              "type": "special"
            }
          ],
          "max": 1,
          "min": 0,
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "rgba(50, 172, 45, 0.97)",
                "value": null
              },
              {
                "color": "rgba(237, 129, 40, 0.89)",
                "value": 0.1
              },
              {
                "color": "rgba(245, 54, 54, 0.9)"
              }
            ]
          },
          "unit": "none"
        },
        "overrides": []
      },
      "gridPos": {
        "h": 7,
        "w": 6,
        "x": 0,
        "y": 9
      },
      "hideTimeOverride": false,
      "id": 6,
      "maxDataPoints": 100,
      "options": {
        "colorMode": "value",
        "graphMode": "none",
        "justifyMode": "auto",
        "orientation": "horizontal",
        "percentChangeColorMode": "standard",
        "reduceOptions": {
          "calcs": [
            "mean"
          ],
          "fields": "/^Value$/",
          "values": false
        },
        "showPercentChange": false,
        "textMode": "auto",
        "wideLayout": true
      },
      "pluginVersion": "11.1.0",
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "expr": "sum(increase(http_request_duration_ms_count{code=~\"^5..$\"}[1m])) /  sum(increase(http_request_duration_ms_count[1m]))",
          "format": "time_series",
          "interval": "",
          "intervalFactor": 2,
          "legendFormat": "",
          "refId": "A",
          "step": 20
        }
      ],
      "title": "Error rate",
      "type": "stat"
    },
    {
      "datasource": {
        "type": "prometheus",
        "uid": "cds4j1ybfuhogb"
      },
      "fieldConfig": {
        "defaults": {
          "color": {
            "mode": "palette-classic"
          },
          "custom": {
            "axisBorderShow": false,
            "axisCenteredZero": false,
            "axisColorMode": "text",
            "axisLabel": "",
            "axisPlacement": "auto",
            "barAlignment": 0,
            "drawStyle": "line",
            "fillOpacity": 10,
            "gradientMode": "none",
            "hideFrom": {
              "legend": false,
              "tooltip": false,
              "viz": false
            },
            "insertNulls": false,
            "lineInterpolation": "linear",
            "lineWidth": 1,
            "pointSize": 5,
            "scaleDistribution": {
              "type": "linear"
            },
            "showPoints": "never",
            "spanNulls": false,
            "stacking": {
              "group": "A",
              "mode": "none"
            },
            "thresholdsStyle": {
              "mode": "off"
            }
          },
          "mappings": [],
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "red",
                "value": 80
              }
            ]
          },
          "unit": "rpm"
        },
        "overrides": []
      },
      "gridPos": {
        "h": 7,
        "w": 18,
        "x": 6,
        "y": 9
      },
      "id": 1,
      "links": [
        {
          "url": "/"
        }
      ],
      "options": {
        "legend": {
          "calcs": [],
          "displayMode": "list",
          "placement": "bottom",
          "showLegend": true
        },
        "tooltip": {
          "mode": "multi",
          "sort": "none"
        }
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "expr": "sum(rate(http_request_duration_ms_count[1m])) by (service, route, method, code)  * 60",
          "format": "time_series",
          "hide": false,
          "intervalFactor": 2,
          "legendFormat": "{{service}} - {{method}} {{route}} {{code}}",
          "metric": "",
          "refId": "A",
          "step": 2
        }
      ],
      "title": "Throughput",
      "type": "timeseries"
    },
    {
      "collapsed": true,
      "datasource": {
        "type": "prometheus",
        "uid": "cds4j1ybfuhogb"
      },
      "gridPos": {
        "h": 1,
        "w": 24,
        "x": 0,
        "y": 16
      },
      "id": 8,
      "panels": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "fieldConfig": {
            "defaults": {
              "color": {
                "mode": "palette-classic"
              },
              "custom": {
                "axisBorderShow": false,
                "axisCenteredZero": false,
                "axisColorMode": "text",
                "axisLabel": "",
                "axisPlacement": "auto",
                "barAlignment": 0,
                "drawStyle": "line",
                "fillOpacity": 10,
                "gradientMode": "none",
                "hideFrom": {
                  "legend": false,
                  "tooltip": false,
                  "viz": false
                },
                "insertNulls": false,
                "lineInterpolation": "linear",
                "lineWidth": 1,
                "pointSize": 5,
                "scaleDistribution": {
                  "type": "linear"
                },
                "showPoints": "never",
                "spanNulls": false,
                "stacking": {
                  "group": "A",
                  "mode": "none"
                },
                "thresholdsStyle": {
                  "mode": "off"
                }
              },
              "mappings": [],
              "thresholds": {
                "mode": "absolute",
                "steps": [
                  {
                    "color": "green"
                  },
                  {
                    "color": "red",
                    "value": 80
                  }
                ]
              },
              "unit": "ms"
            },
            "overrides": []
          },
          "gridPos": {
            "h": 7,
            "w": 24,
            "x": 0,
            "y": 17
          },
          "id": 4,
          "options": {
            "legend": {
              "calcs": [],
              "displayMode": "list",
              "placement": "bottom",
              "showLegend": true
            },
            "tooltip": {
              "mode": "multi",
              "sort": "none"
            }
          },
          "targets": [
            {
              "datasource": {
                "type": "prometheus",
                "uid": "cds4j1ybfuhogb"
              },
              "expr": "histogram_quantile(0.5, sum(rate(http_request_duration_ms_bucket[1m])) by (le, service, route, method))",
              "format": "time_series",
              "intervalFactor": 2,
              "legendFormat": "{{service}} - {{method}} {{route}}",
              "refId": "A",
              "step": 2
            }
          ],
          "title": "Median Response Time",
          "type": "timeseries"
        },
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "fieldConfig": {
            "defaults": {
              "color": {
                "mode": "palette-classic"
              },
              "custom": {
                "axisBorderShow": false,
                "axisCenteredZero": false,
                "axisColorMode": "text",
                "axisLabel": "",
                "axisPlacement": "auto",
                "barAlignment": 0,
                "drawStyle": "line",
                "fillOpacity": 10,
                "gradientMode": "none",
                "hideFrom": {
                  "legend": false,
                  "tooltip": false,
                  "viz": false
                },
                "insertNulls": false,
                "lineInterpolation": "linear",
                "lineWidth": 1,
                "pointSize": 5,
                "scaleDistribution": {
                  "type": "linear"
                },
                "showPoints": "never",
                "spanNulls": false,
                "stacking": {
                  "group": "A",
                  "mode": "none"
                },
                "thresholdsStyle": {
                  "mode": "off"
                }
              },
              "mappings": [],
              "thresholds": {
                "mode": "absolute",
                "steps": [
                  {
                    "color": "green"
                  },
                  {
                    "color": "red",
                    "value": 80
                  }
                ]
              },
              "unit": "ms"
            },
            "overrides": []
          },
          "gridPos": {
            "h": 7,
            "w": 24,
            "x": 0,
            "y": 24
          },
          "id": 2,
          "options": {
            "legend": {
              "calcs": [],
              "displayMode": "list",
              "placement": "bottom",
              "showLegend": true
            },
            "tooltip": {
              "mode": "multi",
              "sort": "none"
            }
          },
          "targets": [
            {
              "datasource": {
                "type": "prometheus",
                "uid": "cds4j1ybfuhogb"
              },
              "expr": "histogram_quantile(0.95, sum(rate(http_request_duration_ms_bucket[1m])) by (le, service, route, method))",
              "format": "time_series",
              "interval": "",
              "intervalFactor": 2,
              "legendFormat": "{{service}} - {{method}} {{route}}",
              "refId": "A",
              "step": 2
            }
          ],
          "title": "95th Response Time",
          "type": "timeseries"
        }
      ],
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "refId": "A"
        }
      ],
      "title": "Response time",
      "type": "row"
    },
    {
      "collapsed": false,
      "datasource": {
        "type": "prometheus",
        "uid": "cds4j1ybfuhogb"
      },
      "gridPos": {
        "h": 1,
        "w": 24,
        "x": 0,
        "y": 17
      },
      "id": 10,
      "panels": [],
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "refId": "A"
        }
      ],
      "title": "Business",
      "type": "row"
    }
  ],
  "refresh": "10s",
  "schemaVersion": 39,
  "tags": [],
  "templating": {
    "list": []
  },
  "time": {
    "from": "now-15m",
    "to": "now"
  },
  "timepicker": {
    "refresh_intervals": [
      "5s",
      "10s",
      "30s",
      "1m",
      "5m",
      "15m",
      "30m",
      "1h",
      "2h",
      "1d"
    ],
    "time_options": [
      "5m",
      "15m",
      "1h",
      "6h",
      "12h",
      "24h",
      "2d",
      "7d",
      "30d"
    ]
  },
  "timezone": "browser",
  "title": "FlowiseAI - Custom Metrics",
  "uid": "dds4pojnfec5cc",
  "version": 8,
  "weekStart": ""
}

================================================
FILE: metrics/grafana/grafana.dashboard.server.json.txt
================================================
{
  "annotations": {
    "list": [
      {
        "builtIn": 1,
        "datasource": {
          "type": "datasource",
          "uid": "grafana"
        },
        "enable": true,
        "hide": true,
        "iconColor": "rgba(0, 211, 255, 1)",
        "name": "Annotations & Alerts",
        "type": "dashboard"
      }
    ]
  },
  "description": "node.js prometheus client basic metrics",
  "editable": true,
  "fiscalYearStartMonth": 0,
  "gnetId": 11159,
  "graphTooltip": 0,
  "id": 1,
  "links": [],
  "panels": [
    {
      "datasource": {
        "type": "prometheus",
        "uid": "cds4j1ybfuhogb"
      },
      "fieldConfig": {
        "defaults": {
          "color": {
            "mode": "palette-classic"
          },
          "custom": {
            "axisBorderShow": false,
            "axisCenteredZero": false,
            "axisColorMode": "text",
            "axisLabel": "",
            "axisPlacement": "auto",
            "barAlignment": 0,
            "drawStyle": "line",
            "fillOpacity": 10,
            "gradientMode": "none",
            "hideFrom": {
              "legend": false,
              "tooltip": false,
              "viz": false
            },
            "insertNulls": false,
            "lineInterpolation": "linear",
            "lineWidth": 1,
            "pointSize": 5,
            "scaleDistribution": {
              "type": "linear"
            },
            "showPoints": "never",
            "spanNulls": false,
            "stacking": {
              "group": "A",
              "mode": "none"
            },
            "thresholdsStyle": {
              "mode": "off"
            }
          },
          "mappings": [],
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "red",
                "value": 80
              }
            ]
          },
          "unit": "percent"
        },
        "overrides": []
      },
      "gridPos": {
        "h": 7,
        "w": 10,
        "x": 0,
        "y": 0
      },
      "id": 6,
      "options": {
        "legend": {
          "calcs": [
            "mean",
            "lastNotNull",
            "max",
            "min"
          ],
          "displayMode": "table",
          "placement": "bottom",
          "showLegend": true
        },
        "tooltip": {
          "mode": "multi",
          "sort": "none"
        }
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "expr": "irate(process_cpu_user_seconds_total{instance=~\"$instance\"}[2m]) * 100",
          "format": "time_series",
          "intervalFactor": 1,
          "legendFormat": "User CPU - {{instance}}",
          "refId": "A"
        },
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "expr": "irate(process_cpu_system_seconds_total{instance=~\"$instance\"}[2m]) * 100",
          "format": "time_series",
          "intervalFactor": 1,
          "legendFormat": "Sys CPU - {{instance}}",
          "refId": "B"
        }
      ],
      "title": "Process CPU Usage",
      "type": "timeseries"
    },
    {
      "datasource": {
        "type": "prometheus",
        "uid": "cds4j1ybfuhogb"
      },
      "fieldConfig": {
        "defaults": {
          "color": {
            "mode": "palette-classic"
          },
          "custom": {
            "axisBorderShow": false,
            "axisCenteredZero": false,
            "axisColorMode": "text",
            "axisLabel": "",
            "axisPlacement": "auto",
            "barAlignment": 0,
            "drawStyle": "line",
            "fillOpacity": 10,
            "gradientMode": "none",
            "hideFrom": {
              "legend": false,
              "tooltip": false,
              "viz": false
            },
            "insertNulls": false,
            "lineInterpolation": "linear",
            "lineWidth": 1,
            "pointSize": 5,
            "scaleDistribution": {
              "type": "linear"
            },
            "showPoints": "never",
            "spanNulls": false,
            "stacking": {
              "group": "A",
              "mode": "none"
            },
            "thresholdsStyle": {
              "mode": "off"
            }
          },
          "mappings": [],
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "red",
                "value": 80
              }
            ]
          },
          "unit": "s"
        },
        "overrides": []
      },
      "gridPos": {
        "h": 7,
        "w": 9,
        "x": 10,
        "y": 0
      },
      "id": 8,
      "options": {
        "legend": {
          "calcs": [
            "mean",
            "lastNotNull",
            "max",
            "min"
          ],
          "displayMode": "table",
          "placement": "bottom",
          "showLegend": true
        },
        "tooltip": {
          "mode": "multi",
          "sort": "none"
        }
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "expr": "nodejs_eventloop_lag_seconds{instance=~\"$instance\"}",
          "format": "time_series",
          "intervalFactor": 1,
          "legendFormat": "{{instance}}",
          "refId": "A"
        }
      ],
      "title": "Event Loop Lag",
      "type": "timeseries"
    },
    {
      "datasource": {
        "type": "prometheus",
        "uid": "cds4j1ybfuhogb"
      },
      "description": "",
      "fieldConfig": {
        "defaults": {
          "mappings": [
            {
              "options": {
                "match": "null",
                "result": {
                  "text": "N/A"
                }
              },
              "type": "special"
            }
          ],
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "red",
                "value": 80
              }
            ]
          },
          "unit": "none"
        },
        "overrides": []
      },
      "gridPos": {
        "h": 3,
        "w": 5,
        "x": 19,
        "y": 0
      },
      "id": 2,
      "interval": "",
      "maxDataPoints": 100,
      "options": {
        "colorMode": "none",
        "graphMode": "none",
        "justifyMode": "auto",
        "orientation": "horizontal",
        "percentChangeColorMode": "standard",
        "reduceOptions": {
          "calcs": [
            "mean"
          ],
          "fields": "/^v22\\.3\\.0$/",
          "values": false
        },
        "showPercentChange": false,
        "textMode": "name",
        "wideLayout": true
      },
      "pluginVersion": "11.1.0",
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "disableTextWrap": false,
          "editorMode": "code",
          "expr": "sum(nodejs_version_info{instance=~\"$instance\"}) by (version)",
          "fullMetaSearch": false,
          "hide": false,
          "includeNullMetadata": true,
          "instant": false,
          "legendFormat": "__auto",
          "range": true,
          "refId": "A",
          "useBackend": false
        }
      ],
      "title": "Node.js Version",
      "type": "stat"
    },
    {
      "datasource": {
        "type": "prometheus",
        "uid": "cds4j1ybfuhogb"
      },
      "fieldConfig": {
        "defaults": {
          "color": {
            "fixedColor": "#F2495C",
            "mode": "fixed"
          },
          "mappings": [
            {
              "options": {
                "match": "null",
                "result": {
                  "text": "N/A"
                }
              },
              "type": "special"
            }
          ],
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "red",
                "value": 80
              }
            ]
          },
          "unit": "none"
        },
        "overrides": []
      },
      "gridPos": {
        "h": 4,
        "w": 5,
        "x": 19,
        "y": 3
      },
      "id": 4,
      "maxDataPoints": 100,
      "options": {
        "colorMode": "none",
        "graphMode": "area",
        "justifyMode": "auto",
        "orientation": "horizontal",
        "percentChangeColorMode": "standard",
        "reduceOptions": {
          "calcs": [
            "lastNotNull"
          ],
          "fields": "",
          "values": false
        },
        "showPercentChange": false,
        "textMode": "auto",
        "wideLayout": true
      },
      "pluginVersion": "11.1.0",
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "expr": "sum(changes(process_start_time_seconds{instance=~\"$instance\"}[1m]))",
          "format": "time_series",
          "intervalFactor": 1,
          "legendFormat": "{{instance}}",
          "refId": "A"
        }
      ],
      "title": "Process Restart Times",
      "type": "stat"
    },
    {
      "datasource": {
        "type": "prometheus",
        "uid": "cds4j1ybfuhogb"
      },
      "fieldConfig": {
        "defaults": {
          "color": {
            "mode": "palette-classic"
          },
          "custom": {
            "axisBorderShow": false,
            "axisCenteredZero": false,
            "axisColorMode": "text",
            "axisLabel": "",
            "axisPlacement": "auto",
            "barAlignment": 0,
            "drawStyle": "line",
            "fillOpacity": 10,
            "gradientMode": "none",
            "hideFrom": {
              "legend": false,
              "tooltip": false,
              "viz": false
            },
            "insertNulls": false,
            "lineInterpolation": "linear",
            "lineWidth": 1,
            "pointSize": 5,
            "scaleDistribution": {
              "type": "linear"
            },
            "showPoints": "never",
            "spanNulls": false,
            "stacking": {
              "group": "A",
              "mode": "none"
            },
            "thresholdsStyle": {
              "mode": "off"
            }
          },
          "mappings": [],
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "red",
                "value": 80
              }
            ]
          },
          "unit": "bytes"
        },
        "overrides": []
      },
      "gridPos": {
        "h": 7,
        "w": 16,
        "x": 0,
        "y": 7
      },
      "id": 7,
      "options": {
        "legend": {
          "calcs": [
            "mean",
            "lastNotNull",
            "max",
            "min"
          ],
          "displayMode": "table",
          "placement": "right",
          "showLegend": true
        },
        "tooltip": {
          "mode": "multi",
          "sort": "none"
        }
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "expr": "process_resident_memory_bytes{instance=~\"$instance\"}",
          "format": "time_series",
          "intervalFactor": 1,
          "legendFormat": "Process Memory - {{instance}}",
          "refId": "A"
        },
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "expr": "nodejs_heap_size_total_bytes{instance=~\"$instance\"}",
          "format": "time_series",
          "intervalFactor": 1,
          "legendFormat": "Heap Total - {{instance}}",
          "refId": "B"
        },
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "expr": "nodejs_heap_size_used_bytes{instance=~\"$instance\"}",
          "format": "time_series",
          "intervalFactor": 1,
          "legendFormat": "Heap Used - {{instance}}",
          "refId": "C"
        },
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "expr": "nodejs_external_memory_bytes{instance=~\"$instance\"}",
          "format": "time_series",
          "intervalFactor": 1,
          "legendFormat": "External Memory - {{instance}}",
          "refId": "D"
        }
      ],
      "title": "Process Memory Usage",
      "type": "timeseries"
    },
    {
      "datasource": {
        "type": "prometheus",
        "uid": "cds4j1ybfuhogb"
      },
      "fieldConfig": {
        "defaults": {
          "color": {
            "mode": "palette-classic"
          },
          "custom": {
            "axisBorderShow": false,
            "axisCenteredZero": false,
            "axisColorMode": "text",
            "axisLabel": "",
            "axisPlacement": "auto",
            "barAlignment": 0,
            "drawStyle": "line",
            "fillOpacity": 10,
            "gradientMode": "none",
            "hideFrom": {
              "legend": false,
              "tooltip": false,
              "viz": false
            },
            "insertNulls": false,
            "lineInterpolation": "linear",
            "lineWidth": 1,
            "pointSize": 5,
            "scaleDistribution": {
              "type": "linear"
            },
            "showPoints": "never",
            "spanNulls": false,
            "stacking": {
              "group": "A",
              "mode": "none"
            },
            "thresholdsStyle": {
              "mode": "off"
            }
          },
          "mappings": [],
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "red",
                "value": 80
              }
            ]
          },
          "unit": "short"
        },
        "overrides": []
      },
      "gridPos": {
        "h": 7,
        "w": 8,
        "x": 16,
        "y": 7
      },
      "id": 9,
      "options": {
        "legend": {
          "calcs": [
            "mean",
            "lastNotNull",
            "max",
            "min"
          ],
          "displayMode": "table",
          "placement": "bottom",
          "showLegend": true
        },
        "tooltip": {
          "mode": "multi",
          "sort": "none"
        }
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "expr": "nodejs_active_handles_total{instance=~\"$instance\"}",
          "format": "time_series",
          "intervalFactor": 1,
          "legendFormat": "Active Handler - {{instance}}",
          "refId": "A"
        },
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "expr": "nodejs_active_requests_total{instance=~\"$instance\"}",
          "format": "time_series",
          "intervalFactor": 1,
          "legendFormat": "Active Request - {{instance}}",
          "refId": "B"
        }
      ],
      "title": "Active Handlers/Requests Total",
      "type": "timeseries"
    },
    {
      "datasource": {
        "type": "prometheus",
        "uid": "cds4j1ybfuhogb"
      },
      "fieldConfig": {
        "defaults": {
          "color": {
            "mode": "palette-classic"
          },
          "custom": {
            "axisBorderShow": false,
            "axisCenteredZero": false,
            "axisColorMode": "text",
            "axisLabel": "",
            "axisPlacement": "auto",
            "barAlignment": 0,
            "drawStyle": "line",
            "fillOpacity": 10,
            "gradientMode": "none",
            "hideFrom": {
              "legend": false,
              "tooltip": false,
              "viz": false
            },
            "insertNulls": false,
            "lineInterpolation": "linear",
            "lineWidth": 1,
            "pointSize": 5,
            "scaleDistribution": {
              "type": "linear"
            },
            "showPoints": "never",
            "spanNulls": false,
            "stacking": {
              "group": "A",
              "mode": "none"
            },
            "thresholdsStyle": {
              "mode": "off"
            }
          },
          "mappings": [],
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "red",
                "value": 80
              }
            ]
          },
          "unit": "bytes"
        },
        "overrides": []
      },
      "gridPos": {
        "h": 8,
        "w": 8,
        "x": 0,
        "y": 14
      },
      "id": 10,
      "options": {
        "legend": {
          "calcs": [
            "mean",
            "lastNotNull",
            "max",
            "min"
          ],
          "displayMode": "table",
          "placement": "bottom",
          "showLegend": true
        },
        "tooltip": {
          "mode": "multi",
          "sort": "none"
        }
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "expr": "nodejs_heap_space_size_total_bytes{instance=~\"$instance\"}",
          "format": "time_series",
          "intervalFactor": 1,
          "legendFormat": "Heap Total - {{instance}} - {{space}}",
          "refId": "A"
        }
      ],
      "title": "Heap Total Detail",
      "type": "timeseries"
    },
    {
      "datasource": {
        "type": "prometheus",
        "uid": "cds4j1ybfuhogb"
      },
      "fieldConfig": {
        "defaults": {
          "color": {
            "mode": "palette-classic"
          },
          "custom": {
            "axisBorderShow": false,
            "axisCenteredZero": false,
            "axisColorMode": "text",
            "axisLabel": "",
            "axisPlacement": "auto",
            "barAlignment": 0,
            "drawStyle": "line",
            "fillOpacity": 10,
            "gradientMode": "none",
            "hideFrom": {
              "legend": false,
              "tooltip": false,
              "viz": false
            },
            "insertNulls": false,
            "lineInterpolation": "linear",
            "lineWidth": 1,
            "pointSize": 5,
            "scaleDistribution": {
              "type": "linear"
            },
            "showPoints": "never",
            "spanNulls": false,
            "stacking": {
              "group": "A",
              "mode": "none"
            },
            "thresholdsStyle": {
              "mode": "off"
            }
          },
          "mappings": [],
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "red",
                "value": 80
              }
            ]
          },
          "unit": "bytes"
        },
        "overrides": []
      },
      "gridPos": {
        "h": 8,
        "w": 8,
        "x": 8,
        "y": 14
      },
      "id": 11,
      "options": {
        "legend": {
          "calcs": [
            "mean",
            "lastNotNull",
            "max",
            "min"
          ],
          "displayMode": "table",
          "placement": "bottom",
          "showLegend": true
        },
        "tooltip": {
          "mode": "multi",
          "sort": "none"
        }
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "expr": "nodejs_heap_space_size_used_bytes{instance=~\"$instance\"}",
          "format": "time_series",
          "intervalFactor": 1,
          "legendFormat": "Heap Used - {{instance}} - {{space}}",
          "refId": "A"
        }
      ],
      "title": "Heap Used Detail",
      "type": "timeseries"
    },
    {
      "datasource": {
        "type": "prometheus",
        "uid": "cds4j1ybfuhogb"
      },
      "fieldConfig": {
        "defaults": {
          "color": {
            "mode": "palette-classic"
          },
          "custom": {
            "axisBorderShow": false,
            "axisCenteredZero": false,
            "axisColorMode": "text",
            "axisLabel": "",
            "axisPlacement": "auto",
            "barAlignment": 0,
            "drawStyle": "line",
            "fillOpacity": 10,
            "gradientMode": "none",
            "hideFrom": {
              "legend": false,
              "tooltip": false,
              "viz": false
            },
            "insertNulls": false,
            "lineInterpolation": "linear",
            "lineWidth": 1,
            "pointSize": 5,
            "scaleDistribution": {
              "type": "linear"
            },
            "showPoints": "never",
            "spanNulls": false,
            "stacking": {
              "group": "A",
              "mode": "none"
            },
            "thresholdsStyle": {
              "mode": "off"
            }
          },
          "mappings": [],
          "thresholds": {
            "mode": "absolute",
            "steps": [
              {
                "color": "green",
                "value": null
              },
              {
                "color": "red",
                "value": 80
              }
            ]
          },
          "unit": "bytes"
        },
        "overrides": []
      },
      "gridPos": {
        "h": 8,
        "w": 8,
        "x": 16,
        "y": 14
      },
      "id": 12,
      "options": {
        "legend": {
          "calcs": [
            "mean",
            "lastNotNull",
            "max",
            "min"
          ],
          "displayMode": "table",
          "placement": "bottom",
          "showLegend": true
        },
        "tooltip": {
          "mode": "multi",
          "sort": "none"
        }
      },
      "targets": [
        {
          "datasource": {
            "type": "prometheus",
            "uid": "cds4j1ybfuhogb"
          },
          "expr": "nodejs_heap_space_size_available_bytes{instance=~\"$instance\"}",
          "format": "time_series",
          "intervalFactor": 1,
          "legendFormat": "Heap Used - {{instance}} - {{space}}",
          "refId": "A"
        }
      ],
      "title": "Heap Available Detail",
      "type": "timeseries"
    }
  ],
  "schemaVersion": 39,
  "tags": [
    "nodejs"
  ],
  "templating": {
    "list": [
      {
        "current": {
          "selected": false,
          "text": "All",
          "value": "$__all"
        },
        "datasource": {
          "type": "prometheus",
          "uid": "cds4j1ybfuhogb"
        },
        "definition": "label_values(nodejs_version_info, instance)",
        "hide": 0,
        "includeAll": true,
        "label": "instance",
        "multi": true,
        "name": "instance",
        "options": [],
        "query": "label_values(nodejs_version_info, instance)",
        "refresh": 1,
        "regex": "",
        "skipUrlSync": false,
        "sort": 1,
        "tagValuesQuery": "",
        "tagsQuery": "",
        "type": "query",
        "useTags": false
      }
    ]
  },
  "time": {
    "from": "now-1h",
    "to": "now"
  },
  "timepicker": {
    "refresh_intervals": [
      "5s",
      "10s",
      "30s",
      "1m",
      "5m",
      "15m",
      "30m",
      "1h",
      "2h",
      "1d"
    ],
    "time_options": [
      "5m",
      "15m",
      "1h",
      "6h",
      "12h",
      "24h",
      "2d",
      "7d",
      "30d"
    ]
  },
  "timezone": "",
  "title": "FlowiseAI Server",
  "uid": "PTSqcpJWk",
  "version": 5,
  "weekStart": ""
}

================================================
FILE: metrics/otel/compose.yaml
================================================
version: "2"
services:
  otel-collector:
    read_only: true
    image: otel/opentelemetry-collector-contrib
    command: ["--config=/etc/otelcol-contrib/config.yaml", "--feature-gates=-exporter.datadogexporter.DisableAPMStats", "${OTELCOL_ARGS}"]
    volumes:
      - ./otel.config.yml:/etc/otelcol-contrib/config.yaml
    ports:
      - 1888:1888 # pprof extension
      - 8888:8888 # Prometheus metrics exposed by the Collector
      - 8889:8889 # Prometheus exporter metrics
      - 13133:13133 # health_check extension
      - 4317:4317 # OTLP gRPC receiver
      - 4318:4318 # OTLP http receiver
      - 55679:55679 # zpages extension


================================================
FILE: metrics/otel/otel.config.yml
================================================
receivers:
  otlp:
    protocols:
      http:
        endpoint: 0.0.0.0:4318
      grpc:
        endpoint: 0.0.0.0:4317
  # The hostmetrics receiver is required to get correct infrastructure metrics in Datadog.
  hostmetrics:
    collection_interval: 10s
    scrapers:
      paging:
        metrics:
          system.paging.utilization:
            enabled: true
      cpu:
        metrics:
          system.cpu.utilization:
            enabled: true
      disk:
      filesystem:
        metrics:
          system.filesystem.utilization:
            enabled: true
      load:
      memory:
      network:

  # The prometheus receiver scrapes metrics needed for the OpenTelemetry Collector Dashboard.
  prometheus:
    config:
      scrape_configs:
        - job_name: 'otelcol'
          scrape_interval: 10s
          static_configs:
            - targets: ['0.0.0.0:8888']

  filelog:
    include_file_path: true
    poll_interval: 10s
    include:
      - /var/log/**/*example*/*.log

processors:
  batch:
    send_batch_max_size: 100
    send_batch_size: 10
    timeout: 10s

connectors:
  datadog/connector:

exporters:
  datadog/exporter:
    api:
      site: us5.datadoghq.com
      key: "replace_api_key"

service:
  pipelines:
    metrics:
      receivers: [datadog/connector, hostmetrics, prometheus, otlp]
      processors: [batch]
      exporters: [datadog/exporter]
    traces:
      receivers: [otlp]
      processors: [batch]
      exporters: [datadog/connector, datadog/exporter]
    logs:
      receivers: [otlp, filelog]
      processors: [batch]
      exporters: [datadog/exporter]


================================================
FILE: metrics/prometheus/prometheus.config.yml
================================================
global:
    scrape_interval: 5s
scrape_configs:
    - job_name: 'FlowiseAI'
      static_configs:
          - targets: ['localhost:8080', 'localhost:3000']

      metrics_path: /api/v1/metrics/
      scheme: http

      authorization:
          type: Bearer
          credentials_file: '/etc/prometheus/api_key.txt'


================================================
FILE: package.json
================================================
{
    "name": "flowise",
    "version": "3.1.0",
    "private": true,
    "homepage": "https://flowiseai.com",
    "workspaces": [
        "packages/*",
        "flowise",
        "ui",
        "components",
        "api-documentation"
    ],
    "scripts": {
        "build": "turbo run build",
        "build-force": "pnpm clean && turbo run build --force",
        "dev": "turbo run dev --parallel --no-cache",
        "start": "run-script-os",
        "start:windows": "cd packages/server/bin && run start",
        "start:default": "cd packages/server/bin && ./run start",
        "start-worker": "run-script-os",
        "start-worker:windows": "cd packages/server/bin && run worker",
        "start-worker:default": "cd packages/server/bin && ./run worker",
        "user": "run-script-os",
        "user:windows": "cd packages/server/bin && run user",
        "user:default": "cd packages/server/bin && ./run user",
        "test": "turbo run test",
        "test:coverage": "turbo run test:coverage",
        "clean": "pnpm --filter \"./packages/**\" clean",
        "nuke": "pnpm --filter \"./packages/**\" nuke && rimraf node_modules .turbo",
        "format": "prettier --write \"**/*.{ts,tsx,md}\"",
        "lint": "eslint \"**/*.{js,jsx,ts,tsx,json,md}\"",
        "lint-fix": "pnpm lint --fix",
        "quick": "pretty-quick --staged",
        "postinstall": "husky install",
        "migration:create": "pnpm typeorm migration:create"
    },
    "lint-staged": {
        "*.{js,jsx,ts,tsx,json,md}": "eslint --fix"
    },
    "devDependencies": {
        "@babel/preset-env": "^7.19.4",
        "@babel/preset-typescript": "7.18.6",
        "@types/express": "^4.17.13",
        "@typescript-eslint/typescript-estree": "^7.13.1",
        "eslint": "^8.24.0",
        "eslint-config-prettier": "^8.3.0",
        "eslint-config-react-app": "^7.0.1",
        "eslint-plugin-jsx-a11y": "^6.6.1",
        "eslint-plugin-markdown": "^3.0.0",
        "eslint-plugin-prettier": "^3.4.0",
        "eslint-plugin-react": "^7.26.1",
        "eslint-plugin-react-hooks": "^4.6.0",
        "eslint-plugin-unused-imports": "^2.0.0",
        "husky": "^8.0.1",
        "kill-port": "2.0.1",
        "lint-staged": "^13.0.3",
        "prettier": "^2.7.1",
        "pretty-quick": "^3.1.3",
        "rimraf": "^3.0.2",
        "run-script-os": "^1.1.6",
        "turbo": "1.10.16",
        "typescript": "^5.4.5"
    },
    "pnpm": {
        "onlyBuiltDependencies": [
            "faiss-node",
            "sqlite3"
        ],
        "overrides": {
            "axios": "1.12.0",
            "body-parser": "2.0.2",
            "braces": "3.0.3",
            "cross-spawn": "7.0.6",
            "form-data": "4.0.4",
            "glob-parent": "6.0.2",
            "http-proxy-middleware": "3.0.3",
            "json5": "2.2.3",
            "nth-check": "2.1.1",
            "path-to-regexp": "0.1.12",
            "prismjs": "1.29.0",
            "rollup": "4.45.0",
            "semver": "7.7.1",
            "set-value": "4.1.0",
            "solid-js": "1.9.7",
            "tar-fs": "3.1.0",
            "unset-value": "2.0.1",
            "webpack-dev-middleware": "7.4.2",
            "ws": "8.18.3",
            "xlsx": "h
Download .txt
gitextract_ry1pyiq_/

├── .dockerignore
├── .eslintrc.js
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   └── feature_request.yml
│   └── workflows/
│       ├── docker-image-dockerhub.yml
│       ├── docker-image-ecr.yml
│       ├── main.yml
│       ├── proprietary-path-guard.yml
│       ├── publish-agentflow.yml
│       └── test_docker_build.yml
├── .gitignore
├── .husky/
│   ├── pre-commit
│   └── pre-push
├── .npmrc
├── .nvmrc
├── .prettierignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Dockerfile
├── LICENSE.md
├── README.md
├── SECURITY.md
├── artillery-load-test.yml
├── docker/
│   ├── Dockerfile
│   ├── README.md
│   ├── docker-compose-queue-prebuilt.yml
│   ├── docker-compose-queue-source.yml
│   ├── docker-compose.yml
│   └── worker/
│       ├── Dockerfile
│       ├── README.md
│       ├── docker-compose.yml
│       └── healthcheck/
│           ├── healthcheck.js
│           └── package.json
├── i18n/
│   ├── CODE_OF_CONDUCT-ZH.md
│   ├── CONTRIBUTING-ZH.md
│   ├── README-JA.md
│   ├── README-KR.md
│   ├── README-TW.md
│   └── README-ZH.md
├── metrics/
│   ├── grafana/
│   │   ├── grafana.dashboard.app.json.txt
│   │   └── grafana.dashboard.server.json.txt
│   ├── otel/
│   │   ├── compose.yaml
│   │   └── otel.config.yml
│   └── prometheus/
│       └── prometheus.config.yml
├── package.json
├── packages/
│   ├── agentflow/
│   │   ├── .eslintignore
│   │   ├── .eslintrc.js
│   │   ├── .npmignore
│   │   ├── .prettierignore
│   │   ├── .prettierrc
│   │   ├── ARCHITECTURE.md
│   │   ├── README.md
│   │   ├── TESTS.md
│   │   ├── examples/
│   │   │   ├── README.md
│   │   │   ├── index.html
│   │   │   ├── package-lock.json
│   │   │   ├── package.json
│   │   │   ├── src/
│   │   │   │   ├── App.tsx
│   │   │   │   ├── FlowStatePanel.tsx
│   │   │   │   ├── PropsDisplay.tsx
│   │   │   │   ├── config.ts
│   │   │   │   ├── demos/
│   │   │   │   │   ├── AllNodeTypesExample.tsx
│   │   │   │   │   ├── BasicExample.tsx
│   │   │   │   │   ├── CustomNodeExample.tsx
│   │   │   │   │   ├── CustomUIExample.tsx
│   │   │   │   │   ├── DarkModeExample.tsx
│   │   │   │   │   ├── FilteredComponentsExample.tsx
│   │   │   │   │   ├── MultiNodeFlow.tsx
│   │   │   │   │   ├── StatusIndicatorsExample.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── main.tsx
│   │   │   │   └── vite-env.d.ts
│   │   │   ├── tsconfig.json
│   │   │   └── vite.config.ts
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── Agentflow.test.tsx
│   │   │   ├── Agentflow.tsx
│   │   │   ├── AgentflowProvider.tsx
│   │   │   ├── __mocks__/
│   │   │   │   ├── @tiptap/
│   │   │   │   │   ├── extension-code-block-lowlight.ts
│   │   │   │   │   ├── extension-placeholder.ts
│   │   │   │   │   ├── react.ts
│   │   │   │   │   └── starter-kit.ts
│   │   │   │   ├── axios.ts
│   │   │   │   ├── lowlight.ts
│   │   │   │   ├── reactflow.tsx
│   │   │   │   └── styleMock.js
│   │   │   ├── __test_utils__/
│   │   │   │   ├── factories.ts
│   │   │   │   └── jest-environment-jsdom.js
│   │   │   ├── atoms/
│   │   │   │   ├── ArrayInput.test.tsx
│   │   │   │   ├── ArrayInput.tsx
│   │   │   │   ├── CodeInput.test.tsx
│   │   │   │   ├── CodeInput.tsx
│   │   │   │   ├── ConditionBuilder.test.tsx
│   │   │   │   ├── ConditionBuilder.tsx
│   │   │   │   ├── ExpandTextDialog.test.tsx
│   │   │   │   ├── ExpandTextDialog.tsx
│   │   │   │   ├── JsonInput.test.tsx
│   │   │   │   ├── JsonInput.tsx
│   │   │   │   ├── MainCard.tsx
│   │   │   │   ├── MessagesInput.test.tsx
│   │   │   │   ├── MessagesInput.tsx
│   │   │   │   ├── NodeInputHandler.test.tsx
│   │   │   │   ├── NodeInputHandler.tsx
│   │   │   │   ├── RichTextEditor.lazy.tsx
│   │   │   │   ├── RichTextEditor.test.tsx
│   │   │   │   ├── RichTextEditor.tsx
│   │   │   │   ├── ScenariosInput.test.tsx
│   │   │   │   ├── ScenariosInput.tsx
│   │   │   │   ├── SelectVariable.test.tsx
│   │   │   │   ├── SelectVariable.tsx
│   │   │   │   ├── StructuredOutputBuilder.test.tsx
│   │   │   │   ├── StructuredOutputBuilder.tsx
│   │   │   │   ├── index.ts
│   │   │   │   ├── useStableKeys.test.tsx
│   │   │   │   └── useStableKeys.ts
│   │   │   ├── core/
│   │   │   │   ├── index.ts
│   │   │   │   ├── node-catalog/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── nodeFilters.test.ts
│   │   │   │   │   └── nodeFilters.ts
│   │   │   │   ├── node-config/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── nodeIconUtils.test.ts
│   │   │   │   │   ├── nodeIconUtils.ts
│   │   │   │   │   └── nodeIcons.ts
│   │   │   │   ├── theme/
│   │   │   │   │   ├── createAgentflowTheme.test.ts
│   │   │   │   │   ├── createAgentflowTheme.ts
│   │   │   │   │   ├── cssVariables.test.ts
│   │   │   │   │   ├── cssVariables.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── tokens.test.ts
│   │   │   │   │   ├── tokens.ts
│   │   │   │   │   └── types.ts
│   │   │   │   ├── types/
│   │   │   │   │   ├── agentflow.ts
│   │   │   │   │   ├── api.ts
│   │   │   │   │   ├── context.ts
│   │   │   │   │   ├── flow.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── node.ts
│   │   │   │   │   └── validation.ts
│   │   │   │   ├── utils/
│   │   │   │   │   ├── dynamicOutputAnchors.test.ts
│   │   │   │   │   ├── dynamicOutputAnchors.ts
│   │   │   │   │   ├── fieldVisibility.test.ts
│   │   │   │   │   ├── fieldVisibility.ts
│   │   │   │   │   ├── flowExport.test.ts
│   │   │   │   │   ├── flowExport.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── nodeFactory.test.ts
│   │   │   │   │   └── nodeFactory.ts
│   │   │   │   └── validation/
│   │   │   │       ├── connectionValidation.test.ts
│   │   │   │       ├── connectionValidation.ts
│   │   │   │       ├── constraintValidation.test.ts
│   │   │   │       ├── constraintValidation.ts
│   │   │   │       ├── flowValidation.test.ts
│   │   │   │       ├── flowValidation.ts
│   │   │   │       └── index.ts
│   │   │   ├── features/
│   │   │   │   ├── canvas/
│   │   │   │   │   ├── canvas.css
│   │   │   │   │   ├── components/
│   │   │   │   │   │   ├── AgentflowHeader.tsx
│   │   │   │   │   │   ├── ConnectionLine.test.tsx
│   │   │   │   │   │   ├── ConnectionLine.tsx
│   │   │   │   │   │   ├── NodeIcon.tsx
│   │   │   │   │   │   ├── NodeInfoDialog.tsx
│   │   │   │   │   │   ├── NodeInputHandle.tsx
│   │   │   │   │   │   ├── NodeModelConfigs.tsx
│   │   │   │   │   │   ├── NodeOutputHandles.test.ts
│   │   │   │   │   │   ├── NodeOutputHandles.tsx
│   │   │   │   │   │   ├── NodeStatusIndicator.tsx
│   │   │   │   │   │   ├── NodeToolbarActions.tsx
│   │   │   │   │   │   ├── ValidationFeedback.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── containers/
│   │   │   │   │   │   ├── AgentFlowEdge.tsx
│   │   │   │   │   │   ├── AgentFlowNode.tsx
│   │   │   │   │   │   ├── IterationNode.tsx
│   │   │   │   │   │   ├── StickyNote.tsx
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── useDragAndDrop.test.tsx
│   │   │   │   │   │   ├── useDragAndDrop.ts
│   │   │   │   │   │   ├── useFlowHandlers.test.tsx
│   │   │   │   │   │   ├── useFlowHandlers.ts
│   │   │   │   │   │   ├── useFlowNodes.test.tsx
│   │   │   │   │   │   ├── useFlowNodes.ts
│   │   │   │   │   │   ├── useNodeColors.test.tsx
│   │   │   │   │   │   ├── useNodeColors.ts
│   │   │   │   │   │   ├── useOpenNodeEditor.test.tsx
│   │   │   │   │   │   └── useOpenNodeEditor.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── nodeIcons.tsx
│   │   │   │   │   └── styled.ts
│   │   │   │   ├── generator/
│   │   │   │   │   ├── GenerateFlowDialog.test.tsx
│   │   │   │   │   ├── GenerateFlowDialog.tsx
│   │   │   │   │   ├── SuggestionChips.tsx
│   │   │   │   │   └── index.ts
│   │   │   │   ├── node-editor/
│   │   │   │   │   ├── AsyncInput.test.tsx
│   │   │   │   │   ├── AsyncInput.tsx
│   │   │   │   │   ├── ConfigInput.test.tsx
│   │   │   │   │   ├── ConfigInput.tsx
│   │   │   │   │   ├── EditNodeDialog.test.tsx
│   │   │   │   │   ├── EditNodeDialog.tsx
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── useAvailableVariables.test.tsx
│   │   │   │   │   ├── useAvailableVariables.ts
│   │   │   │   │   ├── useDynamicOutputPorts.test.tsx
│   │   │   │   │   └── useDynamicOutputPorts.ts
│   │   │   │   └── node-palette/
│   │   │   │       ├── AddNodesDrawer.tsx
│   │   │   │       ├── NodeListItem.tsx
│   │   │   │       ├── StyledFab.tsx
│   │   │   │       ├── index.ts
│   │   │   │       ├── search.test.ts
│   │   │   │       ├── search.ts
│   │   │   │       └── useDrawerMaxHeight.ts
│   │   │   ├── index.ts
│   │   │   ├── infrastructure/
│   │   │   │   ├── api/
│   │   │   │   │   ├── chatflows.test.ts
│   │   │   │   │   ├── chatflows.ts
│   │   │   │   │   ├── client.test.ts
│   │   │   │   │   ├── client.ts
│   │   │   │   │   ├── credentials.test.ts
│   │   │   │   │   ├── credentials.ts
│   │   │   │   │   ├── deduplicatedClient.test.ts
│   │   │   │   │   ├── deduplicatedClient.ts
│   │   │   │   │   ├── embeddings.ts
│   │   │   │   │   ├── hooks/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── useAsyncOptions.test.tsx
│   │   │   │   │   │   └── useAsyncOptions.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── loadMethodRegistry.test.ts
│   │   │   │   │   ├── loadMethodRegistry.ts
│   │   │   │   │   ├── models.test.ts
│   │   │   │   │   ├── models.ts
│   │   │   │   │   ├── nodes.test.ts
│   │   │   │   │   ├── nodes.ts
│   │   │   │   │   ├── runtimeState.ts
│   │   │   │   │   ├── stores.ts
│   │   │   │   │   ├── tools.test.ts
│   │   │   │   │   └── tools.ts
│   │   │   │   └── store/
│   │   │   │       ├── AgentflowContext.e2e.test.tsx
│   │   │   │       ├── AgentflowContext.test.tsx
│   │   │   │       ├── AgentflowContext.tsx
│   │   │   │       ├── ApiContext.test.tsx
│   │   │   │       ├── ApiContext.tsx
│   │   │   │       ├── ConfigContext.test.tsx
│   │   │   │       ├── ConfigContext.tsx
│   │   │   │       ├── agentflowReducer.test.ts
│   │   │   │       ├── agentflowReducer.ts
│   │   │   │       └── index.ts
│   │   │   ├── useAgentflow.test.tsx
│   │   │   ├── useAgentflow.ts
│   │   │   └── vite-env.d.ts
│   │   ├── tsconfig.json
│   │   └── vite.config.ts
│   ├── api-documentation/
│   │   ├── README-ZH.md
│   │   ├── README.md
│   │   ├── nodemon.json
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── configs/
│   │   │   │   └── swagger.config.ts
│   │   │   ├── index.ts
│   │   │   └── yml/
│   │   │       └── swagger.yml
│   │   └── tsconfig.json
│   ├── components/
│   │   ├── README-ZH.md
│   │   ├── README.md
│   │   ├── __mocks__/
│   │   │   └── esm-stub.js
│   │   ├── credentials/
│   │   │   ├── AWSCredential.credential.ts
│   │   │   ├── AgentflowApi.credential.ts
│   │   │   ├── AirtableApi.credential.ts
│   │   │   ├── AlibabaApi.credential.ts
│   │   │   ├── AnthropicApi.credential.ts
│   │   │   ├── ApifyApi.credential.ts
│   │   │   ├── ArizeApi.credential.ts
│   │   │   ├── AssemblyAI.credential.ts
│   │   │   ├── AstraApi.credential.ts
│   │   │   ├── AzureCognitiveServices.credential.ts
│   │   │   ├── AzureOpenAIApi.credential.ts
│   │   │   ├── AzureRerankerApi.credential.ts
│   │   │   ├── BaiduApi.credential.ts
│   │   │   ├── BraveSearchApi.credential.ts
│   │   │   ├── CerebrasApi.credential.ts
│   │   │   ├── ChatflowApi.credential.ts
│   │   │   ├── ChromaApi.credential.ts
│   │   │   ├── CloudflareApi.credential.ts
│   │   │   ├── CohereApi.credential.ts
│   │   │   ├── CometApi.credential.ts
│   │   │   ├── ComposioApi.credential.ts
│   │   │   ├── ConfluenceCloudApi.credential.ts
│   │   │   ├── ConfluenceServerDCApi.credential.ts
│   │   │   ├── CouchbaseApi.credential.ts
│   │   │   ├── DeepseekApi.credential.ts
│   │   │   ├── DynamodbMemoryApi.credential.ts
│   │   │   ├── E2B.credential.ts
│   │   │   ├── ElasticsearchAPI.credential.ts
│   │   │   ├── ElectricsearchUserPassword.credential.ts
│   │   │   ├── ElevenLabsApi.credential.ts
│   │   │   ├── ExaSearchApi.credential.ts
│   │   │   ├── FigmaApi.credential.ts
│   │   │   ├── FireCrawlApi.credential.ts
│   │   │   ├── FireworksApi.credential.ts
│   │   │   ├── GithubApi.credential.ts
│   │   │   ├── GmailOAuth2.credential.ts
│   │   │   ├── GoogleAuth.credential.ts
│   │   │   ├── GoogleCalendarOAuth2.credential.ts
│   │   │   ├── GoogleDocsOAuth2.credential.ts
│   │   │   ├── GoogleDriveOAuth2.credential.ts
│   │   │   ├── GoogleGenerativeAI.credential.ts
│   │   │   ├── GoogleMakerSuite.credential.ts
│   │   │   ├── GoogleSearchApi.credential.ts
│   │   │   ├── GoogleSheetsOAuth2.credential.ts
│   │   │   ├── GroqApi.credential.ts
│   │   │   ├── HTTPApiKey.credential.ts
│   │   │   ├── HTTPBasicAuth.credential.ts
│   │   │   ├── HTTPBearerToken.credential.ts
│   │   │   ├── HuggingFaceApi.credential.ts
│   │   │   ├── IBMWatsonx.credential.ts
│   │   │   ├── JinaApi.credential.ts
│   │   │   ├── JiraApi.credential.ts
│   │   │   ├── JiraApiBearerToken.credential.ts
│   │   │   ├── LangWatchApi.credential.ts
│   │   │   ├── LangfuseApi.credential.ts
│   │   │   ├── LangsmithApi.credential.ts
│   │   │   ├── LitellmApi.credential.ts
│   │   │   ├── LocalAIApi.credential.ts
│   │   │   ├── LunaryApi.credential.ts
│   │   │   ├── MeilisearchApi.credential.ts
│   │   │   ├── Mem0MemoryApi.credential.ts
│   │   │   ├── MicrosoftOutlookOAuth2.credential.ts
│   │   │   ├── MicrosoftTeamsOAuth2.credential.ts
│   │   │   ├── MilvusAuth.credential.ts
│   │   │   ├── MistralApi.credential.ts
│   │   │   ├── MomentoCacheApi.credential.ts
│   │   │   ├── MongoDBUrlApi.credential.ts
│   │   │   ├── MySQLApi.credential.ts
│   │   │   ├── Neo4jApi.credential.ts
│   │   │   ├── NotionApi.credential.ts
│   │   │   ├── NvdiaNIMApi.credential.ts
│   │   │   ├── Ollama.credential.ts
│   │   │   ├── OpenAIApi.credential.ts
│   │   │   ├── OpenRouterApi.credential.ts
│   │   │   ├── OpenSearchUrl.credential.ts
│   │   │   ├── OpikApi.credential.ts
│   │   │   ├── OxylabsApi.credential.ts
│   │   │   ├── PerplexityApi.credential.ts
│   │   │   ├── PhoenixApi.credential.ts
│   │   │   ├── PineconeApi.credential.ts
│   │   │   ├── PostgresApi.credential.ts
│   │   │   ├── PostgresUrl.credential.ts
│   │   │   ├── QdrantApi.credential.ts
│   │   │   ├── RedisCacheApi.credential.ts
│   │   │   ├── RedisCacheUrlApi.credential.ts
│   │   │   ├── ReplicateApi.credential.ts
│   │   │   ├── SambanovaApi.credential.ts
│   │   │   ├── SearchApi.credential.ts
│   │   │   ├── SerpApi.credential.ts
│   │   │   ├── SerperApi.credential.ts
│   │   │   ├── SingleStoreApi.credential.ts
│   │   │   ├── SlackApi.credential.ts
│   │   │   ├── SpiderApi.credential.ts
│   │   │   ├── StripeApi.credential.ts
│   │   │   ├── SupabaseApi.credential.ts
│   │   │   ├── TavilyApi.credential.ts
│   │   │   ├── TeradataBearerToken.credential.ts
│   │   │   ├── TeradataTD2.credential.ts
│   │   │   ├── TeradataVectorStoreApi.credential.ts
│   │   │   ├── TogetherAIApi.credential.ts
│   │   │   ├── UnstructuredApi.credential.ts
│   │   │   ├── UpstashRedisApi.credential.ts
│   │   │   ├── UpstashRedisMemoryApi.credential.ts
│   │   │   ├── UpstashVectorApi.credential.ts
│   │   │   ├── VectaraApi.credential.ts
│   │   │   ├── VoyageAIApi.credential.ts
│   │   │   ├── WeaviateApi.credential.ts
│   │   │   ├── WolframAlphaApp.credential.ts
│   │   │   ├── XaiApi.credential.ts
│   │   │   └── ZepMemoryApi.credential.ts
│   │   ├── evaluation/
│   │   │   ├── EvaluationRunTracer.ts
│   │   │   ├── EvaluationRunTracerLlama.ts
│   │   │   └── EvaluationRunner.ts
│   │   ├── gulpfile.ts
│   │   ├── jest.config.js
│   │   ├── models.json
│   │   ├── nodes/
│   │   │   ├── agentflow/
│   │   │   │   ├── Agent/
│   │   │   │   │   └── Agent.ts
│   │   │   │   ├── Condition/
│   │   │   │   │   └── Condition.ts
│   │   │   │   ├── ConditionAgent/
│   │   │   │   │   ├── ConditionAgent.ts
│   │   │   │   │   ├── matchScenario.test.ts
│   │   │   │   │   └── matchScenario.ts
│   │   │   │   ├── CustomFunction/
│   │   │   │   │   └── CustomFunction.ts
│   │   │   │   ├── DirectReply/
│   │   │   │   │   └── DirectReply.ts
│   │   │   │   ├── ExecuteFlow/
│   │   │   │   │   └── ExecuteFlow.ts
│   │   │   │   ├── HTTP/
│   │   │   │   │   └── HTTP.ts
│   │   │   │   ├── HumanInput/
│   │   │   │   │   └── HumanInput.ts
│   │   │   │   ├── Interface.Agentflow.ts
│   │   │   │   ├── Iteration/
│   │   │   │   │   └── Iteration.ts
│   │   │   │   ├── LLM/
│   │   │   │   │   └── LLM.ts
│   │   │   │   ├── Loop/
│   │   │   │   │   └── Loop.ts
│   │   │   │   ├── Retriever/
│   │   │   │   │   └── Retriever.ts
│   │   │   │   ├── Start/
│   │   │   │   │   └── Start.ts
│   │   │   │   ├── StickyNote/
│   │   │   │   │   └── StickyNote.ts
│   │   │   │   ├── Tool/
│   │   │   │   │   └── Tool.ts
│   │   │   │   ├── prompt.ts
│   │   │   │   ├── utils.test.ts
│   │   │   │   └── utils.ts
│   │   │   ├── agents/
│   │   │   │   ├── AirtableAgent/
│   │   │   │   │   ├── AirtableAgent.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── CSVAgent/
│   │   │   │   │   ├── CSVAgent.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── ConversationalAgent/
│   │   │   │   │   └── ConversationalAgent.ts
│   │   │   │   ├── ConversationalRetrievalToolAgent/
│   │   │   │   │   └── ConversationalRetrievalToolAgent.ts
│   │   │   │   ├── LlamaIndexAgents/
│   │   │   │   │   ├── AnthropicAgent/
│   │   │   │   │   │   └── AnthropicAgent_LlamaIndex.ts
│   │   │   │   │   └── OpenAIToolAgent/
│   │   │   │   │       └── OpenAIToolAgent_LlamaIndex.ts
│   │   │   │   ├── OpenAIAssistant/
│   │   │   │   │   └── OpenAIAssistant.ts
│   │   │   │   ├── ReActAgentChat/
│   │   │   │   │   └── ReActAgentChat.ts
│   │   │   │   ├── ReActAgentLLM/
│   │   │   │   │   └── ReActAgentLLM.ts
│   │   │   │   ├── ToolAgent/
│   │   │   │   │   └── ToolAgent.ts
│   │   │   │   └── XMLAgent/
│   │   │   │       └── XMLAgent.ts
│   │   │   ├── analytic/
│   │   │   │   ├── Arize/
│   │   │   │   │   └── Arize.ts
│   │   │   │   ├── LangFuse/
│   │   │   │   │   └── LangFuse.ts
│   │   │   │   ├── LangSmith/
│   │   │   │   │   └── LangSmith.ts
│   │   │   │   ├── LangWatch/
│   │   │   │   │   └── LangWatch.ts
│   │   │   │   ├── Lunary/
│   │   │   │   │   └── Lunary.ts
│   │   │   │   ├── Opik/
│   │   │   │   │   └── Opik.ts
│   │   │   │   └── Phoenix/
│   │   │   │       └── Phoenix.ts
│   │   │   ├── cache/
│   │   │   │   ├── InMemoryCache/
│   │   │   │   │   ├── InMemoryCache.ts
│   │   │   │   │   └── InMemoryEmbeddingCache.ts
│   │   │   │   ├── MomentoCache/
│   │   │   │   │   └── MomentoCache.ts
│   │   │   │   ├── RedisCache/
│   │   │   │   │   ├── RedisCache.ts
│   │   │   │   │   └── RedisEmbeddingsCache.ts
│   │   │   │   └── UpstashRedisCache/
│   │   │   │       └── UpstashRedisCache.ts
│   │   │   ├── chains/
│   │   │   │   ├── ApiChain/
│   │   │   │   │   ├── GETApiChain.ts
│   │   │   │   │   ├── OpenAPIChain.ts
│   │   │   │   │   ├── POSTApiChain.ts
│   │   │   │   │   └── postCore.ts
│   │   │   │   ├── ConversationChain/
│   │   │   │   │   └── ConversationChain.ts
│   │   │   │   ├── ConversationalRetrievalQAChain/
│   │   │   │   │   ├── ConversationalRetrievalQAChain.ts
│   │   │   │   │   └── prompts.ts
│   │   │   │   ├── GraphCypherQAChain/
│   │   │   │   │   ├── GraphCypherQAChain.test.ts
│   │   │   │   │   └── GraphCypherQAChain.ts
│   │   │   │   ├── LLMChain/
│   │   │   │   │   └── LLMChain.ts
│   │   │   │   ├── MultiPromptChain/
│   │   │   │   │   └── MultiPromptChain.ts
│   │   │   │   ├── MultiRetrievalQAChain/
│   │   │   │   │   └── MultiRetrievalQAChain.ts
│   │   │   │   ├── RetrievalQAChain/
│   │   │   │   │   └── RetrievalQAChain.ts
│   │   │   │   ├── SqlDatabaseChain/
│   │   │   │   │   └── SqlDatabaseChain.ts
│   │   │   │   ├── VectaraChain/
│   │   │   │   │   └── VectaraChain.ts
│   │   │   │   └── VectorDBQAChain/
│   │   │   │       └── VectorDBQAChain.ts
│   │   │   ├── chatmodels/
│   │   │   │   ├── AWSBedrock/
│   │   │   │   │   ├── AWSChatBedrock.ts
│   │   │   │   │   └── FlowiseAWSChatBedrock.ts
│   │   │   │   ├── AzureChatOpenAI/
│   │   │   │   │   ├── AzureChatOpenAI.ts
│   │   │   │   │   ├── AzureChatOpenAI_LlamaIndex.ts
│   │   │   │   │   ├── FlowiseAzureChatOpenAI.ts
│   │   │   │   │   └── README.md
│   │   │   │   ├── ChatAlibabaTongyi/
│   │   │   │   │   └── ChatAlibabaTongyi.ts
│   │   │   │   ├── ChatAnthropic/
│   │   │   │   │   ├── ChatAnthropic.ts
│   │   │   │   │   ├── ChatAnthropic_LlamaIndex.ts
│   │   │   │   │   └── FlowiseChatAnthropic.ts
│   │   │   │   ├── ChatBaiduWenxin/
│   │   │   │   │   └── ChatBaiduWenxin.ts
│   │   │   │   ├── ChatCerebras/
│   │   │   │   │   └── ChatCerebras.ts
│   │   │   │   ├── ChatCloudflareWorkersAI/
│   │   │   │   │   └── ChatCloudflareWorkersAI.ts
│   │   │   │   ├── ChatCohere/
│   │   │   │   │   └── ChatCohere.ts
│   │   │   │   ├── ChatCometAPI/
│   │   │   │   │   └── ChatCometAPI.ts
│   │   │   │   ├── ChatFireworks/
│   │   │   │   │   ├── ChatFireworks.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── ChatGoogleGenerativeAI/
│   │   │   │   │   ├── ChatGoogleGenerativeAI.ts
│   │   │   │   │   └── FlowiseChatGoogleGenerativeAI.ts
│   │   │   │   ├── ChatGoogleVertexAI/
│   │   │   │   │   └── ChatGoogleVertexAI.ts
│   │   │   │   ├── ChatHuggingFace/
│   │   │   │   │   ├── ChatHuggingFace.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── ChatIBMWatsonx/
│   │   │   │   │   └── ChatIBMWatsonx.ts
│   │   │   │   ├── ChatLitellm/
│   │   │   │   │   └── ChatLitellm.ts
│   │   │   │   ├── ChatLocalAI/
│   │   │   │   │   └── ChatLocalAI.ts
│   │   │   │   ├── ChatMistral/
│   │   │   │   │   ├── ChatMistral.ts
│   │   │   │   │   └── ChatMistral_LlamaIndex.ts
│   │   │   │   ├── ChatNemoGuardrails/
│   │   │   │   │   ├── ChatNemoGuardrails.ts
│   │   │   │   │   ├── NemoClient.ts
│   │   │   │   │   └── readme.md
│   │   │   │   ├── ChatNvdiaNIM/
│   │   │   │   │   └── ChatNvdiaNIM.ts
│   │   │   │   ├── ChatOllama/
│   │   │   │   │   ├── ChatOllama.ts
│   │   │   │   │   ├── ChatOllama_LlamaIndex.ts
│   │   │   │   │   └── FlowiseChatOllama.ts
│   │   │   │   ├── ChatOpenAI/
│   │   │   │   │   ├── ChatOpenAI.ts
│   │   │   │   │   ├── ChatOpenAI_LlamaIndex.ts
│   │   │   │   │   └── FlowiseChatOpenAI.ts
│   │   │   │   ├── ChatOpenAICustom/
│   │   │   │   │   └── ChatOpenAICustom.ts
│   │   │   │   ├── ChatOpenRouter/
│   │   │   │   │   ├── ChatOpenRouter.ts
│   │   │   │   │   └── FlowiseChatOpenRouter.ts
│   │   │   │   ├── ChatPerplexity/
│   │   │   │   │   ├── ChatPerplexity.ts
│   │   │   │   │   └── FlowiseChatPerplexity.ts
│   │   │   │   ├── ChatSambanova/
│   │   │   │   │   └── ChatSambanova.ts
│   │   │   │   ├── ChatTogetherAI/
│   │   │   │   │   ├── ChatTogetherAI.ts
│   │   │   │   │   └── ChatTogether_LlamaIndex.ts
│   │   │   │   ├── ChatXAI/
│   │   │   │   │   ├── ChatXAI.ts
│   │   │   │   │   └── FlowiseChatXAI.ts
│   │   │   │   ├── Deepseek/
│   │   │   │   │   └── Deepseek.ts
│   │   │   │   └── Groq/
│   │   │   │       ├── ChatGroq_LlamaIndex.ts
│   │   │   │       └── Groq.ts
│   │   │   ├── documentloaders/
│   │   │   │   ├── API/
│   │   │   │   │   └── APILoader.ts
│   │   │   │   ├── Airtable/
│   │   │   │   │   └── Airtable.ts
│   │   │   │   ├── ApifyWebsiteContentCrawler/
│   │   │   │   │   └── ApifyWebsiteContentCrawler.ts
│   │   │   │   ├── BraveSearchAPI/
│   │   │   │   │   └── BraveSearchAPI.ts
│   │   │   │   ├── Cheerio/
│   │   │   │   │   └── Cheerio.ts
│   │   │   │   ├── Confluence/
│   │   │   │   │   └── Confluence.ts
│   │   │   │   ├── Csv/
│   │   │   │   │   ├── Csv.ts
│   │   │   │   │   └── CsvLoader.ts
│   │   │   │   ├── CustomDocumentLoader/
│   │   │   │   │   └── CustomDocumentLoader.ts
│   │   │   │   ├── DocumentStore/
│   │   │   │   │   └── DocStoreLoader.ts
│   │   │   │   ├── Docx/
│   │   │   │   │   └── Docx.ts
│   │   │   │   ├── Epub/
│   │   │   │   │   └── Epub.ts
│   │   │   │   ├── Figma/
│   │   │   │   │   └── Figma.ts
│   │   │   │   ├── File/
│   │   │   │   │   └── File.ts
│   │   │   │   ├── FireCrawl/
│   │   │   │   │   └── FireCrawl.ts
│   │   │   │   ├── Folder/
│   │   │   │   │   └── Folder.ts
│   │   │   │   ├── Gitbook/
│   │   │   │   │   └── Gitbook.ts
│   │   │   │   ├── Github/
│   │   │   │   │   └── Github.ts
│   │   │   │   ├── GoogleDrive/
│   │   │   │   │   └── GoogleDrive.ts
│   │   │   │   ├── GoogleSheets/
│   │   │   │   │   └── GoogleSheets.ts
│   │   │   │   ├── Jira/
│   │   │   │   │   └── Jira.ts
│   │   │   │   ├── Json/
│   │   │   │   │   └── Json.ts
│   │   │   │   ├── Jsonlines/
│   │   │   │   │   └── Jsonlines.ts
│   │   │   │   ├── MicrosoftExcel/
│   │   │   │   │   ├── ExcelLoader.ts
│   │   │   │   │   └── MicrosoftExcel.ts
│   │   │   │   ├── MicrosoftPowerpoint/
│   │   │   │   │   ├── MicrosoftPowerpoint.ts
│   │   │   │   │   └── PowerpointLoader.ts
│   │   │   │   ├── MicrosoftWord/
│   │   │   │   │   ├── MicrosoftWord.ts
│   │   │   │   │   └── WordLoader.ts
│   │   │   │   ├── Notion/
│   │   │   │   │   ├── NotionDB.ts
│   │   │   │   │   ├── NotionFolder.ts
│   │   │   │   │   └── NotionPage.ts
│   │   │   │   ├── Oxylabs/
│   │   │   │   │   └── Oxylabs.ts
│   │   │   │   ├── Pdf/
│   │   │   │   │   └── Pdf.ts
│   │   │   │   ├── PlainText/
│   │   │   │   │   └── PlainText.ts
│   │   │   │   ├── Playwright/
│   │   │   │   │   └── Playwright.ts
│   │   │   │   ├── Puppeteer/
│   │   │   │   │   └── Puppeteer.ts
│   │   │   │   ├── S3Directory/
│   │   │   │   │   └── S3Directory.ts
│   │   │   │   ├── S3File/
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── S3File.ts
│   │   │   │   ├── SearchApi/
│   │   │   │   │   └── SearchAPI.ts
│   │   │   │   ├── SerpApi/
│   │   │   │   │   └── SerpAPI.ts
│   │   │   │   ├── Spider/
│   │   │   │   │   ├── Spider.ts
│   │   │   │   │   └── SpiderApp.ts
│   │   │   │   ├── Text/
│   │   │   │   │   └── Text.ts
│   │   │   │   ├── Unstructured/
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── Unstructured.ts
│   │   │   │   │   └── UnstructuredFile.ts
│   │   │   │   └── VectorStoreToDocument/
│   │   │   │       └── VectorStoreToDocument.ts
│   │   │   ├── embeddings/
│   │   │   │   ├── AWSBedrockEmbedding/
│   │   │   │   │   └── AWSBedrockEmbedding.ts
│   │   │   │   ├── AzureOpenAIEmbedding/
│   │   │   │   │   ├── AzureOpenAIEmbedding.ts
│   │   │   │   │   ├── AzureOpenAIEmbedding_LlamaIndex.ts
│   │   │   │   │   └── README.md
│   │   │   │   ├── CohereEmbedding/
│   │   │   │   │   └── CohereEmbedding.ts
│   │   │   │   ├── GoogleGenerativeAIEmbedding/
│   │   │   │   │   └── GoogleGenerativeAIEmbedding.ts
│   │   │   │   ├── GoogleVertexAIEmbedding/
│   │   │   │   │   └── GoogleVertexAIEmbedding.ts
│   │   │   │   ├── HuggingFaceInferenceEmbedding/
│   │   │   │   │   ├── HuggingFaceInferenceEmbedding.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── IBMWatsonxEmbedding/
│   │   │   │   │   └── IBMWatsonxEmbedding.ts
│   │   │   │   ├── JinaAIEmbedding/
│   │   │   │   │   └── JinaAIEmbedding.ts
│   │   │   │   ├── LocalAIEmbedding/
│   │   │   │   │   └── LocalAIEmbedding.ts
│   │   │   │   ├── MistralEmbedding/
│   │   │   │   │   └── MistralEmbedding.ts
│   │   │   │   ├── OllamaEmbedding/
│   │   │   │   │   └── OllamaEmbedding.ts
│   │   │   │   ├── OpenAIEmbedding/
│   │   │   │   │   ├── OpenAIEmbedding.ts
│   │   │   │   │   └── OpenAIEmbedding_LlamaIndex.ts
│   │   │   │   ├── OpenAIEmbeddingCustom/
│   │   │   │   │   └── OpenAIEmbeddingCustom.ts
│   │   │   │   ├── TogetherAIEmbedding/
│   │   │   │   │   └── TogetherAIEmbedding.ts
│   │   │   │   └── VoyageAIEmbedding/
│   │   │   │       └── VoyageAIEmbedding.ts
│   │   │   ├── engine/
│   │   │   │   ├── ChatEngine/
│   │   │   │   │   ├── ContextChatEngine.ts
│   │   │   │   │   └── SimpleChatEngine.ts
│   │   │   │   ├── EngineUtils.ts
│   │   │   │   ├── QueryEngine/
│   │   │   │   │   └── QueryEngine.ts
│   │   │   │   └── SubQuestionQueryEngine/
│   │   │   │       └── SubQuestionQueryEngine.ts
│   │   │   ├── graphs/
│   │   │   │   └── Neo4j/
│   │   │   │       └── Neo4j.ts
│   │   │   ├── llms/
│   │   │   │   ├── AWSBedrock/
│   │   │   │   │   └── AWSBedrock.ts
│   │   │   │   ├── Azure OpenAI/
│   │   │   │   │   ├── AzureOpenAI.ts
│   │   │   │   │   └── README.md
│   │   │   │   ├── Cohere/
│   │   │   │   │   └── Cohere.ts
│   │   │   │   ├── Fireworks/
│   │   │   │   │   └── Fireworks.ts
│   │   │   │   ├── GoogleVertexAI/
│   │   │   │   │   └── GoogleVertexAI.ts
│   │   │   │   ├── HuggingFaceInference/
│   │   │   │   │   ├── HuggingFaceInference.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── IBMWatsonx/
│   │   │   │   │   └── IBMWatsonx.ts
│   │   │   │   ├── Ollama/
│   │   │   │   │   └── Ollama.ts
│   │   │   │   ├── OpenAI/
│   │   │   │   │   └── OpenAI.ts
│   │   │   │   ├── Replicate/
│   │   │   │   │   ├── Replicate.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── SambaNova/
│   │   │   │   │   └── Sambanova.ts
│   │   │   │   └── TogetherAI/
│   │   │   │       └── TogetherAI.ts
│   │   │   ├── memory/
│   │   │   │   ├── AgentMemory/
│   │   │   │   │   ├── AgentMemory.ts
│   │   │   │   │   ├── MySQLAgentMemory/
│   │   │   │   │   │   ├── MySQLAgentMemory.ts
│   │   │   │   │   │   └── mysqlSaver.ts
│   │   │   │   │   ├── PostgresAgentMemory/
│   │   │   │   │   │   ├── PostgresAgentMemory.ts
│   │   │   │   │   │   └── pgSaver.ts
│   │   │   │   │   ├── SQLiteAgentMemory/
│   │   │   │   │   │   ├── SQLiteAgentMemory.ts
│   │   │   │   │   │   └── sqliteSaver.ts
│   │   │   │   │   └── interface.ts
│   │   │   │   ├── BufferMemory/
│   │   │   │   │   └── BufferMemory.ts
│   │   │   │   ├── BufferWindowMemory/
│   │   │   │   │   └── BufferWindowMemory.ts
│   │   │   │   ├── ConversationSummaryBufferMemory/
│   │   │   │   │   └── ConversationSummaryBufferMemory.ts
│   │   │   │   ├── ConversationSummaryMemory/
│   │   │   │   │   └── ConversationSummaryMemory.ts
│   │   │   │   ├── DynamoDb/
│   │   │   │   │   └── DynamoDb.ts
│   │   │   │   ├── Mem0/
│   │   │   │   │   └── Mem0.ts
│   │   │   │   ├── MongoDBMemory/
│   │   │   │   │   └── MongoDBMemory.ts
│   │   │   │   ├── RedisBackedChatMemory/
│   │   │   │   │   └── RedisBackedChatMemory.ts
│   │   │   │   ├── UpstashRedisBackedChatMemory/
│   │   │   │   │   └── UpstashRedisBackedChatMemory.ts
│   │   │   │   ├── ZepMemory/
│   │   │   │   │   └── ZepMemory.ts
│   │   │   │   └── ZepMemoryCloud/
│   │   │   │       └── ZepMemoryCloud.ts
│   │   │   ├── moderation/
│   │   │   │   ├── Moderation.ts
│   │   │   │   ├── OpenAIModeration/
│   │   │   │   │   ├── OpenAIModeration.ts
│   │   │   │   │   └── OpenAIModerationRunner.ts
│   │   │   │   └── SimplePromptModeration/
│   │   │   │       ├── SimplePromptModeration.ts
│   │   │   │       └── SimplePromptModerationRunner.ts
│   │   │   ├── multiagents/
│   │   │   │   ├── Supervisor/
│   │   │   │   │   └── Supervisor.ts
│   │   │   │   └── Worker/
│   │   │   │       └── Worker.ts
│   │   │   ├── outputparsers/
│   │   │   │   ├── CSVListOutputParser/
│   │   │   │   │   └── CSVListOutputParser.ts
│   │   │   │   ├── CustomListOutputParser/
│   │   │   │   │   └── CustomListOutputParser.ts
│   │   │   │   ├── OutputParserHelpers.ts
│   │   │   │   ├── StructuredOutputParser/
│   │   │   │   │   └── StructuredOutputParser.ts
│   │   │   │   └── StructuredOutputParserAdvanced/
│   │   │   │       └── StructuredOutputParserAdvanced.ts
│   │   │   ├── prompts/
│   │   │   │   ├── ChatPromptTemplate/
│   │   │   │   │   └── ChatPromptTemplate.ts
│   │   │   │   ├── FewShotPromptTemplate/
│   │   │   │   │   └── FewShotPromptTemplate.ts
│   │   │   │   ├── PromptLangfuse/
│   │   │   │   │   └── PromptLangfuse.ts
│   │   │   │   └── PromptTemplate/
│   │   │   │       └── PromptTemplate.ts
│   │   │   ├── recordmanager/
│   │   │   │   ├── MySQLRecordManager/
│   │   │   │   │   └── MySQLrecordManager.ts
│   │   │   │   ├── PostgresRecordManager/
│   │   │   │   │   ├── PostgresRecordManager.ts
│   │   │   │   │   ├── README.md
│   │   │   │   │   └── utils.ts
│   │   │   │   └── SQLiteRecordManager/
│   │   │   │       └── SQLiteRecordManager.ts
│   │   │   ├── responsesynthesizer/
│   │   │   │   ├── CompactRefine/
│   │   │   │   │   └── CompactRefine.ts
│   │   │   │   ├── Refine/
│   │   │   │   │   └── Refine.ts
│   │   │   │   ├── SimpleResponseBuilder/
│   │   │   │   │   └── SimpleResponseBuilder.ts
│   │   │   │   ├── TreeSummarize/
│   │   │   │   │   └── TreeSummarize.ts
│   │   │   │   └── base.ts
│   │   │   ├── retrievers/
│   │   │   │   ├── AWSBedrockKBRetriever/
│   │   │   │   │   └── AWSBedrockKBRetriever.ts
│   │   │   │   ├── AzureRerankRetriever/
│   │   │   │   │   ├── AzureRerank.ts
│   │   │   │   │   └── AzureRerankRetriever.ts
│   │   │   │   ├── CohereRerankRetriever/
│   │   │   │   │   ├── CohereRerank.ts
│   │   │   │   │   └── CohereRerankRetriever.ts
│   │   │   │   ├── CustomRetriever/
│   │   │   │   │   └── CustomRetriever.ts
│   │   │   │   ├── EmbeddingsFilterRetriever/
│   │   │   │   │   └── EmbeddingsFilterRetriever.ts
│   │   │   │   ├── ExtractMetadataRetriever/
│   │   │   │   │   └── ExtractMetadataRetriever.ts
│   │   │   │   ├── HydeRetriever/
│   │   │   │   │   └── HydeRetriever.ts
│   │   │   │   ├── JinaRerankRetriever/
│   │   │   │   │   ├── JinaRerank.ts
│   │   │   │   │   └── JinaRerankRetriever.ts
│   │   │   │   ├── LLMFilterRetriever/
│   │   │   │   │   └── LLMFilterCompressionRetriever.ts
│   │   │   │   ├── MultiQueryRetriever/
│   │   │   │   │   └── MultiQueryRetriever.ts
│   │   │   │   ├── PromptRetriever/
│   │   │   │   │   └── PromptRetriever.ts
│   │   │   │   ├── RRFRetriever/
│   │   │   │   │   ├── RRFRetriever.ts
│   │   │   │   │   └── ReciprocalRankFusion.ts
│   │   │   │   ├── SimilarityThresholdRetriever/
│   │   │   │   │   └── SimilarityThresholdRetriever.ts
│   │   │   │   ├── VectorStoreRetriever/
│   │   │   │   │   └── VectorStoreRetriever.ts
│   │   │   │   └── VoyageAIRetriever/
│   │   │   │       ├── VoyageAIRerank.ts
│   │   │   │       └── VoyageAIRerankRetriever.ts
│   │   │   ├── sequentialagents/
│   │   │   │   ├── Agent/
│   │   │   │   │   └── Agent.ts
│   │   │   │   ├── Condition/
│   │   │   │   │   └── Condition.ts
│   │   │   │   ├── ConditionAgent/
│   │   │   │   │   └── ConditionAgent.ts
│   │   │   │   ├── CustomFunction/
│   │   │   │   │   └── CustomFunction.ts
│   │   │   │   ├── End/
│   │   │   │   │   └── End.ts
│   │   │   │   ├── ExecuteFlow/
│   │   │   │   │   └── ExecuteFlow.ts
│   │   │   │   ├── LLMNode/
│   │   │   │   │   └── LLMNode.ts
│   │   │   │   ├── Loop/
│   │   │   │   │   └── Loop.ts
│   │   │   │   ├── Start/
│   │   │   │   │   └── Start.ts
│   │   │   │   ├── State/
│   │   │   │   │   └── State.ts
│   │   │   │   ├── ToolNode/
│   │   │   │   │   └── ToolNode.ts
│   │   │   │   └── commonUtils.ts
│   │   │   ├── speechtotext/
│   │   │   │   └── assemblyai/
│   │   │   │       └── AssemblyAI.ts
│   │   │   ├── textsplitters/
│   │   │   │   ├── CharacterTextSplitter/
│   │   │   │   │   └── CharacterTextSplitter.ts
│   │   │   │   ├── CodeTextSplitter/
│   │   │   │   │   └── CodeTextSplitter.ts
│   │   │   │   ├── HtmlToMarkdownTextSplitter/
│   │   │   │   │   └── HtmlToMarkdownTextSplitter.ts
│   │   │   │   ├── MarkdownTextSplitter/
│   │   │   │   │   └── MarkdownTextSplitter.ts
│   │   │   │   ├── RecursiveCharacterTextSplitter/
│   │   │   │   │   └── RecursiveCharacterTextSplitter.ts
│   │   │   │   └── TokenTextSplitter/
│   │   │   │       └── TokenTextSplitter.ts
│   │   │   ├── tools/
│   │   │   │   ├── AWSDynamoDBKVStorage/
│   │   │   │   │   ├── AWSDynamoDBKVStorage.test.ts
│   │   │   │   │   └── AWSDynamoDBKVStorage.ts
│   │   │   │   ├── AWSSNS/
│   │   │   │   │   └── AWSSNS.ts
│   │   │   │   ├── AgentAsTool/
│   │   │   │   │   └── AgentAsTool.ts
│   │   │   │   ├── Arxiv/
│   │   │   │   │   ├── Arxiv.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── BraveSearchAPI/
│   │   │   │   │   └── BraveSearchAPI.ts
│   │   │   │   ├── Calculator/
│   │   │   │   │   └── Calculator.ts
│   │   │   │   ├── ChainTool/
│   │   │   │   │   ├── ChainTool.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── ChatflowTool/
│   │   │   │   │   └── ChatflowTool.ts
│   │   │   │   ├── CodeInterpreterE2B/
│   │   │   │   │   └── CodeInterpreterE2B.ts
│   │   │   │   ├── Composio/
│   │   │   │   │   └── Composio.ts
│   │   │   │   ├── CurrentDateTime/
│   │   │   │   │   └── CurrentDateTime.ts
│   │   │   │   ├── CustomTool/
│   │   │   │   │   ├── CustomTool.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── ExaSearch/
│   │   │   │   │   └── ExaSearch.ts
│   │   │   │   ├── Gmail/
│   │   │   │   │   ├── Gmail.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── GoogleCalendar/
│   │   │   │   │   ├── GoogleCalendar.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── GoogleDocs/
│   │   │   │   │   ├── GoogleDocs.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── GoogleDrive/
│   │   │   │   │   ├── GoogleDrive.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── GoogleSearchAPI/
│   │   │   │   │   └── GoogleSearchAPI.ts
│   │   │   │   ├── GoogleSheets/
│   │   │   │   │   ├── GoogleSheets.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── JSONPathExtractor/
│   │   │   │   │   ├── JSONPathExtractor.test.ts
│   │   │   │   │   └── JSONPathExtractor.ts
│   │   │   │   ├── Jira/
│   │   │   │   │   ├── Jira.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── MCP/
│   │   │   │   │   ├── BraveSearch/
│   │   │   │   │   │   └── BraveSearchMCP.ts
│   │   │   │   │   ├── CustomMCP/
│   │   │   │   │   │   └── CustomMCP.ts
│   │   │   │   │   ├── Github/
│   │   │   │   │   │   └── GithubMCP.ts
│   │   │   │   │   ├── PostgreSQL/
│   │   │   │   │   │   └── PostgreSQLMCP.ts
│   │   │   │   │   ├── SequentialThinking/
│   │   │   │   │   │   └── SequentialThinkingMCP.ts
│   │   │   │   │   ├── Slack/
│   │   │   │   │   │   └── SlackMCP.ts
│   │   │   │   │   ├── Supergateway/
│   │   │   │   │   │   └── SupergatewayMCP.ts
│   │   │   │   │   ├── Teradata/
│   │   │   │   │   │   └── TeradataMCP.ts
│   │   │   │   │   ├── core.test.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── MicrosoftOutlook/
│   │   │   │   │   ├── MicrosoftOutlook.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── MicrosoftTeams/
│   │   │   │   │   ├── MicrosoftTeams.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── OpenAPIToolkit/
│   │   │   │   │   ├── OpenAPIToolkit.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── QueryEngineTool/
│   │   │   │   │   └── QueryEngineTool.ts
│   │   │   │   ├── RequestsDelete/
│   │   │   │   │   ├── RequestsDelete.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── RequestsGet/
│   │   │   │   │   ├── RequestsGet.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── RequestsPost/
│   │   │   │   │   ├── RequestsPost.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── RequestsPut/
│   │   │   │   │   ├── RequestsPut.ts
│   │   │   │   │   └── core.ts
│   │   │   │   ├── RetrieverTool/
│   │   │   │   │   └── RetrieverTool.ts
│   │   │   │   ├── SearchApi/
│   │   │   │   │   └── SearchAPI.ts
│   │   │   │   ├── Searxng/
│   │   │   │   │   └── Searxng.ts
│   │   │   │   ├── SerpAPI/
│   │   │   │   │   └── SerpAPI.ts
│   │   │   │   ├── Serper/
│   │   │   │   │   └── Serper.ts
│   │   │   │   ├── StripeTool/
│   │   │   │   │   └── StripeTool.ts
│   │   │   │   ├── TavilyAPI/
│   │   │   │   │   └── TavilyAPI.ts
│   │   │   │   ├── WebBrowser/
│   │   │   │   │   └── WebBrowser.ts
│   │   │   │   ├── WebScraperTool/
│   │   │   │   │   └── WebScraperTool.ts
│   │   │   │   └── WolframAlpha/
│   │   │   │       └── WolframAlpha.ts
│   │   │   ├── utilities/
│   │   │   │   ├── CustomFunction/
│   │   │   │   │   └── CustomFunction.ts
│   │   │   │   ├── GetVariable/
│   │   │   │   │   └── GetVariable.ts
│   │   │   │   ├── IfElseFunction/
│   │   │   │   │   └── IfElseFunction.ts
│   │   │   │   ├── SetVariable/
│   │   │   │   │   └── SetVariable.ts
│   │   │   │   └── StickyNote/
│   │   │   │       └── StickyNote.ts
│   │   │   └── vectorstores/
│   │   │       ├── Astra/
│   │   │       │   └── Astra.ts
│   │   │       ├── Chroma/
│   │   │       │   ├── Chroma.ts
│   │   │       │   └── core.ts
│   │   │       ├── Couchbase/
│   │   │       │   └── Couchbase.ts
│   │   │       ├── DocumentStoreVS/
│   │   │       │   └── DocStoreVector.ts
│   │   │       ├── Elasticsearch/
│   │   │       │   └── Elasticsearch.ts
│   │   │       ├── Faiss/
│   │   │       │   └── Faiss.ts
│   │   │       ├── InMemory/
│   │   │       │   └── InMemoryVectorStore.ts
│   │   │       ├── Kendra/
│   │   │       │   └── Kendra.ts
│   │   │       ├── Meilisearch/
│   │   │       │   ├── Meilisearch.ts
│   │   │       │   └── core.ts
│   │   │       ├── Milvus/
│   │   │       │   └── Milvus.ts
│   │   │       ├── MongoDBAtlas/
│   │   │       │   ├── MongoDBAtlas.ts
│   │   │       │   └── core.ts
│   │   │       ├── OpenSearch/
│   │   │       │   └── OpenSearch.ts
│   │   │       ├── Pinecone/
│   │   │       │   ├── Pinecone.ts
│   │   │       │   └── Pinecone_LlamaIndex.ts
│   │   │       ├── Postgres/
│   │   │       │   ├── Postgres.ts
│   │   │       │   ├── README.md
│   │   │       │   ├── driver/
│   │   │       │   │   ├── Base.ts
│   │   │       │   │   ├── PGVector.ts
│   │   │       │   │   └── TypeORM.ts
│   │   │       │   └── utils.ts
│   │   │       ├── Qdrant/
│   │   │       │   └── Qdrant.ts
│   │   │       ├── Redis/
│   │   │       │   ├── Redis.ts
│   │   │       │   └── utils.ts
│   │   │       ├── SimpleStore/
│   │   │       │   └── SimpleStore.ts
│   │   │       ├── Singlestore/
│   │   │       │   └── Singlestore.ts
│   │   │       ├── Supabase/
│   │   │       │   ├── Supabase.ts
│   │   │       │   └── filterParser.ts
│   │   │       ├── Upstash/
│   │   │       │   └── Upstash.ts
│   │   │       ├── Vectara/
│   │   │       │   ├── Vectara.ts
│   │   │       │   └── Vectara_Upload.ts
│   │   │       ├── VectorStoreUtils.ts
│   │   │       ├── Weaviate/
│   │   │       │   └── Weaviate.ts
│   │   │       ├── Zep/
│   │   │       │   └── Zep.ts
│   │   │       └── ZepCloud/
│   │   │           └── ZepCloud.ts
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── Interface.Evaluation.ts
│   │   │   ├── Interface.ts
│   │   │   ├── MetricsLogger.ts
│   │   │   ├── agentflowv2Generator.ts
│   │   │   ├── agents.ts
│   │   │   ├── awsToolsUtils.ts
│   │   │   ├── error.ts
│   │   │   ├── followUpPrompts.ts
│   │   │   ├── google-utils.ts
│   │   │   ├── handler.test.ts
│   │   │   ├── handler.ts
│   │   │   ├── httpSecurity.ts
│   │   │   ├── index.ts
│   │   │   ├── indexing.ts
│   │   │   ├── modelLoader.ts
│   │   │   ├── multiModalUtils.ts
│   │   │   ├── pythonCodeValidator.test.ts
│   │   │   ├── pythonCodeValidator.ts
│   │   │   ├── secureZodParser.ts
│   │   │   ├── speechToText.ts
│   │   │   ├── storage/
│   │   │   │   ├── AzureBlobStorageProvider.ts
│   │   │   │   ├── BaseStorageProvider.ts
│   │   │   │   ├── GCSStorageProvider.ts
│   │   │   │   ├── IStorageProvider.ts
│   │   │   │   ├── LocalStorageProvider.ts
│   │   │   │   ├── S3StorageProvider.ts
│   │   │   │   ├── StorageProviderFactory.ts
│   │   │   │   └── index.ts
│   │   │   ├── storageUtils.ts
│   │   │   ├── textToSpeech.ts
│   │   │   ├── utils.test.ts
│   │   │   ├── utils.ts
│   │   │   ├── validator.test.ts
│   │   │   └── validator.ts
│   │   └── tsconfig.json
│   ├── server/
│   │   ├── README-ZH.md
│   │   ├── README.md
│   │   ├── babel.config.js
│   │   ├── bin/
│   │   │   ├── .gitattributes
│   │   │   ├── dev
│   │   │   ├── dev.cmd
│   │   │   ├── run
│   │   │   └── run.cmd
│   │   ├── cypress/
│   │   │   ├── e2e/
│   │   │   │   ├── 1-apikey/
│   │   │   │   │   └── apikey.cy.js
│   │   │   │   └── 2-variables/
│   │   │   │       └── variables.cy.js
│   │   │   ├── fixtures/
│   │   │   │   └── .keep
│   │   │   └── support/
│   │   │       ├── commands.ts
│   │   │       └── e2e.ts
│   │   ├── cypress.config.ts
│   │   ├── gulpfile.ts
│   │   ├── jest.config.js
│   │   ├── marketplaces/
│   │   │   ├── agentflows/
│   │   │   │   ├── Agentic RAG.json
│   │   │   │   ├── Branch Out Merge In.json
│   │   │   │   ├── Customer Support Team Agents.json
│   │   │   │   ├── Essay Writing & Grading.json
│   │   │   │   ├── Human In Loop RAG.json
│   │   │   │   ├── Lead Outreach.json
│   │   │   │   ├── Multi Agents.json
│   │   │   │   ├── Patient Concierge.json
│   │   │   │   ├── Plan and Execute.json
│   │   │   │   ├── Portfolio Management Team.json
│   │   │   │   ├── Prompt Engineering Team.json
│   │   │   │   ├── Software Team.json
│   │   │   │   ├── Support Routing System.json
│   │   │   │   └── Text to SQL.json
│   │   │   ├── agentflowsv2/
│   │   │   │   ├── Agentic RAG.json
│   │   │   │   ├── Agents Handoff.json
│   │   │   │   ├── Deep Research With Multi-turn Conversations.json
│   │   │   │   ├── Deep Research With Subagents.json
│   │   │   │   ├── Human In The Loop.json
│   │   │   │   ├── Interacting With API.json
│   │   │   │   ├── Iterations.json
│   │   │   │   ├── SQL Agent.json
│   │   │   │   ├── Simple RAG.json
│   │   │   │   ├── Structured Output.json
│   │   │   │   ├── Supervisor Worker.json
│   │   │   │   ├── Translator.json
│   │   │   │   └── Workplace Chat.json
│   │   │   ├── chatflows/
│   │   │   │   ├── Advanced Structured Output Parser.json
│   │   │   │   ├── CSV Agent.json
│   │   │   │   ├── Context Chat Engine.json
│   │   │   │   ├── Conversation Chain.json
│   │   │   │   ├── Conversational Agent.json
│   │   │   │   ├── Conversational Retrieval QA Chain.json
│   │   │   │   ├── Github Docs QnA.json
│   │   │   │   ├── HuggingFace LLM Chain.json
│   │   │   │   ├── Image Generation.json
│   │   │   │   ├── Input Moderation.json
│   │   │   │   ├── LLM Chain.json
│   │   │   │   ├── List Output Parser.json
│   │   │   │   ├── Local QnA.json
│   │   │   │   ├── Multiple Documents QnA.json
│   │   │   │   ├── OpenAI Assistant.json
│   │   │   │   ├── OpenAPI YAML Agent.json
│   │   │   │   ├── Prompt Chaining.json
│   │   │   │   ├── Query Engine.json
│   │   │   │   ├── ReAct Agent.json
│   │   │   │   ├── Replicate LLM.json
│   │   │   │   ├── SQL DB Chain.json
│   │   │   │   ├── Simple Chat Engine.json
│   │   │   │   ├── SubQuestion Query Engine.json
│   │   │   │   └── Tool Agent.json
│   │   │   └── tools/
│   │   │       ├── Add Hubspot Contact.json
│   │   │       ├── Create Airtable Record.json
│   │   │       ├── Get Current DateTime.json
│   │   │       ├── Get Stock Mover.json
│   │   │       ├── Make Webhook.json
│   │   │       ├── Perplexity AI Search.json
│   │   │       ├── Print or Export Text Document.json
│   │   │       ├── Send Discord Message.json
│   │   │       ├── Send Slack Message.json
│   │   │       ├── Send Teams Message.json
│   │   │       ├── SendGrid Email.json
│   │   │       ├── Spider Web Scraper.json
│   │   │       └── Spider Web Search & Scrape.json
│   │   ├── nodemon.json
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── AbortControllerPool.ts
│   │   │   ├── AppConfig.ts
│   │   │   ├── CachePool.ts
│   │   │   ├── DataSource.ts
│   │   │   ├── IdentityManager.ts
│   │   │   ├── Interface.DocumentStore.ts
│   │   │   ├── Interface.Evaluation.ts
│   │   │   ├── Interface.Metrics.ts
│   │   │   ├── Interface.ts
│   │   │   ├── NodesPool.ts
│   │   │   ├── StripeManager.ts
│   │   │   ├── UsageCacheManager.ts
│   │   │   ├── commands/
│   │   │   │   ├── base.ts
│   │   │   │   ├── start.ts
│   │   │   │   ├── user.ts
│   │   │   │   └── worker.ts
│   │   │   ├── controllers/
│   │   │   │   ├── agentflowv2-generator/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── apikey/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── assistants/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── attachments/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── chat-messages/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── chatflows/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── components-credentials/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── credentials/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── dataset/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── documentstore/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── evaluations/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── evaluators/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── executions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── export-import/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── feedback/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── fetch-links/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── files/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── flow-configs/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── get-upload-file/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── internal-predictions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── leads/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── load-prompts/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── log/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── marketplaces/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── node-configs/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── node-icons/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── nodes/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── nvidia-nim/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── openai-assistants/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── openai-assistants-vector-store/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── openai-realtime/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── ping/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── predictions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── pricing/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── prompts-lists/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── settings/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── stats/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── text-to-speech/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── tools/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── upsert-history/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── validation/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── variables/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── vectors/
│   │   │   │   │   └── index.ts
│   │   │   │   └── versions/
│   │   │   │       └── index.ts
│   │   │   ├── database/
│   │   │   │   ├── entities/
│   │   │   │   │   ├── ApiKey.ts
│   │   │   │   │   ├── Assistant.ts
│   │   │   │   │   ├── ChatFlow.ts
│   │   │   │   │   ├── ChatMessage.ts
│   │   │   │   │   ├── ChatMessageFeedback.ts
│   │   │   │   │   ├── Credential.ts
│   │   │   │   │   ├── CustomTemplate.ts
│   │   │   │   │   ├── Dataset.ts
│   │   │   │   │   ├── DatasetRow.ts
│   │   │   │   │   ├── DocumentStore.ts
│   │   │   │   │   ├── DocumentStoreFileChunk.ts
│   │   │   │   │   ├── Evaluation.ts
│   │   │   │   │   ├── EvaluationRun.ts
│   │   │   │   │   ├── Evaluator.ts
│   │   │   │   │   ├── Execution.ts
│   │   │   │   │   ├── Lead.ts
│   │   │   │   │   ├── Tool.ts
│   │   │   │   │   ├── UpsertHistory.ts
│   │   │   │   │   ├── Variable.ts
│   │   │   │   │   └── index.ts
│   │   │   │   └── migrations/
│   │   │   │       ├── mariadb/
│   │   │   │       │   ├── 1693840429259-Init.ts
│   │   │   │       │   ├── 1693997791471-ModifyChatFlow.ts
│   │   │   │       │   ├── 1693999022236-ModifyChatMessage.ts
│   │   │   │       │   ├── 1693999261583-ModifyCredential.ts
│   │   │   │       │   ├── 1694001465232-ModifyTool.ts
│   │   │   │       │   ├── 1694099200729-AddApiConfig.ts
│   │   │   │       │   ├── 1694432361423-AddAnalytic.ts
│   │   │   │       │   ├── 1694658767766-AddChatHistory.ts
│   │   │   │       │   ├── 1699325775451-AddAssistantEntity.ts
│   │   │   │       │   ├── 1699481607341-AddUsedToolsToChatMessage.ts
│   │   │   │       │   ├── 1699900910291-AddCategoryToChatFlow.ts
│   │   │   │       │   ├── 1700271021237-AddFileAnnotationsToChatMessage.ts
│   │   │   │       │   ├── 1701788586491-AddFileUploadsToChatMessage.ts
│   │   │   │       │   ├── 1702200925471-AddVariableEntity.ts
│   │   │   │       │   ├── 1706364937060-AddSpeechToText.ts
│   │   │   │       │   ├── 1707213626553-AddFeedback.ts
│   │   │   │       │   ├── 1709814301358-AddUpsertHistoryEntity.ts
│   │   │   │       │   ├── 1710832127079-AddLead.ts
│   │   │   │       │   ├── 1711538023578-AddLeadToChatMessage.ts
│   │   │   │       │   ├── 1711637331047-AddDocumentStore.ts
│   │   │   │       │   ├── 1714548873039-AddEvaluation.ts
│   │   │   │       │   ├── 1714548903384-AddDataset.ts
│   │   │   │       │   ├── 1714679514451-AddAgentReasoningToChatMessage.ts
│   │   │   │       │   ├── 1714808591644-AddEvaluator.ts
│   │   │   │       │   ├── 1715861032479-AddVectorStoreConfigToDocStore.ts
│   │   │   │       │   ├── 1716300000000-AddTypeToChatFlow.ts
│   │   │   │       │   ├── 1720230151480-AddApiKey.ts
│   │   │   │       │   ├── 1721078251523-AddActionToChatMessage.ts
│   │   │   │       │   ├── 1722301395521-LongTextColumn.ts
│   │   │   │       │   ├── 1725629836652-AddCustomTemplate.ts
│   │   │   │       │   ├── 1726156258465-AddArtifactsToChatMessage.ts
│   │   │   │       │   ├── 1726666318346-AddFollowUpPrompts.ts
│   │   │   │       │   ├── 1733011290987-AddTypeToAssistant.ts
│   │   │   │       │   ├── 1733752119696-AddSeqNoToDatasetRow.ts
│   │   │   │       │   ├── 1738090872625-AddExecutionEntity.ts
│   │   │   │       │   ├── 1743758056188-FixOpenSourceAssistantTable.ts
│   │   │   │       │   ├── 1744964560174-AddErrorToEvaluationRun.ts
│   │   │   │       │   ├── 1747902489801-ModifyExecutionDataColumnType.ts
│   │   │   │       │   ├── 1754986457485-AddTextToSpeechToChatFlow.ts
│   │   │   │       │   ├── 1755066758601-ModifyChatflowType.ts
│   │   │   │       │   ├── 1759419231100-AddTextToSpeechToChatFlow.ts
│   │   │   │       │   ├── 1759424809984-AddChatFlowNameIndex.ts
│   │   │   │       │   ├── 1764759496768-AddReasonContentToChatMessage.ts
│   │   │   │       │   ├── 1765000000000-FixDocumentStoreFileChunkLongText.ts
│   │   │   │       │   ├── 1765360298674-AddApiKeyPermission.ts
│   │   │   │       │   └── index.ts
│   │   │   │       ├── mysql/
│   │   │   │       │   ├── 1693840429259-Init.ts
│   │   │   │       │   ├── 1693997791471-ModifyChatFlow.ts
│   │   │   │       │   ├── 1693999022236-ModifyChatMessage.ts
│   │   │   │       │   ├── 1693999261583-ModifyCredential.ts
│   │   │   │       │   ├── 1694001465232-ModifyTool.ts
│   │   │   │       │   ├── 1694099200729-AddApiConfig.ts
│   │   │   │       │   ├── 1694432361423-AddAnalytic.ts
│   │   │   │       │   ├── 1694658767766-AddChatHistory.ts
│   │   │   │       │   ├── 1699325775451-AddAssistantEntity.ts
│   │   │   │       │   ├── 1699481607341-AddUsedToolsToChatMessage.ts
│   │   │   │       │   ├── 1699900910291-AddCategoryToChatFlow.ts
│   │   │   │       │   ├── 1700271021237-AddFileAnnotationsToChatMessage.ts
│   │   │   │       │   ├── 1701788586491-AddFileUploadsToChatMessage.ts
│   │   │   │       │   ├── 1702200925471-AddVariableEntity.ts
│   │   │   │       │   ├── 1706364937060-AddSpeechToText.ts
│   │   │   │       │   ├── 1707213626553-AddFeedback.ts
│   │   │   │       │   ├── 1709814301358-AddUpsertHistoryEntity.ts
│   │   │   │       │   ├── 1710832127079-AddLead.ts
│   │   │   │       │   ├── 1711538023578-AddLeadToChatMessage.ts
│   │   │   │       │   ├── 1711637331047-AddDocumentStore.ts
│   │   │   │       │   ├── 1714548873039-AddEvaluation.ts
│   │   │   │       │   ├── 1714548903384-AddDataset.ts
│   │   │   │       │   ├── 1714679514451-AddAgentReasoningToChatMessage.ts
│   │   │   │       │   ├── 1714808591644-AddEvaluator.ts
│   │   │   │       │   ├── 1715861032479-AddVectorStoreConfigToDocStore.ts
│   │   │   │       │   ├── 1716300000000-AddTypeToChatFlow.ts
│   │   │   │       │   ├── 1720230151480-AddApiKey.ts
│   │   │   │       │   ├── 1721078251523-AddActionToChatMessage.ts
│   │   │   │       │   ├── 1722301395521-LongTextColumn.ts
│   │   │   │       │   ├── 1725629836652-AddCustomTemplate.ts
│   │   │   │       │   ├── 1726156258465-AddArtifactsToChatMessage.ts
│   │   │   │       │   ├── 1726666302024-AddFollowUpPrompts.ts
│   │   │   │       │   ├── 1733011290987-AddTypeToAssistant.ts
│   │   │   │       │   ├── 1733752119696-AddSeqNoToDatasetRow.ts
│   │   │   │       │   ├── 1738090872625-AddExecutionEntity.ts
│   │   │   │       │   ├── 1743758056188-FixOpenSourceAssistantTable.ts
│   │   │   │       │   ├── 1744964560174-AddErrorToEvaluationRun.ts
│   │   │   │       │   ├── 1746437114935-FixErrorsColumnInEvaluationRun.ts
│   │   │   │       │   ├── 1747902489801-ModifyExecutionDataColumnType.ts
│   │   │   │       │   ├── 1754986468397-AddTextToSpeechToChatFlow.ts
│   │   │   │       │   ├── 1755066758601-ModifyChatflowType.ts
│   │   │   │       │   ├── 1759419216034-AddTextToSpeechToChatFlow.ts
│   │   │   │       │   ├── 1759424828558-AddChatFlowNameIndex.ts
│   │   │   │       │   ├── 1764759496768-AddReasonContentToChatMessage.ts
│   │   │   │       │   ├── 1765000000000-FixDocumentStoreFileChunkLongText.ts
│   │   │   │       │   ├── 1765360298674-AddApiKeyPermission.ts
│   │   │   │       │   └── index.ts
│   │   │   │       ├── postgres/
│   │   │   │       │   ├── 1693891895163-Init.ts
│   │   │   │       │   ├── 1693995626941-ModifyChatFlow.ts
│   │   │   │       │   ├── 1693996694528-ModifyChatMessage.ts
│   │   │   │       │   ├── 1693997070000-ModifyCredential.ts
│   │   │   │       │   ├── 1693997339912-ModifyTool.ts
│   │   │   │       │   ├── 1694099183389-AddApiConfig.ts
│   │   │   │       │   ├── 1694432361423-AddAnalytic.ts
│   │   │   │       │   ├── 1694658756136-AddChatHistory.ts
│   │   │   │       │   ├── 1699325775451-AddAssistantEntity.ts
│   │   │   │       │   ├── 1699481607341-AddUsedToolsToChatMessage.ts
│   │   │   │       │   ├── 1699900910291-AddCategoryToChatFlow.ts
│   │   │   │       │   ├── 1700271021237-AddFileAnnotationsToChatMessage.ts
│   │   │   │       │   ├── 1701788586491-AddFileUploadsToChatMessage.ts
│   │   │   │       │   ├── 1702200925471-AddVariableEntity.ts
│   │   │   │       │   ├── 1706364937060-AddSpeechToText.ts
│   │   │   │       │   ├── 1707213601923-AddFeedback.ts
│   │   │   │       │   ├── 1709814301358-AddUpsertHistoryEntity.ts
│   │   │   │       │   ├── 1710497452584-FieldTypes.ts
│   │   │   │       │   ├── 1710832137905-AddLead.ts
│   │   │   │       │   ├── 1711538016098-AddLeadToChatMessage.ts
│   │   │   │       │   ├── 1711637331047-AddDocumentStore.ts
│   │   │   │       │   ├── 1714548873039-AddEvaluation.ts
│   │   │   │       │   ├── 1714548903384-AddDataset.ts
│   │   │   │       │   ├── 1714679514451-AddAgentReasoningToChatMessage.ts
│   │   │   │       │   ├── 1714808591644-AddEvaluator.ts
│   │   │   │       │   ├── 1715861032479-AddVectorStoreConfigToDocStore.ts
│   │   │   │       │   ├── 1716300000000-AddTypeToChatFlow.ts
│   │   │   │       │   ├── 1720230151480-AddApiKey.ts
│   │   │   │       │   ├── 1721078251523-AddActionToChatMessage.ts
│   │   │   │       │   ├── 1725629836652-AddCustomTemplate.ts
│   │   │   │       │   ├── 1726156258465-AddArtifactsToChatMessage.ts
│   │   │   │       │   ├── 1726666309552-AddFollowUpPrompts.ts
│   │   │   │       │   ├── 1733011290987-AddTypeToAssistant.ts
│   │   │   │       │   ├── 1733752119696-AddSeqNoToDatasetRow.ts
│   │   │   │       │   ├── 1738090872625-AddExecutionEntity.ts
│   │   │   │       │   ├── 1743758056188-FixOpenSourceAssistantTable.ts
│   │   │   │       │   ├── 1744964560174-AddErrorToEvaluationRun.ts
│   │   │   │       │   ├── 1748450230238-ModifyExecutionSessionIdFieldType.ts
│   │   │   │       │   ├── 1754986480347-AddTextToSpeechToChatFlow.ts
│   │   │   │       │   ├── 1755066758601-ModifyChatflowType.ts
│   │   │   │       │   ├── 1759419194331-AddTextToSpeechToChatFlow.ts
│   │   │   │       │   ├── 1759424903973-AddChatFlowNameIndex.ts
│   │   │   │       │   ├── 1764759496768-AddReasonContentToChatMessage.ts
│   │   │   │       │   ├── 1765360298674-AddApiKeyPermission.ts
│   │   │   │       │   └── index.ts
│   │   │   │       └── sqlite/
│   │   │   │           ├── 1693835579790-Init.ts
│   │   │   │           ├── 1693920824108-ModifyChatFlow.ts
│   │   │   │           ├── 1693921865247-ModifyChatMessage.ts
│   │   │   │           ├── 1693923551694-ModifyCredential.ts
│   │   │   │           ├── 1693924207475-ModifyTool.ts
│   │   │   │           ├── 1694090982460-AddApiConfig.ts
│   │   │   │           ├── 1694432361423-AddAnalytic.ts
│   │   │   │           ├── 1694657778173-AddChatHistory.ts
│   │   │   │           ├── 1699325775451-AddAssistantEntity.ts
│   │   │   │           ├── 1699481607341-AddUsedToolsToChatMessage.ts
│   │   │   │           ├── 1699900910291-AddCategoryToChatFlow.ts
│   │   │   │           ├── 1700271021237-AddFileAnnotationsToChatMessage.ts
│   │   │   │           ├── 1701788586491-AddFileUploadsToChatMessage.ts
│   │   │   │           ├── 1702200925471-AddVariableEntity.ts
│   │   │   │           ├── 1706364937060-AddSpeechToText.ts
│   │   │   │           ├── 1707213619308-AddFeedback.ts
│   │   │   │           ├── 1709814301358-AddUpsertHistoryEntity.ts
│   │   │   │           ├── 1710832117612-AddLead.ts
│   │   │   │           ├── 1711537986113-AddLeadToChatMessage.ts
│   │   │   │           ├── 1711637331047-AddDocumentStore.ts
│   │   │   │           ├── 1714548873039-AddEvaluation.ts
│   │   │   │           ├── 1714548903384-AddDataset.ts
│   │   │   │           ├── 1714679514451-AddAgentReasoningToChatMessage.ts
│   │   │   │           ├── 1714808591644-AddEvaluator.ts
│   │   │   │           ├── 1715861032479-AddVectorStoreConfigToDocStore.ts
│   │   │   │           ├── 1716300000000-AddTypeToChatFlow.ts
│   │   │   │           ├── 1720230151480-AddApiKey.ts
│   │   │   │           ├── 1721078251523-AddActionToChatMessage.ts
│   │   │   │           ├── 1725629836652-AddCustomTemplate.ts
│   │   │   │           ├── 1726156258465-AddArtifactsToChatMessage.ts
│   │   │   │           ├── 1726666294213-AddFollowUpPrompts.ts
│   │   │   │           ├── 1733011290987-AddTypeToAssistant.ts
│   │   │   │           ├── 1733752119696-AddSeqNoToDatasetRow.ts
│   │   │   │           ├── 1738090872625-AddExecutionEntity.ts
│   │   │   │           ├── 1743758056188-FixOpenSourceAssistantTable.ts
│   │   │   │           ├── 1744964560174-AddErrorToEvaluationRun.ts
│   │   │   │           ├── 1754986486669-AddTextToSpeechToChatFlow.ts
│   │   │   │           ├── 1755066758601-ModifyChatflowType.ts
│   │   │   │           ├── 1759419136055-AddTextToSpeechToChatFlow.ts
│   │   │   │           ├── 1759424923093-AddChatFlowNameIndex.ts
│   │   │   │           ├── 1764759496768-AddReasonContentToChatMessage.ts
│   │   │   │           ├── 1765360298674-AddApiKeyPermission.ts
│   │   │   │           └── index.ts
│   │   │   ├── enterprise/
│   │   │   │   ├── Interface.Enterprise.ts
│   │   │   │   ├── LICENSE.md
│   │   │   │   ├── controllers/
│   │   │   │   │   ├── account.controller.ts
│   │   │   │   │   ├── audit/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── auth/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── login-method.controller.ts
│   │   │   │   │   ├── organization-user.controller.ts
│   │   │   │   │   ├── organization.controller.ts
│   │   │   │   │   ├── role.controller.ts
│   │   │   │   │   ├── user.controller.ts
│   │   │   │   │   ├── workspace-user.controller.ts
│   │   │   │   │   └── workspace.controller.ts
│   │   │   │   ├── database/
│   │   │   │   │   ├── entities/
│   │   │   │   │   │   ├── EnterpriseEntities.ts
│   │   │   │   │   │   ├── login-method.entity.ts
│   │   │   │   │   │   ├── login-session.entity.ts
│   │   │   │   │   │   ├── organization-user.entity.ts
│   │   │   │   │   │   ├── organization.entity.ts
│   │   │   │   │   │   ├── role.entity.ts
│   │   │   │   │   │   ├── user.entity.ts
│   │   │   │   │   │   ├── workspace-user.entity.ts
│   │   │   │   │   │   └── workspace.entity.ts
│   │   │   │   │   └── migrations/
│   │   │   │   │       ├── mariadb/
│   │   │   │   │       │   ├── 1720230151482-AddAuthTables.ts
│   │   │   │   │       │   ├── 1725437498242-AddWorkspace.ts
│   │   │   │   │       │   ├── 1726654922034-AddWorkspaceShared.ts
│   │   │   │   │       │   ├── 1726655750383-AddWorkspaceIdToCustomTemplate.ts
│   │   │   │   │       │   ├── 1727798417345-AddOrganization.ts
│   │   │   │   │       │   ├── 1729130948686-LinkWorkspaceId.ts
│   │   │   │   │       │   ├── 1729133111652-LinkOrganizationId.ts
│   │   │   │   │       │   ├── 1730519457880-AddSSOColumns.ts
│   │   │   │   │       │   ├── 1734074497540-AddPersonalWorkspace.ts
│   │   │   │   │       │   ├── 1737076223692-RefactorEnterpriseDatabase.ts
│   │   │   │   │       │   ├── 1746862866554-ExecutionLinkWorkspaceId.ts
│   │   │   │   │       │   └── mariaDbCustomFunctions.ts
│   │   │   │   │       ├── mysql/
│   │   │   │   │       │   ├── 1720230151482-AddAuthTables.ts
│   │   │   │   │       │   ├── 1720230151484-AddWorkspace.ts
│   │   │   │   │       │   ├── 1726654922034-AddWorkspaceShared.ts
│   │   │   │   │       │   ├── 1726655750383-AddWorkspaceIdToCustomTemplate.ts
│   │   │   │   │       │   ├── 1727798417345-AddOrganization.ts
│   │   │   │   │       │   ├── 1729130948686-LinkWorkspaceId.ts
│   │   │   │   │       │   ├── 1729133111652-LinkOrganizationId.ts
│   │   │   │   │       │   ├── 1730519457880-AddSSOColumns.ts
│   │   │   │   │       │   ├── 1734074497540-AddPersonalWorkspace.ts
│   │   │   │   │       │   ├── 1737076223692-RefactorEnterpriseDatabase.ts
│   │   │   │   │       │   ├── 1746862866554-ExecutionLinkWorkspaceId.ts
│   │   │   │   │       │   └── mysqlCustomFunctions.ts
│   │   │   │   │       ├── postgres/
│   │   │   │   │       │   ├── 1720230151482-AddAuthTables.ts
│   │   │   │   │       │   ├── 1720230151484-AddWorkspace.ts
│   │   │   │   │       │   ├── 1726654922034-AddWorkspaceShared.ts
│   │   │   │   │       │   ├── 1726655750383-AddWorkspaceIdToCustomTemplate.ts
│   │   │   │   │       │   ├── 1727798417345-AddOrganization.ts
│   │   │   │   │       │   ├── 1729130948686-LinkWorkspaceId.ts
│   │   │   │   │       │   ├── 1729133111652-LinkOrganizationId.ts
│   │   │   │   │       │   ├── 1730519457880-AddSSOColumns.ts
│   │   │   │   │       │   ├── 1734074497540-AddPersonalWorkspace.ts
│   │   │   │   │       │   ├── 1737076223692-RefactorEnterpriseDatabase.ts
│   │   │   │   │       │   └── 1746862866554-ExecutionLinkWorkspaceId.ts
│   │   │   │   │       └── sqlite/
│   │   │   │   │           ├── 1720230151482-AddAuthTables.ts
│   │   │   │   │           ├── 1720230151484-AddWorkspace.ts
│   │   │   │   │           ├── 1726654922034-AddWorkspaceShared.ts
│   │   │   │   │           ├── 1726655750383-AddWorkspaceIdToCustomTemplate.ts
│   │   │   │   │           ├── 1727798417345-AddOrganization.ts
│   │   │   │   │           ├── 1729130948686-LinkWorkspaceId.ts
│   │   │   │   │           ├── 1729133111652-LinkOrganizationId.ts
│   │   │   │   │           ├── 1730519457880-AddSSOColumns.ts
│   │   │   │   │           ├── 1734074497540-AddPersonalWorkspace.ts
│   │   │   │   │           ├── 1737076223692-RefactorEnterpriseDatabase.ts
│   │   │   │   │           ├── 1746862866554-ExecutionLinkWorkspaceId.ts
│   │   │   │   │           └── sqlliteCustomFunctions.ts
│   │   │   │   ├── emails/
│   │   │   │   │   ├── verify_email_cloud.hbs
│   │   │   │   │   ├── verify_email_cloud.html
│   │   │   │   │   ├── workspace_add_cloud.hbs
│   │   │   │   │   ├── workspace_add_cloud.html
│   │   │   │   │   ├── workspace_new_invite_cloud.hbs
│   │   │   │   │   ├── workspace_new_invite_cloud.html
│   │   │   │   │   ├── workspace_new_invite_enterprise.hbs
│   │   │   │   │   ├── workspace_new_invite_enterprise.html
│   │   │   │   │   ├── workspace_update_invite_cloud.hbs
│   │   │   │   │   ├── workspace_update_invite_cloud.html
│   │   │   │   │   ├── workspace_update_invite_enterprise.hbs
│   │   │   │   │   ├── workspace_update_invite_enterprise.html
│   │   │   │   │   ├── workspace_user_reset_password.hbs
│   │   │   │   │   └── workspace_user_reset_password.html
│   │   │   │   ├── middleware/
│   │   │   │   │   ├── passport/
│   │   │   │   │   │   ├── AuthStrategy.ts
│   │   │   │   │   │   ├── SessionPersistance.ts
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   └── prometheus/
│   │   │   │   │       └── index.ts
│   │   │   │   ├── rbac/
│   │   │   │   │   ├── PermissionCheck.ts
│   │   │   │   │   └── Permissions.ts
│   │   │   │   ├── routes/
│   │   │   │   │   ├── account.route.ts
│   │   │   │   │   ├── audit/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── auth/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── login-method.route.ts
│   │   │   │   │   ├── organization-user.route.ts
│   │   │   │   │   ├── organization.route.ts
│   │   │   │   │   ├── role.route.ts
│   │   │   │   │   ├── user.route.ts
│   │   │   │   │   ├── workspace-user.route.ts
│   │   │   │   │   └── workspace.route.ts
│   │   │   │   ├── services/
│   │   │   │   │   ├── account.service.ts
│   │   │   │   │   ├── audit/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── login-method.service.ts
│   │   │   │   │   ├── organization-user.service.ts
│   │   │   │   │   ├── organization.service.ts
│   │   │   │   │   ├── role.service.ts
│   │   │   │   │   ├── user.service.ts
│   │   │   │   │   ├── workspace-user.service.ts
│   │   │   │   │   └── workspace.service.ts
│   │   │   │   ├── sso/
│   │   │   │   │   ├── Auth0SSO.ts
│   │   │   │   │   ├── AzureSSO.ts
│   │   │   │   │   ├── GithubSSO.ts
│   │   │   │   │   ├── GoogleSSO.ts
│   │   │   │   │   └── SSOBase.ts
│   │   │   │   └── utils/
│   │   │   │       ├── ControllerServiceUtils.ts
│   │   │   │       ├── authSecrets.ts
│   │   │   │       ├── encryption.util.ts
│   │   │   │       ├── sendEmail.ts
│   │   │   │       ├── tempTokenUtils.ts
│   │   │   │       ├── url.util.test.ts
│   │   │   │       ├── url.util.ts
│   │   │   │       └── validation.util.ts
│   │   │   ├── errors/
│   │   │   │   ├── internalFlowiseError/
│   │   │   │   │   └── index.ts
│   │   │   │   └── utils.ts
│   │   │   ├── index.ts
│   │   │   ├── metrics/
│   │   │   │   ├── OpenTelemetry.ts
│   │   │   │   └── Prometheus.ts
│   │   │   ├── middlewares/
│   │   │   │   └── errors/
│   │   │   │       └── index.ts
│   │   │   ├── queue/
│   │   │   │   ├── BaseQueue.ts
│   │   │   │   ├── PredictionQueue.ts
│   │   │   │   ├── QueueManager.ts
│   │   │   │   ├── RedisEventPublisher.ts
│   │   │   │   ├── RedisEventSubscriber.ts
│   │   │   │   └── UpsertQueue.ts
│   │   │   ├── routes/
│   │   │   │   ├── agentflowv2-generator/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── apikey/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── assistants/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── attachments/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── chat-messages/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── chatflows/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── chatflows-streaming/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── chatflows-uploads/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── components-credentials/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── components-credentials-icon/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── credentials/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── dataset/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── documentstore/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── evaluations/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── evaluator/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── executions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── export-import/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── feedback/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── fetch-links/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── files/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── flow-config/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── get-upload-file/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── internal-chat-messages/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── internal-predictions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── leads/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── load-prompts/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── log/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── marketplaces/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── node-configs/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── node-custom-functions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── node-icons/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── node-load-methods/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── nodes/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── nvidia-nim/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── oauth2/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── templates.ts
│   │   │   │   ├── openai-assistants/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── openai-assistants-files/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── openai-assistants-vector-store/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── openai-realtime/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── ping/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── predictions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── pricing/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── prompts-lists/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── public-chatbots/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── public-chatflows/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── public-executions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── settings/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── stats/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── text-to-speech/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── tools/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── upsert-history/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── validation/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── variables/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── vectors/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── verify/
│   │   │   │   │   └── index.ts
│   │   │   │   └── versions/
│   │   │   │       └── index.ts
│   │   │   ├── services/
│   │   │   │   ├── agentflowv2-generator/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── prompt.ts
│   │   │   │   ├── apikey/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── assistants/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── attachments/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── chat-messages/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── chatflows/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── components-credentials/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── credentials/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── dataset/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── documentstore/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── evaluations/
│   │   │   │   │   ├── CostCalculator.ts
│   │   │   │   │   ├── EvaluatorRunner.ts
│   │   │   │   │   ├── LLMEvaluationRunner.ts
│   │   │   │   │   └── index.ts
│   │   │   │   ├── evaluator/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── executions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── export-import/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── feedback/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── validation.ts
│   │   │   │   ├── fetch-links/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── flow-configs/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── leads/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── load-prompts/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── log/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── marketplaces/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── node-configs/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── nodes/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── openai-assistants/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── openai-assistants-vector-store/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── openai-realtime/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── predictions/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── prompts-lists/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── settings/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── stats/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── text-to-speech/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── tools/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── upsert-history/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── validation/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── variables/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── vectors/
│   │   │   │   │   └── index.ts
│   │   │   │   └── versions/
│   │   │   │       └── index.ts
│   │   │   └── utils/
│   │   │       ├── SSEStreamer.ts
│   │   │       ├── XSS.ts
│   │   │       ├── addChatMesage.ts
│   │   │       ├── addChatMessageFeedback.ts
│   │   │       ├── addChatflowsCount.ts
│   │   │       ├── apiKey.test.ts
│   │   │       ├── apiKey.ts
│   │   │       ├── buildAgentGraph.ts
│   │   │       ├── buildAgentflow.ts
│   │   │       ├── buildChatflow.ts
│   │   │       ├── config.ts
│   │   │       ├── constants.ts
│   │   │       ├── createAttachment.ts
│   │   │       ├── database.util.ts
│   │   │       ├── domainValidation.ts
│   │   │       ├── executeCustomNodeFunction.ts
│   │   │       ├── fileRepository.ts
│   │   │       ├── fileValidation.ts
│   │   │       ├── getChatMessage.ts
│   │   │       ├── getChatMessageFeedback.ts
│   │   │       ├── getRunningExpressApp.ts
│   │   │       ├── getUploadsConfig.ts
│   │   │       ├── hub.ts
│   │   │       ├── index.ts
│   │   │       ├── logger.ts
│   │   │       ├── pagination.ts
│   │   │       ├── prompt.ts
│   │   │       ├── quotaUsage.ts
│   │   │       ├── rateLimit.ts
│   │   │       ├── sanitize.util.ts
│   │   │       ├── sanitizeFlowData.test.ts
│   │   │       ├── sanitizeFlowData.ts
│   │   │       ├── telemetry.ts
│   │   │       ├── typeormDataSource.ts
│   │   │       ├── updateChatMessageFeedback.ts
│   │   │       ├── upsertVector.ts
│   │   │       └── validateKey.ts
│   │   └── tsconfig.json
│   └── ui/
│       ├── .npmignore
│       ├── README-ZH.md
│       ├── README.md
│       ├── craco.config.js
│       ├── index.html
│       ├── jsconfig.json
│       ├── package.json
│       ├── public/
│       │   ├── index.html
│       │   └── manifest.json
│       ├── src/
│       │   ├── App.jsx
│       │   ├── ErrorBoundary.jsx
│       │   ├── api/
│       │   │   ├── account.api.js
│       │   │   ├── apikey.js
│       │   │   ├── assistants.js
│       │   │   ├── attachments.js
│       │   │   ├── audit.js
│       │   │   ├── auth.js
│       │   │   ├── chatflows.js
│       │   │   ├── chatmessage.js
│       │   │   ├── chatmessagefeedback.js
│       │   │   ├── client.js
│       │   │   ├── config.js
│       │   │   ├── credentials.js
│       │   │   ├── dataset.js
│       │   │   ├── documentstore.js
│       │   │   ├── evaluations.js
│       │   │   ├── evaluators.js
│       │   │   ├── executions.js
│       │   │   ├── exportimport.js
│       │   │   ├── feedback.js
│       │   │   ├── files.js
│       │   │   ├── lead.js
│       │   │   ├── log.js
│       │   │   ├── loginmethod.js
│       │   │   ├── marketplaces.js
│       │   │   ├── nodes.js
│       │   │   ├── oauth2.js
│       │   │   ├── platformsettings.js
│       │   │   ├── prediction.js
│       │   │   ├── pricing.js
│       │   │   ├── prompt.js
│       │   │   ├── role.js
│       │   │   ├── scraper.js
│       │   │   ├── sso.js
│       │   │   ├── tools.js
│       │   │   ├── tts.js
│       │   │   ├── user.js
│       │   │   ├── validation.js
│       │   │   ├── variables.js
│       │   │   ├── vectorstore.js
│       │   │   └── workspace.js
│       │   ├── assets/
│       │   │   └── scss/
│       │   │       ├── _themes-vars.module.scss
│       │   │       └── style.scss
│       │   ├── config.js
│       │   ├── hooks/
│       │   │   ├── useApi.jsx
│       │   │   ├── useAuth.jsx
│       │   │   ├── useConfirm.jsx
│       │   │   ├── useScriptRef.jsx
│       │   │   └── useSearchShortcut.jsx
│       │   ├── index.jsx
│       │   ├── layout/
│       │   │   ├── AuthLayout/
│       │   │   │   └── index.jsx
│       │   │   ├── MainLayout/
│       │   │   │   ├── Header/
│       │   │   │   │   ├── OrgWorkspaceBreadcrumbs/
│       │   │   │   │   │   └── index.jsx
│       │   │   │   │   ├── ProfileSection/
│       │   │   │   │   │   ├── index.css
│       │   │   │   │   │   └── index.jsx
│       │   │   │   │   ├── WorkspaceSwitcher/
│       │   │   │   │   │   └── index.jsx
│       │   │   │   │   └── index.jsx
│       │   │   │   ├── LogoSection/
│       │   │   │   │   └── index.jsx
│       │   │   │   ├── Sidebar/
│       │   │   │   │   ├── CloudMenuList.jsx
│       │   │   │   │   ├── MenuList/
│       │   │   │   │   │   ├── NavCollapse/
│       │   │   │   │   │   │   └── index.jsx
│       │   │   │   │   │   ├── NavGroup/
│       │   │   │   │   │   │   └── index.jsx
│       │   │   │   │   │   ├── NavItem/
│       │   │   │   │   │   │   └── index.jsx
│       │   │   │   │   │   └── index.jsx
│       │   │   │   │   ├── TrialInfo.jsx
│       │   │   │   │   └── index.jsx
│       │   │   │   ├── ViewHeader.jsx
│       │   │   │   └── index.jsx
│       │   │   ├── MinimalLayout/
│       │   │   │   └── index.jsx
│       │   │   ├── NavMotion.jsx
│       │   │   └── NavigationScroll.jsx
│       │   ├── menu-items/
│       │   │   ├── agentsettings.js
│       │   │   ├── customassistant.js
│       │   │   ├── dashboard.js
│       │   │   ├── index.js
│       │   │   └── settings.js
│       │   ├── routes/
│       │   │   ├── AuthRoutes.jsx
│       │   │   ├── CanvasRoutes.jsx
│       │   │   ├── ChatbotRoutes.jsx
│       │   │   ├── DefaultRedirect.jsx
│       │   │   ├── ExecutionRoutes.jsx
│       │   │   ├── MainRoutes.jsx
│       │   │   ├── RequireAuth.jsx
│       │   │   └── index.jsx
│       │   ├── serviceWorker.js
│       │   ├── store/
│       │   │   ├── actions.js
│       │   │   ├── constant.js
│       │   │   ├── context/
│       │   │   │   ├── ConfigContext.jsx
│       │   │   │   ├── ConfirmContext.jsx
│       │   │   │   ├── ConfirmContextProvider.jsx
│       │   │   │   ├── ErrorContext.jsx
│       │   │   │   └── ReactFlowContext.jsx
│       │   │   ├── index.jsx
│       │   │   ├── reducer.jsx
│       │   │   └── reducers/
│       │   │       ├── authSlice.js
│       │   │       ├── canvasReducer.js
│       │   │       ├── customizationReducer.js
│       │   │       ├── dialogReducer.js
│       │   │       └── notifierReducer.js
│       │   ├── themes/
│       │   │   ├── compStyleOverride.js
│       │   │   ├── index.js
│       │   │   ├── palette.js
│       │   │   └── typography.js
│       │   ├── ui-component/
│       │   │   ├── array/
│       │   │   │   └── ArrayRenderer.jsx
│       │   │   ├── button/
│       │   │   │   ├── AnimateButton.jsx
│       │   │   │   ├── CopyToClipboardButton.jsx
│       │   │   │   ├── FlowListMenu.jsx
│       │   │   │   ├── ImageButton.js
│       │   │   │   ├── RBACButtons.jsx
│       │   │   │   ├── StyledButton.jsx
│       │   │   │   ├── StyledFab.jsx
│       │   │   │   ├── ThumbsDownButton.jsx
│       │   │   │   └── ThumbsUpButton.jsx
│       │   │   ├── cards/
│       │   │   │   ├── DocumentStoreCard.jsx
│       │   │   │   ├── FollowUpPromptsCard.jsx
│       │   │   │   ├── ItemCard.jsx
│       │   │   │   ├── MainCard.jsx
│       │   │   │   ├── NodeCardWrapper.jsx
│       │   │   │   ├── Skeleton/
│       │   │   │   │   └── ChatflowCard.jsx
│       │   │   │   ├── StarterPromptsCard.css
│       │   │   │   ├── StarterPromptsCard.jsx
│       │   │   │   └── StatsCard.jsx
│       │   │   ├── checkbox/
│       │   │   │   └── Checkbox.jsx
│       │   │   ├── dialog/
│       │   │   │   ├── AboutDialog.jsx
│       │   │   │   ├── AdditionalParamsDialog.jsx
│       │   │   │   ├── AgentflowGeneratorDialog.jsx
│       │   │   │   ├── AllowedDomainsDialog.jsx
│       │   │   │   ├── ChatFeedbackContentDialog.jsx
│       │   │   │   ├── ChatFeedbackDialog.jsx
│       │   │   │   ├── ChatflowConfigurationDialog.jsx
│       │   │   │   ├── ConditionDialog.jsx
│       │   │   │   ├── ConfirmDialog.jsx
│       │   │   │   ├── ExpandRichInputDialog.jsx
│       │   │   │   ├── ExpandTextDialog.css
│       │   │   │   ├── ExpandTextDialog.jsx
│       │   │   │   ├── ExportAsTemplateDialog.jsx
│       │   │   │   ├── FormatPromptValuesDialog.jsx
│       │   │   │   ├── InputHintDialog.jsx
│       │   │   │   ├── InviteUsersDialog.jsx
│       │   │   │   ├── ManageScrapedLinksDialog.jsx
│       │   │   │   ├── NodeInfoDialog.jsx
│       │   │   │   ├── NvidiaNIMDialog.jsx
│       │   │   │   ├── PromptGeneratorDialog.jsx
│       │   │   │   ├── PromptLangsmithHubDialog.jsx
│       │   │   │   ├── SaveChatflowDialog.jsx
│       │   │   │   ├── ShareWithWorkspaceDialog.jsx
│       │   │   │   ├── SourceDocDialog.jsx
│       │   │   │   ├── SpeechToTextDialog.jsx
│       │   │   │   ├── StarterPromptsDialog.jsx
│       │   │   │   ├── TagDialog.jsx
│       │   │   │   ├── ViewLeadsDialog.jsx
│       │   │   │   └── ViewMessagesDialog.jsx
│       │   │   ├── dropdown/
│       │   │   │   ├── AsyncDropdown.jsx
│       │   │   │   ├── Dropdown.jsx
│       │   │   │   └── MultiDropdown.jsx
│       │   │   ├── editor/
│       │   │   │   └── CodeEditor.jsx
│       │   │   ├── extended/
│       │   │   │   ├── AllowedDomains.jsx
│       │   │   │   ├── AnalyseFlow.jsx
│       │   │   │   ├── AudioWaveform.jsx
│       │   │   │   ├── Avatar.jsx
│       │   │   │   ├── Breadcrumbs.jsx
│       │   │   │   ├── ChatFeedback.jsx
│       │   │   │   ├── Feedback.jsx
│       │   │   │   ├── FileUpload.jsx
│       │   │   │   ├── FollowUpPrompts.jsx
│       │   │   │   ├── Leads.jsx
│       │   │   │   ├── Logo.jsx
│       │   │   │   ├── OverrideConfig.jsx
│       │   │   │   ├── PostProcessing.jsx
│       │   │   │   ├── RateLimit.jsx
│       │   │   │   ├── Security.jsx
│       │   │   │   ├── SpeechToText.jsx
│       │   │   │   ├── StarterPrompts.jsx
│       │   │   │   ├── TextToSpeech.jsx
│       │   │   │   └── Transitions.jsx
│       │   │   ├── file/
│       │   │   │   └── File.jsx
│       │   │   ├── form/
│       │   │   │   └── settings.jsx
│       │   │   ├── grid/
│       │   │   │   ├── DataGrid.jsx
│       │   │   │   └── Grid.jsx
│       │   │   ├── input/
│       │   │   │   ├── Input.jsx
│       │   │   │   ├── RichInput.jsx
│       │   │   │   ├── SuggestionList.jsx
│       │   │   │   └── suggestionOption.js
│       │   │   ├── json/
│       │   │   │   ├── JsonEditor.jsx
│       │   │   │   ├── JsonViewer.jsx
│       │   │   │   └── SelectVariable.jsx
│       │   │   ├── loading/
│       │   │   │   ├── BackdropLoader.jsx
│       │   │   │   ├── Loadable.jsx
│       │   │   │   └── Loader.jsx
│       │   │   ├── markdown/
│       │   │   │   ├── CodeBlock.jsx
│       │   │   │   ├── Markdown.css
│       │   │   │   └── MemoizedReactMarkdown.jsx
│       │   │   ├── pagination/
│       │   │   │   └── TablePagination.jsx
│       │   │   ├── rbac/
│       │   │   │   └── available.jsx
│       │   │   ├── safe/
│       │   │   │   └── SafeHTML.jsx
│       │   │   ├── slider/
│       │   │   │   └── InputSlider.jsx
│       │   │   ├── subscription/
│       │   │   │   └── PricingDialog.jsx
│       │   │   ├── switch/
│       │   │   │   └── Switch.jsx
│       │   │   ├── table/
│       │   │   │   ├── DocumentStoreTable.jsx
│       │   │   │   ├── ExecutionsListTable.jsx
│       │   │   │   ├── FilesTable.jsx
│       │   │   │   ├── FlowListTable.jsx
│       │   │   │   ├── MarketplaceTable.jsx
│       │   │   │   ├── Table.jsx
│       │   │   │   ├── TableStyles.jsx
│       │   │   │   └── ToolsListTable.jsx
│       │   │   ├── tabs/
│       │   │   │   ├── Tab.jsx
│       │   │   │   ├── TabPanel.jsx
│       │   │   │   ├── TabsList.jsx
│       │   │   │   └── tabColors.js
│       │   │   ├── toolbar/
│       │   │   │   └── Toolbar.js
│       │   │   └── tooltip/
│       │   │       ├── MoreItemsTooltip.jsx
│       │   │       ├── NodeTooltip.jsx
│       │   │       └── TooltipWithParser.jsx
│       │   ├── utils/
│       │   │   ├── authUtils.js
│       │   │   ├── customMention.js
│       │   │   ├── errorHandler.js
│       │   │   ├── exportImport.js
│       │   │   ├── genericHelper.js
│       │   │   ├── useNotifier.js
│       │   │   ├── usePrompt.js
│       │   │   └── validation.js
│       │   └── views/
│       │       ├── account/
│       │       │   └── index.jsx
│       │       ├── agentexecutions/
│       │       │   ├── ExecutionDetails.jsx
│       │       │   ├── NodeExecutionDetails.jsx
│       │       │   ├── PublicExecutionDetails.jsx
│       │       │   ├── ShareExecutionDialog.jsx
│       │       │   └── index.jsx
│       │       ├── agentflows/
│       │       │   └── index.jsx
│       │       ├── agentflowsv2/
│       │       │   ├── AgentFlowEdge.jsx
│       │       │   ├── AgentFlowNode.jsx
│       │       │   ├── Canvas.jsx
│       │       │   ├── ConfigInput.jsx
│       │       │   ├── ConnectionLine.jsx
│       │       │   ├── EditNodeDialog.jsx
│       │       │   ├── IterationNode.jsx
│       │       │   ├── MarketplaceCanvas.jsx
│       │       │   ├── StickyNote.jsx
│       │       │   └── index.css
│       │       ├── apikey/
│       │       │   ├── APIKeyDialog.css
│       │       │   ├── APIKeyDialog.jsx
│       │       │   └── index.jsx
│       │       ├── assistants/
│       │       │   ├── custom/
│       │       │   │   ├── AddCustomAssistantDialog.jsx
│       │       │   │   ├── CustomAssistantConfigurePreview.jsx
│       │       │   │   ├── CustomAssistantLayout.jsx
│       │       │   │   └── toolAgentFlow.js
│       │       │   ├── index.jsx
│       │       │   └── openai/
│       │       │       ├── AssistantDialog.jsx
│       │       │       ├── AssistantVectorStoreDialog.jsx
│       │       │       ├── DeleteConfirmDialog.jsx
│       │       │       ├── LoadAssistantDialog.jsx
│       │       │       └── OpenAIAssistantLayout.jsx
│       │       ├── auth/
│       │       │   ├── expired.jsx
│       │       │   ├── forgotPassword.jsx
│       │       │   ├── login.jsx
│       │       │   ├── loginActivity.jsx
│       │       │   ├── rateLimited.jsx
│       │       │   ├── register.jsx
│       │       │   ├── resetPassword.jsx
│       │       │   ├── signIn.jsx
│       │       │   ├── ssoConfig.jsx
│       │       │   ├── ssoSuccess.jsx
│       │       │   ├── unauthorized.jsx
│       │       │   └── verify-email.jsx
│       │       ├── canvas/
│       │       │   ├── AddNodes.jsx
│       │       │   ├── ButtonEdge.jsx
│       │       │   ├── CanvasHeader.jsx
│       │       │   ├── CanvasNode.jsx
│       │       │   ├── CredentialInputHandler.jsx
│       │       │   ├── NodeInputHandler.jsx
│       │       │   ├── NodeOutputHandler.jsx
│       │       │   ├── StickyNote.jsx
│       │       │   ├── index.css
│       │       │   └── index.jsx
│       │       ├── chatbot/
│       │       │   └── index.jsx
│       │       ├── chatflows/
│       │       │   ├── APICodeDialog.jsx
│       │       │   ├── EmbedChat.jsx
│       │       │   ├── ShareChatbot.jsx
│       │       │   └── index.jsx
│       │       ├── chatmessage/
│       │       │   ├── AgentExecutedDataCard.jsx
│       │       │   ├── AgentReasoningCard.jsx
│       │       │   ├── ChatExpandDialog.jsx
│       │       │   ├── ChatInputHistory.js
│       │       │   ├── ChatMessage.css
│       │       │   ├── ChatMessage.jsx
│       │       │   ├── ChatPopUp.jsx
│       │       │   ├── ThinkingCard.jsx
│       │       │   ├── ValidationPopUp.jsx
│       │       │   ├── audio-recording.css
│       │       │   └── audio-recording.js
│       │       ├── credentials/
│       │       │   ├── AddEditCredentialDialog.jsx
│       │       │   ├── CredentialInputHandler.jsx
│       │       │   ├── CredentialListDialog.jsx
│       │       │   └── index.jsx
│       │       ├── datasets/
│       │       │   ├── AddEditDatasetDialog.jsx
│       │       │   ├── AddEditDatasetRowDialog.jsx
│       │       │   ├── DatasetItems.jsx
│       │       │   ├── UploadCSVFileDialog.jsx
│       │       │   └── index.jsx
│       │       ├── docstore/
│       │       │   ├── AddDocStoreDialog.jsx
│       │       │   ├── ComponentsListDialog.jsx
│       │       │   ├── DeleteDocStoreDialog.jsx
│       │       │   ├── DocStoreAPIDialog.jsx
│       │       │   ├── DocStoreInputHandler.jsx
│       │       │   ├── DocumentLoaderListDialog.jsx
│       │       │   ├── DocumentStoreDetail.jsx
│       │       │   ├── DocumentStoreStatus.jsx
│       │       │   ├── ExpandedChunkDialog.jsx
│       │       │   ├── LoaderConfigPreviewChunks.jsx
│       │       │   ├── ShowStoredChunks.jsx
│       │       │   ├── UpsertHistoryDetailsDialog.jsx
│       │       │   ├── UpsertHistorySideDrawer.jsx
│       │       │   ├── VectorStoreConfigure.jsx
│       │       │   ├── VectorStoreQuery.jsx
│       │       │   └── index.jsx
│       │       ├── evaluations/
│       │       │   ├── ChartLatency.jsx
│       │       │   ├── ChartPassPrnt.jsx
│       │       │   ├── ChartTokens.jsx
│       │       │   ├── CreateEvaluationDialog.jsx
│       │       │   ├── EvalsResultDialog.jsx
│       │       │   ├── EvaluationResult.jsx
│       │       │   ├── EvaluationResultSideDrawer.jsx
│       │       │   ├── EvaluationResultVersionsSideDrawer.jsx
│       │       │   ├── MetricsItemCard.jsx
│       │       │   └── index.jsx
│       │       ├── evaluators/
│       │       │   ├── AddEditEvaluatorDialog.jsx
│       │       │   ├── SamplePromptDialog.jsx
│       │       │   ├── evaluationPrompts.js
│       │       │   ├── evaluatorConstant.js
│       │       │   └── index.jsx
│       │       ├── files/
│       │       │   └── index.jsx
│       │       ├── marketplaces/
│       │       │   ├── MarketplaceCanvas.jsx
│       │       │   ├── MarketplaceCanvasHeader.jsx
│       │       │   ├── MarketplaceCanvasNode.jsx
│       │       │   └── index.jsx
│       │       ├── organization/
│       │       │   └── index.jsx
│       │       ├── roles/
│       │       │   ├── CreateEditRoleDialog.css
│       │       │   ├── CreateEditRoleDialog.jsx
│       │       │   └── index.jsx
│       │       ├── serverlogs/
│       │       │   └── index.jsx
│       │       ├── settings/
│       │       │   └── index.jsx
│       │       ├── tools/
│       │       │   ├── HowToUseFunctionDialog.jsx
│       │       │   ├── PasteJSONDialog.jsx
│       │       │   ├── ToolDialog.jsx
│       │       │   └── index.jsx
│       │       ├── users/
│       │       │   ├── EditUserDialog.jsx
│       │       │   └── index.jsx
│       │       ├── variables/
│       │       │   ├── AddEditVariableDialog.jsx
│       │       │   ├── HowToUseVariablesDialog.jsx
│       │       │   └── index.jsx
│       │       ├── vectorstore/
│       │       │   ├── UpsertHistoryDialog.jsx
│       │       │   ├── UpsertResultDialog.jsx
│       │       │   ├── VectorStoreDialog.jsx
│       │       │   └── VectorStorePopUp.jsx
│       │       └── workspace/
│       │           ├── AddEditWorkspaceDialog.jsx
│       │           ├── EditWorkspaceUserRoleDialog.jsx
│       │           ├── WorkspaceUsers.jsx
│       │           └── index.jsx
│       └── vite.config.js
├── pnpm-workspace.yaml
└── turbo.json
Download .txt
Showing preview only (494K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (4913 symbols across 1027 files)

FILE: packages/agentflow/examples/src/App.tsx
  type ExampleId (line 87) | type ExampleId = (typeof examples)[number]['id']
  function isExampleId (line 88) | function isExampleId(id: string): id is ExampleId {
  function LoadingFallback (line 92) | function LoadingFallback() {
  function App (line 109) | function App() {

FILE: packages/agentflow/examples/src/FlowStatePanel.tsx
  type FlowStatePanelTab (line 12) | type FlowStatePanelTab = 'live' | 'saved'
  type FlowStatePanelProps (line 14) | interface FlowStatePanelProps {
  function FlowStatePanel (line 20) | function FlowStatePanel({ currentFlow, savedFlow, changeCount }: FlowSta...

FILE: packages/agentflow/examples/src/PropsDisplay.tsx
  type PropsDisplayProps (line 7) | interface PropsDisplayProps {
  function PropsDisplay (line 15) | function PropsDisplay({ exampleName, props, exampleId, showProps, onTogg...

FILE: packages/agentflow/examples/src/demos/AllNodeTypesExample.tsx
  function AllNodeTypesExample (line 217) | function AllNodeTypesExample() {

FILE: packages/agentflow/examples/src/demos/BasicExample.tsx
  function BasicExample (line 60) | function BasicExample() {

FILE: packages/agentflow/examples/src/demos/CustomNodeExample.tsx
  type VisibilityTab (line 198) | type VisibilityTab = 'values' | 'stripped' | 'visibility'
  function VisibilityStatePanel (line 200) | function VisibilityStatePanel({ inputValues }: { inputValues: Record<str...
  function CustomNodeExample (line 279) | function CustomNodeExample() {

FILE: packages/agentflow/examples/src/demos/CustomUIExample.tsx
  function CustomHeader (line 36) | function CustomHeader({ flowName, isDirty, onSave, onExport, onValidate ...
  function CustomPalette (line 122) | function CustomPalette({ availableNodes, onAddNode }: PaletteRenderProps) {
  function CustomUIExample (line 251) | function CustomUIExample() {

FILE: packages/agentflow/examples/src/demos/DarkModeExample.tsx
  function DarkModeExample (line 86) | function DarkModeExample() {

FILE: packages/agentflow/examples/src/demos/FilteredComponentsExample.tsx
  type PresetKey (line 64) | type PresetKey = keyof typeof presets
  function FilteredComponentsExample (line 66) | function FilteredComponentsExample() {

FILE: packages/agentflow/examples/src/demos/MultiNodeFlow.tsx
  function MultiNodeFlow (line 147) | function MultiNodeFlow() {

FILE: packages/agentflow/examples/src/demos/StatusIndicatorsExample.tsx
  function StatusIndicatorsExample (line 142) | function StatusIndicatorsExample() {

FILE: packages/agentflow/examples/src/vite-env.d.ts
  type ImportMetaEnv (line 3) | interface ImportMetaEnv {
  type ImportMeta (line 8) | interface ImportMeta {

FILE: packages/agentflow/src/Agentflow.tsx
  function AgentflowCanvas (line 34) | function AgentflowCanvas({

FILE: packages/agentflow/src/AgentflowProvider.tsx
  type AgentflowProviderProps (line 10) | interface AgentflowProviderProps {
  function AgentflowProvider (line 36) | function AgentflowProvider({

FILE: packages/agentflow/src/__test_utils__/jest-environment-jsdom.js
  method constructor (line 35) | constructor() {

FILE: packages/agentflow/src/atoms/ArrayInput.tsx
  type ArrayInputProps (line 12) | interface ArrayInputProps {
  function ArrayInput (line 27) | function ArrayInput({

FILE: packages/agentflow/src/atoms/CodeInput.tsx
  type CodeInputProps (line 12) | interface CodeInputProps {
  function CodeInput (line 26) | function CodeInput({ value, onChange, language = 'javascript', disabled ...

FILE: packages/agentflow/src/atoms/ConditionBuilder.tsx
  type ConditionBuilderProps (line 12) | interface ConditionBuilderProps {
  function ConditionBuilder (line 25) | function ConditionBuilder({

FILE: packages/agentflow/src/atoms/ExpandTextDialog.tsx
  type ExpandTextDialogProps (line 8) | interface ExpandTextDialogProps {
  function ExpandTextDialog (line 26) | function ExpandTextDialog({

FILE: packages/agentflow/src/atoms/JsonInput.tsx
  type JsonInputProps (line 10) | interface JsonInputProps {
  constant JSON_STYLE (line 18) | const JSON_STYLE = { padding: 10, borderRadius: 10, marginTop: 8 }
  function safeParse (line 20) | function safeParse(str: string): object {
  function JsonInput (line 37) | function JsonInput({ value, onChange, disabled = false, variableItems }:...

FILE: packages/agentflow/src/atoms/MainCard.tsx
  type MainCardProps (line 9) | interface MainCardProps {

FILE: packages/agentflow/src/atoms/MessagesInput.tsx
  constant MESSAGE_ROLES (line 13) | const MESSAGE_ROLES = [
  type MessageRole (line 20) | type MessageRole = (typeof MESSAGE_ROLES)[number]['value']
  type MessageEntry (line 22) | interface MessageEntry {
  type MessagesInputProps (line 27) | interface MessagesInputProps {
  function MessagesInput (line 39) | function MessagesInput({ inputParam, data, disabled = false, onDataChang...

FILE: packages/agentflow/src/atoms/NodeInputHandler.tsx
  type AsyncInputProps (line 43) | interface AsyncInputProps {
  type ConfigInputComponentProps (line 53) | interface ConfigInputComponentProps {
  type NodeInputHandlerProps (line 67) | interface NodeInputHandlerProps {
  function NodeInputHandler (line 100) | function NodeInputHandler({

FILE: packages/agentflow/src/atoms/RichTextEditor.lazy.tsx
  function RichTextEditor (line 13) | function RichTextEditor(props: RichTextEditorProps) {

FILE: packages/agentflow/src/atoms/RichTextEditor.tsx
  type RichTextEditorProps (line 25) | interface RichTextEditorProps {
  method addOptions (line 44) | addOptions() {
  function RichTextEditor (line 149) | function RichTextEditor({ value, onChange, placeholder, disabled = false...

FILE: packages/agentflow/src/atoms/ScenariosInput.tsx
  type ScenariosInputProps (line 12) | interface ScenariosInputProps {
  function ScenariosInput (line 25) | function ScenariosInput({ inputParam, data, disabled = false, onDataChan...

FILE: packages/agentflow/src/atoms/SelectVariable.tsx
  type VariableItem (line 4) | interface VariableItem {
  type SelectVariableProps (line 11) | interface SelectVariableProps {
  constant CATEGORY_STYLE (line 18) | const CATEGORY_STYLE: Record<string, { icon: React.ElementType; color: s...
  constant DEFAULT_STYLE (line 24) | const DEFAULT_STYLE = { icon: IconPaperclip, color: '#90A4AE' }
  function SelectVariable (line 33) | function SelectVariable({ items, disabled = false, onSelect }: SelectVar...

FILE: packages/agentflow/src/atoms/StructuredOutputBuilder.tsx
  constant OUTPUT_TYPES (line 13) | const OUTPUT_TYPES = [
  type OutputType (line 22) | type OutputType = (typeof OUTPUT_TYPES)[number]['value']
  type StructuredOutputEntry (line 24) | interface StructuredOutputEntry {
  type StructuredOutputBuilderProps (line 32) | interface StructuredOutputBuilderProps {
  function StructuredOutputBuilder (line 44) | function StructuredOutputBuilder({ inputParam, data, disabled = false, o...

FILE: packages/agentflow/src/atoms/useStableKeys.ts
  function useStableKeys (line 18) | function useStableKeys(length: number, prefix: string): { keys: string[]...

FILE: packages/agentflow/src/core/node-catalog/nodeFilters.ts
  function filterNodesByComponents (line 10) | function filterNodesByComponents(allNodes: NodeData[], allowedComponents...
  function isAgentflowNode (line 26) | function isAgentflowNode(nodeName: string): boolean {
  function groupNodesByCategory (line 33) | function groupNodesByCategory(nodes: NodeData[]): Record<string, NodeDat...

FILE: packages/agentflow/src/core/node-config/nodeIconUtils.ts
  function getAgentflowIcon (line 6) | function getAgentflowIcon(name: string): AgentflowIcon | undefined {
  function getNodeColor (line 13) | function getNodeColor(name: string): string {

FILE: packages/agentflow/src/core/node-config/nodeIcons.ts
  type IconComponent (line 25) | type IconComponent = ComponentType<any>
  type AgentflowIcon (line 27) | interface AgentflowIcon {
  constant AGENTFLOW_ICONS (line 33) | const AGENTFLOW_ICONS: AgentflowIcon[] = [
  constant DEFAULT_AGENTFLOW_NODES (line 114) | const DEFAULT_AGENTFLOW_NODES = [

FILE: packages/agentflow/src/core/theme/createAgentflowTheme.ts
  function createAgentflowTheme (line 14) | function createAgentflowTheme(isDarkMode: boolean): Theme {

FILE: packages/agentflow/src/core/theme/cssVariables.ts
  function generateCSSVariables (line 10) | function generateCSSVariables(isDarkMode: boolean): string {

FILE: packages/agentflow/src/core/theme/tokens.ts
  type Tokens (line 196) | type Tokens = typeof tokens

FILE: packages/agentflow/src/core/theme/types.ts
  type Palette (line 11) | interface Palette {
  type PaletteOptions (line 17) | interface PaletteOptions {

FILE: packages/agentflow/src/core/types/agentflow.ts
  type HeaderRenderProps (line 17) | interface HeaderRenderProps {
  type PaletteRenderProps (line 25) | interface PaletteRenderProps {
  type AgentflowProps (line 34) | interface AgentflowProps {
  type AgentFlowInstance (line 92) | interface AgentFlowInstance {

FILE: packages/agentflow/src/core/types/api.ts
  type RequestInterceptor (line 7) | type RequestInterceptor = (config: InternalAxiosRequestConfig) => Intern...
  type Chatflow (line 9) | interface Chatflow {
  type ApiResponse (line 22) | interface ApiResponse<T> {
  type NodeOption (line 27) | interface NodeOption {
  type ChatModel (line 34) | type ChatModel = NodeOption
  type Tool (line 36) | type Tool = NodeOption
  type Credential (line 38) | interface Credential {

FILE: packages/agentflow/src/core/types/context.ts
  type ConfigContextValue (line 10) | interface ConfigContextValue {
  type EditDialogProps (line 17) | interface EditDialogProps {
  type AgentflowState (line 23) | interface AgentflowState {
  type AgentflowAction (line 33) | type AgentflowAction =

FILE: packages/agentflow/src/core/types/flow.ts
  type Viewport (line 7) | interface Viewport {
  type FlowNode (line 13) | interface FlowNode {
  type FlowEdge (line 26) | interface FlowEdge {
  type FlowData (line 38) | interface FlowData {
  type FlowDataCallback (line 45) | type FlowDataCallback = (flow: FlowData) => void
  type FlowConfig (line 47) | interface FlowConfig {

FILE: packages/agentflow/src/core/types/node.ts
  type NodeData (line 5) | interface NodeData {
  type NodeInput (line 33) | interface NodeInput {
  type NodeOutput (line 40) | interface NodeOutput {
  type InputAnchor (line 46) | interface InputAnchor {
  type OutputAnchor (line 55) | interface OutputAnchor {
  type InputParam (line 63) | interface InputParam {
  type EdgeData (line 89) | interface EdgeData {

FILE: packages/agentflow/src/core/types/validation.ts
  type ValidationResult (line 5) | interface ValidationResult {
  type ValidationError (line 10) | interface ValidationError {

FILE: packages/agentflow/src/core/utils/dynamicOutputAnchors.ts
  function getOutputHandleId (line 4) | function getOutputHandleId(nodeId: string, index: number): string {
  function parseOutputHandleIndex (line 9) | function parseOutputHandleIndex(nodeId: string, handleId: string): number {
  function buildDynamicOutputAnchors (line 22) | function buildDynamicOutputAnchors(nodeId: string, count: number, labelP...

FILE: packages/agentflow/src/core/utils/fieldVisibility.ts
  constant REGEX_INTENT (line 7) | const REGEX_INTENT = /[|()^$*+?[\]]/
  constant MAX_REGEX_LENGTH (line 10) | const MAX_REGEX_LENGTH = 200
  function hasNestedQuantifier (line 17) | function hasNestedQuantifier(pattern: string): boolean {
  function safeRegexTest (line 50) | function safeRegexTest(pattern: string, value: string): boolean {
  function conditionMatches (line 67) | function conditionMatches(groundValue: unknown, comparisonValue: unknown...
  function resolveGroundValue (line 92) | function resolveGroundValue(inputValues: Record<string, unknown>, rawPat...
  function evaluateParamVisibility (line 108) | function evaluateParamVisibility(param: InputParam, inputValues: Record<...
  function evaluateFieldVisibility (line 134) | function evaluateFieldVisibility(params: InputParam[], inputValues: Reco...
  function stripHiddenFieldValues (line 144) | function stripHiddenFieldValues(

FILE: packages/agentflow/src/core/utils/flowExport.ts
  constant SENSITIVE_INPUT_TYPES (line 4) | const SENSITIVE_INPUT_TYPES = new Set(['password', 'file', 'folder'])
  function pickExportNodeData (line 14) | function pickExportNodeData(data: NodeData): NodeData {
  function generateExportFlowData (line 53) | function generateExportFlowData(flowData: { nodes: FlowNode[]; edges: Fl...

FILE: packages/agentflow/src/core/utils/nodeFactory.ts
  constant NODE_TYPE_MAP (line 9) | const NODE_TYPE_MAP: Record<string, string> = {
  function resolveNodeType (line 17) | function resolveNodeType(nodeDataType: string): string {
  function getUniqueNodeId (line 24) | function getUniqueNodeId(nodeData: NodeData, nodes: FlowNode[]): string {
  function getUniqueNodeLabel (line 39) | function getUniqueNodeLabel(nodeData: NodeData, nodes: FlowNode[]): stri...
  function initializeDefaultNodeData (line 58) | function initializeDefaultNodeData(nodeParams: Array<{ name: string; def...
  function createAgentFlowOutputs (line 71) | function createAgentFlowOutputs(nodeData: NodeData, newNodeId: string): ...
  function pickNodeData (line 100) | function pickNodeData(raw: NodeData): NodeData {
  function initNode (line 125) | function initNode(nodeData: NodeData, newNodeId: string, isAgentflow = t...

FILE: packages/agentflow/src/core/validation/connectionValidation.ts
  function isValidConnectionAgentflowV2 (line 6) | function isValidConnectionAgentflowV2(
  function wouldCreateCycle (line 29) | function wouldCreateCycle(sourceId: string, targetId: string, edges: Flo...

FILE: packages/agentflow/src/core/validation/constraintValidation.ts
  type ConstraintResult (line 3) | interface ConstraintResult {
  function checkSingleStartNode (line 11) | function checkSingleStartNode(nodes: FlowNode[], newNodeName: string): C...
  function checkNestedIteration (line 21) | function checkNestedIteration(newNodeName: string, parentNode: FlowNode ...
  function checkHumanInputInIteration (line 31) | function checkHumanInputInIteration(newNodeName: string, parentNode: Flo...
  function checkNodePlacementConstraints (line 42) | function checkNodePlacementConstraints(
  function findParentIterationNode (line 67) | function findParentIterationNode(nodes: FlowNode[], position: { x: numbe...

FILE: packages/agentflow/src/core/validation/flowValidation.ts
  function isEmptyValue (line 5) | function isEmptyValue(value: unknown): boolean {
  function validateFlow (line 12) | function validateFlow(nodes: FlowNode[], edges: FlowEdge[], availableNod...
  function detectCycle (line 88) | function detectCycle(nodes: FlowNode[], edges: FlowEdge[]): boolean {
  function detectHangingEdges (line 136) | function detectHangingEdges(nodes: FlowNode[], edges: FlowEdge[]): Valid...
  function validateNode (line 175) | function validateNode(node: FlowNode, availableNodes?: NodeData[]): Vali...
  function groupValidationErrorsByNodeId (line 273) | function groupValidationErrorsByNodeId(errors: ValidationError[]): Map<s...
  function applyValidationErrorsToNodes (line 290) | function applyValidationErrorsToNodes(nodes: FlowNode[], errors: Validat...

FILE: packages/agentflow/src/features/canvas/components/AgentflowHeader.tsx
  type AgentflowHeaderProps (line 3) | interface AgentflowHeaderProps extends HeaderRenderProps {
  function AgentflowHeader (line 10) | function AgentflowHeader({ flowName, isDirty, readOnly, onSave }: Agentf...
  function createHeaderProps (line 29) | function createHeaderProps(

FILE: packages/agentflow/src/features/canvas/components/ConnectionLine.tsx
  type EdgeLabelProps (line 8) | interface EdgeLabelProps {
  function EdgeLabel (line 15) | function EdgeLabel({ transform, isHumanInput, label, color }: EdgeLabelP...
  type ConnectionLineProps (line 36) | interface ConnectionLineProps {
  function ConnectionLineComponent (line 48) | function ConnectionLineComponent({ fromX, fromY, toX, toY, fromPosition,...

FILE: packages/agentflow/src/features/canvas/components/NodeIcon.tsx
  type NodeIconProps (line 7) | interface NodeIconProps {
  function NodeIconComponent (line 12) | function NodeIconComponent({ data, apiBaseUrl }: NodeIconProps) {

FILE: packages/agentflow/src/features/canvas/components/NodeInfoDialog.tsx
  type NodeInfoDialogProps (line 5) | interface NodeInfoDialogProps {
  function NodeInfoDialogComponent (line 17) | function NodeInfoDialogComponent({ open, onClose, label, name, nodeId, d...

FILE: packages/agentflow/src/features/canvas/components/NodeInputHandle.tsx
  type NodeInputHandleProps (line 4) | interface NodeInputHandleProps {
  constant HANDLE_WIDTH (line 11) | const HANDLE_WIDTH = 5
  constant HANDLE_HEIGHT (line 12) | const HANDLE_HEIGHT = 20
  constant HANDLE_OFFSET (line 13) | const HANDLE_OFFSET = -2
  function NodeInputHandleComponent (line 19) | function NodeInputHandleComponent({ nodeId, nodeColor, hidden }: NodeInp...

FILE: packages/agentflow/src/features/canvas/components/NodeModelConfigs.tsx
  type ModelConfig (line 7) | interface ModelConfig {
  type NodeModelConfigsProps (line 12) | interface NodeModelConfigsProps {
  function NodeModelConfigsComponent (line 19) | function NodeModelConfigsComponent({ inputs }: NodeModelConfigsProps) {

FILE: packages/agentflow/src/features/canvas/components/NodeOutputHandles.test.ts
  constant MIN_NODE_HEIGHT (line 4) | const MIN_NODE_HEIGHT = 60
  constant SPACING_PER_OUTPUT (line 5) | const SPACING_PER_OUTPUT = 20
  constant BASE_HEIGHT_OFFSET (line 6) | const BASE_HEIGHT_OFFSET = 40

FILE: packages/agentflow/src/features/canvas/components/NodeOutputHandles.tsx
  type NodeOutputHandlesProps (line 10) | interface NodeOutputHandlesProps {
  constant HANDLE_SIZE (line 19) | const HANDLE_SIZE = 20
  constant HANDLE_OFFSET (line 20) | const HANDLE_OFFSET = -10
  constant MIN_NODE_HEIGHT (line 21) | const MIN_NODE_HEIGHT = 60
  constant SPACING_PER_OUTPUT (line 22) | const SPACING_PER_OUTPUT = 20
  constant BASE_HEIGHT_OFFSET (line 23) | const BASE_HEIGHT_OFFSET = 40
  constant TRANSITION_DURATION (line 24) | const TRANSITION_DURATION = '0.2s'
  function getMinimumNodeHeight (line 29) | function getMinimumNodeHeight(outputCount: number): number {
  function NodeOutputHandlesComponent (line 37) | function NodeOutputHandlesComponent({ outputAnchors, nodeColor, isHovere...

FILE: packages/agentflow/src/features/canvas/components/NodeStatusIndicator.tsx
  type NodeStatus (line 9) | type NodeStatus = 'INPROGRESS' | 'FINISHED' | 'ERROR' | 'STOPPED' | 'TER...
  type NodeStatusIndicatorProps (line 11) | interface NodeStatusIndicatorProps {
  type NodeWarningIndicatorProps (line 16) | interface NodeWarningIndicatorProps {
  function NodeStatusIndicatorComponent (line 23) | function NodeStatusIndicatorComponent({ status, error }: NodeStatusIndic...
  function NodeWarningIndicatorComponent (line 85) | function NodeWarningIndicatorComponent({ message }: NodeWarningIndicator...

FILE: packages/agentflow/src/features/canvas/components/NodeToolbarActions.tsx
  type NodeToolbarActionsProps (line 13) | interface NodeToolbarActionsProps {
  function NodeToolbarActionsComponent (line 23) | function NodeToolbarActionsComponent({ nodeId, nodeName, isVisible, onIn...

FILE: packages/agentflow/src/features/canvas/components/ValidationFeedback.tsx
  type NodeValidationResult (line 17) | interface NodeValidationResult {
  type ValidationFeedbackProps (line 24) | interface ValidationFeedbackProps {
  function groupErrorsByNode (line 31) | function groupErrorsByNode(errors: ValidationError[], nodes: FlowNode[])...
  function ValidationFeedbackComponent (line 60) | function ValidationFeedbackComponent({ nodes, edges, availableNodes, set...

FILE: packages/agentflow/src/features/canvas/containers/AgentFlowEdge.tsx
  type EdgeLabelProps (line 9) | interface EdgeLabelProps {
  function EdgeLabel (line 16) | function EdgeLabel({ transform, isHumanInput, label, color }: EdgeLabelP...
  type AgentFlowEdgeProps (line 39) | interface AgentFlowEdgeProps {
  function AgentFlowEdgeComponent (line 55) | function AgentFlowEdgeComponent({

FILE: packages/agentflow/src/features/canvas/containers/AgentFlowNode.tsx
  constant NODE_ICON_CONTAINER_WIDTH (line 21) | const NODE_ICON_CONTAINER_WIDTH = 50
  type AgentFlowNodeProps (line 23) | interface AgentFlowNodeProps {
  function AgentFlowNodeComponent (line 30) | function AgentFlowNodeComponent({ data }: AgentFlowNodeProps) {

FILE: packages/agentflow/src/features/canvas/containers/IterationNode.tsx
  type IterationNodeProps (line 19) | interface IterationNodeProps {
  function IterationNodeComponent (line 26) | function IterationNodeComponent({ data }: IterationNodeProps) {

FILE: packages/agentflow/src/features/canvas/containers/StickyNote.tsx
  type StickyNoteProps (line 12) | interface StickyNoteProps {
  function StickyNoteComponent (line 19) | function StickyNoteComponent({ data }: StickyNoteProps) {

FILE: packages/agentflow/src/features/canvas/hooks/useDragAndDrop.test.tsx
  function makeDragEvent (line 39) | function makeDragEvent(data?: string): React.DragEvent {
  function renderUseDragAndDrop (line 67) | function renderUseDragAndDrop(overrides = {}) {

FILE: packages/agentflow/src/features/canvas/hooks/useDragAndDrop.ts
  constant DROP_OFFSET_X (line 11) | const DROP_OFFSET_X = 100
  constant DROP_OFFSET_Y (line 12) | const DROP_OFFSET_Y = 50
  type UseDragAndDropProps (line 14) | interface UseDragAndDropProps {
  function useDragAndDrop (line 24) | function useDragAndDrop({ nodes, setLocalNodes, reactFlowWrapper, onCons...

FILE: packages/agentflow/src/features/canvas/hooks/useFlowHandlers.test.tsx
  function renderUseFlowHandlers (line 68) | function renderUseFlowHandlers(overrides = {}) {

FILE: packages/agentflow/src/features/canvas/hooks/useFlowHandlers.ts
  type UseFlowHandlersProps (line 9) | interface UseFlowHandlersProps {
  function useFlowHandlers (line 24) | function useFlowHandlers({

FILE: packages/agentflow/src/features/canvas/hooks/useFlowNodes.test.tsx
  function TestComponent (line 30) | function TestComponent() {

FILE: packages/agentflow/src/features/canvas/hooks/useFlowNodes.ts
  function useFlowNodes (line 9) | function useFlowNodes() {

FILE: packages/agentflow/src/features/canvas/hooks/useNodeColors.ts
  constant DEFAULT_NODE_COLOR (line 5) | const DEFAULT_NODE_COLOR = '#666666'
  type UseNodeColorsOptions (line 7) | interface UseNodeColorsOptions {
  type UseNodeColorsReturn (line 14) | interface UseNodeColorsReturn {
  function useNodeColors (line 20) | function useNodeColors({ nodeColor: rawColor, selected, isDarkMode, isHo...

FILE: packages/agentflow/src/features/canvas/hooks/useOpenNodeEditor.ts
  function useOpenNodeEditor (line 12) | function useOpenNodeEditor() {

FILE: packages/agentflow/src/features/canvas/nodeIcons.tsx
  function renderNodeIcon (line 9) | function renderNodeIcon(node: NodeData) {
  function getBuiltInOpenAIToolIcon (line 19) | function getBuiltInOpenAIToolIcon(toolName: string) {
  function getBuiltInGeminiToolIcon (line 35) | function getBuiltInGeminiToolIcon(toolName: string) {
  function getBuiltInAnthropicToolIcon (line 51) | function getBuiltInAnthropicToolIcon(toolName: string) {

FILE: packages/agentflow/src/features/generator/GenerateFlowDialog.tsx
  type GenerateFlowDialogProps (line 27) | interface GenerateFlowDialogProps {
  type ChatModel (line 36) | interface ChatModel {
  function GenerateFlowDialogComponent (line 45) | function GenerateFlowDialogComponent({ open, onClose, onGenerated }: Gen...

FILE: packages/agentflow/src/features/generator/SuggestionChips.tsx
  type Suggestion (line 7) | interface Suggestion {
  type SuggestionChipsProps (line 12) | interface SuggestionChipsProps {
  function SuggestionChipsComponent (line 31) | function SuggestionChipsComponent({ suggestions = defaultSuggestions, on...

FILE: packages/agentflow/src/features/node-editor/AsyncInput.test.tsx
  type MockAsyncResult (line 22) | interface MockAsyncResult {

FILE: packages/agentflow/src/features/node-editor/AsyncInput.tsx
  function buildAsyncParams (line 17) | function buildAsyncParams(
  function AsyncOptionsInput (line 27) | function AsyncOptionsInput({ inputParam, value, disabled, onChange, node...
  function AsyncMultiOptionsInput (line 109) | function AsyncMultiOptionsInput({ inputParam, value, disabled, onChange,...
  function AsyncInput (line 199) | function AsyncInput(props: AsyncInputProps) {

FILE: packages/agentflow/src/features/node-editor/ConfigInput.tsx
  type ConfigInputProps (line 15) | interface ConfigInputProps {
  function initializeDefaults (line 33) | function initializeDefaults(params: InputParam[]): Record<string, unknow...
  function readCurrentValue (line 42) | function readCurrentValue(
  function readExistingConfig (line 59) | function readExistingConfig(
  function ConfigInput (line 78) | function ConfigInput({

FILE: packages/agentflow/src/features/node-editor/EditNodeDialog.tsx
  constant MESSAGE_PARAM_NAMES (line 19) | const MESSAGE_PARAM_NAMES = new Set(['agentMessages', 'llmMessages'])
  constant STRUCTURED_OUTPUT_PARAM_NAMES (line 22) | const STRUCTURED_OUTPUT_PARAM_NAMES = new Set(['agentStructuredOutput', ...
  type EditNodeDialogProps (line 24) | interface EditNodeDialogProps {
  function computeArrayItemParameters (line 30) | function computeArrayItemParameters(params: InputParam[], inputValues: R...
  function EditNodeDialogComponent (line 44) | function EditNodeDialogComponent({ show, dialogProps, onCancel }: EditNo...

FILE: packages/agentflow/src/features/node-editor/useAvailableVariables.test.tsx
  function makeNode (line 20) | function makeNode(id: string, name: string, overrides: Record<string, un...

FILE: packages/agentflow/src/features/node-editor/useAvailableVariables.ts
  constant GLOBAL_VARIABLES (line 9) | const GLOBAL_VARIABLES: VariableItem[] = [
  function getUpstreamNodes (line 30) | function getUpstreamNodes(nodeId: string, nodes: FlowNode[], edges: Flow...
  function useAvailableVariables (line 53) | function useAvailableVariables(nodeId: string): VariableItem[] {

FILE: packages/agentflow/src/features/node-editor/useDynamicOutputPorts.ts
  function useDynamicOutputPorts (line 19) | function useDynamicOutputPorts(nodeId: string, enabled: boolean = true, ...

FILE: packages/agentflow/src/features/node-palette/AddNodesDrawer.tsx
  constant Z_INDEX_DRAWER (line 33) | const Z_INDEX_DRAWER = 1000
  type AddNodesDrawerProps (line 35) | interface AddNodesDrawerProps {
  function AddNodesDrawerComponent (line 47) | function AddNodesDrawerComponent({ nodes, onDragStart, onNodeClick }: Ad...

FILE: packages/agentflow/src/features/node-palette/NodeListItem.tsx
  constant NODE_ICON_SIZE (line 10) | const NODE_ICON_SIZE = 30
  constant NODE_AVATAR_SIZE (line 11) | const NODE_AVATAR_SIZE = 50
  type NodeListItemProps (line 13) | interface NodeListItemProps {
  function NodeListItemComponent (line 21) | function NodeListItemComponent({ node, apiBaseUrl, isLast, onDragStart, ...

FILE: packages/agentflow/src/features/node-palette/StyledFab.tsx
  type StyledFabProps (line 8) | interface StyledFabProps extends FabProps {

FILE: packages/agentflow/src/features/node-palette/search.ts
  function fuzzyScore (line 10) | function fuzzyScore(searchTerm: string, text: string): number {
  function searchNodes (line 88) | function searchNodes(nodes: NodeData[], searchValue: string): NodeData[] {
  function debounce (line 115) | function debounce<T extends (...args: Parameters<T>) => ReturnType<T>>(f...

FILE: packages/agentflow/src/features/node-palette/useDrawerMaxHeight.ts
  function useDrawerMaxHeight (line 13) | function useDrawerMaxHeight(

FILE: packages/agentflow/src/infrastructure/api/chatflows.ts
  function bindChatflowsApi (line 8) | function bindChatflowsApi(client: AxiosInstance) {
  type ChatflowsApi (line 107) | type ChatflowsApi = ReturnType<typeof bindChatflowsApi>

FILE: packages/agentflow/src/infrastructure/api/client.ts
  function bindApiClient (line 13) | function bindApiClient(apiBaseUrl: string, token?: string, requestInterc...

FILE: packages/agentflow/src/infrastructure/api/credentials.ts
  function bindCredentialsApi (line 8) | function bindCredentialsApi(client: AxiosInstance) {
  type CredentialsApi (line 28) | type CredentialsApi = ReturnType<typeof bindCredentialsApi>

FILE: packages/agentflow/src/infrastructure/api/deduplicatedClient.test.ts
  function deferred (line 6) | function deferred<T>() {
  function createMockClient (line 17) | function createMockClient(): AxiosInstance {
  function fakeResponse (line 26) | function fakeResponse(data: unknown): AxiosResponse {

FILE: packages/agentflow/src/infrastructure/api/deduplicatedClient.ts
  constant DEFAULT_CACHE_TTL_MS (line 4) | const DEFAULT_CACHE_TTL_MS = 30_000
  type CacheEntry (line 6) | interface CacheEntry {
  function buildCacheKey (line 14) | function buildCacheKey(method: string, url: string, data?: unknown): str...
  function isCacheable (line 28) | function isCacheable(method: string, url: string): boolean {
  type DeduplicatedClient (line 45) | interface DeduplicatedClient extends AxiosInstance {
  function withDeduplication (line 50) | function withDeduplication(client: AxiosInstance, cacheTtlMs: number = D...

FILE: packages/agentflow/src/infrastructure/api/embeddings.ts
  function bindEmbeddingsApi (line 8) | function bindEmbeddingsApi(client: AxiosInstance) {
  type EmbeddingsApi (line 20) | type EmbeddingsApi = ReturnType<typeof bindEmbeddingsApi>

FILE: packages/agentflow/src/infrastructure/api/hooks/useAsyncOptions.ts
  type OptionItem (line 9) | type OptionItem = NodeOption
  type UseAsyncOptionsParams (line 11) | interface UseAsyncOptionsParams {
  type UseAsyncOptionsResult (line 17) | interface UseAsyncOptionsResult {
  function useAsyncOptions (line 27) | function useAsyncOptions({ loadMethod, credentialNames, params }: UseAsy...
  function normalizeOptions (line 123) | function normalizeOptions(raw: unknown, apiBaseUrl: string): OptionItem[] {

FILE: packages/agentflow/src/infrastructure/api/loadMethodRegistry.ts
  type ApiServices (line 10) | interface ApiServices {
  function getChatflowTypeLabel (line 44) | function getChatflowTypeLabel(type: string | undefined): string {
  function getLoadMethod (line 95) | function getLoadMethod(name: string): (_apis: ApiServices, _params?: Rec...

FILE: packages/agentflow/src/infrastructure/api/models.ts
  function bindChatModelsApi (line 8) | function bindChatModelsApi(client: AxiosInstance) {
  type ChatModelsApi (line 20) | type ChatModelsApi = ReturnType<typeof bindChatModelsApi>

FILE: packages/agentflow/src/infrastructure/api/nodes.ts
  function bindNodesApi (line 8) | function bindNodesApi(client: AxiosInstance) {
  type NodesApi (line 46) | type NodesApi = ReturnType<typeof bindNodesApi>

FILE: packages/agentflow/src/infrastructure/api/runtimeState.ts
  function bindRuntimeStateApi (line 8) | function bindRuntimeStateApi(client: AxiosInstance) {
  type RuntimeStateApi (line 20) | type RuntimeStateApi = ReturnType<typeof bindRuntimeStateApi>

FILE: packages/agentflow/src/infrastructure/api/stores.ts
  function bindStoresApi (line 8) | function bindStoresApi(client: AxiosInstance) {
  type StoresApi (line 28) | type StoresApi = ReturnType<typeof bindStoresApi>

FILE: packages/agentflow/src/infrastructure/api/tools.ts
  function bindToolsApi (line 8) | function bindToolsApi(client: AxiosInstance) {
  type ToolsApi (line 32) | type ToolsApi = ReturnType<typeof bindToolsApi>

FILE: packages/agentflow/src/infrastructure/store/AgentflowContext.e2e.test.tsx
  function Wrapper (line 14) | function Wrapper({ children }: { children: ReactNode }) {

FILE: packages/agentflow/src/infrastructure/store/AgentflowContext.test.tsx
  function Wrapper (line 15) | function Wrapper({ children }: { children: ReactNode }) {

FILE: packages/agentflow/src/infrastructure/store/AgentflowContext.tsx
  function isConnectionString (line 28) | function isConnectionString(value: unknown): boolean {
  function updateAnchorIds (line 35) | function updateAnchorIds(items: unknown, oldId: string, newId: string): ...
  type NodesSetter (line 49) | type NodesSetter = (nodes: FlowNode[]) => void
  type EdgesSetter (line 50) | type EdgesSetter = (edges: FlowEdge[]) => void
  type AgentflowContextValue (line 53) | interface AgentflowContextValue {
  type AgentflowStateProviderProps (line 91) | interface AgentflowStateProviderProps {
  function AgentflowStateProvider (line 96) | function AgentflowStateProvider({ children, initialFlow }: AgentflowStat...
  function useAgentflowContext (line 325) | function useAgentflowContext(): AgentflowContextValue {

FILE: packages/agentflow/src/infrastructure/store/ApiContext.tsx
  type ApiContextValue (line 27) | interface ApiContextValue {
  type ApiProviderProps (line 42) | interface ApiProviderProps {
  function ApiProvider (line 49) | function ApiProvider({ apiBaseUrl, token, requestInterceptor, children }...
  function useApiContext (line 84) | function useApiContext(): ApiContextValue {

FILE: packages/agentflow/src/infrastructure/store/ConfigContext.tsx
  type ConfigProviderProps (line 7) | interface ConfigProviderProps {
  function ConfigProvider (line 14) | function ConfigProvider({ isDarkMode = false, components, readOnly = fal...
  function useConfigContext (line 27) | function useConfigContext(): ConfigContextValue {

FILE: packages/agentflow/src/infrastructure/store/agentflowReducer.ts
  constant CONTENT_SIZED_NODE_TYPES (line 4) | const CONTENT_SIZED_NODE_TYPES = new Set(['agentFlow', 'stickyNote'])
  function normalizeNodes (line 6) | function normalizeNodes(nodes: FlowNode[]): FlowNode[] {
  function agentflowReducer (line 26) | function agentflowReducer(state: AgentflowState, action: AgentflowAction...

FILE: packages/agentflow/src/useAgentflow.test.tsx
  function Wrapper (line 15) | function Wrapper({ children }: { children: ReactNode }) {

FILE: packages/agentflow/src/useAgentflow.ts
  function useAgentflow (line 38) | function useAgentflow(): AgentFlowInstance {

FILE: packages/components/__mocks__/esm-stub.js
  class Stub (line 9) | class Stub {}

FILE: packages/components/credentials/AWSCredential.credential.ts
  class AWSApi (line 3) | class AWSApi implements INodeCredential {
    method constructor (line 11) | constructor() {

FILE: packages/components/credentials/AgentflowApi.credential.ts
  class AgentflowApi (line 3) | class AgentflowApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/AirtableApi.credential.ts
  class AirtableApi (line 3) | class AirtableApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/AlibabaApi.credential.ts
  class AlibabaApi (line 3) | class AlibabaApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/AnthropicApi.credential.ts
  class AnthropicApi (line 3) | class AnthropicApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/ApifyApi.credential.ts
  class ApifyApiCredential (line 3) | class ApifyApiCredential implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/ArizeApi.credential.ts
  class ArizeApi (line 3) | class ArizeApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/AssemblyAI.credential.ts
  class AssemblyAIApi (line 3) | class AssemblyAIApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/AstraApi.credential.ts
  class AstraDBApi (line 3) | class AstraDBApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/AzureCognitiveServices.credential.ts
  class AzureCognitiveServices (line 3) | class AzureCognitiveServices implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/AzureOpenAIApi.credential.ts
  class AzureOpenAIApi (line 3) | class AzureOpenAIApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/AzureRerankerApi.credential.ts
  class AzureRerankerApi (line 3) | class AzureRerankerApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/BaiduApi.credential.ts
  class BaiduQianfanApi (line 3) | class BaiduQianfanApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/BraveSearchApi.credential.ts
  class BraveSearchApi (line 3) | class BraveSearchApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/CerebrasApi.credential.ts
  class CerebrasAPIAuth (line 3) | class CerebrasAPIAuth implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/ChatflowApi.credential.ts
  class ChatflowApi (line 3) | class ChatflowApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/ChromaApi.credential.ts
  class ChromaApi (line 3) | class ChromaApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/CloudflareApi.credential.ts
  class CloudflareApi (line 3) | class CloudflareApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/CohereApi.credential.ts
  class CohereApi (line 3) | class CohereApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/CometApi.credential.ts
  class CometApi (line 3) | class CometApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/ComposioApi.credential.ts
  class ComposioApi (line 3) | class ComposioApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/ConfluenceCloudApi.credential.ts
  class ConfluenceCloudApi (line 3) | class ConfluenceCloudApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/ConfluenceServerDCApi.credential.ts
  class ConfluenceServerDCApi (line 3) | class ConfluenceServerDCApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/CouchbaseApi.credential.ts
  class CouchbaseApi (line 3) | class CouchbaseApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/DeepseekApi.credential.ts
  class DeepseekApi (line 3) | class DeepseekApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/DynamodbMemoryApi.credential.ts
  class DynamodbMemoryApi (line 3) | class DynamodbMemoryApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/E2B.credential.ts
  class E2BApi (line 3) | class E2BApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/ElasticsearchAPI.credential.ts
  class ElectricsearchAPI (line 3) | class ElectricsearchAPI implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/ElectricsearchUserPassword.credential.ts
  class ElasticSearchUserPassword (line 3) | class ElasticSearchUserPassword implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/ElevenLabsApi.credential.ts
  class ElevenLabsApi (line 3) | class ElevenLabsApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/ExaSearchApi.credential.ts
  class ExaSearchApi (line 3) | class ExaSearchApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/FigmaApi.credential.ts
  class FigmaApi (line 3) | class FigmaApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/FireCrawlApi.credential.ts
  class FireCrawlApiCredential (line 3) | class FireCrawlApiCredential implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/FireworksApi.credential.ts
  class FireworksApi (line 3) | class FireworksApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/GithubApi.credential.ts
  class GithubApi (line 3) | class GithubApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/GmailOAuth2.credential.ts
  class GmailOAuth2 (line 9) | class GmailOAuth2 implements INodeCredential {
    method constructor (line 16) | constructor() {

FILE: packages/components/credentials/GoogleAuth.credential.ts
  class GoogleVertexAuth (line 3) | class GoogleVertexAuth implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/GoogleCalendarOAuth2.credential.ts
  class GoogleCalendarOAuth2 (line 4) | class GoogleCalendarOAuth2 implements INodeCredential {
    method constructor (line 11) | constructor() {

FILE: packages/components/credentials/GoogleDocsOAuth2.credential.ts
  class GoogleDocsOAuth2 (line 8) | class GoogleDocsOAuth2 implements INodeCredential {
    method constructor (line 15) | constructor() {

FILE: packages/components/credentials/GoogleDriveOAuth2.credential.ts
  class GoogleDriveOAuth2 (line 8) | class GoogleDriveOAuth2 implements INodeCredential {
    method constructor (line 15) | constructor() {

FILE: packages/components/credentials/GoogleGenerativeAI.credential.ts
  class GoogleGenerativeAICredential (line 3) | class GoogleGenerativeAICredential implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/GoogleMakerSuite.credential.ts
  class GoogleMakerSuite (line 3) | class GoogleMakerSuite implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/GoogleSearchApi.credential.ts
  class GoogleSearchApi (line 3) | class GoogleSearchApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/GoogleSheetsOAuth2.credential.ts
  class GoogleSheetsOAuth2 (line 8) | class GoogleSheetsOAuth2 implements INodeCredential {
    method constructor (line 15) | constructor() {

FILE: packages/components/credentials/GroqApi.credential.ts
  class GroqApi (line 3) | class GroqApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/HTTPApiKey.credential.ts
  class HTTPApiKeyCredential (line 3) | class HTTPApiKeyCredential implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/HTTPBasicAuth.credential.ts
  class HttpBasicAuthCredential (line 3) | class HttpBasicAuthCredential implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/HTTPBearerToken.credential.ts
  class HTTPBearerTokenCredential (line 3) | class HTTPBearerTokenCredential implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/HuggingFaceApi.credential.ts
  class HuggingFaceApi (line 3) | class HuggingFaceApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/IBMWatsonx.credential.ts
  class IBMWatsonxCredential (line 3) | class IBMWatsonxCredential implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/JinaApi.credential.ts
  class JinaAICredential (line 3) | class JinaAICredential implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/JiraApi.credential.ts
  class JiraApi (line 3) | class JiraApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/JiraApiBearerToken.credential.ts
  class JiraApiBearerToken (line 3) | class JiraApiBearerToken implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/LangWatchApi.credential.ts
  class LangWatchApi (line 3) | class LangWatchApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/LangfuseApi.credential.ts
  class LangfuseApi (line 3) | class LangfuseApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/LangsmithApi.credential.ts
  class LangsmithApi (line 3) | class LangsmithApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/LitellmApi.credential.ts
  class LitellmApi (line 3) | class LitellmApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/LocalAIApi.credential.ts
  class LocalAIApi (line 3) | class LocalAIApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/LunaryApi.credential.ts
  class LunaryApi (line 3) | class LunaryApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/MeilisearchApi.credential.ts
  class MeilisearchApi (line 3) | class MeilisearchApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/Mem0MemoryApi.credential.ts
  class Mem0MemoryApi (line 3) | class Mem0MemoryApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/MicrosoftOutlookOAuth2.credential.ts
  class MsoftOutlookOAuth2 (line 19) | class MsoftOutlookOAuth2 implements INodeCredential {
    method constructor (line 26) | constructor() {

FILE: packages/components/credentials/MicrosoftTeamsOAuth2.credential.ts
  class MsoftTeamsOAuth2 (line 40) | class MsoftTeamsOAuth2 implements INodeCredential {
    method constructor (line 47) | constructor() {

FILE: packages/components/credentials/MilvusAuth.credential.ts
  class MilvusCredential (line 3) | class MilvusCredential implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/MistralApi.credential.ts
  class MistralAICredential (line 3) | class MistralAICredential implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/MomentoCacheApi.credential.ts
  class MomentoCacheApi (line 3) | class MomentoCacheApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/MongoDBUrlApi.credential.ts
  class MongoDBUrlApi (line 3) | class MongoDBUrlApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/MySQLApi.credential.ts
  class MySQLApi (line 3) | class MySQLApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/Neo4jApi.credential.ts
  class Neo4jApi (line 3) | class Neo4jApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/NotionApi.credential.ts
  class NotionApi (line 3) | class NotionApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/NvdiaNIMApi.credential.ts
  class NvidiaNIMApi (line 3) | class NvidiaNIMApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/Ollama.credential.ts
  class OllamaApi (line 3) | class OllamaApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/OpenAIApi.credential.ts
  class OpenAIApi (line 3) | class OpenAIApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/OpenRouterApi.credential.ts
  class OpenRouterAPIAuth (line 3) | class OpenRouterAPIAuth implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/OpenSearchUrl.credential.ts
  class OpenSearchUrl (line 3) | class OpenSearchUrl implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/OpikApi.credential.ts
  class OpikApi (line 3) | class OpikApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/OxylabsApi.credential.ts
  class OxylabsApiCredential (line 3) | class OxylabsApiCredential implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/PerplexityApi.credential.ts
  class PerplexityApi (line 3) | class PerplexityApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/PhoenixApi.credential.ts
  class PhoenixApi (line 3) | class PhoenixApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/PineconeApi.credential.ts
  class PineconeApi (line 3) | class PineconeApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/PostgresApi.credential.ts
  class PostgresApi (line 3) | class PostgresApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/PostgresUrl.credential.ts
  class PostgresUrl (line 3) | class PostgresUrl implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/QdrantApi.credential.ts
  class QdrantApi (line 3) | class QdrantApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/RedisCacheApi.credential.ts
  class RedisCacheApi (line 3) | class RedisCacheApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/RedisCacheUrlApi.credential.ts
  class RedisCacheUrlApi (line 3) | class RedisCacheUrlApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/ReplicateApi.credential.ts
  class ReplicateApi (line 3) | class ReplicateApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/SambanovaApi.credential.ts
  class SambanovaApi (line 3) | class SambanovaApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/SearchApi.credential.ts
  class SearchApi (line 3) | class SearchApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/SerpApi.credential.ts
  class SerpApi (line 3) | class SerpApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/SerperApi.credential.ts
  class SerperApi (line 3) | class SerperApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/SingleStoreApi.credential.ts
  class SingleStoreApi (line 3) | class SingleStoreApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/SlackApi.credential.ts
  class SlackApi (line 3) | class SlackApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/SpiderApi.credential.ts
  class SpiderApiCredential (line 3) | class SpiderApiCredential implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/StripeApi.credential.ts
  class StripeApi (line 3) | class StripeApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/SupabaseApi.credential.ts
  class SupabaseApi (line 3) | class SupabaseApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/TavilyApi.credential.ts
  class TavilyApi (line 3) | class TavilyApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/TeradataBearerToken.credential.ts
  class TeradataBearerTokenCredential (line 3) | class TeradataBearerTokenCredential implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/TeradataTD2.credential.ts
  class TeradataTD2Credential (line 3) | class TeradataTD2Credential implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/TeradataVectorStoreApi.credential.ts
  class TeradataVectorStoreApiCredentials (line 3) | class TeradataVectorStoreApiCredentials implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/TogetherAIApi.credential.ts
  class TogetherAIApi (line 3) | class TogetherAIApi implements INodeCredential {
    method constructor (line 9) | constructor() {

FILE: packages/components/credentials/UnstructuredApi.credential.ts
  class UnstructuredApi (line 3) | class UnstructuredApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/UpstashRedisApi.credential.ts
  class UpstashRedisApi (line 3) | class UpstashRedisApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/UpstashRedisMemoryApi.credential.ts
  class UpstashRedisMemoryApi (line 3) | class UpstashRedisMemoryApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/UpstashVectorApi.credential.ts
  class UpstashVectorApi (line 3) | class UpstashVectorApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/VectaraApi.credential.ts
  class VectaraAPI (line 3) | class VectaraAPI implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/VoyageAIApi.credential.ts
  class VoyageAIApi (line 3) | class VoyageAIApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/WeaviateApi.credential.ts
  class WeaviateApi (line 3) | class WeaviateApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/WolframAlphaApp.credential.ts
  class WolframAlphaApp (line 3) | class WolframAlphaApp implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/XaiApi.credential.ts
  class XaiApi (line 3) | class XaiApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/credentials/ZepMemoryApi.credential.ts
  class ZepMemoryApi (line 3) | class ZepMemoryApi implements INodeCredential {
    method constructor (line 10) | constructor() {

FILE: packages/components/evaluation/EvaluationRunTracer.ts
  class EvaluationRunTracer (line 6) | class EvaluationRunTracer extends RunCollectorCallbackHandler {
    method constructor (line 10) | constructor(id: string) {
    method persistRun (line 15) | async persistRun(run: Run): Promise<void> {
    method onLLMEnd (line 66) | onLLMEnd?(run: Run): void | Promise<void> {
    method onRunUpdate (line 137) | async onRunUpdate(run: Run): Promise<void> {
  function elapsed (line 161) | function elapsed(run: Run) {

FILE: packages/components/evaluation/EvaluationRunTracerLlama.ts
  class EvaluationRunTracerLlama (line 9) | class EvaluationRunTracerLlama {
    method constructor (line 16) | constructor(id: string) {
    method calculateAndSetMetrics (line 87) | private static calculateAndSetMetrics(event: any, label: string) {
    method injectEvaluationMetadata (line 156) | static async injectEvaluationMetadata(nodeData: INodeData, options: IC...
  function extractText (line 172) | function extractText(message: MessageContent): string {

FILE: packages/components/evaluation/EvaluationRunner.ts
  class EvaluationRunner (line 7) | class EvaluationRunner {
    method getAndDeleteMetrics (line 29) | static async getAndDeleteMetrics(id: string) {
    method addMetrics (line 71) | static addMetrics(id: string, metric: string) {
    method constructor (line 81) | constructor(baseURL: string) {
    method getChatflowApiKey (line 85) | getChatflowApiKey(chatflowId: string, apiKeys: { chatflowId: string; a...
    method runEvaluations (line 89) | public async runEvaluations(data: ICommonObject) {
    method evaluateChatflow (line 120) | async evaluateChatflow(chatflowId: string, apiKey: string, data: any, ...

FILE: packages/components/gulpfile.ts
  function copyIcons (line 3) | function copyIcons() {

FILE: packages/components/nodes/agentflow/Agent/Agent.ts
  type ITool (line 45) | interface ITool {
  type IKnowledgeBase (line 51) | interface IKnowledgeBase {
  type IKnowledgeBaseVSEmbeddings (line 57) | interface IKnowledgeBaseVSEmbeddings {
  type ISimpliefiedTool (line 67) | interface ISimpliefiedTool {
  class Agent_Agentflow (line 98) | class Agent_Agentflow implements INode {
    method constructor (line 112) | constructor() {
    method listModels (line 563) | async listModels(_: INodeData, options: ICommonObject): Promise<INodeO...
    method listEmbeddings (line 584) | async listEmbeddings(_: INodeData, options: ICommonObject): Promise<IN...
    method listTools (line 605) | async listTools(_: INodeData, options: ICommonObject): Promise<INodeOp...
    method listRuntimeStateKeys (line 631) | async listRuntimeStateKeys(_: INodeData, options: ICommonObject): Prom...
    method listStores (line 637) | async listStores(_: INodeData, options: ICommonObject): Promise<INodeO...
    method listVectorStores (line 661) | async listVectorStores(_: INodeData, options: ICommonObject): Promise<...
    method run (line 684) | async run(nodeData: INodeData, input: string | Record<string, any>, op...
    method extractBuiltInUsedTools (line 1558) | private async extractBuiltInUsedTools(response: AIMessageChunk, builtI...
    method handleMemory (line 1709) | private async handleMemory({
    method handleSummaryBuffer (line 1806) | private async handleSummaryBuffer(
    method handleStreamingResponse (line 1865) | private async handleStreamingResponse(
    method calculateUsageCost (line 1971) | private async calculateUsageCost(
    method prepareOutputObject (line 2013) | private prepareOutputObject(
    method sendStreamingEvents (line 2121) | private sendStreamingEvents(options: ICommonObject, chatId: string, re...
    method handleToolCalls (line 2143) | private async handleToolCalls({
    method handleResumedToolCalls (line 2508) | private async handleResumedToolCalls({
    method processSandboxLinks (line 2893) | private async processSandboxLinks(text: string, baseURL: string, chatf...

FILE: packages/components/nodes/agentflow/Condition/Condition.ts
  class Condition_Agentflow (line 16) | class Condition_Agentflow implements INode {
    method constructor (line 30) | constructor() {
    method run (line 274) | async run(nodeData: INodeData, _: string, options: ICommonObject): Pro...

FILE: packages/components/nodes/agentflow/ConditionAgent/ConditionAgent.ts
  class ConditionAgent_Agentflow (line 12) | class ConditionAgent_Agentflow implements INode {
    method constructor (line 26) | constructor() {
    method listModels (line 181) | async listModels(_: INodeData, options: ICommonObject): Promise<INodeO...
    method parseJsonMarkdown (line 204) | private parseJsonMarkdown(jsonString: string): any {
    method run (line 249) | async run(nodeData: INodeData, question: string, options: ICommonObjec...
    method handleMemory (line 524) | private async handleMemory({
    method handleSummaryBuffer (line 605) | private async handleSummaryBuffer(
    method calculateUsageCost (line 664) | private async calculateUsageCost(

FILE: packages/components/nodes/agentflow/ConditionAgent/matchScenario.ts
  type ConditionScenario (line 1) | type ConditionScenario = { scenario: string }

FILE: packages/components/nodes/agentflow/CustomFunction/CustomFunction.ts
  type ICustomFunctionInputVariables (line 14) | interface ICustomFunctionInputVariables {
  class CustomFunction_Agentflow (line 44) | class CustomFunction_Agentflow implements INode {
    method constructor (line 60) | constructor() {
    method listRuntimeStateKeys (line 126) | async listRuntimeStateKeys(_: INodeData, options: ICommonObject): Prom...
    method run (line 134) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/agentflow/DirectReply/DirectReply.ts
  class DirectReply_Agentflow (line 3) | class DirectReply_Agentflow implements INode {
    method constructor (line 19) | constructor() {
    method run (line 40) | async run(nodeData: INodeData, _: string, options: ICommonObject): Pro...

FILE: packages/components/nodes/agentflow/ExecuteFlow/ExecuteFlow.ts
  class ExecuteFlow_Agentflow (line 17) | class ExecuteFlow_Agentflow implements INode {
    method constructor (line 31) | constructor() {
    method listFlows (line 122) | async listFlows(_: INodeData, options: ICommonObject): Promise<INodeOp...
    method listRuntimeStateKeys (line 152) | async listRuntimeStateKeys(_: INodeData, options: ICommonObject): Prom...
    method run (line 160) | async run(nodeData: INodeData, _: string, options: ICommonObject): Pro...

FILE: packages/components/nodes/agentflow/HTTP/HTTP.ts
  class HTTP_Agentflow (line 8) | class HTTP_Agentflow implements INode {
    method constructor (line 22) | constructor() {
    method run (line 204) | async run(nodeData: INodeData, _: string, options: ICommonObject): Pro...

FILE: packages/components/nodes/agentflow/HumanInput/HumanInput.ts
  class HumanInput_Agentflow (line 17) | class HumanInput_Agentflow implements INode {
    method constructor (line 32) | constructor() {
    method listModels (line 113) | async listModels(_: INodeData, options: ICommonObject): Promise<INodeO...
    method run (line 136) | async run(nodeData: INodeData, _: string, options: ICommonObject): Pro...

FILE: packages/components/nodes/agentflow/Interface.Agentflow.ts
  type ILLMMessage (line 4) | interface ILLMMessage {
  type IStructuredOutput (line 9) | interface IStructuredOutput {
  type IFlowState (line 17) | interface IFlowState {
  type IImageFileRef (line 25) | interface IImageFileRef {
  type IArtifact (line 32) | interface IArtifact {
  type IFileAnnotation (line 38) | interface IFileAnnotation {
  type ISavedImageResult (line 44) | interface ISavedImageResult {
  type ISavedInlineImage (line 51) | interface ISavedInlineImage {
  type IImageGenerationOutput (line 60) | interface IImageGenerationOutput {
  type IGeminiInlineData (line 68) | interface IGeminiInlineData {
  type IContainerFileCitation (line 75) | interface IContainerFileCitation {
  type IResponseOutputContent (line 83) | interface IResponseOutputContent {
  type IResponseMetadataOutput (line 88) | interface IResponseMetadataOutput {
  type IResponseMetadata (line 97) | interface IResponseMetadata {
  type IStoredFileContent (line 105) | interface IStoredFileContent {
  type IMessageAdditionalKwargs (line 116) | interface IMessageAdditionalKwargs {
  type IChatMessage (line 130) | interface IChatMessage {
  type IImageArtifact (line 139) | interface IImageArtifact {
  type IMultimodalContentItem (line 145) | interface IMultimodalContentItem {

FILE: packages/components/nodes/agentflow/Iteration/Iteration.ts
  class Iteration_Agentflow (line 4) | class Iteration_Agentflow implements INode {
    method constructor (line 18) | constructor() {
    method run (line 39) | async run(nodeData: INodeData, _: string, options: ICommonObject): Pro...

FILE: packages/components/nodes/agentflow/LLM/LLM.ts
  class LLM_Agentflow (line 22) | class LLM_Agentflow implements INode {
    method constructor (line 36) | constructor() {
    method listModels (line 311) | async listModels(_: INodeData, options: ICommonObject): Promise<INodeO...
    method listRuntimeStateKeys (line 332) | async listRuntimeStateKeys(_: INodeData, options: ICommonObject): Prom...
    method run (line 340) | async run(nodeData: INodeData, input: string | Record<string, any>, op...
    method handleMemory (line 701) | private async handleMemory({
    method handleSummaryBuffer (line 792) | private async handleSummaryBuffer(
    method handleStreamingResponse (line 851) | private async handleStreamingResponse(
    method calculateUsageCost (line 939) | private async calculateUsageCost(
    method prepareOutputObject (line 980) | private prepareOutputObject(
    method sendStreamingEvents (line 1054) | private sendStreamingEvents(options: ICommonObject, chatId: string, re...

FILE: packages/components/nodes/agentflow/Loop/Loop.ts
  class Loop_Agentflow (line 4) | class Loop_Agentflow implements INode {
    method constructor (line 20) | constructor() {
    method listPreviousNodes (line 83) | async listPreviousNodes(_: INodeData, options: ICommonObject): Promise...
    method listRuntimeStateKeys (line 96) | async listRuntimeStateKeys(_: INodeData, options: ICommonObject): Prom...
    method run (line 104) | async run(nodeData: INodeData, _: string, options: ICommonObject): Pro...

FILE: packages/components/nodes/agentflow/Retriever/Retriever.ts
  type IKnowledgeBase (line 16) | interface IKnowledgeBase {
  class Retriever_Agentflow (line 20) | class Retriever_Agentflow implements INode {
    method constructor (line 36) | constructor() {
    method listRuntimeStateKeys (line 106) | async listRuntimeStateKeys(_: INodeData, options: ICommonObject): Prom...
    method listStores (line 112) | async listStores(_: INodeData, options: ICommonObject): Promise<INodeO...
    method run (line 138) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/agentflow/Start/Start.ts
  class Start_Agentflow (line 3) | class Start_Agentflow implements INode {
    method constructor (line 18) | constructor() {
    method run (line 167) | async run(nodeData: INodeData, input: string | Record<string, any>, op...

FILE: packages/components/nodes/agentflow/StickyNote/StickyNote.ts
  class StickyNote_Agentflow (line 3) | class StickyNote_Agentflow implements INode {
    method constructor (line 16) | constructor() {
    method run (line 37) | async run(): Promise<any> {

FILE: packages/components/nodes/agentflow/Tool/Tool.ts
  type IToolInputArgs (line 8) | interface IToolInputArgs {
  class Tool_Agentflow (line 13) | class Tool_Agentflow implements INode {
    method constructor (line 29) | constructor() {
    method listTools (line 99) | async listTools(_: INodeData, options: ICommonObject): Promise<INodeOp...
    method listToolInputArgs (line 125) | async listToolInputArgs(nodeData: INodeData, options: ICommonObject): ...
    method listRuntimeStateKeys (line 180) | async listRuntimeStateKeys(_: INodeData, options: ICommonObject): Prom...
    method run (line 188) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/agentflow/prompt.ts
  constant DEFAULT_SUMMARIZER_TEMPLATE (line 1) | const DEFAULT_SUMMARIZER_TEMPLATE = `Progressively summarize the convers...
  constant DEFAULT_HUMAN_INPUT_DESCRIPTION (line 16) | const DEFAULT_HUMAN_INPUT_DESCRIPTION = `Summarize the conversation betw...
  constant DEFAULT_HUMAN_INPUT_DESCRIPTION_HTML (line 28) | const DEFAULT_HUMAN_INPUT_DESCRIPTION_HTML = `<p>Summarize the conversat...
  constant CONDITION_AGENT_SYSTEM_PROMPT (line 42) | const CONDITION_AGENT_SYSTEM_PROMPT = `<p>You are part of a multi-agent ...

FILE: packages/components/nodes/agentflow/utils.ts
  constant IMAGE_EXTENSIONS (line 26) | const IMAGE_EXTENSIONS = ['png', 'jpg', 'jpeg', 'gif', 'webp']
  constant MIME_TYPES (line 28) | const MIME_TYPES: Record<string, string> = {
  constant ARTIFACT_TYPES (line 41) | const ARTIFACT_TYPES: Record<string, string> = {

FILE: packages/components/nodes/agents/AirtableAgent/AirtableAgent.ts
  class Airtable_Agents (line 13) | class Airtable_Agents implements INode {
    method constructor (line 27) | constructor() {
    method init (line 93) | async init(): Promise<any> {
    method run (line 98) | async run(nodeData: INodeData, input: string, options: ICommonObject):...
  type AirtableLoaderResponse (line 229) | interface AirtableLoaderResponse {
  type AirtableLoaderPage (line 234) | interface AirtableLoaderPage {

FILE: packages/components/nodes/agents/AirtableAgent/core.ts
  function LoadPyodide (line 7) | async function LoadPyodide(): Promise<PyodideInterface> {

FILE: packages/components/nodes/agents/CSVAgent/CSVAgent.ts
  class CSV_Agents (line 13) | class CSV_Agents implements INode {
    method constructor (line 24) | constructor() {
    method init (line 76) | async init(): Promise<any> {
    method run (line 81) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/agents/CSVAgent/core.ts
  function LoadPyodide (line 7) | async function LoadPyodide(): Promise<PyodideInterface> {

FILE: packages/components/nodes/agents/ConversationalAgent/ConversationalAgent.ts
  constant DEFAULT_PREFIX (line 19) | const DEFAULT_PREFIX = `Assistant is a large language model trained by O...
  constant TEMPLATE_TOOL_RESPONSE (line 27) | const TEMPLATE_TOOL_RESPONSE = `TOOL RESPONSE:
  class ConversationalAgent_Agents (line 36) | class ConversationalAgent_Agents implements INode {
    method constructor (line 50) | constructor(fields?: { sessionId?: string }) {
    method init (line 107) | async init(nodeData: INodeData, input: string, options: ICommonObject)...
    method run (line 111) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/agents/ConversationalRetrievalToolAgent/ConversationalRetrievalToolAgent.ts
  class ConversationalRetrievalToolAgent_Agents (line 27) | class ConversationalRetrievalToolAgent_Agents implements INode {
    method constructor (line 40) | constructor(fields?: { sessionId?: string }) {
    method init (line 125) | async init(_nodeData: INodeData, _input: string, _options: ICommonObje...
    method run (line 129) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/agents/LlamaIndexAgents/AnthropicAgent/AnthropicAgent_LlamaIndex.ts
  class AnthropicAgent_LlamaIndex_Agents (line 7) | class AnthropicAgent_LlamaIndex_Agents implements INode {
    method constructor (line 22) | constructor(fields?: { sessionId?: string }) {
    method init (line 63) | async init(): Promise<any> {
    method run (line 67) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/agents/LlamaIndexAgents/OpenAIToolAgent/OpenAIToolAgent_LlamaIndex.ts
  class OpenAIFunctionAgent_LlamaIndex_Agents (line 16) | class OpenAIFunctionAgent_LlamaIndex_Agents implements INode {
    method constructor (line 31) | constructor(fields?: { sessionId?: string }) {
    method init (line 72) | async init(): Promise<any> {
    method run (line 76) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/agents/OpenAIAssistant/OpenAIAssistant.ts
  class OpenAIAssistant_Agents (line 26) | class OpenAIAssistant_Agents implements INode {
    method constructor (line 39) | constructor() {
    method listAssistants (line 104) | async listAssistants(_: INodeData, options: ICommonObject): Promise<IN...
    method init (line 133) | async init(): Promise<any> {
    method clearChatMessages (line 137) | async clearChatMessages(nodeData: INodeData, options: ICommonObject, s...
    method run (line 190) | async run(nodeData: INodeData, input: string, options: ICommonObject):...
  type ToolSubmissionParams (line 999) | interface ToolSubmissionParams {
  type ToolSubmissionResult (line 1017) | interface ToolSubmissionResult {
  function handleToolSubmission (line 1022) | async function handleToolSubmission(params: ToolSubmissionParams): Promi...
  type JSONSchema (line 1157) | interface JSONSchema {

FILE: packages/components/nodes/agents/ReActAgentChat/ReActAgentChat.ts
  class ReActAgentChat_Agents (line 16) | class ReActAgentChat_Agents implements INode {
    method constructor (line 30) | constructor(fields?: { sessionId?: string }) {
    method init (line 78) | async init(): Promise<any> {
    method run (line 82) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/agents/ReActAgentLLM/ReActAgentLLM.ts
  class ReActAgentLLM_Agents (line 14) | class ReActAgentLLM_Agents implements INode {
    method constructor (line 27) | constructor() {
    method init (line 69) | async init(): Promise<any> {
    method run (line 73) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/agents/ToolAgent/ToolAgent.ts
  class ToolAgent_Agents (line 24) | class ToolAgent_Agents implements INode {
    method constructor (line 36) | constructor(fields?: { sessionId?: string }) {
    method init (line 109) | async init(nodeData: INodeData, input: string, options: ICommonObject)...
    method run (line 113) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/agents/XMLAgent/XMLAgent.ts
  class XMLAgent_Agents (line 50) | class XMLAgent_Agents implements INode {
    method constructor (line 62) | constructor(fields?: { sessionId?: string }) {
    method init (line 116) | async init(): Promise<any> {
    method run (line 120) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/analytic/Arize/Arize.ts
  class Arize_Analytic (line 3) | class Arize_Analytic implements INode {
    method constructor (line 15) | constructor() {

FILE: packages/components/nodes/analytic/LangFuse/LangFuse.ts
  class LangFuse_Analytic (line 3) | class LangFuse_Analytic implements INode {
    method constructor (line 15) | constructor() {

FILE: packages/components/nodes/analytic/LangSmith/LangSmith.ts
  class LangSmith_Analytic (line 3) | class LangSmith_Analytic implements INode {
    method constructor (line 15) | constructor() {

FILE: packages/components/nodes/analytic/LangWatch/LangWatch.ts
  class LangWatch_Analytic (line 3) | class LangWatch_Analytic implements INode {
    method constructor (line 15) | constructor() {

FILE: packages/components/nodes/analytic/Lunary/Lunary.ts
  class Lunary_Analytic (line 3) | class Lunary_Analytic implements INode {
    method constructor (line 15) | constructor() {

FILE: packages/components/nodes/analytic/Opik/Opik.ts
  class Opik_Analytic (line 3) | class Opik_Analytic implements INode {
    method constructor (line 15) | constructor() {

FILE: packages/components/nodes/analytic/Phoenix/Phoenix.ts
  class Phoenix_Analytic (line 3) | class Phoenix_Analytic implements INode {
    method constructor (line 15) | constructor() {

FILE: packages/components/nodes/cache/InMemoryCache/InMemoryCache.ts
  class InMemoryCache (line 5) | class InMemoryCache implements INode {
    method constructor (line 17) | constructor() {
    method init (line 29) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  class InMemoryCacheExtended (line 48) | class InMemoryCacheExtended extends BaseCache {
    method constructor (line 51) | constructor(map: Map<string, any>) {
    method lookup (line 56) | lookup(prompt: string, llmKey: string): Promise<any | null> {
    method update (line 60) | async update(prompt: string, llmKey: string, value: any): Promise<void> {

FILE: packages/components/nodes/cache/InMemoryCache/InMemoryEmbeddingCache.ts
  class InMemoryEmbeddingCache (line 6) | class InMemoryEmbeddingCache implements INode {
    method constructor (line 18) | constructor() {
    method init (line 43) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  class InMemoryEmbeddingCacheExtended (line 74) | class InMemoryEmbeddingCacheExtended<T = any> extends BaseStore<string, ...
    method constructor (line 79) | constructor(map: Record<string, T>) {
    method mget (line 89) | async mget(keys: string[]) {
    method mset (line 98) | async mset(keyValuePairs: [string, T][]): Promise<void> {
    method mdelete (line 109) | async mdelete(keys: string[]): Promise<void> {
    method yieldKeys (line 121) | async *yieldKeys(prefix?: string | undefined): AsyncGenerator<string> {

FILE: packages/components/nodes/cache/MomentoCache/MomentoCache.ts
  class MomentoCache (line 5) | class MomentoCache implements INode {
    method constructor (line 17) | constructor() {
    method init (line 36) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/cache/RedisCache/RedisCache.ts
  class RedisCache (line 8) | class RedisCache implements INode {
    method constructor (line 20) | constructor() {
    method init (line 48) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/cache/RedisCache/RedisEmbeddingsCache.ts
  class RedisEmbeddingsCache (line 10) | class RedisEmbeddingsCache implements INode {
    method constructor (line 22) | constructor() {
    method init (line 63) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  class CacheBackedEmbeddings (line 117) | class CacheBackedEmbeddings extends Embeddings {
    method constructor (line 124) | constructor(fields: CacheBackedEmbeddingsFields & { redisClient?: Redi...
    method embedQuery (line 131) | async embedQuery(document: string): Promise<number[]> {
    method embedDocuments (line 137) | async embedDocuments(documents: string[]): Promise<number[][]> {
    method fromBytesStore (line 159) | static fromBytesStore(
  class EncoderBackedStore (line 183) | class EncoderBackedStore<K, V, SerializedType = any> extends BaseStore<K...
    method constructor (line 194) | constructor(fields: {
    method mget (line 207) | async mget(keys: K[]): Promise<(V | undefined)[]> {
    method mset (line 218) | async mset(keyValuePairs: [K, V][]): Promise<void> {
    method mdelete (line 226) | async mdelete(keys: K[]): Promise<void> {
    method yieldKeys (line 231) | async *yieldKeys(prefix?: string | undefined): AsyncGenerator<string |...
  function createDocumentStoreFromByteStore (line 236) | function createDocumentStoreFromByteStore(store: BaseStore<string, Uint8...

FILE: packages/components/nodes/cache/UpstashRedisCache/UpstashRedisCache.ts
  class UpstashRedisCache (line 4) | class UpstashRedisCache implements INode {
    method constructor (line 16) | constructor() {
    method init (line 35) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chains/ApiChain/GETApiChain.ts
  constant API_URL_RAW_PROMPT_TEMPLATE (line 8) | const API_URL_RAW_PROMPT_TEMPLATE = `You are given the below API Documen...
  constant API_RESPONSE_RAW_PROMPT_TEMPLATE (line 16) | const API_RESPONSE_RAW_PROMPT_TEMPLATE =
  class GETApiChain_Chains (line 19) | class GETApiChain_Chains implements INode {
    method constructor (line 31) | constructor() {
    method init (line 84) | async init(nodeData: INodeData): Promise<any> {
    method run (line 95) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/chains/ApiChain/OpenAPIChain.ts
  class OpenApiChain_Chains (line 10) | class OpenApiChain_Chains implements INode {
    method constructor (line 22) | constructor() {
    method init (line 70) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
    method run (line 74) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/chains/ApiChain/POSTApiChain.ts
  class POSTApiChain_Chains (line 8) | class POSTApiChain_Chains implements INode {
    method constructor (line 20) | constructor() {
    method init (line 73) | async init(nodeData: INodeData): Promise<any> {
    method run (line 84) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/chains/ApiChain/postCore.ts
  constant API_URL_RAW_PROMPT_TEMPLATE (line 8) | const API_URL_RAW_PROMPT_TEMPLATE = `You are given the below API Documen...
  constant API_RESPONSE_RAW_PROMPT_TEMPLATE (line 19) | const API_RESPONSE_RAW_PROMPT_TEMPLATE = `${API_URL_RAW_PROMPT_TEMPLATE}...
  type APIChainInput (line 39) | interface APIChainInput extends Omit<ChainInputs, 'memory'> {
  type APIChainOptions (line 49) | type APIChainOptions = {
  class APIChain (line 55) | class APIChain extends BaseChain implements APIChainInput {
    method inputKeys (line 68) | get inputKeys() {
    method outputKeys (line 72) | get outputKeys() {
    method constructor (line 76) | constructor(fields: APIChainInput) {
    method _call (line 87) | async _call(values: ChainValues, runManager?: CallbackManagerForChainR...
    method _chainType (line 114) | _chainType() {
    method deserialize (line 118) | static async deserialize(data: SerializedAPIChain) {
    method serialize (line 138) | serialize(): SerializedAPIChain {
    method fromLLMAndAPIDocs (line 147) | static fromLLMAndAPIDocs(

FILE: packages/components/nodes/chains/ConversationChain/ConversationChain.ts
  class ConversationChain_Chains (line 33) | class ConversationChain_Chains implements INode {
    method constructor (line 45) | constructor(fields?: { sessionId?: string }) {
    method init (line 105) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
    method run (line 110) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/chains/ConversationalRetrievalQAChain/ConversationalRetrievalQAChain.ts
  type RetrievalChainInput (line 29) | type RetrievalChainInput = {
  class ConversationalRetrievalQAChain_Chains (line 36) | class ConversationalRetrievalQAChain_Chains implements INode {
    method constructor (line 48) | constructor(fields?: { sessionId?: string }) {
    method init (line 153) | async init(nodeData: INodeData): Promise<any> {
    method run (line 170) | async run(nodeData: INodeData, input: string, options: ICommonObject):...
  type BufferMemoryExtendedInput (line 407) | interface BufferMemoryExtendedInput {
  class BufferMemory (line 414) | class BufferMemory extends FlowiseMemory implements MemoryMethods {
    method constructor (line 420) | constructor(fields: BufferMemoryInput & BufferMemoryExtendedInput) {
    method getChatMessages (line 428) | async getChatMessages(
    method addChatMessages (line 463) | async addChatMessages(): Promise<void> {
    method clearChatMessages (line 468) | async clearChatMessages(): Promise<void> {

FILE: packages/components/nodes/chains/ConversationalRetrievalQAChain/prompts.ts
  constant CUSTOM_QUESTION_GENERATOR_CHAIN_PROMPT (line 1) | const CUSTOM_QUESTION_GENERATOR_CHAIN_PROMPT = `Given the following conv...
  constant RESPONSE_TEMPLATE (line 8) | const RESPONSE_TEMPLATE = `I want you to act as a document that I am hav...
  constant QA_TEMPLATE (line 15) | const QA_TEMPLATE = `Use the following pieces of context to answer the q...
  constant REPHRASE_TEMPLATE (line 22) | const REPHRASE_TEMPLATE = `Given the following conversation and a follow...

FILE: packages/components/nodes/chains/GraphCypherQAChain/GraphCypherQAChain.ts
  constant CYPHER_WRITE_PATTERNS (line 14) | const CYPHER_WRITE_PATTERNS = [
  function validateCypherQuery (line 35) | function validateCypherQuery(query: string): void {
  function sanitizeUserInput (line 56) | function sanitizeUserInput(input: string, maxLength = 2000): string {
  function detectPromptInjection (line 110) | function detectPromptInjection(input: string): boolean {
  class GraphCypherQA_Chain (line 173) | class GraphCypherQA_Chain implements INode {
    method constructor (line 186) | constructor(fields?: { sessionId?: string }) {
    method init (line 269) | async init(nodeData: INodeData, input: string, options: ICommonObject)...
    method run (line 371) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/chains/LLMChain/LLMChain.ts
  class LLMChain_Chains (line 22) | class LLMChain_Chains implements INode {
    method constructor (line 35) | constructor() {
    method init (line 91) | async init(nodeData: INodeData, input: string, options: ICommonObject)...
    method run (line 143) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/chains/MultiPromptChain/MultiPromptChain.ts
  class MultiPromptChain_Chains (line 9) | class MultiPromptChain_Chains implements INode {
    method constructor (line 21) | constructor() {
    method init (line 54) | async init(nodeData: INodeData): Promise<any> {
    method run (line 77) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/chains/MultiRetrievalQAChain/MultiRetrievalQAChain.ts
  class MultiRetrievalQAChain_Chains (line 9) | class MultiRetrievalQAChain_Chains implements INode {
    method constructor (line 21) | constructor() {
    method init (line 60) | async init(nodeData: INodeData): Promise<any> {
    method run (line 84) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/chains/RetrievalQAChain/RetrievalQAChain.ts
  class RetrievalQAChain_Chains (line 10) | class RetrievalQAChain_Chains implements INode {
    method constructor (line 22) | constructor() {
    method init (line 54) | async init(nodeData: INodeData): Promise<any> {
    method run (line 62) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/chains/SqlDatabaseChain/SqlDatabaseChain.ts
  type DatabaseType (line 13) | type DatabaseType = 'sqlite' | 'postgres' | 'mssql' | 'mysql'
  class SqlDatabaseChain_Chains (line 15) | class SqlDatabaseChain_Chains implements INode {
    method constructor (line 26) | constructor() {
    method init (line 132) | async init(nodeData: INodeData): Promise<any> {
    method run (line 157) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/chains/VectaraChain/VectaraChain.ts
  class VectaraChain_Chains (line 39) | class VectaraChain_Chains implements INode {
    method constructor (line 50) | constructor() {
    method init (line 236) | async init(): Promise<any> {
    method run (line 240) | async run(nodeData: INodeData, input: string): Promise<string | object> {

FILE: packages/components/nodes/chains/VectorDBQAChain/VectorDBQAChain.ts
  class VectorDBQAChain_Chains (line 10) | class VectorDBQAChain_Chains implements INode {
    method constructor (line 22) | constructor() {
    method init (line 54) | async init(nodeData: INodeData): Promise<any> {
    method run (line 65) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/chatmodels/AWSBedrock/AWSChatBedrock.ts
  class AWSChatBedrock_ChatModels (line 9) | class AWSChatBedrock_ChatModels implements INode {
    method constructor (line 21) | constructor() {
    method listModels (line 124) | async listModels(): Promise<INodeOptionsValue[]> {
    method listRegions (line 127) | async listRegions(): Promise<INodeOptionsValue[]> {
    method init (line 132) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/AWSBedrock/FlowiseAWSChatBedrock.ts
  class BedrockChat (line 4) | class BedrockChat extends LCBedrockChat implements IVisionChatModal {
    method constructor (line 10) | constructor(id: string, fields: ChatBedrockConverseInput) {
    method setMultiModalOption (line 17) | setMultiModalOption(multiModalOption: IMultiModalOption): void {

FILE: packages/components/nodes/chatmodels/AzureChatOpenAI/AzureChatOpenAI.ts
  class AzureChatOpenAI_ChatModels (line 15) | class AzureChatOpenAI_ChatModels implements INode {
    method constructor (line 27) | constructor() {
    method listModels (line 200) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 205) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/AzureChatOpenAI/AzureChatOpenAI_LlamaIndex.ts
  type AzureOpenAIConfig (line 6) | interface AzureOpenAIConfig {
  constant ALL_AZURE_OPENAI_CHAT_MODELS (line 13) | const ALL_AZURE_OPENAI_CHAT_MODELS = {
  class AzureChatOpenAI_LlamaIndex_ChatModels (line 35) | class AzureChatOpenAI_LlamaIndex_ChatModels implements INode {
    method constructor (line 50) | constructor() {
    method listModels (line 113) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 118) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/AzureChatOpenAI/FlowiseAzureChatOpenAI.ts
  type AzureChatOpenAIConstructorFields (line 4) | type AzureChatOpenAIConstructorFields = ConstructorParameters<typeof Lan...
  class AzureChatOpenAI (line 6) | class AzureChatOpenAI extends LangchainAzureChatOpenAI implements IVisio...
    method constructor (line 13) | constructor(id: string, fields?: AzureChatOpenAIConstructorFields) {
    method setMultiModalOption (line 20) | setMultiModalOption(multiModalOption: IMultiModalOption): void {
    method addBuiltInTools (line 24) | addBuiltInTools(builtInTool: Record<string, any>): void {

FILE: packages/components/nodes/chatmodels/ChatAlibabaTongyi/ChatAlibabaTongyi.ts
  class ChatAlibabaTongyi_ChatModels (line 7) | class ChatAlibabaTongyi_ChatModels implements INode {
    method constructor (line 19) | constructor() {
    method init (line 65) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatAnthropic/ChatAnthropic.ts
  class ChatAnthropic_ChatModels (line 9) | class ChatAnthropic_ChatModels implements INode {
    method constructor (line 21) | constructor() {
    method listModels (line 176) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 181) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatAnthropic/ChatAnthropic_LlamaIndex.ts
  class ChatAnthropic_LlamaIndex_ChatModels (line 6) | class ChatAnthropic_LlamaIndex_ChatModels implements INode {
    method constructor (line 21) | constructor() {
    method listModels (line 76) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 81) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatAnthropic/FlowiseChatAnthropic.ts
  class ChatAnthropic (line 5) | class ChatAnthropic extends LangchainChatAnthropic implements IVisionCha...
    method constructor (line 11) | constructor(id: string, fields?: Partial<AnthropicInput> & BaseChatMod...
    method setMultiModalOption (line 19) | setMultiModalOption(multiModalOption: IMultiModalOption): void {

FILE: packages/components/nodes/chatmodels/ChatBaiduWenxin/ChatBaiduWenxin.ts
  class ChatBaiduWenxin_ChatModels (line 6) | class ChatBaiduWenxin_ChatModels implements INode {
    method constructor (line 18) | constructor() {
    method init (line 64) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatCerebras/ChatCerebras.ts
  class ChatCerebras_ChatModels (line 7) | class ChatCerebras_ChatModels implements INode {
    method constructor (line 19) | constructor() {
    method listModels (line 126) | async listModels(_: INodeData, __?: ICommonObject): Promise<INodeOptio...
    method init (line 131) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatCloudflareWorkersAI/ChatCloudflareWorkersAI.ts
  class ChatCloudflareWorkersAI_ChatModels (line 5) | class ChatCloudflareWorkersAI_ChatModels implements INode {
    method constructor (line 17) | constructor() {
    method init (line 51) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatCohere/ChatCohere.ts
  class ChatCohere_ChatModels (line 7) | class ChatCohere_ChatModels implements INode {
    method constructor (line 19) | constructor() {
    method listModels (line 68) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 73) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatCometAPI/ChatCometAPI.ts
  class ChatCometAPI_ChatModels (line 6) | class ChatCometAPI_ChatModels implements INode {
    method constructor (line 19) | constructor() {
    method init (line 107) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatFireworks/ChatFireworks.ts
  class ChatFireworks_ChatModels (line 6) | class ChatFireworks_ChatModels implements INode {
    method constructor (line 18) | constructor() {
    method init (line 65) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatFireworks/core.ts
  type FireworksUnsupportedArgs (line 12) | type FireworksUnsupportedArgs = 'frequencyPenalty' | 'presencePenalty' |...
  type FireworksUnsupportedCallOptions (line 14) | type FireworksUnsupportedCallOptions = 'functions' | 'function_call'
  type ChatFireworksCallOptions (line 16) | type ChatFireworksCallOptions = Partial<Omit<ChatOpenAICallOptions, Fire...
  type ChatFireworksParams (line 18) | type ChatFireworksParams = Partial<Omit<OpenAIChatInput, 'openAIApiKey' ...
  class ChatFireworks (line 30) | class ChatFireworks extends ChatOpenAICompletions<ChatFireworksCallOptio...
    method lc_name (line 31) | static lc_name() {
    method _llmType (line 35) | _llmType() {
    method lc_secrets (line 39) | get lc_secrets(): { [key: string]: string } | undefined {
    method constructor (line 52) | constructor(fields?: ChatFireworksParams) {
    method getLsParams (line 75) | getLsParams(options: any): LangSmithParams {
    method toJSON (line 81) | toJSON() {
    method completionWithRetry (line 111) | async completionWithRetry(

FILE: packages/components/nodes/chatmodels/ChatGoogleGenerativeAI/ChatGoogleGenerativeAI.ts
  class GoogleGenerativeAI_ChatModels (line 10) | class GoogleGenerativeAI_ChatModels implements INode {
    method constructor (line 22) | constructor() {
    method listModels (line 238) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 243) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatGoogleGenerativeAI/FlowiseChatGoogleGenerativeAI.ts
  constant DUMMY_SIGNATURE (line 39) | const DUMMY_SIGNATURE =
  type GoogleGenerativeAIPart (line 43) | type GoogleGenerativeAIPart = Part & {
  function getMessageAuthor (line 52) | function getMessageAuthor(message: BaseMessage) {
  function convertAuthorToRole (line 64) | function convertAuthorToRole(author: string): (typeof POSSIBLE_ROLES)[nu...
  function messageContentMedia (line 82) | function messageContentMedia(content: MessageContentComplex): Part {
  function inferToolNameFromPreviousMessages (line 102) | function inferToolNameFromPreviousMessages(message: any, previousMessage...
  function _getStandardContentBlockConverter (line 116) | function _getStandardContentBlockConverter(isMultimodalModel: boolean) {
  function _convertLangChainContentToPart (line 238) | function _convertLangChainContentToPart(content: MessageContentComplex, ...
  function convertMessageContentToParts (line 314) | function convertMessageContentToParts(
  function convertBaseMessagesToContent (line 401) | function convertBaseMessagesToContent(
  function convertUsageMetadata (line 461) | function convertUsageMetadata(usageMetadata: GenerateContentResponse['us...
  function mapGenerateContentResultToChatResult (line 478) | function mapGenerateContentResultToChatResult(
  function convertResponseContentToChatGenerationChunk (line 625) | function convertResponseContentToChatGenerationChunk(
  class ChatGoogleGenerativeAI (line 769) | class ChatGoogleGenerativeAI extends LangchainChatGoogleGenerativeAI imp...
    method constructor (line 775) | constructor(id: string, fields: GoogleGenerativeAIChatInput) {
    method _generate (line 785) | async _generate(
    method _streamResponseChunks (line 853) | async *_streamResponseChunks(
    method setMultiModalOption (line 933) | setMultiModalOption(multiModalOption: IMultiModalOption): void {

FILE: packages/components/nodes/chatmodels/ChatGoogleVertexAI/ChatGoogleVertexAI.ts
  class ChatVertexAI (line 17) | class ChatVertexAI extends LcChatVertexAI implements IVisionChatModal {
    method constructor (line 23) | constructor(id: string, fields?: ChatVertexAIInput) {
    method setMultiModalOption (line 35) | setMultiModalOption(multiModalOption: IMultiModalOption): void {
  class GoogleVertexAI_ChatModels (line 40) | class GoogleVertexAI_ChatModels implements INode {
    method constructor (line 52) | constructor() {
    method listModels (line 203) | async listModels(): Promise<INodeOptionsValue[]> {
    method listRegions (line 206) | async listRegions(): Promise<INodeOptionsValue[]> {
    method init (line 211) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatHuggingFace/ChatHuggingFace.ts
  class ChatHuggingFace_ChatModels (line 6) | class ChatHuggingFace_ChatModels implements INode {
    method constructor (line 18) | constructor() {
    method init (line 115) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatHuggingFace/core.ts
  type HFInput (line 6) | interface HFInput {
  class HuggingFaceInference (line 19) | class HuggingFaceInference extends LLM implements HFInput {
    method lc_secrets (line 20) | get lc_secrets(): { [key: string]: string } | undefined {
    method constructor (line 46) | constructor(fields?: Partial<HFInput> & BaseLLMParams) {
    method _llmType (line 66) | _llmType() {
    method invocationParams (line 70) | invocationParams(options?: this['ParsedCallOptions']) {
    method _streamResponseChunks (line 88) | async *_streamResponseChunks(
    method _call (line 130) | async _call(prompt: string, options: this['ParsedCallOptions']): Promi...
    method _prepareHFInference (line 164) | private async _prepareHFInference() {
    method imports (line 190) | static async imports(): Promise<{

FILE: packages/components/nodes/chatmodels/ChatIBMWatsonx/ChatIBMWatsonx.ts
  type WatsonxAuth (line 6) | interface WatsonxAuth {
  class ChatIBMWatsonx_ChatModels (line 15) | class ChatIBMWatsonx_ChatModels implements INode {
    method constructor (line 27) | constructor() {
    method init (line 135) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatLitellm/ChatLitellm.ts
  class ChatLitellm_ChatModels (line 8) | class ChatLitellm_ChatModels implements INode {
    method constructor (line 20) | constructor() {
    method init (line 107) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatLocalAI/ChatLocalAI.ts
  class ChatLocalAI_ChatModels (line 6) | class ChatLocalAI_ChatModels implements INode {
    method constructor (line 18) | constructor() {
    method init (line 96) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatMistral/ChatMistral.ts
  class ChatMistral_ChatModels (line 7) | class ChatMistral_ChatModels implements INode {
    method constructor (line 19) | constructor() {
    method listModels (line 114) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 119) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatMistral/ChatMistral_LlamaIndex.ts
  class ChatMistral_LlamaIndex_ChatModels (line 6) | class ChatMistral_LlamaIndex_ChatModels implements INode {
    method constructor (line 21) | constructor() {
    method listModels (line 76) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 81) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatNemoGuardrails/ChatNemoGuardrails.ts
  type ChatNemoGuardrailsCallOptions (line 10) | interface ChatNemoGuardrailsCallOptions extends BaseChatModelCallOptions {
  type ChatNemoGuardrailsInput (line 17) | interface ChatNemoGuardrailsInput extends BaseChatModelParams {
  class ChatNemoGuardrailsModel (line 26) | class ChatNemoGuardrailsModel extends BaseChatModel<ChatNemoGuardrailsCa...
    method _llmType (line 36) | _llmType(): string {
    method _generate (line 40) | _generate(messages: BaseMessage[], options: this['ParsedCallOptions'],...
    method constructor (line 59) | constructor({ id, fields }: { id: string; fields: Partial<ChatNemoGuar...
  class ChatNemoGuardrailsChatModel (line 72) | class ChatNemoGuardrailsChatModel implements INode {
    method constructor (line 84) | constructor() {
    method init (line 109) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/chatmodels/ChatNemoGuardrails/NemoClient.ts
  type Config (line 3) | interface Config {
  class ClientConfig (line 8) | class ClientConfig implements Config {
    method constructor (line 12) | constructor(baseUrl: string, configurationId: string) {
  class NemoClient (line 18) | class NemoClient {
    method constructor (line 21) | constructor(baseUrl: string, configurationId: string) {
    method getRoleFromMessage (line 25) | getRoleFromMessage(message: BaseMessage): string {
    method getContentFromMessage (line 34) | getContentFromMessage(message: BaseMessage): string {
    method buildBody (line 38) | buildBody(messages: BaseMessage[], configurationId: string): any {
    method chat (line 54) | async chat(messages: BaseMessage[]): Promise<AIMessage[]> {

FILE: packages/components/nodes/chatmodels/ChatNvdiaNIM/ChatNvdiaNIM.ts
  class ChatNvdiaNIM_ChatModels (line 6) | class ChatNvdiaNIM_ChatModels implements INode {
    method constructor (line 18) | constructor() {
    method init (line 120) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatOllama/ChatOllama.ts
  class ChatOllama_ChatModels (line 8) | class ChatOllama_ChatModels implements INode {
    method constructor (line 20) | constructor() {
    method init (line 224) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatOllama/ChatOllama_LlamaIndex.ts
  class ChatOllama_LlamaIndex_ChatModels (line 5) | class ChatOllama_LlamaIndex_ChatModels implements INode {
    method constructor (line 19) | constructor() {
    method init (line 178) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/chatmodels/ChatOllama/FlowiseChatOllama.ts
  class ChatOllama (line 4) | class ChatOllama extends LCChatOllama implements IVisionChatModal {
    method constructor (line 10) | constructor(id: string, fields?: ChatOllamaInput) {
    method setMultiModalOption (line 16) | setMultiModalOption(multiModalOption: IMultiModalOption): void {

FILE: packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI.ts
  class ChatOpenAI_ChatModels (line 9) | class ChatOpenAI_ChatModels implements INode {
    method constructor (line 21) | constructor() {
    method listModels (line 216) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 221) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatOpenAI/ChatOpenAI_LlamaIndex.ts
  class ChatOpenAI_LlamaIndex_LLMs (line 6) | class ChatOpenAI_LlamaIndex_LLMs implements INode {
    method constructor (line 21) | constructor() {
    method listModels (line 91) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 96) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatOpenAI/FlowiseChatOpenAI.ts
  class ChatOpenAI (line 4) | class ChatOpenAI extends LangchainChatOpenAI implements IVisionChatModal {
    method constructor (line 11) | constructor(id: string, fields?: ChatOpenAIFields) {
    method setMultiModalOption (line 18) | setMultiModalOption(multiModalOption: IMultiModalOption): void {
    method addBuiltInTools (line 22) | addBuiltInTools(builtInTool: Record<string, any>): void {

FILE: packages/components/nodes/chatmodels/ChatOpenAICustom/ChatOpenAICustom.ts
  class ChatOpenAICustom_ChatModels (line 6) | class ChatOpenAICustom_ChatModels implements INode {
    method constructor (line 18) | constructor() {
    method init (line 122) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatOpenRouter/ChatOpenRouter.ts
  class ChatOpenRouter_ChatModels (line 7) | class ChatOpenRouter_ChatModels implements INode {
    method constructor (line 19) | constructor() {
    method init (line 133) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatOpenRouter/FlowiseChatOpenRouter.ts
  class ChatOpenRouter (line 4) | class ChatOpenRouter extends LangchainChatOpenAI implements IVisionChatM...
    method constructor (line 10) | constructor(id: string, fields?: ChatOpenAIFields) {
    method setMultiModalOption (line 17) | setMultiModalOption(multiModalOption: IMultiModalOption): void {

FILE: packages/components/nodes/chatmodels/ChatPerplexity/ChatPerplexity.ts
  class ChatPerplexity_ChatModels (line 8) | class ChatPerplexity_ChatModels implements INode {
    method constructor (line 20) | constructor() {
    method listModels (line 169) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 174) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatPerplexity/FlowiseChatPerplexity.ts
  class ChatPerplexity (line 5) | class ChatPerplexity extends LangchainChatPerplexity implements IVisionC...
    method constructor (line 11) | constructor(id: string, fields: PerplexityChatInput) {
    method setMultiModalOption (line 19) | setMultiModalOption(multiModalOption: IMultiModalOption): void {

FILE: packages/components/nodes/chatmodels/ChatSambanova/ChatSambanova.ts
  class ChatSambanova_ChatModels (line 6) | class ChatSambanova_ChatModels implements INode {
    method constructor (line 18) | constructor() {
    method init (line 82) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatTogetherAI/ChatTogetherAI.ts
  class ChatTogetherAI_ChatModels (line 6) | class ChatTogetherAI_ChatModels implements INode {
    method constructor (line 18) | constructor() {
    method init (line 65) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatTogetherAI/ChatTogether_LlamaIndex.ts
  class ChatTogetherAI_LlamaIndex_ChatModels (line 5) | class ChatTogetherAI_LlamaIndex_ChatModels implements INode {
    method constructor (line 20) | constructor() {
    method init (line 57) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatXAI/ChatXAI.ts
  class ChatXAI_ChatModels (line 7) | class ChatXAI_ChatModels implements INode {
    method constructor (line 19) | constructor() {
    method init (line 91) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/ChatXAI/FlowiseChatXAI.ts
  class ChatXAI (line 4) | class ChatXAI extends LCChatXAI implements IVisionChatModal {
    method constructor (line 10) | constructor(id: string, fields?: ChatXAIInput) {
    method setMultiModalOption (line 17) | setMultiModalOption(multiModalOption: IMultiModalOption): void {

FILE: packages/components/nodes/chatmodels/Deepseek/Deepseek.ts
  class Deepseek_ChatModels (line 7) | class Deepseek_ChatModels implements INode {
    method constructor (line 19) | constructor() {
    method listModels (line 136) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 141) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/Groq/ChatGroq_LlamaIndex.ts
  class ChatGroq_LlamaIndex_ChatModels (line 6) | class ChatGroq_LlamaIndex_ChatModels implements INode {
    method constructor (line 21) | constructor() {
    method listModels (line 69) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 74) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/chatmodels/Groq/Groq.ts
  class Groq_ChatModels (line 7) | class Groq_ChatModels implements INode {
    method constructor (line 19) | constructor() {
    method listModels (line 77) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 82) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/API/APILoader.ts
  class API_DocumentLoaders (line 11) | class API_DocumentLoaders implements INode {
    method constructor (line 23) | constructor() {
    method init (line 120) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  type ApiLoaderParams (line 221) | interface ApiLoaderParams {
  class ApiLoader (line 229) | class ApiLoader extends BaseDocumentLoader {
    method constructor (line 240) | constructor({ url, headers, body, method, ca }: ApiLoaderParams) {
    method load (line 249) | public async load(): Promise<IDocument[]> {
    method executeGetRequest (line 257) | protected async executeGetRequest(url: string, headers?: ICommonObject...
    method executePostRequest (line 275) | protected async executePostRequest(url: string, headers?: ICommonObjec...

FILE: packages/components/nodes/documentloaders/Airtable/Airtable.ts
  class Airtable_DocumentLoaders (line 10) | class Airtable_DocumentLoaders implements INode {
    method constructor (line 23) | constructor() {
    method init (line 143) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  type AirtableLoaderParams (line 236) | interface AirtableLoaderParams {
  type AirtableLoaderRequest (line 247) | interface AirtableLoaderRequest {
  type AirtableLoaderResponse (line 255) | interface AirtableLoaderResponse {
  type AirtableLoaderPage (line 260) | interface AirtableLoaderPage {
  class AirtableLoader (line 266) | class AirtableLoader extends BaseDocumentLoader {
    method constructor (line 283) | constructor({
    method load (line 304) | public async load(): Promise<IDocument[]> {
    method fetchAirtableData (line 311) | protected async fetchAirtableData(url: string, data: AirtableLoaderReq...
    method createDocumentFromPage (line 329) | private createDocumentFromPage(page: AirtableLoaderPage): IDocument {
    method loadLimit (line 342) | private async loadLimit(): Promise<IDocument[]> {
    method loadAll (line 377) | private async loadAll(): Promise<IDocument[]> {

FILE: packages/components/nodes/documentloaders/ApifyWebsiteContentCrawler/ApifyWebsiteContentCrawler.ts
  class ApifyWebsiteContentCrawler_DocumentLoaders (line 8) | class ApifyWebsiteContentCrawler_DocumentLoaders implements INode {
    method constructor (line 21) | constructor() {
    method init (line 138) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/BraveSearchAPI/BraveSearchAPI.ts
  class BraveSearchAPI_DocumentLoaders (line 8) | class BraveSearchAPI_DocumentLoaders implements INode {
    method constructor (line 21) | constructor() {
    method init (line 85) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/Cheerio/Cheerio.ts
  class Cheerio_DocumentLoaders (line 10) | class Cheerio_DocumentLoaders implements INode {
    method constructor (line 22) | constructor() {
    method init (line 119) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/Confluence/Confluence.ts
  class Confluence_DocumentLoaders (line 7) | class Confluence_DocumentLoaders implements INode {
    method constructor (line 20) | constructor() {
    method init (line 99) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/Csv/Csv.ts
  class Csv_DocumentLoaders (line 6) | class Csv_DocumentLoaders implements INode {
    method constructor (line 18) | constructor() {
    method getFiles (line 84) | getFiles(nodeData: INodeData) {
    method getFileData (line 110) | async getFileData(file: string, { orgId, chatflowid }: { orgId: string...
    method init (line 120) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/Csv/CsvLoader.ts
  type CSVLoaderOptions (line 4) | type CSVLoaderOptions = {
  class CSVLoader (line 19) | class CSVLoader extends TextLoader {
    method constructor (line 22) | constructor(filePathOrBlob: ConstructorParameters<typeof TextLoader>[0...
    method parse (line 42) | async parse(raw: string): Promise<string[]> {

FILE: packages/components/nodes/documentloaders/CustomDocumentLoader/CustomDocumentLoader.ts
  class CustomDocumentLoader_DocumentLoaders (line 5) | class CustomDocumentLoader_DocumentLoaders implements INode {
    method constructor (line 17) | constructor() {
    method init (line 67) | async init(nodeData: INodeData, input: string, options: ICommonObject)...

FILE: packages/components/nodes/documentloaders/DocumentStore/DocStoreLoader.ts
  class DocStore_DocumentLoaders (line 6) | class DocStore_DocumentLoaders implements INode {
    method constructor (line 18) | constructor() {
    method listStores (line 53) | async listStores(_: INodeData, options: ICommonObject): Promise<INodeO...
    method init (line 79) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/Docx/Docx.ts
  class Docx_DocumentLoaders (line 7) | class Docx_DocumentLoaders implements INode {
    method constructor (line 19) | constructor() {
    method init (line 77) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/Epub/Epub.ts
  class Epub_DocumentLoaders (line 9) | class Epub_DocumentLoaders implements INode {
    method constructor (line 21) | constructor() {
    method init (line 96) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
    method extractDocs (line 193) | private async extractDocs(usage: string, filePath: string, textSplitte...

FILE: packages/components/nodes/documentloaders/Figma/Figma.ts
  class Figma_DocumentLoaders (line 7) | class Figma_DocumentLoaders implements INode {
    method constructor (line 20) | constructor() {
    method init (line 100) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/File/File.ts
  class File_DocumentLoaders (line 16) | class File_DocumentLoaders implements INode {
    method constructor (line 28) | constructor() {
    method init (line 122) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  type LoadersMapping (line 358) | interface LoadersMapping {
  class MultiFileLoader (line 362) | class MultiFileLoader extends BaseDocumentLoader {
    method constructor (line 363) | constructor(public fileBlobs: { blob: Blob; ext: string }[], public lo...
    method load (line 371) | public async load(): Promise<Document[]> {

FILE: packages/components/nodes/documentloaders/FireCrawl/FireCrawl.ts
  type FirecrawlAppConfig (line 11) | interface FirecrawlAppConfig {
  type FirecrawlDocumentMetadata (line 16) | interface FirecrawlDocumentMetadata {
  type FirecrawlDocument (line 26) | interface FirecrawlDocument {
  type ScrapeResponse (line 40) | interface ScrapeResponse {
  type CrawlResponse (line 46) | interface CrawlResponse {
  type CrawlStatusResponse (line 54) | interface CrawlStatusResponse {
  type ExtractResponse (line 64) | interface ExtractResponse {
  type SearchResult (line 71) | interface SearchResult {
  type SearchResponse (line 77) | interface SearchResponse {
  type SearchRequest (line 83) | interface SearchRequest {
  type Params (line 94) | interface Params {
  type ExtractRequest (line 103) | interface ExtractRequest {
  type ExtractStatusResponse (line 126) | interface ExtractStatusResponse {
  class FirecrawlApp (line 134) | class FirecrawlApp {
    method constructor (line 138) | constructor({ apiKey = null, apiUrl = null }: FirecrawlAppConfig) {
    method scrapeUrl (line 146) | async scrapeUrl(url: string, params: Params | null = null): Promise<Sc...
    method crawlUrl (line 209) | async crawlUrl(
    method extract (line 319) | async extract(
    method search (line 423) | async search(request: SearchRequest): Promise<SearchResponse> {
    method prepareHeaders (line 461) | private prepareHeaders(idempotencyKey?: string): AxiosRequestHeaders {
    method postRequest (line 469) | private async postRequest(url: string, data: Params, headers: AxiosReq...
    method getRequest (line 474) | private getRequest(url: string, headers: AxiosRequestHeaders): Promise...
    method monitorJobStatus (line 478) | private async monitorJobStatus(jobId: string, headers: AxiosRequestHea...
    method monitorExtractStatus (line 505) | private async monitorExtractStatus(jobId: string, headers: AxiosReques...
    method handleError (line 532) | private handleError(response: AxiosResponse, action: string): void {
  type FirecrawlLoaderParameters (line 543) | interface FirecrawlLoaderParameters {
  class FireCrawlLoader (line 552) | class FireCrawlLoader extends BaseDocumentLoader {
    method constructor (line 560) | constructor(loaderParams: FirecrawlLoaderParameters) {
    method load (line 575) | public async load(): Promise<DocumentInterface[]> {
  class FireCrawl_DocumentLoaders (line 690) | class FireCrawl_DocumentLoaders implements INode {
    method constructor (line 703) | constructor() {
    method init (line 935) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/Folder/Folder.ts
  class Folder_DocumentLoaders (line 15) | class Folder_DocumentLoaders implements INode {
    method constructor (line 27) | constructor() {
    method init (line 119) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/documentloaders/Gitbook/Gitbook.ts
  class Gitbook_DocumentLoaders (line 7) | class Gitbook_DocumentLoaders implements INode {
    method constructor (line 19) | constructor() {
    method init (line 84) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/documentloaders/Github/Github.ts
  class Github_DocumentLoaders (line 7) | class Github_DocumentLoaders implements INode {
    method constructor (line 20) | constructor() {
    method init (line 144) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/GoogleDrive/GoogleDrive.ts
  class GoogleDrive_DocumentLoaders (line 36) | class GoogleDrive_DocumentLoaders implements INode {
    method constructor (line 49) | constructor() {
    method listFiles (line 202) | async listFiles(nodeData: INodeData, options: ICommonObject): Promise<...
    method init (line 277) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
    method getFileInfo (line 403) | private async getFileInfo(fileId: string, accessToken: string, include...
    method getFilesFromFolder (line 434) | private async getFilesFromFolder(
    method shouldProcessFile (line 515) | private shouldProcessFile(fileInfo: any, fileTypes: string[] | undefin...
    method processFile (line 522) | private async processFile(fileInfo: any, accessToken: string): Promise...
    method isSupportedBinaryFile (line 562) | private isSupportedBinaryFile(mimeType: string): boolean {
    method processBinaryFile (line 574) | private async processBinaryFile(fileInfo: any, accessToken: string): P...
    method createTempFile (line 680) | private async createTempFile(buffer: Buffer, fileName: string, mimeTyp...
    method downloadBinaryFile (line 706) | private async downloadBinaryFile(fileId: string, accessToken: string):...
    method downloadFile (line 723) | private async downloadFile(fileId: string, accessToken: string): Promi...
    method isGoogleWorkspaceFile (line 745) | private isGoogleWorkspaceFile(mimeType: string): boolean {
    method isTextBasedFile (line 755) | private isTextBasedFile(mimeType: string): boolean {
    method exportGoogleWorkspaceFileAsBuffer (line 771) | private async exportGoogleWorkspaceFileAsBuffer(

FILE: packages/components/nodes/documentloaders/GoogleSheets/GoogleSheets.ts
  class GoogleSheets_DocumentLoaders (line 13) | class GoogleSheets_DocumentLoaders implements INode {
    method constructor (line 26) | constructor() {
    method listSpreadsheets (line 140) | async listSpreadsheets(nodeData: INodeData, options: ICommonObject): P...
    method init (line 191) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
    method getSpreadsheetMetadata (line 313) | private async getSpreadsheetMetadata(spreadsheetId: string, accessToke...
    method getSheetData (line 331) | private async getSheetData(spreadsheetId: string, range: string, value...
    method convertSheetToDocument (line 354) | private convertSheetToDocument(

FILE: packages/components/nodes/documentloaders/Jira/Jira.ts
  class Jira_DocumentLoaders (line 7) | class Jira_DocumentLoaders implements INode {
    method constructor (line 20) | constructor() {
    method init (line 106) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/Json/Json.ts
  class Json_DocumentLoaders (line 35) | class Json_DocumentLoaders implements INode {
    method constructor (line 47) | constructor() {
    method init (line 130) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  class TextLoader (line 262) | class TextLoader extends BaseDocumentLoader {
    method constructor (line 263) | constructor(public filePathOrBlob: string | Blob) {
    method parse (line 267) | protected async parse(raw: string): Promise<{ pageContent: string; met...
    method load (line 271) | public async load(): Promise<Document[]> {
    method imports (line 305) | static async imports(): Promise<{
  class JSONLoader (line 318) | class JSONLoader extends TextLoader {
    method constructor (line 323) | constructor(
    method parse (line 337) | protected async parse(raw: string): Promise<Document[]> {
    method extractContent (line 372) | private extractContent(json: any): string[] {
    method extractMetadata (line 381) | private extractMetadata(json: any): Record<string, any> {
    method formatObjectAsKeyValue (line 405) | private formatObjectAsKeyValue(obj: any, prefix: string = ''): string {
    method extractArrayStringsFromObject (line 431) | private extractArrayStringsFromObject(
    method getTargetedEntries (line 483) | private getTargetedEntries(json: object, pointers: jsonpointer[]): obj...

FILE: packages/components/nodes/documentloaders/Jsonlines/Jsonlines.ts
  class Jsonlines_DocumentLoaders (line 30) | class Jsonlines_DocumentLoaders implements INode {
    method constructor (line 42) | constructor() {
    method init (line 113) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  class TextLoader (line 239) | class TextLoader extends BaseDocumentLoader {
    method constructor (line 240) | constructor(public filePathOrBlob: string | Blob) {
    method parse (line 244) | protected async parse(raw: string): Promise<{ pageContent: string; met...
    method load (line 248) | public async load(): Promise<Document[]> {
    method imports (line 282) | static async imports(): Promise<{
  class JSONLinesLoader (line 295) | class JSONLinesLoader extends TextLoader {
    method constructor (line 299) | constructor(filePathOrBlob: string | Blob, public pointer: string, met...
    method getAdditionalMetadata (line 306) | async getAdditionalMetadata(): Promise<ICommonObject[]> {
    method parse (line 310) | protected async parse(raw: string): Promise<{ pageContent: string; met...

FILE: packages/components/nodes/documentloaders/MicrosoftExcel/ExcelLoader.ts
  class LoadOfSheet (line 12) | class LoadOfSheet extends BufferLoader {
    method constructor (line 15) | constructor(filePathOrBlob: string | Blob) {
    method parse (line 29) | async parse(raw: Buffer, metadata: Document['metadata']): Promise<Docu...

FILE: packages/components/nodes/documentloaders/MicrosoftExcel/MicrosoftExcel.ts
  class MicrosoftExcel_DocumentLoaders (line 6) | class MicrosoftExcel_DocumentLoaders implements INode {
    method constructor (line 18) | constructor() {
    method getFiles (line 76) | getFiles(nodeData: INodeData) {
    method getFileData (line 102) | async getFileData(file: string, { orgId, chatflowid }: { orgId: string...
    method init (line 112) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/MicrosoftPowerpoint/MicrosoftPowerpoint.ts
  class MicrosoftPowerpoint_DocumentLoaders (line 6) | class MicrosoftPowerpoint_DocumentLoaders implements INode {
    method constructor (line 18) | constructor() {
    method getFiles (line 76) | getFiles(nodeData: INodeData) {
    method getFileData (line 102) | async getFileData(file: string, { orgId, chatflowid }: { orgId: string...
    method init (line 112) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/MicrosoftPowerpoint/PowerpointLoader.ts
  class PowerpointLoader (line 11) | class PowerpointLoader extends BufferLoader {
    method constructor (line 14) | constructor(filePathOrBlob: string | Blob) {
    method parse (line 26) | async parse(raw: Buffer, metadata: Document['metadata']): Promise<Docu...
    method splitIntoSlides (line 67) | private splitIntoSlides(content: string): string[] {

FILE: packages/components/nodes/documentloaders/MicrosoftWord/MicrosoftWord.ts
  class MicrosoftWord_DocumentLoaders (line 6) | class MicrosoftWord_DocumentLoaders implements INode {
    method constructor (line 18) | constructor() {
    method getFiles (line 76) | getFiles(nodeData: INodeData) {
    method getFileData (line 102) | async getFileData(file: string, { orgId, chatflowid }: { orgId: string...
    method init (line 112) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/MicrosoftWord/WordLoader.ts
  class WordLoader (line 11) | class WordLoader extends BufferLoader {
    method constructor (line 14) | constructor(filePathOrBlob: string | Blob) {
    method parse (line 26) | async parse(raw: Buffer, metadata: Document['metadata']): Promise<Docu...
    method splitIntoSections (line 67) | private splitIntoSections(content: string): string[] {

FILE: packages/components/nodes/documentloaders/Notion/NotionDB.ts
  class NotionDB_DocumentLoaders (line 7) | class NotionDB_DocumentLoaders implements INode {
    method constructor (line 20) | constructor() {
    method init (line 84) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/Notion/NotionFolder.ts
  class NotionFolder_DocumentLoaders (line 7) | class NotionFolder_DocumentLoaders implements INode {
    method constructor (line 19) | constructor() {
    method init (line 78) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/documentloaders/Notion/NotionPage.ts
  class NotionPage_DocumentLoaders (line 7) | class NotionPage_DocumentLoaders implements INode {
    method constructor (line 20) | constructor() {
    method init (line 85) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/Oxylabs/Oxylabs.ts
  type OxylabsDocument (line 8) | interface OxylabsDocument extends DocumentInterface {}
  type OxylabsResponse (line 10) | interface OxylabsResponse {
  type Result (line 15) | interface Result {
  type Job (line 27) | interface Job {
  type OxylabsLoaderParameters (line 58) | interface OxylabsLoaderParameters {
  class OxylabsLoader (line 69) | class OxylabsLoader extends BaseDocumentLoader {
    method constructor (line 72) | constructor(loaderParams: OxylabsLoaderParameters) {
    method sendAPIRequest (line 77) | private async sendAPIRequest<R>(params: any): Promise<AxiosResponse<R,...
    method load (line 97) | public async load(): Promise<DocumentInterface[]> {
  class Oxylabs_DocumentLoaders (line 126) | class Oxylabs_DocumentLoaders implements INode {
    method constructor (line 139) | constructor() {
    method init (line 290) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/Pdf/Pdf.ts
  class Pdf_DocumentLoaders (line 7) | class Pdf_DocumentLoaders implements INode {
    method constructor (line 19) | constructor() {
    method init (line 100) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
    method extractDocs (line 193) | private async extractDocs(usage: string, bf: Buffer, legacyBuild: bool...

FILE: packages/components/nodes/documentloaders/PlainText/PlainText.ts
  class PlainText_DocumentLoaders (line 7) | class PlainText_DocumentLoaders implements INode {
    method constructor (line 19) | constructor() {
    method init (line 79) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/documentloaders/Playwright/Playwright.ts
  class Playwright_DocumentLoaders (line 14) | class Playwright_DocumentLoaders implements INode {
    method constructor (line 26) | constructor() {
    method init (line 161) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/Puppeteer/Puppeteer.ts
  class Puppeteer_DocumentLoaders (line 10) | class Puppeteer_DocumentLoaders implements INode {
    method constructor (line 22) | constructor() {
    method init (line 157) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/S3Directory/S3Directory.ts
  class S3_DocumentLoaders (line 20) | class S3_DocumentLoaders implements INode {
    method constructor (line 33) | constructor() {
    method listRegions (line 139) | async listRegions(): Promise<INodeOptionsValue[]> {
    method init (line 144) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/S3File/S3File.ts
  class S3_DocumentLoaders (line 28) | class S3_DocumentLoaders implements INode {
    method constructor (line 41) | constructor() {
    method listRegions (line 558) | async listRegions(): Promise<INodeOptionsValue[]> {
    method init (line 563) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
    method processWithBuiltInLoaders (line 605) | private async processWithBuiltInLoaders(
    method processWithUnstructured (line 716) | private async processWithUnstructured(
    method getMimeTypeFromExtension (line 824) | private getMimeTypeFromExtension(fileName: string): string {
    method processFile (line 845) | private async processFile(fileInfo: any, buffer: Buffer): Promise<IDoc...
    method isTextBasedFile (line 881) | private isTextBasedFile(mimeType: string): boolean {
    method isSupportedBinaryFile (line 897) | private isSupportedBinaryFile(mimeType: string): boolean {
    method processBinaryFile (line 910) | private async processBinaryFile(fileInfo: any, buffer: Buffer): Promis...
    method createTempFile (line 995) | private async createTempFile(buffer: Buffer, fileName: string, mimeTyp...

FILE: packages/components/nodes/documentloaders/SearchApi/SearchAPI.ts
  class SearchAPI_DocumentLoaders (line 9) | class SearchAPI_DocumentLoaders implements INode {
    method constructor (line 22) | constructor() {
    method init (line 94) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/SerpApi/SerpAPI.ts
  class SerpAPI_DocumentLoaders (line 7) | class SerpAPI_DocumentLoaders implements INode {
    method constructor (line 20) | constructor() {
    method init (line 84) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/Spider/Spider.ts
  type SpiderLoaderParameters (line 9) | interface SpiderLoaderParameters {
  class SpiderLoader (line 18) | class SpiderLoader extends BaseDocumentLoader {
    method constructor (line 26) | constructor(loaderParams: SpiderLoaderParameters) {
    method load (line 41) | public async load(): Promise<DocumentInterface[]> {
  class Spider_DocumentLoaders (line 77) | class Spider_DocumentLoaders implements INode {
    method constructor (line 90) | constructor() {
    method init (line 188) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/Spider/SpiderApp.ts
  type SpiderAppConfig (line 4) | interface SpiderAppConfig {
  type SpiderDocumentMetadata (line 9) | interface SpiderDocumentMetadata {
  type SpiderDocument (line 16) | interface SpiderDocument {
  type ScrapeResponse (line 28) | interface ScrapeResponse {
  type CrawlResponse (line 34) | interface CrawlResponse {
  type Params (line 40) | interface Params {
  class SpiderApp (line 44) | class SpiderApp {
    method constructor (line 48) | constructor({ apiKey = null, apiUrl = null }: SpiderAppConfig) {
    method scrapeUrl (line 56) | async scrapeUrl(url: string, params: Params | null = null): Promise<Sc...
    method crawlUrl (line 78) | async crawlUrl(url: string, params: Params | null = null, idempotencyK...
    method prepareHeaders (line 95) | private prepareHeaders(idempotencyKey?: string): AxiosRequestHeaders {
    method postRequest (line 103) | private postRequest(url: string, data: Params, headers: AxiosRequestHe...
    method handleError (line 107) | private handleError(response: AxiosResponse, action: string): void {

FILE: packages/components/nodes/documentloaders/Text/Text.ts
  class Text_DocumentLoaders (line 7) | class Text_DocumentLoaders implements INode {
    method constructor (line 19) | constructor() {
    method init (line 78) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/Unstructured/Unstructured.ts
  type ChunkingStrategy (line 14) | type ChunkingStrategy = 'None' | 'by_title'
  type Element (line 20) | type Element = {
  class UnstructuredLoader (line 29) | class UnstructuredLoader extends BaseDocumentLoader {
    method constructor (line 62) | constructor(optionsOrLegacyFilePath: UnstructuredLoaderOptions) {
    method _partition (line 84) | async _partition(buffer: Buffer, fileName: string): Promise<Element[]> {
    method loadAndSplitBuffer (line 149) | async loadAndSplitBuffer(buffer: Buffer, fileName: string): Promise<Do...
    method load (line 171) | async load(): Promise<Document[]> {

FILE: packages/components/nodes/documentloaders/Unstructured/UnstructuredFile.ts
  class UnstructuredFile_DocumentLoaders (line 13) | class UnstructuredFile_DocumentLoaders implements INode {
    method constructor (line 26) | constructor() {
    method init (line 442) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/documentloaders/VectorStoreToDocument/VectorStoreToDocument.ts
  class VectorStoreToDocument_DocumentLoaders (line 5) | class VectorStoreToDocument_DocumentLoaders implements INode {
    method constructor (line 17) | constructor() {
    method init (line 66) | async init(nodeData: INodeData, input: string): Promise<any> {

FILE: packages/components/nodes/embeddings/AWSBedrockEmbedding/AWSBedrockEmbedding.ts
  class AWSBedrockEmbedding_Embeddings (line 8) | class AWSBedrockEmbedding_Embeddings implements INode {
    method constructor (line 20) | constructor() {
    method listModels (line 110) | async listModels(): Promise<INodeOptionsValue[]> {
    method listRegions (line 113) | async listRegions(): Promise<INodeOptionsValue[]> {
    method init (line 118) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/embeddings/AzureOpenAIEmbedding/AzureOpenAIEmbedding.ts
  class AzureOpenAIEmbedding_Embeddings (line 11) | class AzureOpenAIEmbedding_Embeddings implements INode {
    method constructor (line 23) | constructor() {
    method init (line 74) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/embeddings/AzureOpenAIEmbedding/AzureOpenAIEmbedding_LlamaIndex.ts
  type AzureOpenAIConfig (line 5) | interface AzureOpenAIConfig {
  class AzureOpenAIEmbedding_LlamaIndex_Embeddings (line 12) | class AzureOpenAIEmbedding_LlamaIndex_Embeddings implements INode {
    method constructor (line 27) | constructor() {
    method init (line 56) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/embeddings/CohereEmbedding/CohereEmbedding.ts
  class CohereEmbedding_Embeddings (line 6) | class CohereEmbedding_Embeddings implements INode {
    method constructor (line 18) | constructor() {
    method listModels (line 77) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 82) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/embeddings/GoogleGenerativeAIEmbedding/GoogleGenerativeAIEmbedding.ts
  class GoogleGenerativeAIEmbeddingsWithStripNewLines (line 7) | class GoogleGenerativeAIEmbeddingsWithStripNewLines extends GoogleGenera...
    method constructor (line 10) | constructor(params: GoogleGenerativeAIEmbeddingsParams & { stripNewLin...
    method embedDocuments (line 15) | async embedDocuments(texts: string[]): Promise<number[][]> {
    method embedQuery (line 20) | async embedQuery(text: string): Promise<number[]> {
  class GoogleGenerativeAIEmbedding_Embeddings (line 26) | class GoogleGenerativeAIEmbedding_Embeddings implements INode {
    method constructor (line 38) | constructor() {
    method listModels (line 91) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 97) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/embeddings/GoogleVertexAIEmbedding/GoogleVertexAIEmbedding.ts
  class VertexAIEmbeddingsWithStripNewLines (line 7) | class VertexAIEmbeddingsWithStripNewLines extends VertexAIEmbeddings {
    method constructor (line 10) | constructor(params: GoogleVertexAIEmbeddingsInput & { stripNewLines?: ...
    method embedDocuments (line 15) | async embedDocuments(texts: string[]): Promise<number[][]> {
    method embedQuery (line 20) | async embedQuery(text: string): Promise<number[]> {
  class GoogleVertexAIEmbedding_Embeddings (line 26) | class GoogleVertexAIEmbedding_Embeddings implements INode {
    method constructor (line 38) | constructor() {
    method listModels (line 85) | async listModels(): Promise<INodeOptionsValue[]> {
    method listRegions (line 88) | async listRegions(): Promise<INodeOptionsValue[]> {
    method init (line 93) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/embeddings/HuggingFaceInferenceEmbedding/HuggingFaceInferenceEmbedding.ts
  class HuggingFaceInferenceEmbedding_Embeddings (line 5) | class HuggingFaceInferenceEmbedding_Embeddings implements INode {
    method constructor (line 17) | constructor() {
    method init (line 52) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/embeddings/HuggingFaceInferenceEmbedding/core.ts
  type HuggingFaceInferenceEmbeddingsParams (line 5) | interface HuggingFaceInferenceEmbeddingsParams extends EmbeddingsParams {
  class HuggingFaceInferenceEmbeddings (line 11) | class HuggingFaceInferenceEmbeddings extends Embeddings implements Huggi...
    method constructor (line 20) | constructor(fields?: HuggingFaceInferenceEmbeddingsParams) {
    method _embed (line 31) | async _embed(texts: string[]): Promise<number[][]> {
    method embedQuery (line 45) | async embedQuery(document: string): Promise<number[]> {
    method embedDocuments (line 50) | async embedDocuments(documents: string[]): Promise<number[][]> {

FILE: packages/components/nodes/embeddings/IBMWatsonxEmbedding/IBMWatsonxEmbedding.ts
  class IBMWatsonx_Embeddings (line 6) | class IBMWatsonx_Embeddings implements INode {
    method constructor (line 18) | constructor() {
    method init (line 70) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/embeddings/JinaAIEmbedding/JinaAIEmbedding.ts
  class ExtendedJinaEmbeddings (line 5) | class ExtendedJinaEmbeddings extends JinaEmbeddings {
    method constructor (line 8) | constructor(fields: ConstructorParameters<typeof JinaEmbeddings>[0] & ...
  class JinaAIEmbedding_Embeddings (line 15) | class JinaAIEmbedding_Embeddings implements INode {
    method constructor (line 27) | constructor() {
    method init (line 70) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/embeddings/LocalAIEmbedding/LocalAIEmbedding.ts
  class LocalAIEmbedding_Embeddings (line 5) | class LocalAIEmbedding_Embeddings implements INode {
    method constructor (line 17) | constructor() {
    method init (line 49) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/embeddings/MistralEmbedding/MistralEmbedding.ts
  class MistralEmbedding_Embeddings (line 6) | class MistralEmbedding_Embeddings implements INode {
    method constructor (line 18) | constructor() {
    method listModels (line 70) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 75) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/embeddings/OllamaEmbedding/OllamaEmbedding.ts
  class OllamaEmbedding_Embeddings (line 5) | class OllamaEmbedding_Embeddings implements INode {
    method constructor (line 17) | constructor() {
    method init (line 70) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/embeddings/OpenAIEmbedding/OpenAIEmbedding.ts
  class OpenAIEmbedding_Embeddings (line 6) | class OpenAIEmbedding_Embeddings implements INode {
    method constructor (line 18) | constructor() {
    method listModels (line 107) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 112) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/embeddings/OpenAIEmbedding/OpenAIEmbedding_LlamaIndex.ts
  class OpenAIEmbedding_LlamaIndex_Embeddings (line 6) | class OpenAIEmbedding_LlamaIndex_Embeddings implements INode {
    method constructor (line 21) | constructor() {
    method listModels (line 66) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 71) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/embeddings/OpenAIEmbeddingCustom/OpenAIEmbeddingCustom.ts
  class OpenAIEmbeddingCustom_Embeddings (line 5) | class OpenAIEmbeddingCustom_Embeddings implements INode {
    method constructor (line 17) | constructor() {
    method init (line 103) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/embeddings/TogetherAIEmbedding/TogetherAIEmbedding.ts
  class TogetherAIEmbedding_Embeddings (line 5) | class TogetherAIEmbedding_Embeddings implements INode {
    method constructor (line 17) | constructor() {
    method init (line 49) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/embeddings/VoyageAIEmbedding/VoyageAIEmbedding.ts
  class VoyageAIEmbedding_Embeddings (line 6) | class VoyageAIEmbedding_Embeddings implements INode {
    method constructor (line 18) | constructor() {
    method listModels (line 46) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 51) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/engine/ChatEngine/ContextChatEngine.ts
  class ContextChatEngine_LlamaIndex (line 15) | class ContextChatEngine_LlamaIndex implements INode {
    method constructor (line 31) | constructor(fields?: { sessionId?: string }) {
    method init (line 78) | async init(): Promise<any> {
    method run (line 82) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/engine/ChatEngine/SimpleChatEngine.ts
  class SimpleChatEngine_LlamaIndex (line 14) | class SimpleChatEngine_LlamaIndex implements INode {
    method constructor (line 30) | constructor(fields?: { sessionId?: string }) {
    method init (line 65) | async init(): Promise<any> {
    method run (line 69) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/engine/QueryEngine/QueryEngine.ts
  class QueryEngine_LlamaIndex (line 15) | class QueryEngine_LlamaIndex implements INode {
    method constructor (line 31) | constructor(fields?: { sessionId?: string }) {
    method init (line 67) | async init(nodeData: INodeData): Promise<any> {
    method run (line 71) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/engine/SubQuestionQueryEngine/SubQuestionQueryEngine.ts
  class SubQuestionQueryEngine_LlamaIndex (line 20) | class SubQuestionQueryEngine_LlamaIndex implements INode {
    method constructor (line 36) | constructor(fields?: { sessionId?: string }) {
    method init (line 84) | async init(nodeData: INodeData): Promise<any> {
    method run (line 88) | async run(nodeData: INodeData, input: string, options: ICommonObject):...

FILE: packages/components/nodes/graphs/Neo4j/Neo4j.ts
  class Neo4j_Graphs (line 5) | class Neo4j_Graphs implements INode {
    method constructor (line 17) | constructor() {
    method init (line 57) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/llms/AWSBedrock/AWSBedrock.ts
  class AWSBedrock_LLMs (line 13) | class AWSBedrock_LLMs implements INode {
    method constructor (line 27) | constructor() {
    method listModels (line 97) | async listModels(): Promise<INodeOptionsValue[]> {
    method listRegions (line 100) | async listRegions(): Promise<INodeOptionsValue[]> {
    method init (line 105) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/llms/Azure OpenAI/AzureOpenAI.ts
  class AzureOpenAI_LLMs (line 14) | class AzureOpenAI_LLMs implements INode {
    method constructor (line 28) | constructor() {
    method listModels (line 129) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 134) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/llms/Cohere/Cohere.ts
  class Cohere_LLMs (line 7) | class Cohere_LLMs implements INode {
    method constructor (line 21) | constructor() {
    method listModels (line 72) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 76) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/llms/Fireworks/Fireworks.ts
  class Fireworks_LLMs (line 5) | class Fireworks_LLMs implements INode {
    method constructor (line 19) | constructor() {
    method init (line 54) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/llms/GoogleVertexAI/GoogleVertexAI.ts
  class GoogleVertexAI_LLMs (line 8) | class GoogleVertexAI_LLMs implements INode {
    method constructor (line 22) | constructor() {
    method listModels (line 85) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 90) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/llms/HuggingFaceInference/HuggingFaceInference.ts
  class HuggingFaceInference_LLMs (line 6) | class HuggingFaceInference_LLMs implements INode {
    method constructor (line 20) | constructor() {
    method init (line 108) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/llms/HuggingFaceInference/core.ts
  type HFInput (line 4) | interface HFInput {
  class HuggingFaceInference (line 32) | class HuggingFaceInference extends LLM implements HFInput {
    method lc_secrets (line 33) | get lc_secrets(): { [key: string]: string } | undefined {
    method constructor (line 55) | constructor(fields?: Partial<HFInput> & BaseLLMParams) {
    method _llmType (line 73) | _llmType() {
    method _call (line 78) | async _call(prompt: string, options: this['ParsedCallOptions']): Promi...
    method imports (line 103) | static async imports(): Promise<{

FILE: packages/components/nodes/llms/IBMWatsonx/IBMWatsonx.ts
  class IBMWatsonx_LLMs (line 7) | class IBMWatsonx_LLMs implements INode {
    method constructor (line 21) | constructor() {
    method init (line 170) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/llms/Ollama/Ollama.ts
  class Ollama_LLMs (line 7) | class Ollama_LLMs implements INode {
    method constructor (line 21) | constructor() {
    method init (line 185) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/llms/OpenAI/OpenAI.ts
  class OpenAI_LLMs (line 8) | class OpenAI_LLMs implements INode {
    method constructor (line 22) | constructor() {
    method listModels (line 138) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 143) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/llms/Replicate/Replicate.ts
  class Replicate_LLMs (line 7) | class Replicate_LLMs implements INode {
    method constructor (line 19) | constructor() {
    method init (line 99) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/llms/Replicate/core.ts
  type ReplicateInput (line 7) | interface ReplicateInput {
  class Replicate (line 17) | class Replicate extends LLM implements ReplicateInput {
    method constructor (line 28) | constructor(fields: ReplicateInput & BaseLLMParams) {
    method _llmType (line 43) | _llmType() {
    method _call (line 48) | async _call(prompt: string, options: this['ParsedCallOptions']): Promi...
    method _streamResponseChunks (line 69) | async *_streamResponseChunks(
    method imports (line 98) | static async imports(): Promise<{
    method _prepareReplicate (line 109) | private async _prepareReplicate(): Promise<ReplicateInstance> {
    method _getReplicateInput (line 118) | private async _getReplicateInput(replicate: ReplicateInstance, prompt:...

FILE: packages/components/nodes/llms/SambaNova/Sambanova.ts
  class Sambanova_LLMs (line 5) | class Sambanova_LLMs implements INode {
    method constructor (line 19) | constructor() {
    method init (line 54) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/llms/TogetherAI/TogetherAI.ts
  class TogetherAI_LLMs (line 7) | class TogetherAI_LLMs implements INode {
    method constructor (line 21) | constructor() {
    method listModels (line 119) | async listModels(): Promise<INodeOptionsValue[]> {
    method init (line 124) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/memory/AgentMemory/AgentMemory.ts
  class AgentMemory_Memory (line 10) | class AgentMemory_Memory implements INode {
    method constructor (line 23) | constructor() {
    method init (line 105) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/memory/AgentMemory/MySQLAgentMemory/MySQLAgentMemory.ts
  class MySQLAgentMemory_Memory (line 7) | class MySQLAgentMemory_Memory implements INode {
    method constructor (line 20) | constructor() {
    method init (line 63) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/memory/AgentMemory/MySQLAgentMemory/mysqlSaver.ts
  class MySQLSaver (line 9) | class MySQLSaver extends BaseCheckpointSaver implements MemoryMethods {
    method constructor (line 15) | constructor(config: SaverOptions, serde?: SerializerProtocol<Checkpoin...
    method sanitizeTableName (line 22) | sanitizeTableName(tableName: string): string {
    method getDataSource (line 34) | private async getDataSource(): Promise<DataSource> {
    method setup (line 48) | private async setup(dataSource: DataSource): Promise<void> {
    method getTuple (line 72) | async getTuple(config: RunnableConfig): Promise<CheckpointTuple | unde...
    method list (line 119) | async *list(config: RunnableConfig, limit?: number, before?: RunnableC...
    method put (line 167) | async put(config: RunnableConfig, checkpoint: Checkpoint, metadata: Ch...
    method delete (line 204) | async delete(threadId: string): Promise<void> {
    method getChatMessages (line 223) | async getChatMessages(
    method addChatMessages (line 259) | async addChatMessages(): Promise<void> {
    method clearChatMessages (line 263) | async clearChatMessages(overrideSessionId = ''): Promise<void> {

FILE: packages/components/nodes/memory/AgentMemory/PostgresAgentMemory/PostgresAgentMemory.ts
  class PostgresAgentMemory_Memory (line 7) | class PostgresAgentMemory_Memory implements INode {
    method constructor (line 20) | constructor() {
    method init (line 63) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/memory/AgentMemory/PostgresAgentMemory/pgSaver.ts
  class PostgresSaver (line 9) | class PostgresSaver extends BaseCheckpointSaver implements MemoryMethods {
    method constructor (line 15) | constructor(config: SaverOptions, serde?: SerializerProtocol<Checkpoin...
    method sanitizeTableName (line 22) | sanitizeTableName(tableName: string): string {
    method getDataSource (line 34) | private async getDataSource(): Promise<DataSource> {
    method setup (line 48) | private async setup(dataSource: DataSource): Promise<void> {
    method getTuple (line 73) | async getTuple(config: RunnableConfig): Promise<CheckpointTuple | unde...
    method list (line 150) | async *list(config: RunnableConfig, limit?: number, before?: RunnableC...
    method put (line 204) | async put(config: RunnableConfig, checkpoint: Checkpoint, metadata: Ch...
    method delete (line 242) | async delete(threadId: string): Promise<void> {
    method getChatMessages (line 264) | async getChatMessages(
    method addChatMessages (line 299) | async addChatMessages(): Promise<void> {
    method clearChatMessages (line 303) | async clearChatMessages(overrideSessionId = ''): Promise<void> {

FILE: packages/components/nodes/memory/AgentMemory/SQLiteAgentMemory/SQLiteAgentMemory.ts
  class SQLiteAgentMemory_Memory (line 8) | class SQLiteAgentMemory_Memory implements INode {
    method constructor (line 21) | constructor() {
    method init (line 49) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/memory/AgentMemory/SQLiteAgentMemory/sqliteSaver.ts
  class SqliteSaver (line 9) | class SqliteSaver extends BaseCheckpointSaver implements MemoryMethods {
    method constructor (line 15) | constructor(config: SaverOptions, serde?: SerializerProtocol<Checkpoin...
    method sanitizeTableName (line 22) | sanitizeTableName(tableName: string): string {
    method getDataSource (line 34) | private async getDataSource(): Promise<DataSource> {
    method setup (line 41) | private async setup(dataSource: DataSource): Promise<void> {
    method getTuple (line 66) | async getTuple(config: RunnableConfig): Promise<CheckpointTuple | unde...
    method list (line 143) | async *list(config: RunnableConfig, limit?: number, before?: RunnableC...
    method put (line 192) | async put(config: RunnableConfig, checkpoint: Checkpoint, metadata: Ch...
    method delete (line 226) | async delete(threadId: string): Promise<void> {
    method getChatMessages (line 247) | async getChatMessages(
    method addChatMessages (line 282) | async addChatMessages(): Promise<void> {
    method clearChatMessages (line 286) | async clearChatMessages(overrideSessionId = ''): Promise<void> {

FILE: packages/components/nodes/memory/AgentMemory/interface.ts
  type SaverOptions (line 6) | type SaverOptions = {
  type CheckpointTuple (line 15) | interface CheckpointTuple {
  type SerializerProtocol (line 22) | interface SerializerProtocol<D> {

FILE: packages/components/nodes/memory/BufferMemory/BufferMemory.ts
  class BufferMemory_Memory (line 16) | class BufferMemory_Memory implements INode {
    method constructor (line 27) | constructor() {
    method init (line 57) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  type BufferMemoryExtendedInput (line 78) | interface BufferMemoryExtendedInput {
  class BufferMemoryExtended (line 86) | class BufferMemoryExtended extends FlowiseMemory implements MemoryMethods {
    method constructor (line 93) | constructor(fields: BufferMemoryInput & BufferMemoryExtendedInput) {
    method getChatMessages (line 102) | async getChatMessages(
    method addChatMessages (line 139) | async addChatMessages(): Promise<void> {
    method clearChatMessages (line 144) | async clearChatMessages(): Promise<void> {

FILE: packages/components/nodes/memory/BufferWindowMemory/BufferWindowMemory.ts
  class BufferWindowMemory_Memory (line 16) | class BufferWindowMemory_Memory implements INode {
    method constructor (line 27) | constructor() {
    method init (line 64) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  type BufferMemoryExtendedInput (line 89) | interface BufferMemoryExtendedInput {
  class BufferWindowMemoryExtended (line 97) | class BufferWindowMemoryExtended extends FlowiseWindowMemory implements ...
    method constructor (line 104) | constructor(fields: BufferWindowMemoryInput & BufferMemoryExtendedInpu...
    method getChatMessages (line 113) | async getChatMessages(
    method addChatMessages (line 155) | async addChatMessages(): Promise<void> {
    method clearChatMessages (line 160) | async clearChatMessages(): Promise<void> {

FILE: packages/components/nodes/memory/ConversationSummaryBufferMemory/ConversationSummaryBufferMemory.ts
  class ConversationSummaryBufferMemory_Memory (line 18) | class ConversationSummaryBufferMemory_Memory implements INode {
    method constructor (line 29) | constructor() {
    method init (line 71) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  type BufferMemoryExtendedInput (line 99) | interface BufferMemoryExtendedInput {
  class ConversationSummaryBufferMemoryExtended (line 107) | class ConversationSummaryBufferMemoryExtended extends FlowiseSummaryBuff...
    method constructor (line 114) | constructor(fields: ConversationSummaryBufferMemoryInput & BufferMemor...
    method getChatMessages (line 123) | async getChatMessages(
    method addChatMessages (line 195) | async addChatMessages(): Promise<void> {
    method clearChatMessages (line 200) | async clearChatMessages(): Promise<void> {

FILE: packages/components/nodes/memory/ConversationSummaryMemory/ConversationSummaryMemory.ts
  class ConversationSummaryMemory_Memory (line 18) | class ConversationSummaryMemory_Memory implements INode {
    method constructor (line 29) | constructor() {
    method init (line 64) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  type BufferMemoryExtendedInput (line 89) | interface BufferMemoryExtendedInput {
  class ConversationSummaryMemoryExtended (line 97) | class ConversationSummaryMemoryExtended extends FlowiseSummaryMemory imp...
    method constructor (line 104) | constructor(fields: ConversationSummaryMemoryInput & BufferMemoryExten...
    method getChatMessages (line 113) | async getChatMessages(
    method addChatMessages (line 171) | async addChatMessages(): Promise<void> {
    method clearChatMessages (line 176) | async clearChatMessages(): Promise<void> {

FILE: packages/components/nodes/memory/DynamoDb/DynamoDb.ts
  class DynamoDb_Memory (line 24) | class DynamoDb_Memory implements INode {
    method constructor (line 36) | constructor() {
    method init (line 90) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  type BufferMemoryExtendedInput (line 143) | interface BufferMemoryExtendedInput {
  type DynamoDBSerializedChatMessage (line 152) | interface DynamoDBSerializedChatMessage {
  class BufferMemoryExtended (line 166) | class BufferMemoryExtended extends FlowiseMemory implements MemoryMethods {
    method constructor (line 175) | constructor(fields: BufferMemoryInput & BufferMemoryExtendedInput) {
    method overrideDynamoKey (line 185) | overrideDynamoKey(overrideSessionId = '') {
    method addNewMessage (line 198) | async addNewMessage(
    method getChatMessages (line 240) | async getChatMessages(
    method addChatMessages (line 274) | async addChatMessages(msgArray: { text: string; type: MessageType }[],...
    method clearChatMessages (line 297) | async clearChatMessages(overrideSessionId = ''): Promise<void> {

FILE: packages/components/nodes/memory/Mem0/Mem0.ts
  type BufferMemoryExtendedInput (line 11) | interface BufferMemoryExtendedInput {
  type NodeFields (line 18) | interface NodeFields extends Mem0MemoryInput, Mem0MemoryExtendedInput, B...
  class Mem0_Memory (line 24) | class Mem0_Memory implements INode {
    method constructor (line 36) | constructor() {
    method init (line 152) | async init(nodeData: INodeData, input: string, options: ICommonObject)...
  type Mem0MemoryExtendedInput (line 215) | interface Mem0MemoryExtendedInput extends Mem0MemoryInput {
  class Mem0MemoryExtended (line 221) | class Mem0MemoryExtended extends BaseMem0Memory implements MemoryMethods {
    method constructor (line 234) | constructor(fields: NodeFields) {
    method getEffectiveUserId (line 250) | private getEffectiveUserId(overrideUserId?: string): string {
    method loadMemoryVariables (line 271) | async loadMemoryVariables(values: InputValues, overrideUserId = ''): P...
    method saveContext (line 280) | async saveContext(inputValues: InputValues, outputValues: OutputValues...
    method clear (line 292) | async clear(overrideUserId = ''): Promise<void> {
    method getChatMessages (line 301) | async getChatMessages(
    method addChatMessages (line 362) | async addChatMessages(msgArray: { text: string; type: MessageType }[],...
    method clearChatMessages (line 376) | async clearChatMessages(overrideUserId = ''): Promise<void> {

FILE: packages/components/nodes/memory/MongoDBMemory/MongoDBMemory.ts
  class MongoDB_Memory (line 16) | class MongoDB_Memory implements INode {
    method constructor (line 28) | constructor() {
    method init (line 76) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  type BufferMemoryExtendedInput (line 106) | interface BufferMemoryExtendedInput {
  class BufferMemoryExtended (line 117) | class BufferMemoryExtended extends FlowiseMemory implements MemoryMethods {
    method constructor (line 127) | constructor(fields: BufferMemoryInput & BufferMemoryExtendedInput) {
    method getChatMessages (line 134) | async getChatMessages(
    method addChatMessages (line 154) | async addChatMessages(msgArray: { text: string; type: MessageType }[],...
    method clearChatMessages (line 195) | async clearChatMessages(overrideSessionId = ''): Promise<void> {

FILE: packages/components/nodes/memory/RedisBackedChatMemory/RedisBackedChatMemory.ts
  class RedisBackedChatMemory_Memory (line 13) | class RedisBackedChatMemory_Memory implements INode {
    method constructor (line 25) | constructor() {
    method init (line 78) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  type BufferMemoryExtendedInput (line 115) | interface BufferMemoryExtendedInput {
  class BufferMemoryExtended (line 123) | class BufferMemoryExtended extends FlowiseMemory implements MemoryMethods {
    method constructor (line 130) | constructor(fields: BufferMemoryInput & BufferMemoryExtendedInput) {
    method withRedisClient (line 139) | private async withRedisClient<T>(fn: (client: Redis) => Promise<T>): P...
    method getChatMessages (line 162) | async getChatMessages(
    method addChatMessages (line 179) | async addChatMessages(msgArray: { text: string; type: MessageType }[],...
    method clearChatMessages (line 201) | async clearChatMessages(overrideSessionId = ''): Promise<void> {

FILE: packages/components/nodes/memory/UpstashRedisBackedChatMemory/UpstashRedisBackedChatMemory.ts
  class UpstashRedisBackedChatMemory_Memory (line 15) | class UpstashRedisBackedChatMemory_Memory implements INode {
    method constructor (line 27) | constructor() {
    method init (line 78) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  type BufferMemoryExtendedInput (line 116) | interface BufferMemoryExtendedInput {
  class BufferMemoryExtended (line 123) | class BufferMemoryExtended extends FlowiseMemory implements MemoryMethods {
    method constructor (line 129) | constructor(fields: BufferMemoryInput & BufferMemoryExtendedInput) {
    method getChatMessages (line 137) | async getChatMessages(
    method addChatMessages (line 155) | async addChatMessages(msgArray: { text: string; type: MessageType }[],...
    method clearChatMessages (line 177) | async clearChatMessages(overrideSessionId = ''): Promise<void> {

FILE: packages/components/nodes/memory/ZepMemory/ZepMemory.ts
  class ZepMemory_Memory (line 13) | class ZepMemory_Memory implements INode {
    method constructor (line 25) | constructor() {
    method init (line 105) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  type ZepMemoryExtendedInput (line 139) | interface ZepMemoryExtendedInput {
  class ZepMemoryExtended (line 144) | class ZepMemoryExtended extends ZepMemory implements MemoryMethods {
    method constructor (line 148) | constructor(fields: ZepMemoryInput & ZepMemoryExtendedInput) {
    method loadMemoryVariables (line 154) | async loadMemoryVariables(values: InputValues, overrideSessionId = '')...
    method saveContext (line 161) | async saveContext(inputValues: InputValues, outputValues: OutputValues...
    method clear (line 168) | async clear(overrideSessionId = ''): Promise<void> {
    method getChatMessages (line 175) | async getChatMessages(
    method addChatMessages (line 189) | async addChatMessages(msgArray: { text: string; type: MessageType }[],...
    method clearChatMessages (line 199) | async clearChatMessages(overrideSessionId = ''): Promise<void> {

FILE: packages/components/nodes/memory/ZepMemoryCloud/ZepMemoryCloud.ts
  type ZepCloudMemoryInput (line 14) | interface ZepCloudMemoryInput {
  class ZepMemoryCloud_Memory (line 26) | class ZepMemoryCloud_Memory implements INode {
    method constructor (line 38) | constructor() {
    method init (line 112) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  type ZepMemoryExtendedInput (line 144) | interface ZepMemoryExtendedInput {
  class ZepMemoryExtended (line 151) | class ZepMemoryExtended extends ZepCloudMemory implements MemoryMethods {
    method constructor (line 155) | constructor(fields: ZepCloudMemoryInput & ZepMemoryExtendedInput) {
    method loadMemoryVariables (line 161) | async loadMemoryVariables(values: InputValues, overrideSessionId = '')...
    method saveContext (line 168) | async saveContext(inputValues: InputValues, outputValues: OutputValues...
    method clear (line 175) | async clear(overrideSessionId = ''): Promise<void> {
    method getChatMessages (line 182) | async getChatMessages(
    method addChatMessages (line 196) | async addChatMessages(msgArray: { text: string; type: MessageType }[],...
    method clearChatMessages (line 206) | async clearChatMessages(overrideSessionId = ''): Promise<void> {

FILE: packages/components/nodes/moderation/OpenAIModeration/OpenAIModeration.ts
  class OpenAIModeration (line 6) | class OpenAIModeration implements INode {
    method constructor (line 18) | constructor() {
    method init (line 45) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/moderation/OpenAIModeration/OpenAIModerationRunner.ts
  class OpenAIModerationRunner (line 4) | class OpenAIModerationRunner implements Moderation {
    method constructor (line 8) | constructor(openAIApiKey: string) {
    method checkForViolations (line 12) | async checkForViolations(input: string): Promise<string> {
    method setErrorMessage (line 31) | setErrorMessage(message: string) {

FILE: packages/components/nodes/moderation/SimplePromptModeration/SimplePromptModeration.ts
  class SimplePromptModeration (line 7) | class SimplePromptModeration implements INode {
    method constructor (line 18) | constructor() {
    method init (line 54) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/moderation/SimplePromptModeration/SimplePromptModerationRunner.ts
  class SimplePromptModerationRunner (line 5) | class SimplePromptModerationRunner implements Moderation {
    method constructor (line 10) | constructor(denyList: string, moderationErrorMessage: string, model?: ...
    method checkForViolations (line 19) | async checkForViolations(input: string): Promise<string> {

FILE: packages/components/nodes/multiagents/Supervisor/Supervisor.ts
  class Supervisor_MultiAgents (line 28) | class Supervisor_MultiAgents implements INode {
    method constructor (line 41) | constructor() {
    method init (line 106) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  function agentNode (line 671) | async function agentNode(
  class RouteTool (line 714) | class RouteTool extends StructuredTool {
    method constructor (line 721) | constructor(fields: ICommonObject) {
    method _call (line 726) | async _call(input: any) {

FILE: packages/components/nodes/multiagents/Worker/Worker.ts
  class Worker_MultiAgents (line 14) | class Worker_MultiAgents implements INode {
    method constructor (line 27) | constructor() {
    method init (line 86) | async init(nodeData: INodeData, input: string, options: ICommonObject)...
  function createAgent (line 161) | async function createAgent(
  function agentNode (line 269) | async function agentNode(

FILE: packages/components/nodes/outputparsers/CSVListOutputParser/CSVListOutputParser.ts
  class CSVListOutputParser (line 5) | class CSVListOutputParser implements INode {
    method constructor (line 17) | constructor() {
    method init (line 37) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/outputparsers/CustomListOutputParser/CustomListOutputParser.ts
  class CustomListOutputParser (line 5) | class CustomListOutputParser implements INode {
    method constructor (line 17) | constructor() {
    method init (line 53) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/outputparsers/OutputParserHelpers.ts
  constant CATEGORY (line 7) | const CATEGORY = 'Output Parsers'

FILE: packages/components/nodes/outputparsers/StructuredOutputParser/StructuredOutputParser.ts
  class StructuredOutputParser (line 8) | class StructuredOutputParser implements INode {
    method constructor (line 20) | constructor() {
    method init (line 70) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/outputparsers/StructuredOutputParserAdvanced/StructuredOutputParserAdvanced.ts
  class AdvancedStructuredOutputParser (line 8) | class AdvancedStructuredOutputParser implements INode {
    method constructor (line 20) | constructor() {
    method init (line 56) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/prompts/ChatPromptTemplate/ChatPromptTemplate.ts
  constant TAB_IDENTIFIER (line 29) | const TAB_IDENTIFIER = 'selectedMessagesTab'
  class ChatPromptTemplate_Prompts (line 31) | class ChatPromptTemplate_Prompts implements INode {
    method constructor (line 42) | constructor() {
    method init (line 99) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/prompts/FewShotPromptTemplate/FewShotPromptTemplate.ts
  class FewShotPromptTemplate_Prompts (line 6) | class FewShotPromptTemplate_Prompts implements INode {
    method constructor (line 17) | constructor() {
    method init (line 81) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/prompts/PromptLangfuse/PromptLangfuse.ts
  class PromptLangfuse_Prompts (line 6) | class PromptLangfuse_Prompts implements INode {
    method constructor (line 19) | constructor() {
    method init (line 53) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...

FILE: packages/components/nodes/prompts/PromptTemplate/PromptTemplate.ts
  class PromptTemplate_Prompts (line 5) | class PromptTemplate_Prompts implements INode {
    method constructor (line 16) | constructor() {
    method init (line 44) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/recordmanager/MySQLRecordManager/MySQLrecordManager.ts
  class MySQLRecordManager_RecordManager (line 6) | class MySQLRecordManager_RecordManager implements INode {
    method constructor (line 19) | constructor() {
    method init (line 116) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  type MySQLRecordManagerOptions (line 162) | type MySQLRecordManagerOptions = {
  class MySQLRecordManager (line 167) | class MySQLRecordManager implements RecordManagerInterface {
    method constructor (line 173) | constructor(namespace: string, config: MySQLRecordManagerOptions) {
    method sanitizeTableName (line 180) | sanitizeTableName(tableName: string): string {
    method getDataSource (line 192) | private async getDataSource(): Promise<DataSource> {
    method createSchema (line 206) | async createSchema(): Promise<void> {
    method getTime (line 274) | async getTime(): Promise<number> {
    method update (line 289) | async update(keys: Array<{ uid: string; docId: string }> | string[], u...
    method exists (line 339) | async exists(keys: string[]): Promise<boolean[]> {
    method listKeys (line 377) | async listKeys(options?: ListKeyOptions & { docId?: string }): Promise...
    method deleteKeys (line 429) | async deleteKeys(keys: string[]): Promise<void> {

FILE: packages/components/nodes/recordmanager/PostgresRecordManager/PostgresRecordManager.ts
  class PostgresRecordManager_RecordManager (line 10) | class PostgresRecordManager_RecordManager implements INode {
    method constructor (line 23) | constructor() {
    method init (line 133) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  type PostgresRecordManagerOptions (line 179) | type PostgresRecordManagerOptions = {
  class PostgresRecordManager (line 184) | class PostgresRecordManager implements RecordManagerInterface {
    method constructor (line 190) | constructor(namespace: string, config: PostgresRecordManagerOptions) {
    method sanitizeTableName (line 197) | sanitizeTableName(tableName: string): string {
    method getDataSource (line 209) | private async getDataSource(): Promise<DataSource> {
    method createSchema (line 223) | async createSchema(): Promise<void> {
    method getTime (line 271) | async getTime(): Promise<number> {
    method generatePlaceholderForRowAt (line 293) | private generatePlaceholderForRowAt(index: number, numOfColumns: numbe...
    method update (line 301) | async update(keys: Array<{ uid: string; docId: string }> | string[], u...
    method exists (line 344) | async exists(keys: string[]): Promise<boolean[]> {
    method listKeys (line 371) | async listKeys(options?: ListKeyOptions & { docId?: string }): Promise...
    method deleteKeys (line 426) | async deleteKeys(keys: string[]): Promise<void> {

FILE: packages/components/nodes/recordmanager/PostgresRecordManager/utils.ts
  function getHost (line 3) | function getHost(nodeData?: INodeData) {
  function getDatabase (line 7) | function getDatabase(nodeData?: INodeData) {
  function getPort (line 11) | function getPort(nodeData?: INodeData) {
  function getSSL (line 15) | function getSSL(nodeData?: INodeData) {
  function getTableName (line 19) | function getTableName(nodeData?: INodeData) {

FILE: packages/components/nodes/recordmanager/SQLiteRecordManager/SQLiteRecordManager.ts
  class SQLiteRecordManager_RecordManager (line 7) | class SQLiteRecordManager_RecordManager implements INode {
    method constructor (line 19) | constructor() {
    method init (line 99) | async init(nodeData: INodeData, _: string, options: ICommonObject): Pr...
  type SQLiteRecordManagerOptions (line 140) | type SQLiteRecordManagerOptions = {
  class SQLiteRecordManager (line 145) | class SQLiteRecordManager implements RecordManagerInterface {
    method constructor (line 151) | constructor(namespace: string, config: SQLiteRecordManagerOptions) {
    method sanitizeTableName (line 158) | sanitizeTableName(tableName: string): string {
    method getDataSource (line 170) | private async getDataSource(): Promise<DataSource> {
    method createSchema (line 180) | async createSchema(): Promise<void> {
    method getTime (line 224) | async getTime(): Promise<number> {
    method update (line 239) | async update(keys: Array<{ uid: string; docId: string }> | string[], u...
    method exists (line 287) | async exists(keys: string[]): Promise<boolean[]> {
    method listKeys (line 325) | async listKeys(options?: ListKeyOptions & { docId?: string }): Promise...
    method deleteKeys (line 378) | async deleteKeys(keys: string[]): Promise<void> {

FILE: packages/components/nodes/responsesynthesizer/CompactRefine/CompactRefine.ts
  class CompactRefine_LlamaIndex (line 4) | class CompactRefine_LlamaIndex implements INode {
    method constructor (line 19) | constructor() {
    method init (line 67) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/responsesynthesizer/Refine/Refine.ts
  class Refine_LlamaIndex (line 4) | class Refine_LlamaIndex implements INode {
    method constructor (line 19) | constructor() {
    method init (line 67) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/responsesynthesizer/SimpleResponseBuilder/SimpleResponseBuilder.ts
  class SimpleResponseBuilder_LlamaIndex (line 4) | class SimpleResponseBuilder_LlamaIndex implements INode {
    method constructor (line 19) | constructor() {
    method init (line 34) | async init(): Promise<any> {

FILE: packages/components/nodes/responsesynthesizer/TreeSummarize/TreeSummarize.ts
  class TreeSummarize_LlamaIndex (line 4) | class TreeSummarize_LlamaIndex implements INode {
    method constructor (line 19) | constructor() {
    method init (line 51) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/responsesynthesizer/base.ts
  class ResponseSynthesizerClass (line 1) | class ResponseSynthesizerClass {
    method constructor (line 6) | constructor(params: { type: string; textQAPromptTemplate?: any; refine...

FILE: packages/components/nodes/retrievers/AWSBedrockKBRetriever/AWSBedrockKBRetriever.ts
  class AWSBedrockKBRetriever_Retrievers (line 7) | class AWSBedrockKBRetriever_Retrievers implements INode {
    method constructor (line 19) | constructor() {
    method listRegions (line 100) | async listRegions(): Promise<INodeOptionsValue[]> {
    method init (line 105) | async init(nodeData: INodeData, input: string, options: ICommonObject)...

FILE: packages/components/nodes/retrievers/AzureRerankRetriever/AzureRerank.ts
  class AzureRerank (line 6) | class AzureRerank extends BaseDocumentCompressor {
    method constructor (line 12) | constructor(azureApiKey: string, azureApiUrl: string, model: string, k...
    method compressDocuments (line 20) | async compressDocuments(

FILE: packages/components/nodes/retrievers/AzureRerankRetriever/AzureRerankRetriever.ts
  class AzureRerankRetriever_Retrievers (line 8) | class AzureRerankRetriever_Retrievers implements INode {
    method constructor (line 22) | constructor() {
    method init (line 120) | async init(nodeData: INodeData, input: string, options: ICommonObject)...

FILE: packages/components/nodes/retrievers/CohereRerankRetriever/CohereRerank.ts
  class CohereRerank (line 6) | class CohereRerank extends BaseDocumentCompressor {
    method constructor (line 12) | constructor(cohereAPIKey: string, model: string, k: number, maxChunksP...
    method compressDocuments (line 19) | async compressDocuments(

FILE: packages/components/nodes/retrievers/CohereRerankRetriever/CohereRerankRetriever.ts
  class CohereRerankRetriever_Retrievers (line 8) | class CohereRerankRetriever_Retrievers implements INode {
    method constructor (line 22) | constructor() {
    method init (line 112) | async init(nodeData: INodeData, input: string, options: ICommonObject)...

FILE: packages/components/nodes/retrievers/CustomRetriever/CustomRetriever.ts
  class CustomRetriever_Retrievers (line 9) | class CustomRetriever_Retrievers implements INode {
    method constructor (line 21) | constructor() {
    method init (line 84) | async init(nodeData: INodeData, input: string): Promise<any> {
  type RetrieverInput (line 113) | type RetrieverInput<V extends VectorStore> = Omit<VectorStoreRetrieverIn...
  class CustomRetriever (line 118) | class CustomRetriever<V extends VectorStore> extends VectorStoreRetrieve...
    method constructor (line 122) | constructor(input: RetrieverInput<V>) {
    method getRelevantDocuments (line 128) | async getRelevantDocuments(query: string): Promise<Document[]> {
    method fromVectorStore (line 145) | static fromVectorStore<V extends VectorStore>(vectorStore: V, options:...
  function replaceMetadata (line 150) | function replaceMetadata(template: string, metadata: Record<string, any>...

FILE: packages/components/nodes/retrievers/EmbeddingsFilterRetriever/EmbeddingsFilterRetriever.ts
  class EmbeddingsFilterRetriever_Retrievers (line 8) | class EmbeddingsFilterRetriever_Retrievers implements INode {
    method constructor (line 21) | constructor() {
    method init (line 92) | async init(nodeData: INodeData, input: string): Promise<any> {

FILE: packages/components/nodes/retrievers/ExtractMetadataRetriever/ExtractMetadataRetriever.ts
  class ExtractMetadataRetriever_Retrievers (line 11) | class ExtractMetadataRetriever_Retrievers implements INode {
    method constructor (line 24) | constructor() {
    method init (line 113) | async init(nodeData: INodeData, input: string): Promise<any> {
  type RetrieverInput (line 160) | type RetrieverInput<V extends VectorStore> = Omit<VectorStoreRetrieverIn...
  class DynamicMetadataRetriever (line 166) | class DynamicMetadataRetriever<V extends VectorStore> extends VectorStor...
    method constructor (line 171) | constructor(input: RetrieverInput<V>) {
    method getFilter (line 178) | async getFilter(query: string): Promise<any> {
    method getRelevantDocuments (line 183) | async getRelevantDocuments(query: string): Promise<Document[]> {
    method fromVectorStore (line 201) | static fromVectorStore<V extends VectorStore>(vectorStore: V, options:...

FILE: packages/components/nodes/retrievers/HydeRetriever/HydeRetriever.ts
  class HydeRetriever_Retrievers (line 8) | class HydeRetriever_Retrievers implements INode {
    method constructor (line 20) | constructor() {
    method init (line 155) | async init(nodeData: INodeData, input: string): Promise<any> {

FILE: packages/components/nodes/retrievers/JinaRerankRetriever/JinaRerank.ts
  class JinaRerank (line 6) | class JinaRerank extends BaseDocumentCompressor {
    method constructor (line 12) | constructor(jinaAPIKey: string, model: string, topN: number) {
    method compressDocuments (line 18) | async compressDocuments(

FILE: packages/components/nodes/retrievers/JinaRerankRetriever/JinaRerankRetriever.ts
  class JinaRerankRetriever_Retrievers (line 7) | class JinaRerankRetriever_Retrievers implements INode {
    method constructor (line 21) | constructor() {
    method init (line 99) | async init(nodeData: INodeData, input: string, options: ICommonObject)...

FILE: packages/components/nodes/retrievers/LLMFilterRetriever/LLMFilterCompressionRetriever.ts
  class LLMFilterCompressionRetriever_Retrievers (line 8) | class LLMFilterCompressionRetriever_Retrievers implements INode {
    method constructor (line 21) | constructor() {
    method init (line 72) | async init(nodeData: INodeData, input: string): Promise<any> {

FILE: packages/components/nodes/retrievers/MultiQueryRetriever/MultiQueryRetriever.ts
  class MultiQueryRetriever_Retrievers (line 22) | class MultiQueryRetriever_Retrievers implements INode {
    method constructor (line 33) | constructor() {
    method init (line 65) | async init(nodeData: INodeData, input: string): Promise<any> {

FILE: packages/components/nodes/retrievers/PromptRetriever/PromptRetriever.ts
  class PromptRetriever_Retrievers (line 4) | class PromptRetriever_Retrievers implements INode {
    method constructor (line 15) | constructor() {
    method init (line 49) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/retrievers/RRFRetriever/RRFRetriever.ts
  class RRFRetriever_Retrievers (line 9) | class RRFRetriever_Retrievers implements INode {
    method constructor (line 22) | constructor() {
    method init (line 103) | async init(nodeData: INodeData, input: string): Promise<any> {

FILE: packages/components/nodes/retrievers/RRFRetriever/ReciprocalRankFusion.ts
  class ReciprocalRankFusion (line 9) | class ReciprocalRankFusion extends BaseDocumentCompressor {
    method constructor (line 15) | constructor(llm: BaseLanguageModel, baseRetriever: VectorStoreRetrieve...
    method compressDocuments (line 23) | async compressDocuments(
    method reciprocalRankFunction (line 64) | reciprocalRankFunction(docList: Document<Record<string, any>>[][], k: ...

FILE: packages/components/nodes/retrievers/SimilarityThresholdRetriever/SimilarityThresholdRetriever.ts
  class SimilarityThresholdRetriever_Retrievers (line 6) | class SimilarityThresholdRetriever_Retrievers implements INode {
    method constructor (line 18) | constructor() {
    method init (line 89) | async init(nodeData: INodeData, input: string): Promise<any> {

FILE: packages/components/nodes/retrievers/VectorStoreRetriever/VectorStoreRetriever.ts
  class VectorStoreRetriever_Retrievers (line 4) | class VectorStoreRetriever_Retrievers implements INode {
    method constructor (line 15) | constructor() {
    method init (line 47) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/retrievers/VoyageAIRetriever/VoyageAIRerank.ts
  class VoyageAIRerank (line 6) | class VoyageAIRerank extends BaseDocumentCompressor {
    method constructor (line 12) | constructor(voyageAIAPIKey: string, model: string, k: number) {
    method compressDocuments (line 18) | async compressDocuments(

FILE: packages/components/nodes/retrievers/VoyageAIRetriever/VoyageAIRerankRetriever.ts
  class VoyageAIRerankRetriever_Retrievers (line 8) | class VoyageAIRerankRetriever_Retrievers implements INode {
    method constructor (line 22) | constructor() {
    method init (line 107) | async init(nodeData: INodeData, input: string, options: ICommonObject)...

FILE: packages/components/nodes/sequentialagents/Agent/Agent.ts
  constant TAB_IDENTIFIER (line 196) | const TAB_IDENTIFIER = 'selectedUpdateStateMemoryTab'
  class Agent_SeqAgents (line 198) | class Agent_SeqAgents implements INode {
    method constructor (line 212) | constructor() {
    method init (line 465) | async init(nodeData: INodeData, input: string, options: ICommonObject)...
  function createAgent (line 619) | async function createAgent(
  function agentNode (line 763) | async function agentNode(
  class ToolNode (line 965) | class ToolNode<T extends BaseMessage[] | MessagesState> extends Runnable...
    method constructor (line 971) | constructor(
    method run (line 987) | private async run(input: BaseMessage[] | MessagesState, config: Runnab...

FILE: packages/components/nodes/sequentialagents/Condition/Condition.ts
  constant TAB_IDENTIFIER (line 73) | const TAB_IDENTIFIER = 'selectedConditionFunctionTab'
  type IConditionGridItem (line 75) | interface IConditionGridItem {
  class Condition_SeqAgents (line 82) | class Condition_SeqAgents implements INode {
    method constructor (line 96) | constructor() {
    method init (line 233) | async init(nodeData: INodeData, input: string, options: ICommonObject)...

FILE: packages/components/nodes/sequentialagents/ConditionAgent/ConditionAgent.ts
  type IConditionGridItem (line 37) | interface IConditionGridItem {
  constant TAB_IDENTIFIER (line 140) | const TAB_IDENTIFIER = 'selectedConditionFunctionTab'
  class ConditionAgent_SeqAgents (line 142) | class ConditionAgent_SeqAgents implements INode {
    method constructor (line 156) | constructor() {
    method init (line 392) | async init(nodeData: INodeData, input: string, options: ICommonObject)...

FILE: packages/components/nodes/sequentialagents/CustomFunction/CustomFunction.ts
  class CustomFunction_SeqAgents (line 21) | class CustomFunction_SeqAgents implements INode {
    method constructor (line 32) | constructor() {
    method init (line 92) | async init(nodeData: INodeData, input: string, options: ICommonObject)...

FILE: packages/components/nodes/sequentialagents/End/End.ts
  class End_SeqAgents (line 4) | class End_SeqAgents implements INode {
    method constructor (line 18) | constructor() {
    method init (line 40) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/sequentialagents/ExecuteFlow/ExecuteFlow.ts
  class ExecuteFlow_SeqAgents (line 17) | class ExecuteFlow_SeqAgents implements INode {
    method constructor (line 29) | constructor() {
    method listFlows (line 128) | async listFlows(_: INodeData, options: ICommonObject): Promise<INodeOp...
    method init (line 151) | async init(nodeData: INodeData, input: string, options: ICommonObject)...

FILE: packages/components/nodes/sequentialagents/LLMNode/LLMNode.ts
  constant TAB_IDENTIFIER (line 41) | const TAB_IDENTIFIER = 'selectedUpdateStateMemoryTab'
  class LLMNode_SeqAgents (line 167) | class LLMNode_SeqAgents implements INode {
    method constructor (line 181) | constructor() {
    method init (line 393) | async init(nodeData: INodeData, input: string, options: ICommonObject)...
  function createAgent (line 490) | async function createAgent(
  function agentNode (line 556) | async function agentNode(

FILE: packages/components/nodes/sequentialagents/Loop/Loop.ts
  class Loop_SeqAgents (line 3) | class Loop_SeqAgents implements INode {
    method constructor (line 17) | constructor() {
    method init (line 47) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/sequentialagents/Start/Start.ts
  class Start_SeqAgents (line 6) | class Start_SeqAgents implements INode {
    method constructor (line 19) | constructor() {
    method init (line 62) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/sequentialagents/State/State.ts
  constant TAB_IDENTIFIER (line 29) | const TAB_IDENTIFIER = 'selectedStateTab'
  class State_SeqAgents (line 31) | class State_SeqAgents implements INode {
    method constructor (line 44) | constructor() {
    method init (line 102) | async init(nodeData: INodeData, input: string, options: ICommonObject)...

FILE: packages/components/nodes/sequentialagents/ToolNode/ToolNode.ts
  constant TAB_IDENTIFIER (line 139) | const TAB_IDENTIFIER = 'selectedUpdateStateMemoryTab'
  class ToolNode_SeqAgents (line 141) | class ToolNode_SeqAgents implements INode {
    method constructor (line 154) | constructor() {
    method init (line 312) | async init(nodeData: INodeData, input: string, options: ICommonObject)...
  class ToolNode (line 364) | class ToolNode<T extends IStateWithMessages | BaseMessage[] | MessagesSt...
    method constructor (line 370) | constructor(
    method run (line 386) | private async run(input: T, config: RunnableConfig): Promise<BaseMessa...

FILE: packages/components/nodes/sequentialagents/commonUtils.ts
  function filterConversationHistory (line 203) | function filterConversationHistory(
  class ExtractTool (line 286) | class ExtractTool extends StructuredTool {
    method constructor (line 293) | constructor(fields: ICommonObject) {
    method _call (line 298) | async _call(input: any) {
  type RunnableCallableArgs (line 303) | interface RunnableCallableArgs extends Partial<any> {
  type MessagesState (line 311) | interface MessagesState {
  class RunnableCallable (line 315) | class RunnableCallable<I = unknown, O = unknown> extends Runnable<I, O> {
    method constructor (line 328) | constructor(fields: RunnableCallableArgs) {
    method invoke (line 341) | async invoke(input: any, options?: Partial<RunnableConfig> | undefined...

FILE: packages/components/nodes/speechtotext/assemblyai/AssemblyAI.ts
  class AssemblyAI_SpeechToText (line 3) | class AssemblyAI_SpeechToText implements INode {
    method constructor (line 15) | constructor() {

FILE: packages/components/nodes/textsplitters/CharacterTextSplitter/CharacterTextSplitter.ts
  class CharacterTextSplitter_TextSplitters (line 5) | class CharacterTextSplitter_TextSplitters implements INode {
    method constructor (line 16) | constructor() {
    method init (line 53) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/textsplitters/CodeTextSplitter/CodeTextSplitter.ts
  class CodeTextSplitter_TextSplitters (line 9) | class CodeTextSplitter_TextSplitters implements INode {
    method constructor (line 19) | constructor() {
    method init (line 118) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/textsplitters/HtmlToMarkdownTextSplitter/HtmlToMarkdownTextSplitter.ts
  class HtmlToMarkdownTextSplitter_TextSplitters (line 6) | class HtmlToMarkdownTextSplitter_TextSplitters implements INode {
    method constructor (line 17) | constructor() {
    method init (line 46) | async init(nodeData: INodeData): Promise<any> {
  class HtmlToMarkdownTextSplitter (line 60) | class HtmlToMarkdownTextSplitter extends MarkdownTextSplitter implements...
    method constructor (line 61) | constructor(fields?: Partial<MarkdownTextSplitterParams>) {
    method splitText (line 66) | splitText(text: string): Promise<string[]> {

FILE: packages/components/nodes/textsplitters/MarkdownTextSplitter/MarkdownTextSplitter.ts
  class MarkdownTextSplitter_TextSplitters (line 5) | class MarkdownTextSplitter_TextSplitters implements INode {
    method constructor (line 16) | constructor() {
    method init (line 83) | async init(nodeData: INodeData): Promise<any> {
    method splitByHeaders (line 121) | private async splitByHeaders(text: string, headerLevel: string, fallba...
    method getHeaderLevel (line 154) | private getHeaderLevel(headerLevel: string): number {

FILE: packages/components/nodes/textsplitters/RecursiveCharacterTextSplitter/RecursiveCharacterTextSplitter.ts
  class RecursiveCharacterTextSplitter_TextSplitters (line 5) | class RecursiveCharacterTextSplitter_TextSplitters implements INode {
    method constructor (line 16) | constructor() {
    method init (line 55) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/textsplitters/TokenTextSplitter/TokenTextSplitter.ts
  class TokenTextSplitter_TextSplitters (line 6) | class TokenTextSplitter_TextSplitters implements INode {
    method constructor (line 17) | constructor() {
    method init (line 74) | async init(nodeData: INodeData): Promise<any> {

FILE: packages/components/nodes/tools/AWSDynamoDBKVStorage/AWSDynamoDBKVStorage.ts
  type Operation (line 9) | enum Operation {
  constant ERROR_PLACEHOLDER (line 15) | const ERROR_PLACEHOLDER = 'error'
  constant KEY_SEPARATOR (line 16) | const KEY_SEPARATOR = '#'
  constant MAX_KEY_LENGTH (line 17) | const MAX_KEY_LENGTH = 2048 // DynamoDB limit for partition key
  function createDynamoDBClient (line 20) | function createDynamoDBClient(credentials: AWSCredentials | undefined, r...
  function buildFullKey (line 35) | function 
Copy disabled (too large) Download .json
Condensed preview — 1790 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (15,643K chars).
[
  {
    "path": ".dockerignore",
    "chars": 97,
    "preview": "node_modules\ndist\nbuild\n\n**/node_modules\n**/build\n**/dist\n\npackages/server/.env\npackages/ui/.env\n"
  },
  {
    "path": ".eslintrc.js",
    "chars": 1109,
    "preview": "module.exports = {\n    extends: [\n        'eslint:recommended',\n        'plugin:markdown/recommended',\n        'plugin:r"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 815,
    "preview": "# These are supported funding model platforms\n\ngithub: [FlowiseAI] # Replace with up to 4 GitHub Sponsors-enabled userna"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yml",
    "chars": 2733,
    "preview": "name: Bug Report\ndescription: File a bug report to help us improve\nlabels: ['bug']\nassignees: []\nbody:\n    - type: markd"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.yml",
    "chars": 2339,
    "preview": "name: Feature Request\ndescription: Suggest a new feature or enhancement for Flowise\nlabels: ['enhancement']\nassignees: ["
  },
  {
    "path": ".github/workflows/docker-image-dockerhub.yml",
    "chars": 2593,
    "preview": "name: Docker Image CI - Docker Hub\n\non:\n    workflow_dispatch:\n        inputs:\n            node_version:\n               "
  },
  {
    "path": ".github/workflows/docker-image-ecr.yml",
    "chars": 3237,
    "preview": "name: Docker Image CI - AWS ECR\n\non:\n    workflow_dispatch:\n        inputs:\n            environment:\n                des"
  },
  {
    "path": ".github/workflows/main.yml",
    "chars": 1666,
    "preview": "name: Node CI\non:\n    push:\n        branches:\n            - main\n    pull_request:\n        branches:\n            - '*'\n "
  },
  {
    "path": ".github/workflows/proprietary-path-guard.yml",
    "chars": 4421,
    "preview": "name: Proprietary Path Guard\n\n# =============================================================================\n# This wor"
  },
  {
    "path": ".github/workflows/publish-agentflow.yml",
    "chars": 6006,
    "preview": "name: Publish @flowiseai/agentflow\non:\n    workflow_dispatch:\n        inputs:\n            bump:\n                descript"
  },
  {
    "path": ".github/workflows/test_docker_build.yml",
    "chars": 368,
    "preview": "name: Test Docker Build\n\non:\n    push:\n        branches:\n            - main\n\n    pull_request:\n        branches:\n       "
  },
  {
    "path": ".gitignore",
    "chars": 1405,
    "preview": "# editor\n.idea\n.vscode\n\n# dependencies\n**/node_modules\n**/package-lock.json\n!**/examples/package-lock.json\n**/yarn.lock\n"
  },
  {
    "path": ".husky/pre-commit",
    "chars": 195,
    "preview": "#!/bin/sh\n. \"$(dirname \"$0\")/_/husky.sh\"\n\npnpm quick # prettify\npnpm lint-staged # eslint lint(also include prettify but"
  },
  {
    "path": ".husky/pre-push",
    "chars": 3229,
    "preview": "#!/bin/bash\n[ -f \"$(dirname \"$0\")/_/husky.sh\" ] && . \"$(dirname \"$0\")/_/husky.sh\"\n\n# ==================================="
  },
  {
    "path": ".npmrc",
    "chars": 182,
    "preview": "auto-install-peers = true\nstrict-peer-dependencies = false\nprefer-workspace-packages = true\nlink-workspace-packages = de"
  },
  {
    "path": ".nvmrc",
    "chars": 9,
    "preview": "v20.19.2\n"
  },
  {
    "path": ".prettierignore",
    "chars": 15,
    "preview": "pnpm-lock.yaml\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 3301,
    "preview": "# Contributor Covenant Code of Conduct\n\nEnglish | [中文](./i18n/CODE_OF_CONDUCT-ZH.md)\n\n## Our Pledge\n\nIn the interest of "
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 22908,
    "preview": "<!-- markdownlint-disable MD030 -->\n\n# Contributing to Flowise\n\nEnglish | [中文](./i18n/CONTRIBUTING-ZH.md)\n\nWe appreciate"
  },
  {
    "path": "Dockerfile",
    "chars": 884,
    "preview": "# Build local monorepo image\n# docker build --no-cache -t  flowise .\n\n# Run image\n# docker run -d -p 3000:3000 flowise\n\n"
  },
  {
    "path": "LICENSE.md",
    "chars": 10541,
    "preview": "Copyright (c) 2023-present FlowiseAI, Inc.\n\nPortions of this software are licensed as follows:\n\n-   All content that res"
  },
  {
    "path": "README.md",
    "chars": 7607,
    "preview": "<!-- markdownlint-disable MD030 -->\n\n<p align=\"center\">\n<img src=\"https://github.com/FlowiseAI/Flowise/blob/main/images/"
  },
  {
    "path": "SECURITY.md",
    "chars": 4311,
    "preview": "### Responsible Disclosure Policy\n\nAt Flowise, we prioritize security and continuously work to safeguard our systems. Ho"
  },
  {
    "path": "artillery-load-test.yml",
    "chars": 935,
    "preview": "# npm install -g artillery@latest\n# artillery run artillery-load-test.yml\n# Refer https://www.artillery.io/docs\n\nconfig:"
  },
  {
    "path": "docker/Dockerfile",
    "chars": 749,
    "preview": "# Stage 1: Build stage\nFROM node:20-alpine AS build\n\nUSER root\n\n# Skip downloading Chrome for Puppeteer (saves build tim"
  },
  {
    "path": "docker/README.md",
    "chars": 1261,
    "preview": "# Flowise Docker Hub Image\n\nStarts Flowise from [DockerHub Image](https://hub.docker.com/r/flowiseai/flowise)\n\n## Usage\n"
  },
  {
    "path": "docker/docker-compose-queue-prebuilt.yml",
    "chars": 14570,
    "preview": "version: '3.1'\n\nservices:\n    redis:\n        image: redis:alpine\n        container_name: flowise-redis\n        ports:\n  "
  },
  {
    "path": "docker/docker-compose-queue-source.yml",
    "chars": 2236,
    "preview": "version: '3.1'\n\nservices:\n    redis:\n        image: redis:alpine\n        container_name: flowise-redis\n        ports:\n  "
  },
  {
    "path": "docker/docker-compose.yml",
    "chars": 7072,
    "preview": "version: '3.1'\n\nservices:\n    flowise:\n        image: flowiseai/flowise:latest\n        restart: always\n        environme"
  },
  {
    "path": "docker/worker/Dockerfile",
    "chars": 1083,
    "preview": "FROM node:20-alpine\n\nRUN apk add --update libc6-compat python3 make g++\n# needed for pdfjs-dist\nRUN apk add --no-cache b"
  },
  {
    "path": "docker/worker/README.md",
    "chars": 1569,
    "preview": "# Flowise Worker\n\nBy utilizing worker instances when operating in queue mode, Flowise can be scaled horizontally by addi"
  },
  {
    "path": "docker/worker/docker-compose.yml",
    "chars": 7165,
    "preview": "version: '3.1'\n\nservices:\n    flowise:\n        image: flowiseai/flowise-worker:latest\n        restart: always\n        en"
  },
  {
    "path": "docker/worker/healthcheck/healthcheck.js",
    "chars": 310,
    "preview": "const express = require('express')\nconst app = express()\n\nconst port = process.env.WORKER_PORT || 5566\n\napp.get('/health"
  },
  {
    "path": "docker/worker/healthcheck/package.json",
    "chars": 308,
    "preview": "{\n    \"name\": \"flowise-worker-healthcheck\",\n    \"version\": \"1.0.0\",\n    \"description\": \"Simple healthcheck server for Fl"
  },
  {
    "path": "i18n/CODE_OF_CONDUCT-ZH.md",
    "chars": 1091,
    "preview": "<!-- markdownlint-disable MD030 -->\n\n# 贡献者公约行为准则\n\n[English](../CODE_OF_CONDUCT.md) | 中文\n\n## 我们的承诺\n\n为了促进一个开放和友好的环境,我们作为贡献"
  },
  {
    "path": "i18n/CONTRIBUTING-ZH.md",
    "chars": 7388,
    "preview": "<!-- markdownlint-disable MD030 -->\n\n# 贡献给 Flowise\n\n[English](../CONTRIBUTING.md) | 中文\n\n我们欢迎任何形式的贡献。\n\n## ⭐ 点赞\n\n点赞并分享[Git"
  },
  {
    "path": "i18n/README-JA.md",
    "chars": 5563,
    "preview": "<!-- markdownlint-disable MD030 -->\n\n<p align=\"center\">\n<img src=\"https://github.com/FlowiseAI/Flowise/blob/main/images/"
  },
  {
    "path": "i18n/README-KR.md",
    "chars": 5695,
    "preview": "<!-- markdownlint-disable MD030 -->\n\n<p align=\"center\">\n<img src=\"https://github.com/FlowiseAI/Flowise/blob/main/images/"
  },
  {
    "path": "i18n/README-TW.md",
    "chars": 5812,
    "preview": "<!-- markdownlint-disable MD030 -->\n\n<p align=\"center\">\n<img src=\"https://github.com/FlowiseAI/Flowise/blob/main/images/"
  },
  {
    "path": "i18n/README-ZH.md",
    "chars": 4999,
    "preview": "<!-- markdownlint-disable MD030 -->\n\n<p align=\"center\">\n<img src=\"https://github.com/FlowiseAI/Flowise/blob/main/images/"
  },
  {
    "path": "metrics/grafana/grafana.dashboard.app.json.txt",
    "chars": 15624,
    "preview": "{\n  \"annotations\": {\n    \"list\": [\n      {\n        \"builtIn\": 1,\n        \"datasource\": {\n          \"type\": \"grafana\",\n  "
  },
  {
    "path": "metrics/grafana/grafana.dashboard.server.json.txt",
    "chars": 24759,
    "preview": "{\n  \"annotations\": {\n    \"list\": [\n      {\n        \"builtIn\": 1,\n        \"datasource\": {\n          \"type\": \"datasource\","
  },
  {
    "path": "metrics/otel/compose.yaml",
    "chars": 641,
    "preview": "version: \"2\"\nservices:\n  otel-collector:\n    read_only: true\n    image: otel/opentelemetry-collector-contrib\n    command"
  },
  {
    "path": "metrics/otel/otel.config.yml",
    "chars": 1602,
    "preview": "receivers:\n  otlp:\n    protocols:\n      http:\n        endpoint: 0.0.0.0:4318\n      grpc:\n        endpoint: 0.0.0.0:4317\n"
  },
  {
    "path": "metrics/prometheus/prometheus.config.yml",
    "chars": 316,
    "preview": "global:\n    scrape_interval: 5s\nscrape_configs:\n    - job_name: 'FlowiseAI'\n      static_configs:\n          - targets: ["
  },
  {
    "path": "package.json",
    "chars": 4428,
    "preview": "{\n    \"name\": \"flowise\",\n    \"version\": \"3.1.0\",\n    \"private\": true,\n    \"homepage\": \"https://flowiseai.com\",\n    \"work"
  },
  {
    "path": "packages/agentflow/.eslintignore",
    "chars": 110,
    "preview": "dist\nnode_modules\nbuild\ncoverage\n*.config.ts\n*.config.js\nvite.config.ts\nexamples/dist\nexamples/vite.config.ts\n"
  },
  {
    "path": "packages/agentflow/.eslintrc.js",
    "chars": 7211,
    "preview": "const features = ['canvas', 'generator', 'node-editor', 'node-palette']\nconst crossFeatureRules = features.map((feature)"
  },
  {
    "path": "packages/agentflow/.npmignore",
    "chars": 169,
    "preview": "# Source & config\n/src\n/examples\n*.ts\n!*.d.ts\ntsconfig.json\nvite.config.ts\njest.config.js\n.eslintrc.js\n\n# Dev artifacts\n"
  },
  {
    "path": "packages/agentflow/.prettierignore",
    "chars": 143,
    "preview": "dist\nnode_modules\nbuild\ncoverage\n*.config.ts\n*.config.js\nvite.config.ts\nexamples/dist\nexamples/vite.config.ts\npnpm-lock."
  },
  {
    "path": "packages/agentflow/.prettierrc",
    "chars": 171,
    "preview": "{\n    \"printWidth\": 140,\n    \"singleQuote\": true,\n    \"jsxSingleQuote\": true,\n    \"trailingComma\": \"none\",\n    \"tabWidth"
  },
  {
    "path": "packages/agentflow/ARCHITECTURE.md",
    "chars": 11660,
    "preview": "# @flowiseai/agentflow - Architecture\n\nThis document describes the internal architecture of the `@flowiseai/agentflow` p"
  },
  {
    "path": "packages/agentflow/README.md",
    "chars": 13024,
    "preview": "# @flowiseai/agentflow\r\n\r\n[![Version](https://img.shields.io/npm/v/@flowiseai/agentflow)](https://www.npmjs.com/package/"
  },
  {
    "path": "packages/agentflow/TESTS.md",
    "chars": 4545,
    "preview": "# @flowiseai/agentflow — Testing Guide\n\n## Running Tests\n\n```bash\npnpm test              # Fast run (no coverage)\npnpm t"
  },
  {
    "path": "packages/agentflow/examples/README.md",
    "chars": 5523,
    "preview": "# @flowiseai/agentflow Examples\n\nThis folder demonstrates various usage patterns of the `@flowiseai/agentflow` package.\n"
  },
  {
    "path": "packages/agentflow/examples/index.html",
    "chars": 638,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <meta charset=\"UTF-8\" />\n        <meta name=\"viewport\" content=\"widt"
  },
  {
    "path": "packages/agentflow/examples/package-lock.json",
    "chars": 133246,
    "preview": "{\n    \"name\": \"agentflow-basic-example\",\n    \"version\": \"0.0.0\",\n    \"lockfileVersion\": 3,\n    \"requires\": true,\n    \"pa"
  },
  {
    "path": "packages/agentflow/examples/package.json",
    "chars": 701,
    "preview": "{\n    \"name\": \"agentflow-basic-example\",\n    \"private\": true,\n    \"version\": \"0.0.0\",\n    \"type\": \"module\",\n    \"scripts"
  },
  {
    "path": "packages/agentflow/examples/src/App.tsx",
    "chars": 7197,
    "preview": "/**\n * Example App with Dropdown Selector\n *\n * Select different examples from the dropdown to see various SDK usage pat"
  },
  {
    "path": "packages/agentflow/examples/src/FlowStatePanel.tsx",
    "chars": 7625,
    "preview": "/**\n * FlowStatePanel Component\n *\n * Displays live onFlowChange data and saved flow snapshots\n * in a dark-themed, resi"
  },
  {
    "path": "packages/agentflow/examples/src/PropsDisplay.tsx",
    "chars": 4714,
    "preview": "/**\n * PropsDisplay Component\n *\n * Displays Agentflow component props in an expandable accordion format\n */\n\ninterface "
  },
  {
    "path": "packages/agentflow/examples/src/config.ts",
    "chars": 216,
    "preview": "/**\n * Application configuration from environment variables\n */\nexport const apiBaseUrl = import.meta.env.VITE_INSTANCE_"
  },
  {
    "path": "packages/agentflow/examples/src/demos/AllNodeTypesExample.tsx",
    "chars": 9120,
    "preview": "/**\n * All Node Types Example\n *\n * Showcases all available node types with their distinct colors and icons.\n * Useful f"
  },
  {
    "path": "packages/agentflow/examples/src/demos/BasicExample.tsx",
    "chars": 5777,
    "preview": "/**\n * Basic Example\n *\n * Demonstrates basic @flowiseai/agentflow usage with imperative methods,\n * onFlowChange tracki"
  },
  {
    "path": "packages/agentflow/examples/src/demos/CustomNodeExample.tsx",
    "chars": 10518,
    "preview": "/**\n * Custom Node Example\n *\n * Demonstrates how a node can carry its own InputParam[] definitions\n * in data.inputs, b"
  },
  {
    "path": "packages/agentflow/examples/src/demos/CustomUIExample.tsx",
    "chars": 11480,
    "preview": "/**\n * Custom UI Example\n *\n * Demonstrates how to customize the header and node palette\n * using render props for full "
  },
  {
    "path": "packages/agentflow/examples/src/demos/DarkModeExample.tsx",
    "chars": 5483,
    "preview": "/**\n * Dark Mode Example\n *\n * Demonstrates the agentflow canvas with dark theme styling.\n * The nodes and edges automat"
  },
  {
    "path": "packages/agentflow/examples/src/demos/FilteredComponentsExample.tsx",
    "chars": 6223,
    "preview": "/**\n * Filtered Components Example\n *\n * Demonstrates how to restrict which node types are available in the palette.\n * "
  },
  {
    "path": "packages/agentflow/examples/src/demos/MultiNodeFlow.tsx",
    "chars": 5917,
    "preview": "/**\n * Multi-Node Flow Example\n *\n * Demonstrates a complete flow with multiple connected nodes,\n * showing the styled e"
  },
  {
    "path": "packages/agentflow/examples/src/demos/StatusIndicatorsExample.tsx",
    "chars": 9172,
    "preview": "/**\n * Status Indicators Example\n *\n * Demonstrates node status indicators showing execution state:\n * - INPROGRESS: Spi"
  },
  {
    "path": "packages/agentflow/examples/src/demos/index.ts",
    "chars": 291,
    "preview": "export * from './AllNodeTypesExample'\nexport * from './BasicExample'\nexport * from './CustomNodeExample'\nexport * from '"
  },
  {
    "path": "packages/agentflow/examples/src/main.tsx",
    "chars": 613,
    "preview": "import React from 'react'\nimport ReactDOM from 'react-dom/client'\n\nimport CssBaseline from '@mui/material/CssBaseline'\ni"
  },
  {
    "path": "packages/agentflow/examples/src/vite-env.d.ts",
    "chars": 200,
    "preview": "/// <reference types=\"vite/client\" />\n\ninterface ImportMetaEnv {\n    readonly VITE_INSTANCE_URL: string\n    readonly VIT"
  },
  {
    "path": "packages/agentflow/examples/tsconfig.json",
    "chars": 628,
    "preview": "{\n    \"compilerOptions\": {\n        \"target\": \"ES2020\",\n        \"useDefineForClassFields\": true,\n        \"lib\": [\"ES2020\""
  },
  {
    "path": "packages/agentflow/examples/vite.config.ts",
    "chars": 739,
    "preview": "import { defineConfig } from 'vite'\nimport react from '@vitejs/plugin-react'\nimport path from 'path'\n\nexport default def"
  },
  {
    "path": "packages/agentflow/jest.config.js",
    "chars": 4082,
    "preview": "// Shared config inherited by both project types\nconst baseConfig = {\n    preset: 'ts-jest',\n    roots: ['<rootDir>/src'"
  },
  {
    "path": "packages/agentflow/package.json",
    "chars": 3781,
    "preview": "{\n    \"name\": \"@flowiseai/agentflow\",\n    \"version\": \"0.0.0-dev.6\",\n    \"description\": \"Embeddable React component for b"
  },
  {
    "path": "packages/agentflow/src/Agentflow.test.tsx",
    "chars": 18034,
    "preview": "/**\n * Integration tests for Agentflow component\n * Focus on dark mode styling and theme integration\n */\n\nimport { creat"
  },
  {
    "path": "packages/agentflow/src/Agentflow.tsx",
    "chars": 14994,
    "preview": "import { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react'\nimport ReactF"
  },
  {
    "path": "packages/agentflow/src/AgentflowProvider.tsx",
    "chars": 3054,
    "preview": "import { ReactNode, useEffect, useMemo } from 'react'\nimport { ReactFlowProvider } from 'reactflow'\n\nimport { ThemeProvi"
  },
  {
    "path": "packages/agentflow/src/__mocks__/@tiptap/extension-code-block-lowlight.ts",
    "chars": 169,
    "preview": "const CodeBlockLowlight = {\n    configure: jest.fn(() => 'CodeBlockLowlight'),\n    extend: jest.fn(() => 'CodeBlockLowli"
  },
  {
    "path": "packages/agentflow/src/__mocks__/@tiptap/extension-placeholder.ts",
    "chars": 91,
    "preview": "const Placeholder = { configure: jest.fn(() => 'Placeholder') }\nexport default Placeholder\n"
  },
  {
    "path": "packages/agentflow/src/__mocks__/@tiptap/react.ts",
    "chars": 589,
    "preview": "import { createElement, forwardRef } from 'react'\n\nexport const useEditor = (config?: Record<string, unknown>) => ({\n   "
  },
  {
    "path": "packages/agentflow/src/__mocks__/@tiptap/starter-kit.ts",
    "chars": 88,
    "preview": "const StarterKit = { configure: jest.fn(() => 'StarterKit') }\nexport default StarterKit\n"
  },
  {
    "path": "packages/agentflow/src/__mocks__/axios.ts",
    "chars": 886,
    "preview": "/**\n * Mock for axios library\n *\n * Prevents network errors in tests by mocking all HTTP requests.\n * Returns mock data "
  },
  {
    "path": "packages/agentflow/src/__mocks__/lowlight.ts",
    "chars": 96,
    "preview": "export const common = {}\nexport const createLowlight = jest.fn(() => ({ register: jest.fn() }))\n"
  },
  {
    "path": "packages/agentflow/src/__mocks__/reactflow.tsx",
    "chars": 3015,
    "preview": "/**\n * Mock for ReactFlow library\n *\n * Provides mock implementations of ReactFlow components and hooks for testing.\n * "
  },
  {
    "path": "packages/agentflow/src/__mocks__/styleMock.js",
    "chars": 20,
    "preview": "module.exports = {}\n"
  },
  {
    "path": "packages/agentflow/src/__test_utils__/factories.ts",
    "chars": 1561,
    "preview": "import type { FlowEdge, FlowNode, NodeData } from '@/core/types'\n\n/**\n * Create a {@link FlowNode} with sensible default"
  },
  {
    "path": "packages/agentflow/src/__test_utils__/jest-environment-jsdom.js",
    "chars": 1782,
    "preview": "/**\n * Custom Jest environment for jsdom tests\n *\n * Prevents canvas native module from being loaded during test initial"
  },
  {
    "path": "packages/agentflow/src/atoms/ArrayInput.test.tsx",
    "chars": 13826,
    "preview": "import { fireEvent, render, screen } from '@testing-library/react'\n\nimport type { InputParam, NodeData } from '@/core/ty"
  },
  {
    "path": "packages/agentflow/src/atoms/ArrayInput.tsx",
    "chars": 8494,
    "preview": "import { type ComponentType, useCallback, useMemo } from 'react'\n\nimport { Box, Button, Chip, IconButton } from '@mui/ma"
  },
  {
    "path": "packages/agentflow/src/atoms/CodeInput.test.tsx",
    "chars": 2447,
    "preview": "import { render, screen } from '@testing-library/react'\n\nimport { CodeInput } from './CodeInput'\n\n// Mock CodeMirror — j"
  },
  {
    "path": "packages/agentflow/src/atoms/CodeInput.tsx",
    "chars": 1977,
    "preview": "import { useMemo } from 'react'\n\nimport { javascript } from '@codemirror/lang-javascript'\nimport { json } from '@codemir"
  },
  {
    "path": "packages/agentflow/src/atoms/ConditionBuilder.test.tsx",
    "chars": 8872,
    "preview": "import { fireEvent, render, screen } from '@testing-library/react'\n\nimport type { InputParam, NodeData } from '@/core/ty"
  },
  {
    "path": "packages/agentflow/src/atoms/ConditionBuilder.tsx",
    "chars": 7211,
    "preview": "import { useCallback, useMemo } from 'react'\n\nimport { Box, Button, Chip, IconButton, Typography } from '@mui/material'\n"
  },
  {
    "path": "packages/agentflow/src/atoms/ExpandTextDialog.test.tsx",
    "chars": 10431,
    "preview": "import { fireEvent, render, screen } from '@testing-library/react'\n\nimport { ExpandTextDialog } from './ExpandTextDialog"
  },
  {
    "path": "packages/agentflow/src/atoms/ExpandTextDialog.tsx",
    "chars": 3865,
    "preview": "import { useCallback, useState } from 'react'\n\nimport { Box, Button, Dialog, DialogActions, DialogContent, TextField, Ty"
  },
  {
    "path": "packages/agentflow/src/atoms/JsonInput.test.tsx",
    "chars": 2601,
    "preview": "import { render, screen } from '@testing-library/react'\n\nimport { JsonInput } from './JsonInput'\n\n// Mock ReactJson\njest"
  },
  {
    "path": "packages/agentflow/src/atoms/JsonInput.tsx",
    "chars": 6547,
    "preview": "import { useCallback, useEffect, useRef, useState } from 'react'\n\nimport { FormControl, Popover } from '@mui/material'\ni"
  },
  {
    "path": "packages/agentflow/src/atoms/MainCard.tsx",
    "chars": 2223,
    "preview": "import { forwardRef, ReactNode } from 'react'\n\nimport { Card, CardContent, CardHeader, Divider, SxProps, Theme, Typograp"
  },
  {
    "path": "packages/agentflow/src/atoms/MessagesInput.test.tsx",
    "chars": 18789,
    "preview": "import { fireEvent, render, screen, waitFor } from '@testing-library/react'\n\nimport type { InputParam, NodeData } from '"
  },
  {
    "path": "packages/agentflow/src/atoms/MessagesInput.tsx",
    "chars": 9890,
    "preview": "import { useCallback, useMemo, useRef, useState } from 'react'\n\nimport { Box, Button, Chip, IconButton, MenuItem, Select"
  },
  {
    "path": "packages/agentflow/src/atoms/NodeInputHandler.test.tsx",
    "chars": 20144,
    "preview": "import { ComponentType } from 'react'\n\nimport { fireEvent, render, screen } from '@testing-library/react'\n\nimport type {"
  },
  {
    "path": "packages/agentflow/src/atoms/NodeInputHandler.tsx",
    "chars": 22704,
    "preview": "import { ComponentType, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { Handle, Position, useU"
  },
  {
    "path": "packages/agentflow/src/atoms/RichTextEditor.lazy.tsx",
    "chars": 787,
    "preview": "import { lazy, Suspense } from 'react'\n\nimport { tokens } from '@/core/theme/tokens'\n\nimport type { RichTextEditorProps "
  },
  {
    "path": "packages/agentflow/src/atoms/RichTextEditor.test.tsx",
    "chars": 2929,
    "preview": "import { render, screen } from '@testing-library/react'\n\nimport { RichTextEditor } from './RichTextEditor'\n\n// --- Mock "
  },
  {
    "path": "packages/agentflow/src/atoms/RichTextEditor.tsx",
    "chars": 7428,
    "preview": "import { useEffect, useMemo, useRef } from 'react'\n\nimport { Box } from '@mui/material'\nimport { styled } from '@mui/mat"
  },
  {
    "path": "packages/agentflow/src/atoms/ScenariosInput.test.tsx",
    "chars": 7401,
    "preview": "import { makeNodeData } from '@test-utils/factories'\nimport { fireEvent, render, screen } from '@testing-library/react'\n"
  },
  {
    "path": "packages/agentflow/src/atoms/ScenariosInput.tsx",
    "chars": 7257,
    "preview": "import { useCallback, useMemo } from 'react'\n\nimport { Box, Button, Chip, IconButton, Tooltip, Typography } from '@mui/m"
  },
  {
    "path": "packages/agentflow/src/atoms/SelectVariable.test.tsx",
    "chars": 2750,
    "preview": "import { fireEvent, render, screen } from '@testing-library/react'\n\nimport type { VariableItem } from './SelectVariable'"
  },
  {
    "path": "packages/agentflow/src/atoms/SelectVariable.tsx",
    "chars": 3670,
    "preview": "import { Box, List, ListItem, ListItemAvatar, ListItemButton, ListItemText, Stack, Typography } from '@mui/material'\nimp"
  },
  {
    "path": "packages/agentflow/src/atoms/StructuredOutputBuilder.test.tsx",
    "chars": 16840,
    "preview": "import { fireEvent, render, screen } from '@testing-library/react'\n\nimport type { InputParam, NodeData } from '@/core/ty"
  },
  {
    "path": "packages/agentflow/src/atoms/StructuredOutputBuilder.tsx",
    "chars": 12371,
    "preview": "import { useCallback, useMemo, useState } from 'react'\n\nimport { Box, Button, Chip, IconButton, MenuItem, Select, TextFi"
  },
  {
    "path": "packages/agentflow/src/atoms/index.ts",
    "chars": 1329,
    "preview": "// UI Components - Internal design system\nexport { ArrayInput, type ArrayInputProps } from './ArrayInput'\nexport { CodeI"
  },
  {
    "path": "packages/agentflow/src/atoms/useStableKeys.test.tsx",
    "chars": 4951,
    "preview": "import { act, renderHook } from '@testing-library/react'\n\nimport { useStableKeys } from './useStableKeys'\n\ndescribe('use"
  },
  {
    "path": "packages/agentflow/src/atoms/useStableKeys.ts",
    "chars": 1673,
    "preview": "import { useCallback, useRef, useState } from 'react'\n\n/**\n * Returns a stable array of string keys that grows/shrinks w"
  },
  {
    "path": "packages/agentflow/src/core/index.ts",
    "chars": 240,
    "preview": "// Core exports - Framework-agnostic logic\n// NOTE: Import directly from submodules for tree-shaking\n\nexport * from './n"
  },
  {
    "path": "packages/agentflow/src/core/node-catalog/index.ts",
    "chars": 152,
    "preview": "// Node catalog - Filtering and grouping available nodes\nexport { filterNodesByComponents, groupNodesByCategory, isAgent"
  },
  {
    "path": "packages/agentflow/src/core/node-catalog/nodeFilters.test.ts",
    "chars": 3307,
    "preview": "import { makeNodeData } from '@test-utils/factories'\n\nimport { DEFAULT_AGENTFLOW_NODES } from '../node-config'\n\nimport {"
  },
  {
    "path": "packages/agentflow/src/core/node-catalog/nodeFilters.ts",
    "chars": 1414,
    "preview": "import { DEFAULT_AGENTFLOW_NODES } from '../node-config'\nimport type { NodeData } from '../types'\n\n/**\n * Filter nodes b"
  },
  {
    "path": "packages/agentflow/src/core/node-config/index.ts",
    "chars": 250,
    "preview": "// Node configuration - icons, colors, and default node types\nexport { AGENTFLOW_ICONS, type AgentflowIcon, DEFAULT_AGEN"
  },
  {
    "path": "packages/agentflow/src/core/node-config/nodeIconUtils.test.ts",
    "chars": 1192,
    "preview": "import { getAgentflowIcon, getNodeColor } from './nodeIconUtils'\n\ndescribe('getAgentflowIcon', () => {\n    it('should re"
  },
  {
    "path": "packages/agentflow/src/core/node-config/nodeIconUtils.ts",
    "chars": 403,
    "preview": "import { AGENTFLOW_ICONS, type AgentflowIcon } from './nodeIcons'\n\n/**\n * Get icon config for a node by name\n */\nexport "
  },
  {
    "path": "packages/agentflow/src/core/node-config/nodeIcons.ts",
    "chars": 3057,
    "preview": "import type { ComponentType } from 'react'\n\nimport {\n    IconArrowsSplit,\n    IconFunctionFilled,\n    IconLibrary,\n    I"
  },
  {
    "path": "packages/agentflow/src/core/theme/createAgentflowTheme.test.ts",
    "chars": 6992,
    "preview": "/**\n * Unit tests for MUI theme factory\n */\n\nimport { createAgentflowTheme } from './createAgentflowTheme'\nimport { toke"
  },
  {
    "path": "packages/agentflow/src/core/theme/createAgentflowTheme.ts",
    "chars": 1623,
    "preview": "/**\n * MUI Theme Factory for Agentflow\n *\n * Creates a Material-UI theme with custom design tokens.\n * Supports both lig"
  },
  {
    "path": "packages/agentflow/src/core/theme/cssVariables.test.ts",
    "chars": 6782,
    "preview": "/**\n * Unit tests for CSS variables generator\n */\n\nimport { generateCSSVariables } from './cssVariables'\nimport { tokens"
  },
  {
    "path": "packages/agentflow/src/core/theme/cssVariables.ts",
    "chars": 2723,
    "preview": "/**\n * CSS Variables Generator\n *\n * Generates CSS custom properties from design tokens.\n * These variables are used in "
  },
  {
    "path": "packages/agentflow/src/core/theme/index.ts",
    "chars": 412,
    "preview": "/**\n * Theme Module Exports\n *\n * Central export point for all theme-related functionality.\n */\n\nexport { createAgentflo"
  },
  {
    "path": "packages/agentflow/src/core/theme/tokens.test.ts",
    "chars": 6797,
    "preview": "/**\n * Unit tests for design tokens\n */\n\nimport { tokens } from './tokens'\n\ndescribe('Design Tokens', () => {\n    descri"
  },
  {
    "path": "packages/agentflow/src/core/theme/tokens.ts",
    "chars": 6665,
    "preview": "/**\n * Design Tokens for Agentflow\n *\n * Single source of truth for all design values (colors, spacing, shadows, etc.)\n "
  },
  {
    "path": "packages/agentflow/src/core/theme/types.ts",
    "chars": 502,
    "preview": "/**\n * MUI Theme Type Extensions\n *\n * Extends MUI's theme types to include custom properties like 'card' in the palette"
  },
  {
    "path": "packages/agentflow/src/core/types/agentflow.ts",
    "chars": 3852,
    "preview": "// ============================================================================\n// Component Props & Hook Return Types\n/"
  },
  {
    "path": "packages/agentflow/src/core/types/api.ts",
    "chars": 993,
    "preview": "// ============================================================================\n// API Types\n// ========================"
  },
  {
    "path": "packages/agentflow/src/core/types/context.ts",
    "chars": 1381,
    "preview": "// ============================================================================\n// Context Types\n// ===================="
  },
  {
    "path": "packages/agentflow/src/core/types/flow.ts",
    "chars": 1135,
    "preview": "// ============================================================================\n// Flow Data Types\n// =================="
  },
  {
    "path": "packages/agentflow/src/core/types/index.ts",
    "chars": 151,
    "preview": "export * from './agentflow'\nexport * from './api'\nexport * from './context'\nexport * from './flow'\nexport * from './node"
  },
  {
    "path": "packages/agentflow/src/core/types/node.ts",
    "chars": 2666,
    "preview": "// ============================================================================\n// Node & Edge Data Types\n// ==========="
  },
  {
    "path": "packages/agentflow/src/core/types/validation.ts",
    "chars": 396,
    "preview": "// ============================================================================\n// Validation Types\n// ================="
  },
  {
    "path": "packages/agentflow/src/core/utils/dynamicOutputAnchors.test.ts",
    "chars": 3891,
    "preview": "import { buildDynamicOutputAnchors, getOutputHandleId, parseOutputHandleIndex } from './dynamicOutputAnchors'\n\ndescribe("
  },
  {
    "path": "packages/agentflow/src/core/utils/dynamicOutputAnchors.ts",
    "chars": 1513,
    "preview": "import type { OutputAnchor } from '../types'\n\n/** Build a deterministic output handle ID for a given node and index. */\n"
  },
  {
    "path": "packages/agentflow/src/core/utils/fieldVisibility.test.ts",
    "chars": 8748,
    "preview": "import type { InputParam } from '../types'\n\nimport { conditionMatches, evaluateFieldVisibility, evaluateParamVisibility,"
  },
  {
    "path": "packages/agentflow/src/core/utils/fieldVisibility.ts",
    "chars": 5529,
    "preview": "import get from 'lodash/get'\nimport isEqual from 'lodash/isEqual'\n\nimport type { InputParam } from '../types'\n\n/** Detec"
  },
  {
    "path": "packages/agentflow/src/core/utils/flowExport.test.ts",
    "chars": 5573,
    "preview": "import { makeFlowEdge, makeFlowNode } from '@test-utils/factories'\n\nimport { FlowEdge, FlowNode } from '../types'\n\nimpor"
  },
  {
    "path": "packages/agentflow/src/core/utils/flowExport.ts",
    "chars": 2281,
    "preview": "import type { FlowEdge, FlowNode, NodeData } from '../types'\n\n/** Sensitive input types that must not appear in exported"
  },
  {
    "path": "packages/agentflow/src/core/utils/index.ts",
    "chars": 506,
    "preview": "// Node factory - Node ID generation, labeling, and initialization\nexport { getUniqueNodeId, getUniqueNodeLabel, initNod"
  },
  {
    "path": "packages/agentflow/src/core/utils/nodeFactory.test.ts",
    "chars": 13660,
    "preview": "import { makeFlowNode, makeNodeData } from '@test-utils/factories'\n\nimport type { NodeData } from '../types'\n\nimport { g"
  },
  {
    "path": "packages/agentflow/src/core/utils/nodeFactory.ts",
    "chars": 7328,
    "preview": "import type { FlowNode, NodeData, OutputAnchor } from '../types'\n\nimport { buildDynamicOutputAnchors } from './dynamicOu"
  },
  {
    "path": "packages/agentflow/src/core/validation/connectionValidation.test.ts",
    "chars": 1685,
    "preview": "import { makeFlowEdge, makeFlowNode } from '@test-utils/factories'\n\nimport type { FlowEdge } from '../types'\n\nimport { i"
  },
  {
    "path": "packages/agentflow/src/core/validation/connectionValidation.ts",
    "chars": 1558,
    "preview": "import type { FlowEdge, FlowNode } from '../types'\n\n/**\n * Check if a connection is valid for AgentFlow v2\n */\nexport fu"
  },
  {
    "path": "packages/agentflow/src/core/validation/constraintValidation.test.ts",
    "chars": 6428,
    "preview": "import { makeFlowNode } from '@test-utils/factories'\n\nimport {\n    checkHumanInputInIteration,\n    checkNestedIteration,"
  },
  {
    "path": "packages/agentflow/src/core/validation/constraintValidation.ts",
    "chars": 2964,
    "preview": "import type { FlowNode } from '../types'\n\nexport interface ConstraintResult {\n    valid: boolean\n    message?: string\n}\n"
  },
  {
    "path": "packages/agentflow/src/core/validation/flowValidation.test.ts",
    "chars": 14981,
    "preview": "import { makeFlowEdge, makeFlowNode, makeNodeData } from '@test-utils/factories'\n\nimport type { FlowEdge, FlowNode } fro"
  },
  {
    "path": "packages/agentflow/src/core/validation/flowValidation.ts",
    "chars": 10515,
    "preview": "import type { FlowEdge, FlowNode, NodeData, ValidationError, ValidationResult } from '../types'\nimport { evaluateParamVi"
  },
  {
    "path": "packages/agentflow/src/core/validation/index.ts",
    "chars": 545,
    "preview": "// Connection validation utilities\nexport { isValidConnectionAgentflowV2 } from './connectionValidation'\n\n// Flow valida"
  },
  {
    "path": "packages/agentflow/src/features/canvas/canvas.css",
    "chars": 7639,
    "preview": "/* Agentflow Component Styles */\n\n.agentflow-container {\n    display: flex;\n    flex-direction: column;\n    width: 100%;"
  },
  {
    "path": "packages/agentflow/src/features/canvas/components/AgentflowHeader.tsx",
    "chars": 1438,
    "preview": "import type { HeaderRenderProps, ValidationResult } from '@/core/types'\n\nexport interface AgentflowHeaderProps extends H"
  },
  {
    "path": "packages/agentflow/src/features/canvas/components/ConnectionLine.test.tsx",
    "chars": 5292,
    "preview": "import { ReactNode } from 'react'\nimport { Position } from 'reactflow'\n\nimport { render, RenderOptions } from '@testing-"
  },
  {
    "path": "packages/agentflow/src/features/canvas/components/ConnectionLine.tsx",
    "chars": 3729,
    "preview": "import { memo } from 'react'\nimport { EdgeLabelRenderer, getBezierPath, Position, useStore } from 'reactflow'\n\nimport { "
  },
  {
    "path": "packages/agentflow/src/features/canvas/components/NodeIcon.tsx",
    "chars": 1353,
    "preview": "import { memo } from 'react'\n\nimport type { NodeData } from '@/core/types'\n\nimport { renderNodeIcon } from '../nodeIcons"
  },
  {
    "path": "packages/agentflow/src/features/canvas/components/NodeInfoDialog.tsx",
    "chars": 1253,
    "preview": "import { memo } from 'react'\n\nimport { Dialog, DialogContent, DialogTitle, Typography } from '@mui/material'\n\nexport int"
  },
  {
    "path": "packages/agentflow/src/features/canvas/components/NodeInputHandle.tsx",
    "chars": 1486,
    "preview": "import { memo, useMemo } from 'react'\nimport { Handle, Position } from 'reactflow'\n\nexport interface NodeInputHandleProp"
  },
  {
    "path": "packages/agentflow/src/features/canvas/components/NodeModelConfigs.tsx",
    "chars": 2387,
    "preview": "import { memo } from 'react'\n\nimport { Box, Typography } from '@mui/material'\n\nimport { useApiContext, useConfigContext "
  },
  {
    "path": "packages/agentflow/src/features/canvas/components/NodeOutputHandles.test.ts",
    "chars": 1184,
    "preview": "import { getMinimumNodeHeight } from './NodeOutputHandles'\n\n// Constants mirrored from source for clarity\nconst MIN_NODE"
  },
  {
    "path": "packages/agentflow/src/features/canvas/components/NodeOutputHandles.tsx",
    "chars": 4297,
    "preview": "import type { CSSProperties, RefObject } from 'react'\nimport { memo, useEffect, useMemo, useState } from 'react'\nimport "
  },
  {
    "path": "packages/agentflow/src/features/canvas/components/NodeStatusIndicator.tsx",
    "chars": 3547,
    "preview": "import { memo } from 'react'\n\nimport CancelIcon from '@mui/icons-material/Cancel'\nimport StopCircleIcon from '@mui/icons"
  },
  {
    "path": "packages/agentflow/src/features/canvas/components/NodeToolbarActions.tsx",
    "chars": 3707,
    "preview": "import { memo } from 'react'\nimport { Position } from 'reactflow'\n\nimport { ButtonGroup, IconButton } from '@mui/materia"
  },
  {
    "path": "packages/agentflow/src/features/canvas/components/ValidationFeedback.tsx",
    "chars": 12946,
    "preview": "import { memo, useCallback, useEffect, useRef, useState } from 'react'\n\nimport { Alert, Box, Button, ClickAwayListener, "
  },
  {
    "path": "packages/agentflow/src/features/canvas/components/index.ts",
    "chars": 653,
    "preview": "export type { AgentflowHeaderProps } from './AgentflowHeader'\nexport { AgentflowHeader, createHeaderProps } from './Agen"
  },
  {
    "path": "packages/agentflow/src/features/canvas/containers/AgentFlowEdge.tsx",
    "chars": 7406,
    "preview": "import { memo, useState } from 'react'\nimport { EdgeLabelRenderer, getBezierPath, Position } from 'reactflow'\n\nimport { "
  },
  {
    "path": "packages/agentflow/src/features/canvas/containers/AgentFlowNode.tsx",
    "chars": 5288,
    "preview": "import { memo, useEffect, useRef, useState } from 'react'\n\nimport { Box, Typography } from '@mui/material'\n\nimport { tok"
  },
  {
    "path": "packages/agentflow/src/features/canvas/containers/IterationNode.tsx",
    "chars": 6905,
    "preview": "import { memo, useCallback, useEffect, useRef, useState } from 'react'\nimport { Background, NodeResizer, NodeToolbar, us"
  },
  {
    "path": "packages/agentflow/src/features/canvas/containers/StickyNote.tsx",
    "chars": 3251,
    "preview": "import { memo, useRef, useState } from 'react'\n\nimport { Box, TextField } from '@mui/material'\n\nimport type { NodeData }"
  },
  {
    "path": "packages/agentflow/src/features/canvas/containers/index.ts",
    "chars": 186,
    "preview": "export { AgentFlowEdge } from './AgentFlowEdge'\nexport { AgentFlowNode } from './AgentFlowNode'\nexport { IterationNode }"
  },
  {
    "path": "packages/agentflow/src/features/canvas/hooks/index.ts",
    "chars": 252,
    "preview": "export { useDragAndDrop } from './useDragAndDrop'\nexport { useFlowHandlers } from './useFlowHandlers'\nexport { useFlowNo"
  },
  {
    "path": "packages/agentflow/src/features/canvas/hooks/useDragAndDrop.test.tsx",
    "chars": 6115,
    "preview": "import { makeFlowNode, makeNodeData } from '@test-utils/factories'\nimport { act, renderHook } from '@testing-library/rea"
  },
  {
    "path": "packages/agentflow/src/features/canvas/hooks/useDragAndDrop.ts",
    "chars": 3867,
    "preview": "import { RefObject, useCallback } from 'react'\nimport { useReactFlow } from 'reactflow'\n\nimport { getUniqueNodeId, getUn"
  },
  {
    "path": "packages/agentflow/src/features/canvas/hooks/useFlowHandlers.test.tsx",
    "chars": 15451,
    "preview": "import type { Node } from 'reactflow'\n\nimport { makeFlowEdge, makeFlowNode, makeNodeData } from '@test-utils/factories'\n"
  },
  {
    "path": "packages/agentflow/src/features/canvas/hooks/useFlowHandlers.ts",
    "chars": 8284,
    "preview": "import { useCallback, useRef } from 'react'\nimport { addEdge, applyEdgeChanges, applyNodeChanges, Connection, EdgeChange"
  },
  {
    "path": "packages/agentflow/src/features/canvas/hooks/useFlowNodes.test.tsx",
    "chars": 5756,
    "preview": "import { makeNodeData } from '@test-utils/factories'\nimport { render, screen, waitFor } from '@testing-library/react'\n\ni"
  },
  {
    "path": "packages/agentflow/src/features/canvas/hooks/useFlowNodes.ts",
    "chars": 1684,
    "preview": "import { useEffect, useState } from 'react'\n\nimport type { NodeData } from '@/core/types'\nimport { useApiContext, useCon"
  },
  {
    "path": "packages/agentflow/src/features/canvas/hooks/useNodeColors.test.tsx",
    "chars": 3163,
    "preview": "import { alpha, darken, lighten } from '@mui/material/styles'\nimport { renderHook } from '@testing-library/react'\n\nimpor"
  },
  {
    "path": "packages/agentflow/src/features/canvas/hooks/useNodeColors.ts",
    "chars": 1117,
    "preview": "import { useMemo } from 'react'\n\nimport { alpha, darken, lighten } from '@mui/material/styles'\n\nconst DEFAULT_NODE_COLOR"
  },
  {
    "path": "packages/agentflow/src/features/canvas/hooks/useOpenNodeEditor.test.tsx",
    "chars": 4986,
    "preview": "import { makeFlowNode } from '@test-utils/factories'\nimport { renderHook } from '@testing-library/react'\n\nimport { useOp"
  },
  {
    "path": "packages/agentflow/src/features/canvas/hooks/useOpenNodeEditor.ts",
    "chars": 1427,
    "preview": "import { useCallback } from 'react'\n\nimport type { NodeData } from '@/core/types'\nimport { useAgentflowContext } from '@"
  },
  {
    "path": "packages/agentflow/src/features/canvas/index.ts",
    "chars": 991,
    "preview": "// Canvas Feature - Public API\n// Container components (with state/logic)\nimport { AgentFlowEdge, AgentFlowNode, Iterati"
  },
  {
    "path": "packages/agentflow/src/features/canvas/nodeIcons.tsx",
    "chars": 1855,
    "preview": "import { IconBrandGoogle, IconBrowserCheck, IconCode, IconPhoto, IconWorldWww } from '@tabler/icons-react'\n\nimport { AGE"
  },
  {
    "path": "packages/agentflow/src/features/canvas/styled.ts",
    "chars": 1051,
    "preview": "import type { ComponentType } from 'react'\nimport { NodeToolbar, type NodeToolbarProps } from 'reactflow'\n\nimport { styl"
  },
  {
    "path": "packages/agentflow/src/features/generator/GenerateFlowDialog.test.tsx",
    "chars": 10630,
    "preview": "import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'\n\nimport { GenerateFlowDialog } from './"
  },
  {
    "path": "packages/agentflow/src/features/generator/GenerateFlowDialog.tsx",
    "chars": 11082,
    "preview": "import { memo, useCallback, useEffect, useState } from 'react'\n\nimport {\n    Alert,\n    Box,\n    Button,\n    Dialog,\n   "
  },
  {
    "path": "packages/agentflow/src/features/generator/SuggestionChips.tsx",
    "chars": 2573,
    "preview": "import { memo } from 'react'\n\nimport { Box, Button } from '@mui/material'\n\nimport { useConfigContext } from '@/infrastru"
  },
  {
    "path": "packages/agentflow/src/features/generator/index.ts",
    "chars": 160,
    "preview": "// Generator Feature - Public API\nexport type { GenerateFlowDialogProps } from './GenerateFlowDialog'\nexport { GenerateF"
  },
  {
    "path": "packages/agentflow/src/features/node-editor/AsyncInput.test.tsx",
    "chars": 14836,
    "preview": "import { fireEvent, render, screen, waitFor } from '@testing-library/react'\n\nimport { NodeInputHandler } from '@/atoms'\n"
  },
  {
    "path": "packages/agentflow/src/features/node-editor/AsyncInput.tsx",
    "chars": 8496,
    "preview": "import { Fragment } from 'react'\n\nimport { Box, CircularProgress, IconButton, TextField, Typography } from '@mui/materia"
  },
  {
    "path": "packages/agentflow/src/features/node-editor/ConfigInput.test.tsx",
    "chars": 11178,
    "preview": "import { fireEvent, render, screen, waitFor } from '@testing-library/react'\n\nimport type { InputParam, NodeData } from '"
  },
  {
    "path": "packages/agentflow/src/features/node-editor/ConfigInput.tsx",
    "chars": 9272,
    "preview": "import { type ComponentType, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport ExpandMoreIcon fro"
  },
  {
    "path": "packages/agentflow/src/features/node-editor/EditNodeDialog.test.tsx",
    "chars": 39369,
    "preview": "import { fireEvent, render, screen } from '@testing-library/react'\n\nimport type { InputParam, NodeData } from '@/core/ty"
  },
  {
    "path": "packages/agentflow/src/features/node-editor/EditNodeDialog.tsx",
    "chars": 19770,
    "preview": "import { memo, useCallback, useEffect, useRef, useState } from 'react'\nimport { useUpdateNodeInternals } from 'reactflow"
  },
  {
    "path": "packages/agentflow/src/features/node-editor/index.ts",
    "chars": 146,
    "preview": "// Node Editor Feature - Public API\nexport type { EditNodeDialogProps } from './EditNodeDialog'\nexport { EditNodeDialog "
  }
]

// ... and 1590 more files (download for full content)

About this extraction

This page contains the full source code of the FlowiseAI/Flowise GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1790 files (14.3 MB), approximately 3.9M tokens, and a symbol index with 4913 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!