chore: Update botserver with tool call fix and add startup scripts
Some checks failed
BotServer CI / build (push) Failing after 9s

- botserver: Fix tool call handling across multiple LLM response chunks
- botserver: Add SELECT/CASE to match expression conversion
- Add restart.sh: Automated botserver and botui startup script
- Add start-and-unseal.sh: Vault startup and unsealing script

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Rodrigo Rodriguez 2026-02-16 09:30:53 +00:00
parent 8ef5ec7d68
commit 282892505a
3 changed files with 86 additions and 1 deletions

@ -1 +1 @@
Subproject commit 4ca7e5da40a3d642bfc1af5fb65b709550c93e59 Subproject commit c264ad1294a4b62db9ad007c5675b66f48165a30

59
restart.sh Executable file
View file

@ -0,0 +1,59 @@
#!/bin/bash
set -e
echo "🛑 Stopping existing processes..."
pkill -f "botserver --noconsole" || true
pkill -f botui || true
pkill -f rustc || true
# Note: PostgreSQL, Vault, and Valkey are managed by botserver bootstrap, don't kill them
echo "🧹 Cleaning logs..."
rm -f botserver.log botui.log
echo "🔨 Building botserver..."
cargo build -p botserver
echo "🔨 Building botui..."
cargo build -p botui
echo "🗄️ Starting PostgreSQL..."
./botserver-stack/bin/tables/bin/postgres -D botserver-stack/data/tables/pgdata -c config_file=botserver-stack/conf/postgresql.conf > botserver-stack/logs/tables/postgres.log 2>&1 &
echo " PostgreSQL PID: $!"
sleep 2
echo "🔑 Starting Valkey (cache)..."
./botserver-stack/bin/cache/valkey-server --daemonize no --dir botserver-stack/data/cache > /dev/null 2>&1 &
echo " Valkey started"
sleep 2
echo "🚀 Starting botserver..."
export VAULT_ADDR="https://localhost:8200"
export VAULT_TOKEN="hvs.JjKHlEzycO2jvKdhhlRAoODu"
export VAULT_CACERT="./botserver-stack/conf/system/certificates/ca/ca.crt"
export VAULT_CACHE_TTL="300"
RUST_LOG=info ./target/debug/botserver --noconsole > botserver.log 2>&1 &
BOTSERVER_PID=$!
echo "⏳ Waiting for Vault to start (unsealing in background)..."
(
sleep 8
echo "🔓 Unsealing Vault..."
UNSEAL_KEY=$(python3 -c "import json; print(json.load(open('botserver-stack/conf/vault/init.json'))['unseal_keys_b64'][0])" 2>/dev/null)
if [ -n "$UNSEAL_KEY" ]; then
curl -s --cacert botserver-stack/conf/system/certificates/ca/ca.crt \
-X POST \
-H "X-Vault-Token: hvs.JjKHlEzycO2jvKdhhlRAoODu" \
-d "{\"key\": \"$UNSEAL_KEY\"}" \
https://localhost:8200/v1/sys/unseal 2>/dev/null && echo "✅ Vault unsealed" || echo "⚠️ Unseal failed"
else
echo "⚠️ Could not extract unseal key"
fi
) &
echo "🚀 Starting botui..."
BOTSERVER_URL="http://localhost:8080" ./target/debug/botui > botui.log 2>&1 &
BOTUI_PID=$!
echo "✅ Started botserver (PID: $BOTSERVER_PID) and botui (PID: $BOTUI_PID)"
echo "📊 Monitor with: tail -f botserver.log botui.log"
echo "🌐 Access at: http://localhost:3000"

26
start-and-unseal.sh Executable file
View file

@ -0,0 +1,26 @@
#!/bin/bash
set -e
echo "🔓 Unsealing Vault..."
UNSEAL_KEY="$(cat botserver-stack/conf/vault/init.json | grep -o '"unseal_keys_b64":\["[^"]*"' | cut -d'"' -f4)"
# Wait for Vault to start
for i in {1..30}; do
if curl -sfk --cacert botserver-stack/conf/system/certificates/ca/ca.crt \
https://localhost:8200/v1/sys/health > /dev/null 2>&1; then
echo "✅ Vault is running"
break
fi
echo "⏳ Waiting for Vault... ($i/30)"
sleep 1
done
# Unseal Vault
echo "🔓 Unsealing..."
curl -s --cacert botserver-stack/conf/system/certificates/ca/ca.crt \
-X POST \
-H "X-Vault-Token: hvs.JjKHlEzycO2jvKdhhlRAoODu" \
-d "{\"key\": \"$UNSEAL_KEY\"}" \
https://localhost:8200/v1/sys/unseal
echo "✅ Vault unsealed"