Prune legacy setup service scaffolding

This commit is contained in:
ejclaw
2026-04-08 07:38:06 +09:00
parent 0e016395c6
commit 67cb2fa5fc
13 changed files with 22 additions and 619 deletions

View File

@@ -1,15 +1,16 @@
---
name: setup
description: Run initial EJClaw setup for the dual-service Discord architecture.
description: Run initial EJClaw setup for the unified single-service Discord architecture.
---
# EJClaw Setup
설치는 `bash setup.sh`로 부트스트랩하고, 나머지는 `bun run setup -- --step <name>`으로 진행합니다. 현재 기준 채널은 디스코드만 지원합니다.
EJClaw는 두 개의 서비스로 구성됩니다:
- **ejclaw** — Claude Code 봇 (`@claude`)
- **ejclaw-codex** — Codex 봇 (`@codex`) — `.env.codex` 파일이 있으면 자동 설치
EJClaw는 현재 **단일 서비스**로 동작합니다:
- **ejclaw** — 통합 런타임 서비스
Claude가 기본 봇으로 동작하고, Codex는 별도 서비스가 아니라 필요 시 내부 러너/역할 라우팅으로 사용됩니다.
## 1. 부트스트랩
@@ -34,7 +35,7 @@ bun run setup -- --step environment
## 3. 필수 환경 변수
### Claude 서비스 (.env)
### 기본 환경 변수 (.env)
`.env`에 최소한 아래 값이 있어야 합니다.
@@ -51,18 +52,10 @@ CLAUDE_CODE_OAUTH_TOKENS=token1,token2 # 다중 계정 자동 로테이션
GROQ_API_KEY=... # Discord 음성 전사 (Groq Whisper)
```
### Codex 서비스 (.env.codex)
Codex 봇을 함께 운영하려면 `.env.codex`를 만듭니다. 이 파일이 있으면 `--step service`가 자동으로 `ejclaw-codex` 서비스도 설치합니다.
Codex 관련 선택 설정은 **별도 서비스 파일이 아니라 같은 `.env` 또는 서비스 환경 변수**에 넣습니다:
```bash
DISCORD_BOT_TOKEN=... # Codex 봇 토큰 (Claude와 별도)
```
Codex 서비스의 추가 설정은 systemd 유닛에서 `Environment=` 라인으로 지정하거나 `.env.codex`에 추가합니다:
```bash
# systemd 유닛 또는 .env.codex에 추가 가능
# 같은 .env 또는 서비스 Environment=에 추가 가능
CODEX_MODEL=gpt-5.4
CODEX_EFFORT=xhigh
OPENAI_API_KEY=...
@@ -91,15 +84,17 @@ bun run setup -- --step runners
- `runners/agent-runner` (Claude Code)
- `runners/codex-runner` (Codex)
서비스는 하나지만, 내부 역할 라우팅과 paired 흐름에서 두 러너를 모두 쓸 수 있어서 둘 다 빌드합니다.
실패하면 보통 `bun run build:runners` 출력과 각 러너의 `package.json` 의존성을 같이 보면 됩니다.
## 5. 디스코드 채널 등록
먼저 디스코드에서 개발자 모드를 켜고 채널 ID를 복사합니다. 등록 JID는 `dc:<channel_id>` 형식입니다.
듀얼 서비스에서는 **같은 채널을 두 번 등록**할 수 있습니다 — 각 agent type에 한 번씩. 등록은 `(jid, agent_type)` 복합 키로 저장됩니다.
채널 등록은 기본적으로 한 번 하면 됩니다.
Claude 봇 채널 등록:
예시:
```bash
bun run setup -- --step register -- \
@@ -111,18 +106,6 @@ bun run setup -- --step register -- \
--no-trigger-required
```
Codex 봇도 같은 채널을 쓴다면 별도로 등록합니다:
```bash
ASSISTANT_NAME=codex bun run setup -- --step register -- \
--jid dc:123456789012345678 \
--name "My Server #general" \
--folder discord_main \
--trigger @codex \
--is-main \
--no-trigger-required
```
보조 채널 예시:
```bash
@@ -140,24 +123,22 @@ bun run setup -- --step service
```
이 명령은:
- **ejclaw** 서비스를 항상 설치합니다
- `.env.codex`가 있으면 **ejclaw-codex** 서비스도 함께 설치합니다
- **ejclaw** 서비스를 설치하고 시작합니다
플랫폼별:
- Linux (systemd): `~/.config/systemd/user/ejclaw.service` + `ejclaw-codex.service`
- macOS: `~/Library/LaunchAgents/com.ejclaw.plist` + `com.ejclaw-codex.plist`
- WSL (no systemd): `start-ejclaw.sh` + `start-ejclaw-codex.sh`
- Linux (systemd): `~/.config/systemd/user/ejclaw.service`
- macOS: `~/Library/LaunchAgents/com.ejclaw.plist`
- WSL (no systemd): `start-ejclaw.sh`
수동으로 서비스 관리:
```bash
# Linux (systemd)
systemctl --user status ejclaw ejclaw-codex
systemctl --user restart ejclaw ejclaw-codex
systemctl --user status ejclaw
systemctl --user restart ejclaw
# 로그
journalctl --user -u ejclaw -f
journalctl --user -u ejclaw-codex -f
```
## 7. 최종 검증
@@ -169,7 +150,6 @@ bun run setup -- --step verify
성공 기준:
- **ejclaw** 서비스가 running
- **ejclaw-codex** 서비스가 running (`.env.codex`가 있을 때)
- Claude 인증이 configured
- `CHANNEL_AUTH``discord`
- 등록 그룹 수가 1 이상
@@ -178,6 +158,6 @@ bun run setup -- --step verify
- 빌드 문제: `bun run typecheck`, `bun test`, `bun run build:runners`
- Claude 서비스 문제: `logs/ejclaw.error.log` 또는 `journalctl --user -u ejclaw -f`
- Codex 서비스 문제: `logs/ejclaw-codex.error.log` 또는 `journalctl --user -u ejclaw-codex -f`
- Codex 실행 문제: 같은 `ejclaw` 서비스 로그에서 `CODEX_MODEL`, `CODEX_EFFORT`, `OPENAI_API_KEY` 설정을 같이 확인
- 디스코드 연결 문제: `.env``DISCORD_BOT_TOKEN`과 등록된 `dc:*` JID 확인
- 응답 문제: `tail -f logs/ejclaw.log`