synops/scripts/maskinrommet-env.sh
vegard 33a1b44946 Implementer Claude som chat-deltaker (Fase A: MVP)
Claude er nå en agent-node i grafen som kan delta i samtaler.
Når en bruker sender melding i en kommunikasjonsnode der Claude
er deltaker, enqueues en agent_respond-jobb som kaller claude CLI
direkte og skriver svaret tilbake til chatten.

Nye filer:
- migrations/007_agent_system.sql: agent_identities, agent_permissions, ai_usage_log
- maskinrommet/src/agent.rs: agent_respond job handler
- scripts/maskinrommet.service: systemd-tjeneste for native kjøring
- scripts/maskinrommet-env.sh: genererer env med Docker container-IPs

Endringer:
- intentions.rs: trigger agent_respond ved melding i agent-chat
- jobs.rs: dispatch agent_respond til agent-handler
- frontend chat: bot-badge (🤖) og amber-farge på agent-meldinger
- LiteLLM config: resonering-modellalias via OpenRouter

Maskinrommet kjører nå direkte på hosten (ikke i Docker) for å
ha tilgang til claude CLI. Caddy peker til host.docker.internal.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 19:20:17 +00:00

27 lines
1 KiB
Bash
Executable file

#!/usr/bin/env bash
# Genererer /tmp/maskinrommet.env med Docker container-IP-er.
# Kjøres av systemd ExecStartPre.
set -euo pipefail
ENV_FILE="/srv/synops/.env"
read_env() { grep "^$1=" "$ENV_FILE" | head -1 | cut -d= -f2; }
container_ip() { docker inspect "$1" --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'; }
PG_IP=$(container_ip sidelinja-postgres-1)
STDB_IP=$(container_ip sidelinja-spacetimedb-1)
WHISPER_IP=$(container_ip sidelinja-faster-whisper-1 2>/dev/null || echo "")
cat > /tmp/maskinrommet.env <<EOF
DATABASE_URL=postgres://$(read_env POSTGRES_USER):$(read_env POSTGRES_PASSWORD)@${PG_IP}:5432/synops
SPACETIMEDB_URL=http://${STDB_IP}:3000
SPACETIMEDB_DATABASE=$(read_env SPACETIMEDB_DATABASE)
SPACETIMEDB_TOKEN=$(read_env SPACETIMEDB_TOKEN)
AUTHENTIK_ISSUER=$(read_env AUTHENTIK_ISSUER)
AUTHENTIK_CLIENT_ID=$(read_env AUTHENTIK_CLIENT_ID)
BIND_ADDR=0.0.0.0:3100
CAS_ROOT=/srv/synops/media/cas
WHISPER_URL=http://${WHISPER_IP:-localhost}:8000
PROJECT_DIR=/home/vegard/synops
RUST_LOG=maskinrommet=debug,tower_http=debug
EOF