centdix
1afa36ceeb
feat(aiagent): allow mcp as tools ( #6790 )
...
* draft mcp client
* testing
* fix
* cleaning
* mcp resource in inputtransforms
* cleaning
* big cleaning
* cleaning
* no arc
* add utils file
* refactor tools
* add mcp actions
* draft frontend
* send arguments from backend
* better frontend
* cleaning
* use token for auth
* add logo
* rm
* fix
* fix
* chore: refactor mcp for ai agents (#6829 )
* Add Tool enum for AIAgent with backward compatibility
- Created Tool enum that can be either Windmill (FlowModule) or Mcp (resource reference)
- Created McpToolRef struct to hold MCP resource path
- Implemented custom Deserialize for Tool with backward compatibility:
- New format: {type: 'windmill'|'mcp', ...}
- Old format: FlowModule objects (automatically wrapped in Tool::Windmill)
- Updated AIAgent to use Vec<Tool> instead of Vec<FlowModule>
- Updated FlowValue::traverse_leafs to handle Tool enum
- Backward compatible: old flows with Vec<FlowModule> will deserialize correctly
* Refactor AI executor to process Tool enum instead of extracting MCP from input_transforms
- Separate Windmill tools and MCP resource paths from tools list
- Process Windmill FlowModules into Tool definitions
- Load MCP tools from resource paths in Tool::Mcp variants
- Remove old logic that extracted mcp_resources from input_transforms
- Import FlowModule, remove unused InputTransform
- Fix type issues: use .as_str() for path and handle Option<bool> properly
* handle in args
* mcp as flowmodule
* frontend
* config for mcp
* simplify logic
* fix ai executor logic
* cleaning
* clean frontend
* fix
* better resource picker
* fix and styling
* add endpoint to fetch tools
* apply tool filtering
* fix name validation
* better ui
* use cache
* fix
* fix merge
* refactor: Separate MCP tools from FlowModule in AIAgent
- Add new AgentTool, ToolValue, and McpToolValue types
- Update AIAgent to use Vec<AgentTool> instead of Vec<FlowModule>
- Implement From traits for clean conversion between AgentTool and FlowModule
- Add backward compatibility via custom deserializer for AgentTool
- Simplify resolve_module logic by reusing existing resolve_modules function
- Update traverse_leafs to handle AgentTool structure
This refactoring separates MCP tools from FlowModule tools, making the
type system clearer and eliminating the need to treat MCP servers as
a special case of FlowModule.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
* refactor: Update ai_executor and worker_lockfiles for AgentTool
- Update ai_executor.rs to handle new AgentTool structure
- Separate MCP tools from FlowModule tools using ToolValue enum
- Convert AgentTool to FlowModule for backward compatibility
- Add imports for AgentTool and ToolValue types
- Update worker_lockfiles.rs for lazy loading optimization
- Convert AgentTool <-> FlowModule in insert_flow_modules
- Preserve lazy loading for FlowModule tools via modules_node
- Keep MCP tools inline (lightweight, no need for lazy loading)
- Maintain backward compatibility with existing flows
This enables the lazy loading optimization for FlowModule tools while
keeping MCP tools inline, balancing performance and simplicity.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
* cleaning
* adapt frontend
* cleaning
* cleaning
* type fix
* cleaning
* fix back comp
* move mcp button position
* nit
* cleaning
* fix nested removal
* cleaning
* opti
* fix chat markdown display
* fix chat messages layout
* fix back comp frontend
* fix deserializer
* nit
* simpler serializer
* use if else
---------
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-21 15:28:52 +00:00
hugocasa
7e5b31b124
feat: ai agent steps ( #6393 )
...
* feat: ai agent steps base
* better backend and graph
* feat: anthropic, log viewer
* nit
* fix(frontend): hide tool nodes from timeline
* move ai agent actions from flow status to flow status module
* nits and workspace/hub scripts support
* tmp ref
* fix merge
* feat: display agent tools status in the graph
* fix reactivity
* fix flow status
* nit
2025-08-20 22:40:57 +00:00
Ruben Fiszel
53715f2c06
fix: flow status reactivity improvement ( #6402 )
2025-08-19 02:12:57 +00:00
Guilhem
ea30c3a026
feat(frontend): run steps from graph ( #5915 )
2025-06-20 16:39:24 +02:00
HugoCasa
043c721805
fix: flow step missing input warnings ( #5916 )
...
* fix: flow step missing input warnings
* nit
2025-06-12 21:38:26 +02:00
Ruben Fiszel
939fc72629
feat: better graph layout algorithm + migrate to svelte 5 almost everywhere + xyflow 1.0
2025-06-12 15:44:35 +02:00
Guilhem
ea74f584b1
refactor(frontend): capture refactor UI ( #5591 )
...
* migrate postgresEditorInner to svelte 5 syntaxe
* Add postgress
* add postgres capture section
* migrate kafka trigger config to svelte 5
* use snippets in kafka config
* feat: Update KafkaTriggerEditorInner with editMode, hideTarget and other props from WebsocketTriggerEditorInner
* feat: Create KafkaTriggerPanelV2 following WebsocketTriggersPanelV2 model
* feat: Integrate KafkaTriggerPanelV2 into TriggersEditorV2
* feat: add kafka capture panel
* use svelte 5 syntaxe for nats config
* use snippet in nats config
* feat: add editMode for nats trigger config
* fix import
* create NatsTriggerPanelV2.svelte for NATS trigger
* integrate NatsTriggerPanelV2 into TriggersEditorV2.svelte
* Create NatsCapture.svelte and update CaptureWrapperV2.svelte to use it
* migrate MqttTriggerEditorInner to svelte 5
* add mqtt trigger to new trigger panel
* migrate SqsTriggerEditorInner to svelte 5 syntaxe
* feat: add sqs triggers panel
* Add badge to MQTT config section
* remove unnecessary binding
* add gcp to the trigger list
* add prop size to GCP icon
* add gcp trigger utils
* migrate GcpTriggerEditorInner to svelte5 syntaxe
* add gcp trigger panel
* Revert "add gcp trigger utils"
This reverts commit 58f0df9985 .
* fix type error
* add gcp to trigger bar
* add capture gcp panel
* add schedule poll panel
* feat: add trigger table horizontal bar
* add http trigger label
* make triggerbar vertical
* nit
* add trigger delete button for drafts
* enable edit from table for all triggers
* fix automatic edit mode for draft trigger
* fix proxy dispatching issue
* fix primary star positionning
* fix apply args to preprocessor
* automatically load bigpayloads
* clean capture wrapper code
* nit
* fix capture config not passed
* use Url component
* remove unused prop captureTable
* use new schedule panel for scheduled poll
* update triggersWrapperV2
* improve webhook capture panel
* remove debug log
* save draft with flow draft
* add path in draft label when available
* remove flowcard title
* use trigger label for trigger badge dropdown
* break from table to sidebar at 1000px
* remove triggers badge allways show sidebar behavior
* fix multiple primary addition
* improve primary schedule deploy logic
* remove debug logs
* gather imports
* add path for draft primary schedule
* handle redirection
* Add confirmation modal to deploy triggers
* remove debug log
* Save draft route trigger on deploy
* Allow draft for deployed triggers
* add component trigger editor toolbar
* improve update trigger utility function
* Add reset button for deployed draft triggers
* allow draft trigger for kafka triggers
* allow draft trigger for websocket triggers
* allow draft trigger for postgres triggers
* Add toggle to trigger toolbar
* allow draft for nats triggers
* allow draft for mqtt triggers
* allow draft sqs triggers
* allow draft for gcp triggers
* revert changes on the schedule editor
* update all triggers to use the same toolbar
* remove debug logs
* remove PrimarySchedule Panel and merge primary schedule logic with all triggers
* load schema from draft when editing a draft schedule
* prevent overflow in trigger table
* fix path saving for draft schedule
* fix trigger badge dropdown display
* get draft status from trigger
* remove unused event
* nit
* Add deploy badge to trigger
* replace checkbox with toggle for the modal
* fix selection of triggers with draft
* fix nit
* fix nit
* add missing config for loading schedule
* save schedule from config
* save http route from cfg
* save websocket trigger from cfg
* save postgres trigger from cfg
* save kafka trigger from cfg
* save sqs trigger from cfg
* save nats trigger from cfg
* save mqtt triggers from cfg
* save gcp trigger from config
* nit
* fix path update when editing a trigger
* remove unused saveCb
* fix trigger node navigation
* remove debug log
* add min size for trigger editor capture panel
* Integrate new triggers Editor to script builder
* remove previous triggersEdior page
* Remove former triggers Editor
* Migrate detail page to new triggers editor UI
* Remove unused dev TriggersBadge
* migrate triggers to V2
* Migrate capture components to V2
* improve triggers badge UI
* fix trigger panel with scheduled poll
* fix auto select all draft on deploy
* simplify permission check
* Add custom label to every trigger editor
* fix draft not deleting when saving triggers and add option to deploy now
* remove unused utility function
* fix triggers loading from draft
* make advanced route section collapsible
* handle subflow triggers display
* center triggers badge
* fix panel redirection when adding a new triggers from node
* Remove unnecessary alerts
* Fix proxy issue in schedule editor inner
* Remove unused schedule pages
* nit
* nit cli panel
* Migrate selectedTrigger store to V2
* handle extra header button for trigger editor panel
* prevent reload on toggle schedule enable
* remove unused utility function
* remove primaryScheduleStore
* handle triggerCount with drafts
* fix editing in Schedule Poll Mode
* Remove triggers default value context store
* fix triggers label max width
* Remove dbg logs
* improve no trigger selected message
* nit
* Do not show enable toggle for http triggers
* Adapt ui to dark mode
* nit
* remove captureOn context value
* improve dark mode
* fix nit
* fix merge issue
* nit
* nit
* fix schedule permission initialisation
* nit
* Disable deploy now if needed
* Improve utilitu function for handling with triggers
* improve trigger badge look
* fix kafka
* nit
* fix schedule display
* fix toggling edit mode
* fix edit/cancel edit
* nit
* prevent capture config update in editor
* migrate webhook panel to svelte 5
* fix postgres trigger creation
* fix bind issue in nats triggers
* fix modal triggers message flow/script
* fix apply args for script
* fix gcp triggers update when creating
* fix gcp capture
* nits
* add loading state for deploying all triggers
* remove default mqtt
* update base_endpoint for gcp
* nit
* fix
* fix
* remove base endpoint
* add catch in case of error while creating a trigger
* Add animation is capture panels
* show preprocessor extra when there is a preprocessor
* Add loading state for captures
* add missing fields for capture
* migrate URL to svelte 5
* show icon by default in confirmation modal
* do not show draft triggers in detail badge list
* migrate to new captures
* revert unwanted change
* migrate to preprocesor v2
* nit
* fix email capture
* nits and fix
* nits
* update repo ref
* Feat: auto save draft instad of save button
* use triggerIndex as selection
* Add modified tag to triggers
* Update trigger modal
* fix trigger node select
* fix schedule page
* migrate TriggersEditor to svelte 5
* remove unused props
* fix schedule editor init
* fix store reactivity issue
* use class instead of store for triggers context
* nit
* nit
* fix schedule init
* Add postgres error message
* nit
* fix deploy new script
* load schema in shedule editor
* improve transitions
* Improve capture indication
* revert unwanted changes
* improve update
* nit
* migrate captures section to svelte 5
* only show trash on hover triggers row
* Add token count
* improve trigger display
* Add relevent naming for triggers
* Use wrapper div insted of width binding in flow card
* add trigger sorting
* nit
* handle reload from URL for draft triggers
* dirty script and flow draft with draft triggers
* handle cloud hosted triggers
* nit
* nit
* fix nats reactivity
* remove debug log
* handle deployed draft triggers in the flow editor
* Add warning for event stream capture
---------
Co-authored-by: dieriba <dieriba.pro@gmail.com >
Co-authored-by: Ruben Fiszel <ruben@windmill.dev >
2025-05-21 23:45:19 +02:00
HugoCasa
ad3f0d4704
fix: validate saved module before passing to flow module editor ( #5580 )
2025-04-07 20:44:14 +00:00
Guilhem
a2f2076231
fix(frontend): proper each block binding + better app settings reactivity ( #5568 )
...
* fix: properly bind to array elements in Svelte each loops
This commit fixes an issue where binding directly to loop variables in Svelte's #each loops doesn't properly update the original array. Instead of binding directly to the loop variable, we now bind to the array elements using index variables.
The pattern used is: - Change: {#each arr as el} -> {#each arr as _, index} - Change: bind:value={el} -> bind:value={arr[index]}
Modified files: - frontend/src/lib/components/ArrayTypeNarrowing.svelte - frontend/src/lib/components/apps/editor/AppInputs.svelte - frontend/src/lib/components/flows/content/FlowModuleWrapper.svelte
* better app settings panel reactivity
---------
Co-authored-by: Ruben Fiszel <ruben@windmill.dev >
Co-authored-by: HugoCasa <hugo@casademont.ch >
2025-04-04 17:11:14 +00:00
centdix
c8e1f65ac4
feat: add diff toggle to flow inline scripts ( #5550 )
...
* draft flow diff
* add missing import
* cleaning
* code cleaning
* fix for recursive renderings
* fix typo
* cleaning
---------
Co-authored-by: HugoCasa <hugo@casademont.ch >
2025-04-04 16:03:40 +00:00
HugoCasa
f6839cd320
fix: flow editor svelte 5 issues ( #5567 )
2025-04-04 11:30:03 +02:00
Faton Ramadani
258445e523
feat(frontend): unify all triggers UX and simplify flow settings ( #4259 )
...
* feat(frontend): added list of triggers in the flow graph
* feat(frontend): added list of triggers in the flow graph
* feat(frontend): clean up
* feat(frontend): improve UX
* feat(frontend): triggers
* feat(frontend): triggers
* feat(frontend): done
* feat(frontend): fix trigger when position when a preprocessor is presetn
* Glm/rework flow settings v2 (#4497 )
* fat(frontend): simplify flow settings menu
* improve scroll
* changing mute toggle
* Add advanced settings badge
* Add nord theme colors
* Add bage for advanced options
* fix minor issue
* fix minor issue
* Add triggers menu to flow settings
* Add quick trigger access
* remove triggers in flow settings
* fix minor issue
* Move triggers settings to flow right panel
* polishing
* fix unset store
* remove save up to for triggers
* fix padding
* reset default tag color
* remove custom select component
* revert path change
* revert section modif
* Revert unused feature
---------
Co-authored-by: Guilhem <guilhem@mbp-de-windmill.home >
* Connect top bar cron to schedules settings
* Turn copilot into node
* fix copilot placement
* remove useless import
* fix center copilot
* fix binding
* remove copilot on top of preprocessor
* render copilot node on condition
* quickfix
* remove copilot node
* fix minor issues
* fix route count update
* fix schedule sync
* harmonize colors
* fix alignment and add edges
* recenter node summary
* fix schedules sync
* Add id title
* all
* all
* all
* iteration
* all
* all
* done
* fix
* more fixes
---------
Co-authored-by: Guilhem <guilhemlemouel@gmail.com >
Co-authored-by: Guilhem <guilhem@mbp-de-windmill.home >
Co-authored-by: Ruben Fiszel <ruben@windmill.dev >
Co-authored-by: Ruben Fiszel <ruben@rubenfiszel.com >
2024-10-16 17:58:15 +02:00
HugoCasa
62d88436b2
feat: flow step skipping ( #4461 )
2024-09-30 16:30:59 +02:00
HugoCasa
ae8f29a4cb
feat: http routing ( #4339 )
...
* feat: http routing
* all
* feat: improve UI
* final stuff
* fix: sqlx
* fix: nit
* fix: nits
* fix: error handler display
* fix: routes panel perms
* all
* fix: improve ability to paste from macos in vscode extension
* fix lock-write for deno
* all
* cleaning
* fix
* cli preprocessor
* nits
* nits
---------
Co-authored-by: Ruben Fiszel <ruben@rubenfiszel.com >
2024-09-20 15:38:38 +02:00
Ruben Fiszel
df41acbdfe
fix: fix erronous not connected error message
2024-07-16 21:12:44 +02:00
Faton Ramadani
42db71fbdb
fix(frontend): flow editor improvements ( #4008 )
...
* fix(frontend): wip
* fix(frontend): wip
* fix(frontend): add missing iter input for while loops
* fix(frontend): improve code
* fix(frontend): improve code
* fix(frontend): failure status for fake modules on hold
* fix(frontend): wip
* fix(frontend): improve flow step warnings
* fix(frontend): add debounce
* fix(frontend): improve rpath detection
* feat(frontend): improve code
* fix(frontend): use the code parser to detect missing dependencies
* fix(frontend): improve code
* fix(frontend): improve code
2024-07-15 09:46:35 +02:00
Faton Ramadani
7442ab6e33
Correctly initialize the flowInputStore( #3940 )
...
* fix(frontend): Correctly initialize the flowInputStore for picked scripts/flows
* fix(frontend): Correctly initialize the flowInputStore for picked scripts/flows
2024-06-20 16:24:33 +02:00
Faton Ramadani
092e5dd63a
feat(frontend): add indicator when required field are missing ( #3935 )
...
* feat(frontend): add indicator when required field are missing
* feat(frontend): add indicator when required field are missing
* feat(frontend): remove reactivity
* feat(frontend): remove reactivity
* feat(frontend): remove reactivity
* feat(frontend): remove reactivity
* feat(frontend): remove reactivity
* feat(frontend): handle init flow
* feat(frontend): done
* feat(frontend): done
* feat(frontend): simplify code
* feat(frontend): improve code
* feat(frontend): improve ArgInput
* feat(frontend): fix icon alignement
2024-06-20 15:40:27 +02:00
Ruben Fiszel
cb6efb08a2
feat: show more for logs on s3 directly possible from browser log viewer
2024-04-17 21:42:46 +02:00
Ruben Fiszel
288b9c8ce4
feat: while loop as new flow primitive
2024-04-02 17:38:11 +02:00
Ruben Fiszel
00fbacdab4
fix: AI copilot available in the vscode flow editor ( #3314 )
...
* all
* foo
* add ai to vscode for flows
* add ai to vscode for flows
* foo
* foo
2024-02-29 20:22:44 +01:00
HugoCasa
918518ff5c
feat: add ai for predicates and iterator expressions ( #3203 )
...
* feat: add ai for predicates and iterator expressions
* fix: npm run check
* feat: copilot like suggestion
2024-02-13 15:52:03 +01:00
Ruben Fiszel
6d5a547eb6
feat: quick search in flow support workspace scripts
2023-12-22 17:54:44 +01:00
Ruben Fiszel
6251c46b6b
fix aggrid table empty selected
2023-11-01 20:19:18 +01:00
Ruben Fiszel
6c6dfbc121
flow vscode extension improvements ( #2536 )
...
* flow dev
* vscode flow extension improvements
2023-11-01 13:10:10 +01:00
HugoCasa
d31929688b
fix(frontend): reset btn for all langs ( #1949 )
2023-07-28 00:24:14 +02:00
Faton Ramadani
b238cb5a9a
fix(frontend): fix small ui issues ( #1513 )
2023-05-03 00:23:38 +02:00
Ruben Fiszel
4fc2cfc1be
remove all frontend warnings
2023-04-02 13:52:15 +02:00
Ruben Fiszel
a5a1068516
feat(frontend): add history to flows and apps
2023-03-07 14:47:17 +01:00
Ruben Fiszel
26fd94a8f0
feat(frontend): refactor entire flow builder UX
2023-03-05 23:00:43 +01:00
Ruben Fiszel
589072e3ef
fix test just this step freeze svelte bc of transition:fade
2022-12-28 12:52:21 +01:00
Ruben Fiszel
e74f224230
fix test just this step freeze svelte bc of transition:fade
2022-12-28 12:51:04 +01:00
Ruben Fiszel
1bbd8b7fdc
Flow UX improvements wrt to triggers
2022-12-15 23:09:23 +01:00
Ruben Fiszel
b0c3aee752
improve branches module editor
2022-12-07 13:10:21 +01:00
Ruben Fiszel
9ea336fd6e
fix flow input picker
2022-12-07 11:04:31 +01:00
Ruben Fiszel
a1519e09a9
feat: implement flow as a flow step
2022-12-06 23:38:06 +01:00
Ruben Fiszel
fa7e8d107b
feat: add lockable version to scripts inside flows ( #972 )
...
* add it to openflow
* push
* push
* final
2022-12-06 13:11:11 +01:00
Ruben Fiszel
4f27e3ced2
feat(frontend): clarified UX for connect step
2022-12-03 23:54:07 +01:00
Ruben Fiszel
8f92a0c66f
feat(frontend): flow UX overhaul II + go + python support for trigger scripts ( #928 )
...
* all
* improve all
* improve all
* fix frontend
* fix input picker nits
* fix(frontend): Fix Menu display
* all
* fix all
* fix all
Co-authored-by: Faton Ramadani <faton.ramadani14@gmail.com >
2022-11-22 16:18:14 +01:00
Ruben Fiszel
cd8d0e5ea6
feat: deprecate previous_result in favor of results per id
2022-11-10 01:58:52 +01:00
Ruben Fiszel
c1f09b1b28
fix inner branches in the flow UX
2022-11-04 16:31:30 +01:00
Ruben Fiszel
f7572ba2f3
approvers are available to the step right after approval
2022-11-02 10:43:19 +01:00
Ruben Fiszel
752711a977
UI improvements
2022-11-01 23:48:04 +01:00
Ruben Fiszel
463d73399d
feat(backend): add parallel option for forloop and branchall ( #840 )
...
* parallel
* parallel
* fix 1
* fix 2
* fix 3
* fix 3
* fix 4
* sqlx
* add parallel toggle on frontend
* parallel in frontend
* serde
* fix everything
* fix everything
2022-11-01 06:09:00 +01:00
Ruben Fiszel
a08beefa65
flow UX improvements
2022-10-29 16:04:05 +02:00
Ruben Fiszel
687fc102d5
flow ui nits
2022-10-28 16:11:03 +02:00
Ruben Fiszel
544a2bbaec
feat(frontend): result by id
2022-10-26 08:31:30 +02:00
Ruben Fiszel
d6ecd1394a
fix input transforms
2022-10-26 06:14:42 +02:00
Ruben Fiszel
46eec980c9
fix early stop
2022-10-25 23:05:03 +02:00
Faton Ramadani
028b53f9f5
feat(frontend): Flow editor branches ( #727 )
2022-10-25 17:26:31 +02:00