-
Notifications
You must be signed in to change notification settings - Fork 8.2k
feat: add BurnCloud provider metadata and assets #10571
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the WalkthroughThe 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
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
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Possibly related PRs
Suggested labels
Suggested reviewers
Pre-merge checks and finishing touchesImportant Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (1 error, 3 warnings)
✅ Passed checks (3 passed)
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. Comment |
|
Hi! I'm 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:
|
There was a problem hiding this 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
optionsbut missing fromoptions_metadata. Backend verification confirms BurnCloud is properly registered inMODEL_PROVIDERS_DICTandMODEL_PROVIDERS_LISTin the LFX provider system.The
options_metadataarray should mirror theoptionsarray. 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 theoptions_metadataarray 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:
LanguageModelComponent-TZiUW (lines 2098-2113): 4 options but only 3 metadata entries. BurnCloud and Google lack icon mappings.
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:
- options_metadata: add BurnCloud
"options_metadata": [ { "icon": "Anthropic" }, + { + "icon": "BurnCloud" + }, { "icon": "GoogleGenerativeAI" }, { "icon": "OpenAI" } ],
- 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
⛔ Files ignored due to path filters (1)
src/frontend/src/icons/BurnCloud/BurnCloudIcon.svgis 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.tssrc/frontend/src/icons/BurnCloud/index.tsxsrc/frontend/src/icons/eagerIconImports.tssrc/frontend/src/icons/lazyIconImports.tssrc/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.tsxsrc/frontend/src/icons/eagerIconImports.tssrc/frontend/src/icons/lazyIconImports.tssrc/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 theisDarkprop to support both light and dark mode.
Files:
src/frontend/src/icons/BurnCloud/index.tsxsrc/frontend/src/icons/BurnCloud/BurnCloudIcon.jsx
src/frontend/src/icons/*/index.tsx
📄 CodeRabbit inference engine (.cursor/rules/icons.mdc)
Create an
index.tsxin your icon directory that exports your icon usingforwardRefand passes theisDarkprop.
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
lazyIconsMappingobject insrc/frontend/src/icons/lazyIconImports.tswith 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.mdxdocs/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.tsxsrc/frontend/src/icons/eagerIconImports.tssrc/frontend/src/icons/lazyIconImports.tssrc/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.tsxsrc/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.tsxsrc/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.tsxsrc/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.tsxsrc/frontend/src/icons/eagerIconImports.tssrc/frontend/src/icons/lazyIconImports.tssrc/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.tsxsrc/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.tsxsrc/frontend/src/icons/eagerIconImports.tssrc/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.tsxsrc/frontend/src/icons/eagerIconImports.tssrc/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.tsxsrc/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.jsonsrc/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_metadataarray (lines 2098–2108) currently contains only 3 entries while theoptionsarray now has 6 entries. This mismatch may be handled by auto-formatting on nextlangflow 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_metadataarray (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_metadataarray 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_metadatafromMODELS_METADATAat 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_metadataarray (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_metadataarray 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
forwardRefwithReact.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_baseand_build_headersmethods properly construct the API endpoint and authentication headers.
110-135: LGTM! Configuration methods handle errors gracefully.The
get_modelsmethod includes appropriate error handling with fallback to defaults, andupdate_build_configcorrectly updates the build configuration when relevant fields change.
137-157: LGTM! Model building logic is correct.The
build_modelmethod 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
|
@ogabrielluiz Hello, could you please take a look at this? There seems to be a conflict; could you please check it? |
|
@jordanrfrazier Hi, could you please take a look at this? |
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 insidesrc/lfx/src/lfx/components/BurnCloud/, and exposes its icon set and eager/lazy imports for the frontend. Starter project templatesnow 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
Documentation