1,104 mirrors rewritten over five passes of run-translation on the 22-source core set: the 14 sources edited since their translation, the 322 mirrors that were still English copies, and the frontmatter the old extractor leaked into the newer locales' bodies. The pipeline now caches per-`## `-section hashes and retranslates only changed sections, never reuses a section that is still English, rebuilds English-copy / leaked mirrors even when the source is unchanged, merges the state on save (parallel runs), and the drift gate (scoped to the core set) is blocking. Final audit: 0 stale, 0 English copies, 0 leaked frontmatter across 1,430 core mirrors. ⚠️ base-red inherited: #12732
81 KiB
OmniRoute Codebase Documentation (Bahasa Melayu)
🌐 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 · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇹 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
Versi: v3.8.51 Kemas kini terakhir: 2026-06-28 Khalayak: Jurutera yang menyumbang kepada OmniRoute atau membina integrasi di atasnya.
Untuk rajah seni bina peringkat tinggi dan rasional di sebalik setiap subsistem, baca ARCHITECTURE.md. Untuk penerangan mendalam tentang setiap subsistem (Auto Combo, pelayan MCP, pelayan A2A, Kemahiran, Memori, Ejen Awan, Ketahanan, Pemampatan dan sebagainya), lihat fail khusus masing-masing dalam direktori
docs/ini.
Fail ini menerangkan perkara yang wujud dalam repositori pada masa ini supaya jurutera baharu boleh menavigasi pepohon, memahami pelapisan masa jalan dan mengetahui tempat untuk menambahkan kod tanpa mencipta modul baharu.
1. Tindanan Teknologi
| Aspek | Pilihan |
|---|---|
| Kerangka web | Next.js 16 (App Router, output kendiri, tiada perisian tengah global) |
| Bahasa | TypeScript 6.0+ — sasaran ES2022, module: esnext, moduleResolution: bundler, strict: false |
| Masa jalan | Node.js >=22.22.2 <23 atau >=24.0.0 <27 (dikuatkuasakan melalui engines + SUPPORTED_NODE_RANGE) |
| Pangkalan data | SQLite melalui better-sqlite3 (tunggal, penjurnalan WAL) |
| Desktop | Electron 41 + electron-builder 26.10 (ruang kerja berasingan di electron/) |
| Ujian | Pelaksana ujian asli Node (unit/integrasi), Vitest (MCP, autoCombo, cache), Playwright (e2e + protocols-e2e) |
| Binaan | Next.js kendiri melalui scripts/build/build-next-isolated.mjs |
| Lint/format | Konfigurasi rata ESLint + Prettier (lint-staged melalui pra-komit Husky) |
| Sistem modul | ESM di semua tempat ("type": "module") |
| Ruang kerja | Ruang kerja npm — open-sse ialah satu-satunya subruang kerja |
Alias laluan (tsconfig.json):
@/*→src/*@omniroute/open-sse→open-sse/index.ts@omniroute/open-sse/*→open-sse/*
Port HTTP lalai: 20128 (API dan papan pemuka berkongsi proses yang sama). Direktori
data ialah pemboleh ubah persekitaran DATA_DIR, dengan nilai lalai ~/.omniroute/.
2. Susun Atur Repositori
OmniRoute/
├── src/ Aplikasi Next.js (App Router, pustaka, domain, pelayan, dikongsi)
├── open-sse/ Ruang kerja enjin penstriman (@omniroute/open-sse)
├── electron/ Pembalut desktop (proses utama + pramuat Electron 41)
├── bin/ Titik masuk CLI (omniroute, reset-password)
├── tests/ Unit, integrasi, e2e, protocols-e2e, penterjemah, keselamatan, lekapan
├── scripts/ Skrip bantuan binaan, penyegerakan, semakan, migrasi dan masa jalan
├── docs/ Dokumentasi awam (direktori ini)
├── public/ Aset statik, manifes PWA, pekerja perkhidmatan
├── config/ Sampel konfigurasi masa jalan
├── images/ Aset pemasaran/tangkapan skrin
├── _ideia/, _references/, _mono_repo/, _tasks/ Catatan sementara / perancangan dalaman (tidak diedarkan)
├── CLAUDE.md Peraturan repositori untuk Claude Code
├── AGENTS.md Rujukan seni bina yang lebih mendalam untuk ejen
├── package.json v3.8.51, akar ruang kerja
└── tsconfig.json Alias laluan + pilihan pengkompil teras
3. src/ — Aplikasi Next.js
src/
├── app/ Halaman App Router + laluan API
├── lib/ Pustaka teras (DB, pengesahan, OAuth, kemahiran, memori, …)
├── domain/ Lapisan domain tulen (dasar, sandaran, kos, sekatan, …)
├── server/ Modul khusus pelayan (authz, cors, pengesahan)
├── shared/ Jenis, pemalar, pengesahan, kontrak, utiliti (selamat merentas sempadan)
├── mitm/ Pembantu proksi orang tengah untuk penyepaduan CLI
├── models/ Metadata / pengaliasan model setempat
├── sse/ Pengendali SSE legasi yang masih berada di bawah src/ (bukan open-sse/)
├── store/ Storan keadaan sisi klien
├── middleware/ Utiliti perisian tengah peringkat laluan (bukan perisian tengah global Next.js)
├── scripts/ Skrip dalam pepohon yang boleh diimport oleh kod aplikasi
├── types/ Jenis TS ambien dan dikongsi
├── i18n/ Himpunan lokal
├── instrumentation.ts Cangkuk instrumentasi Next.js
├── instrumentation-node.ts
└── proxy.ts Pembantu pemula proksi peringkat atas
3.1 src/app/ — App Router
App Router mendedahkan kedua-dua UI papan pemuka dan API HTTP awam/pengurusan. Tiada perisian tengah global — pemintasan dilakukan bagi setiap laluan.
Segmen peringkat atas di bawah src/app/:
| Laluan | Tujuan |
|---|---|
api/ |
Semua laluan API HTTP (lihat pecahan di bawah) |
a2a/ |
Titik akhir JSON-RPC 2.0 A2A (POST /a2a) |
.well-known/agent.json/ |
Dokumen penemuan Kad Ejen A2A |
(dashboard)/ |
UI papan pemuka (kumpulan laluan, tiada awalan URL) |
auth/, login/, forgot-password/, callback/ |
Aliran pengesahan |
landing/ |
Halaman pemasaran/pendaratan |
docs/ |
Pemapar dokumentasi API terbenam |
status/, maintenance/, offline/ |
Halaman operasi |
privacy/, terms/ |
Halaman perundangan |
400/, 401/, 403/, 408/, 429/, 500/, 502/, 503/ |
Halaman ralat statik |
error.tsx, global-error.tsx, not-found.tsx, forbidden/, loading.tsx |
Sempadan ralat/pemuatan rangka kerja |
layout.tsx, page.tsx, globals.css, manifest.ts |
Kerangka akar |
3.1.1 src/app/(dashboard)/dashboard/ — Halaman UI
agents, analytics, api-manager, audit, auto-combo, batch, cache,
changelog, cli-tools, cloud-agents, combos, compression, context,
costs, endpoint, health, limits, logs, memory, onboarding,
playground, providers, search-tools, settings, skills, system,
translator, usage, webhooks, serta page.tsx, HomePageClient.tsx,
BootstrapBanner.tsx akar.
3.1.2 src/app/api/ — Kumpulan API peringkat atas
src/app/api/
├── a2a/{status, tasks}
├── acp/
├── admin/
├── analytics/
├── assess/
├── auth/
├── batches/
├── cache/
├── cli-tools/
├── cloud/{codex-responses-ws}
├── combos/
├── compliance/
├── compression/
├── context/
├── db/, db-backups/
├── evals/
├── fallback/
├── files/
├── health/
├── init/
├── internal/{concurrency}
├── keys/
├── logs/
├── mcp/{audit, sse, status, stream, tools}
├── memory/{health, [id]/, route.ts}
├── model-combo-mappings/
├── models/
├── monitoring/
├── oauth/
├── openapi/
├── policies/
├── pricing/
├── provider-metrics/, provider-models/, provider-nodes/
├── providers/
├── rate-limit/, rate-limits/
├── resilience/
├── restart/, shutdown/
├── search/
├── sessions/
├── settings/
├── skills/{executions, [id], install, marketplace, route.ts, skillssh}
├── storage/
├── sync/, synced-available-models/
├── system/
├── tags/
├── telemetry/
├── token-health/
├── translator/
├── tunnels/
├── services/ Pengurusan perkhidmatan terbenam (9router, cliproxy) — LOCAL_ONLY
├── upstream-proxy/
├── usage/
├── v1/ API awam serasi OpenAI
├── v1beta/ Keserasian gaya Gemini
├── version-manager/
└── webhooks/
3.1.2a src/app/api/services/ — Pengurusan Perkhidmatan Terbenam
Laluan untuk memasang, memulakan, menghentikan dan memantau 9Router serta CLIProxyAPI.
Semua laluan dikelaskan sebagai LOCAL_ONLY (gelung balik sahaja, peraturan tegas #17) kerana laluan ini
boleh menjalankan npm install dan mencetuskan proses anak.
src/app/api/services/
├── 9router/
│ ├── _lib.ts pembantu getOrInitSupervisor()
│ ├── install/route.ts POST — npm install melalui execFile
│ ├── start/route.ts POST — supervisor.start()
│ ├── stop/route.ts POST — supervisor.stop()
│ ├── restart/route.ts POST — supervisor.restart()
│ ├── update/route.ts POST — npm install versi lebih baharu
│ ├── rotate-key/route.ts POST — jana kunci API baharu + mulakan semula
│ ├── status/route.ts GET — status langsung + DB + metadata versi
│ └── auto-start/route.ts POST — togol bendera auto_start
├── cliproxy/
│ ├── _lib.ts pembantu getOrInitSupervisor()
│ ├── install/route.ts POST — npm install
│ ├── start/route.ts POST — supervisor.start()
│ ├── stop/route.ts POST — supervisor.stop()
│ ├── restart/route.ts POST — supervisor.restart()
│ ├── update/route.ts POST — npm install versi lebih baharu
│ ├── status/route.ts GET — status langsung + DB + metadata versi
│ └── auto-start/route.ts POST — togol bendera auto_start
└── [name]/
└── logs/route.ts GET — ekor log SSE (dikongsi oleh semua perkhidmatan)
UI papan pemuka yang sepadan:
src/app/(dashboard)/dashboard/providers/services/ — halaman dua tab (CLIProxyAPI + 9Router).
Proksi songsang untuk UI terbenam 9Router:
src/app/(dashboard)/dashboard/providers/services/[name]/embed/[[...path]]/route.ts
Kupasan mendalam: docs/frameworks/EMBEDDED-SERVICES.md
3.1.3 src/app/api/v1/ — API awam serasi OpenAI
v1/
├── accounts/[id]/ carian akaun
├── agents/tasks/[id]/, agents/tasks/ titik akhir tugas bercirikan A2A
├── api/ pembantu API dalaman yang didedahkan di bawah v1/api
├── audio/{speech, transcriptions}/ TTS + STT
├── batches/[id]/{cancel}, batches/ API Kelompok OpenAI
├── chat/completions/ Pelengkapan Sembang (titik akhir utama)
├── completions/ Pelengkapan teks legasi
├── embeddings/ Pembenaman
├── files/[id]/, files/ API Fail
├── _helpers/ Pembantu laluan dikongsi (tiada URL awam)
├── images/{edits, generations}/ Penjanaan + penyuntingan imej
├── issues/ Titik akhir pembantu triage
├── management/{proxies}/ Laluan berskop pengurusan dalam v1
├── messages/{count_tokens}/ Keserasian mesej gaya Anthropic
├── models/ Penyenaraian model (`route.ts`, `catalog.ts`)
├── moderations/ Penyederhanaan
├── music/ Penjanaan muzik
├── providers/[provider]/ Operasi mengikut penyedia
├── quotas/{check} Probe kuota
├── registered-keys/ Pentadbir kunci berdaftar
├── rerank/ Penyusunan semula kedudukan
├── responses/[...path]/ API Respons OpenAI (tangkap semua)
├── search/ Carian web
├── videos/ Penjanaan video
├── ws/ Jambatan WebSocket
└── route.ts Pengendali indeks
Setiap fail laluan mengikut corak yang sama:
Laluan → Praterbang CORS → Pengesahan badan Zod → pengesahan pilihan
→ Penguatkuasaan dasar kunci API → delegasi pengendali (open-sse)
v1beta/ ialah permukaan keserasian gaya Gemini (pembalut nipis yang menterjemah kepada
saluran paip open-sse/handlers/ yang sama).
3.2 src/lib/ — Pustaka teras
Sentiasa import data, penyegerakan, OAuth, kemahiran, memori dan sebagainya melalui modul ini. Jadual tersebut mengumpulkan direktori sebenar dan fail peringkat atas yang penting.
| Modul | Tujuan |
|---|---|
a2a/ |
Pelayan protokol A2A: taskManager.ts, streaming.ts, taskExecution.ts, routingLogger.ts, skills/ (6 kemahiran: analisis kos, laporan kesihatan, penemuan penyedia, pengurusan kuota, penghalaan pintar, senarai keupayaan) |
acp/ |
Agent-Control-Protocol: index.ts, manager.ts, registry.ts |
api/ |
Pembantu API dalaman: requireManagementAuth.ts, requireCliToolsAuth.ts, errorResponse.ts |
auth/ |
managementPassword.ts (penetapan semula kata laluan / pencincangan) |
batches/ |
Perkhidmatan OpenAI Batches API (service.ts) |
catalog/ |
Penyegerakan katalog OpenRouter (openrouterCatalog.ts) |
cloudAgent/ |
Daftar ejen awan: api.ts, baseAgent.ts, db.ts, index.ts, registry.ts, types.ts, agents/{codex, devin, jules}.ts |
combos/ |
Pembantu peleraian gabungan |
compliance/ |
Audit + audit penyedia: index.ts, providerAudit.ts |
config/ |
Perekat konfigurasi masa jalan |
db/ |
Modul domain SQLite (lihat §3.2.1) |
display/ |
Pembantu UI/paparan yang digunakan oleh respons API |
embeddings/ |
Daftar perkhidmatan pembenaman |
env/ |
Pemuatan + introspeksi persekitaran |
evals/ |
Masa jalan penilaian |
guardrails/ |
piiMasker.ts, promptInjection.ts, visionBridge.ts, visionBridgeHelpers.ts, registry.ts, base.ts |
jobs/ |
Tugas latar belakang (autoUpdate.ts, …) |
memory/ |
Memori berterusan: store.ts, cache.ts, retrieval.ts, summarization.ts, extraction.ts, injection.ts, qdrant.ts, settings.ts, verify.ts, schemas.ts, types.ts |
monitoring/ |
observability.ts |
oauth/ |
Modul penyedia OAuth/import (22): agy, antigravity, claude, cline, codebuddy-cn, codex, cursor, devin-desktop, ghe-copilot, github, gitlab-duo, grok-cli-oauth, grok-cli, kilocode, kimi-coding, kiro, openference, qoder, trae, xai-oauth, zed-hosted, zed, serta services/, utils/, dan constants/oauth.ts |
plugins/ |
Pemuat pemalam (index.ts) |
promptCache/ |
prefixAnalyzer.ts, index.ts |
providerModels/ |
Kitaran hayat model terurus: modelDiscovery.ts, managedModelImport.ts, managedAvailableModels.ts, cursorAgent.ts |
providers/ |
Pembantu penyedia: catalog.ts, validation.ts, imageValidation.ts, claudeExtraUsage.ts, codexConnectionDefaults.ts, codexFastTier.ts, webCookieAuth.ts, managedAvailableModels.ts, requestDefaults.ts |
resilience/ |
settings.ts — tetapan untuk pemutus litar, tempoh bertenang, penguncian |
runtime/ |
Pengesanan ciri masa jalan |
search/ |
executeWebSearch.ts |
services/ |
Rangka kerja perkhidmatan terbenam: ServiceSupervisor.ts (penyelia proses anak generik dengan kunci operasi, penimbal cincin, pemeriksa kesihatan), bootstrap.ts (pendaftaran peringkat proses dan permulaan automatik), registry.ts (peta alat → penyelia), apiKey.ts (storan kunci AES-256-GCM), modelSync.ts (penyegerakan model berkala), ringBuffer.ts (penimbal log bulat 5 MB), healthCheck.ts (prob kesihatan HTTP), types.ts, embedWsProxy.ts (proksi WebSocket), installers/{ninerouter,cliproxy}.ts. Lihat docs/frameworks/EMBEDDED-SERVICES.md |
agentSkills/ |
Katalog + penjana Kemahiran Ejen: catalog.ts (getCatalog/getSkillById/filterCatalog/computeCoverage), generator.ts (generateAgentSkills → menulis skills/{id}/SKILL.md), openapiParser.ts (mengekstrak titik akhir REST daripada spesifikasi OpenAPI), cliRegistryParser.ts (mengekstrak subperintah CLI daripada bin/cli-registry), schemas.ts (Zod: AgentSkillSchema, SkillCoverageSchema, ListQuerySchema, GenerateBodySchema), types.ts (AgentSkill, SkillCoverage, SkillMarkdown, GeneratorReport). Digunakan oleh laluan REST (/api/agent-skills/*), alat MCP (omniroute_agent_skills_*), dan kemahiran A2A list-capabilities. Lihat AGENT-SKILLS.md. |
skills/ |
Rangka kerja kemahiran: registry.ts, executor.ts, interception.ts, injection.ts, sandbox.ts, custom.ts, hybrid.ts, builtins.ts, a2a.ts, providerSettings.ts, schemas.ts, skillssh.ts, types.ts, serta builtin/browser.ts |
spend/ |
batchWriter.ts (penimbal tulis-kemudian) |
sync/ |
bundle.ts, tokens.ts (Penyegerakan Awan) |
system/ |
Pembantu peringkat sistem |
translator/ |
Perekat penterjemah peringkat atas (mewakilkan kepada open-sse/translator/) |
usage/ |
Perakaunan penggunaan: costCalculator.ts, tokenAccounting.ts, usageHistory.ts, aggregateHistory.ts, usageStats.ts, callLogs.ts, callLogArtifacts.ts, fetcher.ts, providerLimits.ts, migrations.ts |
versionManager/ |
Kemas kini automatik + manifes versi |
ws/ |
Jambatan WebSocket |
zed-oauth/ |
Aliran OAuth editor Zed |
Fail peringkat teratas dalam src/lib/:
- Fail barrel lama
localDb.tstelah dialih keluar — pengguna mengimport modulsrc/lib/db/*tertentu secara langsung. proxyHealth.ts,proxyLogger.ts,tokenHealthCheck.ts,localHealthCheck.tsapiBridgeServer.ts,cacheLayer.ts,semanticCache.ts,settingsCache.tscloudSync.ts,initCloudSync.tscloudflaredTunnel.ts,ngrokTunnel.ts,tailscaleTunnel.tsconsoleInterceptor.ts,container.ts,gracefulShutdown.ts,idempotencyLayer.tsipUtils.ts,logEnv.ts,logPayloads.ts,logRotation.tsmodelAliasSeed.ts,modelCapabilities.ts,modelMetadataRegistry.ts,modelsDevSync.tspiiSanitizer.ts,pricingSync.tsapiKeyExposure.ts,cacheControlSettings.ts,dataPaths.ts,toolPolicy.tstranslatorEvents.ts,usageDb.ts,usageAnalytics.ts,webhookDispatcher.ts
3.2.1 src/lib/db/
Pangkalan data SQLite tunggal (getDbInstance() dalam core.ts, penjurnalan WAL).
Jangan sekali-kali menulis SQL mentah dalam laluan atau pengendali — gunakan modul-modul ini.
Sumber: diagrams/db-schema-overview.mmd
Modul domain (setiap satu mengurus satu atau lebih jadual): apiKeys.ts, backup.ts,
batches.ts, cleanup.ts, cliToolState.ts, combos.ts,
commandCodeAuth.ts, compression.ts, compressionAnalytics.ts,
compressionCacheStats.ts, compressionCombos.ts, compressionScheduler.ts,
contextHandoffs.ts, core.ts, creditBalance.ts, databaseSettings.ts,
detailedLogs.ts, domainState.ts, encryption.ts, evals.ts, files.ts,
healthCheck.ts, jsonMigration.ts, migrationRunner.ts,
modelComboMappings.ts, models.ts, oneproxy.ts, prompts.ts,
providers.ts, providerLimits.ts, proxies.ts, quotaSnapshots.ts,
readCache.ts, reasoningCache.ts, registeredKeys.ts, secrets.ts,
sessionAccountAffinity.ts, settings.ts, stateReset.ts, stats.ts,
syncTokens.ts, tierConfig.ts, upstreamProxy.ts, versionManager.ts,
webhooks.ts.
migrations/ mengandungi 168 fail .sql berversi (idempoten, bertransaksi) dan
dilaksanakan oleh migrationRunner.ts semasa permulaan.
Jadual yang dicipta merentas migrasi (jumlah 123):
a, account_key_limits, api_keys, batches, call_logs,
combo_adaptation_state, combos, command_code_auth_sessions,
compression_analytics, compression_cache_stats,
compression_combo_assignments, compression_combos, context_handoffs,
daily_usage_summary, db_meta, domain_budgets, domain_circuit_breakers,
domain_cost_history, domain_fallback_chains, domain_lockout_state,
eval_cases, eval_runs, eval_suites, files, hourly_usage_summary,
key_value, mcp_tool_audit, memories, model_combo_mappings,
provider_connections, provider_key_limits, provider_nodes,
proxy_assignments, proxy_logs, proxy_registry, quota_snapshots,
reasoning_cache, registered_keys, request_detail_logs,
routing_decisions, semantic_cache, session_account_affinity,
skill_executions, skills, sync_tokens, tier_assignments,
tier_config, upstream_proxy_config, usage_history, version_manager,
webhooks (serta jadual maya FTS5 untuk carian memori).
3.3 src/domain/ — Lapisan domain
Logik perniagaan tulen, tanpa I/O. Diimport oleh laluan dan pengendali.
| Fail | Tujuan |
|---|---|
policyEngine.ts |
Penyelesai dasar peringkat teratas |
fallbackPolicy.ts |
Pepohon keputusan sandaran |
costRules.ts |
Peraturan pengiraan kos |
lockoutPolicy.ts |
Keputusan sekatan model |
tagRouter.ts |
Penghalaan berasaskan tag |
comboResolver.ts |
Penyelesaian kombo daripada permintaan → senarai sasaran |
connectionModelRules.ts |
Penapis model bagi setiap sambungan |
modelAvailability.ts |
Semakan ketersediaan model |
degradation.ts |
Peralihan mod terdegradasi |
providerExpiration.ts |
Pengesanan akaun/kunci yang telah tamat tempoh |
quotaCache.ts |
Keputusan kuota yang dicache |
responses.ts, omnirouteResponseMeta.ts |
Pembantu bentuk respons |
configAudit.ts |
Audit perubahan konfigurasi |
assessment/ |
Penilaian model (mengikut RFC, dilaksanakan sebahagian) |
types.ts |
Jenis domain dikongsi |
3.4 src/server/ — Pelayan sahaja
Tidak boleh diimport daripada komponen klien.
server/
├── auth/loginGuard.ts
├── authz/
│ ├── classify.ts Mengelaskan laluan sebagai awam atau pengurusan
│ ├── assertAuth.ts Pembantu penegasan
│ ├── context.ts Konteks authz bagi setiap permintaan
│ ├── headers.ts
│ ├── pipeline.ts Saluran paip authz
│ ├── policies/ Dasar konkrit
│ └── types.ts
└── cors/origins.ts Senarai asal CORS yang dibenarkan
3.5 src/shared/ — Selamat untuk dikongsi
Dibahagikan kepada subdirektori khusus:
constants/—providers.ts(katalog penyedia yang disahkan oleh Zod),models.ts,modelSpecs.ts,modelCompat.ts,pricing.ts,cliTools.ts,cliCompatProviders.ts,routingStrategies.ts,comboConfigMode.ts,headers.ts,upstreamHeaders.ts(senarai sekatan),mcpScopes.ts,errorCodes.ts,publicApiRoutes.ts,batch.ts,batchEndpoints.ts,bodySize.ts,colors.ts,appConfig.ts,config.ts,sidebarVisibility.ts,visionBridgeDefaults.ts.validation/—schemas.ts(~80 skema Zod),compressionConfigSchemas.ts,providerSchema.ts,settingsSchemas.ts,helpers.ts.contracts/— kontrak API awam yang diterbitkan ke npm.types/— jenis TS yang dikongsi.utils/—circuitBreaker.ts,apiAuth.ts,apiKey.ts,apiKeyPolicy.ts,api.ts,classify429.ts,cliCompat.ts,clipboard.ts,cloud.ts,cn.ts,cors.ts,featureFlags.ts,fetchTimeout.ts,formatting.ts,inputSanitizer.ts,logger.ts,machine.ts,machineId.ts,maskEmail.ts,modelCatalogSearch.ts,nodeRuntimeSupport.ts,parseApiKeys.ts,providerHints.ts,providerModelAliases.ts,rateLimiter.ts,releaseNotes.ts,a11yAudit.ts, serta cangkuk/komponen papan pemuka di bawahservices/,network/,middleware/,schemas/,hooks/,components/.
4. open-sse/ — Ruang kerja enjin penstriman
Ruang kerja npm berasingan yang diterbitkan sebagai @omniroute/open-sse. Mengendalikan pemprosesan
permintaan, pelaksana, penterjemah, perkhidmatan, pengubah dan pelayan MCP.
open-sse/
├── index.ts Eksport awam
├── package.json Manifes ruang kerja
├── tsconfig.json
├── types.d.ts
├── config/ Daftar penyedia, profil pengepala, identiti, …
├── handlers/ Pengendali permintaan (sembang, pembenaman, audio, imej, …)
├── executors/ 108 pelaksana HTTP khusus penyedia
├── translator/ Penukaran format (OpenAI ↔ Claude ↔ Gemini ↔ Cursor ↔ Kiro)
├── transformer/ Pengubah strim Responses API ↔ Chat Completions
├── services/ 80+ modul perkhidmatan (gabungan, sandaran, kuota, identiti, …)
├── utils/ Pembantu penstriman, klien TLS, AWS SigV4, pengambilan proksi, …
└── mcp-server/ Pelayan MCP (3 pengangkutan, 33 skop, 110 alat)
4.1 open-sse/handlers/
| Pengendali | Tujuan |
|---|---|
chatCore.ts |
Saluran utama sembang (cache, had kadar, penghalaan gabungan, penghantaran pelaksana) |
responsesHandler.ts |
Titik masuk OpenAI Responses API |
embeddings.ts |
Pembenaman |
imageGeneration.ts |
Penjanaan imej |
audioSpeech.ts |
Teks kepada pertuturan |
audioTranscription.ts |
Pertuturan kepada teks |
videoGeneration.ts |
Penjanaan video |
musicGeneration.ts |
Penjanaan muzik |
rerank.ts |
Pengisihan semula |
moderations.ts |
Moderasi |
search.ts |
Carian web |
sseParser.ts |
Penghurai peristiwa SSE |
usageExtractor.ts |
Mengekstrak kiraan token daripada strim huluan |
responseSanitizer.ts |
Menghapuskan hingar khusus penyedia |
responseTranslator.ts |
Penghubung antara respons penyedia dengan lapisan penterjemah |
4.2 open-sse/executors/
108 pelaksana penyedia, setiap satunya melanjutkan BaseExecutor (base.ts):
antigravity, azure-openai, blackbox-web, cliproxyapi,
chatgpt-web-codex, cloudflare-ai, codex, commandCode, cursor, default, devin-cli,
muse-spark-web, nlpcloud, opencode, perplexity-web, petals,
pollinations, qoder, vertex, devin-desktop, serta claudeIdentity.ts
(pembantu identiti dikongsi) dan index.ts (daftar).
Nota: penyedia yang tidak disenaraikan di sini dilayan oleh
default.tsmenggunakan pelaksana serasi OpenAI generik. Katalog penuh penyedia (355 penyedia) terdapat dalamsrc/shared/constants/providers.ts.
4.3 open-sse/translator/
Penterjemahan hab-dan-jejari (OpenAI ialah hab).
- 9 penterjemah permintaan (
translator/request/):antigravity-to-openai,claude-to-gemini,claude-to-openai,gemini-to-openai,openai-responses,openai-to-claude,openai-to-cursor,openai-to-gemini,openai-to-kiro. - 9 penterjemah respons (
translator/response/):claude-to-openai,cursor-to-openai,gemini-to-claude,gemini-to-openai,kiro-to-openai,openai-responses,openai-to-antigravity,openai-to-claude. - 9 pembantu (
translator/helpers/):claudeHelper,geminiHelper,geminiToolsSanitizer,maxTokensHelper,openaiHelper,responsesApiHelper,schemaCoercion,toolCallHelper, serta ujian pembantu. - Pembantu imej (
translator/image/sizeMapper.ts). - Peringkat teratas:
bootstrap.ts,formats.ts,registry.ts,index.ts.
4.4 open-sse/transformer/
responsesTransformer.ts— Penukar Responses API ↔ Chat Completions berasaskanTransformStream(digunakan oleh laluan tangkap-semuaresponses/).
4.5 open-sse/services/
Sorotan (senarai penuh di bawah open-sse/services/):
| Perkara | Fail |
|---|---|
| Penghalaan kombo | combo.ts (19 strategi), comboConfig.ts, comboMetrics.ts, comboManifestMetrics.ts, comboAgentMiddleware.ts |
| Enjin Auto Combo | autoCombo/ — engine.ts, scoring.ts, taskFitness.ts, virtualFactory.ts, modePacks.ts, autoPrefix.ts, persistence.ts, providerDiversity.ts, providerRegistryAccessor.ts, routerStrategy.ts, selfHealing.ts, index.ts |
| Ketahanan | accountFallback.ts (tempoh bertenang + penguncian), errorClassifier.ts, emergencyFallback.ts, rateLimitManager.ts, rateLimitSemaphore.ts, accountSemaphore.ts, accountSelector.ts |
| Kuota | quotaMonitor.ts, quotaPreflight.ts, bailianQuotaFetcher.ts, codexQuotaFetcher.ts, deepseekQuotaFetcher.ts, openrouterQuotaFetcher.ts, openrouterFreeWindow.ts, crofUsageFetcher.ts, antigravityCredits.ts |
| Pengelogan cache | reasoningCache.ts, searchCache.ts, signatureCache.ts, requestDedup.ts |
| Kepintaran penghalaan | intentClassifier.ts, taskAwareRouter.ts, backgroundTaskDetector.ts, volumeDetector.ts, wildcardRouter.ts, workflowFSM.ts, specificityDetector.ts, specificityRules.ts, specificityTypes.ts |
| Pengendalian model | modelCapabilities.ts, modelDeprecation.ts, modelFamilyFallback.ts, modelStrip.ts, model.ts, provider.ts, providerRequestDefaults.ts, providerCostData.ts, payloadRules.ts |
| Pemampatan | compression/ — pendawaian penuh enjin pemampatan |
| Token + sesi | tokenRefresh.ts, sessionManager.ts, apiKeyRotator.ts, contextManager.ts, contextHandoff.ts, systemPrompt.ts, roleNormalizer.ts, responsesInputSanitizer.ts, toolSchemaSanitizer.ts, toolLimitDetector.ts, thinkingBudget.ts |
| Peringkat / manifes | tierResolver.ts, tierConfig.ts, tierDefaults.json, tierTypes.ts, manifestAdapter.ts |
| IP / rangkaian | ipFilter.ts, webSearchFallback.ts |
| Kelompok | batchProcessor.ts |
| Penggunaan | usage.ts |
4.6 open-sse/mcp-server/
- 110 alat unik disambungkan dalam
server.ts(45 alat kanonik dalamschemas/tools.ts+ modul memori, kemahiran, GitHub-skills, kelompok, gamifikasi, pemalam, Notion, Obsidian, korpus setempat dan pemampatan — kesatuan dikira olehcountUniqueMcpTools). - 3 pengangkutan: stdio, HTTP Streamable, SSE.
- 33 skop dikuatkuasakan pada masa jalan — senarai asas dalam
src/shared/constants/mcpScopes.ts, set penuh ialah kesatuan skop yang diisytiharkan oleh setiap modul alat. - Jadual audit:
mcp_tool_audit(diisi olehaudit.ts). - Fail:
server.ts,index.ts,httpTransport.ts,audit.ts,scopeEnforcement.ts,runtimeHeartbeat.ts,descriptionCompressor.ts,schemas/{tools, a2a, audit, index}.ts,tools/{advancedTools, compressionTools, memoryTools, skillTools}.ts, serta ujian di bawah__tests__/. - Lihat MCP-SERVER.md untuk katalog alat yang lengkap.
4.7 open-sse/config/
Daftar penyedia (providerRegistry.ts, providerModels.ts,
providerHeaderProfiles.ts), daftar model bagi setiap format (audioRegistry.ts,
embeddingRegistry.ts, imageRegistry.ts, moderationRegistry.ts,
musicRegistry.ts, rerankRegistry.ts, searchRegistry.ts, videoRegistry.ts),
pembantu identiti (codexIdentity.ts, codexInstructions.ts,
anthropicHeaders.ts, antigravityUpstream.ts, antigravityModelAliases.ts,
cliFingerprints.ts, toolCloaking.ts, defaultThinkingSignature.ts),
pembantu kelayakan (credentialLoader.ts, codexClient.ts) dan penyesuai awan
(azureAi.ts, bedrock.ts, datarobot.ts, glmProvider.ts,
maritalk.ts, oci.ts, petals.ts, runway.ts, sap.ts, watsonx.ts,
ollamaModels.ts, errorConfig.ts, constants.ts, registryUtils.ts).
4.8 open-sse/utils/
Primitif penstriman dan pembantu penyedia: stream.ts, streamHandler.ts,
streamHelpers.ts, streamPayloadCollector.ts, streamReadiness.ts,
sseHeartbeat.ts, proxyFetch.ts, proxyDispatcher.ts, tlsClient.ts,
networkProxy.ts, awsSigV4.ts, cacheControlPolicy.ts,
cursorChecksum.ts, cursorAgentProtobuf.ts, cursorVersionDetector.ts,
comfyuiClient.ts, kieTask.ts, bypassHandler.ts, aiSdkCompat.ts,
thinkTagParser.ts, urlSanitize.ts, usageTracking.ts, requestLogger.ts,
progressTracker.ts, cors.ts, error.ts, logger.ts, sleep.ts,
ollamaTransform.ts.
5. electron/ — Pembalut desktop
electron/
├── main.js Proses utama Electron
├── preload.js Jambatan pramuat (contextIsolation didayakan)
├── types.d.ts
├── package.json Konfigurasi electron-builder, versi 3.8.51
├── README.md
├── assets/ Sumber binaan (ikon, kelayakan, …)
├── node_modules/ node_modules khusus (better-sqlite3, electron-updater)
└── dist-electron/ Output binaan (tidak dikomit)
Lima skrip npm pada akar ruang kerja: electron:dev, electron:build,
electron:build:{win,mac,linux}, electron:smoke:packaged. Kemas kini automatik dilakukan melalui
electron-updater yang menghala ke suapan keluaran GitHub.
6. bin/ — CLI
bin/
├── omniroute.mjs Titik masuk CLI utama (Node ESM)
├── reset-password.mjs Tetapkan semula kata laluan pengurusan daripada CLI
├── mcp-server.mjs Pelancar pelayan MCP (stdio)
├── nodeRuntimeSupport.mjs Pengawal versi Node
└── cli/
├── program.mjs Pembina program Commander
├── runtime.mjs Pembantu withRuntime (utamakan pelayan/sandar balik DB)
├── output.mjs Pemformat output (json/jsonl/table/csv)
├── i18n.mjs Pembantu t() dengan penempatan
├── api.mjs Pembantu pengambilan API
├── data-dir.mjs
├── encryption.mjs
├── sqlite.mjs
└── commands/
├── registry.mjs Pendaftaran perintah
├── setup.mjs
├── doctor.mjs
├── providers.mjs
└── ... (satu fail bagi setiap perintah/kumpulan)
Dua perduaan didedahkan dalam package.json → bin:
omniroute→bin/omniroute.mjsomniroute-reset-password→bin/reset-password.mjs
7. tests/
| Direktori | Jenis |
|---|---|
tests/unit/ |
Ujian unit melalui pelaksana ujian natif Node (1821 fail, serta subdirektori api/, auth/, authz/) |
tests/integration/ |
Ujian rentas modul + keadaan DB |
tests/e2e/ |
Ujian UI Playwright |
tests/e2e/protocol-clients.test.ts |
E2E protokol MCP/A2A |
tests/translator/ |
Ujian khusus penterjemah |
tests/security/ |
Regresi keselamatan |
tests/load/ |
Ujian beban / tekanan |
tests/golden-set/ |
Output rujukan untuk regresi penterjemah |
tests/helpers/, tests/fixtures/, tests/manual/ |
Sokongan |
Perintah lazim:
| Perintah | Perkara yang dijalankan |
|---|---|
npm run test:unit |
Semua tests/unit/*.test.ts melalui pelaksana ujian Node (keserentakan 10) |
npm run test:vitest |
Suit Vitest (MCP, autoCombo, cache) |
npm run test:e2e |
Suit UI Playwright |
npm run test:protocols:e2e |
E2E protokol MCP + A2A |
npm run test:coverage |
Ambang liputan (≥60% baris/pernyataan/fungsi/cabang) |
node --import tsx/esm --test tests/unit/<file>.test.ts |
Pelaksanaan satu fail |
8. scripts/
Disusun mengikut tujuan ke dalam 6 subfolder.
scripts/build/—build-next-isolated.mjs,prepublish.ts,prepare-electron-standalone.mjs,pack-artifact-policy.ts,validate-pack-artifact.ts,postinstall.mjs,postinstallSupport.mjs,uninstall.mjs,bootstrap-env.mjs,runtime-env.mjs,native-binary-compat.mjs.scripts/dev/—run-next.mjs,run-next-playwright.mjs,run-standalone.mjs,standalone-server-ws.mjs,responses-ws-proxy.mjs,v1-ws-bridge.mjs,smoke-electron-packaged.mjs,run-playwright-tests.mjs,run-ecosystem-tests.mjs,run-protocol-clients-tests.mjs,sync-env.mjs,healthcheck.mjs,system-info.mjs.scripts/check/—check-cycles.mjs,check-docs-sync.mjs,check-docs-counts-sync.mjs,check-env-doc-sync.mjs,check-deprecated-versions.mjs,check-route-validation.mjs,check-t11-any-budget.mjs,check-pr-test-policy.mjs,check-supported-node-runtime.ts,test-report-summary.mjs.scripts/docs/—generate-docs-index.mjs,gen-provider-reference.ts.scripts/i18n/—generate-multilang.mjs,run-visual-qa.mjs,generate-qa-checklist.mjs,apply-priority-overrides.mjs,validate_translation.py,check_translations.py,i18n_autotranslate.py,untranslatable-keys.json.scripts/ad-hoc/—cursor-tap.cjs,sync-cursor-models.mjs,migrate-env.mjs,dbsetup.js.
9. Saluran Paip Permintaan (Ringkasan)
Sumber: diagrams/request-pipeline.mmd
Permintaan klien
→ /v1/chat/completions (route.ts)
Semakan prapenerbangan CORS
Pengesahan Zod (chatCompletionsSchema dalam shared/validation/schemas.ts)
Pengesahan identiti (extractApiKey + isValidApiKey ATAU requireManagementAuth)
Enjin dasar (src/server/authz/pipeline.ts)
Langkah perlindungan (penopeng PII, suntikan gesaan, jambatan penglihatan)
→ handleChatCore() (open-sse/handlers/chatCore.ts)
Semakan cache (cache semantik + cache bacaan)
Had kadar (rateLimitManager, accountSemaphore)
Penghalaan gabungan (jika model diselesaikan kepada gabungan)
comboResolver → gelung bagi setiap sasaran → handleSingleModel()
translateRequest() (open-sse/translator/request/*)
getExecutor(providerId).execute() (open-sse/executors/*)
ambil dari huluan → cuba semula/tunggu undur melalui accountFallback
translateResponse() (open-sse/translator/response/*)
Strim SSE ATAU respons JSON
Jika Responses API: TransformStream melalui open-sse/transformer/responsesTransformer.ts
→ Audit pematuhan (src/lib/compliance/)
→ Respons kepada klien
Keadaan masa jalan daya tahan (tiga mekanisme)
| Mekanisme | Skop | Lokasi |
|---|---|---|
| Pemutus litar penyedia | Keseluruhan penyedia | src/shared/utils/circuitBreaker.ts, disimpan secara berterusan dalam domain_circuit_breakers |
| Tempoh bertenang sambungan | Satu akaun/kunci | markAccountUnavailable() dalam src/sse/services/auth.ts; digunakan oleh accountFallback.checkFallbackError() |
| Sekatan model | Penyedia + sambungan + model | open-sse/services/accountFallback.ts, disimpan secara berterusan dalam domain_lockout_state |
Lihat RESILIENCE_GUIDE.md dan bahagian khusus dalam CLAUDE.md.
10. Cara Menyumbang
Tambah penyedia baharu
- Daftarkan dalam
src/shared/constants/providers.ts(disahkan oleh Zod semasa pemuatan). - Tambah pelaksana dalam
open-sse/executors/jika logik tersuai diperlukan (lanjutkanBaseExecutor). - Tambah penterjemah dalam
open-sse/translator/jika ia tidak menggunakan format OpenAI. - Jika berasaskan OAuth, tambah konfigurasi di bawah
src/lib/oauth/providers/dansrc/lib/oauth/services/. - Daftarkan model dalam
open-sse/config/providerRegistry.ts(atau pendaftaran khusus format di bawahopen-sse/config/). - Tulis ujian di bawah
tests/unit/.
Tambah laluan API baharu
- Cipta
src/app/api/your-route/route.ts. - Ikuti corak: CORS → pengesahan isi permintaan Zod → pengesahan identiti → pengagihan kepada pengendali.
- Jika bentuk permintaan baharu: tambah skema Zod dalam
src/shared/validation/schemas.ts. - Jika untuk pengurusan sahaja: tambah laluan tersebut pada
src/shared/constants/publicApiRoutes.ts(senarai sekatan untuk permukaan API awam). - Tambah ujian di bawah
tests/unit/. - Kemas kini
docs/reference/API_REFERENCE.mddandocs/openapi.yaml.
Tambah modul DB baharu
- Cipta
src/lib/db/yourModule.tsdan importgetDbInstance()daripada./core.ts. - Eksport fungsi CRUD untuk domain anda.
- Jika terdapat jadual baharu: tambah migrasi di bawah
src/lib/db/migrations/, yang dinomborkan secara berurutan, idempoten dan bertransaksi. - Pengimport menggunakan import langsung daripada
@/lib/db/yourModule(tanpa barrel — lapisan eksport semulalocalDb.tsyang lama telah dialih keluar). - Tambah ujian di bawah
tests/unit/.
Tambah alat MCP baharu
- Tambah takrif alat di bawah
open-sse/mcp-server/tools/(atau lanjutkanopen-sse/mcp-server/schemas/tools.ts). - Tetapkan skop yang sesuai dalam
src/shared/constants/mcpScopes.ts. - Daftarkan alat tersebut dalam
open-sse/mcp-server/server.ts. - Tambah ujian di bawah
open-sse/mcp-server/__tests__/. - Kemas kini MCP-SERVER.md.
Tambah kemahiran A2A baharu
Lihat A2A-SERVER.md § Menambah Kemahiran Baharu. Kemahiran ditempatkan dalam
src/lib/a2a/skills/ dan didaftarkan melalui pengurus tugas A2A.
11. Konvensyen
- Gaya kod: inden 2 ruang, petikan berganda, lebar 100 aksara, koma bernoktah,
koma mengekor
es5— dikuatkuasakan oleh Prettier melaluilint-staged. - Import: luaran → dalaman (
@/,@omniroute/open-sse) → relatif. - Penamaan: fail
camelCaseataukebab-case, komponenPascalCase, pemalarUPPER_SNAKE. - ESLint:
no-eval,no-implied-eval,no-new-func=errordi semua tempat;no-explicit-any=warndalamopen-sse/dantests/, ralat di tempat lain. - TypeScript:
strict: false(pendekatan legasi). Utamakan jenis eksplisit berbanding inferens untuk sempadan rentas modul. - Pangkalan data: jangan sesekali tulis SQL mentah dalam laluan atau pengendali — sentiasa gunakan
modul
src/lib/db/. Jangan sesekali mengimport melalui barrel — gunakan modulsrc/lib/db/*tertentu secara langsung. - Penaipan entiti DB (#3512): fungsi yang menulis atau membaca bentuk baris
jadual DB hendaklah menerima/mengembalikan antara muka TS bernama yang mencerminkan
lajur jadual tersebut secara 1:1, bukannya
anyatau jenis awanama sebaris pada titik panggilan. Letakkan antara muka bersebelahan dengan fungsi (cth.export interface UsageEntrydalamsrc/lib/usage/usageHistory.tsdi atassaveRequestUsage), kekalkan setiap medan sebagai pilihan/boleh batal apabila penulis yang berbeza mengisi baris secara berperingkat, dan utamakanunknownberbandinganyuntuk medan yang bentuknya berbeza antara pemanggil (didokumentasikan pada medan tersebut, cth.UsageEntry.tokensmenerima penggunaan mentah berbentuk penyedia dan juga bentuk ternormal). Setelah bilangananydalam sesuatu fail mencapai sifar dengan cara ini, tambahkannya pada senarai dibenarkancheck:any-budget:t11(scripts/check/check-t11-any-budget.mjs,maxAny: 0) supaya keadaan ini tidak merosot. Ini ialah konvensyen peringkat pertama — kerja pembersihan "tiadaanyawanama" yang lebih menyeluruh dilakukan secara berulang di seluruh pangkalan kod yang selebihnya. - Ralat: gunakan try/catch dengan jenis ralat khusus, dan log dengan konteks pino. Jangan sesekali mengabaikan ralat secara senyap dalam aliran SSE; gunakan isyarat pembatalan untuk pembersihan.
- Keselamatan: jangan sesekali gunakan
eval()/new Function()/ eval tersirat. Sahkan semua input dengan Zod. Sulitkan bukti kelayakan semasa disimpan (AES-256-GCM). Pastikan senarai sekatansrc/shared/constants/upstreamHeaders.tsselaras dengan lapisan sanitasi/pengesahan. - Komit: Conventional Commits —
feat(scope): subject. Skop yang dibenarkan:db,sse,oauth,dashboard,api,cli,docker,ci,mcp,a2a,memory,skills. - Cabang: awalan
feat/,fix/,refactor/,docs/,test/,chore/. Jangan sesekali membuat komit secara langsung kepadamain. - Husky: prakomit menjalankan
lint-staged+check:docs-sync+check:any-budget:t11; pratujah menjalankancheck:any-budget:t11+check:tracked-artifacts(semakan pantas; tidak termasuktest:unit).
12. Peraturan Tegas (daripada CLAUDE.md)
- Jangan sekali-kali melakukan commit terhadap rahsia atau kelayakan.
- Jangan sekali-kali menggunakan import barrel — gunakan modul
src/lib/db/*tertentu secara langsung. - Jangan sekali-kali menggunakan
eval()/new Function()/ eval tersirat. - Jangan sekali-kali melakukan commit secara langsung ke
main. - Jangan sekali-kali menulis SQL mentah dalam laluan — sentiasa gunakan modul
src/lib/db/. - Jangan sekali-kali mengabaikan ralat secara senyap dalam strim SSE.
- Sentiasa sahkan input dengan skema Zod.
- Sentiasa sertakan ujian apabila mengubah kod produksi.
- Liputan mesti kekal ≥ 60% (pernyataan, baris, fungsi, cabang).
13. Lihat Juga
- ARCHITECTURE.md — seni bina aras tinggi dan tanggungjawab modul.
- API_REFERENCE.md — rujukan API awam + pengurusan.
- FEATURES.md — matriks ciri dan sorotan versi.
- RESILIENCE_GUIDE.md — penerangan mendalam tentang pemutus litar, tempoh bertenang dan penguncian.
- AUTO-COMBO.md — pemarkahan dan strategi Auto Combo.
- MCP-SERVER.md — katalog penuh alat MCP + pengangkutan.
- A2A-SERVER.md — kemahiran dan penemuan protokol A2A.
- COMPRESSION_GUIDE.md — pemampatan RTK + Caveman.
- CLI-TOOLS.md — penyepaduan CLI.
- ELECTRON_GUIDE.md (jika tersedia), DOCKER_GUIDE.md, FLY_IO_DEPLOYMENT_GUIDE.md, VM_DEPLOYMENT_GUIDE.md, TERMUX_GUIDE.md, PWA_GUIDE.md — sasaran penggunaan.
- TROUBLESHOOTING.md — isu operasi lazim.
- CONTRIBUTING.md — aliran kerja penyumbang.
- CLAUDE.md — peraturan repositori untuk Claude Code (sumber rujukan utama bagi kebanyakan konvensyen di atas).
- AGENTS.md — rujukan seni bina yang lebih mendalam untuk ejen.