| #!/bin/bash |
| |
| set -euo pipefail |
|
|
| SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" |
| BUILD_DIR="$SCRIPT_DIR/build" |
| DEST="/mnt/d/neuroflow-model/neuroflow/_core.cpython-311-x86_64-linux-gnu.so" |
| VENV_PYTHON="$HOME/.hermes/hermes-agent/venv/bin/python3" |
| PYBIND11_DIR="$($VENV_PYTHON -c 'import pybind11; print(pybind11.get_cmake_dir())')" |
| CRON_LEARN="bd007dc2fe14" |
| CRON_REPORT="5d4dac90ff0d" |
|
|
| echo "=== NeuroFlow C++ Build ===" |
|
|
| |
| echo "[1/5] Pausing cron jobs..." |
| hermes cron pause "$CRON_LEARN" 2>/dev/null || echo " ($CRON_LEARN already paused)" |
| hermes cron pause "$CRON_REPORT" 2>/dev/null || echo " ($CRON_REPORT already paused)" |
| sleep 2 |
|
|
| |
| echo "[2/5] Building with ninja..." |
| mkdir -p "$BUILD_DIR" |
| cd "$BUILD_DIR" |
| cmake .. -G Ninja \ |
| -DCMAKE_BUILD_TYPE=Release \ |
| -DNEUROFLOW_BUILD_TESTS=OFF \ |
| -DNEUROFLOW_BUILD_PYTHON=ON \ |
| -DPython3_EXECUTABLE="$VENV_PYTHON" \ |
| -Dpybind11_DIR="$PYBIND11_DIR" |
| ninja -j$(nproc) |
|
|
| |
| echo "[3/5] Deploying .so to neuroflow package..." |
| cp "$BUILD_DIR/_core.cpython-311-x86_64-linux-gnu.so" "$DEST" |
|
|
| |
| echo "[4/5] Verifying..." |
| "$VENV_PYTHON" -c " |
| import sys; sys.path.insert(0, '/mnt/d/neuroflow-model') |
| from neuroflow._core import create_multimodal |
| m = create_multimodal() |
| import numpy as np |
| x = np.random.randn(1, 512).astype(np.float32) |
| out = m.forward_text(x) |
| print(f' forward_text OK, output shape: {out.decision.shape}') |
| m.save('/tmp/nf_build_test.bin') |
| m2 = create_multimodal() |
| m2.load('/tmp/nf_build_test.bin') |
| print(' save/load roundtrip OK') |
| print(' ✅ Verification passed') |
| " |
|
|
| |
| echo "[5/5] Resuming cron jobs..." |
| hermes cron resume "$CRON_LEARN" 2>/dev/null || echo " ($CRON_LEARN already running)" |
| hermes cron resume "$CRON_REPORT" 2>/dev/null || echo " ($CRON_REPORT already running)" |
|
|
| echo "=== Build complete ===" |
|
|