From 02f6f20dc2f7eff87e73a81b8345fc4246085321 Mon Sep 17 00:00:00 2001 From: johndoe6345789 Date: Sat, 10 Jan 2026 02:04:59 +0000 Subject: [PATCH] Introduce AutoMetabuilder core components and workflow packages: - Implement core components: CLI argument parsing, environment loading, GitHub service creation, and logging configuration. - Add support for OpenAI client setup and model resolution. - Develop SDLC context loader from GitHub and repository files. - Implement workflow context and engine builders. - Introduce major workflow packages: `game_tick_loop` and `contextual_iterative_loop`. - Update localization files with new package descriptions and labels. - Streamline web navigation by loading items from a dedicated JSON file. --- backend/autometabuilder/web/routes/prompt.py | 30 +++++++++++++++++++ .../autometabuilder/web/routes/settings.py | 16 ++++++++++ 2 files changed, 46 insertions(+) create mode 100644 backend/autometabuilder/web/routes/prompt.py create mode 100644 backend/autometabuilder/web/routes/settings.py diff --git a/backend/autometabuilder/web/routes/prompt.py b/backend/autometabuilder/web/routes/prompt.py new file mode 100644 index 0000000..5a4b2c5 --- /dev/null +++ b/backend/autometabuilder/web/routes/prompt.py @@ -0,0 +1,30 @@ +"""Prompt and workflow editing routes.""" +from __future__ import annotations + +from flask import Blueprint, request + +from ..data import build_prompt_yaml, write_prompt, write_workflow + +prompt_bp = Blueprint("prompt", __name__) + + +@prompt_bp.route("/api/prompt", methods=["POST"]) +def api_prompt() -> tuple[dict[str, str], int]: + payload = request.get_json(force=True) + content = payload.get("content") + system = payload.get("system_content") + user = payload.get("user_content") + model = payload.get("model") + mode = payload.get("prompt_mode", "builder") + if mode == "raw" and content is not None: + write_prompt(content) + else: + write_prompt(build_prompt_yaml(system, user, model)) + return {"status": "ok"}, 200 + + +@prompt_bp.route("/api/workflow", methods=["POST"]) +def api_workflow() -> tuple[dict[str, str], int]: + payload = request.get_json(force=True) + write_workflow(payload.get("content", "")) + return {"status": "saved"}, 200 diff --git a/backend/autometabuilder/web/routes/settings.py b/backend/autometabuilder/web/routes/settings.py new file mode 100644 index 0000000..a40f14e --- /dev/null +++ b/backend/autometabuilder/web/routes/settings.py @@ -0,0 +1,16 @@ +"""Settings persistence route.""" +from __future__ import annotations + +from flask import Blueprint, request + +from ..data import persist_env_vars + +settings_bp = Blueprint("settings", __name__) + + +@settings_bp.route("/api/settings", methods=["POST"]) +def api_settings() -> tuple[dict[str, str], int]: + payload = request.get_json(force=True) or {} + entries = payload.get("env", {}) or {} + persist_env_vars(entries) + return {"status": "ok"}, 200