このプロジェクトについて
`encx-cli` は、都市クエストエンジン Encounter(`en.cx`)のAPI向けGoクライアント兼CLIです。このプロジェクトには、コードに組み込むためのライブラリ(`encx`)、コンソールユーティリティ `encli`、ローカル開発用モックサーバー、PicoClawベースのLLMエージェント、Web UI、さらにiOS(gomobile)およびPHP(FFI)向けビルドが含まれます。
## 主な機能
- **`encx` ライブラリ**: ログイン、ゲーム一覧、ゲーム状態、コード送信、統計、プロフィール、ヒント、ゲーム参加。旧(ASP.NET)および新(REST)Encounterエンジンを自動検出でサポート。
- **CLI `encli`**: 認証、ゲーム・レベル・ボーナス・セクター・ヒント・突破ログ・メッセージ表示、コード送信、および全adminコマンド(レベル・ボーナス・セクター・ヒント・タスクの作成/削除、ゲーム・チーム・時間調整の管理)を提供。
- **モックサーバー `encx-mock`**: Encounterドメインをローカルで模擬。HTMLからのシナリオ読み込み、ネットワーク喪失エミュレーション(コードPZDC)、Dockerイメージ対応。
- **LLMエージェント**: 組み込みPicoClawによるtool-calling — ゲーム状態の読み取り、adminコマンド呼び出し、Wikipedia検索、ローカルファイル読み取り。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ベースURL。
- APIリクエストによるエンジン自動検出(legacy/new)。
- エンジン設定を `~/.config/encli/engine/settings.json` に保存。
- モックサーバーは `encounter.exe.xyz` で公開デモをサポート。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.