claude-controller 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/postinstall.sh +96 -15
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-controller",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Claude Code headless daemon controller — FIFO-based async task dispatch, Git Worktree isolation, auto-checkpointing, and a web dashboard",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "choiwon",
|
package/postinstall.sh
CHANGED
|
@@ -1,30 +1,111 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
# ============================================================
|
|
3
|
-
# postinstall — npm install 후 런타임
|
|
3
|
+
# postinstall — npm install 후 런타임 디렉토리, 권한, 의존성 자동 설정
|
|
4
4
|
# ============================================================
|
|
5
|
-
set -
|
|
5
|
+
set -uo pipefail
|
|
6
6
|
|
|
7
7
|
CONTROLLER_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
8
8
|
|
|
9
|
-
#
|
|
9
|
+
# ── 색상 ──
|
|
10
|
+
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; CYAN='\033[0;36m'; BOLD='\033[1m'; NC='\033[0m'
|
|
11
|
+
|
|
12
|
+
ok() { printf " ${GREEN}✓${NC} %s\n" "$1"; }
|
|
13
|
+
warn() { printf " ${YELLOW}!${NC} %s\n" "$1"; }
|
|
14
|
+
fail() { printf " ${RED}✗${NC} %s\n" "$1"; }
|
|
15
|
+
info() { printf " ${CYAN}→${NC} %s\n" "$1"; }
|
|
16
|
+
|
|
17
|
+
echo ""
|
|
18
|
+
printf " ${BOLD}claude-controller${NC} setup\n"
|
|
19
|
+
echo " ─────────────────────────────────"
|
|
20
|
+
|
|
21
|
+
# ── 1. 런타임 디렉토리 생성 ──
|
|
10
22
|
for dir in logs sessions data queue worktrees uploads certs; do
|
|
11
23
|
mkdir -p "${CONTROLLER_DIR}/${dir}"
|
|
12
24
|
done
|
|
25
|
+
ok "런타임 디렉토리 생성 완료"
|
|
13
26
|
|
|
14
|
-
#
|
|
27
|
+
# ── 2. 실행 권한 부여 ──
|
|
15
28
|
chmod +x "${CONTROLLER_DIR}/bin/"* 2>/dev/null || true
|
|
16
29
|
chmod +x "${CONTROLLER_DIR}/service/"*.sh 2>/dev/null || true
|
|
30
|
+
ok "실행 권한 설정 완료"
|
|
17
31
|
|
|
32
|
+
# ── 3. Claude CLI 확인/설치 ──
|
|
33
|
+
CLAUDE_FOUND=false
|
|
34
|
+
if command -v claude &>/dev/null; then
|
|
35
|
+
CLAUDE_VER=$(claude --version 2>/dev/null | head -1)
|
|
36
|
+
ok "Claude CLI 감지: ${CLAUDE_VER}"
|
|
37
|
+
CLAUDE_FOUND=true
|
|
38
|
+
else
|
|
39
|
+
warn "Claude CLI가 설치되어 있지 않습니다"
|
|
40
|
+
info "자동 설치 시도: npm i -g @anthropic-ai/claude-code"
|
|
41
|
+
if npm i -g @anthropic-ai/claude-code 2>/dev/null; then
|
|
42
|
+
CLAUDE_VER=$(claude --version 2>/dev/null | head -1)
|
|
43
|
+
ok "Claude CLI 설치 완료: ${CLAUDE_VER}"
|
|
44
|
+
CLAUDE_FOUND=true
|
|
45
|
+
else
|
|
46
|
+
fail "Claude CLI 자동 설치 실패"
|
|
47
|
+
warn "수동 설치: npm i -g @anthropic-ai/claude-code"
|
|
48
|
+
warn "권한 오류 시: sudo npm i -g @anthropic-ai/claude-code"
|
|
49
|
+
fi
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
# ── 4. python3 확인 ──
|
|
53
|
+
PYTHON_FOUND=false
|
|
54
|
+
if command -v python3 &>/dev/null; then
|
|
55
|
+
PY_VER=$(python3 --version 2>/dev/null)
|
|
56
|
+
ok "Python3 감지: ${PY_VER}"
|
|
57
|
+
PYTHON_FOUND=true
|
|
58
|
+
else
|
|
59
|
+
fail "python3를 찾을 수 없습니다 (웹 대시보드에 필요)"
|
|
60
|
+
warn "macOS: brew install python3"
|
|
61
|
+
warn "Ubuntu: sudo apt install python3"
|
|
62
|
+
fi
|
|
63
|
+
|
|
64
|
+
# ── 5. 기본 설정 파일 생성 ──
|
|
65
|
+
SETTINGS_FILE="${CONTROLLER_DIR}/data/settings.json"
|
|
66
|
+
if [[ ! -f "$SETTINGS_FILE" ]]; then
|
|
67
|
+
cat > "$SETTINGS_FILE" << 'SETTINGS'
|
|
68
|
+
{
|
|
69
|
+
"skip_permissions": true,
|
|
70
|
+
"allowed_tools": "Bash,Read,Write,Edit,Glob,Grep,Agent,NotebookEdit,WebFetch,WebSearch",
|
|
71
|
+
"model": "",
|
|
72
|
+
"max_jobs": 10,
|
|
73
|
+
"checkpoint_interval": 5,
|
|
74
|
+
"target_repo": "",
|
|
75
|
+
"base_branch": "main",
|
|
76
|
+
"append_system_prompt": "",
|
|
77
|
+
"web_port": 3100,
|
|
78
|
+
"auth_required": false
|
|
79
|
+
}
|
|
80
|
+
SETTINGS
|
|
81
|
+
ok "기본 설정 파일 생성: data/settings.json"
|
|
82
|
+
else
|
|
83
|
+
ok "기존 설정 파일 유지"
|
|
84
|
+
fi
|
|
85
|
+
|
|
86
|
+
# ── 결과 ──
|
|
18
87
|
echo ""
|
|
19
|
-
echo "
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
echo "
|
|
24
|
-
|
|
25
|
-
echo "
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
88
|
+
echo " ─────────────────────────────────"
|
|
89
|
+
|
|
90
|
+
if $CLAUDE_FOUND && $PYTHON_FOUND; then
|
|
91
|
+
printf " ${GREEN}${BOLD}설치 완료! 바로 실행하세요:${NC}\n"
|
|
92
|
+
echo ""
|
|
93
|
+
printf " ${BOLD}claude-start${NC}\n"
|
|
94
|
+
echo ""
|
|
95
|
+
info "웹 대시보드: http://localhost:3100"
|
|
96
|
+
info "CLI 전송: claude-send \"프롬프트\""
|
|
97
|
+
info "셸 모드: claude-sh"
|
|
98
|
+
else
|
|
99
|
+
printf " ${YELLOW}${BOLD}설치 완료 (일부 의존성 누락)${NC}\n"
|
|
100
|
+
echo ""
|
|
101
|
+
if ! $CLAUDE_FOUND; then
|
|
102
|
+
warn "Claude CLI 설치 후 실행: npm i -g @anthropic-ai/claude-code"
|
|
103
|
+
fi
|
|
104
|
+
if ! $PYTHON_FOUND; then
|
|
105
|
+
warn "python3 설치 필요 (웹 대시보드용)"
|
|
106
|
+
fi
|
|
107
|
+
echo ""
|
|
108
|
+
info "의존성 설치 후: claude-start"
|
|
109
|
+
fi
|
|
110
|
+
|
|
30
111
|
echo ""
|