Commit Graph

255 Commits

Author SHA1 Message Date
scawful
8e7c179d47 feat: Improve Argument Parsing in OverworldGetTile and Implement ROM Saving in PaletteImport
- Enhanced argument parsing in OverworldGetTile to handle map_id, x, and y parameters more robustly, ensuring proper usage feedback.
- Added functionality to save the modified palette to the ROM in PaletteImport, updating the success message to confirm the save operation and display the filename.
2025-10-05 12:29:59 -04:00
scawful
744c49ffc8 feat: Implement ROM Saving Functionality and Update Success Message
- Added functionality to save the modified graphics sheet to the ROM after import, ensuring changes are preserved.
- Updated success message to confirm the ROM has been saved and display the filename for better user feedback.
2025-10-05 12:21:53 -04:00
scawful
cbe8a3c6d1 feat: Implement ROM Saving After Patch Application
- Added functionality to save the patched ROM after applying the patch, ensuring changes are preserved.
- Updated success message to include the filename of the saved ROM for better user feedback.
2025-10-05 12:21:46 -04:00
scawful
a7c384a37d feat: Enhance AgentChatWidget with Improved Message Handling and UI Updates
- Updated the AgentChatWidget to manage AI response states, including a new mechanism for handling pending messages and a thinking animation indicator.
- Improved the initialization of embedded labels for resource tools, ensuring labels are loaded only when necessary, enhancing performance and user experience.
- Refined the chat history synchronization process to ensure timely updates in the chat history popup.
- Enhanced the UI layout for better readability and interaction, including adjustments to button styles and spacing for a more polished appearance.
2025-10-05 12:08:11 -04:00
scawful
8b9f838054 feat: Add GUI Automation Tool for Tile Placement
- Introduced the HandleGuiPlaceTileCommand function to facilitate tile placement via GUI automation, enhancing the tool's capabilities for user interaction.
- Updated the ToolDispatcher to include the new command, allowing for seamless integration into the existing command structure.
- Enhanced the AgentChatWidget to initialize default labels for resource tools, improving the user experience with visual feedback on label loading status.
- Improved error handling and user messaging for better clarity during tile placement operations.
2025-10-05 06:04:18 -04:00
scawful
e490dea2e5 feat: Enhance Agent Editor and Chat History Management
- Added support for internal message handling in the AgentChatHistoryCodec, allowing messages marked as internal to be excluded from user display.
- Updated the AgentChatWidget to skip rendering internal messages, improving user experience by reducing clutter.
- Introduced a comprehensive bot profile management system in the AgentEditor, enabling users to create, save, load, and manage bot profiles with detailed configurations.
- Enhanced the UI for the AgentEditor, including a new tabbed interface for better organization of settings, prompts, and profiles, along with improved metrics and chat history viewing capabilities.
- Implemented JSON support for bot profile management, allowing for easy export and import of profiles, streamlining user workflows.
2025-10-05 05:27:11 -04:00
scawful
8d13c31df8 feat: Update AI Model References and Enhance Agent Chat Widget Functionality
- Updated AI model references from "gemini-2.0-flash-exp" to "gemini-2.5-flash" across various components, ensuring compatibility with the latest AI capabilities.
- Enhanced the AgentChatWidget to improve user experience with new features such as message copying, improved input handling, and session management.
- Introduced a chat session management system, allowing users to create and switch between multiple chat sessions seamlessly.
- Improved UI elements for better visibility and interaction, including styled buttons and tooltips for enhanced usability.
2025-10-05 04:55:18 -04:00
scawful
7f07d87308 feat: Implement modern menu structure in EditorManager
- Added a comprehensive modern menu system in `EditorManager` with File, Edit, View, Workspace, Debug, and Help menus.
- Integrated various menu items with corresponding actions, including project management, editing commands, and debugging tools.
- Enhanced user experience with keyboard shortcuts for common actions and improved menu organization.
- Updated header file to declare the new `BuildModernMenu` function and included necessary dependencies.
2025-10-05 02:18:29 -04:00
scawful
9f119abba7 feat: Introduce Autocomplete Engine and TUI for enhanced command input and suggestions
- Added `AutocompleteEngine` class for managing command and parameter suggestions with fuzzy matching.
- Implemented TUI components for an interactive command input interface with real-time suggestions.
- Enhanced user experience with a quick action menu for common tasks related to ROM manipulation.
- Established a structured approach for contextual help based on user input, improving command discoverability.
2025-10-05 01:45:56 -04:00
scawful
7712456154 feat: Add ROM hacking guides and prompt management for enhanced user support
- Introduced `alttp_rom_hacking_guide.txt` and `oracle_of_secrets_guide.txt` for detailed ROM structure and hacking techniques.
- Implemented `PromptManager` class to manage loading and retrieving prompts based on different modes.
- Enhanced system prompt with new tool capabilities for hex and palette manipulation, along with TODO management features.
- Updated CLI experience with improved command handling and user guidance for ROM exploration tasks.
2025-10-05 01:45:19 -04:00
scawful
7309baa8c2 feat: Implement advanced routing system for agent tool responses
- Introduced AdvancedRouter class for routing hex analysis, map editing, and palette analysis responses.
- Added methods for generating GUI automation scripts and synthesizing multi-tool responses.
- Implemented knowledge modules for agent pretraining, covering ROM structure, hex analysis patterns, and tool usage examples.
- Enhanced data handling with structured responses, including summaries, detailed data, and next steps for user guidance.
- Refactored project build process to utilize std::filesystem for cross-platform patch application.
2025-10-05 01:44:23 -04:00
scawful
dc89d7b818 feat: Enhance Command Palette with Fuzzy Search and Improved UI
- Implemented fuzzy search functionality for command filtering, allowing for more flexible command matching.
- Updated Command Palette UI to include a scoring system for commands based on usage and recency.
- Added new command categories and improved display organization with a table format.
- Introduced recent and frequent command tracking for better user experience.
- Refactored command handling to support dynamic command execution and improved navigation.
2025-10-05 01:32:28 -04:00
scawful
9358e95116 revamp tui menu 2025-10-05 01:27:03 -04:00
scawful
019c20e749 feat: Enhance z3ed networking documentation and CLI capabilities
- Updated NETWORKING.md to reflect the new versioning and provide a comprehensive overview of the z3ed networking, collaboration, and remote access features.
- Introduced detailed architecture descriptions, including communication layers and core components for collaboration.
- Added new CLI commands for hex and palette manipulation, enhancing the functionality of the z3ed CLI.
- Implemented a TODO management system within the CLI for better task tracking and execution planning.
- Improved README.md to include new CLI capabilities and enhancements related to the TODO management system.
2025-10-05 01:15:15 -04:00
scawful
04c43fb99e refactor: Update window creation and file dialog handling for improved consistency
- Replaced `SDL_Deleter` with `util::SDL_Deleter` in window creation for better utility usage.
- Updated file dialog methods to consistently reference `core::FeatureFlags` for feature flag checks.
- Refactored file extension retrieval in `EditorManager` to use `util::GetFileExtension` for consistency.
- Adjusted `MusicEditor` constructor to accept a ROM pointer, enhancing initialization clarity.
- Commented out unused code in `MusicEditor` to improve readability and maintainability.
- Updated include paths in `overworld_editor.cc` for better organization.
- Cleaned up commented-out code in `editor_selection_dialog.cc` and `welcome_screen.cc` for clarity.
2025-10-05 00:57:05 -04:00
scawful
d52b8ae006 feat: Implement Vim-style line editing mode for enhanced CLI experience
- Added a new `VimMode` class to provide Vim keybindings for terminal interactions, including normal, insert, and visual modes.
- Implemented command history navigation and tab completion features to improve user experience.
- Introduced syntax highlighting for code blocks and various editing commands to enhance functionality.
- Created an enum `VimModeType` to represent different editing modes, facilitating mode management within the CLI.
2025-10-05 00:36:23 -04:00
scawful
5a35718070 refactor: Update Doxyfile and resource paths for improved organization
- Changed the paths for project logo and icon in Doxyfile to point to the new assets directory.
- Updated CMake configurations to reflect the new locations of resource files, enhancing clarity and maintainability.
- Replaced instances of core utility functions with util functions across various files for consistency in file handling.
- Added new resource files for Windows platform support and removed obsolete resource files, streamlining the build process.
2025-10-05 00:31:46 -04:00
scawful
91a22bffbb refactor: Update ROM service implementation and CMake configurations
- Adjusted paths in CMake files to reference the correct location of `rom_service.proto`.
- Refactored `RomServiceImpl` to use a namespace alias for improved readability and maintainability.
- Updated method parameters in `RomServiceImpl` to utilize the new namespace alias for consistency.
- Added a new `rom_service.proto` file to define the ROM manipulation service, enabling remote operations for reading and writing ROM data.
- Enhanced the `RecentFilesManager` to utilize a utility function for retrieving the configuration directory, improving code clarity.
- Included necessary updates in CMake configurations to integrate the new proto file and ensure proper build setup.
2025-10-05 00:24:35 -04:00
scawful
eec9f84fb0 refactor: Update CMake configurations and enhance TODO management features
- Replaced `${CMAKE_SOURCE_DIR}` with `${PROJECT_SOURCE_DIR}` in CMake files for consistent path handling.
- Introduced new `todo_commands` and `todo_manager` components to manage TODO items, including creation, listing, updating, and deletion functionalities.
- Added detailed implementations for handling TODO commands in the CLI, improving task management capabilities.
- Enhanced the `TodoManager` class to support persistence and execution planning for TODO items.
- Updated CMake configurations to include new source files related to TODO management, ensuring proper integration into the build system.
2025-10-05 00:19:57 -04:00
scawful
bcc8f8e8f9 refactor: Restructure file dialog handling and introduce utility classes
- Updated file dialog references across the application to utilize a new `util::FileDialogWrapper` for consistent file handling.
- Refactored existing code to replace direct calls to `core::FileDialogWrapper` with the new utility class, enhancing modularity and maintainability.
- Introduced `util::PlatformPaths` for cross-platform directory management, ensuring consistent access to user directories and application data paths.
- Added new utility functions for file operations, improving the overall file handling capabilities within the application.
- Updated CMake configurations to include new utility source files, streamlining the build process.
2025-10-04 23:26:42 -04:00
scawful
429506e503 feat: Integrate unified gRPC server for enhanced service management
- Added `UnifiedGRPCServer` class to host both ImGuiTestHarness and ROM service, allowing simultaneous access to GUI automation and ROM manipulation.
- Implemented necessary header and source files for the unified server, including initialization, start, and shutdown functionalities.
- Updated CMake configurations to include new source files and link required gRPC libraries for the unified server.
- Enhanced existing services with gRPC support, improving overall system capabilities and enabling real-time collaboration.
- Added integration tests for AI-controlled tile placement, validating command parsing and execution via gRPC.
2025-10-04 23:14:09 -04:00
scawful
ec88f087a2 feat: Add AI GUI controller and vision action refiner for enhanced automation
- Introduced `AIGUIController` class to manage AI-driven GUI automation with vision feedback, enabling natural language command execution and iterative action refinement.
- Implemented `VisionActionRefiner` class to analyze screenshots and refine actions based on visual feedback, improving action success rates.
- Added header and implementation files for both classes, along with necessary methods for screenshot analysis, action verification, and UI element location.
- Updated CMake configuration to include new source files for the AI GUI controller and vision action refiner functionalities.
2025-10-04 23:09:59 -04:00
scawful
7be949b30f feat: Implement gRPC ROM service for remote manipulation
- Added `RomServiceImpl` class to facilitate remote ROM operations, including reading/writing ROM data, managing versions, and submitting proposals.
- Integrated gRPC support for real-time collaboration and remote access to ROM functionalities.
- Updated `README.md` to document the new gRPC ROM service and its capabilities.
- Enhanced CMake configuration to include new source files for the gRPC implementation and related services.
2025-10-04 22:51:13 -04:00
scawful
f19451e99e feat: Add networking commands for z3ed CLI
- Implemented new CLI commands for network operations, including `net connect`, `net join`, `net leave`, and `net proposal` for real-time collaboration.
- Enhanced the `CollaborationService` and `WebSocketClient` to support session management and proposal submissions.
- Updated `README.md` to include usage instructions for the new networking commands and features.
- Improved CMake configuration to include new source files for networking functionalities.
2025-10-04 22:43:21 -04:00
scawful
0f4d444a73 feat: Implement networking and collaboration features for z3ed
- Introduced a comprehensive networking system for real-time collaboration across the yaze app, z3ed CLI, and yaze-server using WebSocket.
- Added `WebSocketClient` and `CollaborationService` classes to manage connections, session hosting, proposal submissions, and automatic ROM synchronization.
- Enhanced the z3ed CLI with commands for connecting to the server, submitting proposals, and checking approval statuses.
- Updated documentation to include detailed usage instructions for the new networking features and collaboration workflows.
- Improved CMake configuration to support necessary libraries for networking, including JSON and OpenSSL.
2025-10-04 22:40:44 -04:00
scawful
13bbe8078a feat: Enhance GUI action generation and testing for AI tile placement
- Introduced `GuiActionGenerator` class to convert high-level AI actions into executable GUI test scripts, supporting JSON output for automated testing.
- Added comprehensive test suite for AI tile placement commands, validating command parsing and generated test scripts.
- Updated `README.md` to reflect recent enhancements and completed features in the project.
- Improved CMake configuration to include new source files for GUI action generation and related services.
2025-10-04 22:23:31 -04:00
scawful
9d5919adb5 feat: Add AI action parser for natural language command processing
- Introduced `AIActionParser` class to parse natural language commands into structured GUI actions, supporting commands like placing tiles and opening editors.
- Implemented helper functions for extracting coordinates and parsing hex/decimal values.
- Added action types for various AI actions, including selecting and placing tiles, saving changes, and clicking buttons.
- Created header file `ai_action_parser.h` to define the action types and parser interface.
- Added implementation file `ai_action_parser.cc` with command parsing logic and pattern matching for different action types.
2025-10-04 22:19:09 -04:00
scawful
61f1d6fbac feat: Update function schemas and system prompt for enhanced agent capabilities
- Revised function schemas in `function_schemas.json` to streamline resource listing and searching, including new parameters for dungeon and overworld queries.
- Introduced a new system prompt in `system_prompt_v3.txt` to improve the agent's proactive exploration and multi-tool chaining strategies.
- Updated `GeminiAIService` to support the new prompt version and enhanced function calling logic for better tool integration.
- Added tests for multimodal image analysis and error handling in `test_gemini_vision.cc` to ensure robust functionality.
2025-10-04 22:14:04 -04:00
scawful
e83235ee1a feat: Implement learn command for agent tool with knowledge management features
- Introduced the `agent learn` command to manage learned knowledge, including user preferences, ROM patterns, project context, and conversation memory.
- Added functionality for setting, getting, listing preferences, and managing project contexts.
- Implemented memory storage and retrieval, allowing the agent to remember past conversations and key facts.
- Enhanced CLI output with usage instructions and error handling for the learn command.
- Created a new `LearnedKnowledgeService` to handle persistent data storage and retrieval.
2025-10-04 22:10:58 -04:00
scawful
9b51cd09f6 feat: Enhance AgentChatWidget with system prompt management and project settings
- Updated system prompt loading functionality to support both version 1 and version 2 prompts, allowing users to load built-in prompts directly.
- Implemented custom system prompt loading and saving capabilities, enabling users to manage their prompts more effectively.
- Added methods to load and save agent settings from/to project files, including AI provider configurations and custom prompts.
- Improved user feedback with toast notifications for successful and failed operations related to system prompts and settings.
2025-10-04 21:37:56 -04:00
scawful
85bc14e93e feat: Add overworld sprite and entrance commands to agent tool
- Implemented new commands for listing overworld sprites and retrieving entrance details.
- Enhanced CLI functionality to support filtering by map, world, and sprite ID with JSON and text output formats.
- Introduced tile statistics analysis command for detailed tile usage insights.
- Updated function schemas and system prompts to reflect the new commands and their parameters.
2025-10-04 21:27:10 -04:00
scawful
f38946118c feat: Implement message handling commands for agent tool
- Added functionality for listing, reading, and searching messages in the ROM.
- Introduced new commands: `message-list`, `message-read`, and `message-search` with appropriate parameters and descriptions.
- Enhanced the CLI to support these commands, including JSON and text output formats.
- Updated system prompts and function schemas to reflect the new message handling capabilities.
2025-10-04 20:53:13 -04:00
scawful
712ed8dbf4 feat: Add Windows compatibility for curl command execution in GeminiAIService
- Implemented conditional compilation for executing curl commands using _popen and _pclose on Windows.
- Ensured consistent handling of command execution across different operating systems.
- Updated response generation methods to maintain functionality in Windows environments.
2025-10-04 20:00:31 -04:00
scawful
588db01df6 feat: Improve CMake configuration and build environment verification
- Enabled JSON support by default in CMake to resolve Windows build issues.
- Added checks for the existence of the JSON library and its target, providing clear error messages if missing.
- Updated README with instructions for building with AI features.
- Enhanced the build environment verification script for better feedback on setup issues and added checks for agent folder structure.
- Introduced new CMake presets for AI-enabled builds and collaboration support.
2025-10-04 19:43:05 -04:00
scawful
fbbe911ae0 feat: Expand collaborative session capabilities in Z3ED documentation
- Updated README.md to include detailed instructions for both local and network collaboration modes.
- Added setup requirements and steps for starting a collaboration server using Node.js.
- Enhanced feature descriptions for real-time collaboration, session management, and participant tracking.
- Improved clarity on how to host and join sessions in both collaboration modes.
2025-10-04 17:31:36 -04:00
scawful
cc99fc2ae9 feat: Enhance AgentChatWidget with network collaboration features and UI improvements
- Added support for selecting between local and network collaboration modes in the AgentChatWidget.
- Implemented a UI for entering server URL and managing session details.
- Updated collaboration state management to include server URL and connection status.
- Improved layout of the collaboration panel with a table for session details and controls.
- Integrated a simple WebSocket client for handling network communication.
- Added CLI commands for starting and checking the status of the collaboration server.
2025-10-04 17:29:48 -04:00
scawful
59ef5fb8bf feat: Add collaborative chat sessions and multimodal vision support in Z3ED 2025-10-04 16:56:43 -04:00
scawful
3735a0d4a7 feat: Enhance agent chat widget with history management and proposal handling 2025-10-04 14:05:36 -04:00
scawful
6990e565b8 feat: Enhance chat command with multiple output formats and improve help documentation
- Updated the chat command to support new output formats: text, markdown, json, and compact.
- Modified the agent configuration to include output format settings.
- Enhanced the command line interface to handle new format options and provide detailed usage instructions.
- Improved the message printing logic in SimpleChatSession to format output based on the selected format.
- Added JSON and Markdown formatting for session metrics and messages.
- Updated help documentation to reflect changes in command usage and available options.
2025-10-04 13:33:19 -04:00
scawful
4b61b213c0 feat: Add resource search and dungeon room description commands
- Implemented `resource-search` command to allow fuzzy searching of resource labels.
- Added `dungeon-describe-room` command to summarize metadata for a specified dungeon room.
- Enhanced `agent` command handler to support new commands and updated usage documentation.
- Introduced read-only accessors for room metadata in the Room class.
- Updated AI service to recognize and handle new commands for resource searching and room description.
- Improved metrics tracking for user interactions, including command execution and response times.
- Enhanced TUI to display command metrics and session summaries.
2025-10-04 12:00:51 -04:00
scawful
acada1bec5 feat: Add proposal executor for agent response handling and command execution 2025-10-04 05:18:09 -04:00
scawful
8deb2656d5 feat: Enhance AI service with verbose logging and command help
- Added a `--verbose` flag to enable detailed debug output for the Gemini AI service.
- Updated `GeminiAIService` constructor to log initialization details when verbose mode is enabled.
- Modified `CreateAIService` to pass the verbose flag to the Gemini configuration.
- Enhanced command help in `ModernCLI` to categorize commands and provide detailed descriptions.
- Refactored `HandleSimpleChatCommand` to accept a pointer to `Rom` instead of a reference.
- Updated `ShowCategoryHelp` to display command categories and examples.
- Improved error handling and logging in `GeminiAIService` for better debugging.
2025-10-04 04:28:44 -04:00
scawful
9ab2d2bde8 feat: Implement context and follow-up queries for agent interactions and enhance simple chat command with quiet mode support 2025-10-04 03:49:40 -04:00
scawful
2a6f7d5c15 feat: Add support for prompt versioning and function calling in Gemini AI service 2025-10-04 03:42:22 -04:00
scawful
fe7b9053c7 feat: Enhance Gemini AI service with OpenSSL initialization and improved error handling 2025-10-04 03:36:42 -04:00
scawful
9acd6ba17f feat: Enhance system prompt JSON schema and clarify tool result formatting in conversational agent 2025-10-04 03:19:28 -04:00
scawful
10a2713465 feat: Add configuration options for conversational agent, including verbosity, reasoning display, and tool iteration limits 2025-10-04 03:07:32 -04:00
scawful
2931634837 feat: Enhance AI agent capabilities with new tool calling instructions, improved response handling, and terminal color utilities 2025-10-04 03:04:22 -04:00
scawful
f39ce79048 feat: Enhance simple chat command to support multiple input modes including batch files and single messages 2025-10-04 02:29:15 -04:00
scawful
2fb96cbbfd feat: Add AI service configuration flags and update service factory for improved flexibility 2025-10-04 02:22:02 -04:00