#!/usr/bin/env bash
# Réassemble dist/lib/ depuis le build ql/b + recopie le prompt système.
# Ne rebuild PAS : lance d'abord le build dans ql/b (cmake+ninja, preset arm64-android-snapdragon).
# libkazeia_engine.so (bridge statique) se build à part via dist/CMakeLists.txt si jni/*.cpp change.
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
B="$HERE/../ql/b"
[ -d "$B/bin" ] || { echo "build absent: $B (cmake+ninja d'abord)"; exit 1; }

mkdir -p "$HERE/lib"
# runtime .so (ggml/llama/cpu/hexagon)
for f in libggml.so libggml-base.so libggml-cpu.so libggml-hexagon.so libllama.so; do
  cp -v "$B/bin/$f" "$HERE/lib/$f"
done
# skels HTP (sélection auto runtime -> V79 sur Pad3)
for v in 68 69 73 75 79 81; do
  cp -v "$B/ggml/src/ggml-hexagon/libggml-htp-v$v.so" "$HERE/lib/libggml-htp-v$v.so"
done
# libc++ NDK (bench/cli ; l'app fournit normalement le sien)
CPP=$(find "${ANDROID_NDK_ROOT:-/opt/Kazeia/android-ndk-r27d}" -name libc++_shared.so -path '*aarch64*' | head -1)
[ -n "$CPP" ] && cp -v "$CPP" "$HERE/lib/libc++_shared.so" || echo "warn: libc++_shared introuvable"

echo "OK. Rappel: libkazeia_engine.so (statique) = build séparé si jni/ a changé (dist/CMakeLists.txt)."
echo "Modèle q35-lmq4.gguf NON copié (2.38 GB, hors git): adb pull /data/local/tmp/kz-engine/q35-lmq4.gguf"
