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