* 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: allow change_workspace_id on CLOUD_HOSTED for superadmins
- Import is_super_admin_email function from windmill_common::auth
- Modify CLOUD_HOSTED restriction to bypass for superadmin users
- Resolves request to allow workspace ID changes for superadmins only
Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>
* feat: allow superadmins to change workspace ID on cloud hosted environments
Update frontend conditional logic to show workspace ID change button for superadmins on cloud hosted environments. This complements the backend changes that already allow superadmins to perform the workspace ID change operation.
Changes:
- Add superadmin import from $lib/stores
- Update condition from `!isCloudHosted()` to `!isCloudHosted() || $superadmin`
Co-authored-by: Ruben Fiszel <rubenfiszel@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>
* Add GitHub App functionality to ResourceEditor and extract reusable component
- Extract GitHub App logic from ApiConnectForm into reusable GitHubAppIntegration component
- Add GitHub App functionality to ResourceEditor for consistent experience across workflows
- Create githubApp.ts service layer with comprehensive error handling and state management
- Maintain all existing functionality while improving code reusability
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Fix code formatting for GitHub App integration files
Apply Prettier formatting to newly created and modified components to ensure
consistent code style across the GitHub App integration implementation.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
* linter
* Update frontend/src/lib/githubApp.ts
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* Update frontend/src/lib/components/GitHubAppIntegration.svelte
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Removes the BETA designation from Ansible language in the script builder
while keeping it for Nu language as requested.
Closes#6052
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>
* Add initial loading status for flow steps
* Add loading state
* reset module initial if test flow initial is reset
* ensure all jobs are loaded before unmouning the preview
* only use loadIndividualStepsStates when no history
* Revert "only use loadIndividualStepsStates when no history"
This reverts commit bfc37b7e7f.
* wait for all flow child to be loaded befor loading flowSteps
* Revert "wait for all flow child to be loaded befor loading flowSteps"
This reverts commit 7da81756b0.
* Load individual steps on flow load
* Add loading status in graph
* Use a context to manage initial state and save to local storage
* Handle new flow
* nit
* nit
* nit
* Prevent loading step when mock is enabled
* Load jobs based on last flow run
* Revert "Load jobs based on last flow run"
This reverts commit 212cb7f785.
* Change step initial display status
* nit
* Add parallelisation limit on step job loading
* 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>