* 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.
25 KiB
Stealth Guide (Lietuvių)
🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 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 · 🇱🇻 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
Tiesos šaltinis:
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/Paskutinį kartą atnaujinta: 2026-09-02 — v3.8.51 Auditorija: inžinieriai, prižiūrintys konkretiems teikėjams skirtas maskavimo integracijas.
„OmniRoute“ integruojamas su teikėjais, kurių perimetro sistemos aktyviai identifikuoja neoficialių klientų skaitmeninius atspaudus (TLS JA3/JA4, antraščių tvarką, JSON turinio struktūrą, vientisumo prieigos raktus). Šiame puslapyje aprašomi „OmniRoute“ suteikiami maskavimo mechanizmai ir jų įgyvendinimo vietos.
Teisinė ir etinė pastaba
Maskavimo funkcijos sukurtos tam, kad „OmniRoute“ galėtų veikti kaip suderinamumo sluoksnis tarp naudotojams priklausančių oficialių paskyrų („Claude Code CLI“, „Codex“, „Antigravity“, „Cursor“ ir kt.) ir „OmniRoute“ suvienodintos API. Jos nėra skirtos sukčiavimo aptikimo sistemoms apeiti, prisijungimo duomenims bendrinti ar teikėjų paslaugų teikimo sąlygoms pažeisti. Prižiūrėtojai tikisi, kad operatoriai laikysis pirminių teikėjų paslaugų teikimo sąlygų, su kuriomis sutiko kurdami paskyras.
TLS skaitmeninių atspaudų sluoksnis
open-sse/utils/tlsClient.ts — wreq-js („Chrome 124“)
Nuolatinės wreq-js sesijos tingiai sukuriamos kiekvienai paskyros aprėpčiai ir nustatytam tarpiniam serveriui. Viso proceso mastu TlsClient telkinyje laikoma ne daugiau kaip 128 sesijos, kurios imituoja „Chrome 124“ naršyklę „macOS“ sistemoje, skirtą pirminiams serveriams už „Cloudflare“. TlsClient.fetch() saugiai nutraukia veikimą, kai vietinė vykdymo aplinka nepasiekiama; iškviečiančioji pusė gali aiškiai pasirinkti atsarginį mechanizmą už šio apgaubo ribų.
- Sesijos profilis:
browser: "chrome_124", os: "macos" - Tarpinio serverio nustatymas (prioriteto tvarka):
HTTPS_PROXY→HTTP_PROXY→ALL_PROXY(taip pat mažosiomis raidėmis) - Skirtasis laikas:
TLS_CLIENT_TIMEOUT_MS(paveldimas išFETCH_TIMEOUT_MS, numatytoji reikšmė – 600000) wreq-jsatsakas yra suderinamas su fetch (headers,text(),json(),clone(),body).- Pirmojo baito stebėjimo mechanizmas (
open-sse/utils/tlsFirstByteWatchdog.ts, #12656):TlsClient.fetch()grąžina rezultatą vos gavus pirminio serverio antraštes, todėl vienTLS_CLIENT_TIMEOUT_MSnegali apriboti atsako turinio, kuris niekada nepateikia pirmojo baito.guardTlsFirstByte()vykdo lenktynes tarp pirmojo atsako turinioread()irTLS_FIRST_BYTE_WATCHDOG_MS(numatytoji reikšmė –10000,0jį išjungia); tinkamai veikiantis atsako turinys nepaveikiamas, o užstrigęs atsako turinys atšaukia wreq skaitytuvą ir leidžia esamaiproxyFetchTLS atsarginio mechanizmo logikai pereiti prie tiesioginio / tarpinio serverio išsiuntimo mechanizmo (pakartotinai siųsti nesaugi užklausa, pvz., POST su turiniu, vis tiek pateikia klaidą, užuot buvusi nepastebimai siunčiama pakartotinai).
Žiniatinklio slapukų teikėjo perdavimo mechanizmas — wreq-js 3.2.0
open-sse/services/tlsClientBase.ts yra bendras toliau nurodytų penkių specializuotų žiniatinklio slapukų perdavimo mechanizmų adapteris. Kiekvienas paprastas teikėjo apgaubas pasirenka naršyklės / OS profilį. Adapteris naudoja vieną wreq vykdymo aplinkos įkėlimo mechanizmą ir perdavimo mechanizmų telkinį iš open-sse/utils/tlsClient.ts, susietą pagal profilį, OS ir nustatytą tarpinį serverį, o kiekvienoje užklausoje naudojama cookieMode: "ephemeral". Todėl paskyros ir užklausos bendrai naudoja perdavimo lygmens ryšius, tačiau niekada nebendrina wreq sesijos ar slapukų saugyklos.
| Teikėjas | Profilis | Imituojama OS | Srauto EOF politika |
|---|---|---|---|
| Claude | chrome_146 |
Linux | įtraukti [DONE] |
| Perplexity | firefox_148 |
macOS | įtraukti event: end_of_stream |
| Grok | chrome_146 |
Linux | neįtraukti [DONE] |
| Notion | chrome_146 |
Windows | įtraukti [DONE] |
| LMArena | chrome_146 |
Windows | nėra žymeklio; užverti gavus vietinį EOF |
- Srautinis perdavimas tiesiogiai naudoja vietinio atsako
ReadableStream; laikinasis failas ar pagalbinis procesas nesukuriamas. - Prieš pateikiant srautą patikrinama iki 256 pradinių baitų. SSE teikėjai buferizuoja ne SSE klaidas; „Grok“ / „LMArena“ susieja „Cloudflare“ patikras su
403, o HTML tarpinius puslapius – su502. - Vietinės užklausos skirtajam laikui ir toliau taikomas absoliutus griežtas JS terminas. Užstrigimas panaikina ir užveria tik paveiktą profilio / OS / tarpinio serverio perdavimo mechanizmą, o prieš kitą užklausą jis sukuriamas iš naujo.
- Tarpinio serverio nustatymo prioritetas: kiekvieno iškvietimo
proxyUrl→ užklausos aprėpties paskyros / valdymo skydelio kontekstas →HTTPS_PROXY/HTTP_PROXY/ALL_PROXY(įskaitant variantus mažosiomis raidėmis). Nustatymo klaidos saugiai nutraukia veikimą ir neleidžia nutekėti tiesioginiam ryšiui. „LMArena“ sąmoningai atlieka nustatymą pagalarena.ai. byteResponsegrąžina pagal turinio tipą pažymėtądata:URL be UTF-8 duomenų sugadinimo.- Klaidos yra
TlsClientUnavailableError(paketas / priedas nepasiekiamas),TlsClientHangError(viršytas terminas) irWreqTransportCapacityError(bendroji sesijos talpos klaida), kai visi 128 riboti profilio / OS / tarpinio serverio lizdai yra aktyvūs arba užveriami.
Pirmiau aprašyta bendroji TlsClient sesija išlieka specializuota nuolatinei naršyklės palaikomai slapukų būsenai. Abu keliai pakartotinai naudoja vieną podėlyje saugomą wreq modulio įkėlimo mechanizmą ir proceso gyvavimo ciklo apdorojimo mechanizmą; jų telkiniai lieka atskiri, nes jų slapukų gyvavimo trukmė sąmoningai skiriasi.
Profilius palaiko užfiksuotos versijos paketas, tačiau realus WAF priimtinumas gali kisti nepriklausomai nuo vietinių sutarties testų. Prieš teigdami, kad pasiektas lygiavertiškumas pirminio teikėjo naršyklei, patikrinkite skaitmeninių atspaudų pakeitimus naudodami aiškiai autorizuotą realią paskyrą.
Claude Code maskavimo rinkinys
Kai cliCompatMode įjungtas, OmniRoute pertvarko siunčiamas Claude užklausas taip, kad jų nebūtų galima atskirti nuo claude-cli srauto. Kartu veikia trys moduliai:
claudeCodeFingerprint.ts
Apskaičiuoja 3 simbolių cc_version kontrolinį atspaudą, įterpiamą į atsiskaitymo antraštę:
SHA256(SALT + msg[4] + msg[7] + msg[20] + version)[:3]
FINGERPRINT_SALT = "59cf53e54c78"(įrašyta tiesiogiai; sutampa su oficialiu klientu)- Įvestys: pirmojo naudotojo pranešimo teksto simboliai, esantys 4, 7 ir 20 indeksuose, bei versijos eilutė
- Išvestis: 3 simbolių šešioliktainis prefiksas
claudeCodeCCH.ts (kliento turinio maiša)
Serverio pusės vientisumo patikra, kurią oficiali Claude Code CLI apskaičiuoja naudodama Bun/Zig. OmniRoute ją iš naujo įgyvendina su xxhash-wasm:
- Serializuoti turinį naudojant
cch=00000;vietos rezervavimo reikšmę xxhash64(bytes, seed) & 0xFFFFF- Nuliais iš kairės papildytas 5 simbolių mažųjų raidžių šešioliktainis skaičius
- Pakeisti
cch=00000;apskaičiuotu žetonu
Konstantos:
- Pradinė reikšmė:
0x6e52736ac806831e - Šablonas:
/\bcch=([0-9a-f]{5});/
claudeCodeObfuscation.ts
Po pirmojo „jautrių“ klientų pavadinimų simbolio įterpia Unicode nulinio pločio jungiklį (U+200D), kad aukštesnio lygio filtrai negalėtų jų aptikti naudodami grep. Numatytasis žodžių sąrašas:
opencode, open-code, cline, roo-cline, roo_cline, cursor, windsurf,
aider, continue.dev, copilot, avante, codecompanion
Taikoma: system blokams, visam messages[].content ir tools[].description / tools[].function.description turiniui. Operatorius gali pakeisti naudodamas setSensitiveWords().
claudeCodeCompatible.ts — anthropic-compatible-cc-* teikėjai
Trečiųjų šalių Anthropic tarpinėms tarnyboms, priimančioms tik „tikrą Claude Code“ srautą:
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"- Pagal numatytuosius nustatymus
anthropic-beta = "claude-code-20250219,interleaved-thinking-2025-05-14,effort-2025-11-24" - Kiekvieno ryšio perjungiklis „Įjungti redact-thinking beta“ prideda
redact-thinking-2026-02-12, kai CC Compatible aukštesnio lygio tarnybai konkrečiai reikia redaguotų samprotavimo srautų - Kiekvieno ryšio perjungiklis „Įjungti apibendrinto samprotavimo rodymą“ išsaugo
providerSpecificData.requestDefaults.summarizeThinkingir pridedadisplay: "summarized"prie CC Compatible samprotavimo užklausų, kuriose rodymo režimas dar nenustatytas CONTEXT_1M_BETA_HEADER = "context-1m-2025-08-07"(Opus/Sonnet 4.x šeima)- Numatytasis kelias:
/v1/messages?beta=true
Susiję to paties rinkinio moduliai:
claudeCodeConstraints.ts— temperatūros ir podėlio valdymo taisyklėsclaudeCodeToolRemapper.ts— įrankių pavadinimų persiejimasclaudeCodeExtraRemap.ts— papildomas naudingosios apkrovos normalizavimas
Antigravity maskavimas
Antigravity užklausose kviečiančiojo tekstas išsaugomas baitas į baitą. OmniRoute neįterpia nulinio pločio simbolių į užklausas ir nepervadina ar neįterpia įrankių, kad imituotų IDE klientą.
antigravityHeaderScrub.ts
Prieš persiunčiant pašalina Stainless SDK žymeklius (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).
⚠️ Rizika: ANTIGRAVITY_CREDITS=always (didelė paskyros blokavimo rizika)
ANTIGRAVITY_CREDITS=always (naudojamas open-sse/executors/antigravity.ts) nukreipia kiekvieną užklausą per Antigravity AI Credit Overages (mokamus Google kreditus), užuot leidus nemokamo plano kvotai riboti naudojimą. Tai dokumentuota kaip funkcija, tačiau tai yra viena dažniausiai mūsų gaunamų pranešimų apie paslaugų teikimo sąlygų pažeidimą priežasčių — kelios Google Ultra paskyros buvo užblokuotos su 403 / "service disabled for ToS violation" / insufficient_quota, kai kelias valandas veikė su =always.
Apribojimus taiko Google, ir OmniRoute negali jų išvengti. Aplinkos kintamojo pavadinimas ir esama dokumentacija sudaro įspūdį, kad šią parinktį saugu įjungti, tačiau taip nėra.
Kodėl tai piktnaudžiavimo aptikimo sistemas suaktyvina labiau nei vien nemokamo plano naudojimas:
- Nuolatinės automatizuotos vienos Google paskyros išlaidos pažymimos kitaip nei nemokamo plano naudojimas, kuris pasiekia kvotą ir sustoja.
- Papildomų kreditų naudojimui netaikoma spartos riba, todėl netinkamai sukonfigūruotas klientas per kelias minutes gali išleisti kelis šimtus USD ir atrodyti kaip API rakto perpardavimas arba robotų srautas.
- Kai keli OmniRoute naudotojai lygiagrečiai naudoja papildomus kreditus iš to paties išorinio IP adreso, signalas dar labiau sustiprėja.
Rekomenduojama praktika:
- Palikite numatytąją reikšmę
ANTIGRAVITY_CREDITS=off, nebent operatorius aiškiai prisiima mokamų kreditų naudojimo ir paskyrai taikomų sankcijų riziką.retrypirmiausia siunčia įprastą užklausą ir ne daugiau kaip vieną kartą įterpia kreditus po tinkamos kvotos 429 klaidos;alwaysįterpia kreditus jau į pirmąją užklausą. - Paskirstykite apkrovą tarp teikėjų naudodami Auto-Combo (
model: "auto"arbakr/glm/etc-combo), užuot apkrovę vieną Antigravity paskyrą iki ribos. - Nustatykite kiekvieno ryšio RPM ribas Antigravity teikėjo redagavimo puslapyje (Dashboard → Providers → Antigravity → ryšys → spartos apribojimas). 30–60 RPM yra pagrįsta viršutinė ilgalaikio naudojimo riba.
- Naudokite stabilų, operatoriaus valdomą aukštesnio lygio tinklo ryšį ir venkite vieną paskyrą bendrinti tarp nesusijusių naudotojų ar darbo krūvių.
- Jei paskyra užblokuota: pateikite apeliaciją per
support.google.com→ „Restore Workspace/Account access“, pridėdami tikslų Google atsiųstąquota_exceeded/service disabledatsakymo turinį. Paskyros atkūrimas negarantuojamas.
Aplinkos kintamųjų žinyne aprašytos kiekvieno kreditų režimo pasekmės paskyrai ir išlaidoms.
Susijusios vietos:
open-sse/executors/antigravity.ts— nuskaitoprocess.env.ANTIGRAVITY_CREDITSsrc/lib/oauth/providers/antigravity.ts— prisijungimo duomenų perdavimas- Pradinis incidento pranešimas: diskusija #1183
CLI kontrolinių požymių registras — open-sse/config/cliFingerprints.ts
Kiekvienam teikėjui skirta lentelė, nustatanti tikslią antraščių ir JSON turinio laukų tvarką, užfiksuotą iš oficialių CLI mitmproxy trasų. Šiuo metu užregistruoti: codex, claude, taip pat vykdymo metu nustatomi profiliai faile providerHeaderProfiles.ts, skirti antigravity ir github.
interface CliFingerprint {
headerOrder: string[]; // skiriamos didžiosios ir mažosios raidės
bodyFieldOrder: string[]; // aukščiausio lygio JSON raktai
userAgent?: string | (() => string);
extraHeaders?: Record<string, string>;
}
Įjunkite arba išjunkite kiekvienam teikėjui naudodami aplinkos kintamuosius (žr. toliau). Kai ši funkcija išjungta, antraštės ir turinio raktai pateikiami tokia tvarka, kokią nustatė Node/JSON, todėl juos lengva identifikuoti pagal kontrolinius požymius.
MITM tarpinis serveris (Antigravity, Linux/macOS/Windows)
CLI, kurių dvejetainių failų negalima nukreipti naudojant OPENAI_BASE_URL, atveju OmniRoute paleidžia vietinį TLS užbaigiantį tarpinį serverį. Galiniai taškai yra kataloge src/app/api/cli-tools/antigravity-mitm/.
| Metodas | Galinis taškas | Paskirtis |
|---|---|---|
| GET | /api/cli-tools/antigravity-mitm |
Būsena — veikia, pid, dnsConfigured, certExists |
| POST | /api/cli-tools/antigravity-mitm |
Paleisti MITM (reikalingi apiKey ir sudoPassword) |
| DELETE | /api/cli-tools/antigravity-mitm |
Sustabdyti MITM |
| GET | /api/cli-tools/antigravity-mitm/alias |
Pateikti modelių alternatyviuosius vardus |
| PUT | /api/cli-tools/antigravity-mitm/alias |
Išsaugoti įrankio modelių alternatyviuosius vardus |
Perimamas tikslinis pagrindinis kompiuteris: daily-cloudcode-pa.googleapis.com („Antigravity“ aukštesniojo lygio serveris).
Paleidimo seka (src/mitm/manager.ts::startMitm)
- Sugeneruoti savarankiškai pasirašytą sertifikatą naudojant
selfsigned(RSA-2048, SHA-256, 1 metams) —cert/generate.ts - Įdiegti sertifikatą sistemos patikimų sertifikatų saugykloje —
cert/install.ts - Pridėti pagrindinių kompiuterių įrašą
127.0.0.1 daily-cloudcode-pa.googleapis.com—dns/dnsConfig.ts - Paleisti
src/mitm/server.cjssuROUTER_API_KEYirMITM_LOCAL_PORT(numatytoji reikšmė443) - Įrašyti PID į
<DATA_DIR>/mitm/.mitm.pid
Dinaminis Linux patikimų sertifikatų saugyklos aptikimas — cert/install.ts
getLinuxCertConfig() nuosekliai tikrina prioritetų sąrašą ir pasirenka pirmą esamą katalogą:
| Distribucijų šeima | Katalogas | Atnaujinimo komanda |
|---|---|---|
| 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 |
Sertifikato failo pavadinimas: omniroute-mitm.crt. Kontrolinis požymis tikrinamas naudojant getCertFingerprint() (DER SHA-1).
Be to, kai pasiekiama certutil, updateNssDatabases() įdiegia sertifikatą kiekvieno naudotojo NSS duomenų bazėse: ~/.pki/nssdb, ~/snap/chromium/.../nssdb, visuose Firefox profiliuose (įskaitant snap), naudodama slapyvardį OmniRoute MITM Root CA.
macOS / Windows
- macOS:
security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain - Windows: padidintomis teisėmis paleista PowerShell →
certutil -addstore Root
Autentifikavimas
Visuose MITM galiniuose taškuose privalomas valdymo autentifikavimas (requireCliToolsAuth). Sudo slaptažodis laikomas modulio srityje (niekada ne globalThis) ir išvalomas iškvietus stopMitm().
User-Agent perrašymai — aplinkos kintamieji (.env.example 12 skyrius)
| Kintamasis | Numatytoji reikšmė |
|---|---|
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 |
Juos naudoja open-sse/executors/base.ts::buildHeaders(), dinamiškai atlikdama paiešką. Atnaujinkite juos, kai paslaugų teikėjai išleidžia naujas CLI versijas — pasenusios UA eilutės pradedamos atmesti kaip priklausančios pasenusiems klientams.
CLI suderinamumo režimo perjungikliai (.env.example 13 skyrius)
| Kintamasis | Poveikis |
|---|---|
CLI_COMPAT_CODEX=1 |
Codex kontrolinis atspaudas |
CLI_COMPAT_CLAUDE=1 |
claude-cli kontrolinis atspaudas |
CLI_COMPAT_GITHUB=1 |
GitHub Copilot Chat kontrolinis atspaudas |
CLI_COMPAT_ANTIGRAVITY=1 |
Antigravity kontrolinis atspaudas |
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 |
Įjungti visus pirmiau nurodytus |
Paslaugų teikėjo IP adresas visada išsaugomas — perjungiklis tik pakeičia užklausos perdavimo formato atvaizdą, bet nekeičia išeinančio srauto IP adreso.
Gaunamų antraščių sanitizavimas
Prieš persiųsdama „OmniRoute“ išvalo gaunamas kliento antraštes, kad iš „Cursor“ gauta užklausa neatskleistų User-Agent: Cursor/X.Y.Z „Claude“ aukštesniojo lygio paslaugai. Neleidžiamų reikšmių sąrašą, sinchronizuojamą su „Zod“ schemomis ir vienetų testais, rasite src/shared/constants/upstreamHeaders.ts.
Kontrolinių atspaudų atnaujinimas paslaugų teikėjui juos pakeitus
- Užfiksuokite oficialaus CLI srautą naudodami
mitmproxy(TLS perėmimas ir išklotinė) - Išgaukite JA3/JA4 ir tikslų antraščių eiliškumą
- Atnaujinkite atitinkamą
CLI_FINGERPRINTS[...]įrašą - Atnaujinkite atitinkamą numatytąją
*_USER_AGENTreikšmę faile.env.example - Jei pasikeitė pati TLS prisijungimo procedūra, atnaujinkite atitinkamą paslaugų teikėjo apvalkalą arba wreq-js parinktį
browser: - Paleiskite konkrečiam paslaugų teikėjui skirtus TLS testus ir rankinį bandomąjį testą su veikiančia paslaugų teikėjo sistema
- Išleiskite pataisos leidimą; dokumentuokite pakeitimą faile
CHANGELOG.md
Testai
open-sse/services/__tests__/claudeTlsClient.test.ts— bendrinamo TLS apvalkalo veikimastests/unit/anthropic-cache-fingerprint.test.ts— kontrolinio atspaudo determinizmastests/unit/chatgpt-web-source-retirement.test.ts— bendrasis slaptas „ChatGPT Web“ šaltinis lieka pašalintas, o „Codex Web“ — išlaikytas
Taip pat žr.
- RESILIENCE_GUIDE.md — kas nutinka, kai slaptasis maršrutas gauna
403 - TROUBLESHOOTING.md
- ENVIRONMENT.md — išsamus aplinkos kintamųjų žinynas
- CLI-TOOLS.md — MITM darbo eigos vaizdas operatoriui