Files
OmniRoute/docs/i18n/am/docs/security/STEALTH_GUIDE.md
Diego Rodrigues de Sa e Souza 8feea123bb feat(docs): mirror every docs/ page in all 65 locales (#14106)
* 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.
2026-09-18 13:16:46 -03:00

30 KiB
Raw Blame History

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.tsopen-sse/services/{tlsClientBase,claudeTlsClient,perplexityTlsClient,grokTlsClient,notionTlsClient,lmarenaTlsClient,claudeCodeCCH,claudeCodeFingerprint,claudeCodeObfuscation,claudeCodeCompatible}.tsopen-sse/config/cliFingerprints.tssrc/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_PROXYHTTP_PROXYALL_PROXY (በትንሽ ፊደላት የተጻፉትንም ጨምሮ)
  • የጊዜ ገደብ፦ TLS_CLIENT_TIMEOUT_MS (ከFETCH_TIMEOUT_MS ይወርሳል፣ ነባሪው 600000)
  • wreq-js Response ከfetch ጋር ተኳኋኝ ነው (headerstext()json()clone()body)።
  • የመጀመሪያ-ባይት ተቆጣጣሪ (open-sse/utils/tlsFirstByteWatchdog.ts፣ #12656)፦ TlsClient.fetch() ከላይኛው አቅራቢ ራስጌዎች እንደደረሱ ውጤት ይመልሳል፤ ስለዚህ TLS_CLIENT_TIMEOUT_MS ብቻውን የመጀመሪያ ባይት ፈጽሞ የማያወጣን አካል መገደብ አይችልም። guardTlsFirstByte() የአካሉን የመጀመሪያ read()TLS_FIRST_BYTE_WATCHDOG_MS (ነባሪ 100000 ያሰናክለዋል) ጋር ያወዳድራል፤ ጤናማ አካል አይነካም፣ የቆመ አካል ግን 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 እንደገና ተግባራዊ ያደርገዋል፦

  1. የጥያቄ አካሉን በcch=00000; ቦታ ያዥ ወደ ተከታታይ መረጃ ይቀይሩ
  2. xxhash64(bytes, seed) & 0xFFFFF
  3. በዜሮ የተሞላ ባለ 5-ቁምፊ ንዑስ ፊደል ሄክስ
  4. 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.tsanthropic-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-langx-stainless-package-versionx-stainless-osx-stainless-archx-stainless-runtimex-stainless-runtime-versionx-stainless-timeoutx-stainless-retry-countx-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 ተጠቃሚዎች ምልክቱን ያጠናክራሉ።

የሚመከር አቋም፦

  1. ኦፕሬተሩ የሚከፈልበትን ክሬዲት እና የመለያ ማስፈጸሚያ አደጋ በግልጽ ካልተቀበለ በስተቀር፣ ነባሪውን ANTIGRAVITY_CREDITS=off እንዳለ ያቆዩ። retry መጀመሪያ መደበኛውን ጥያቄ ይልካል፣ እና ብቁ የኮታ 429 ከተመለሰ በኋላ ቢበዛ አንድ ጊዜ ክሬዲቶችን ያስገባል፤ always ደግሞ በመጀመሪያው ጥያቄ ላይ ክሬዲቶችን ያስገባል።
  2. አንድን የAntigravity መለያ ከማጨናነቅ ይልቅ ጭነቱን በAuto-Combo በኩል በአቅራቢዎች መካከል ያሰራጩ (model: "auto" ወይም kr/glm/etc-combo)።
  3. ለእያንዳንዱ ግንኙነት የRPM ገደቦችን ያዘጋጁ፤ ይህን በAntigravity አቅራቢው ማስተካከያ ገጽ ውስጥ ያድርጉ (Dashboard → Providers → Antigravity → ግንኙነት → የተመን ገደብ)። ለቀጣይነት ያለው አጠቃቀም 3060 RPM ሊደገፍ የሚችል ከፍተኛ ገደብ ነው።
  4. የተረጋጋ፣ በኦፕሬተሩ የሚቆጣጠር የወደላይ አገልግሎት አውታረ መረብን ይጠቀሙ፣ እና አንድን መለያ ተዛማጅነት በሌላቸው ተጠቃሚዎች ወይም የሥራ ጭነቶች መካከል ከማጋራት ይቆጠቡ።
  5. ከታገዱ፦ Google የላከውን ትክክለኛ quota_exceeded / service disabled ምላሽ አካል በመጠቀም፣ በsupport.google.com → "Restore Workspace/Account access" በኩል ይግባኝ ይጠይቁ። መለያው እንደሚመለስ ዋስትና የለም።

የአካባቢ ማጣቀሻው የእያንዳንዱን የክሬዲት ሁነታ የመለያ እና የወጪ አንድምታዎች ይመዘግባል።

የሚነኩ ነጥቦች፦

  • open-sse/executors/antigravity.tsprocess.env.ANTIGRAVITY_CREDITSን ያነባል
  • src/lib/oauth/providers/antigravity.ts — የማረጋገጫ መረጃ ማገናኛ
  • የመጀመሪያው የክስተት ሪፖርት፦ ውይይት #1183

የCLI አሻራ መዝገብ — open-sse/config/cliFingerprints.ts

ከኦፊሴላዊ CLIዎች የmitmproxy ዱካዎች የተያዙትን ትክክለኛ የራስጌ ቅደም ተከተልና የJSON የይዘት መስኮች ቅደም ተከተል የሚወስን የየአቅራቢው ሰንጠረዥ። በአሁኑ ጊዜ የተመዘገቡት፦ codexclaude፣ እንዲሁም በ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)

  1. selfsigned በኩል በራስ የተፈረመ ሰርተፍኬት ይፍጠሩ (RSA-2048፣ SHA-256፣ 1y) — cert/generate.ts
  2. ሰርተፍኬቱን በስርዓቱ የታመነ ማከማቻ ውስጥ ይጫኑ — cert/install.ts
  3. 127.0.0.1 daily-cloudcode-pa.googleapis.com የhosts ግቤት ያክሉ — dns/dnsConfig.ts
  4. src/mitm/server.cjsን ከROUTER_API_KEY + MITM_LOCAL_PORT (ነባሪ 443) ጋር ያስጀምሩ
  5. 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ን ይመልከቱ።


አቅራቢ ሲቀይር አሻራዎችን ማዘመን

  1. ይፋዊ የCLI ትራፊክን በmitmproxy ይቅረጹ (የTLS ጣልቃ ገብነት + ዳምፕ)
  2. JA3/JA4ን እና ትክክለኛውን የራስጌ ቅደም ተከተል ያውጡ
  3. ተገቢውን CLI_FINGERPRINTS[...] ግቤት ያዘምኑ
  4. .env.example ውስጥ ያለውን ተዛማጅ *_USER_AGENT ነባሪ ያሳድጉ
  5. የTLS መጨባበጡ ራሱ ከተቀየረ፣ ተገቢውን የአቅራቢ መጠቅለያ ወይም የwreq-js browser: አማራጭ ያዘምኑ
  6. የአቅራቢውን የተወሰኑ የTLS ሙከራዎች ያስኪዱ እና በቀጥታው አቅራቢ ላይ በእጅ የካናሪ ሙከራ ያድርጉ
  7. በፓች ልቀት ያሰራጩ፤ በ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 ስውርነት ምንጭ አለመኖሩን ይቀጥላል

ተጨማሪ ይመልከቱ