इस प्रोजेक्ट के बारे में

`encx-cli` Encounter (`en.cx`) शहरी खोज इंजन API के लिए एक Go क्लाइंट और CLI है। इस परियोजना में अपने कोड में एम्बेड करने के लिए एक लाइब्रेरी (`encx`), कंसोल उपयोगिता `encli`, स्थानीय विकास के लिए मॉक सर्वर, PicoClaw पर आधारित LLM एजेंट, वेब UI, साथ ही iOS (gomobile) और PHP (FFI) के लिए बिल्ड शामिल हैं। ## मुख्य विशेषताएं - **`encx` लाइब्रेरी**: लॉगिन, गेम सूची, गेम स्थिति, कोड भेजना, आँकड़े, प्रोफ़ाइल, संकेत, गेम में प्रवेश। पुराने (ASP.NET) और नए (REST) Encounter इंजन का स्वचालित पहचान के साथ समर्थन। - **CLI `encli`**: प्राधिकरण, गेम, स्तर, बोनस, सेक्टर, संकेत, हिट लॉग, संदेश, कोड भेजने के लिए कमांड, साथ ही पूर्ण admin-कमांड सेट (स्तर, बोनस, सेक्टर, संकेत, कार्य बनाना/हटाना, गेम, टीम, समय समायोजन प्रबंधन)। - **मॉक सर्वर `encx-mock`**: स्थानीय रूप से Encounter डोमेन का अनुकरण करता है, HTML से स्क्रिप्ट लोड करने, नेटवर्क हानि अनुकरण (PZDC कोड), Docker छवि का समर्थन करता है। - **LLM एजेंट**: tool-calling के साथ अंतर्निहित PicoClaw — गेम स्थिति पढ़ता है, admin-कमांड कॉल करता है, विकिपीडिया में खोजता है, स्थानीय फ़ाइलें पढ़ता है। OpenRouter या स्थानीय llama.cpp मॉडल (yzma के माध्यम से, cgo के बिना) के साथ काम करता है। - **वेब 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 के लिए — Go स्रोत से उत्पन्न FFI रैपर के साथ साझा लाइब्रेरी। ## अतिरिक्त - क्लाइंट विकल्प: TLS, HTTP, टाइमआउट, User-Agent, भाषा, इंजन, API बेस URL। - API अनुरोध के माध्यम से इंजन (legacy/new) का स्वचालित पहचान। - इंजन सेटिंग्स `~/.config/encli/engine/settings.json` में सहेजना। - मॉक सर्वर `encounter.exe.xyz` पर सार्वजनिक डेमो का समर्थन करता है।