Skip to content

Conversation

@ka1i
Copy link

@ka1i ka1i commented Nov 12, 2025

Introduces BurnCloud as a first-class provider by wiring its component metadata, backend model component, and base-model constants into LFX. Adds documentation (docs/docs/Components/ bundles-burncloud.mdx) plus sidebar entry, registers the provider inside src/lfx/src/lfx/components/BurnCloud/, and exposes its icon set and eager/lazy imports for the frontend. Starter project templates
now include BurnCloud-compatible options, and shared styling utilities understand the new iconography, ensuring the BurnCloud card renders consistently across the app.

Summary by CodeRabbit

  • New Features

    • BurnCloud is now available as a model provider option for agents and workflow components.
    • BurnCloud support integrated across all starter project templates.
  • Documentation

    • Added comprehensive documentation for the BurnCloud bundle component, including setup instructions, parameter details, and usage examples.

@github-actions github-actions bot added the community Pull Request from an external contributor label Nov 12, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 12, 2025

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

The PR integrates BurnCloud as a new third-party model provider bundle into Langflow. Changes include documentation, frontend icon components, model provider registration, and updates to 14 starter projects to support BurnCloud as an available language model provider option.

Changes

Cohort / File(s) Summary
Documentation
docs/docs/Components/bundles-burncloud.mdx, docs/sidebars.js
New BurnCloud component documentation describing the bundle, OpenAI-compatible API integration, parameters, and usage instructions. Sidebar entry added for component reference.
Frontend Icons
src/frontend/src/icons/BurnCloud/BurnCloudIcon.jsx, src/frontend/src/icons/BurnCloud/index.tsx
New React icon components for BurnCloud with SVG gradient fill and forwardRef wrapper.
Frontend Icon Registry
src/frontend/src/icons/eagerIconImports.ts, src/frontend/src/icons/lazyIconImports.ts, src/frontend/src/utils/styleUtils.ts
BurnCloud icon added to eager and lazy import mappings and sidebar bundles registry.
Backend Model Component
src/lfx/src/lfx/components/BurnCloud/burncloud.py, src/lfx/src/lfx/components/BurnCloud/__init__.py, src/lfx/src/lfx/components/__init__.py
New BurnCloudModel component implementing OpenAI-compatible API integration with model fetching, header assembly, and ChatOpenAI client building. Lazy-import facade and component registration added.
Model Provider Registry
src/lfx/src/lfx/base/models/model_input_constants.py
BurnCloud registered in MODEL\_PROVIDERS\_DICT and MODEL\_PROVIDERS\_LIST with component class, inputs, fields, icon, and activation status.
Starter Project Updates
src/backend/base/langflow/initial_setup/starter_projects/{Instagram Copywriter,Invoice Summarizer,Market Research,News Aggregator,Nvidia Remix,Pokédex Agent,Price Deal Finder,Research Agent,SaaS Pricing,Search agent,Sequential Tasks Agents,Simple Agent,Social Media Agent,Travel Planning Agents,Youtube Analysis}.json
BurnCloud added as a selectable model provider option to agent\_llm dropdowns across 15 starter project configurations.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant UI as Frontend UI
    participant BurnCloud as BurnCloud Component
    participant API as BurnCloud API
    
    User->>UI: Select BurnCloud as model provider
    UI->>BurnCloud: Provide api_key, base_url, model_name, config
    BurnCloud->>BurnCloud: Build API base URL
    BurnCloud->>BurnCloud: Assemble auth headers
    BurnCloud->>API: Fetch available models
    API-->>BurnCloud: Return model list (or timeout)
    BurnCloud->>BurnCloud: Fallback to defaults if error
    BurnCloud->>BurnCloud: Create ChatOpenAI client
    BurnCloud-->>UI: Return LanguageModel instance
    User->>UI: Execute flow
    UI->>BurnCloud: Use model for inference
    BurnCloud->>API: Send request via OpenAI-compatible endpoint
    API-->>BurnCloud: Response
    BurnCloud-->>UI: Return result
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Core model implementation (burncloud.py): Contains API URL building, header assembly, model fetching with error handling, and build configuration logic—requires careful review of OpenAI-compatible integration patterns and error fallbacks.
  • Model provider registration (model_input_constants.py): Validates correct integration into the provider registry and metadata discovery system.
  • Repetitive starter project updates: 15 JSON files with homogeneous BurnCloud option additions reduce complexity but require spot-checks for consistency.
  • Icon and registry components: Straightforward exports and mappings with standard patterns used elsewhere in the codebase.

Possibly related PRs

Suggested labels

enhancement, size:L, lgtm

Suggested reviewers

  • edwinjosechittilappilly
  • lucaseduoli
  • erichare
  • ogabrielluiz

Pre-merge checks and finishing touches

Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error, 3 warnings)
Check name Status Explanation Resolution
Test Coverage For New Implementations ❌ Error PR adds BurnCloudModel component with complex API integration and frontend icons but includes zero test files for new implementations. Create test_burncloud.py with unit tests for API methods, model retrieval, and configuration; add frontend tests for icon rendering and dark mode support; ensure component registration and icon mapping are validated.
Docstring Coverage ⚠️ Warning Docstring coverage is 14.29% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Test Quality And Coverage ⚠️ Warning PR adds complete BurnCloud provider integration but includes no test files for backend components, API interactions, or frontend icons. Add pytest-based unit tests for API methods, model fetching with mocked HTTP responses, error handling, and frontend icon component tests with dark mode coverage.
Test File Naming And Structure ⚠️ Warning PR adds BurnCloud provider component with backend logic and frontend icons but includes no test files for verification of functionality. Add test_burncloud.py for backend API initialization, model retrieval, and ChatOpenAI client instantiation; add BurnCloudIcon.test.tsx for frontend prop handling and SVG rendering.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat: add BurnCloud provider metadata and assets' directly and clearly summarizes the main change: integrating BurnCloud as a new provider with associated metadata and assets.
Excessive Mock Usage Warning ✅ Passed This PR contains no test files and therefore has no excessive mock usage to evaluate.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@autofix-ci
Copy link
Contributor

autofix-ci bot commented Nov 12, 2025

Hi! I'm autofix logoautofix.ci, a bot that automatically fixes trivial issues such as code formatting in pull requests.

I would like to apply some automated changes to this pull request, but it looks like I don't have the necessary permissions to do so. To get this pull request into a mergeable state, please do one of the following two things:

  1. Allow edits by maintainers for your pull request, and then re-trigger CI (for example by pushing a new commit).
  2. Manually fix the issues identified for your pull request (see the GitHub Actions output for details on what I would like to change).

@github-actions github-actions bot added enhancement New feature or request and removed enhancement New feature or request labels Nov 12, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (7)
src/backend/base/langflow/initial_setup/starter_projects/Travel Planning Agents.json (1)

1751-1800: Add missing provider icons to options_metadata in all three agent nodes.

The review correctly identifies that BurnCloud is added to options but missing from options_metadata. Backend verification confirms BurnCloud is properly registered in MODEL_PROVIDERS_DICT and MODEL_PROVIDERS_LIST in the LFX provider system.

The options_metadata array should mirror the options array. Currently it lists only 3 icons (Anthropic, GoogleGenerativeAI, OpenAI) when 6 providers are available. Add metadata entries for BurnCloud, IBM watsonx.ai, and Ollama:

   "options_metadata": [
     { "icon": "Anthropic" },
+    { "icon": "BurnCloud" },
     { "icon": "GoogleGenerativeAI" },
     { "icon": "OpenAI" },
+    { "icon": "IBMWatsonx" },
+    { "icon": "Ollama" }
   ],

This issue appears in three agent nodes within Travel Planning Agents.json (and other starter projects). Each requires the same fix to ensure all provider options render with their corresponding icons.

src/backend/base/langflow/initial_setup/starter_projects/Search agent.json (1)

1054-1061: Add BurnCloud icon metadata to 15 starter projects.

Verification confirms that BurnCloud was added to agent_llm options across 15 starter projects, but the icon metadata is missing in all of them. This needs to be fixed consistently across all files:

  • Instagram Copywriter.json
  • Invoice Summarizer.json
  • Market Research.json
  • News Aggregator.json
  • Nvidia Remix.json
  • Pokédex Agent.json
  • Price Deal Finder.json
  • Research Agent.json
  • SaaS Pricing.json
  • Search agent.json
  • Sequential Tasks Agents.json
  • Simple Agent.json
  • Social Media Agent.json
  • Travel Planning Agents.json
  • Youtube Analysis.json

Add { "icon": "BurnCloud" } to the options_metadata array in each file to match the BurnCloud entry in options.

src/backend/base/langflow/initial_setup/starter_projects/Simple Agent.json (1)

1038-1067: Add metadata entry for BurnCloud in options_metadata array.

BurnCloud is added to the agent_llm options array (line 1040), but there is no corresponding entry in the options_metadata array (lines 1046–1056). Other model providers in this starter project include metadata entries with icon definitions. For consistency and to ensure the BurnCloud icon renders correctly in the Agent component's dropdown, add a metadata entry following the same pattern as other providers.

Suggested fix:

                "options_metadata": [
                  {
                    "icon": "Anthropic"
                  },
+                 {
+                   "icon": "BurnCloud"
+                 },
                  {
                    "icon": "GoogleGenerativeAI"
                  },
                  {
                    "icon": "OpenAI"
                  }
                ],
src/backend/base/langflow/initial_setup/starter_projects/Sequential Tasks Agents.json (1)

466-472: Add BurnCloud icon metadata and make API key provider‑agnostic

  • Add {"icon":"BurnCloud"} to agent_llm.options_metadata (and ensure metadata entries exist for all options: BurnCloud, IBM watsonx.ai, Ollama) in src/backend/base/langflow/initial_setup/starter_projects/Sequential Tasks Agents.json — occurrences around lines 466-472, 1196-1202, 2696-2703.
  • Replace provider-specific "OpenAI API Key" display_name/info with a generic label (e.g., "API Key") and info "The API key for the selected model provider." in the same file (occurrences around lines ~498 and ~1228).
src/backend/base/langflow/initial_setup/starter_projects/Market Research.json (1)

1384-1415: Don't expose BurnCloud in LanguageModelComponent until it's supported.

LanguageModelComponent.build_model has no BurnCloud branch; selecting it will raise “Unknown provider: BurnCloud”.

Option A (quick fix): remove BurnCloud from this dropdown.

       "options": [
         "OpenAI",
         "Anthropic",
-        "BurnCloud",
         "Google"
       ],

Option B: keep BurnCloud but implement provider support in LanguageModelComponent and add options_metadata icon:

       "options_metadata": [
         { "icon": "OpenAI" },
         { "icon": "Anthropic" },
-        { "icon": "GoogleGenerativeAI" }
+        { "icon": "GoogleGenerativeAI" },
+        { "icon": "BurnCloud" }
       ],

Please pick one path; current state will break flows when users pick BurnCloud.

src/backend/base/langflow/initial_setup/starter_projects/Research Agent.json (2)

2098-2113: Two critical mismatches between provider options and icon metadata; Agent component severely affected.

The changes add BurnCloud to provider dropdowns but create icon metadata misalignments that will cause UI rendering issues:

  1. LanguageModelComponent-TZiUW (lines 2098-2113): 4 options but only 3 metadata entries. BurnCloud and Google lack icon mappings.

  2. Agent component agent_llm (lines 2688-2705): 6 options but only 3 metadata entries. Missing icons for BurnCloud, "Google Generative AI", "IBM watsonx.ai", and "Ollama".

Add missing metadata entries for both components:

# LanguageModelComponent-TZiUW (around line 2104)
                "options_metadata": [
                  {
                    "icon": "OpenAI"
                  },
                  {
                    "icon": "Anthropic"
                  },
+                 {
+                   "icon": "BurnCloud"
+                 },
                  {
                    "icon": "GoogleGenerativeAI"
                  }
                ],
# Agent component agent_llm (around line 2695)
                "options_metadata": [
                  {
                    "icon": "Anthropic"
                  },
+                 {
+                   "icon": "BurnCloud"
+                 },
+                 {
+                   "icon": "GoogleGenerativeAI"
+                 },
                  {
                    "icon": "OpenAI"
                  },
+                 {
+                   "icon": "IBMwatsonx"
+                 },
+                 {
+                   "icon": "Ollama"
+                 }
                ],

Verify correct icon names for IBM watsonx.ai and Ollama match their branding/icon assets.


2688-2705: Add missing icon metadata for agent_llm (BurnCloud, WatsonxAI, Ollama)

agent_llm.options contains 6 providers but options_metadata only has 3 entries — add the missing icon metadata so the UI shows icons for BurnCloud, IBM watsonx.ai, and Ollama.

File: src/backend/base/langflow/initial_setup/starter_projects/Research Agent.json (field: agent_llm)

                 "options_metadata": [
                   {
                     "icon": "Anthropic"
                   },
+                  {
+                    "icon": "BurnCloud"
+                  },
                   {
                     "icon": "GoogleGenerativeAI"
                   },
                   {
                     "icon": "OpenAI"
                   }
+                  {
+                    "icon": "WatsonxAI"
+                  },
+                  {
+                    "icon": "Ollama"
+                  }
                 ],
🧹 Nitpick comments (10)
src/backend/base/langflow/initial_setup/starter_projects/Travel Planning Agents.json (3)

2494-2523: Mirror BurnCloud icon metadata here as well.

Same as the first agent node: options includes BurnCloud but options_metadata doesn’t. Add the icon entry for consistent UI.

   "options_metadata": [
     { "icon": "Anthropic" },
     { "icon": "GoogleGenerativeAI" },
-    { "icon": "OpenAI" }
+    { "icon": "OpenAI" },
+    { "icon": "BurnCloud" }
   ],

3217-3246: Complete options_metadata with BurnCloud icon.

Repeat the metadata addition for this third agent node to keep all three consistent.

   "options_metadata": [
     { "icon": "Anthropic" },
     { "icon": "GoogleGenerativeAI" },
-    { "icon": "OpenAI" }
+    { "icon": "OpenAI" },
+    { "icon": "BurnCloud" }
   ],

3809-3811: Optional: add a “burncloud” tag for easier discovery.

Non-blocking, but adding a tag improves searchability in the starter list.

   "tags": [
-    "agents",
-    "openai"
+    "agents",
+    "openai",
+    "burncloud"
   ]
src/backend/base/langflow/initial_setup/starter_projects/Search agent.json (1)

1084-1100: Optional: make API key label provider‑agnostic in the template to avoid confusion.

The Agent template shows “OpenAI API Key” even if the user switches to BurnCloud before dynamic UI updates. Prefer “API Key” as the default label.

-                "display_name": "OpenAI API Key",
-                "info": "The OpenAI API Key to use for the OpenAI model.",
+                "display_name": "API Key",
+                "info": "The API key to use for the selected model provider.",
src/backend/base/langflow/initial_setup/starter_projects/Youtube Analysis.json (1)

867-874: Mirror the provider icon metadata for BurnCloud.

Add a BurnCloud icon entry so the Model Provider dropdown displays consistently.

               "options": [
                 "Anthropic",
+                "BurnCloud",
                 "Google Generative AI",
                 "OpenAI",
                 "IBM watsonx.ai",
                 "Ollama"
               ],
               "options_metadata": [
                 {
                   "icon": "Anthropic"
                 },
+                {
+                  "icon": "BurnCloud"
+                },
                 {
                   "icon": "GoogleGenerativeAI"
                 },
                 {
                   "icon": "OpenAI"
                 }
               ],
src/backend/base/langflow/initial_setup/starter_projects/Sequential Tasks Agents.json (3)

466-472: Add BurnCloud icon metadata + make API key label provider-agnostic (Finance Agent).

  • UI polish: include BurnCloud icon in options_metadata so the dropdown shows the right glyph.
  • UX: rename OpenAI-specific API key label/info to generic since multiple providers (incl. BurnCloud) are available.

Diffs to apply locally in this node:

  1. options_metadata: add BurnCloud
                 "options_metadata": [
                   {
                     "icon": "Anthropic"
                   },
+                  {
+                    "icon": "BurnCloud"
+                  },
                   {
                     "icon": "GoogleGenerativeAI"
                   },
                   {
                     "icon": "OpenAI"
                   }
                 ],
  1. api_key field: genericize label/info
               "api_key": {
                 "_input_type": "SecretStrInput",
                 "advanced": false,
-                "display_name": "OpenAI API Key",
+                "display_name": "API Key",
                 "dynamic": false,
-                "info": "The OpenAI API Key to use for the OpenAI model.",
+                "info": "The API key to use for the selected provider.",

1196-1202: Mirror the same icon/label updates for Analysis & Editor Agent.

Replicate BurnCloud icon in options_metadata and generic API key copy for consistency.

                 "options_metadata": [
                   {
                     "icon": "Anthropic"
                   },
+                  {
+                    "icon": "BurnCloud"
+                  },
                   {
                     "icon": "GoogleGenerativeAI"
                   },
                   {
                     "icon": "OpenAI"
                   }
                 ],
               "api_key": {
-                "display_name": "OpenAI API Key",
-                "info": "The OpenAI API Key to use for the OpenAI model.",
+                "display_name": "API Key",
+                "info": "The API key to use for the selected provider.",

2696-2703: Mirror the same icon/label updates for Researcher Agent.

Add BurnCloud icon metadata and generic API key text here as well.

                 "options_metadata": [
                   {
                     "icon": "Anthropic"
                   },
+                  {
+                    "icon": "BurnCloud"
+                  },
                   {
                     "icon": "GoogleGenerativeAI"
                   },
                   {
                     "icon": "OpenAI"
                   }
                 ],
               "api_key": {
-                "display_name": "OpenAI API Key",
-                "info": "The OpenAI API Key to use for the OpenAI model.",
+                "display_name": "API Key",
+                "info": "The API key to use for the selected provider.",
src/backend/base/langflow/initial_setup/starter_projects/SaaS Pricing.json (1)

955-1005: Add BurnCloud icon metadata to match new provider option.

You added BurnCloud to options but not to options_metadata; UI will show a generic icon.

       "options_metadata": [
         {
           "icon": "Anthropic"
         },
         {
           "icon": "GoogleGenerativeAI"
         },
         {
           "icon": "OpenAI"
+        },
+        {
+          "icon": "BurnCloud"
         }
       ],
src/backend/base/langflow/initial_setup/starter_projects/Market Research.json (1)

1658-1691: Add BurnCloud icon metadata alongside new provider option.

Agent.agent_llm options include BurnCloud; include its icon for consistency.

       "options_metadata": [
         { "icon": "Anthropic" },
         { "icon": "GoogleGenerativeAI" },
-        { "icon": "OpenAI" },
-        { "icon": "OpenAI" }
+        { "icon": "OpenAI" },
+        { "icon": "BurnCloud" }
       ],

Additionally, consider changing the static API key label to a provider‑agnostic value (e.g., “API Key”) since the provider is dynamic.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ec679c9 and ac77896.

⛔ Files ignored due to path filters (1)
  • src/frontend/src/icons/BurnCloud/BurnCloudIcon.svg is excluded by !**/*.svg
📒 Files selected for processing (26)
  • docs/docs/Components/bundles-burncloud.mdx (1 hunks)
  • docs/sidebars.js (1 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Instagram Copywriter.json (1 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Invoice Summarizer.json (1 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Market Research.json (2 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/News Aggregator.json (1 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Nvidia Remix.json (1 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Pokédex Agent.json (1 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Price Deal Finder.json (1 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Research Agent.json (2 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/SaaS Pricing.json (1 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Search agent.json (1 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Sequential Tasks Agents.json (3 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Simple Agent.json (1 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Social Media Agent.json (1 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Travel Planning Agents.json (3 hunks)
  • src/backend/base/langflow/initial_setup/starter_projects/Youtube Analysis.json (1 hunks)
  • src/frontend/src/icons/BurnCloud/BurnCloudIcon.jsx (1 hunks)
  • src/frontend/src/icons/BurnCloud/index.tsx (1 hunks)
  • src/frontend/src/icons/eagerIconImports.ts (2 hunks)
  • src/frontend/src/icons/lazyIconImports.ts (1 hunks)
  • src/frontend/src/utils/styleUtils.ts (1 hunks)
  • src/lfx/src/lfx/base/models/model_input_constants.py (2 hunks)
  • src/lfx/src/lfx/components/BurnCloud/__init__.py (1 hunks)
  • src/lfx/src/lfx/components/BurnCloud/burncloud.py (1 hunks)
  • src/lfx/src/lfx/components/__init__.py (3 hunks)
🧰 Additional context used
📓 Path-based instructions (9)
src/frontend/src/**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (.cursor/rules/frontend_development.mdc)

src/frontend/src/**/*.{ts,tsx,js,jsx}: All frontend TypeScript and JavaScript code should be located under src/frontend/src/ and organized into components, pages, icons, stores, types, utils, hooks, services, and assets directories as per the specified directory layout.
Use React 18 with TypeScript for all UI components in the frontend.
Format all TypeScript and JavaScript code using the make format_frontend command.
Lint all TypeScript and JavaScript code using the make lint command.

Files:

  • src/frontend/src/utils/styleUtils.ts
  • src/frontend/src/icons/BurnCloud/index.tsx
  • src/frontend/src/icons/eagerIconImports.ts
  • src/frontend/src/icons/lazyIconImports.ts
  • src/frontend/src/icons/BurnCloud/BurnCloudIcon.jsx
src/frontend/src/utils/**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (.cursor/rules/frontend_development.mdc)

All utility functions should be placed in the utils directory.

Files:

  • src/frontend/src/utils/styleUtils.ts
docs/**/*.{md,mdx}

📄 CodeRabbit inference engine (.cursor/rules/docs_development.mdc)

docs/**/*.{md,mdx}: All Markdown/MDX pages must start with front matter including at least title and description; include sidebar_position for docs pages when applicable
Code blocks must specify a language and may include a title (```lang title="…")
Use sentence case for headings and keep paragraphs short and scannable
Write in second person, present tense, with a professional but approachable tone
Use inline code with backticks for code terms; use bold for UI elements and italics for emphasis; keep lists in parallel structure
Ensure internal links are functional and navigation works (update cross-references as needed)
Verify all code examples in docs and blog actually run as shown
Use correct terminology capitalization: Langflow, Component, Flow, API, JSON
Reference images with absolute paths under /img/... and provide descriptive alt text

Files:

  • docs/docs/Components/bundles-burncloud.mdx
docs/docs/**/*.{md,mdx}

📄 CodeRabbit inference engine (.cursor/rules/docs_development.mdc)

Use Docusaurus admonitions (:::+tip|warning|danger) instead of custom callouts in docs pages

Files:

  • docs/docs/Components/bundles-burncloud.mdx
src/frontend/src/icons/**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (.cursor/rules/frontend_development.mdc)

Use Lucide React for icons in the frontend.

Files:

  • src/frontend/src/icons/BurnCloud/index.tsx
  • src/frontend/src/icons/eagerIconImports.ts
  • src/frontend/src/icons/lazyIconImports.ts
  • src/frontend/src/icons/BurnCloud/BurnCloudIcon.jsx
src/frontend/src/icons/*/*.@(js|jsx|ts|tsx)

📄 CodeRabbit inference engine (.cursor/rules/icons.mdc)

Create a new directory for your icon in src/frontend/src/icons/YourIconName/ and add your SVG as a React component (e.g., YourIconName.jsx). The SVG component must use the isDark prop to support both light and dark mode.

Files:

  • src/frontend/src/icons/BurnCloud/index.tsx
  • src/frontend/src/icons/BurnCloud/BurnCloudIcon.jsx
src/frontend/src/icons/*/index.tsx

📄 CodeRabbit inference engine (.cursor/rules/icons.mdc)

Create an index.tsx in your icon directory that exports your icon using forwardRef and passes the isDark prop.

Files:

  • src/frontend/src/icons/BurnCloud/index.tsx
docs/sidebars.js

📄 CodeRabbit inference engine (.cursor/rules/docs_development.mdc)

Keep sidebars.js updated to include new/changed docs sections and items using Docusaurus category structure

Files:

  • docs/sidebars.js
src/frontend/src/icons/lazyIconImports.ts

📄 CodeRabbit inference engine (.cursor/rules/icons.mdc)

Add your icon to the lazyIconsMapping object in src/frontend/src/icons/lazyIconImports.ts with a key that matches the backend icon string exactly.

Files:

  • src/frontend/src/icons/lazyIconImports.ts
🧠 Learnings (17)
📚 Learning: 2025-07-28T15:56:47.865Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/icons.mdc:0-0
Timestamp: 2025-07-28T15:56:47.865Z
Learning: Always use clear, recognizable, and consistent icon names for both backend and frontend (e.g., "AstraDB", "Postgres", "OpenAI").

Applied to files:

  • src/frontend/src/utils/styleUtils.ts
📚 Learning: 2025-09-07T05:44:46.715Z
Learnt from: TensorNull
Repo: langflow-ai/langflow PR: 9735
File: docs/docs/Components/bundles-cometapi.mdx:9-9
Timestamp: 2025-09-07T05:44:46.715Z
Learning: In Langflow bundle documentation files (docs/docs/Components/bundles-*.mdx), the standard link pattern for referencing the main Bundles page is [Bundles](/components-bundle-components), not /components-bundles. This pattern is used consistently across all 37+ bundle documentation files.

Applied to files:

  • docs/docs/Components/bundles-burncloud.mdx
  • docs/sidebars.js
📚 Learning: 2025-09-30T00:09:51.631Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/docs_development.mdc:0-0
Timestamp: 2025-09-30T00:09:51.631Z
Learning: Applies to docs/**/*.{md,mdx} : Use correct terminology capitalization: Langflow, Component, Flow, API, JSON

Applied to files:

  • docs/docs/Components/bundles-burncloud.mdx
📚 Learning: 2025-07-28T15:56:47.865Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/icons.mdc:0-0
Timestamp: 2025-07-28T15:56:47.865Z
Learning: Applies to src/frontend/src/icons/*/index.tsx : Create an `index.tsx` in your icon directory that exports your icon using `forwardRef` and passes the `isDark` prop.

Applied to files:

  • src/frontend/src/icons/BurnCloud/index.tsx
  • src/frontend/src/icons/eagerIconImports.ts
  • src/frontend/src/icons/lazyIconImports.ts
  • src/frontend/src/icons/BurnCloud/BurnCloudIcon.jsx
📚 Learning: 2025-07-28T15:56:47.865Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/icons.mdc:0-0
Timestamp: 2025-07-28T15:56:47.865Z
Learning: Applies to src/frontend/src/icons/*/*.@(js|jsx|ts|tsx) : Create a new directory for your icon in `src/frontend/src/icons/YourIconName/` and add your SVG as a React component (e.g., `YourIconName.jsx`). The SVG component must use the `isDark` prop to support both light and dark mode.

Applied to files:

  • src/frontend/src/icons/BurnCloud/index.tsx
  • src/frontend/src/icons/BurnCloud/BurnCloudIcon.jsx
📚 Learning: 2025-06-23T12:46:52.420Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/icons.mdc:0-0
Timestamp: 2025-06-23T12:46:52.420Z
Learning: Export custom icon components in React using React.forwardRef to ensure proper ref forwarding and compatibility with parent components.

Applied to files:

  • src/frontend/src/icons/BurnCloud/index.tsx
  • src/frontend/src/icons/BurnCloud/BurnCloudIcon.jsx
📚 Learning: 2025-06-16T11:14:04.200Z
Learnt from: dolfim-ibm
Repo: langflow-ai/langflow PR: 8394
File: src/frontend/src/icons/Docling/index.tsx:4-6
Timestamp: 2025-06-16T11:14:04.200Z
Learning: The Langflow codebase consistently uses `React.PropsWithChildren<{}>` as the prop type for all icon components using forwardRef, rather than `React.SVGProps<SVGSVGElement>`. This is an established pattern across hundreds of icon files in src/frontend/src/icons/.

Applied to files:

  • src/frontend/src/icons/BurnCloud/index.tsx
  • src/frontend/src/icons/BurnCloud/BurnCloudIcon.jsx
📚 Learning: 2025-07-18T18:27:12.609Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/frontend_development.mdc:0-0
Timestamp: 2025-07-18T18:27:12.609Z
Learning: Applies to src/frontend/src/icons/**/*.{ts,tsx,js,jsx} : Use Lucide React for icons in the frontend.

Applied to files:

  • src/frontend/src/icons/BurnCloud/index.tsx
  • src/frontend/src/icons/eagerIconImports.ts
  • src/frontend/src/icons/lazyIconImports.ts
  • src/frontend/src/icons/BurnCloud/BurnCloudIcon.jsx
📚 Learning: 2025-07-18T18:27:12.609Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/frontend_development.mdc:0-0
Timestamp: 2025-07-18T18:27:12.609Z
Learning: Applies to src/frontend/src/components/**/@(FlowGraph|nodes)/**/*.{ts,tsx,js,jsx} : Use React Flow for flow graph visualization components.

Applied to files:

  • src/frontend/src/icons/BurnCloud/index.tsx
  • src/frontend/src/icons/BurnCloud/BurnCloudIcon.jsx
📚 Learning: 2025-07-28T15:56:47.865Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/icons.mdc:0-0
Timestamp: 2025-07-28T15:56:47.865Z
Learning: Applies to src/frontend/src/icons/lazyIconImports.ts : Add your icon to the `lazyIconsMapping` object in `src/frontend/src/icons/lazyIconImports.ts` with a key that matches the backend icon string exactly.

Applied to files:

  • src/frontend/src/icons/BurnCloud/index.tsx
  • src/frontend/src/icons/eagerIconImports.ts
  • src/frontend/src/icons/lazyIconImports.ts
📚 Learning: 2025-06-23T12:46:52.420Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/icons.mdc:0-0
Timestamp: 2025-06-23T12:46:52.420Z
Learning: When implementing a new component icon in Langflow, ensure the icon name is clear, recognizable, and used consistently across both backend (Python 'icon' attribute) and frontend (React/TypeScript mapping).

Applied to files:

  • src/frontend/src/icons/BurnCloud/index.tsx
  • src/frontend/src/icons/eagerIconImports.ts
  • src/frontend/src/icons/BurnCloud/BurnCloudIcon.jsx
📚 Learning: 2025-07-18T18:27:12.609Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/frontend_development.mdc:0-0
Timestamp: 2025-07-18T18:27:12.609Z
Learning: Applies to src/frontend/src/**/*.{ts,tsx,js,jsx} : Use React 18 with TypeScript for all UI components in the frontend.

Applied to files:

  • src/frontend/src/icons/BurnCloud/index.tsx
📚 Learning: 2025-06-23T12:46:52.420Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/icons.mdc:0-0
Timestamp: 2025-06-23T12:46:52.420Z
Learning: Custom SVG icon components in React should always support both light and dark mode by accepting an 'isdark' prop and adjusting colors accordingly.

Applied to files:

  • src/frontend/src/icons/BurnCloud/index.tsx
  • src/frontend/src/icons/BurnCloud/BurnCloudIcon.jsx
📚 Learning: 2025-07-18T18:25:54.486Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-07-18T18:25:54.486Z
Learning: Starter project files auto-format after langflow run; these formatting changes can be committed or ignored

Applied to files:

  • src/backend/base/langflow/initial_setup/starter_projects/Invoice Summarizer.json
  • src/backend/base/langflow/initial_setup/starter_projects/Instagram Copywriter.json
📚 Learning: 2025-09-30T00:09:51.631Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/docs_development.mdc:0-0
Timestamp: 2025-09-30T00:09:51.631Z
Learning: Applies to docs/sidebars.js : Keep sidebars.js updated to include new/changed docs sections and items using Docusaurus category structure

Applied to files:

  • docs/sidebars.js
📚 Learning: 2025-06-23T12:46:52.420Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/icons.mdc:0-0
Timestamp: 2025-06-23T12:46:52.420Z
Learning: The frontend icon mapping key (in 'lazyIconsMapping') must match the backend 'icon' attribute string exactly, including case sensitivity, to ensure correct icon rendering.

Applied to files:

  • src/frontend/src/icons/lazyIconImports.ts
📚 Learning: 2025-07-18T18:25:54.486Z
Learnt from: CR
Repo: langflow-ai/langflow PR: 0
File: .cursor/rules/backend_development.mdc:0-0
Timestamp: 2025-07-18T18:25:54.486Z
Learning: Applies to src/backend/base/langflow/components/**/__init__.py : Update __init__.py with alphabetical imports when adding new components

Applied to files:

  • src/lfx/src/lfx/components/__init__.py
🧬 Code graph analysis (5)
src/lfx/src/lfx/components/BurnCloud/__init__.py (1)
src/lfx/src/lfx/components/BurnCloud/burncloud.py (1)
  • BurnCloudModel (41-157)
src/frontend/src/icons/BurnCloud/index.tsx (1)
src/frontend/src/icons/BurnCloud/BurnCloudIcon.jsx (1)
  • BurnCloudIconSVG (1-26)
src/lfx/src/lfx/components/BurnCloud/burncloud.py (3)
src/lfx/src/lfx/base/models/model.py (1)
  • LCModelComponent (25-375)
src/lfx/src/lfx/inputs/inputs.py (5)
  • DropdownInput (465-490)
  • IntInput (344-376)
  • MessageTextInput (206-257)
  • SecretStrInput (286-341)
  • SliderInput (642-643)
src/lfx/src/lfx/custom/custom_component/component.py (2)
  • get_base_inputs (167-170)
  • log (1480-1497)
src/frontend/src/icons/eagerIconImports.ts (1)
src/frontend/src/icons/BurnCloud/index.tsx (1)
  • BurnCloudIcon (5-7)
src/lfx/src/lfx/base/models/model_input_constants.py (1)
src/lfx/src/lfx/components/BurnCloud/burncloud.py (1)
  • BurnCloudModel (41-157)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (19)
  • GitHub Check: Test Docs Build / Test Docs Build
  • GitHub Check: Lint Backend / Run Mypy (3.10)
  • GitHub Check: Run Backend Tests / Unit Tests - Python 3.10 - Group 4
  • GitHub Check: Lint Backend / Run Mypy (3.13)
  • GitHub Check: Lint Backend / Run Mypy (3.11)
  • GitHub Check: Lint Backend / Run Mypy (3.12)
  • GitHub Check: Run Frontend Tests / Determine Test Suites and Shard Distribution
  • GitHub Check: Run Backend Tests / Unit Tests - Python 3.10 - Group 5
  • GitHub Check: Run Backend Tests / Unit Tests - Python 3.10 - Group 3
  • GitHub Check: Run Backend Tests / Unit Tests - Python 3.10 - Group 2
  • GitHub Check: Run Backend Tests / Unit Tests - Python 3.10 - Group 1
  • GitHub Check: Run Backend Tests / LFX Tests - Python 3.10
  • GitHub Check: Run Backend Tests / Integration Tests - Python 3.10
  • GitHub Check: Run Frontend Unit Tests / Frontend Jest Unit Tests
  • GitHub Check: Test Docker Images / Test docker images
  • GitHub Check: Test Starter Templates
  • GitHub Check: Optimize new Python code in this PR
  • GitHub Check: test-starter-projects
  • GitHub Check: Update Component Index
🔇 Additional comments (22)
src/backend/base/langflow/initial_setup/starter_projects/Instagram Copywriter.json (1)

2090-2097: BurnCloud provider option added correctly to Agent component.

The change adds "BurnCloud" to the agent_llm provider dropdown options, positioned appropriately in alphabetical order between "Anthropic" and "Google Generative AI". This aligns with the PR objective to integrate BurnCloud as a first-class provider across starter project templates.

One minor observation: the options_metadata array (lines 2098–2108) currently contains only 3 entries while the options array now has 6 entries. This mismatch may be handled by auto-formatting on next langflow run (per the learning note that starter project files auto-format after execution), but you may want to verify this is expected. If manual updates are needed, ensure all providers in the options list have corresponding metadata entries with appropriate icon references.

src/backend/base/langflow/initial_setup/starter_projects/Pokédex Agent.json (1)

1347-1365: Verify icon metadata for BurnCloud.

The addition of "BurnCloud" to the model provider options list is correctly placed in alphabetical order and maintains valid JSON structure. However, the options_metadata array (lines 1355-1365) includes icon metadata for only three providers (Anthropic, GoogleGenerativeAI, OpenAI) and does not include an entry for BurnCloud.

Verify whether BurnCloud requires icon metadata in the options_metadata array for consistent UI rendering. If icon assets exist for BurnCloud (as suggested by the PR summary mentioning frontend icon components), consider adding a metadata entry:

{
  "icon": "BurnCloud"
}
docs/sidebars.js (1)

302-302: LGTM!

The addition of the BurnCloud bundle entry is correctly placed in alphabetical order and follows the established pattern for bundle documentation entries in the sidebar. This change aligns with the coding guideline to keep sidebars.js updated with new documentation sections.

Based on coding guidelines.

src/backend/base/langflow/initial_setup/starter_projects/Youtube Analysis.json (1)

2378-2612: Confirm BurnCloud support where the flow uses LanguageModelComponent.

This template runs BatchRunComponent with LanguageModelComponent, whose provider options here list only OpenAI/Anthropic/Google. If BurnCloud should be selectable for batch runs too, ensure the component now supports it; otherwise, this flow will be only partially BurnCloud‑ready.

Would you like me to scan whether LanguageModelComponent exposes BurnCloud in the codebase, and list affected starter projects where batch runs rely on it?

src/frontend/src/utils/styleUtils.ts (1)

261-261: BurnCloud bundle entry added correctly.

The new SIDEBAR_BUNDLES entry for BurnCloud follows the established pattern, maintains alphabetical ordering, and uses a consistent icon naming convention. Ensure that the BurnCloud icon component is properly exported from the icon module as referenced in the enriched summary (src/frontend/src/icons/BurnCloud/index.tsx).

src/backend/base/langflow/initial_setup/starter_projects/Nvidia Remix.json (1)

918-926: BurnCloud provider is properly registered and wired; no manual metadata update required.

The verification confirms BurnCloud is fully integrated:

  • BurnCloud is registered in MODEL_PROVIDERS_DICT with icon "BurnCloud" (model_input_constants.py:269, 274)
  • The BurnCloudModel component defines icon = "BurnCloud" (burncloud.py:44)
  • BurnCloud appears in the frontend icon mapping (styleUtils.ts:261)
  • BurnCloud is listed in MODEL_PROVIDERS_LIST (model_input_constants.py:393)

The Agent component dynamically resolves options_metadata from MODELS_METADATA at runtime, so the starter JSON file does not require manual metadata entries. The addition of BurnCloud to the agent_llm options array is sufficient and will automatically pull the correct icon from the metadata registry.

src/backend/base/langflow/initial_setup/starter_projects/Invoice Summarizer.json (1)

1264-1264: Add icon metadata for BurnCloud to ensure consistent UI rendering.

BurnCloud has been added to the Model Provider options, but the options_metadata array (lines 1270–1280) only contains entries for Anthropic, GoogleGenerativeAI, and OpenAI. The metadata for BurnCloud is missing. According to the PR objectives, BurnCloud includes icon support and UI integration.

Verify whether icon metadata for BurnCloud should be added to the options_metadata array in this file. If icons are dynamically loaded from backend constants at runtime, confirm this is working correctly for BurnCloud. Also check if other starter project files updated in this PR (e.g., Instagram Copywriter.json, Market Research.json) have the same metadata gap or if they include BurnCloud metadata.

src/backend/base/langflow/initial_setup/starter_projects/News Aggregator.json (1)

1286-1294: BurnCloud added to Agent provider list — looks good.

No issues spotted. Ensure the provider is present in MODEL_PROVIDERS_LIST/DICT so dynamic fields populate when selected. Pair this with the icon mapping added in the frontend for consistent UI.

src/backend/base/langflow/initial_setup/starter_projects/Social Media Agent.json (1)

1396-1404: Provider option updated — OK.

The “BurnCloud” option is correctly added. Please confirm provider registration so the Agent field set updates properly when users pick BurnCloud.

src/frontend/src/icons/eagerIconImports.ts (1)

17-17: LGTM! Icon import and mapping correctly integrated.

The BurnCloudIcon import and mapping entry follow the established pattern and are correctly placed in alphabetical order.

Also applies to: 137-137

src/backend/base/langflow/initial_setup/starter_projects/Price Deal Finder.json (1)

1716-1716: LGTM! BurnCloud provider option added correctly.

The BurnCloud option is properly added to the agent_llm model provider list in alphabetical order, consistent with the broader BurnCloud integration across starter projects.

src/frontend/src/icons/BurnCloud/index.tsx (1)

1-9: LGTM! Icon wrapper follows established pattern.

The component correctly implements the standard Langflow icon pattern using forwardRef with React.PropsWithChildren<{}>, forwarding refs and props to the underlying SVG component. Based on learnings.

docs/docs/Components/bundles-burncloud.mdx (1)

1-52: LGTM! Documentation follows guidelines.

The documentation is well-structured and follows all Docusaurus and Langflow conventions:

  • Front matter includes required fields
  • Uses correct link pattern /components-bundle-components
  • Proper terminology capitalization (Langflow, Component, API)
  • Comprehensive parameter table
  • Clear usage instructions

As per coding guidelines.

src/lfx/src/lfx/base/models/model_input_constants.py (2)

265-278: LGTM! Provider registration follows established pattern.

The BurnCloud provider registration correctly follows the same pattern used for other providers (OpenAI, Anthropic, etc.) with proper exception handling and field configuration.


391-398: LGTM! Provider list updated correctly.

BurnCloud is properly added to MODEL_PROVIDERS_LIST in alphabetical order between "Anthropic" and "Google Generative AI", maintaining the list's conventions.

src/lfx/src/lfx/components/__init__.py (1)

11-11: LGTM! Dynamic import registration is complete and consistent.

BurnCloud is correctly added to all three required locations (TYPE_CHECKING imports, _dynamic_imports mapping, and all export list) in proper alphabetical order, enabling lazy module discovery.

Also applies to: 125-125, 245-245

src/lfx/src/lfx/components/BurnCloud/__init__.py (1)

1-32: LGTM! Lazy import facade correctly implemented.

The module implements the standard lazy loading pattern with proper __getattr__ and __dir__ hooks, TYPE_CHECKING imports, and appropriate error handling, consistent with other component modules in the codebase.

src/lfx/src/lfx/components/BurnCloud/burncloud.py (5)

19-38: LGTM! Constants are well-defined.

The default base URL, model list, and timeout values are appropriately configured for the BurnCloud provider.


41-96: LGTM! Component definition follows LCModelComponent pattern.

The BurnCloudModel class correctly extends LCModelComponent with:

  • Base inputs from the parent class
  • Appropriate BurnCloud-specific inputs (API key, base URL, model selection, sampling parameters)
  • Proper input types (SecretStrInput, MessageTextInput, DropdownInput, SliderInput, IntInput)
  • Correct configuration (required fields, real-time refresh, advanced flags, value ranges)

98-108: LGTM! Helper methods are correctly implemented.

The _build_api_base and _build_headers methods properly construct the API endpoint and authentication headers.


110-135: LGTM! Configuration methods handle errors gracefully.

The get_models method includes appropriate error handling with fallback to defaults, and update_build_config correctly updates the build configuration when relevant fields change.


137-157: LGTM! Model building logic is correct.

The build_model method properly:

  • Validates required fields (api_key, model_name)
  • Constructs ChatOpenAI with correct parameters
  • Handles optional fields (max_tokens)
  • Uses SecretStr correctly for API key security

@ka1i
Copy link
Author

ka1i commented Nov 13, 2025

@ogabrielluiz Hello, could you please take a look at this? There seems to be a conflict; could you please check it?

@github-actions github-actions bot added enhancement New feature or request and removed enhancement New feature or request labels Nov 13, 2025
@github-actions github-actions bot added enhancement New feature or request and removed enhancement New feature or request labels Nov 13, 2025
@github-actions github-actions bot added enhancement New feature or request and removed enhancement New feature or request labels Nov 14, 2025
@github-actions github-actions bot added enhancement New feature or request and removed enhancement New feature or request labels Nov 15, 2025
@ka1i
Copy link
Author

ka1i commented Nov 16, 2025

@jordanrfrazier Hi, could you please take a look at this?

@github-actions github-actions bot added enhancement New feature or request and removed enhancement New feature or request labels Nov 18, 2025
@github-actions github-actions bot removed the enhancement New feature or request label Dec 1, 2025
@github-actions github-actions bot added the enhancement New feature or request label Dec 1, 2025
@github-actions github-actions bot added enhancement New feature or request and removed enhancement New feature or request labels Dec 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

community Pull Request from an external contributor enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant