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.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
#include "cli/service/ai_service.h"
|
||||
#include "cli/service/ai/ai_service.h"
|
||||
|
||||
namespace yaze {
|
||||
namespace cli {
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "cli/service/gemini_ai_service.h"
|
||||
#include "cli/service/ai/gemini_ai_service.h"
|
||||
|
||||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
@@ -6,8 +6,8 @@
|
||||
|
||||
#include "absl/status/status.h"
|
||||
#include "absl/status/statusor.h"
|
||||
#include "cli/service/ai_service.h"
|
||||
#include "cli/service/prompt_builder.h"
|
||||
#include "cli/service/ai/ai_service.h"
|
||||
#include "cli/service/ai/prompt_builder.h"
|
||||
|
||||
namespace yaze {
|
||||
namespace cli {
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "cli/service/ollama_ai_service.h"
|
||||
#include "cli/service/ai/ollama_ai_service.h"
|
||||
|
||||
#include <cstdlib>
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
|
||||
#include "absl/status/status.h"
|
||||
#include "absl/status/statusor.h"
|
||||
#include "cli/service/ai_service.h"
|
||||
#include "cli/service/prompt_builder.h"
|
||||
#include "cli/service/ai/ai_service.h"
|
||||
#include "cli/service/ai/prompt_builder.h"
|
||||
|
||||
namespace yaze {
|
||||
namespace cli {
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "cli/service/prompt_builder.h"
|
||||
#include "cli/service/ai/prompt_builder.h"
|
||||
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
@@ -248,9 +248,20 @@ std::string PromptBuilder::BuildConstraintsSection() {
|
||||
|
||||
std::string PromptBuilder::BuildContextSection(const RomContext& context) {
|
||||
std::ostringstream oss;
|
||||
|
||||
|
||||
oss << "# Current ROM Context\n\n";
|
||||
|
||||
|
||||
// Use ResourceContextBuilder if a ROM is available
|
||||
if (rom_ && rom_->is_loaded()) {
|
||||
if (!resource_context_builder_) {
|
||||
resource_context_builder_ = std::make_unique<ResourceContextBuilder>(rom_);
|
||||
}
|
||||
auto resource_context_or = resource_context_builder_->BuildResourceContext();
|
||||
if (resource_context_or.ok()) {
|
||||
oss << resource_context_or.value();
|
||||
}
|
||||
}
|
||||
|
||||
if (context.rom_loaded) {
|
||||
oss << "- **ROM Loaded:** Yes (" << context.rom_path << ")\n";
|
||||
} else {
|
||||
@@ -6,6 +6,8 @@
|
||||
#include <map>
|
||||
|
||||
#include "absl/status/statusor.h"
|
||||
#include "cli/service/resources/resource_context_builder.h"
|
||||
#include "app/rom.h"
|
||||
|
||||
namespace yaze {
|
||||
namespace cli {
|
||||
@@ -30,6 +32,8 @@ class PromptBuilder {
|
||||
public:
|
||||
PromptBuilder();
|
||||
|
||||
void SetRom(Rom* rom) { rom_ = rom; }
|
||||
|
||||
// Load z3ed command documentation from resources
|
||||
absl::Status LoadResourceCatalogue(const std::string& yaml_path);
|
||||
|
||||
@@ -62,6 +66,8 @@ class PromptBuilder {
|
||||
|
||||
void LoadDefaultExamples();
|
||||
|
||||
Rom* rom_ = nullptr;
|
||||
std::unique_ptr<ResourceContextBuilder> resource_context_builder_;
|
||||
std::map<std::string, std::string> command_docs_; // Command name -> docs
|
||||
std::vector<FewShotExample> examples_;
|
||||
int verbosity_ = 1;
|
||||
@@ -1,7 +1,7 @@
|
||||
// gui_automation_client.cc
|
||||
// Implementation of gRPC client for YAZE GUI automation
|
||||
|
||||
#include "cli/service/gui_automation_client.h"
|
||||
#include "cli/service/gui/gui_automation_client.h"
|
||||
|
||||
#include "absl/strings/str_cat.h"
|
||||
#include "absl/strings/str_format.h"
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "cli/service/policy_evaluator.h"
|
||||
#include "cli/service/planning/policy_evaluator.h"
|
||||
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "absl/strings/numbers.h"
|
||||
#include "absl/strings/str_format.h"
|
||||
#include "absl/strings/str_split.h"
|
||||
#include "cli/service/proposal_registry.h"
|
||||
#include "cli/service/planning/proposal_registry.h"
|
||||
|
||||
namespace yaze {
|
||||
namespace cli {
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "cli/service/proposal_registry.h"
|
||||
#include "cli/service/planning/proposal_registry.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <chrono>
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "cli/service/tile16_proposal_generator.h"
|
||||
#include "cli/service/planning/tile16_proposal_generator.h"
|
||||
|
||||
#include <sstream>
|
||||
#include <fstream>
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "cli/service/resource_catalog.h"
|
||||
#include "cli/service/resources/resource_catalog.h"
|
||||
|
||||
#include <sstream>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "cli/service/resource_context_builder.h"
|
||||
#include "cli/service/resources/resource_context_builder.h"
|
||||
|
||||
#include <sstream>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "cli/service/rom_sandbox_manager.h"
|
||||
#include "cli/service/rom/rom_sandbox_manager.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <cstdlib>
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
#include "absl/strings/string_view.h"
|
||||
#include "absl/time/time.h"
|
||||
#include "cli/service/gui_automation_client.h"
|
||||
#include "cli/service/gui/gui_automation_client.h"
|
||||
|
||||
namespace yaze {
|
||||
namespace cli {
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "cli/service/test_suite_loader.h"
|
||||
#include "cli/service/testing/test_suite_loader.h"
|
||||
|
||||
#include <filesystem>
|
||||
#include <fstream>
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
#include "absl/status/statusor.h"
|
||||
#include "absl/strings/string_view.h"
|
||||
#include "cli/service/test_suite.h"
|
||||
#include "cli/service/testing/test_suite.h"
|
||||
|
||||
namespace yaze {
|
||||
namespace cli {
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "cli/service/test_suite_reporter.h"
|
||||
#include "cli/service/testing/test_suite_reporter.h"
|
||||
|
||||
#include <filesystem>
|
||||
#include <fstream>
|
||||
@@ -4,7 +4,7 @@
|
||||
#include <string>
|
||||
|
||||
#include "absl/status/statusor.h"
|
||||
#include "cli/service/test_suite.h"
|
||||
#include "cli/service/testing/test_suite.h"
|
||||
|
||||
namespace yaze {
|
||||
namespace cli {
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "cli/service/test_suite_writer.h"
|
||||
#include "cli/service/testing/test_suite_writer.h"
|
||||
|
||||
#include <filesystem>
|
||||
#include <fstream>
|
||||
@@ -4,7 +4,7 @@
|
||||
#include <string>
|
||||
|
||||
#include "absl/status/status.h"
|
||||
#include "cli/service/test_suite.h"
|
||||
#include "cli/service/testing/test_suite.h"
|
||||
|
||||
namespace yaze {
|
||||
namespace cli {
|
||||
@@ -1,7 +1,7 @@
|
||||
// test_workflow_generator.cc
|
||||
// Implementation of natural language to test workflow conversion
|
||||
|
||||
#include "cli/service/test_workflow_generator.h"
|
||||
#include "cli/service/testing/test_workflow_generator.h"
|
||||
|
||||
#include "absl/strings/ascii.h"
|
||||
#include "absl/strings/match.h"
|
||||
Reference in New Issue
Block a user