#!/usr/bin/env python3 """ build_quantum.py — Generate all BOB quantum civilization binding files via Nemotron (free) and push directly to sov-kernel-monster. """ import requests, base64, os, json, re from concurrent.futures import ThreadPoolExecutor, as_completed PAT = os.environ.get("PAT_TOKEN", "GH_PAT_REDACTED") OR_KEY = os.environ.get("OPENROUTER_API_KEY", "OPENROUTER_KEY_REDACTED") ORG = "SNAPKITTYWEST" REPO = "sov-kernel-monster" HDR = {"Authorization": f"token {PAT}"} MODEL = "nvidia/nemotron-3-ultra-550b-a55b:free" def ask(prompt): for model in [MODEL, "qwen/qwen-2.5-coder-32b-instruct"]: try: r = requests.post("https://openrouter.ai/api/v1/chat/completions", headers={"Authorization": f"Bearer {OR_KEY}", "HTTP-Referer": "https://snapkittywest.io"}, json={"model": model, "messages": [{"role":"user","content":prompt}], "temperature": 0.1, "max_tokens": 8192}, timeout=300) data = r.json() if "error" not in data: return data["choices"][0]["message"]["content"] except: pass return "" def push(path, content, msg="feat(quantum): add binding file"): if isinstance(content, str): content = content.encode("utf-8") r = requests.get(f"https://api.github.com/repos/{ORG}/{REPO}/contents/{path}", headers=HDR) sha = r.json().get("sha","") if r.status_code == 200 else "" body = {"message": msg, "content": base64.b64encode(content).decode()} if sha: body["sha"] = sha r = requests.put(f"https://api.github.com/repos/{ORG}/{REPO}/contents/{path}", headers=HDR, json=body) return r.status_code def clean(result): m = re.search(r'```[\w]*\n(.*?)```', result, re.DOTALL) if m: return m.group(1).strip() m2 = re.search(r'^(import |from |module |defmodule |package |use |#include| (energy,entropy), energy(lat), entropy(lat), measure(state,rng;collapse) -> Int64, measure_shots(state,num_shots,rng) -> (counts,probs), normalize!(state), add_term!(H,matrix,coeff,qubits), expectation(H,state), evolve_exact!(state,H,dt), evolve_trotter!(state,H,dt,order=2), evolve_krylov!(state,H,dt,k=20). export all. Output ONLY Julia code."""), ("elixir/lib/bob_quantum.ex", """Write complete Elixir OTP bridge for BOB Quantum Civilization Engine (500+ lines). File: elixir/lib/bob_quantum.ex Use Rustler NIF declarations for all C ABI functions. GenServer wrappers: BobQuantum.RNG, BobQuantum.Lattice, BobQuantum.State — each with start_link, init, handle_call. RNG: uniform/1, normal/2, integer/3. Lattice: evolve/2 -> {energy, entropy}, energy/1, entropy/1. State: measure/2, amplitudes/1, normalize/1. Module BobQuantum with @spec declarations and defdelegate. Output ONLY Elixir code."""), ("nats/bob_subjects.go", """Write complete NATS message bus schema for BOB Quantum Civilization Engine (400+ lines). File: nats/bob_subjects.go Package bob. All subject constants: bob.lattice.create/evolve/energy/entropy, bob.state.create/measure/measure_shots, bob.hamiltonian.create/add_term/expectation, bob.evolve.exact/trotter/krylov, bob.rng.create/uniform/normal, bob.circuit.qft/grover/qpe, bob.proof.check/compile, bob.plasma.enforce/verify, bob.swarm.task.claim/complete, bob.bifrost.log/verify. All JSON payload structs for request/response pairs. Client struct with NewClient(urls) and Request(subject, req, resp, timeout) methods. Output ONLY Go code."""), ("rust/bob-quantum-sys/src/lib.rs", """Write complete Rust FFI crate for BOB Quantum Civilization Engine (800+ lines). File: rust/bob-quantum-sys/src/lib.rs #![allow non_upper_case_globals, non_camel_case_types, non_snake_case] Opaque types: bob_rng_t, bob_lattice_t, bob_state_t, bob_hamiltonian_t as *mut c_void. Error constants BOB_SUCCESS through BOB_ERROR_INVALID_GATE. #[link(name="bob_quantum")] extern "C" block with ALL function signatures. Safe wrappers: RNG, Lattice, State, Hamiltonian structs with Drop impls. BobError enum with From and Display. Complex64 = num_complex::Complex. All methods return Result. Output ONLY Rust code."""), ("rust/bob-quantum-sys/Cargo.toml", """Write Cargo.toml for bob-quantum-sys crate. [package] name="bob-quantum-sys" version="0.1.0" edition="2021" [lib] link-lib="bob_quantum" [dependencies] num-complex="0.4" libc="0.2" [build-dependencies] cc="1.0" Output ONLY TOML."""), ("smalltalk/BobQuantum.st", """Write complete Smalltalk bindings for BOB Quantum Civilization Engine (800+ lines). Pharo-compatible. Classes: BobQuantumLibrary (singleton, loads libbob_quantum.so via FFI), BobRNG, BobLattice, BobState, BobHamiltonian, BobQuantumWorld. Use Pharo ExternalFunction and ExternalAddress for C ABI calls. BobQuantumWorld: createLattice:ny:nz:coupling:, runSimulation:steps:dt:, visualize. Output ONLY Smalltalk code."""), ("r/bob_quantum.R", """Write complete R bindings for BOB Quantum Civilization Engine (600+ lines). Use .Call() to C ABI. Functions: bob.rng.create(seed), bob.rng.uniform(rng), bob.rng.normal(rng,mean,sd), bob.lattice.create(nx,ny,nz,coupling,seed,periodic), bob.lattice.evolve(lattice,dt), bob.lattice.energy(lattice), bob.lattice.entropy(lattice), bob.state.create(num_qubits), bob.state.measure(state,rng,collapse), bob.state.measure_shots(state,num_shots,rng), bob.hamiltonian.create(num_qubits), bob.hamiltonian.add_term(h,matrix,coeff,qubits), bob.hamiltonian.expectation(h,state). ggplot2 visualization: plot_entropy_evolution(), plot_state_probabilities(), plot_lattice_energy(). Output ONLY R code."""), ("include/bob_quantum.h", """Write complete C header for BOB Quantum Civilization Engine. File: include/bob_quantum.h #pragma once, #include , #include Opaque handle typedefs. Error code enum BOB_ERROR_*. ALL function declarations matching Fortran bind(C) exports: bob_rng_create/destroy/seed/uniform/normal/integer, bob_lattice_create/destroy/evolve/get_energy/entanglement_entropy, bob_state_create/destroy/normalize/get_amplitude/set_amplitude/measure/measure_qubit/measure_shots, bob_hamiltonian_create/destroy/add_term/expectation, bob_evolve_exact/trotter/krylov, bob_error_string/get_last_error. extern "C" guards. Output ONLY C header."""), ("CMakeLists.txt", """Write complete CMakeLists.txt for BOB Quantum Civilization Engine. cmake_minimum_required(VERSION 3.20). project(sov-kernel-monster Fortran C). Find gfortran. Build libbob_quantum.so from all src/*.f90 with -std=f2018 -O3 -fPIC -march=native. add_library(bob_quantum SHARED src/*.f90). set_target_properties with VERSION 1.0.0. install targets. enable_testing(). add_subdirectory(tests) if exists. Output ONLY CMake."""), ("fpm.toml", """Write fpm.toml for BOB Quantum Civilization Engine. name = "sov-kernel-monster" version = "1.0.0" license = "Apache-2.0" [build] auto-executables=false auto-tests=true [fortran] implicit-typing=false implicit-external=false source-form="free" [library] source-dir="src" Extra flags: -O3 -march=native -fPIC -std=f2018 Output ONLY TOML."""), ("build.py", """Write build.py — master build orchestrator for BOB Quantum Civilization Engine. Builds: 1) libbob_quantum.so via cmake, 2) Rust crate via cargo, 3) Fortran tests via fpm, 4) Julia package test, 5) Elixir mix compile, 6) R CMD build, 7) Lean4 lake build, 8) Go NATS build. argparse: --release, --test, --lang LANG (build single language), --all. Uses subprocess, pathlib, shutil. Colored output via print with ANSI codes. Output ONLY Python code."""), (".github/workflows/build.yml", """Write .github/workflows/build.yml for BOB Quantum Civilization Engine. name: Build All Languages. on: push, pull_request. jobs: build on ubuntu-latest. Steps: checkout, setup gfortran (sudo apt-get install gfortran), setup rust (rustup), setup julia (julia-actions/setup-julia@v1), setup elixir (erlef/setup-beam@v1), setup R (r-lib/actions/setup-r@v2), install lake via elan, setup go, cmake build, cargo build, fpm test, julia test, mix test, R CMD check, lake build. Cache: cargo, julia depot, R packages. Output ONLY YAML."""), ("docs/quantum_world.svg", """Create an interactive animated SVG for BOB Quantum Civilization Engine. viewBox="0 0 1200 800". Self-contained. Use SMIL animations. Show: 1. Central Fortran quantum kernel (gold hexagon, pulsing glow animation) 2. 7 language bindings in orbit: Julia (purple), Elixir (violet), Rust (orange), Lean4 (green), Smalltalk (blue), R (teal), NATS/Go (cyan) — each as labeled circle orbiting the center 3. Animated data flow arrows between them (animateMotion along orbit paths) 4. 4x4 quantum lattice grid in bottom-left with vortex nodes (circles changing color based on quantum state) 5. Born rule probability bars animating in bottom-right 6. PLASMA GATE hexagon barrier in top-right with particle flow animation 7. Title: BOB Quantum Civilization Engine Colors: quantum blue #0A84FF, gold #FFD60A, green #30D158, red #FF453A, background #000000 Output ONLY SVG starting with {path}") result = ask(prompt) if not result or len(result) < 50: print(f" ✗ {path}: empty response") return path, False code = clean(result) status = push(path, code, f"feat(quantum): {path} — BOB civilization engine") ok = status in (200, 201) print(f" {'OK' if ok else 'FAIL'} {path}: HTTP {status} ({len(code)} chars)") return path, ok print(f"BOB Quantum Civilization Engine — {len(TASKS)} files") print(f"Target: https://github.com/{ORG}/{REPO}") print() results = {} with ThreadPoolExecutor(max_workers=4) as pool: futures = {pool.submit(process, t): t[0] for t in TASKS} for f in as_completed(futures): path, ok = f.result() results[path] = ok pushed = sum(1 for v in results.values() if v) print(f"\nDone: {pushed}/{len(TASKS)} files pushed to {ORG}/{REPO}")