* Use regex to split input to python import parser
* gitignore Cargo.toml
* gitignore cargo.toml
* Restore cargo.lock
* fix(rust): make wmill reference correct windmill-api
`wmill` crate of version `x` should reference `windmill-api` of the same version `x`
* nit(mcp): filter out scripts without main function from tools list
- Add no_main_func field to ScriptInfo struct
- Update SQL query to select no_main_func from database
- Filter scripts where no_main_func is true in list_tools function
- Hub scripts remain unaffected as requested
Resolves#6021
Co-authored-by: Ruben Fiszel <rubenfiszel@users.noreply.github.com>
* perf(mcp): optimize script filtering with SQL WHERE clause
Move the no_main_func filtering from Rust code to SQL WHERE clause for better performance:
- Add conditional WHERE clause in inner_get_items for scripts only
- Remove Rust-level filtering loop in list_tools function
- Reduces data transfer and improves query performance by filtering at database level
- Handles NULL values properly with (o.no_main_func IS NOT TRUE OR o.no_main_func IS NULL)
Co-authored-by: centdix <centdix@users.noreply.github.com>
* fix
* refactor(mcp): optimize filtering by removing no_main_func field selection
Remove no_main_func field from ScriptInfo struct and SQL selection while keeping WHERE clause filtering. This improves performance by filtering at the database level without transferring unnecessary data to the application layer.
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>
Co-authored-by: centdix <centdix@users.noreply.github.com>
Co-authored-by: centdix <farhadg110@gmail.com>
doesn't work well in edge cases:
```
@schedule(
bla=True
)
def main(x: str):
return x
```
```
error_message = """
Please ensure you have defined main(username, password) correctly.
The function def main( should be at the end.
"""
def main(x: str):
return x
```
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>