* fix: disable Generate button when required fields are not filled
* add onBlur handler to Input component and simplify data handling in DocStoreInputHandler
---------
Co-authored-by: Henry <[email protected]>
chore: add OpenAI gpt-5.4-mini and gpt-5.4-nano models to ChatOpenAI model list
Add gpt-5.4-mini and gpt-5.4-nano to the OpenAI models registry with
their correct pricing:
- gpt-5.4-mini: $0.75/MTok input, $4.50/MTok output
- gpt-5.4-nano: $0.20/MTok input, $1.25/MTok output
* feat(agentflow): update behaviour for Start node, Http Node, and validation fixes (FLOWISE-265, FLOWISE-264)
- Updated behaviors for Start and HTTP nodes
- Fix computeArrayItemParameters crash when non-array field changes
- Fix validateNode to use availableNodes schema when node.data.inputs is missing
- Fix validateNode to respect param.default for required field checks
- Add option.description rendering in dropdown to match legacy UI
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
* fix dropdown display to match agentflow v2
* add missing credential field on start node
* remove HttpBodyInput component and associated tests (not referenced)
---------
Co-authored-by: Claude Sonnet 4.6 <[email protected]>
* update @tiptap dependencies and enhance RichTextEditor functionality
* feat(customMention): add Markdown support for custom mentions
- Implemented a custom tokenizer for recognizing {{...}} syntax in Markdown.
- Added parsing and rendering functions to handle mentions in Markdown format.
- Enhanced the CustomMention component to support Markdown serialization and deserialization.
* update tiptap to latest 3.20.4
* feat(agentflow): add ConditionAgent ScenariosInput with dynamic output ports
Implement FLOWISE-262: port ConditionAgent scenarios editing from agentflow
v2 to the SDK package.
- Add ScenariosInput atom for editing scenario strings with add/delete
- Integrate into EditNodeDialog with dynamic output anchor generation
- Wire up edge label computation for conditionAgentAgentflow in useFlowHandlers
- Fix cleanupOrphanedEdges to always filter by anchor count (no stale prevCount)
- Make updateNodeData accept optional edges for atomic node+edge updates
- Add coverage threshold for ScenariosInput.tsx in jest.config.js
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(agentflow): address PR review comment and fix CI build error
Clarify ScenariosInput docstring to note Else is a visual indicator, not
a dynamic output anchor. Fix nodeFactory test outputs to use `type`
instead of non-existent `description` property on NodeOutput.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* feat(agentflow): enhance ExpandTextDialog to handle value updates correctly
- Added tests to ensure the dialog displays the current value when opened after changes while closed.
- Implemented logic to reset the dialog's value to the original when reopened after cancellation.
- Updated state management in ExpandTextDialog to synchronize local value immediately upon opening.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
---------
Co-authored-by: Claude Opus 4.6 <[email protected]>
fix(components): add missing opik key to returnIds in onLLMStart
The onLLMStart method in AnalyticHandler was missing the `opik: {}` entry
in its returnIds object initialization, while the code at line 1431
accesses returnIds['opik'].llmSpan. This caused a TypeError when opik
analytics provider was enabled.
All other methods (onChainStart, onToolStart) correctly include opik in
their returnIds. This was a copy-paste omission.
Made-with: Cursor
* feat(agentflow): implement deduplication for API client
- Updated bindApiClient to return a deduplicated client, enhancing request efficiency.
- Introduced deduplicatedClient with caching and deduplication logic for GET and POST requests.
- Added tests for deduplicatedClient to ensure correct behavior for various request scenarios.
- Added request interceptor example usage in BasicExample to manage cookie handling based on token presence.
* fix(agentflow): address PR review feedback for deduplicatedClient
Remove inFlight.clear() from clearCache() to prevent race condition
where concurrent in-flight requests could be duplicated. Simplify
nullish check to idiomatic != null.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
---------
Co-authored-by: Claude Opus 4.6 <[email protected]>
* Generate itemKeys synchronously
* Support for listActions and listTables
* Have generic fallback method for loadMethods which are not registered
* Fix comments
* Fix text error
* Add TipTap RichTextEditor atom for expandable content editing
Introduce a RichTextEditor atom wrapping TipTap with code block syntax
highlighting (lowlight). Update ExpandTextDialog to support a 'richtext'
mode and replace plain TextFields in MessagesInput with the new editor.
Lazy-load RichTextEditor via React.lazy + Suspense to keep the initial
bundle lean. Import only 4 highlight.js languages (js/json/py/ts)
instead of lowlight/common (~400KB savings).
FLOWISE-342
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* Fix CI lockfile mismatch and use TipTap native autofocus
Remove stale @types/uuid from pnpm-lock.yaml to fix frozen-lockfile
CI failure. Replace setTimeout-based autofocus with TipTap's built-in
autofocus option for more reliable focus behavior.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* Fix React warnings in MessagesInput and RichTextEditor
- Generate item keys synchronously to fix missing key prop warning
- Wrap IconVariable in span for MUI Tooltip ref forwarding
- Use :first-of-type/:last-of-type instead of :first-child/:last-child
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* Fix syntax highlighting and block element spacing in RichTextEditor
Add CSS selectors for hljs classes so lowlight syntax colors are
actually applied. Fix block spacing by targeting only the first/last
child of the editor instead of first/last-of-type per element.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* address gemini review comment, fix css warning on ssr
* fix rich text editor lazy load flow
* address gemini review feedback
* address review feedback
---------
Co-authored-by: Claude Opus 4.6 <[email protected]>
* fix: migrate Weaviate to weaviate-client v3 for @langchain/weaviate 1.0.1 compatibility (#5991)
Root cause: Weaviate.ts used weaviate-ts-client v2 which creates a client without a collections property. @langchain/weaviate 1.0.1 expects weaviate-client v3 and calls this.client.collections.get(), causing TypeError: Cannot read properties of undefined (reading 'get').
* fix: address review feedback — deduplicate parseHostPort, fix IPv6 and HTTPS port
- Remove duplicate parseHostPort from Weaviate.ts, import from weaviateClientUtils
- Rewrite parseHostPort to handle bracketed IPv6 (e.g. [::1]:8080) correctly
- Return port as optional (undefined when not specified) instead of hardcoded 8080
- Use nullish coalescing (??) for default port so HTTPS correctly defaults to 443
- Update tests to match new return type and add IPv6 coverage
* fix weaviate connection
---------
Co-authored-by: Henry <[email protected]>
* Initial flow
* Add support for listRegions api endpoint
* Added support for loading credentials in model parameters
* Call the right end point for model under model parameters
* Fix model parameters data re rendering on each key stroke
* Fix gemini comments
* Fixed review comments
* Fix isPathTraversal method to be less strict
* Fix isPathTraversal method to be less strict
* Control isPathTraversal via an Env Var
* Path traversal check env var
---------
Co-authored-by: christopherholland-workday <[email protected]>
* update langchain and all related scoped packages to v1, deprecate agents and llms, rename and upgrade chat models
* add reasoning capability to Agent and LLM
* add token cost to usageMetadata
* update azure and chat openai
* restore executable permission for husky pre-commit hook
* refactor(agentflow): implement extractResponseContent utility for consistent response handling
- Introduced extractResponseContent function to streamline response content extraction across various components.
- Updated multiple files to utilize the new utility, enhancing code readability and maintainability.
- Adjusted model configurations and added new parameters for Gemini models to improve functionality.
* added a mock implementation for the logger in the URL security utilities test file to isolate tests and improve reliability.
* chore: update package.json and pnpm-lock.yaml to add uuid dependency and mock multer-azure-blob-storage in Jest config
- Added uuid dependency with version 10.0.0 and request>uuid with version 3.4.0 in package.json.
- Updated pnpm-lock.yaml to reflect the new uuid dependency and its deprecation notice.
- Modified Jest configuration to mock multer-azure-blob-storage to avoid module resolution issues with uuid/v4.
* gpt 5.4 models
* - Changed the stream conversion method in convertTextToSpeechStream to utilize Readable.fromWeb, enhancing compatibility with web streams.
- Added '/api/v1/chatmessage/abort' to the WHITELIST_URLS array to allow for aborting chat messages in the API.
* - Refactors how agentflow nodes (Agent, ConditionAgent, LLM) handle images in chat messages so that base64 is only used during model invocation
- Storage and chat history keep file references only
- Added comprehensive test cases to ensure correct handling of base64 image data and file references
* fix unit test
* implement filename sanitization to prevent path traversal vulnerabilities
* fix(validator): normalize backslashes in file names for cross-platform compatibility
* updated utils to process messages with images, converting stored-file references to base64 for model invocation, and implement interfaces
* add sanitization to unwanted keys when processing images
* add uuid to components package.json
* move allow image uploads params on chat models
* add encodingformat to openai embeddings
* Refactor output parsing for reasoning models
* Update ConditionAgent to version 2.0, refactor system prompt handling, and enhance message preparation logic
* add claude settings local json to gitignore
* remove claude settings local json
---------
Co-authored-by: yau-wd <[email protected]>
* feat(agentflow): MessagesInput, StructuredOutputBuilder + ExpandTextDialog (FLOWISE-263, FLOWISE-267)
Wire MessagesInput and StructuredOutputBuilder atoms into EditNodeDialog
for agentMessages/llmMessages and agentStructuredOutput/llmStructuredOutput
array params. Extract shared ExpandTextDialog atom used by both
MessagesInput and NodeInputHandler for expanding multiline text fields.
- MessagesInput: role dropdown + multiline content with variable/expand icons
- StructuredOutputBuilder: key/type/description fields with conditional
enum values and JSON schema fields
- ExpandTextDialog: reusable expand dialog for long text editing
- EditNodeDialog: name-based routing for specialized array components
- maxItems forward-compat guard on Add buttons
- Remove dead default exports for barrel-only modules
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* address gemini review feedback
* Enhance StructuredOutputBuilder with required asterisk for Description, add info tooltips for Enum Values and JSON Schema, and implement ExpandTextDialog for JSON Schema editing. Update tests to cover new features and interactions.
---------
Co-authored-by: Claude Opus 4.6 <[email protected]>
* added support fo multi options
* add support for store amad embeddings api
* Changed naming of all apiClients to be consistent
* Add correct index to ArrayInput
* Log error when parsing multiOptions value fails
Add error logging for failed parsing of multiOptions value.
* Fix error handling
* feat(agentflow): add ConditionBuilder component and dynamic output ports (FLOWISE-261)
Implement condition node editing UI with dynamic output port syncing:
- ConditionBuilder atom for rendering condition arrays with Else indicator
- buildDynamicOutputAnchors utility (parameterized for reuse by FLOWISE-262)
- useDynamicOutputPorts hook with orphaned edge cleanup on condition deletion
- EditNodeDialog integration for conditionAgentflow nodes
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* address gemini review comments, also relocate Condition Builder and hooks
* address gemini comment and also fix a number of issues on conditions update
- Add ConditionBuilder atom with stable keys and Else indicator
- Add buildDynamicOutputAnchors utility with v2-compatible format (numeric label + description)
- Add useDynamicOutputPorts hook for orphaned edge cleanup on condition deletion
- Integrate into EditNodeDialog with merged updateNodeData to avoid stale-closure overwrites
- Generate condition output anchors at node creation time in nodeFactory
- Add registerOnFlowChange to AgentflowContext for context-level change notification
* Update packages/agentflow/src/atoms/ConditionBuilder.tsx
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
---------
Co-authored-by: Claude Opus 4.6 <[email protected]>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* fix(ci): avoid workspace: protocol error in publish-agentflow workflow
Use working-directory instead of pnpm exec for npm version, and
pnpm pack instead of pnpm exec npm pack, to avoid npm encountering
pnpm's workspace: protocol. Sort deps alphabetically in package.json
to prevent future noise from npm tooling.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* fix(ci): use npx semver + npm pkg set to avoid workspace: protocol error
npm version and pnpm version both fail in this monorepo because they
resolve the full dependency tree and choke on pnpm's workspace: protocol.
Replace with npx semver (compute version) + npm pkg set (write version).
Co-Authored-By: Claude Opus 4.6 <[email protected]>
---------
Co-authored-by: Claude Opus 4.6 <[email protected]>
* initial flow
* Fixed export types and added example application to test end to end flow
* Fix build errors
* fix gemini comments
* Test bug fix
* Fixed comments
* Removed API inspector example
* Refactor imports in index.ts for clarity
* Refactor exports and update type definitions
* Remove empty line in index.ts
Removed an empty line for cleaner code formatting.
* Use secureFetch and secureAxiosRequest for URL's controlled by user input
* Use secureFetch and secureAxiosRequest for more URLs
* Use secureFetch and secureAxiosRequest for more URLs
---------
Co-authored-by: christopherholland-workday <[email protected]>
* feat(agentflow): add requestInterceptor prop for API customization
- Introduced a new `requestInterceptor` prop in the Agentflow component to allow users to customize outgoing API requests.
- Updated relevant components and types to support the new interceptor functionality.
- Enhanced the API client to handle the interceptor and log errors if thrown during request processing.
- Added tests to ensure the interceptor works as expected and does not recreate the client unnecessarily.
* refactor(agentflow): reorganize type exports and clean up API types
- Rearranged the export order of types in index.ts for better readability.
- Removed unused ApiContextValue interface from api.ts to streamline API types.
- Ensured ApiResponse and ValidationError are correctly positioned in the type exports.
* address gemini review comments
* refactor(agentflow): use design tokens for validation colors
Replace hardcoded '#FFB938' validation color with tokens.colors.border.validation
across AgentFlowNode and ValidationFeedback components for consistency
with the design token system.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
* refactor(agentflow): move validationColor to module level
Hoist the validationColor constant outside the component body
since it's a static value that doesn't need to be redeclared
on every render.
Co-Authored-By: Claude Opus 4.6 <[email protected]>
---------
Co-authored-by: Claude Opus 4.6 <[email protected]>
* feat(agentflow): Add array input component with field visibility
- Add ArrayInput component for managing lists of structured data
- Implement field visibility engine with show/hide conditions
- Add minItems constraint support for array inputs
- Add comprehensive test coverage for ArrayInput and EditNodeDialog
- Update NodeInputHandler to support array type inputs
- Update types to include array-related input parameters
* Move show/hide field logic into EditNodeDialog
* FIx build issue
* Fix gemini comments
* Fix comments
* Lint error fix
* feat(agentflow): enhance validation and feedback mechanisms
- Added constraint validation functions to ensure flow integrity, including checks for single start nodes, nested iterations, and human input restrictions within iterations.
- Implemented a new ValidationFeedback component to display validation results and issues directly in the UI.
- Updated the Agentflow component to integrate validation feedback and display snackbar notifications for constraint violations.
- Enhanced flow validation logic to detect hanging edges and validate node inputs, improving overall flow integrity checks.
- Introduced new test cases for validation functions to ensure robustness and reliability.
* address gemini review feedback