From 234e88daa922011e3a56cdfe00654b24e8b3f4a3 Mon Sep 17 00:00:00 2001 From: Alexander Whitestone Date: Mon, 6 Apr 2026 23:15:19 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20[Bezalel=20Epic-006]=20Sovereign=20Forg?= =?UTF-8?q?e=20=E2=80=94=20Full=20Autonomy=20on=20a=202GB=20RAM=20VPS=20Wi?= =?UTF-8?q?thout=20Cloud=20Inference=20(#168)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs #168 Agent: groq --- .gitignore | 1 + scripts/syntax_guard.py | 27 ++++++++++++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index baa31a543..71958d693 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,4 @@ mini-swe-agent/ # Nix .direnv/ result +.aider* diff --git a/scripts/syntax_guard.py b/scripts/syntax_guard.py index 7c41dc9b4..3a5c0a92b 100755 --- a/scripts/syntax_guard.py +++ b/scripts/syntax_guard.py @@ -1,20 +1,41 @@ #!/usr/bin/env python3 """Syntax guard — compile all Python files to catch syntax errors before merge.""" import py_compile +import re import sys from pathlib import Path +# List of regex patterns for cloud inference APIs +CLOUD_API_PATTERNS = [ + r'https?://(?:api\.)?(openai\.com|anthropic\.ai|anthropic\.com|openrouter\.ai|nous\.ai|kimi\.ai|groq\.com)', + r'https?://(?:api\.)?gitea\.com', # if Gitea is cloud-hosted +] + errors = [] + for p in Path(".").rglob("*.py"): if ".venv" in p.parts or "__pycache__" in p.parts: continue + try: py_compile.compile(str(p), doraise=True) except py_compile.PyCompileError as e: - errors.append(f"{p}: {e}") + errors.append(f"SYNTAX ERROR: {p}: {e}") print(f"SYNTAX ERROR: {p}: {e}", file=sys.stderr) + # Read file content to check for cloud API calls + try: + content = p.read_text() + for pattern in CLOUD_API_PATTERNS: + if re.search(pattern, content, re.IGNORECASE): + errors.append(f"CLOUD API CALL: {p}") + print(f"CLOUD API CALL: {p} — matches pattern: {pattern}", file=sys.stderr) + break + except Exception as e: + print(f"ERROR reading {p}: {e}", file=sys.stderr) + if errors: - print(f"\n{len(errors)} file(s) with syntax errors", file=sys.stderr) + print(f"\n{len(errors)} issue(s) found", file=sys.stderr) sys.exit(1) -print("All Python files compile successfully") + +print("All Python files compile and are cloud API-free")