- intent_service.py: PERSONA_FULL/PERSONA_LOCAL 상수 정의 + GET /persona 엔드포인트 추가 - 기존 ID_SYSTEM_PROMPT (반말) 제거, PERSONA_LOCAL (존댓말)로 교체 - [자아], [기능 범위] 섹션 추가로 Opus 거짓 응답 방지 - n8n: Call Qwen/Haiku/Opus 3개 노드 → /persona 엔드포인트 런타임 fetch로 전환 - 각 노드에 httpGet 함수 + fallback 프롬프트 추가 - Haiku의 [기능 범위] 별도 추가 코드 제거 (PERSONA_FULL에 이미 포함) - docker-compose.yml: INTENT_SERVICE_URL 환경변수 추가 - manage_services.sh: intent-service를 SERVICES 배열에 추가 - init/migrate-v8.sql: DB ai_configs/prompts 표시용 동기화 - init/init.sql: 시드 데이터 동기화 + "표시용" 주석 추가 - docs/architecture.md: 페르소나 섹션 업데이트 (단일 소스 명시) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
85 lines
2.2 KiB
Bash
Executable File
85 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# manage_services.sh — LaunchAgent 일괄 관리
|
|
# 사용법: ./manage_services.sh status | start | stop | restart
|
|
|
|
SERVICES=(
|
|
"com.syn-chat-bot.chat-bridge"
|
|
"com.syn-chat-bot.heic-converter"
|
|
"com.syn-chat-bot.caldav-bridge"
|
|
"com.syn-chat-bot.kb-writer"
|
|
"com.syn-chat-bot.morning-briefing"
|
|
"com.syn-chat-bot.mail-bridge"
|
|
"com.syn-chat-bot.inbox-processor"
|
|
"com.syn-chat-bot.intent-service"
|
|
"com.syn-chat-bot.news-digest"
|
|
"com.mlx-proxy"
|
|
)
|
|
|
|
PLIST_DIR="$HOME/Library/LaunchAgents"
|
|
SRC_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
|
|
case "$1" in
|
|
status)
|
|
for s in "${SERVICES[@]}"; do
|
|
if launchctl list "$s" &>/dev/null; then
|
|
pid=$(launchctl list "$s" 2>/dev/null | awk 'NR==2{print $1}')
|
|
echo "✓ $s: LOADED (PID: ${pid:-?})"
|
|
else
|
|
echo "✗ $s: NOT LOADED"
|
|
fi
|
|
done
|
|
;;
|
|
start)
|
|
for s in "${SERVICES[@]}"; do
|
|
plist="$PLIST_DIR/${s}.plist"
|
|
src="$SRC_DIR/${s}.plist"
|
|
if [ ! -f "$plist" ] && [ -f "$src" ]; then
|
|
cp "$src" "$plist"
|
|
echo " Copied $s.plist to LaunchAgents"
|
|
fi
|
|
if [ -f "$plist" ]; then
|
|
launchctl load "$plist" 2>/dev/null
|
|
echo "✓ $s: started"
|
|
else
|
|
echo "✗ $s: plist not found"
|
|
fi
|
|
done
|
|
;;
|
|
stop)
|
|
for s in "${SERVICES[@]}"; do
|
|
plist="$PLIST_DIR/${s}.plist"
|
|
if [ -f "$plist" ]; then
|
|
launchctl unload "$plist" 2>/dev/null
|
|
echo "✓ $s: stopped"
|
|
fi
|
|
done
|
|
;;
|
|
restart)
|
|
"$0" stop
|
|
sleep 1
|
|
"$0" start
|
|
;;
|
|
install)
|
|
echo "Installing plist files to $PLIST_DIR..."
|
|
for s in "${SERVICES[@]}"; do
|
|
src="$SRC_DIR/${s}.plist"
|
|
if [ -f "$src" ]; then
|
|
cp "$src" "$PLIST_DIR/"
|
|
echo " ✓ $s"
|
|
else
|
|
echo " ✗ $s: source plist not found"
|
|
fi
|
|
done
|
|
echo "Done. Run '$0 start' to start services."
|
|
;;
|
|
*)
|
|
echo "Usage: $0 {status|start|stop|restart|install}"
|
|
echo ""
|
|
echo " status - Show service status"
|
|
echo " start - Load and start all services"
|
|
echo " stop - Unload all services"
|
|
echo " restart - Stop then start"
|
|
echo " install - Copy plist files to ~/Library/LaunchAgents"
|
|
;;
|
|
esac
|