Initial upload
This commit is contained in:
80
recipes/ai/builder-agent/install.sh
Normal file
80
recipes/ai/builder-agent/install.sh
Normal file
@@ -0,0 +1,80 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
ensure_root
|
||||
detect_pkg_manager
|
||||
pkg_install curl
|
||||
pkg_install git || true
|
||||
|
||||
if ask_to_install "Builder-Agent"; then
|
||||
echo ""
|
||||
read -rp "Ollama Router Base-URL (z.B. http://192.168.3.21:11437): " ROUTER_URL
|
||||
ROUTER_URL=${ROUTER_URL:-http://localhost:11437}
|
||||
echo ""
|
||||
read -rp "Projektverzeichnis (leer = auto-detect): " PROJECT_DIR
|
||||
if [ -z "${PROJECT_DIR}" ]; then
|
||||
if git rev-parse --show-toplevel >/dev/null 2>&1; then
|
||||
PROJECT_DIR="$(git rev-parse --show-toplevel)"
|
||||
else
|
||||
PROJECT_DIR="$(pwd)"
|
||||
fi
|
||||
fi
|
||||
PROJECT_DIR="$(readlink -f "${PROJECT_DIR}")"
|
||||
BASE="/srv/ai/builder"
|
||||
$SUDO mkdir -p "${BASE}"
|
||||
$SUDO tee "${BASE}/builder.yml" >/dev/null <<'EOF'
|
||||
name: Builder-Agent
|
||||
language: de
|
||||
autonomy: soft
|
||||
endpoint: "${ROUTER_URL}"
|
||||
models:
|
||||
planner: "llama3.1:8b-instruct"
|
||||
reasoner: "huihui_ai/deepseek-r1-abliterated:14b"
|
||||
coder_primary: "qwen2.5-coder:14b"
|
||||
coder_secondary: "deepseek-coder-v2:16b"
|
||||
cpu_fallback: "qwen2.5-coder:7b"
|
||||
workspace:
|
||||
project_dir: "${PROJECT_DIR}"
|
||||
tests:
|
||||
enabled: true
|
||||
force_languages: []
|
||||
prompts:
|
||||
system: |
|
||||
Du bist ein Builder-Agent (soft). Ziel: Probleme lösen mit minimaler Rückfrage.
|
||||
Strategie:
|
||||
1) Plane kurz (ToDo-Liste), dann implementiere iterativ im Workspace.
|
||||
2) Führe nach jedem Schritt Tests/Lints aus (falls verfügbar). Repariere Fehler selbstständig.
|
||||
3) Schreibe klare Commits; dokumentiere Änderungen kompakt in CHANGELOG.md.
|
||||
4) Nur bei sicherheitsrelevanten/zerstörerischen Aktionen Rückfrage.
|
||||
Liefere am Ende: TL;DR + nächste Schritte.
|
||||
EOF
|
||||
$SUDO sed -i "s|\${ROUTER_URL}|${ROUTER_URL}|g; s|\${PROJECT_DIR}|${PROJECT_DIR}|g" "${BASE}/builder.yml"
|
||||
$SUDO tee "${BASE}/run_tests.sh" >/dev/null <<'EOF'
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
ROOT="${1:-.}"
|
||||
cd "${ROOT}"
|
||||
if [ -f "requirements.txt" ] || ls -1 **/requirements.txt >/dev/null 2>&1; then
|
||||
command -v pytest >/dev/null 2>&1 && pytest -q || true
|
||||
fi
|
||||
if [ -f "package.json" ]; then
|
||||
if npm run | grep -q "test"; then npm test --silent || true; fi
|
||||
if npm run | grep -q "lint"; then npm run lint --silent || true; fi
|
||||
if npm run | grep -q "typecheck"; then npm run typecheck --silent || true; fi
|
||||
fi
|
||||
if [ -f "composer.json" ]; then
|
||||
if [ -f "vendor/bin/pest" ]; then vendor/bin/pest || true
|
||||
elif [ -f "vendor/bin/phpunit" ]; then vendor/bin/phpunit || true
|
||||
fi
|
||||
fi
|
||||
if [ -f "Dockerfile" ]; then
|
||||
docker build -q -t tmp-builder-test . || true
|
||||
fi
|
||||
if command -v shellcheck >/dev/null 2>&1; then
|
||||
find . -type f -name "*.sh" -print0 | xargs -0 -r shellcheck || true
|
||||
fi
|
||||
EOF
|
||||
$SUDO chmod +x "${BASE}/run_tests.sh"
|
||||
echo "✅ Builder-Agent konfiguriert unter ${BASE} (Workspace: ${PROJECT_DIR})"
|
||||
else
|
||||
log "${YELLOW}⏭ Builder-Agent übersprungen.${NC}"
|
||||
fi
|
||||
Reference in New Issue
Block a user