这个项目能做什么
`encx-cli` 是城市任务引擎 Encounter (`en.cx`) 的 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 支持工具调用——读取游戏状态、执行 admin 命令、搜索维基百科、读取本地文件。可通过 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,约 1 GB)。
## 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,有通过 FFI 的共享库,封装由 Go 源码生成。
## 其他
- 客户端选项:TLS、HTTP、超时、User-Agent、语言、引擎、API 基础 URL。
- 通过 API 请求自动检测引擎(旧版/新版)。
- 引擎设置保存在 `~/.config/encli/engine/settings.json`。
- 模拟服务器支持在 `encounter.exe.xyz` 上的公共演示。
评论
0 评分人数达到10人后显示
登录后参与讨论。