* add logs
* add logs search + better load tools logic
* use json
* nit
* only add for ee
* nit
* filter out search after first fail
* Revert "filter out search after first fail"
This reverts commit 2abf0db6e5a1be84e67d1a153281b74d448cb5cd.
* call endpoint to know if it is available
* cleaning
* Apply suggestion from @graphite-app[bot]
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
* fix
* draft
* call enabled endpoint
* not workspaced
* remove from system prompt if not enterprise
* fix eeref command
* update ee ref
---------
Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
* assets migration
* parse assets (duckdb)
* iterate on assets
* S3 object Preview
* remove pagination
* filterText
* better occurence list
* tweak
* assets in JobPreview
* clone impl
* AssetsDetectedBadge
* improve DbManagerButton + asset dropdown button
* edit resource btn
* warning when incorrect resource
* +Resource in DuckDB
* +S3 Object editor bar
* nit fix rename
* flow asset badge
* More Generic OnChange
* Highlight assets used in modules
* Show occurence count in flow
* Better UX, avoid moving parts
* nit
* Asset nodes
* move to dedicated Asset ctx
* fix layoutNodes not handling first assetsMap
* explore asset btn in flow asset node
* correct offset
* single computeAssetNodes function
* Fix y positioning of nodes with assets
* resource editor
* write mode node (ui)
* accessType in ctx + fix insert button positioning
* right positioning when mixing read and write nodes
* right positioning when mixing R and W assets
* Better layout fix algorithm
* listAssetsByUsage and asset nodes on transitive usages
* refactor + remove linkAssets
* Refactor to allow for custom R/W modes
* AssetsDropdownButton in flow script editor
* R/W/RW selection and changes node pos in flow
* layoutNodes doesnt need recompute now
* fix wrong assumption that nodes recompute when assets change
* r/w/rw multi toggle
* MultiToggle cool animation + clearable
* rename + 1px nit
* remove mini toggle button group, use ToggleButtonGroup
* Combinator parser that detects R / W asset context
* nit fix missing flex-1
* missing order by
* better ui indication for access type
* special x offset case when only one asset node for clarity
* parse getResource in TS with swc ecma parser
* support load and write s3 detection in TS
* Python asset parser
* support wmill api calls without special $res: or s3:// syntax
* detect out of context asset uris python
* do not use access type override when not ambiguous in flow graph
* parse_assets match case in rust
* AsRef<str> refactor
* From impl
* Save flow assets
* Save script asset usages + fixes + save fallback access types
* asset sub icon
* max total asset node width to avoid overlap
* small refactor
* don't parse comments in duckdb assets
* fix assets clearing on parse error
* fix script asset save in wrong place
* load initial asset fallback access types
* support variables
* ui fixes
* Support S3Object as URI in TS client
* support new syntax in python client
* Support +S3Object in EditorBar for TS and python
* Reduce resource requests in assets page
* import windmill client when necessary
* update s3Types.d.ts
* nit fix
* Show input resources and s3 objects as assets
* improve asset icons
* DarkModeObserver refactor
* asset page tabs
* Moved resource variables and s3object pages to assets tabs
* fetch resource usages
* Get variables usages
* move assets usage dropdown to component
* Revert "move assets usage dropdown to component"
This reverts commit 622ea4ab12.
* Revert "Get variables usages"
This reverts commit b11ced4e29.
* Revert "fetch resource usages"
This reverts commit aa5187ad4b.
* Revert "Moved resource variables and s3object pages to assets tabs"
This reverts commit 4430487be4.
* Revert "asset page tabs"
This reverts commit dacc2f0da5.
* move assets usage dropdown to component
* asset icon in asset pages
* tooltip
* details
* Storage selector in S3 File Picker
* make edge less opaque
* Refactor computeAssetNodes to separate in and out nodes
* AssetsOverflowedNode
* nits
* fix assets not being parsed in flows sometimes
* show asset kind and resource_type
* ui nits
* support res:// in duckdb
* add banner for old deployments
* Fix permissionning
* fix broken disable /enable all
* assets page view permission for operators
* Disable ExploreAssetButton for operators
* asset kind as subtitle
* do not spam getResource in assets page. prob. revert fail
* update assets page on workspace change
* reload storage names on ws change
* delete assets on archive / deletion
* sqlx prepare
* missing update when updating user
* add indexes on asset
* better message
* missing loadInit: false
* dead code
* use transaction
* typo
* update package.json
* update package.json
---------
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
* move settings and static inputs into top node
* Move test button in the top nodes
* Revert "Move test button in the top nodes"
This reverts commit 1c8648a538.
* Add error handler to top toolbar
* nit
* polishing
* add flow settings to topbar dropdown
* remove unused files
* progress
* progress
* fixes
* fix
* fix
* fix
* fix
---------
Co-authored-by: Ruben Fiszel <ruben@rubenfiszel.com>
Co-authored-by: Ruben Fiszel <ruben@windmill.dev>
* feat: add typescript client context to ai chat system prompt
Add windmill client function signatures and descriptions to the TypeScript
language context in the AI chat system. This provides users with inline
documentation for key windmill client functions including resource operations,
state management, variables, script execution, S3 operations, and flow utilities.
The context is kept concise to avoid making the system prompt too large while
still providing the most useful function signatures for TypeScript scripts.
Resolves#6002
Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>
* fix import
* feat: add python client context to ai chat system prompt
Add PYTHON_WINDMILL_CLIENT_CONTEXT with function signatures and descriptions for key windmill client functions in Python, including:
- Resource operations (get_resource, set_resource)
- State management (get_state, set_state, get_flow_user_state, set_flow_user_state)
- Variables (get_variable, set_variable)
- Script execution (run_script, run_script_async, wait_job)
- S3 file operations (load_s3_file, write_s3_file)
- Flow operations (run_flow_async, get_resume_urls)
- Utilities (whoami, get_job_status, set_progress)
The context is now included for Python language (python3) in the AI chat system prompt, providing users with helpful function signatures and descriptions when asking for coding assistance.
Co-authored-by: centdix <centdix@users.noreply.github.com>
---------
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>
Co-authored-by: centdix <farhadg110@gmail.com>
Co-authored-by: centdix <centdix@users.noreply.github.com>
* fix: ai button in inline script editor to open AI chat in flow builder
- Add openAiChat prop to ScriptGen component to control AI button behavior
- When openAiChat=true, AI button opens AI chat manager in script mode
- When openAiChat=false (default), AI button shows direct generation popover
- Update flow builder (FlowModuleComponent) to use openAiChat=true for inline scripts
- App builder continues using direct generation (openAiChat defaults to false)
- Import AIMode enum properly to fix TypeScript error
Resolves request from @HugoCasa to make flow AI button open chat instead of direct generation while keeping app builder unchanged.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>
* refactor: extract repeated logic into reusable functions in ScriptGen.svelte
- Created determineModeFromEditor() to centralize mode setting logic
- Added callCopilot() to unify copilot function calls with proper typing
- Added handleAiButtonClick() as single handler for button click scenarios
- Created safeLocalStorageOperation() for generic localStorage error handling
- Added getPromptStorageKey() for centralized storage key generation
Reduces code duplication and improves maintainability.
Co-authored-by: HugoCasa <HugoCasa@users.noreply.github.com>
* refactor: extract duplicate determineModeFromEditor call in handleAiButtonClick
Remove code duplication by calling determineModeFromEditor() once at the
beginning of handleAiButtonClick() instead of in both conditional branches.
Co-authored-by: HugoCasa <HugoCasa@users.noreply.github.com>
* nits
* better color
---------
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>
Co-authored-by: HugoCasa <HugoCasa@users.noreply.github.com>
Co-authored-by: HugoCasa <hugo@casademont.ch>
* use open router of model lists
* draft
* allow get in ai proxy
* add fetch available models function
* use func
* fix for anthropic
* fix
* fetch on mount
* fix ai settings
* fix
* handle azure
* use form to avoid issues with chrome autocomplete
* fix tooltip overflowing to the right
* fix missclick on tooltip
* better fix
* dont show expiration on mcp token creation
* add zindexes to safelist
* add autocomplete
* feat: integrate TriggerableByAI with SchemaForm components
- Add currentValue and schema props to TriggerableByAI component
- Wrap all ArgInput fields with TriggerableByAI for AI chat integration
- Each input field now registers with AI chat manager including:
- Current field value
- Schema details (type, description, format, etc.)
- Proper triggering mechanism for AI-driven value updates
This enables AI chat to interact with any input type generated by SchemaForm,
allowing intelligent form field modifications based on context and user intent.
Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
* add schema to description
* draft
* draft
* just use json inputs component
* good starting point
* add triggerable to scriptrow + shortcut
* fixes
* save prompt for ai in schema
* fix
* change visibility
* simplify
* cleaning
* fixes
* add tool to fetch resources
* fixes
* add try catch
* fix prompt
* cleaning
* use ask ai button
* fix
* no animation on form + fix empty summary
* add inputselectedbadge
* better action description + fix rows border
---------
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: rubenfiszel <rubenfiszel@users.noreply.github.com>
Co-authored-by: centdix <farhadg110@gmail.com>
* fix: prioritize diff contexts and replace underscores with spaces in AI context badges
- Sort context list to show diff contexts first in AvailableContextList.svelte
- Replace underscores with spaces in display names for both AvailableContextList.svelte and ContextElementBadge.svelte
- Improves UX by making diff context names more readable (e.g., "diff with last saved draft" instead of "diff_with_last_saved_draft")
Fixes#5884
Co-authored-by: centdix <centdix@users.noreply.github.com>
* fix
* fix
---------
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: centdix <centdix@users.noreply.github.com>
Co-authored-by: centdix <farhadg110@gmail.com>