* feat(docs): mirror every docs/ page in all 65 locales Extends the documentation mirrors from the 22-page core set (#13940) to every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors (6,208 new), language bars rewritten for the full locale list, state adopted so the blocking drift gate now covers all 152 pages. run-translation.mjs: an oversized block made only of table rows or list items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is cut at item boundaries and rejoined without a blank line — the single 16-40 KB request outlived the backend socket for verbose scripts. 48 older mirrors whose tables had lost rows were retranslated with --force. * docs(i18n): refresh mirrors for the sources the base changed since the branch cut Section-level retranslation of the 29 docs (and README.md) whose source or mirrors moved on release/v3.8.51 during the run, then state adoption; the drift gate is green again on the merged tree.
30 KiB
Stealth Guide (አማርኛ)
🌐 Languages: 🇺🇸 English · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
የእውነት ዋና ምንጭ:
open-sse/utils/tlsClient.ts፣open-sse/services/{tlsClientBase,claudeTlsClient,perplexityTlsClient,grokTlsClient,notionTlsClient,lmarenaTlsClient,claudeCodeCCH,claudeCodeFingerprint,claudeCodeObfuscation,claudeCodeCompatible}.ts፣open-sse/config/cliFingerprints.ts፣src/mitm/መጨረሻ የተዘመነበት: 2026-09-02 — v3.8.51 ታዳሚዎች: ለአቅራቢ-ተኮር ስውር ውህደቶች ጥገና የሚያደርጉ መሐንዲሶች።
OmniRoute ኦፊሴላዊ ያልሆኑ ደንበኞችን በንቃት የሚለዩ የጠርዝ ሥርዓቶች ካሏቸው አቅራቢዎች ጋር ይዋሃዳል (TLS JA3/JA4፣ የራስጌ ቅደም ተከተል፣ የJSON አካል ቅርጽ፣ የታማኝነት ቶከኖች)። ይህ ገጽ OmniRoute የሚያቀርባቸውን የስውርነት ገጽታዎችና የተተገበሩባቸውን ቦታዎች ይመዘግባል።
ሕጋዊ እና ሥነ-ምግባራዊ ማስታወቂያ
የስውርነት ባህሪያት OmniRoute በተጠቃሚው ባለቤትነት በሚተዳደሩ ኦፊሴላዊ መለያዎች (Claude Code CLI፣ Codex፣ Antigravity፣ Cursor፣ ወዘተ) እና በOmniRoute የተዋሃደ API መካከል እንደ ተኳኋኝነት ንብርብር እንዲሠራ የተዘጋጁ ናቸው። እነዚህ የማጭበርበር ማወቂያን ለማምለጥ፣ ማረጋገጫ መረጃዎችን ለማጋራት ወይም የአቅራቢዎችን የአገልግሎት ውሎች ለመጣስ አይደሉም። ጠጋኞቹ ኦፕሬተሮች መለያዎችን ሲፈጥሩ የተስማሙባቸውን የላይኛው አቅራቢ ToS እንዲያከብሩ ይጠብቃሉ።
የTLS አሻራ መለያ ንብርብር
open-sse/utils/tlsClient.ts — wreq-js (Chrome 124)
ዘላቂ wreq-js ክፍለ-ጊዜዎች ለእያንዳንዱ የመለያ ወሰንና ለተፈታው ፕሮክሲ በፍላጎት ጊዜ ይፈጠራሉ። የሂደቱ አጠቃላይ TlsClient በCloudflare ጀርባ ላሉ የላይኛው አቅራቢዎች በmacOS ላይ Chrome 124ን የሚመስሉ እስከ 128 ክፍለ-ጊዜዎችን ይይዛል። ቤተኛው runtime በማይገኝበት ጊዜ TlsClient.fetch() ጥያቄውን በደህንነት ይከለክላል፤ ጠሪው ከዚህ wrapper ውጭ አማራጭ ዘዴን በግልጽ ሊመርጥ ይችላል።
- የክፍለ-ጊዜ መገለጫ፦
browser: "chrome_124", os: "macos" - የፕሮክሲ ፍቺ (በቅድሚያ)፦
HTTPS_PROXY→HTTP_PROXY→ALL_PROXY(በትንሽ ፊደላት የተጻፉትንም ጨምሮ) - የጊዜ ገደብ፦
TLS_CLIENT_TIMEOUT_MS(ከFETCH_TIMEOUT_MSይወርሳል፣ ነባሪው 600000) - የ
wreq-jsResponse ከfetch ጋር ተኳኋኝ ነው (headers፣text()፣json()፣clone()፣body)። - የመጀመሪያ-ባይት ተቆጣጣሪ (
open-sse/utils/tlsFirstByteWatchdog.ts፣ #12656)፦TlsClient.fetch()ከላይኛው አቅራቢ ራስጌዎች እንደደረሱ ውጤት ይመልሳል፤ ስለዚህTLS_CLIENT_TIMEOUT_MSብቻውን የመጀመሪያ ባይት ፈጽሞ የማያወጣን አካል መገደብ አይችልም።guardTlsFirstByte()የአካሉን የመጀመሪያread()ከTLS_FIRST_BYTE_WATCHDOG_MS(ነባሪ10000፣0ያሰናክለዋል) ጋር ያወዳድራል፤ ጤናማ አካል አይነካም፣ የቆመ አካል ግን wreq readerን ይሰርዛል እና የproxyFetchነባሩ TLS-fallback አመክንዮ ወደ ቀጥታ/ፕሮክሲ dispatcher እንዲያልፍ ያደርገዋል (እንደ አካል ያለው POST ያለ በድጋሚ-ማጫወት ደህንነት የሌለው ጥያቄ፣ በድብቅ በድጋሚ ከመሞከር ይልቅ አሁንም ስህተት ይጥላል)።
የድር-ኩኪ አቅራቢ ትራንስፖርት — wreq-js 3.2.0
open-sse/services/tlsClientBase.ts ከታች ላሉት አምስት ልዩ የድር-ኩኪ ትራንስፖርቶች የጋራ adapter ነው። እያንዳንዱ ቀላል የአቅራቢ wrapper የአሳሽ/OS መገለጫ ይመርጣል። adapterው በመገለጫ + OS + በተፈታ ፕሮክሲ ቁልፍ የተደረገውን ነጠላ wreq runtime loader እና በopen-sse/utils/tlsClient.ts ውስጥ ያለውን የትራንስፖርት pool ይጠቀማል፤ እያንዳንዱ ጥያቄ ደግሞ cookieMode: "ephemeral"ን ይጠቀማል። ስለዚህ መለያዎችና ጥያቄዎች በትራንስፖርት ደረጃ ያሉ ግንኙነቶችን ይጋራሉ፣ ነገር ግን wreq ክፍለ-ጊዜን ወይም የኩኪ ማከማቻን ፈጽሞ አይጋሩም።
| አቅራቢ | መገለጫ | የተመሰለ OS | የStream EOF ፖሊሲ |
|---|---|---|---|
| Claude | chrome_146 |
Linux | [DONE]ን ያካትታል |
| Perplexity | firefox_148 |
macOS | event: end_of_streamን ያካትታል |
| Grok | chrome_146 |
Linux | [DONE]ን አያካትትም |
| Notion | chrome_146 |
Windows | [DONE]ን ያካትታል |
| LMArena | chrome_146 |
Windows | sentinel የለም፤ በቤተኛ EOF ላይ ይዘጋል |
- Streaming ቤተኛውን የምላሽ
ReadableStreamበቀጥታ ይጠቀማል፤ ጊዜያዊ ፋይል ወይም sidecar አይፈጠርም። - stream ከመቅረቡ በፊት እስከ 256 የመጀመሪያ ባይቶች ይመረመራሉ። የSSE አቅራቢዎች SSE ያልሆኑ ስህተቶችን በbuffer ይይዛሉ፤ Grok/LMArena የCloudflare ፈተናዎችን ወደ
403፣ የHTML መካከለኛ ገጾችን ደግሞ ወደ502ይመድባሉ። - የቤተኛው ጥያቄ የጊዜ ገደብ በፍጹም የJS ከፍተኛ የጊዜ ገደብ መጠቅለያ ውስጥ ይቆያል። መቆም የተጎዳውን የመገለጫ/OS/ፕሮክሲ ትራንስፖርት ብቻ ዋጋ አልባ አድርጎ ይዘጋል፤ ቀጣዩ ጥያቄ ከመቅረቡ በፊትም እንደገና ይፈጥረዋል።
- የፕሮክሲ ፍቺ ቅድሚያ ለእያንዳንዱ ጥሪ
proxyUrl→ በጥያቄ ወሰን ያለ የመለያ/dashboard አውድ →HTTPS_PROXY/HTTP_PROXY/ALL_PROXY(በትንሽ ፊደላት የተጻፉ ልዩነቶችንም ጨምሮ) ነው። የፍቺ ስህተቶች ቀጥተኛ ግንኙነት እንዳያፈትሉ ጥያቄውን በደህንነት ይከለክላሉ። LMArena ሆን ብሎ ከarena.aiአንጻር ይፈታል። byteResponseያለ UTF-8 ብልሹነት በይዘት ዓይነት የተመደበdata:URL ይመልሳል።- ስህተቶቹ
TlsClientUnavailableError(package/addon አይገኝም)፣TlsClientHangError(የጊዜ ገደብ አልፏል) እና ሁሉም 128 የተገደቡ የመገለጫ/OS/ፕሮክሲ ቦታዎች ንቁ ወይም በመዘጋት ላይ ሲሆኑWreqTransportCapacityError(የጋራ የክፍለ-ጊዜ አቅም ስህተት ኮድ) ናቸው።
ከላይ ያለው አጠቃላይ TlsClient በአሳሽ ለሚደገፍ ዘላቂ የኩኪ ሁኔታ የተለየ ሆኖ ይቆያል። ሁለቱም መንገዶች አንድ የተሸጎጠ wreq module loader እና የሂደት lifecycle hook እንደገና ይጠቀማሉ፤ የኩኪ ዕድሜዎቻቸው ሆን ተብሎ የተለያዩ ስለሆኑ ግን poolsዎቻቸው ተለያይተው ይቆያሉ።
መገለጫዎቹ በተወሰነው package የሚደገፉ ቢሆኑም፣ ትክክለኛው የWAF ተቀባይነት ከአካባቢያዊ contract tests ለብቻው ሊለወጥ ይችላል። ከላይኛው አሳሽ ጋር እኩልነት አለ ብለው ከመግለጽዎ በፊት የአሻራ ለውጦችን በግልጽ ፈቃድ በተሰጠው የቀጥታ መለያ ላይ ያረጋግጡ።
Claude Code ስውር ጥቅል
cliCompatMode ሲበራ፣ OmniRoute ወደ ውጭ የሚላኩ Claude ጥያቄዎችን ከclaude-cli ትራፊክ ለመለየት እንዳይቻል አድርጎ መልካቸውን ይቀይራል። ሦስት ሞጁሎች በትብብር ይሠራሉ፦
claudeCodeFingerprint.ts
በክፍያ ራስጌው ውስጥ የተካተተውን ባለ 3-ቁምፊ cc_version አሻራ ያሰላል፦
SHA256(SALT + msg[4] + msg[7] + msg[20] + version)[:3]
FINGERPRINT_SALT = "59cf53e54c78"(በቀጥታ በኮድ ውስጥ የተቀመጠ፤ ከይፋዊው ደንበኛ ጋር ይዛመዳል)- ግብዓቶች፦ በመጀመሪያው የተጠቃሚ መልዕክት ጽሑፍ ውስጥ በመረጃ ጠቋሚ 4፣ 7 እና 20 ያሉ ቁምፊዎች + የስሪት ሕብረቁምፊ
- ውጤት፦ ባለ 3-ቁምፊ ሄክስ ቅድመ ቅጥያ
claudeCodeCCH.ts (የደንበኛ ይዘት ሃሽ)
ይፋዊው Claude Code CLI በBun/Zig በኩል የሚያሰላው የአገልጋይ-ወገን የውሂብ ትክክለኛነት ፍተሻ። OmniRoute ይህን በxxhash-wasm እንደገና ተግባራዊ ያደርገዋል፦
- የጥያቄ አካሉን በ
cch=00000;ቦታ ያዥ ወደ ተከታታይ መረጃ ይቀይሩ xxhash64(bytes, seed) & 0xFFFFF- በዜሮ የተሞላ ባለ 5-ቁምፊ ንዑስ ፊደል ሄክስ
cch=00000;ን በተሰላው ቶከን ይተኩ
ቋሚዎች፦
- ዘር፦
0x6e52736ac806831e - ስርዓተ ጥለት፦
/\bcch=([0-9a-f]{5});/
claudeCodeObfuscation.ts
ወደ ላይ ያሉ ማጣሪያዎች በgrep እንዳያገኟቸው፣ “ስሱ” ከሆኑ የደንበኛ ስሞች የመጀመሪያ ቁምፊ በኋላ የUnicode ዜሮ-ስፋት አገናኝ (U+200D) ያስገባል። ነባሪ የቃላት ዝርዝር፦
opencode, open-code, cline, roo-cline, roo_cline, cursor, windsurf,
aider, continue.dev, copilot, avante, codecompanion
በእነዚህ ላይ ይተገበራል፦ system ብሎኮች፣ ሁሉም messages[].content፣ እና tools[].description / tools[].function.description። ኦፕሬተሩ በsetSensitiveWords() ሊቀይረው ይችላል።
claudeCodeCompatible.ts — anthropic-compatible-cc-* አቅራቢዎች
“እውነተኛ Claude Code” ትራፊክን ብቻ ለሚቀበሉ የሦስተኛ ወገን Anthropic ማስተላለፊያዎች፦
CLAUDE_CODE_COMPATIBLE_USER_AGENT = "claude-cli/2.1.258 (external, sdk-cli)"CLAUDE_CODE_COMPATIBLE_STAINLESS_PACKAGE_VERSION = "0.112.1"CLAUDE_CODE_COMPATIBLE_STAINLESS_RUNTIME_VERSION = "v26.3.0"- በነባሪ
anthropic-beta = "claude-code-20250219,interleaved-thinking-2025-05-14,effort-2025-11-24" - የCC Compatible ወደላይ አገልግሎት የተደበቁ የአስተሳሰብ ዥረቶችን በተለይ ሲፈልግ፣ የእያንዳንዱ ግንኙነት “የredact-thinking ቤታን አንቃ” መቀያየሪያ
redact-thinking-2026-02-12ን ይጨምራል - የእያንዳንዱ ግንኙነት “የተጠቃለለ የአስተሳሰብ ማሳያን አንቃ” መቀያየሪያ
providerSpecificData.requestDefaults.summarizeThinkingን ያከማቻል፣ እና አስቀድሞ የማሳያ ሁነታ ባልተወሰነላቸው የCC Compatible የአስተሳሰብ ጥያቄዎች ላይdisplay: "summarized"ን ይጨምራል CONTEXT_1M_BETA_HEADER = "context-1m-2025-08-07"(የOpus/Sonnet 4.x ቤተሰብ)- ነባሪ ዱካ፦
/v1/messages?beta=true
በተመሳሳይ ጥቅል ውስጥ ያሉ ተዛማጅ ሞጁሎች፦
claudeCodeConstraints.ts— የtemperature + cache-control ደንቦችclaudeCodeToolRemapper.ts— የመሣሪያ ስም ዳግም ማዛመድclaudeCodeExtraRemap.ts— ተጨማሪ የpayload ማስተካከያ
Antigravity ስውርነት
የAntigravity ጥያቄዎች የጠሪውን ጽሑፍ ባይት-በ-ባይት እንዳለ ያቆያሉ። OmniRoute የIDE ደንበኛን ለመምሰል በprompt ውስጥ ዜሮ-ስፋት ያላቸውን ቁምፊዎች አያስገባም፣ ወይም መሣሪያዎችን እንደገና አይሰይም/አያስገባም።
antigravityHeaderScrub.ts
ከማስተላለፉ በፊት የStainless SDK ምልክቶችን (x-stainless-lang፣ x-stainless-package-version፣ x-stainless-os፣ x-stainless-arch፣ x-stainless-runtime፣ x-stainless-runtime-version፣ x-stainless-timeout፣ x-stainless-retry-count፣ x-stainless-helper-method) ያስወግዳል።
⚠️ አደጋ፦ ANTIGRAVITY_CREDITS=always (መለያ ለእገዳ በከፍተኛ ሁኔታ የተጋለጠበት ነጥብ)
ANTIGRAVITY_CREDITS=always (በopen-sse/executors/antigravity.ts ጥቅም ላይ የሚውል) የGoogle ነፃ-ደረጃ ኮታ እንዲገድባቸው ከመፍቀድ ይልቅ እያንዳንዱን ጥያቄ በAntigravity AI Credit Overages (የሚከፈልባቸው የGoogle ክሬዲቶች) በኩል ያስተላልፋል። ይህ እንደ ባህሪ ተመዝግቧል፣ ነገር ግን ይህ በብዛት የምናየው ብቸኛው የToS ጥሰት ሪፖርት ነው — በርካታ የGoogle Ultra መለያዎች =alwaysን ተጠቅመው ለጥቂት ሰዓታት ከሠሩ በኋላ 403 / "service disabled for ToS violation" / insufficient_quota በሚል ታግደዋል።
የወደላይ አገልግሎት ማስፈጸሚያው በGoogle በኩል ነው፤ OmniRoute ሊከላከለው የሚችለው ነገር አይደለም። የenv var ስሙ እና ነባር ሰነዶቹ ለማብራት አስተማማኝ ቅንብር እንደሆነ ያስመስሉታል፤ ግን አይደለም።
ይህ ከነፃ-ደረጃ-ብቻ አጠቃቀም ይልቅ የብልሹ አጠቃቀም ማወቂያን በበለጠ ጥብቅነት የሚቀሰቅሰው ለምንድን ነው፦
- በአንድ የGoogle መለያ ላይ የሚደረግ ቀጣይነት ያለው ራስ-ሰር ወጪ፣ የነፃ ደረጃ ኮታውን ደርሶ ከሚቆም አጠቃቀም በተለየ ሁኔታ ምልክት ይደረግበታል።
- የክሬዲት ትርፍ አጠቃቀም የተመን ጣሪያ የለውም፤ ስለዚህ በስህተት የተዋቀረ ደንበኛ በደቂቃዎች ውስጥ በርካታ መቶ USD ሊያወጣ እና የAPI-key ዳግም ሽያጭ ወይም የbot ትራፊክ ሊመስል ይችላል።
- ከተመሳሳይ ውጫዊ IP በትይዩ የክሬዲት ትርፍ አጠቃቀምን የሚጠቀሙ በርካታ የOmniRoute ተጠቃሚዎች ምልክቱን ያጠናክራሉ።
የሚመከር አቋም፦
- ኦፕሬተሩ የሚከፈልበትን ክሬዲት እና የመለያ ማስፈጸሚያ አደጋ በግልጽ ካልተቀበለ በስተቀር፣ ነባሪውን
ANTIGRAVITY_CREDITS=offእንዳለ ያቆዩ።retryመጀመሪያ መደበኛውን ጥያቄ ይልካል፣ እና ብቁ የኮታ 429 ከተመለሰ በኋላ ቢበዛ አንድ ጊዜ ክሬዲቶችን ያስገባል፤alwaysደግሞ በመጀመሪያው ጥያቄ ላይ ክሬዲቶችን ያስገባል። - አንድን የAntigravity መለያ ከማጨናነቅ ይልቅ ጭነቱን በAuto-Combo በኩል በአቅራቢዎች መካከል ያሰራጩ (
model: "auto"ወይምkr/glm/etc-combo)። - ለእያንዳንዱ ግንኙነት የRPM ገደቦችን ያዘጋጁ፤ ይህን በAntigravity አቅራቢው ማስተካከያ ገጽ ውስጥ ያድርጉ (Dashboard → Providers → Antigravity → ግንኙነት → የተመን ገደብ)። ለቀጣይነት ያለው አጠቃቀም 30–60 RPM ሊደገፍ የሚችል ከፍተኛ ገደብ ነው።
- የተረጋጋ፣ በኦፕሬተሩ የሚቆጣጠር የወደላይ አገልግሎት አውታረ መረብን ይጠቀሙ፣ እና አንድን መለያ ተዛማጅነት በሌላቸው ተጠቃሚዎች ወይም የሥራ ጭነቶች መካከል ከማጋራት ይቆጠቡ።
- ከታገዱ፦ Google የላከውን ትክክለኛ
quota_exceeded/service disabledምላሽ አካል በመጠቀም፣ በsupport.google.com→ "Restore Workspace/Account access" በኩል ይግባኝ ይጠይቁ። መለያው እንደሚመለስ ዋስትና የለም።
የአካባቢ ማጣቀሻው የእያንዳንዱን የክሬዲት ሁነታ የመለያ እና የወጪ አንድምታዎች ይመዘግባል።
የሚነኩ ነጥቦች፦
open-sse/executors/antigravity.ts—process.env.ANTIGRAVITY_CREDITSን ያነባልsrc/lib/oauth/providers/antigravity.ts— የማረጋገጫ መረጃ ማገናኛ- የመጀመሪያው የክስተት ሪፖርት፦ ውይይት #1183
የCLI አሻራ መዝገብ — open-sse/config/cliFingerprints.ts
ከኦፊሴላዊ CLIዎች የmitmproxy ዱካዎች የተያዙትን ትክክለኛ የራስጌ ቅደም ተከተልና የJSON የይዘት መስኮች ቅደም ተከተል የሚወስን የየአቅራቢው ሰንጠረዥ። በአሁኑ ጊዜ የተመዘገቡት፦ codex፣ claude፣ እንዲሁም በproviderHeaderProfiles.ts ውስጥ ለantigravity እና github በስራ ጊዜ የሚመነጩ መገለጫዎች።
interface CliFingerprint {
headerOrder: string[]; // ለፊደል አቀማመጥ ስሱ
bodyFieldOrder: string[]; // የከፍተኛ ደረጃ JSON ቁልፎች
userAgent?: string | (() => string);
extraHeaders?: Record<string, string>;
}
በenv አማካኝነት ለእያንዳንዱ አቅራቢ ያብሩ ወይም ያጥፉ (ከታች ይመልከቱ)። ሲሰናከል፣ ራስጌዎች/የይዘት ቁልፎች Node/JSON በሰጣቸው ማንኛውም ቅደም ተከተል ይታያሉ — አሻራቸውን ለመለየት ቀላል ይሆናሉ።
MITM ፕሮክሲ (Antigravity፣ Linux/macOS/Windows)
ባይነሪዎቻቸው በOPENAI_BASE_URL በኩል አቅጣጫቸውን መቀየር ለማይችሉ CLIዎች፣ OmniRoute በአካባቢው የTLS ማቋረጫ ፕሮክሲ ያስኬዳል። የመገናኛ ነጥቦቹ በsrc/app/api/cli-tools/antigravity-mitm/ ስር ይገኛሉ።
| ዘዴ | የመገናኛ ነጥብ | ዓላማ |
|---|---|---|
| GET | /api/cli-tools/antigravity-mitm |
ሁኔታ — እየሰራ መሆኑ፣ pid፣ dnsConfigured፣ certExists |
| POST | /api/cli-tools/antigravity-mitm |
MITMን ጀምር (apiKey + sudoPassword ያስፈልጋል) |
| DELETE | /api/cli-tools/antigravity-mitm |
MITMን አቁም |
| GET | /api/cli-tools/antigravity-mitm/alias |
የሞዴል ተለዋጭ ስሞችን ዘርዝር |
| PUT | /api/cli-tools/antigravity-mitm/alias |
ለአንድ መሳሪያ የሞዴል ተለዋጭ ስሞችን አስቀምጥ |
ዒላማው የሚጠለፍ አስተናጋጅ፦ daily-cloudcode-pa.googleapis.com (የAntigravity የላይኛው አገልግሎት)።
የማስጀመሪያ ቅደም ተከተል (src/mitm/manager.ts::startMitm)
- በ
selfsignedበኩል በራስ የተፈረመ ሰርተፍኬት ይፍጠሩ (RSA-2048፣ SHA-256፣ 1y) —cert/generate.ts - ሰርተፍኬቱን በስርዓቱ የታመነ ማከማቻ ውስጥ ይጫኑ —
cert/install.ts 127.0.0.1 daily-cloudcode-pa.googleapis.comየhosts ግቤት ያክሉ —dns/dnsConfig.tssrc/mitm/server.cjsን ከROUTER_API_KEY+MITM_LOCAL_PORT(ነባሪ443) ጋር ያስጀምሩ- PIDን በ
<DATA_DIR>/mitm/.mitm.pidውስጥ በቋሚነት ያስቀምጡ
የLinux ተለዋዋጭ የታመነ ማከማቻ ማወቂያ — cert/install.ts
getLinuxCertConfig() በቅድሚያ የተደረደረ ዝርዝርን በመከተል የመጀመሪያውን ነባር ማውጫ ይመርጣል፦
| የዲስትሮ ቤተሰብ | ማውጫ | የማዘመኛ ትዕዛዝ |
|---|---|---|
| Debian / Ubuntu | /usr/local/share/ca-certificates |
update-ca-certificates |
| Arch / CachyOS / Manjaro | /etc/ca-certificates/trust-source/anchors |
update-ca-trust |
| Fedora / RHEL / CentOS | /etc/pki/ca-trust/source/anchors |
update-ca-trust |
| openSUSE | /etc/pki/trust/anchors |
update-ca-certificates |
የሰርተፍኬት ፋይል ስም፦ omniroute-mitm.crt። የአሻራ ማዛመድ በgetCertFingerprint() በኩል (የDER SHA-1)።
በተጨማሪም፣ certutil ሲገኝ updateNssDatabases() በየተጠቃሚው NSS DBዎች ውስጥ ይጭናል፦ ~/.pki/nssdb፣ ~/snap/chromium/.../nssdb፣ ሁሉም የFirefox መገለጫዎች (snapን ጨምሮ)፣ OmniRoute MITM Root CA በሚለው ቅጽል ስም።
macOS / Windows
- macOS፦
security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain - Windows፦ ከፍ ያለ ፈቃድ ያለው PowerShell →
certutil -addstore Root
ማረጋገጫ
ሁሉም የMITM መገናኛ ነጥቦች የአስተዳደር ማረጋገጫ (requireCliToolsAuth) ይፈልጋሉ። የsudo የይለፍ ቃል በሞጁሉ ወሰን ውስጥ በጊዜያዊነት ይያዛል (globalThis ውስጥ ፈጽሞ አይቀመጥም) እና stopMitm() ሲጠራ ይሰረዛል።
User-Agent መሻሮች — env vars (.env.example ክፍል 12)
| ተለዋዋጭ | ነባሪ |
|---|---|
CLAUDE_USER_AGENT |
claude-cli/2.1.258 (external, cli) |
CODEX_USER_AGENT |
codex-cli/0.149.0 (Windows 10.0.26200; x64) |
GITHUB_USER_AGENT |
GitHubCopilotChat/0.54.0 |
ANTIGRAVITY_USER_AGENT |
antigravity/2.0.1 linux/arm64 google-api-nodejs-client/10.3.0 |
KIRO_USER_AGENT |
AWS-SDK-JS/3.0.0 kiro-ide/1.0.0 |
QODER_USER_AGENT |
Qoder-Cli |
CURSOR_USER_AGENT |
Cursor/3.4 |
በopen-sse/executors/base.ts::buildHeaders() በተለዋዋጭ ፍለጋ አማካኝነት ጥቅም ላይ ይውላሉ። አቅራቢዎች አዲስ የCLI ስሪቶችን ሲለቁ እነዚህን ያሳድጉ — ጊዜ ያለፈባቸው የUA ሕብረቁምፊዎች እንደ ጊዜ ያለፈባቸው ደንበኞች ውድቅ መደረግ ይጀምራሉ።
የCLI ተኳኋኝነት ሁነታ መቀያየሪያዎች (.env.example ክፍል 13)
| ተለዋዋጭ | ተጽዕኖ |
|---|---|
CLI_COMPAT_CODEX=1 |
የCodex አሻራ |
CLI_COMPAT_CLAUDE=1 |
የclaude-cli አሻራ |
CLI_COMPAT_GITHUB=1 |
የGitHub Copilot Chat አሻራ |
CLI_COMPAT_ANTIGRAVITY=1 |
የAntigravity አሻራ |
CLI_COMPAT_KIRO=1 |
Kiro |
CLI_COMPAT_CURSOR=1 |
Cursor |
CLI_COMPAT_KIMI_CODING=1 |
Kimi Coding |
CLI_COMPAT_KILOCODE=1 |
KiloCode |
CLI_COMPAT_CLINE=1 |
Cline |
CLI_COMPAT_ALL=1 |
ከላይ ያሉትን ሁሉ አንቃ |
የአቅራቢው IP ሁልጊዜ ይጠበቃል — መቀያየሪያው የጥያቄውን የሽቦ ምስል ቅርጽ ብቻ ይቀይራል፤ የወጪ IPን አይቀይርም።
የገቢ ራስጌ ማጽዳት
OmniRoute ጥያቄውን ወደ ላይኛው አገልግሎት ከማስተላለፉ በፊት የገቢ ደንበኛ ራስጌዎችን ያጸዳል፤ ስለዚህ ከCursor የመጣ ጥያቄ User-Agent: Cursor/X.Y.Zን ወደ Claude ላይኛው አገልግሎት አያፈስም። ከZod ንድፎችና የአሃድ ሙከራዎች ጋር በተመሳሳይ ጊዜ ስለሚዘምነው የክልከላ ዝርዝር src/shared/constants/upstreamHeaders.tsን ይመልከቱ።
አቅራቢ ሲቀይር አሻራዎችን ማዘመን
- ይፋዊ የCLI ትራፊክን በ
mitmproxyይቅረጹ (የTLS ጣልቃ ገብነት + ዳምፕ) - JA3/JA4ን እና ትክክለኛውን የራስጌ ቅደም ተከተል ያውጡ
- ተገቢውን
CLI_FINGERPRINTS[...]ግቤት ያዘምኑ - በ
.env.exampleውስጥ ያለውን ተዛማጅ*_USER_AGENTነባሪ ያሳድጉ - የTLS መጨባበጡ ራሱ ከተቀየረ፣ ተገቢውን የአቅራቢ መጠቅለያ ወይም የwreq-js
browser:አማራጭ ያዘምኑ - የአቅራቢውን የተወሰኑ የTLS ሙከራዎች ያስኪዱ እና በቀጥታው አቅራቢ ላይ በእጅ የካናሪ ሙከራ ያድርጉ
- በፓች ልቀት ያሰራጩ፤ በ
CHANGELOG.mdውስጥ ይመዝግቡ
ሙከራዎች
open-sse/services/__tests__/claudeTlsClient.test.ts— የጋራ የTLS መጠቅለያ ባህሪtests/unit/anthropic-cache-fingerprint.test.ts— የአሻራ ወሳኝነትtests/unit/chatgpt-web-source-retirement.test.ts— Codex Web እንዳለ ሆኖ የጋራው የChatGPT Web ስውርነት ምንጭ አለመኖሩን ይቀጥላል
ተጨማሪ ይመልከቱ
- RESILIENCE_GUIDE.md — ድብቅ መንገድ
403ሲያገኝ ምን እንደሚከሰት - TROUBLESHOOTING.md
- ENVIRONMENT.md — ሙሉ የenv ማጣቀሻ
- CLI-TOOLS.md — የMITM የስራ ፍሰት ከኦፕሬተር እይታ