À propos du projet
`encx-cli` est un client Go et une CLI pour l'API du moteur de quêtes urbaines Encounter (`en.cx`). Le projet comprend une bibliothèque pour intégration dans votre code (`encx`), un utilitaire console `encli`, un serveur mock pour le développement local, un agent LLM basé sur PicoClaw, une interface Web, ainsi que des builds pour iOS (gomobile) et PHP (FFI).
## Fonctionnalités principales
- **Bibliothèque `encx`** : connexion, liste des jeux, état du jeu, envoi de codes, statistiques, profil, indices, inscription au jeu. Prend en charge les anciens (ASP.NET) et nouveaux (REST) moteurs Encounter avec détection automatique.
- **CLI `encli`** : commandes pour l'authentification, la consultation des jeux, niveaux, bonus, secteurs, indices, journal des validations, messages, envoi de codes, ainsi qu'un ensemble complet de commandes admin (création/suppression de niveaux, bonus, secteurs, indices, tâches, gestion des jeux, équipes, ajustements de temps).
- **Serveur mock `encx-mock`** : simule le domaine Encounter localement, prend en charge le chargement de scénario depuis HTML, l'émulation de perte de réseau (code PZDC), image Docker.
- **Agent LLM** : PicoClaw intégré avec tool-calling — lit l'état du jeu, exécute des commandes admin, recherche sur Wikipédia, lit des fichiers locaux. Fonctionne via OpenRouter ou un modèle local llama.cpp (via yzma, sans cgo).
- **Interface Web** : interface locale avec chat avec l'agent, thème sombre, configuration LLM.
- **iOS** : wrapper gomobile `mobile/encxmobile`, build `Encx.xcframework` pour Xcode.
- **PHP** : bibliothèque partagée via FFI, le client vit côté Go.
## Installation
Des binaires prêts pour macOS, Linux, Windows sont disponibles sur la page Releases. Vous pouvez également installer via `go install` :
```sh
go install github.com/skrashevich/encx-cli/cmd/encli@latest
go install github.com/skrashevich/encx-cli/cmd/encx-mock@latest
```
Ou via Docker :
```sh
docker run --rm ghcr.io/skrashevich/encx-cli -v
docker run --rm ghcr.io/skrashevich/encx-cli games -domain tech.en.cx
```
## Exemple d'utilisation de la bibliothèque
```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, "CODE123")
```
## CLI : flux typique
```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 "CODE123"
```
## Agent LLM
```sh
export LLM_API_KEY=sk-or-v1-...
export LLM_MODEL=anthropic/claude-sonnet-4
encli -game-id 12345 --llm "crée 3 niveaux avec bonus et indices"
encli -readonly -game-id 12345 --llm "affiche le contenu de tous les niveaux"
```
Si aucun fournisseur cloud n'est configuré, l'agent s'exécute localement via llama.cpp (modèle Qwen3-VL-2B-Instruct, ~1 Go).
## MCP
Le paquet `agentmcp` expose le catalogue d'outils du moteur via MCP :
```sh
encli mcp -domain tech.en.cx # lecture seule
encli mcp -domain tech.en.cx -security approve # les mutations sont approuvées par le client
```
## iOS et PHP
Pour iOS, il y a un wrapper gomobile et un build `Encx.xcframework` (script `./mobile/bind-ios.sh`). Pour PHP — une bibliothèque partagée avec des wrappers FFI, générés à partir du code source Go.
## Supplémentaire
- Options du client : TLS, HTTP, timeout, User-Agent, langue, moteur, URL de base API.
- Détection automatique du moteur (legacy/new) via une requête à l'API.
- Sauvegarde des paramètres du moteur dans `~/.config/encli/engine/settings.json`.
- Le serveur mock prend en charge une démo publique sur `encounter.exe.xyz`.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.