Introduce pulsing-forge module and enhance pulsing-cli functionality#72
Merged
Conversation
- Added a new `pulsing-forge` module, providing a sandboxed environment for executing agent tools. - Implemented core components including `ToolExecutor`, `ToolRuntime`, and session management for executing commands in a controlled environment. - Integrated support for handling execution output and errors, with structured result types for better interaction with tools. - Updated `Cargo.toml` and `Cargo.lock` to include new dependencies and ensure compatibility. - Enhanced documentation in `README.md` and `README.zh.md` to reflect the new features and usage examples for the Pulsing Forge and Agent CLI. - Updated `.gitignore` to exclude new workspace files and vendor directories.
- Added new members to the workspace in `Cargo.toml`, including `pulsing-bindings-core`, `pulsing-rpymod`, `pulsing-workspace`, and `pulsing-cli`. - Updated `Justfile` to improve development commands, including new `dev-binary` and `build-binary` tasks for building the CLI with embedded Python. - Enhanced the `pulsing-cli` with a new command structure for workspace management, including `Init`, `History`, `Checkpoint`, and `Rollback`. - Introduced `pulsing-bindings-core` with shared logic for both PyO3 and RustPython bindings, including ID parsing helpers and message handling. - Updated `pyproject.toml` to include new features for the extension module. - Added new Rust files for `pulsing-bindings-core` to support shared logic across different binding paths. - Improved documentation in `README.md` for the `pulsing-cli` and its dual build modes.
Contributor
There was a problem hiding this comment.
CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
- Adjusted spacing and formatting in `ids.rs`, `main.rs`, and `workspace.rs` for consistency. - Refactored method definitions and error handling in `interop.rs`, `actor_ref.rs`, and `actor_system.rs` to enhance clarity. - Streamlined function signatures and argument handling in `codec.rs`, `message.rs`, and `stream.rs`. - Improved readability in Python files by adjusting line breaks and indentation in various modules, including `npc.py`, `permissions.py`, and `workspace/journal.py`. - Ensured consistent use of parentheses and line breaks in function definitions and calls across the codebase.
…gement - Added `pulsing-gui` as a new member in the workspace for desktop chat functionality. - Introduced immersive workflow sessions in `pulsing-cli`, allowing users to run Python scripts interactively. - Enhanced command structure in `pulsing-cli` to support new commands for managing workflows and agent tasks. - Implemented session configuration for LLM providers and workspace paths, improving user experience. - Refactored input handling and command parsing for better interaction in the CLI. - Updated documentation in `README.md` to reflect new features and usage examples for the CLI. - Improved error handling and user feedback during workspace initialization and command execution.
- Updated `.gitignore` to exclude new binary and package artifacts. - Modified CI workflows to build and upload both wheels and binaries for macOS, Linux x86-64, and aarch64. - Added new steps in CI to build the pulsing binary and upload it as an artifact. - Enhanced `pulsing-cli` with a new `--batch` option for non-interactive script execution. - Refactored workflow session management to accommodate the new batch execution feature. - Improved test coverage for new features in `pulsing-cli` and ensured compatibility with existing tests.
- Updated `Justfile` to introduce new `build-release` and `build-all` commands for streamlined building of wheels and binaries. - Modified existing commands to improve clarity and functionality, including adjustments to the `dev` command output. - Enhanced CI build process to support both wheel and single binary generation, ensuring compatibility with various platforms. - Updated documentation in `CONTRIBUTING.md` to reflect new build commands and usage instructions.
…nagement - Replaced the GPUI with egui for the desktop chat interface in `pulsing-gui`, enhancing user experience. - Introduced a new chat module for rendering chat messages and user interactions. - Added a left panel for file exploration and management, allowing users to open and refresh files. - Implemented a right panel for session management, displaying active sessions and enabling new chat creation. - Refactored existing code to remove deprecated components and improve overall structure. - Updated dependencies in `Cargo.toml` to support new features and ensure compatibility. - Enhanced documentation to reflect changes in the GUI and user interactions.
- Updated `Cargo.lock` to include new dependencies and versions, improving compatibility and functionality. - Added a new `.cargo/config.toml` file to set environment variables for specific build conditions. - Enhanced the `setup-build-env` GitHub Action to include additional development libraries. - Modified `pulsing-cli` to support optional GUI features and updated the build scripts to allow for GUI-less builds. - Improved documentation and error handling in the `run` function of `pulsing-cli` to guide users on GUI availability.
- Updated `Justfile` to include `libffi-devel` in both manylinux and Fedora CI setup commands, ensuring necessary dependencies are installed. - Modified the `setup-build-env` GitHub Action to add `libffi-dev`, enhancing the build environment for better compatibility with various libraries. - Adjusted `build-binary.sh` to support conditional GUI builds, allowing for smaller binaries when GUI features are not required.
- Introduced lazy loading for heavy modules in `pulsing.forge` using `__getattr__`, optimizing package initialization by deferring imports until needed. - Updated imports across multiple files to utilize the new lazy loading mechanism, enhancing performance and reducing initial load times. - Refactored `ensure_*` functions to return `ActorProxy` directly from the `pulsing.core` module, streamlining actor resolution processes. - Improved code organization and readability by consolidating import statements and removing unnecessary dependencies.
- Refactored import statements across multiple files to utilize the new lazy loading mechanism, improving code organization and reducing unnecessary dependencies. - Implemented `__getattr__` in `pulsing.__init__` to handle circular imports more effectively, ensuring critical APIs are accessible during package initialization. - Updated decorators and references to `remote` to align with the new import structure, enhancing clarity and consistency in the codebase.
- Streamlined import statements across multiple modules to improve organization and reduce circular dependencies. - Refactored the `__getattr__` method in `pulsing.__init__` to better handle circular imports and ensure critical APIs are accessible during initialization. - Updated references to `ActorProxy` and `IsolatedSpawnHandle` to directly use imports from `pulsing.core`, enhancing clarity and consistency. - Improved lazy loading mechanisms in `pulsing.forge` to optimize performance during package initialization.
- Removed unused dependencies from `Cargo.lock` to streamline the project. - Enhanced `Cargo.toml` by restructuring workspace members for better organization and adding default members for faster builds. - Updated `tokio`, `tracing`, and other dependencies to use default features selectively, improving build efficiency and reducing unnecessary bloat. - Introduced custom build profiles for development and release to optimize compilation speed and artifact size.
- Modified `.github/workflows/ci.yml` to specify installation of pulsing-specific wheels, enhancing clarity in dependency management. - Updated `.cargo/config.toml` to include incremental build settings and a target directory for improved build performance. - Removed the placeholder `__init__.py` file from `pulsing-bench-py`, streamlining the package structure.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview:
Details:
Where should the reviewer start?
Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)