ASTAROTH0405 commited on
Commit
848a39b
·
verified ·
1 Parent(s): cc9fb9b

Create start.sh

Browse files
Files changed (1) hide show
  1. start.sh +104 -0
start.sh ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ # Configurar un límite alto de file descriptors para evitar colapsos por Playwright y subagentes
5
+ ulimit -n 65536 2>/dev/null || true
6
+
7
+ echo "=========================================================="
8
+ echo " INICIALIZANDO AGENT ZERO EN HUGGING FACE SPACES"
9
+ echo "=========================================================="
10
+
11
+ # Definición de rutas operacionales
12
+ DATA_USR="/data/usr"
13
+ DATA_VENV_A0="/data/venv-a0"
14
+ DATA_VENV_EXEC="/data/venv"
15
+ REPO_DIR="/data/agent-zero-repo"
16
+
17
+ # Asegurar la propiedad de los archivos en tiempo de ejecución para el usuario UID 1000
18
+ chown -R agent:agent /data 2>/dev/null || true
19
+
20
+ # 1. Inicialización quirúrgica del directorio de usuario /a0/usr
21
+ if; then
22
+ echo "📦 Inicializando datos de usuario estructurados en /data/usr..."
23
+ mkdir -p "$DATA_USR"
24
+ if [ -d /a0/usr ]; then
25
+ cp -a /a0/usr/. "$DATA_USR/" 2>/dev/null || true
26
+ fi
27
+ fi
28
+
29
+ # 2. Mitigación Crítica ENXIO: Eliminación de sockets UNIX residuales antes de actualizaciones/backups
30
+ echo "🧹 Purgando sockets UNIX activos o huérfanos de escritorio en /data/usr para evitar fallos de compresión..."
31
+ find "$DATA_USR" -type s -delete 2>/dev/null || true
32
+
33
+ # 3. Inicialización del entorno virtual de Framework persistente
34
+ if; then
35
+ echo "📦 Copiando entorno virtual del framework (/opt/venv-a0) a /data/venv-a0..."
36
+ mkdir -p "$DATA_VENV_A0"
37
+ cp -a /opt/venv-a0/. "$DATA_VENV_A0/" 2>/dev/null || true
38
+ fi
39
+
40
+ # 4. Inicialización del entorno virtual de Ejecución persistente (Habilidades del agente)
41
+ if; then
42
+ echo "📦 Copiando entorno virtual del agente (/opt/venv) a /data/venv..."
43
+ mkdir -p "$DATA_VENV_EXEC"
44
+ cp -a /opt/venv/. "$DATA_VENV_EXEC/" 2>/dev/null || true
45
+ fi
46
+
47
+ # 5. Sincronización de Repositorio Resistente a Modificaciones Locales
48
+ if; then
49
+ echo "🔄 Detectado repositorio existente de Agent Zero. Sincronizando parches del desarrollador..."
50
+ git config --global --add safe.directory "$REPO_DIR"
51
+
52
+ # Resguardar posibles prompts locales o herramientas modificadas por el agente en caliente
53
+ echo "💾 Salvaguardando modificaciones locales mediante Auto-Stash..."
54
+ git -C "$REPO_DIR" stash push -u -m "a0-auto-stash-startup" 2>/dev/null || true
55
+
56
+ # Intentar descargar de manera segura los cambios del núcleo upstream
57
+ if! git -C "$REPO_DIR" pull origin main; then
58
+ echo "⚠️ Advertencia: Conflicto severo en git pull. Realizando restablecimiento forzado para mantener estabilidad..."
59
+ git -C "$REPO_DIR" reset --hard origin/main
60
+ fi
61
+
62
+ # Devolver los prompts modificados localmente tras la actualización limpia
63
+ git -C "$REPO_DIR" stash pop 2>/dev/null || true
64
+ else
65
+ echo "📦 Clonando código base oficial de Agent Zero en volumen persistente..."
66
+ rm -rf "$REPO_DIR"
67
+ git clone https://github.com/agent0ai/agent-zero.git "$REPO_DIR"
68
+ git config --global --add safe.directory "$REPO_DIR"
69
+ fi
70
+
71
+ # Ajustar permisos globales del código descargado para UID 1000
72
+ chown -R agent:agent "$REPO_DIR"
73
+
74
+ # 6. Vinculación lógica inequívoca de rutas efímeras a volúmenes persistentes
75
+ echo "🔗 Estructurando enlaces simbólicos quirúrgicos para desviar escrituras efímeras..."
76
+ rm -rf /git/agent-zero /a0/usr /opt/venv-a0 /opt/venv
77
+
78
+ ln -sfn "$REPO_DIR" /git/agent-zero
79
+ ln -sfn "$DATA_USR" /a0/usr
80
+ ln -sfn "$DATA_VENV_A0" /opt/venv-a0
81
+ ln -sfn "$DATA_VENV_EXEC" /opt/venv
82
+
83
+ # Asegurar la propiedad de los accesos directos simbólicos para evitar fallas lógicas de resolución
84
+ chown -h agent:agent /git/agent-zero /a0/usr /opt/venv-a0 /opt/venv
85
+ chown -R agent:agent /data/usr /data/venv-a0 /data/venv
86
+
87
+ # Diagnóstico de almacenamiento
88
+ echo "📊 Diagnóstico de ocupación física en volumen persistente:"
89
+ du -sh /data/ 2>/dev/null || echo "No se pudo calcular la ocupación de disco"
90
+ echo "=========================================================="
91
+
92
+ # 7. Ejecución de la UI web bajo identidad estricta no privilegiada
93
+ cd /git/agent-zero
94
+ export HOME=/home/agent USER=agent LOGNAME=agent
95
+
96
+ PYTHON_CMD="/opt/venv-a0/bin/python"
97
+ if; then
98
+ echo "❌ Error Catastrófico: Intérprete de Python no ejecutable en /opt/venv-a0"
99
+ exit 1
100
+ fi
101
+
102
+ echo "🚀 Iniciando servidor de interfaz de usuario de Agent Zero en puerto $PORT..."
103
+ exec setpriv --reuid=1000 --regid=1000 --clear-groups \
104
+ "$PYTHON_CMD" run_ui.py --host 0.0.0.0 --port "$PORT" --dockerized=True