#!/bin/bash
# ensure-bot-memory.sh - 봇 세션 memory 디렉토리 자동 생성
#
# 각 봇 세션마다 Claude Code가 다른 프로젝트 해시를 생성하는 문제 해결.
# 아누의 MEMORY.md를 심링크하여 모든 봇이 동일한 memory를 참조.
#
# 실행 시간: 100ms 이내 목표

set -euo pipefail

# 원본 MEMORY.md 경로 (아누)
SOURCE_MEMORY="$HOME/.claude/projects/-home-jay--cokacdir-workspace-autoset/memory/MEMORY.md"

# 현재 working directory에서 프로젝트 해시 추출
# 예: /home/jay/.cokacdir/workspace/autoset → -home-jay--cokacdir-workspace-autoset
# 예: /home/jay/.cokacdir/workspace/dev1-team → -home-jay--cokacdir-workspace-dev1-team

# 방법 1: PWD에서 직접 해시 생성
if [[ -n "${PWD:-}" ]]; then
    # 경로를 Claude Code 프로젝트 해시 형식으로 변환
    # 규칙: / → -, 선행 - 추가, . → -
    PROJECT_HASH="-$(echo "$PWD" | sed 's/^\///; s/\//-/g; s/\./-/g')"
else
    # PWD가 없으면 종료
    exit 0
fi

# 대상 memory 경로
TARGET_DIR="$HOME/.claude/projects/$PROJECT_HASH/memory"
TARGET_MEMORY="$TARGET_DIR/MEMORY.md"

# 이미 심링크가 존재하면 스킵 (빠른 종료)
if [[ -L "$TARGET_MEMORY" ]]; then
    exit 0
fi

# 디렉토리 생성 (없으면)
mkdir -p "$TARGET_DIR" 2>/dev/null || true

# 원본 MEMORY.md가 없으면 빈 파일 생성
if [[ ! -f "$SOURCE_MEMORY" ]]; then
    mkdir -p "$(dirname "$SOURCE_MEMORY")" 2>/dev/null || true
    touch "$SOURCE_MEMORY" 2>/dev/null || true
fi

# 심링크 생성 (이미 존재하면 스킵)
if [[ ! -e "$TARGET_MEMORY" ]]; then
    ln -s "$SOURCE_MEMORY" "$TARGET_MEMORY" 2>/dev/null || true
fi

exit 0
