- Detect QEMU images (cua-linux, cua-windows) and configure accordingly
- Validate golden image storage path for QEMU images
- Add /dev/kvm device support with warning if not provided
- Add NET_ADMIN capability for QEMU networking
- Map correct ports (8006 VNC, 5000 API) for QEMU vs Kasm/XFCE
- Support custom environment variables via run_opts (RAM_SIZE, CPU_CORES, DISK_SIZE)
- Skip Docker memory/CPU limits for QEMU (uses env vars instead)
- Add configurable timeout parameter (default 100s) for interface connection
- Add run_opts parameter for provider-specific options (devices, env vars)
- Include memory/CPU from config in run_opts
- Use configurable timeout instead of hardcoded 30s in wait_for_ready calls"
- Test closure variable detection (helpers, constants, imports)
- Test nested dependency resolution and ordering
- Test class definitions and decorator removal
- Test import style preservation
- Test caching mechanism
- Implement AST-based dependency analysis with closure support
- Automatically detect and include helper functions, imports, and constants
- Handle nested dependencies recursively
- Add caching with function object as key
* Sort imports alphabetically in agent loops __init__.py
Fix isort check failure by alphabetically sorting both the import list
and __all__ list to match the expected order.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* run on all prs
* Fix black formatting issues in responses.py and provider.py
Apply black formatting to fix lint check failures:
- Reformat conditional expression in responses.py for better readability
- Break long assert line in provider.py to comply with line length limits
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Fix prettier formatting issues in markdown and TypeScript files
Apply prettier formatting to blog posts, documentation, and CLI code:
- Format blog markdown files for consistent styling
- Format TypeScript CLI source files
- Format documentation MDX files
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
Previously, users had to explicitly read the CUA_API_KEY environment variable
and pass it to the Computer/CloudProvider constructor. This change makes the
API key parameter optional and automatically reads from the CUA_API_KEY
environment variable if not provided.
Changes:
- CloudProvider.__init__: Made api_key parameter optional, reads from CUA_API_KEY env var
- Computer.__init__: Added fallback to CUA_API_KEY env var for api_key parameter
- Updated documentation examples to show simplified usage without explicit api_key
- Updated cloud_api_examples.py to demonstrate the new simpler pattern
This provides a cleaner API while maintaining backward compatibility with
explicit api_key parameter passing.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replaced unsafe string concatenation with `shlex.join()` for POSIX systems, `mslex.join()` for Windows systems.
- Add utility function `safe_join`.
- Modified `pyproject.toml` to include `mslex` dependency for Windows environments.