这个项目能做什么

`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` 上的公共演示。