mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-02 21:32:10 +03:00
Adds a config-driven DSL pipeline for normalizing the system blocks sent to Anthropic via the Claude Code bridge. Removes third-party agent CLI fingerprints (OpenCode, Cline, Cursor, Continue) and prepends the SDK identity + signed billing header so the request looks classifier-correct regardless of which client originally sent it. Why a DSL: future fingerprint defenses ship as config rows, not new code. Mode presets (basic/aggressive/custom), reorder, add, delete, reset — all hot-reloaded through the existing runtimeSettings registry. Files - open-sse/services/ccBridgeTransforms.ts (~440 LOC; 8 op-kinds, executor, buildBillingHeaderValue ported from ex-machina cch.ts, singleton config matching cliFingerprints pattern, T4-200 fixture-matching defaults) - tests/unit/cc-bridge-transforms.test.ts (30 tests; per-op, idempotency, ordering, verbatim-OpenCode regression) - open-sse/services/claudeCodeCompatible.ts (step 5b in buildAndSign pipeline + re-exports for downstream) - open-sse/executors/base.ts (maintainer comment: native OAuth path is intentionally not routed through the DSL; it has its own billing prepend at lines 744-773) - src/lib/config/runtimeSettings.ts (RuntimeReloadSection + snapshot + default + normalize + apply + change-detection) - src/shared/validation/settingsSchemas.ts (zod discriminatedUnion over the 8 op-kinds, max 50 ops per pipeline) - src/app/(dashboard)/dashboard/settings/components/RoutingTab.tsx (Settings UI Card: enabled toggle, ordered pipeline list with reorder buttons, add-op dropdown, reset-to-defaults) - src/i18n/messages/en.json (10 new strings under settings.ccBridgeTransforms.*) Defaults match the empirical T4=200 layout: [billing, identity, sanitized, extras]. Verified against prod call logs (1c1946a2 = plugin-200, de8ab5bd = raw-429) and four-variant live A/B test (T1=429 baseline, T2=429 phrase-only, T3=429 sanitizer-only, T4=200 with billing+identity). Test result: 30/30 ccBridgeTransforms + 6/6 baseline claude-code-compatible-helpers green. Scope: CC bridge surface only (open-sse/services/claudeCodeCompatible.ts). Native claude OAuth path is NOT routed through the DSL — it has its own billing prepend mechanism that already works. Refs: https://github.com/diegosouzapw/OmniRoute/issues/2260