File size: 67,793 Bytes
cd8bd0a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
---
title: "Repository Map"
version: 3.8.26
lastUpdated: 2026-06-15
---

# Repository Map

> **One-line description for every directory and root file.**
> Last updated: 2026-06-15 β€” OmniRoute v3.8.26
>
> Use this map to navigate the codebase quickly. For deep dives, follow links to dedicated docs.

## Top-level tree

```
OmniRoute/
β”œβ”€β”€ src/                  # Next.js 16 application (UI + API routes + libs + domain + server)
β”œβ”€β”€ open-sse/             # Streaming engine workspace (handlers, executors, translator, MCP server)
β”œβ”€β”€ electron/             # Desktop wrapper (Electron 41 + electron-builder 26.10)
β”œβ”€β”€ bin/                  # CLI entry point and command handlers
β”œβ”€β”€ scripts/              # Build, check, sync, and one-off scripts
β”œβ”€β”€ docs/                 # Public documentation (you are here)
β”œβ”€β”€ tests/                # All test suites (unit, integration, e2e, protocols-e2e)
β”œβ”€β”€ public/               # Next.js static assets, PWA manifest, service worker, icons
β”œβ”€β”€ config/               # Static config + quality-gate state (i18n, payloadRules, quality/)
β”œβ”€β”€ images/               # Marketing / README image assets
β”œβ”€β”€ @omniroute/           # Publishable companion packages (opencode-plugin, opencode-provider)
β”œβ”€β”€ skills/               # CLI/agent skill packs (cli-* + omni-* + config-codex-cli)
β”œβ”€β”€ examples/             # Sample plugins + omniroute-cmd-hello starter
β”œβ”€β”€ contrib/              # Community contributions (podman/)
β”œβ”€β”€ .source/              # Fumadocs source config (source.config.mjs + server/browser/dynamic)
β”œβ”€β”€ .github/              # GitHub Actions workflows + issue templates + PR template
β”œβ”€β”€ .husky/               # Git hooks (pre-commit, pre-push)
β”œβ”€β”€ .claude/              # Claude Code slash commands (project-scoped)
β”œβ”€β”€ .agents/              # Codex / generic agent workflows + skills (mirror of .claude/)
β”œβ”€β”€ .vscode/              # VS Code workspace settings
β”œβ”€β”€ _ideia/               # Planning notes (informal; not shipped)
β”œβ”€β”€ _mono_repo/           # Historic subprojects (cloud, site, vscode-extension)
β”œβ”€β”€ _references/          # Read-only reference clones from related OSS projects
β”œβ”€β”€ _tasks/               # Per-release task tracking files (informal)
β”œβ”€β”€ .build/ .worktrees/ dist/   # local build / git-worktree / build-output scratch (gitignored)
β”œβ”€β”€ .issues/              # Local issue cache (gitignored)
β”œβ”€β”€ .playwright-mcp/      # Playwright MCP test artifacts
β”œβ”€β”€ coverage/             # c8 coverage output (gitignored)
β”œβ”€β”€ logs/                 # Runtime logs (gitignored)
β”œβ”€β”€ node_modules/         # Dependencies (gitignored)
β”œβ”€β”€ package/              # npm pack staging area (build artifact)
β”œβ”€β”€ .next/                # Next.js build output (gitignored)
└── (root files β€” see below)
```

---

## Root files

| File                                        | Purpose                                                                                  |
| ------------------------------------------- | ---------------------------------------------------------------------------------------- |
| **README.md**                               | Marketing landing page + quick start + feature matrix (see also `llm.txt`)               |
| **CHANGELOG.md**                            | Per-release changelog (auto-generated by `/version-bump-cc` skill)                       |
| **LICENSE**                                 | MIT license text                                                                         |
| **CLAUDE.md**                               | Project rules for Claude Code agents (hard rules, conventions, scenarios)                |
| **AGENTS.md**                               | Same as CLAUDE.md but for non-Claude AI agents (Codex, Cursor, etc.)                     |
| **GEMINI.md**                               | Concise rules for Gemini-based agents (subset of CLAUDE.md)                              |
| **CONTRIBUTING.md**                         | Contributor guide: setup, conventional commits, testing, PR flow                         |
| **SECURITY.md**                             | Vulnerability reporting policy, supported versions, threat model                         |
| **CODE_OF_CONDUCT.md**                      | Contributor Covenant β€” community behavior expectations                                   |
| **llm.txt**                                 | Plain-text landing optimized for LLM crawlers (SEO for AI assistants)                    |
| **package.json**                            | npm manifest, scripts, dependencies, engines, c8 coverage gate                           |
| **package-lock.json**                       | Locked dependency tree                                                                   |
| **tsconfig.json**                           | Root TypeScript config                                                                   |
| **tsconfig.typecheck-core.json**            | Typecheck config for `src/` core                                                         |
| **tsconfig.typecheck-noimplicit-core.json** | Strict (`noImplicitAny`) typecheck                                                       |
| **tsconfig.tsbuildinfo**                    | TS incremental build cache (gitignored)                                                  |
| **next.config.mjs**                         | Next.js 16 build configuration (standalone output)                                       |
| **next-env.d.ts**                           | Next.js auto-generated env types                                                         |
| **eslint.config.mjs**                       | ESLint flat config (rules per project area)                                              |
| **prettier.config.mjs**                     | Prettier formatting rules                                                                |
| **postcss.config.mjs**                      | PostCSS config for Tailwind/CSS pipeline                                                 |
| **playwright.config.ts**                    | Playwright E2E test config                                                               |
| **vitest.config.ts**                        | Vitest config (default suite)                                                            |
| **vitest.mcp.config.ts**                    | Vitest config for MCP server / autoCombo / cache suites                                  |
| **sonar-project.properties**                | SonarQube/SonarCloud config (code quality)                                               |
| **Dockerfile**                              | Multi-stage Docker build (builder β†’ runner-base β†’ runner-cli)                            |
| **docker-compose.yml**                      | Dev compose with 4 profiles (base, cli, host, cliproxyapi) + redis sidecar               |
| **docker-compose.prod.yml**                 | Production compose (port 20130, redis, named volumes)                                    |
| **.dockerignore**                           | Files excluded from Docker context                                                       |
| **fly.toml**                                | Fly.io deployment config (region `sin`, port 20128, /data volume)                        |
| **.env.example**                            | Template env file (auto-copied to `.env` on first install)                               |
| **.gitignore**                              | Git ignore patterns                                                                      |
| **.npmignore**                              | npm publish exclusion list                                                               |
| **.npmrc**                                  | npm config (registry, lockfile policy)                                                   |
| **.node-version**                           | Node version pin (used by nvm-compatible tools)                                          |
| **.nvmrc**                                  | Node version pin for nvm                                                                 |
| **eslint.complexity.config.mjs**            | ESLint config for the complexity ratchet (`scripts/check/check-complexity.mjs --config`) |
| **eslint.sonarjs.config.mjs**               | ESLint config for SonarJS rules (cognitive complexity / duplication)                     |
| **source.config.ts**                        | Fumadocs `defineDocs` source config (feeds `.source/`)                                   |
| **knip.json**                               | Knip config β€” unused files/exports/deps (feeds the dead-code gate)                       |
| **stryker.conf.json**                       | Stryker mutation-testing config                                                          |
| **.size-limit.json**                        | size-limit bundle budget config                                                          |
| **semcheck.yaml**                           | semcheck (spec↔code drift) config                                                        |
| **promptfooconfig.yaml**                    | promptfoo eval config                                                                    |
| **.gitleaks.toml**                          | gitleaks secret-scan ruleset                                                             |
| **.zizmor.yml**                             | zizmor GitHub-Actions security-lint config                                               |
| **socket.yml**                              | Socket.dev supply-chain config                                                           |
| **news.json**                               | In-app release-notes feed (read by `src/shared/utils/releaseNotes.ts`)                   |
| **flake.nix** / **flake.lock**              | Nix dev-shell definition + lock                                                          |
| **.env**                                    | Local secrets (gitignored β€” generated from `.env.example`)                               |

> **Moved out of the root in v3.8.26 (declutter):**
>
> - **β†’ `config/quality/`:** `quality-baseline.json`, `complexity-baseline.json`, `duplication-baseline.json`, `file-size-baseline.json`, `test-discovery-baseline.json`, `dependency-allowlist.json`, `.license-allowlist.json`, and the generated `quality-metrics.json` (gitignored). See [`## config/`](#config--static-configs--quality-gate-state).
> - **β†’ `docs/ops/`:** `DOCUMENTATION_AUDIT_REPORT.md`.

---

## `src/` β€” Next.js application

```
src/
β”œβ”€β”€ app/                 # App Router (pages + API routes + status pages + landing)
β”œβ”€β”€ lib/                 # Core libraries / domain modules (~50 subdirs + ~30 top-level files)
β”œβ”€β”€ domain/              # Pure domain logic (policy engine, fallback, cost, lockout, comboResolver, assessment)
β”œβ”€β”€ server/              # Server-only modules (authz pipeline, cors, auth middleware) β€” cannot import from client
β”œβ”€β”€ shared/              # Shared between server and client where safe (constants, types, validation, contracts, utils)
β”œβ”€β”€ i18n/                # next-intl config + per-locale message JSON (30+ locales)
β”œβ”€β”€ middleware/          # Next.js middleware (request enrichment, locale detection)
β”œβ”€β”€ mitm/                # MITM proxy core: cert gen/install, handlers, targets, inspector, masks, passthrough
β”‚   β”œβ”€β”€ handlers/        # 9 IDE-agent handler classes extending MitmHandlerBase (antigravity, kiro, copilot, codex, cursor, zed, claudeCode, openCode, trae)
β”‚   └── inspector/       # Traffic capture layer: buffer (in-memory ring), sseMerger, conversationNormalizer, kindDetector, contextKey, httpProxyServer, systemProxyConfig
β”œβ”€β”€ models/              # Model adapter glue (legacy shim)
β”œβ”€β”€ scripts/             # In-tree maintenance scripts (e.g., backfillAggregation)
β”œβ”€β”€ sse/                 # Legacy SSE handlers/services (chat.ts, chatHelpers.ts, services/auth.ts)
β”œβ”€β”€ store/               # Legacy in-memory store (being phased out for src/lib/db)
β”œβ”€β”€ types/               # Shared TS type files
β”œβ”€β”€ instrumentation.ts   # Next.js telemetry hook (browser + edge)
β”œβ”€β”€ instrumentation-node.ts  # Node-only instrumentation
β”œβ”€β”€ server-init.ts       # Server bootstrap (DB migrations, jobs, cleanup)
└── proxy.ts             # HTTP-proxy entry shim
```

### `src/app/` β€” App Router (Next.js 16)

| Path                                                                         | Purpose                                                                                                                                                                                                                                                                                                            |
| ---------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `app/api/v1/`                                                                | Public OpenAI-compat API (~25 sub-routes: chat, completions, embeddings, files, batches, audio, images, videos, music, rerank, moderations, search, ws, agents, accounts, providers, etc.)                                                                                                                         |
| `app/api/v1beta/`                                                            | Gemini-style API endpoints                                                                                                                                                                                                                                                                                         |
| `app/api/playground/`                                                        | Playground Studio routes: `improve-prompt/` (POST β€” LLM prompt rewriter), `presets/` (GET list / POST create), `presets/[id]/` (GET / PUT / DELETE) β€” see `docs/frameworks/PLAYGROUND_STUDIO.md`                                                                                                                   |
| `app/api/` (non-v1)                                                          | Management/admin routes (~60 directories: providers, combos, settings, mcp, a2a, evals, memory, skills, webhooks, compliance, resilience, monitoring, tunnels, cli-tools, etc.)                                                                                                                                    |
| `app/api/tools/agent-bridge/`                                                | AgentBridge REST API β€” 12 routes (server control, agent state/DNS/mappings, bypass, cert, upstream-CA). LOCAL_ONLY + SPAWN_CAPABLE. See `docs/frameworks/AGENTBRIDGE.md Β§7`.                                                                                                                                       |
| `app/api/tools/traffic-inspector/`                                           | Traffic Inspector REST + WS API β€” 16+ routes (requests, sessions, hosts, capture-modes, export, ws). LOCAL_ONLY + SPAWN_CAPABLE. See `docs/frameworks/TRAFFIC_INSPECTOR.md Β§8`.                                                                                                                                    |
| `app/a2a/`                                                                   | A2A JSON-RPC 2.0 entry point (`POST /a2a`)                                                                                                                                                                                                                                                                         |
| `app/.well-known/agent.json/`                                                | A2A Agent Card (discovery)                                                                                                                                                                                                                                                                                         |
| `app/(dashboard)/dashboard/`                                                 | Dashboard UI pages (~35 pages: providers, combos, settings, memory, skills, webhooks, evals, audit, batch, cache, costs, health, system, activity, etc.)                                                                                                                                                           |
| `app/(dashboard)/dashboard/search-tools/`                                    | Search Tools Studio UI (3 tabs: Search/Scrape/Compare + SearchConceptCard + ProviderCatalog) β€” see `docs/frameworks/SEARCH_TOOLS_STUDIO.md`                                                                                                                                                                        |
| `app/(dashboard)/dashboard/`                                                 | Dashboard UI pages (~30 pages: providers, combos, settings, memory, skills, webhooks, evals, audit, batch, cache, costs, health, system, etc.)                                                                                                                                                                     |
| `app/(dashboard)/dashboard/memory/`                                          | Memory Studio (plan 21): `page.tsx` (3-tab shell), `components/` (MemoryConceptCard, MemoryEngineStatus, EmbeddingSourceSelector, EditMemoryModal, RetrievePreview, QdrantConfigCard, RerankConfigCard), `components/tabs/` (MemoriesTab, PlaygroundTab, EngineTab), `hooks/` (useEngineStatus, useMemorySettings) |
| `app/(dashboard)/dashboard/tools/agent-bridge/`                              | AgentBridge dashboard page β€” server card, 9 agent cards, setup wizard, model mapping, bypass list. i18n PT-BR + EN. See `docs/frameworks/AGENTBRIDGE.md`.                                                                                                                                                          |
| `app/(dashboard)/dashboard/tools/traffic-inspector/`                         | Traffic Inspector dashboard page β€” DevTools split, 7 detail tabs, 4 capture mode toggles, session recorder, context colorization. i18n PT-BR + EN. See `docs/frameworks/TRAFFIC_INSPECTOR.md`.                                                                                                                     |
| `app/(dashboard)/dashboard/activity/`                                        | Activity feed page (Group B): `page.tsx` (server) + `ActivityFeedClient.tsx` + `components/{ActivityFeed,ActivityItem,DayHeader,EventTypeFilter}.tsx` β€” see `docs/architecture/MONITORING_SECTIONS.md`                                                                                                             |
| `app/(dashboard)/dashboard/costs/quota-share/`                               | Quota Sharing page (Group B): `QuotaSharePageClient.tsx` + `components/{PoolCard,DimensionBar,AllocationTable,BurnRateChart,QuotaConceptCard,CreatePoolModal,EditAllocationsModal}.tsx` + `hooks/{usePools,usePoolUsage,useLocalStoragePoolMigration}.ts`                                                          |
| `app/(dashboard)/dashboard/costs/quota-share/plans/`                         | Provider plan config page (Group B): `page.tsx` + `ProviderPlanConfigClient.tsx` β€” quota dimensions per connection override                                                                                                                                                                                        |
| `app/docs/`                                                                  | Embedded documentation viewer (renders `docs/*.md`)                                                                                                                                                                                                                                                                |
| `app/landing/`                                                               | Marketing landing page                                                                                                                                                                                                                                                                                             |
| `app/login/`, `forgot-password/`, `forbidden/`                               | Auth-related pages                                                                                                                                                                                                                                                                                                 |
| `app/{400,401,403,408,429,500,502,503}/`                                     | HTTP error pages                                                                                                                                                                                                                                                                                                   |
| `app/maintenance/`, `offline/`, `status/`, `privacy/`, `terms/`, `callback/` | Static/status pages                                                                                                                                                                                                                                                                                                |
| `app/layout.tsx`, `page.tsx`, `manifest.ts`, `globals.css`                   | Root layout, home, PWA manifest, global CSS                                                                                                                                                                                                                                                                        |
| `app/error.tsx`, `global-error.tsx`, `not-found.tsx`, `loading.tsx`          | Error boundaries                                                                                                                                                                                                                                                                                                   |

### `src/lib/` β€” Core libraries (~50 modules)

| Module                                   | Purpose                                                                                                                                                                                                                                                                                                                 |
| ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `a2a/`                                   | A2A protocol task manager, skills (5), streaming                                                                                                                                                                                                                                                                        |
| `acp/`                                   | CLI Agent Registry (local CLI discovery β€” see `docs/frameworks/AGENT_PROTOCOLS_GUIDE.md`)                                                                                                                                                                                                                               |
| `api/`                                   | Shared API helpers (`requireManagementAuth`, validation)                                                                                                                                                                                                                                                                |
| `auth/`                                  | Session, password hashing, token validation                                                                                                                                                                                                                                                                             |
| `batches/`                               | OpenAI Batches API handlers                                                                                                                                                                                                                                                                                             |
| `catalog/`                               | Provider catalog Zod validation + capability resolution                                                                                                                                                                                                                                                                 |
| `cloudAgent/`                            | Cloud Agents (Codex Cloud, Devin, Jules) β€” see `docs/frameworks/CLOUD_AGENT.md`                                                                                                                                                                                                                                         |
| `combos/`                                | Combo resolution + reorder helpers                                                                                                                                                                                                                                                                                      |
| `audit/`                                 | Activity feed helpers: `highLevelActions.ts` (allowlist + `isHighLevelAction()`), `activityIcons.ts` (action β†’ icon/verb map), `timeline.ts` (groupByDay/relativeTime) β€” see `docs/architecture/MONITORING_SECTIONS.md`                                                                                                 |
| `compliance/`                            | Audit log + provider audit β€” see `docs/security/COMPLIANCE.md`                                                                                                                                                                                                                                                          |
| `compression/`                           | Compression engine glue (engines live in `open-sse/services/compression/`)                                                                                                                                                                                                                                              |
| `config/`                                | Runtime config helpers                                                                                                                                                                                                                                                                                                  |
| `db/`                                    | 45+ domain DB modules + 55 migrations (always go through here for SQLite)                                                                                                                                                                                                                                               |
| `quota/`                                 | Quota Sharing Engine: `dimensions.ts` (types/Zod), `types.ts` (QuotaStore interface), `sqliteQuotaStore.ts`, `redisQuotaStore.ts`, `storeFactory.ts`, `fairShare.ts`, `burnRate.ts`, `planResolver.ts`, `planRegistry.ts`, `saturationSignals.ts`, `enforce.ts`, `spendRecorder.ts` β€” see `docs/routing/QUOTA_SHARE.md` |
| `display/`                               | UI formatting helpers (cost, latency, etc.)                                                                                                                                                                                                                                                                             |
| `embeddings/`                            | Embeddings service helpers                                                                                                                                                                                                                                                                                              |
| `env/`                                   | Env variable parsing + validation                                                                                                                                                                                                                                                                                       |
| `evals/`                                 | Eval framework (suites, runner, runtime) β€” see `docs/frameworks/EVALS.md`                                                                                                                                                                                                                                               |
| `guardrails/`                            | PII masker, prompt injection, vision bridge β€” see `docs/security/GUARDRAILS.md`                                                                                                                                                                                                                                         |
| `jobs/`                                  | Background jobs (cron-like)                                                                                                                                                                                                                                                                                             |
| `memory/`                                | Conversational memory (SQLite FTS5 + sqlite-vec hybrid RRF + Qdrant tier 2) β€” see `docs/frameworks/MEMORY.md`                                                                                                                                                                                                           |
| `memory/embedding/`                      | Multi-source embedding layer: `index.ts` (resolver), `remote.ts`, `staticPotion.ts`, `transformersLocal.ts`, `cache.ts`, `types.ts` (plan 21)                                                                                                                                                                           |
| `memory/vectorStore.ts`                  | sqlite-vec v0.1.9 wrapper β€” KNN brute-force + hybrid RRF (FTS5 + vector, k=60). Lazy-init, degrades gracefully when sqlite-vec unavailable. (plan 21)                                                                                                                                                                   |
| `memory/reindex.ts`                      | `runReindexBatch()` β€” processes memories with `needs_reindex=1` in background; called by `POST /api/memory/reindex` and lazy-backfill path. (plan 21)                                                                                                                                                                   |
| `monitoring/`                            | Health checks, metrics emission                                                                                                                                                                                                                                                                                         |
| `oauth/`                                 | OAuth flows for 14 providers (claude, codex, antigravity, cursor, github, gemini, kimi-coding, kilocode, cline, qwen, kiro, qoder, gitlab-duo, windsurf)                                                                                                                                                                |
| `plugins/`                               | Plugin registry                                                                                                                                                                                                                                                                                                         |
| `promptCache/`                           | Anthropic-style prompt cache breakpoints                                                                                                                                                                                                                                                                                |
| `skills/`                                | Skills framework (built-in + marketplace + SkillsSH) β€” see `docs/frameworks/SKILLS.md`                                                                                                                                                                                                                                  |
| `playground/`                            | Playground Studio shared helpers: `codeExport.ts` (curl/Python/TS generator), `promptImprover.ts` (meta-prompt builder), `streamMetrics.ts` (pure TTFT/TPS), `types.ts` (pricing table) β€” see `docs/frameworks/PLAYGROUND_STUDIO.md`                                                                                    |
| `webhookDispatcher.ts`                   | HMAC webhook delivery β€” see `docs/frameworks/WEBHOOKS.md`                                                                                                                                                                                                                                                               |
| `cloudflaredTunnel.ts`, `ngrokTunnel.ts` | Tunnel managers β€” see `docs/ops/TUNNELS_GUIDE.md`                                                                                                                                                                                                                                                                       |
| `oneproxySync.ts`, `oneproxyRotator.ts`  | 1proxy free proxy marketplace β€” see `docs/ops/PROXY_GUIDE.md`                                                                                                                                                                                                                                                           |
| `cloudSync.ts`, `initCloudSync.ts`       | Optional cloud sync of state                                                                                                                                                                                                                                                                                            |
| `localDb.ts`                             | Re-export barrel for db modules (no logic β€” re-exports only)                                                                                                                                                                                                                                                            |
| `cacheLayer.ts`, `idempotencyLayer.ts`   | Request caching + idempotency                                                                                                                                                                                                                                                                                           |
| (~30 more top-level files)               | Specialized helpers (logEnv, modelsDevSync, piiSanitizer, etc.)                                                                                                                                                                                                                                                         |

### `src/db/` β€” Database (45+ modules + 55 migrations)

| Subdir                    | Purpose                                                                                                                                                                    |
| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `db/core.ts`              | `getDbInstance()` singleton with WAL journaling                                                                                                                            |
| `db/migrations/`          | Versioned SQL files (idempotent, transactional). `073_memory_vec.sql` adds `memory_vec_meta` + `needs_reindex` column (plan 21).                                           |
| `db/playgroundPresets.ts` | CRUD module for Playground Studio presets (`listPlaygroundPresets`, `getPlaygroundPreset`, `createPlaygroundPreset`, `updatePlaygroundPreset`, `deletePlaygroundPreset`)   |
| `db/memoryVec.ts`         | CRUD for `memory_vec_meta` (active_dim, embedding_signature, last_reset_at, vec_loaded) + `markMemoryNeedsReindex`, `getMemoryReindexQueue`, etc. (plan 21)                |
| `db/<domain>.ts`          | One module per domain: providers, combos, apiKeys, users, sessions, usage, audit*log, webhooks, skills, memory_entries, cloud_agent_tasks, evals*\*, reasoning_cache, etc. |

### `src/domain/`

| Module                 | Purpose                                                                 |
| ---------------------- | ----------------------------------------------------------------------- |
| `policy.ts`            | Policy engine                                                           |
| `fallbackPolicy.ts`    | Fallback decision tree                                                  |
| `costRules.ts`         | Cost calculation rules                                                  |
| `lockoutPolicy.ts`     | Model/connection lockout policy                                         |
| `tagRouter.ts`         | Tag-based routing                                                       |
| `comboResolver.ts`     | Combo resolution (used by combo engine)                                 |
| `modelAvailability.ts` | Per-model availability check                                            |
| `assessment/`          | Model assessment (Phase 1 of RFC-AUTO-ASSESSMENT β€” see `docs/archive/`) |

### `src/server/`

| Module   | Purpose                                                                                              |
| -------- | ---------------------------------------------------------------------------------------------------- |
| `authz/` | Authorization pipeline: `classify` β†’ `policies` β†’ `enforce` β€” see `docs/architecture/AUTHZ_GUIDE.md` |
| `cors/`  | CORS configuration                                                                                   |
| `auth/`  | Session middleware                                                                                   |

### `src/shared/`

| Module                           | Purpose                                                                |
| -------------------------------- | ---------------------------------------------------------------------- |
| `constants/providers.ts`         | **226 providers** with Zod validation (source of truth)                |
| `constants/cliTools.ts`          | External CLI tool registry                                             |
| `constants/routingStrategies.ts` | **14 routing strategies** with priorities                              |
| `constants/publicApiRoutes.ts`   | Routes that require Bearer (vs management) auth                        |
| `constants/upstreamHeaders.ts`   | Header denylist for upstream requests                                  |
| `validation/schemas.ts`          | ~80 Zod schemas (single source of truth for API contracts)             |
| `validation/helpers.ts`          | Zod validation helpers (`validateBody`, etc.)                          |
| `types/`                         | Shared TS types                                                        |
| `contracts/`                     | Public API contracts (consumed by `files:` in `package.json`)          |
| `utils/circuitBreaker.ts`        | Provider circuit breaker (see `docs/architecture/RESILIENCE_GUIDE.md`) |
| `utils/apiAuth.ts`               | API key validation, scope checking                                     |
| `utils/fetchTimeout.ts`          | Timeout/abort wrappers for upstream fetch                              |

---

## `open-sse/` β€” Streaming Engine Workspace

Separate npm workspace (`@omniroute/open-sse`). Handles request processing + provider execution.

```
open-sse/
β”œβ”€β”€ handlers/            # 15 files (11 handlers + 4 helpers): chatCore, responsesHandler, embeddings, audio, image, video, music, rerank, moderations, search, etc.
β”œβ”€β”€ executors/           # 31 provider-specific executors (extend BaseExecutor)
β”œβ”€β”€ translator/          # Format converters (9 request, 8 response, 9 helpers)
β”œβ”€β”€ transformer/         # Responses API ↔ Chat Completions (TransformStream)
β”œβ”€β”€ services/            # ~80+ service modules (combo, accountFallback, autoCombo, reasoningCache, claude code/chatgpt stealth, modelDeprecation, taskAwareRouter, workflowFSM, etc.)
β”œβ”€β”€ mcp-server/          # MCP server (87 tools, 3 transports, 30 scopes)
β”œβ”€β”€ config/              # Provider/model registries, header config, model aliases
β”œβ”€β”€ utils/               # TLS client, proxy fetch/dispatcher, network helpers
β”œβ”€β”€ index.ts             # Workspace entry
β”œβ”€β”€ package.json         # Workspace manifest
β”œβ”€β”€ tsconfig.json        # Workspace TS config
└── types.d.ts           # Workspace type declarations
```

### `open-sse/mcp-server/`

| Path                        | Purpose                                                                        |
| --------------------------- | ------------------------------------------------------------------------------ |
| `server.ts`                 | MCP server lifecycle (stdio + HTTP transports)                                 |
| `httpTransport.ts`          | HTTP Streamable + SSE transports (`/api/mcp/sse`, `/api/mcp/stream`)           |
| `audit.ts`                  | Audit logging to `mcp_tool_audit` table                                        |
| `scopeEnforcement.ts`       | Per-tool scope validation                                                      |
| `runtimeHeartbeat.ts`       | Health heartbeat to `DATA_DIR/runtime/mcp-heartbeat.json`                      |
| `descriptionCompressor.ts`  | Compress tool description metadata to save context                             |
| `schemas/tools.ts`          | 30 base tool definitions + scopes                                              |
| `tools/advancedTools.ts`    | Advanced tool implementations                                                  |
| `tools/memoryTools.ts`      | 3 memory tools (search/add/clear)                                              |
| `tools/skillTools.ts`       | 4 skill tools (list/enable/execute/executions)                                 |
| `tools/compressionTools.ts` | 5 compression tools                                                            |
| `README.md`                 | Internal MCP server README (cross-linked from `docs/frameworks/MCP-SERVER.md`) |

---

## `electron/` β€” Desktop Wrapper

| File             | Purpose                                                                           |
| ---------------- | --------------------------------------------------------------------------------- |
| `main.js`        | Electron main process (BrowserWindow, embedded Next.js server, tray, auto-update) |
| `preload.js`     | IPC bridge (contextBridge β†’ `window.omniroute`)                                   |
| `package.json`   | electron-builder config + Electron 41 + electron-builder 26.10 deps               |
| `assets/`        | App icons (Windows .ico, macOS .icns, Linux .png)                                 |
| `dist-electron/` | Build output (gitignored)                                                         |
| `types.d.ts`     | Type declarations for renderer bridge                                             |
| `README.md`      | Internal Electron README (see also `docs/guides/ELECTRON_GUIDE.md`)               |

---

## `bin/` β€” CLI

| File                                                                                                        | Purpose                                                                                                                    |
| ----------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `omniroute.mjs`                                                                                             | Main CLI entry β€” `omniroute serve`, `omniroute setup`, `omniroute doctor`, `omniroute providers`, `omniroute combos`, etc. |
| `reset-password.mjs`                                                                                        | Standalone password reset CLI                                                                                              |
| `cli/commands/setup.mjs`                                                                                    | Interactive + non-interactive setup wizard                                                                                 |
| `cli/commands/doctor.mjs`                                                                                   | System health diagnostics (8+ checks)                                                                                      |
| `cli/commands/providers.mjs`                                                                                | Provider list/test/validate                                                                                                |
| `cli/{args,data-dir,encryption,io,provider-catalog,provider-store,provider-test,settings-store,sqlite}.mjs` | CLI helper modules                                                                                                         |
| `cli/tray/tray.ts`                                                                                          | System tray integration (cross-platform: NotifyIcon on Windows, systray2 on macOS/Linux)                                   |
| `cli/tray/tray.ps1`                                                                                         | PowerShell NotifyIcon backend (Windows, zero new binaries)                                                                 |
| `cli/tray/autostart.ts`                                                                                     | Cross-platform autostart (LaunchAgent / .desktop / registry)                                                               |
| `cli/runtime/sqliteRuntime.mjs`                                                                             | 5-step SQLite driver resolution chain (bundled β†’ runtime β†’ lazy-install β†’ node:sqlite β†’ sql.js)                            |
| `cli/runtime/magicBytes.mjs`                                                                                | Binary magic-byte validation (ELF / Mach-O / Mach-O fat / PE)                                                              |
| `cli/runtime/index.mjs`                                                                                     | `warmUpRuntimes()` β€” pre-resolves drivers at postinstall / first startup                                                   |
| `nodeRuntimeSupport.mjs`                                                                                    | Validate supported Node.js version on install                                                                              |

---

## `skills/` β€” Public Agent Skills

| File                         | Purpose                                                                            |
| ---------------------------- | ---------------------------------------------------------------------------------- |
| `skills/omniroute*/SKILL.md` | 10 skill manifests for external AI agents (Claude Desktop, ChatGPT, Cursor, Cline) |

---

## `scripts/` β€” Build & Check Scripts

| Script                              | Purpose                                                                    |
| ----------------------------------- | -------------------------------------------------------------------------- |
| `run-next.mjs`                      | Dev/start runner with env hydration                                        |
| `build-next-isolated.mjs`           | Standalone build (Next.js 16 standalone)                                   |
| `prepublish.ts`                     | Package preparation before `npm pack`                                      |
| `postinstall.mjs`                   | Auto-create `.env` from `.env.example` on first install                    |
| `sync-env.mjs`                      | Re-sync `.env` keys with `.env.example`                                    |
| `check-cycles.mjs`                  | Detect circular dependencies                                               |
| `check-route-validation.mjs`        | Validate all API routes have Zod validation                                |
| `check-t11-any-budget.mjs`          | Enforce explicit `any` budget per file                                     |
| `check-docs-sync.mjs`               | Validate docs version sync (existing pre-commit)                           |
| **`check-env-doc-sync.mjs`**        | NEW: cross-check env vars in code vs `.env.example` vs `ENVIRONMENT.md`    |
| **`check-docs-counts-sync.mjs`**    | NEW: validate counts (executors, strategies, OAuth, A2A skills) match docs |
| **`check-deprecated-versions.mjs`** | NEW: flag stale versions/dates in docs                                     |
| `check-supported-node-runtime.ts`   | Validate current Node version is supported                                 |
| `check-pr-test-policy.mjs`          | Enforce "tests required" rule on production code changes                   |
| **`gen-provider-reference.ts`**     | NEW: auto-generate `docs/reference/PROVIDER_REFERENCE.md` from catalog     |
| `i18n/generate-multilang.mjs`       | Translate UI strings + docs via Google Translate                           |
| `i18n_autotranslate.py`             | LLM-based doc translation pipeline                                         |
| `validate_translation.py`           | Per-locale translation validation                                          |
| `check_translations.py`             | Code-side i18n key check                                                   |
| `run-playwright-tests.mjs`          | Playwright E2E runner                                                      |
| `run-protocol-clients-tests.mjs`    | MCP/A2A E2E runner                                                         |
| `run-ecosystem-tests.mjs`           | Ecosystem (provider integration) tests                                     |
| `test-report-summary.mjs`           | Generate coverage summary markdown                                         |
| `smoke-electron-packaged.mjs`       | Smoke-test packaged Electron build                                         |
| `native-binary-compat.mjs`          | Validate native deps (`better-sqlite3`) match Electron's Node              |
| `validate-pack-artifact.ts`         | Validate npm pack output                                                   |
| `responses-ws-proxy.mjs`            | WebSocket bridge for Codex Responses API                                   |
| `v1-ws-bridge.mjs`                  | WebSocket bridge for `/api/v1/ws` endpoint                                 |
| `standalone-server-ws.mjs`          | Standalone WS server runner                                                |
| `system-info.mjs`                   | Print system/runtime info for support                                      |
| `healthcheck.mjs`                   | One-shot health check (used by Docker HEALTHCHECK)                         |
| `uninstall.mjs`                     | Clean uninstall script                                                     |

---

## `docs/` β€” Public Documentation (44 files + 4 subdirs)

### Top-level guides

| Doc                         | Purpose                                                                               |
| --------------------------- | ------------------------------------------------------------------------------------- |
| `ARCHITECTURE.md`           | High-level architecture, subsystem map, dashboard surface                             |
| `CODEBASE_DOCUMENTATION.md` | Engineering reference: directories, modules, conventions                              |
| `FEATURES.md`               | Feature matrix with v3.8 highlights                                                   |
| `USER_GUIDE.md`             | End-user manual (setup, models, combos, CLIs, audio, etc.)                            |
| `API_REFERENCE.md`          | API endpoint reference with auth model                                                |
| `openapi.yaml`              | OpenAPI 3.0 spec (121 paths)                                                          |
| `SETUP_GUIDE.md`            | Install methods (npm, npx, Docker, Electron, Termux, source)                          |
| `ENVIRONMENT.md`            | All env vars (~219 used in code, ~810 lines `.env.example`)                           |
| `TROUBLESHOOTING.md`        | Common errors + v3.8.0 known issues                                                   |
| `RELEASE_CHECKLIST.md`      | Full release flow (skills, husky, conventional commits, deploy)                       |
| `COVERAGE_PLAN.md`          | Coverage goals and current state                                                      |
| `FREE_TIERS.md`             | Curated free-tier providers (48+ free + 11 OAuth)                                     |
| `CLI-TOOLS.md`              | External CLI integrations + Internal OmniRoute CLI                                    |
| `I18N.md`                   | i18n architecture, adding a language, 30 locales                                      |
| `UNINSTALL.md`              | Clean uninstall steps                                                                 |
| `PROVIDER_REFERENCE.md`     | **Auto-generated** catalog of 226 providers (regen: `npm run gen:provider-reference`) |

### Subsystem deep-dives

| Doc                        | Purpose                                                             |
| -------------------------- | ------------------------------------------------------------------- |
| `MCP-SERVER.md`            | MCP server: 87 tools, 3 transports, 30 scopes, REST endpoints      |
| `A2A-SERVER.md`            | A2A v0.3: JSON-RPC, 5 skills, REST helpers, agent card              |
| `AGENT_PROTOCOLS_GUIDE.md` | Unified guide: A2A vs ACP vs Cloud Agents                           |
| `CLOUD_AGENT.md`           | Codex Cloud / Devin / Jules orchestration                           |
| `SKILLS.md`                | Skills framework (built-in + marketplace + SkillsSH + sandbox)      |
| `MEMORY.md`                | Memory system (SQLite FTS5 + Qdrant)                                |
| `EVALS.md`                 | Eval framework (suites, runs, rubrics)                              |
| `GUARDRAILS.md`            | PII masker, prompt injection, vision bridge                         |
| `COMPLIANCE.md`            | Audit log, retention, noLog opt-out                                 |
| `WEBHOOKS.md`              | HMAC-signed webhook delivery                                        |
| `REASONING_REPLAY.md`      | Hybrid memory/SQLite cache for `reasoning_content`                  |
| `AUTHZ_GUIDE.md`           | Authorization pipeline (`classify` β†’ `policies` β†’ `enforce`)        |
| `RESILIENCE_GUIDE.md`      | Circuit breaker + cooldown + model lockout                          |
| `STEALTH_GUIDE.md`         | TLS fingerprinting (JA3/JA4), Claude Code CCH, MITM cert            |
| `AUTO-COMBO.md`            | Auto Combo engine (9-factor scoring, 4 mode packs, virtual factory) |

### Compression

| Doc                             | Purpose                                  |
| ------------------------------- | ---------------------------------------- |
| `COMPRESSION_GUIDE.md`          | Overview of compression modes + roadmap  |
| `COMPRESSION_ENGINES.md`        | Caveman + RTK engines, registry contract |
| `COMPRESSION_RULES_FORMAT.md`   | Caveman rule pack JSON schema            |
| `COMPRESSION_LANGUAGE_PACKS.md` | Per-language rule pack inventory         |
| `RTK_COMPRESSION.md`            | RTK declarative pipeline (49 filters)    |

### Deployment

| Doc                          | Purpose                                                           |
| ---------------------------- | ----------------------------------------------------------------- |
| `DOCKER_GUIDE.md`            | Docker build, profiles (base/cli/host/cliproxyapi), Redis sidecar |
| `VM_DEPLOYMENT_GUIDE.md`     | Generic VM/VPS deployment (Ubuntu/Debian + nginx + systemd)       |
| `FLY_IO_DEPLOYMENT_GUIDE.md` | Fly.io deployment (currently Chinese-only)                        |
| `TERMUX_GUIDE.md`            | Android headless via Termux                                       |
| `PWA_GUIDE.md`               | Progressive Web App install + service worker                      |
| `ELECTRON_GUIDE.md`          | Desktop app build + sign + distribute                             |
| `TUNNELS_GUIDE.md`           | Cloudflared + ngrok + Tailscale Funnel                            |
| `PROXY_GUIDE.md`             | 4-level outbound proxy + 1proxy marketplace                       |

### Subdirectories

| Subdir                    | Purpose                                                                               |
| ------------------------- | ------------------------------------------------------------------------------------- |
| `docs/archive/`           | Archived/historical docs (e.g., `RFC-AUTO-ASSESSMENT-DRAFT.md` β€” superseded by EVALS) |
| `docs/i18n/`              | Localized doc translations (~42 locales)                                              |
| `docs/screenshots/`       | Image assets for guides                                                               |
| `docs/superpowers/plans/` | Implementation plans (generated by `superpowers:writing-plans` skill)                 |

---

## `tests/` β€” Test Suites

| Subdir                 | Type                                    | Runner                                  |
| ---------------------- | --------------------------------------- | --------------------------------------- |
| `tests/unit/`          | Unit tests (~500 files, fastest)        | Node native test runner                 |
| `tests/integration/`   | Multi-module + DB integration tests     | Node native test runner (concurrency 1) |
| `tests/e2e/`           | UI + workflow E2E                       | Playwright                              |
| `tests/protocols-e2e/` | MCP + A2A real-client E2E               | Custom protocol clients                 |
| `tests/ecosystem/`     | Provider integration (network-touching) | Node native test runner                 |

---

## `public/` β€” Static Assets

| Path                | Purpose                                                          |
| ------------------- | ---------------------------------------------------------------- |
| `public/` (root)    | Favicons, robots.txt, manifest, service worker, marketing images |
| `public/providers/` | Provider logo PNG/SVG (used in dashboard)                        |

---

## `config/` β€” Static Configs + Quality-Gate State

Shipped configuration templates plus the committed quality-gate baselines
(moved here from the repo root in v3.8.26 to keep the root lean).

| Path                                          | Purpose                                                                          |
| --------------------------------------------- | -------------------------------------------------------------------------------- |
| `config/i18n.json`                            | Locale list + metadata (canonical source for the 42-locale count)                |
| `config/i18n-schema.json`                     | JSON schema validating `i18n.json`                                               |
| `config/payloadRules.json`                    | Upstream payload sanitization rules                                              |
| `config/quality/quality-baseline.json`        | Multi-metric ratchet baseline (`scripts/quality/check-quality-ratchet.mjs`)      |
| `config/quality/complexity-baseline.json`     | Frozen ESLint-complexity baseline (`check-complexity.mjs`)                       |
| `config/quality/duplication-baseline.json`    | Frozen jscpd duplication baseline (`check-duplication.mjs`)                      |
| `config/quality/file-size-baseline.json`      | Frozen per-file size baseline (`check-file-size.mjs`)                            |
| `config/quality/test-discovery-baseline.json` | Frozen orphan-test baseline (`check-test-discovery.mjs`)                         |
| `config/quality/dependency-allowlist.json`    | Approved dependencies allowlist (`check-deps.mjs`)                               |
| `config/quality/.license-allowlist.json`      | SPDX license allowlist (`check-licenses.mjs`)                                    |
| `config/quality/quality-metrics.json`         | Ephemeral collected metrics (generated by `collect-metrics.mjs`; **gitignored**) |

---

## `.github/` β€” GitHub Integration

| Path                               | Purpose                                                        |
| ---------------------------------- | -------------------------------------------------------------- |
| `.github/workflows/`               | GitHub Actions CI/CD workflows (lint, test, coverage, release) |
| `.github/ISSUE_TEMPLATE/`          | Bug/feature issue templates                                    |
| `.github/PULL_REQUEST_TEMPLATE.md` | PR template                                                    |
| `.github/dependabot.yml`           | Dependency update config                                       |

---

## `.husky/` β€” Git Hooks

| File         | Purpose                                                           |
| ------------ | ----------------------------------------------------------------- |
| `pre-commit` | Runs `lint-staged + check-docs-sync + check:any-budget:t11`       |
| `pre-push`   | Currently disabled (commented). Run `npm run test:unit` manually. |
| `_/`         | Husky internals                                                   |

---

## `.claude/` β€” Claude Code Slash Commands

| File                                                | Purpose                                            |
| --------------------------------------------------- | -------------------------------------------------- |
| `commands/version-bump-cc.md`                       | `/version-bump-cc` β€” bump version + auto-changelog |
| `commands/generate-release-cc.md`                   | `/generate-release-cc` β€” full release workflow     |
| `commands/deploy-vps-{local,akamai,both}-cc.md`     | Deploy to VPS                                      |
| `commands/capture-release-evidences-cc.md`          | Browser-record new features as WebP                |
| `commands/review-{prs,discussions}-cc.md`           | Triage GitHub PRs/discussions                      |
| `commands/{review-issues,implement-features}-cc.md` | Issue workflows                                    |
| `settings.local.json`                               | Per-project Claude Code settings                   |

---

## `.agents/` β€” Generic Agent Workflows (Codex / Cursor / etc.)

| Path                     | Purpose                                                 |
| ------------------------ | ------------------------------------------------------- |
| `workflows/*-ag.md`      | 11 workflow definitions (mirror of `.claude/commands/`) |
| `skills/<name>/SKILL.md` | 9 skill definitions with Codex Execution Notes          |

> **Note:** Workflows and commands are currently identical byte-by-byte. If `.agents/` is meant to target a different agent runtime (Codex), the variants need to diverge meaningfully.

---

## `_ideia/`, `_mono_repo/`, `_references/`, `_tasks/` β€” Out-of-tree

These underscore-prefixed directories hold non-shipping content:

- **`_ideia/`** β€” design notes (defer / notfit / viable categories)
- **`_mono_repo/`** β€” historic subprojects (omnirouteCloud, omnirouteSite, vscode-extension)
- **`_references/`** β€” read-only clones of related OSS projects (LiteLLM, 9router, ClawRouter, CLIProxyAPI, modelrelay, new-api, etc.) for cross-reference during development
- **`_tasks/`** β€” per-release task tracking files (informal)

Not included in `npm pack` output. See `.npmignore`.

---

## Generated / Gitignored

| Path                   | Purpose                       |
| ---------------------- | ----------------------------- |
| `node_modules/`        | npm dependencies              |
| `.next/`               | Next.js build output          |
| `coverage/`            | c8 coverage reports           |
| `logs/`                | Runtime logs                  |
| `package/`             | npm pack staging              |
| `.playwright-mcp/`     | Playwright MCP test artifacts |
| `.issues/`             | Local issue cache             |
| `tsconfig.tsbuildinfo` | TS incremental cache          |

---

## Navigation tips

- **New contributor?** Read `CONTRIBUTING.md` β†’ `CLAUDE.md` β†’ `docs/architecture/ARCHITECTURE.md` β†’ `docs/architecture/CODEBASE_DOCUMENTATION.md`.
- **Adding a provider?** Follow `docs/architecture/ARCHITECTURE.md Β§ Adding a New Provider` + cross-check `docs/reference/PROVIDER_REFERENCE.md`.
- **Adding a route?** `docs/architecture/ARCHITECTURE.md Β§ Adding a New API Route` + `src/shared/validation/schemas.ts`.
- **Adding an MCP tool?** `docs/frameworks/MCP-SERVER.md Β§ Adding a Tool`.
- **Adding an A2A skill?** `docs/frameworks/A2A-SERVER.md Β§ Adding a New Skill`.
- **Running locally?** `docs/guides/SETUP_GUIDE.md`.
- **Deploying?** `docs/guides/DOCKER_GUIDE.md` / `docs/ops/VM_DEPLOYMENT_GUIDE.md` / `docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md`.
- **Releasing?** `docs/ops/RELEASE_CHECKLIST.md` (and `/generate-release-cc` Claude Code skill).