import os, sys from flask import Flask, request, jsonify, render_template_string from src.core.watchdog import verify_vault, update_manifest from src.core.retrieval_engine import LocalRetrievalEngine from src.core.memory_engine import MemoryEngine from brain import get_ripple_payload app = Flask(__name__) @app.before_request def guard(): if not verify_vault(): return jsonify({"error": "Integrity violation: Knowledge vault tampered."}), 403 retriever = LocalRetrievalEngine() @app.route('/ripple', methods=['POST']) def ripple(): data = request.get_json(force=True) or {} text = data.get("text", "").strip() if not text: return jsonify({"error": "Null parameters"}), 400 try: return jsonify(get_ripple_payload(text)) except Exception as e: return jsonify({"error": str(e)}), 500 @app.route('/', methods=['GET']) def index(): template_path = os.path.join(os.getcwd(), "templates", "ripple.html") with open(template_path, 'r', encoding='utf-8') as f: return render_template_string(f.read()) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)