প্রকল্প সম্পর্কে

`encx-cli` — এটি এনকাউন্টার (`en.cx`) শহুরে কোয়েস্ট ইঞ্জিনের API-এর জন্য একটি Go ক্লায়েন্ট এবং CLI। প্রকল্পটিতে নিজের কোডে এমবেড করার জন্য একটি লাইব্রেরি (`encx`), কনসোল ইউটিলিটি `encli`, লোকাল ডেভেলপমেন্টের জন্য mock-সার্ভার, PicoClaw-ভিত্তিক LLM-এজেন্ট, Web UI, এবং iOS (gomobile) ও PHP (FFI) বিল্ড অন্তর্ভুক্ত রয়েছে। ## প্রধান বৈশিষ্ট্য - **`encx` লাইব্রেরি**: লগইন, গেমের তালিকা, গেমের অবস্থা, কোড পাঠানো, পরিসংখ্যান, প্রোফাইল, হিন্ট, গেমে যোগদান। স্বয়ংক্রিয় সনাক্তকরণসহ এনকাউন্টারের পুরানো (ASP.NET) এবং নতুন (REST) ইঞ্জিন সমর্থন করে। - **CLI `encli`**: অথরাইজেশন, গেম, লেভেল, বোনাস, সেক্টর, হিন্ট, কোড-চেক লগ, মেসেজ, কোড পাঠানো এবং সম্পূর্ণ অ্যাডমিন কমান্ড সেট (লেভেল/বোনাস/সেক্টর/হিন্ট/টাস্ক তৈরি ও মুছে ফেলা, গেম ও টিম ম্যানেজমেন্ট, সময় সংশোধন)। - **Mock-সার্ভার `encx-mock`**: লোকালি এনকাউন্টার ডোমেন অনুকরণ করে, HTML থেকে স্ক্রিপ্ট লোডিং, নেটওয়ার্ক লস ইমুলেশন (PZDC কোড), Docker ইমেজ সমর্থন করে। - **LLM-এজেন্ট**: বিল্ট-ইন PicoClaw টুল-কলিংসহ — গেমের অবস্থা পড়ে, অ্যাডমিন কমান্ড কল করে, উইকিপিডিয়ায় খোঁজে, লোকাল ফাইল পড়ে। 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 "বোনাস ও হিন্টসহ ৩টি লেভেল তৈরি করো" encli -readonly -game-id 12345 --llm "সব লেভেলের বিষয়বস্তু দেখাও" ``` ক্লাউড প্রোভাইডার কনফিগার না থাকলে, এজেন্ট লোকালি llama.cpp (মডেল Qwen3-VL-2B-Instruct, ~১ 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 base URL। - API রিকোয়েস্টের মাধ্যমে ইঞ্জিন (legacy/new) স্বয়ংক্রিয় সনাক্তকরণ। - ইঞ্জিন সেটিংস `~/.config/encli/engine/settings.json`-এ সংরক্ষণ। - Mock-সার্ভার `encounter.exe.xyz`-এ পাবলিক ডেমো সমর্থন করে।