Commit Graph

2670 Commits

Author SHA1 Message Date
scawful
c2dd6498e2 feat: Implement object encoding/decoding for dungeon objects and add unit tests 2025-10-04 00:03:40 -04:00
scawful
e1304384bc feat: Add simple chat session implementation and integrate into build system 2025-10-04 00:02:01 -04:00
scawful
94cf867d36 feat: Add simple chat session for AI agent interaction and enhance message rendering 2025-10-03 23:55:08 -04:00
scawful
a6cdc651c3 feat: Implement AgentChatWidget for conversational AI interaction and add ASCII logo support 2025-10-03 23:43:19 -04:00
scawful
9fa9e2647c feat: Add comprehensive dungeon editing implementation plan for Yaze 2025-10-03 23:24:10 -04:00
scawful
ae3f1dea2f feat: Consolidate Z3ED AI build flags into a single master flag and improve error handling 2025-10-03 23:24:03 -04:00
scawful
602f1beec5 feat: Consolidate AI agent build flags and enhance JSON support handling 2025-10-03 23:19:37 -04:00
scawful
ad7c5f72b2 feat: Enhance conversation testing with ROM loading and verbose output options 2025-10-03 22:49:52 -04:00
scawful
57c8434ee1 feat: Add batch testing mode for conversational agent and implement conversation test cases 2025-10-03 22:27:55 -04:00
scawful
bcdb7b3ad0 feat: Implement LLM function calling schemas and enhance prompt builder with tool definitions 2025-10-03 22:20:29 -04:00
scawful
799d8117ed docs: Update roadmap and implementation plan to reflect progress on conversational agent and LLM integration 2025-10-03 22:17:38 -04:00
scawful
5123b0ee5f feat: Update CMake presets and test discovery to enhance test categorization and labeling 2025-10-03 22:08:07 -04:00
scawful
2c45453dd0 Implement recording functionality in agent test commands
- Added RecordingState structure to manage recording session details.
- Implemented SaveRecordingState and LoadRecordingState functions to handle recording state persistence.
- Enhanced HandleTestRecordCommand to support starting and stopping recording sessions with various options.
- Integrated gRPC calls for starting and stopping recordings in GuiAutomationClient.
- Updated ProposalRegistry to include sandbox directory and ROM path in ProposalMetadata.
- Implemented JSON parsing for Tile16Proposal to handle proposal creation from JSON input.
- Updated CMakeLists.txt to ensure proper linking of emulator targets.
2025-10-03 21:16:08 -04:00
scawful
5419633c52 refactor: Improve code readability by applying consistent formatting and using absl::StrContains for string checks 2025-10-03 21:11:51 -04:00
scawful
db227c9de5 feat: Update CMake configuration for Abseil and gRPC, enhance modular build support, and add CLI flag handling 2025-10-03 20:24:58 -04:00
scawful
c9f439207e feat: Enhance modular build support and update Abseil integration for macOS 2025-10-03 19:10:59 -04:00
scawful
c3eaace72c feat: Implement modular build system for Yaze
- Added option to enable modular build with `YAZE_USE_MODULAR_BUILD`.
- Updated CMake configuration to support modular libraries for core, editor, graphics, GUI, and emulator functionalities.
- Refactored existing libraries to separate concerns and improve build times.
- Introduced new utility library `yaze_util` for low-level utilities.
- Adjusted CI and release workflows to accommodate the new build system.
- Updated various source files to reflect new include paths and modular structure.
- Enhanced YAML configuration handling in the agent component.
2025-10-03 18:32:51 -04:00
scawful
60e9ea69ac Refactor CMake configuration by removing unused source files and adjusting target link libraries for core components 2025-10-03 17:00:52 -04:00
scawful
42c64db904 Add YAML support and enhance AI service context handling
- Integrated yaml-cpp library into the project for YAML file parsing.
- Updated ConversationalAgentService to set ROM context in AI services.
- Extended AIService interface with SetRomContext method for context injection.
- Implemented SetRomContext in GeminiAIService and OllamaAIService.
- Enhanced PromptBuilder to load resource catalogues from YAML files.
- Added functions to parse commands, tools, examples, and tile references from YAML.
- Improved error handling for loading YAML files and added search paths for catalogues.
- Updated CMake configuration to fetch yaml-cpp if not found.
- Modified vcpkg.json to include yaml-cpp as a dependency.
2025-10-03 16:44:29 -04:00
scawful
467b0926e5 Add Overworld tile search command and enhance related documentation
- Implemented `overworld-find-tile` command in the agent for searching tiles by ID.
- Updated `README.md` and `AGENT-ROADMAP.md` to reflect new command and usage.
- Enhanced `overworld_inspect` module with tile matching functionality.
2025-10-03 15:57:42 -04:00
scawful
21ef67c1ca Update CMake presets for agent testing and enhance roadmap documentation 2025-10-03 15:44:11 -04:00
scawful
8935363eae Implement Overworld Map Inspection Commands
- Added `OverworldDescribeMap` command to summarize metadata for a specified overworld map.
- Introduced `OverworldListWarps` command to list overworld entrances and holes with their coordinates.
- Refactored existing `overworld.cc` to utilize new helper functions for parsing and validation.
- Created `overworld_inspect.cc` and `overworld_inspect.h` to encapsulate map and warp-related functionalities.
- Updated `ModernCLI` to register new commands and handle their execution.
- Modified `tool_dispatcher.cc` to support dispatching the new commands.
- Updated CMake configuration to include new source files for the inspection commands.
2025-10-03 15:39:04 -04:00
scawful
720d55fc43 Enhance chat command functionality with ROM context integration and improve TUI initialization 2025-10-03 15:11:18 -04:00
scawful
3715ae98eb Enhance agent chat functionality with ROM context support and structured message rendering 2025-10-03 14:46:22 -04:00
scawful
dc6040551e Refine agent roadmap and README documentation for clarity and guidance on tool integration 2025-10-03 14:19:34 -04:00
scawful
b6ba7cb572 Add 'overworld find-tile' command for locating tile instances across maps 2025-10-03 14:12:05 -04:00
scawful
c7a7707d25 Enhance z3ed Agent Roadmap and CLI Reference with New Tool Commands and Chat Features 2025-10-03 13:51:01 -04:00
scawful
ba9f6533a4 Enhance AI Agent Integration and Tool Command Functionality
- Added support for JSON in CMake configuration for AI integrations.
- Implemented new tool commands: resource-list and dungeon-list-sprites.
- Created ToolDispatcher for managing tool command execution.
- Refactored CMake structure to include agent sources and improve build configuration.
- Updated agent roadmap and README documentation to reflect current status and next steps.
2025-10-03 13:34:54 -04:00
scawful
7c2bf8e1c7 Add ToolDispatcher for Enhanced Tool Call Management
- Introduced `ToolDispatcher` class to handle tool calls from the AI agent, allowing for dynamic execution of commands based on user requests.
- Updated `ConversationalAgentService` to integrate tool dispatching, enabling the agent to respond to tool calls and manage execution results.
- Enhanced `AgentResponse` structure to include a list of tool calls, facilitating communication between the AI and the tool dispatcher.
- Modified AI service implementations to parse and include tool calls in responses, improving the agent's interactive capabilities.

This commit significantly enhances the z3ed system's ability to manage and execute tool calls, paving the way for more complex interactions in ROM hacking.
2025-10-03 12:47:15 -04:00
scawful
208b9ade51 Integrate AI Agent Services and Chat Interface
- Added support for AI agent services, including `ConversationalAgentService`, to facilitate user interactions through a chat interface.
- Implemented `ChatTUI` for a terminal-based chat experience, allowing users to send messages and receive responses from the AI agent.
- Updated `EditorManager` to include options for displaying the agent chat widget and performance dashboard.
- Enhanced CMake configurations to include new source files for AI services and chat interface components.

This commit significantly expands the functionality of the z3ed system, paving the way for a more interactive and user-friendly experience in ROM hacking.
2025-10-03 12:39:48 -04:00
scawful
655c5547b2 Implement new agent commands for resource listing and dungeon sprite retrieval
- Added `HandleResourceListCommand` to list resources by type and format (table or JSON).
- Introduced `HandleDungeonListSpritesCommand` to retrieve and display sprites from specified dungeon rooms.
- Updated command handling in `agent.cc` to support new subcommands.
- Enhanced error handling for invalid inputs and missing ROM files.

This commit expands the functionality of the z3ed agent, enabling users to interact with game resources and dungeon sprites more effectively.
2025-10-03 10:09:53 -04:00
scawful
18eff96e61 Add z3ed Agent Roadmap Document
- Introduced a new `AGENT-ROADMAP.md` file outlining the strategic vision and implementation plan for the `z3ed` AI agent.
- Defined the core vision of transitioning to a conversational ROM hacking assistant with key features such as an interactive chat interface, ROM introspection, and contextual awareness.
- Detailed the technical implementation plan, including the development of a `ConversationalAgentService`, read-only tools for the agent, and user-facing TUI/GUI chat interfaces.
- Consolidated immediate priorities, short-term goals, and long-term vision for the agent's development.

This commit establishes a comprehensive roadmap for enhancing the z3ed agent's capabilities, paving the way for future AI-driven features and user interactions.
2025-10-03 10:06:31 -04:00
scawful
90ddc3d50c Refactor CLI Service Structure and Enhance AI Integration
- Restructured CLI service source files to improve organization, moving files into dedicated directories for better maintainability.
- Introduced new AI service components, including `AIService`, `MockAIService`, and `GeminiAIService`, to facilitate natural language command generation.
- Implemented `PolicyEvaluator` and `ProposalRegistry` for enhanced proposal management and policy enforcement in AI workflows.
- Updated CMake configurations to reflect new file paths and ensure proper linking of the restructured components.
- Enhanced test suite with new test workflow generation capabilities, improving the robustness of automated testing.

This commit significantly advances the architecture of the z3ed system, laying the groundwork for more sophisticated AI-driven features and streamlined development processes.
2025-10-03 09:54:27 -04:00
scawful
b89dcca93f Refactor Agent Commands and Enhance Resource Context Management
- Updated the immediate action plan to focus on integrating `Tile16ProposalGenerator` and `ResourceContextBuilder` into agent commands, improving command handling and proposal generation.
- Implemented the `SetTile` method in the `Overworld` class to facilitate tile modifications based on the current world context.
- Enhanced error handling in command execution to ensure robust feedback during ROM operations.
- Created new files for `Tile16ProposalGenerator` and `ResourceContextBuilder`, enabling structured management of tile changes and resource labels for AI prompts.

This commit advances the functionality of the z3ed system, laying the groundwork for more sophisticated AI-driven editing capabilities.
2025-10-03 09:35:49 -04:00
scawful
3473d37be4 Introduce Overworld & Dungeon AI Integration Plan
- Added a comprehensive plan for integrating AI-driven workflows in overworld and dungeon editing, focusing on visual editing and ResourceLabels awareness.
- Established a phased implementation approach, starting with SSL support and basic Tile16 command integration.
- Outlined success metrics for both overworld and dungeon editing, ensuring AI can effectively understand and manipulate game data.
- Created a new document detailing the strategic shift towards specialized AI workflows, enhancing the overall functionality of the z3ed system.

This commit sets the foundation for advanced AI capabilities in ROM editing, paving the way for future enhancements and user-friendly features.
2025-10-03 09:20:37 -04:00
scawful
923f5af068 feat: Add SSL/HTTPS support and enhance test command handling
- Introduced SSL/HTTPS support in `z3ed.cmake` for secure communication, required for Gemini API and future collaborative features.
- Added options for OpenSSL integration and macOS Keychain support.
- Expanded `test_commands.cc` with new command handlers for running, replaying, and managing tests, improving modularity and usability.
- Updated command usage messages for clarity and consistency.

This commit enhances the security and functionality of the CLI, paving the way for more robust features in future iterations.
2025-10-03 09:12:30 -04:00
scawful
758b0c0a35 fix: Refactor test command handling with modular structure and common utilities
- Added new `test_common` module with helper functions for prompting and input handling.
- Introduced `test_common.cc` and `test_common.h` for shared functionality across test commands.
- Updated `z3ed.cmake` to include `test_common` in the build process.
- Refactored `test_commands.cc` to utilize new common utilities for improved readability and maintainability.
- Adjusted paths for source files in the build configuration to ensure proper linking.

This commit lays the groundwork for a more organized and modular approach to handling test commands, facilitating future enhancements and maintenance.
2025-10-03 02:10:18 -04:00
scawful
ba12075ca9 Upgrade gemini model to 2.5-flash 2025-10-03 01:34:11 -04:00
scawful
ead4abbf33 feat: Add PromptBuilder for enhanced command prompting and examples 2025-10-03 01:32:18 -04:00
scawful
d875b45fcd feat(z3ed): Complete Phase 2 - Gemini AI service enhancement
Phase 2 Implementation Summary:
- Enhanced GeminiAIService with production-ready features
- Added GeminiConfig struct for flexible configuration
- Implemented health check system with graceful degradation
- Updated to Gemini v1beta API format
- Added robust JSON parsing with markdown stripping fallbacks
- Switched default model to gemini-1.5-flash (faster, cheaper)
- Enhanced error messages with actionable guidance
- Integrated into service factory with health checks
- Added comprehensive test infrastructure

Files Modified:
- src/cli/service/gemini_ai_service.h (added config struct)
- src/cli/service/gemini_ai_service.cc (rewritten for v1beta)
- src/cli/handlers/agent/general_commands.cc (factory update)
- docs/z3ed/LLM-IMPLEMENTATION-CHECKLIST.md (progress tracking)

Files Created:
- scripts/test_gemini_integration.sh (test suite)
- docs/z3ed/PHASE2-COMPLETE.md (implementation summary)
- docs/z3ed/LLM-PROGRESS-UPDATE.md (overall progress)

Build Status:  SUCCESS (macOS ARM64)
Test Status:  Graceful fallback validated
Pending: Real API key validation

See docs/z3ed/PHASE2-COMPLETE.md for details.
2025-10-03 01:16:39 -04:00
scawful
6cec21f7aa feat: Implement Ollama AI service integration with health checks and command generation 2025-10-03 01:00:28 -04:00
scawful
40a4e43db9 Add LLM integration summary and quickstart script for Ollama
- Created LLM-INTEGRATION-SUMMARY.md detailing the integration plan for Ollama, Gemini, and Claude.
- Updated README.md to reflect the shift in focus towards LLM integration.
- Added quickstart_ollama.sh script to facilitate testing of Ollama integration with z3ed.
2025-10-03 00:51:05 -04:00
scawful
287f04ffc4 feat: Implement CLI test suite commands with YAML support and interactive creation 2025-10-03 00:39:02 -04:00
scawful
fa831f8719 feat: Add test suite handling with loader and reporter integration 2025-10-03 00:22:45 -04:00
scawful
dbabb8bc39 feat: Add replay command handling with argument parsing and output formatting 2025-10-03 00:12:06 -04:00
scawful
107b681342 Implement test suite loading and reporting functionality
- Added `TestSuiteDefinition`, `TestGroupDefinition`, and `TestCaseDefinition` structures to represent test suite configurations.
- Implemented parsing logic for test suite definitions from a file in `test_suite_loader.cc` and `test_suite_loader.h`.
- Introduced `ReplayTestResult` structure in `gui_automation_client.h` to handle results from replaying tests.
- Added `ReplayTest` method in `GuiAutomationClient` to facilitate test replay functionality.
- Created `BuildTextSummary` and `BuildJUnitReport` functions in `test_suite_reporter.cc` for generating test reports.
- Implemented `WriteJUnitReport` function to save JUnit formatted reports to a specified output path.
- Enhanced error handling and logging throughout the new functionalities.
2025-10-03 00:03:38 -04:00
scawful
0447d6f8a1 feat: Implement auto-capture of screenshots and diagnostics on test failures
- Added a new helper function `CaptureHarnessScreenshot` to encapsulate SDL screenshot logic.
- Updated `ImGuiTestHarnessServiceImpl::Screenshot` to utilize the new screenshot helper.
- Enhanced `TestManager::CaptureFailureContext` to automatically capture screenshots and widget state on test failures.
- Introduced new fields in the `GetTestResultsResponse` proto for screenshot path, size, failure context, and widget state.
- Updated CLI and gRPC client to expose new diagnostic fields in test results.
- Ensured that screenshots are saved in a structured directory under the system's temp directory.
- Improved logging for auto-capture events, including success and failure messages.
2025-10-02 23:36:09 -04:00
scawful
c348f7f91f guard JSON serialization for widget state capture for cross platform 2025-10-02 23:16:15 -04:00
scawful
1f16361284 feat: Add widget state capture utilities and include JSON directory for testing 2025-10-02 22:54:02 -04:00
scawful
c202aa9fa4 feat: Enhance widget discovery with telemetry data and improve output formatting 2025-10-02 22:50:47 -04:00