프로젝트 소개
`encx-cli`는 도시 퀘스트 엔진 Encounter(`en.cx`)의 API용 Go 클라이언트 및 CLI입니다. 이 프로젝트는 자체 코드에 임베딩하기 위한 라이브러리(`encx`), 콘솔 유틸리티 `encli`, 로컬 개발용 mock 서버, PicoClaw 기반 LLM 에이전트, Web UI, 그리고 iOS(gomobile) 및 PHP(FFI)용 빌드를 포함합니다.
## 주요 기능
- **`encx` 라이브러리**: 로그인, 게임 목록, 게임 상태, 코드 전송, 통계, 프로필, 힌트, 게임 참가를 지원합니다. 자동 감지 기능으로 기존(ASP.NET) 및 신규(REST) Encounter 엔진을 모두 지원합니다.
- **CLI `encli`**: 인증, 게임 보기, 레벨, 보너스, 섹터, 힌트, 정답 로그, 메시지, 코드 전송을 위한 명령과 전체 관리자 명령 세트(레벨/보너스/섹터/힌트/과제 생성 및 삭제, 게임/팀/시간 조정 관리)를 제공합니다.
- **Mock 서버 `encx-mock`**: 로컬에서 Encounter 도메인을 시뮬레이션하며, HTML에서 시나리오 로드, 네트워크 손실 에뮬레이션(PZDC 코드), Docker 이미지를 지원합니다.
- **LLM 에이전트**: 내장된 PicoClaw가 tool-calling을 지원합니다. 게임 상태를 읽고, 관리자 명령을 호출하며, 위키백과를 검색하고, 로컬 파일을 읽습니다. OpenRouter 또는 로컬 llama.cpp 모델(yzma를 통해, cgo 없이)로 작동합니다.
- **Web UI**: 에이전트와의 채팅, 다크 테마, LLM 설정을 갖춘 로컬 인터페이스입니다.
- **iOS**: gomobile 래퍼 `mobile/encxmobile`, Xcode용 `Encx.xcframework` 빌드.
- **PHP**: FFI를 통한 공유 라이브러리, 클라이언트는 Go 측에 있습니다.
## 설치
macOS, Linux, Windows용 사전 빌드된 바이너리는 Releases 페이지에서 제공됩니다. `go install`로도 설치할 수 있습니다:
```sh
go install github.com/skrashevich/encx-cli/cmd/encli@latest
go install github.com/skrashevich/encx-cli/cmd/encx-mock@latest
```
또는 Docker를 통해:
```sh
docker run --rm ghcr.io/skrashevich/encx-cli -v
docker run --rm ghcr.io/skrashevich/encx-cli games -domain tech.en.cx
```
## 라이브러리 사용 예시
```go
client := encx.New("tech.en.cx", encx.WithInsecureTLS())
resp, err := client.Login(ctx, "user", "password")
list, _ := client.GetGameList(ctx)
model, _ := client.GetGameModel(ctx, 12345)
result, _ := client.SendCode(ctx, 12345, model.Level.LevelId, model.Level.Number, "КОД123")
```
## CLI: 일반적인 흐름
```sh
encli login -domain tech.en.cx -insecure
encli games
encli status -game-id 12345
encli level -game-id 12345
encli send-code -game-id 12345 "КОД123"
```
## LLM 에이전트
```sh
export LLM_API_KEY=sk-or-v1-...
export LLM_MODEL=anthropic/claude-sonnet-4
encli -game-id 12345 --llm "보너스와 힌트가 있는 레벨 3개 생성"
encli -readonly -game-id 12345 --llm "모든 레벨의 내용 표시"
```
클라우드 공급자가 설정되지 않은 경우, 에이전트는 llama.cpp(모델 Qwen3-VL-2B-Instruct, 약 1GB)를 통해 로컬에서 실행됩니다.
## MCP
`agentmcp` 패키지는 엔진의 도구 카탈로그를 MCP를 통해 외부에 제공합니다:
```sh
encli mcp -domain tech.en.cx # 읽기 전용
encli mcp -domain tech.en.cx -security approve # 변경 사항은 클라이언트가 승인
```
## iOS 및 PHP
iOS용 gomobile 래퍼와 `Encx.xcframework` 빌드(스크립트 `./mobile/bind-ios.sh`)가 있습니다. PHP용으로는 Go 소스에서 생성된 FFI 래퍼가 있는 공유 라이브러리가 있습니다.
## 추가 정보
- 클라이언트 옵션: TLS, HTTP, 타임아웃, User-Agent, 언어, 엔진, API base URL.
- API 요청을 통한 엔진 자동 감지(legacy/new).
- 엔진 설정을 `~/.config/encli/engine/settings.json`에 저장.
- Mock 서버는 `encounter.exe.xyz`에서 공개 데모를 지원합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.