Oasis 0.9.5 con Karvan para escritorio
Rama de desarrollo experimental sobre el Oasis de epsylon, sin afiliacion con el proyecto original. Base: 0.9.5. Trae el modulo Karvan —salas efimeras en memoria con autodestruccion por TTL, chat que funciona sin JavaScript y llamadas de audio y video sobre WebRTC— con el enlace en el menu lateral por el mismo patron que el resto de modulos: renderKarvanLink calcado de renderPollsLink, entrada en modules_view y en la lista de /modules. Los estilos del modulo van en su propia hoja, styles/karvan.css, siguiendo el patron de highlight.css: asi se ve igual con cualquier tema, sin depender del tema movil. Sin servidores ICE de terceros: no hay STUN de fabrica, porque un STUN aprende la IP publica y el momento de cada llamada. Solo candidatos host salvo que se configure un TURN propio en oasis-config.json, con credenciales efimeras por el mecanismo REST de coturn. El codigo propio vive separado —views/fork/, backend/fork_routes.js, models/karvan_model.js y translations/fork/— de modo que sobre los ficheros de upstream solo hay enganches de una linea y cada version nueva se integra sin arrastrar nada. Respecto al arbol de Android: fuera el wrapper y main.js, que es su arranque; el tema vuelve a Dark-SNH y se restauran los modulos que en movil se recortan por peso. Verificado arrancando sin OASIS_MOBILE: nueve rutas OK, menu lateral de upstream con 27 grupos y el enlace de Karvan, cero rastro de la interfaz movil (ni hexagonos, ni topbar, ni barra inferior), y una sala creada y servida.
This commit is contained in:
commit
ddd2787b73
286 changed files with 157145 additions and 0 deletions
128
install.sh
Normal file
128
install.sh
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
#!/bin/bash
|
||||
|
||||
cd src/server
|
||||
|
||||
printf "==========================\n"
|
||||
printf "|| OASIS Installer v0.5 ||\n"
|
||||
printf "==========================\n"
|
||||
|
||||
sudo apt-get install -y git curl tar
|
||||
|
||||
curl -sL http://deb.nodesource.com/setup_22.x | sudo bash -
|
||||
sudo apt-get install -y nodejs
|
||||
|
||||
GREEN=$'\e[32m'
|
||||
DIM=$'\e[2m'
|
||||
RESET=$'\e[0m'
|
||||
|
||||
echo ""
|
||||
echo "Installing Node.js packages..."
|
||||
echo ""
|
||||
|
||||
NPM_LOG=$(mktemp)
|
||||
if ! npm install . --silent --no-audit --no-fund --no-progress --loglevel=error >"$NPM_LOG" 2>&1; then
|
||||
echo "npm install failed. Output:"
|
||||
cat "$NPM_LOG"
|
||||
rm -f "$NPM_LOG"
|
||||
exit 1
|
||||
fi
|
||||
rm -f "$NPM_LOG"
|
||||
|
||||
DEPS=$(node -e "const p=require('./package.json'); console.log(Object.keys({...(p.dependencies||{}), ...(p.devDependencies||{})}).sort().join('\n'))" 2>/dev/null)
|
||||
for dep in $DEPS; do
|
||||
if [ -d "node_modules/$dep" ]; then
|
||||
printf " ${GREEN}[✓]${RESET} %s\n" "$dep"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
|
||||
npm audit fix --silent --no-fund --no-progress >/dev/null 2>&1 || true
|
||||
|
||||
MODEL_DIR="../AI"
|
||||
LLM_FILE="oasis-42-1-chat.Q4_K_M.gguf"
|
||||
LLM_TAR="$LLM_FILE.tar.gz"
|
||||
LLM_URL="https://solarnethub.com/code/models/$LLM_TAR"
|
||||
EMB_DIR="$MODEL_DIR/embeddings"
|
||||
EMB_TAR="oasis-embeddings.tar.gz"
|
||||
EMB_URL="https://solarnethub.com/code/models/$EMB_TAR"
|
||||
EMB_FILE="$EMB_DIR/onnx/model_quantized.onnx"
|
||||
CONFIG_PATH="../configs/oasis-config.json"
|
||||
|
||||
CHOICE="${OASIS_AI:-}"
|
||||
|
||||
if [ -z "$CHOICE" ] && [ -t 0 ]; then
|
||||
echo ""
|
||||
echo "Do you want to enable AI features in Oasis?"
|
||||
echo ""
|
||||
echo " [1] Full AI: chat assistant (42) + smart navigation prompt (~3.9 GB)"
|
||||
echo " [2] Smart navigation only (~150 MB)"
|
||||
echo " [3] No AI features (no downloads, AI tabs hidden)"
|
||||
echo ""
|
||||
read -p "Choose [1/2/3] (default 3): " ANS
|
||||
case "$ANS" in
|
||||
1) CHOICE="full" ;;
|
||||
2) CHOICE="nav" ;;
|
||||
*) CHOICE="none" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ -z "$CHOICE" ]; then
|
||||
CHOICE="none"
|
||||
fi
|
||||
|
||||
case "$CHOICE" in
|
||||
full)
|
||||
WANT_LLM=1
|
||||
WANT_EMB=1
|
||||
;;
|
||||
nav)
|
||||
WANT_LLM=0
|
||||
WANT_EMB=1
|
||||
;;
|
||||
*)
|
||||
WANT_LLM=0
|
||||
WANT_EMB=0
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "$WANT_LLM" = "1" ] && [ ! -f "$MODEL_DIR/$LLM_FILE" ]; then
|
||||
echo ""
|
||||
echo "downloading AI model [size: 3,8 GiB (4.081.004.224 bytes)] ..."
|
||||
curl -L -o "$MODEL_DIR/$LLM_TAR" "$LLM_URL"
|
||||
echo ""
|
||||
echo "extracting package: $LLM_TAR..."
|
||||
echo ""
|
||||
tar -xzf "$MODEL_DIR/$LLM_TAR" -C "$MODEL_DIR"
|
||||
rm "$MODEL_DIR/$LLM_TAR"
|
||||
fi
|
||||
|
||||
if [ "$WANT_EMB" = "1" ] && [ ! -f "$EMB_FILE" ]; then
|
||||
echo ""
|
||||
echo "downloading embeddings model [size: ~60 MiB] ..."
|
||||
curl -L -o "$MODEL_DIR/$EMB_TAR" "$EMB_URL"
|
||||
echo ""
|
||||
echo "extracting package: $EMB_TAR..."
|
||||
echo ""
|
||||
tar -xzf "$MODEL_DIR/$EMB_TAR" -C "$MODEL_DIR"
|
||||
rm "$MODEL_DIR/$EMB_TAR"
|
||||
fi
|
||||
|
||||
if [ -f "$CONFIG_PATH" ]; then
|
||||
AI_VAL="off"; NAV_VAL="off"
|
||||
[ "$WANT_LLM" = "1" ] && AI_VAL="on"
|
||||
[ "$WANT_EMB" = "1" ] && NAV_VAL="on"
|
||||
node -e "
|
||||
const fs = require('fs');
|
||||
const p = '$CONFIG_PATH';
|
||||
const cfg = JSON.parse(fs.readFileSync(p, 'utf8'));
|
||||
cfg.modules = cfg.modules || {};
|
||||
cfg.modules.aiMod = '$AI_VAL';
|
||||
cfg.modules.aiNavMod = '$NAV_VAL';
|
||||
fs.writeFileSync(p, JSON.stringify(cfg, null, 2) + '\n');
|
||||
"
|
||||
fi
|
||||
|
||||
printf "==========================\n"
|
||||
printf "\nOASIS has been correctly deployed! ;)\n\n"
|
||||
printf "Run: 'sh oasis.sh' to start ...\n\n"
|
||||
Loading…
Add table
Add a link
Reference in a new issue