#!/usr/bin/env bash
# start_daemon.sh — Jarvis Lv2 常駐デーモンを独立起動する
# 録音と独立常駐させ、jsonl 更新があれば即応答。
# 実行方式は claude -p subprocess（Max 20xプラン枠・追加課金ゼロ）。
set -uo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PID_FILE="$SCRIPT_DIR/.daemon.pid"
LOG_DIR="$SCRIPT_DIR/logs"

mkdir -p "$LOG_DIR"

# 既存稼働チェック
if [[ -f "$PID_FILE" ]]; then
    EXISTING="$(cat "$PID_FILE")"
    if kill -0 "$EXISTING" 2>/dev/null; then
        echo "ℹ️  daemon は既に稼働中 (PID $EXISTING)。スキップ"
        exit 0
    else
        rm -f "$PID_FILE"
    fi
fi

TODAY="$(date +%Y-%m-%d)"
LOG_FILE="$LOG_DIR/daemon_${TODAY}.log"

cd "$SCRIPT_DIR"
nohup python3 -u jarvis_daemon.py >> "$LOG_FILE" 2>&1 &
DAEMON_PID=$!
echo "$DAEMON_PID" > "$PID_FILE"
disown "$DAEMON_PID" 2>/dev/null || true

sleep 2

if kill -0 "$DAEMON_PID" 2>/dev/null; then
    echo "⚡ daemon 起動完了 (PID $DAEMON_PID · log: $LOG_FILE)"
else
    echo "❌ daemon 起動失敗。ログ末尾:"
    tail -10 "$LOG_FILE" >&2
    rm -f "$PID_FILE"
    exit 1
fi
