blackriver-gateway 3.8.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2415) hide show
  1. package/.env.example +2070 -0
  2. package/@omniroute/opencode-plugin/LICENSE +21 -0
  3. package/@omniroute/opencode-plugin/README.md +296 -0
  4. package/@omniroute/opencode-plugin/package-lock.json +1930 -0
  5. package/@omniroute/opencode-plugin/package.json +73 -0
  6. package/@omniroute/opencode-plugin/src/index.ts +4685 -0
  7. package/@omniroute/opencode-plugin/src/logger.ts +74 -0
  8. package/@omniroute/opencode-plugin/src/naming.ts +301 -0
  9. package/@omniroute/opencode-plugin/tsconfig.json +20 -0
  10. package/@omniroute/opencode-plugin/tsup.config.ts +20 -0
  11. package/@omniroute/opencode-provider/LICENSE +21 -0
  12. package/@omniroute/opencode-provider/README.md +156 -0
  13. package/@omniroute/opencode-provider/package-lock.json +1514 -0
  14. package/@omniroute/opencode-provider/package.json +63 -0
  15. package/@omniroute/opencode-provider/src/index.ts +908 -0
  16. package/@omniroute/opencode-provider/tsconfig.json +20 -0
  17. package/@omniroute/opencode-provider/tsup.config.ts +18 -0
  18. package/LICENSE +22 -0
  19. package/README.md +1265 -0
  20. package/bin/_ops-common.sh +70 -0
  21. package/bin/cli/CONVENTIONS.md +224 -0
  22. package/bin/cli/README.md +146 -0
  23. package/bin/cli/api-commands/agent-skills.mjs +70 -0
  24. package/bin/cli/api-commands/agentbridge.mjs +155 -0
  25. package/bin/cli/api-commands/api-keys.mjs +42 -0
  26. package/bin/cli/api-commands/audio.mjs +40 -0
  27. package/bin/cli/api-commands/chat.mjs +58 -0
  28. package/bin/cli/api-commands/cli-tools.mjs +361 -0
  29. package/bin/cli/api-commands/cloud.mjs +81 -0
  30. package/bin/cli/api-commands/combos.mjs +69 -0
  31. package/bin/cli/api-commands/compression.mjs +128 -0
  32. package/bin/cli/api-commands/embedded-services.mjs +202 -0
  33. package/bin/cli/api-commands/embeddings.mjs +42 -0
  34. package/bin/cli/api-commands/fallback.mjs +49 -0
  35. package/bin/cli/api-commands/images.mjs +42 -0
  36. package/bin/cli/api-commands/memory.mjs +251 -0
  37. package/bin/cli/api-commands/messages.mjs +40 -0
  38. package/bin/cli/api-commands/models.mjs +89 -0
  39. package/bin/cli/api-commands/moderations.mjs +24 -0
  40. package/bin/cli/api-commands/oauth.mjs +114 -0
  41. package/bin/cli/api-commands/playground.mjs +83 -0
  42. package/bin/cli/api-commands/pricing.mjs +44 -0
  43. package/bin/cli/api-commands/provider-nodes.mjs +62 -0
  44. package/bin/cli/api-commands/providers.mjs +148 -0
  45. package/bin/cli/api-commands/quota.mjs +154 -0
  46. package/bin/cli/api-commands/registry.mjs +75 -0
  47. package/bin/cli/api-commands/rerank.mjs +24 -0
  48. package/bin/cli/api-commands/responses.mjs +24 -0
  49. package/bin/cli/api-commands/settings.mjs +228 -0
  50. package/bin/cli/api-commands/system.mjs +320 -0
  51. package/bin/cli/api-commands/telemetry.mjs +26 -0
  52. package/bin/cli/api-commands/traffic-inspector.mjs +307 -0
  53. package/bin/cli/api-commands/translator.mjs +65 -0
  54. package/bin/cli/api-commands/usage.mjs +117 -0
  55. package/bin/cli/api.mjs +269 -0
  56. package/bin/cli/commands/a2a.mjs +323 -0
  57. package/bin/cli/commands/audit.mjs +203 -0
  58. package/bin/cli/commands/autostart.mjs +57 -0
  59. package/bin/cli/commands/backup.mjs +469 -0
  60. package/bin/cli/commands/batches.mjs +235 -0
  61. package/bin/cli/commands/cache.mjs +102 -0
  62. package/bin/cli/commands/chat.mjs +162 -0
  63. package/bin/cli/commands/cloud.mjs +233 -0
  64. package/bin/cli/commands/combo.mjs +361 -0
  65. package/bin/cli/commands/completion.mjs +346 -0
  66. package/bin/cli/commands/compression.mjs +247 -0
  67. package/bin/cli/commands/config.mjs +351 -0
  68. package/bin/cli/commands/configure.mjs +180 -0
  69. package/bin/cli/commands/connect.mjs +132 -0
  70. package/bin/cli/commands/context-eng.mjs +182 -0
  71. package/bin/cli/commands/contexts.mjs +271 -0
  72. package/bin/cli/commands/cost.mjs +144 -0
  73. package/bin/cli/commands/dashboard.mjs +65 -0
  74. package/bin/cli/commands/doctor.mjs +527 -0
  75. package/bin/cli/commands/env.mjs +100 -0
  76. package/bin/cli/commands/eval.mjs +278 -0
  77. package/bin/cli/commands/files.mjs +144 -0
  78. package/bin/cli/commands/health.mjs +123 -0
  79. package/bin/cli/commands/keys.mjs +599 -0
  80. package/bin/cli/commands/launch-codex.mjs +201 -0
  81. package/bin/cli/commands/launch.mjs +155 -0
  82. package/bin/cli/commands/login.mjs +192 -0
  83. package/bin/cli/commands/logs.mjs +183 -0
  84. package/bin/cli/commands/mcp.mjs +273 -0
  85. package/bin/cli/commands/memory.mjs +244 -0
  86. package/bin/cli/commands/models.mjs +92 -0
  87. package/bin/cli/commands/nodes.mjs +177 -0
  88. package/bin/cli/commands/oauth.mjs +258 -0
  89. package/bin/cli/commands/oneproxy.mjs +120 -0
  90. package/bin/cli/commands/open.mjs +75 -0
  91. package/bin/cli/commands/openapi.mjs +168 -0
  92. package/bin/cli/commands/plugin.mjs +219 -0
  93. package/bin/cli/commands/policy.mjs +216 -0
  94. package/bin/cli/commands/pricing.mjs +123 -0
  95. package/bin/cli/commands/provider-cmd.mjs +18 -0
  96. package/bin/cli/commands/providers.mjs +706 -0
  97. package/bin/cli/commands/quota.mjs +100 -0
  98. package/bin/cli/commands/redis.mjs +294 -0
  99. package/bin/cli/commands/registry.mjs +162 -0
  100. package/bin/cli/commands/repl.mjs +19 -0
  101. package/bin/cli/commands/reset-encrypted-columns.mjs +88 -0
  102. package/bin/cli/commands/resilience.mjs +208 -0
  103. package/bin/cli/commands/restart.mjs +25 -0
  104. package/bin/cli/commands/runtime.mjs +98 -0
  105. package/bin/cli/commands/serve.mjs +426 -0
  106. package/bin/cli/commands/sessions.mjs +108 -0
  107. package/bin/cli/commands/setup-aider.mjs +146 -0
  108. package/bin/cli/commands/setup-claude.mjs +219 -0
  109. package/bin/cli/commands/setup-cline.mjs +160 -0
  110. package/bin/cli/commands/setup-codex.mjs +387 -0
  111. package/bin/cli/commands/setup-continue.mjs +173 -0
  112. package/bin/cli/commands/setup-crush.mjs +148 -0
  113. package/bin/cli/commands/setup-cursor.mjs +108 -0
  114. package/bin/cli/commands/setup-goose.mjs +150 -0
  115. package/bin/cli/commands/setup-kilo.mjs +178 -0
  116. package/bin/cli/commands/setup-open-code.mjs +398 -0
  117. package/bin/cli/commands/setup-opencode.mjs +129 -0
  118. package/bin/cli/commands/setup-qwen.mjs +156 -0
  119. package/bin/cli/commands/setup-roo.mjs +172 -0
  120. package/bin/cli/commands/setup.mjs +211 -0
  121. package/bin/cli/commands/simulate.mjs +125 -0
  122. package/bin/cli/commands/skills.mjs +373 -0
  123. package/bin/cli/commands/status.mjs +95 -0
  124. package/bin/cli/commands/stop.mjs +96 -0
  125. package/bin/cli/commands/stream.mjs +166 -0
  126. package/bin/cli/commands/sync.mjs +230 -0
  127. package/bin/cli/commands/tags.mjs +116 -0
  128. package/bin/cli/commands/telemetry.mjs +74 -0
  129. package/bin/cli/commands/test-provider.mjs +242 -0
  130. package/bin/cli/commands/tokens.mjs +118 -0
  131. package/bin/cli/commands/translator.mjs +131 -0
  132. package/bin/cli/commands/tray.mjs +36 -0
  133. package/bin/cli/commands/tunnel.mjs +347 -0
  134. package/bin/cli/commands/update.mjs +194 -0
  135. package/bin/cli/commands/usage.mjs +331 -0
  136. package/bin/cli/commands/webhooks.mjs +196 -0
  137. package/bin/cli/contexts.mjs +60 -0
  138. package/bin/cli/data-dir.mjs +59 -0
  139. package/bin/cli/encryption.mjs +67 -0
  140. package/bin/cli/i18n.mjs +106 -0
  141. package/bin/cli/io.mjs +83 -0
  142. package/bin/cli/locales/ar.json +32 -0
  143. package/bin/cli/locales/az.json +32 -0
  144. package/bin/cli/locales/bg.json +32 -0
  145. package/bin/cli/locales/bn.json +5 -0
  146. package/bin/cli/locales/cs.json +32 -0
  147. package/bin/cli/locales/da.json +32 -0
  148. package/bin/cli/locales/de.json +32 -0
  149. package/bin/cli/locales/en.json +1289 -0
  150. package/bin/cli/locales/es.json +32 -0
  151. package/bin/cli/locales/fa.json +32 -0
  152. package/bin/cli/locales/fi.json +32 -0
  153. package/bin/cli/locales/fr.json +32 -0
  154. package/bin/cli/locales/gu.json +5 -0
  155. package/bin/cli/locales/he.json +5 -0
  156. package/bin/cli/locales/hi.json +32 -0
  157. package/bin/cli/locales/hu.json +32 -0
  158. package/bin/cli/locales/id.json +32 -0
  159. package/bin/cli/locales/in.json +5 -0
  160. package/bin/cli/locales/it.json +32 -0
  161. package/bin/cli/locales/ja.json +32 -0
  162. package/bin/cli/locales/ko.json +32 -0
  163. package/bin/cli/locales/mr.json +5 -0
  164. package/bin/cli/locales/ms.json +5 -0
  165. package/bin/cli/locales/nl.json +32 -0
  166. package/bin/cli/locales/no.json +32 -0
  167. package/bin/cli/locales/phi.json +5 -0
  168. package/bin/cli/locales/pl.json +32 -0
  169. package/bin/cli/locales/pt-BR.json +1286 -0
  170. package/bin/cli/locales/pt.json +32 -0
  171. package/bin/cli/locales/ro.json +32 -0
  172. package/bin/cli/locales/ru.json +32 -0
  173. package/bin/cli/locales/sk.json +32 -0
  174. package/bin/cli/locales/sv.json +32 -0
  175. package/bin/cli/locales/sw.json +5 -0
  176. package/bin/cli/locales/ta.json +5 -0
  177. package/bin/cli/locales/te.json +5 -0
  178. package/bin/cli/locales/th.json +32 -0
  179. package/bin/cli/locales/tr.json +32 -0
  180. package/bin/cli/locales/uk-UA.json +32 -0
  181. package/bin/cli/locales/ur.json +5 -0
  182. package/bin/cli/locales/vi.json +32 -0
  183. package/bin/cli/locales/zh-CN.json +1262 -0
  184. package/bin/cli/output.mjs +200 -0
  185. package/bin/cli/plugins.mjs +90 -0
  186. package/bin/cli/program.mjs +40 -0
  187. package/bin/cli/provider-catalog.mjs +175 -0
  188. package/bin/cli/provider-store.mjs +312 -0
  189. package/bin/cli/provider-test.mjs +181 -0
  190. package/bin/cli/runtime/index.mjs +19 -0
  191. package/bin/cli/runtime/magicBytes.mjs +47 -0
  192. package/bin/cli/runtime/nativeDeps.mjs +137 -0
  193. package/bin/cli/runtime/processSupervisor.mjs +136 -0
  194. package/bin/cli/runtime/sqliteRuntime.mjs +129 -0
  195. package/bin/cli/runtime/supervisorPolicy.mjs +56 -0
  196. package/bin/cli/runtime/trayRuntime.ts +94 -0
  197. package/bin/cli/runtime.mjs +61 -0
  198. package/bin/cli/schemas/output-schemas.mjs +56 -0
  199. package/bin/cli/scripts/generate-locales.mjs +911 -0
  200. package/bin/cli/settings-store.mjs +45 -0
  201. package/bin/cli/spinner.mjs +30 -0
  202. package/bin/cli/sqlite.mjs +158 -0
  203. package/bin/cli/tray/autostart.mjs +410 -0
  204. package/bin/cli/tray/autostart.ts +18 -0
  205. package/bin/cli/tray/icon.png +0 -0
  206. package/bin/cli/tray/index.mjs +28 -0
  207. package/bin/cli/tray/tray.ps1 +99 -0
  208. package/bin/cli/tray/tray.ts +186 -0
  209. package/bin/cli/tray/traySystray.mjs +135 -0
  210. package/bin/cli/tray/trayWin.ts +91 -0
  211. package/bin/cli/tray/trayWindows.mjs +75 -0
  212. package/bin/cli/tui/Dashboard.jsx +70 -0
  213. package/bin/cli/tui/EvalWatch.jsx +171 -0
  214. package/bin/cli/tui/InterfaceMenu.jsx +55 -0
  215. package/bin/cli/tui/OAuthFlow.jsx +193 -0
  216. package/bin/cli/tui/ProvidersTestAll.jsx +190 -0
  217. package/bin/cli/tui/Repl.jsx +392 -0
  218. package/bin/cli/tui/session.mjs +54 -0
  219. package/bin/cli/tui/tabs/Combos.jsx +47 -0
  220. package/bin/cli/tui/tabs/Cost.jsx +52 -0
  221. package/bin/cli/tui/tabs/Health.jsx +53 -0
  222. package/bin/cli/tui/tabs/Keys.jsx +48 -0
  223. package/bin/cli/tui/tabs/Logs.jsx +60 -0
  224. package/bin/cli/tui/tabs/Overview.jsx +80 -0
  225. package/bin/cli/tui/tabs/Providers.jsx +48 -0
  226. package/bin/cli/tui-components/CodeBlock.jsx +15 -0
  227. package/bin/cli/tui-components/ConfirmDialog.jsx +40 -0
  228. package/bin/cli/tui-components/DataTable.jsx +50 -0
  229. package/bin/cli/tui-components/HeaderSwr.jsx +25 -0
  230. package/bin/cli/tui-components/KeyMaskedDisplay.jsx +12 -0
  231. package/bin/cli/tui-components/MarkdownView.jsx +13 -0
  232. package/bin/cli/tui-components/MenuSelect.jsx +38 -0
  233. package/bin/cli/tui-components/MultilineInput.jsx +18 -0
  234. package/bin/cli/tui-components/ProgressBar.jsx +15 -0
  235. package/bin/cli/tui-components/Sparkline.jsx +15 -0
  236. package/bin/cli/tui-components/StatusBadge.jsx +17 -0
  237. package/bin/cli/tui-components/TokenCounter.jsx +18 -0
  238. package/bin/cli/tui-components/theme.jsx +11 -0
  239. package/bin/cli/utils/cliToken.mjs +22 -0
  240. package/bin/cli/utils/clipboard.mjs +35 -0
  241. package/bin/cli/utils/environment.mjs +50 -0
  242. package/bin/cli/utils/pid.mjs +110 -0
  243. package/bin/cli/utils/storageKeyProvision.mjs +31 -0
  244. package/bin/cold-start-bench.sh +82 -0
  245. package/bin/mcp-server.mjs +71 -0
  246. package/bin/nodeRuntimeSupport.mjs +84 -0
  247. package/bin/omniroute.mjs +237 -0
  248. package/bin/reset-password.mjs +137 -0
  249. package/bin/restore-data.sh +64 -0
  250. package/bin/restore-policies.sh +77 -0
  251. package/bin/rollback.sh +102 -0
  252. package/bin/snapshot-data.sh +61 -0
  253. package/open-sse/config/agyModels.ts +157 -0
  254. package/open-sse/config/anthropicHeaders.ts +127 -0
  255. package/open-sse/config/antigravityModelAliases.ts +309 -0
  256. package/open-sse/config/antigravityUpstream.ts +20 -0
  257. package/open-sse/config/audioRegistry.ts +547 -0
  258. package/open-sse/config/azureAi.ts +49 -0
  259. package/open-sse/config/bedrock.ts +196 -0
  260. package/open-sse/config/cliFingerprints.ts +405 -0
  261. package/open-sse/config/codexClient.ts +49 -0
  262. package/open-sse/config/codexIdentity.ts +87 -0
  263. package/open-sse/config/codexInstructions.ts +122 -0
  264. package/open-sse/config/codexQuotaScopes.ts +87 -0
  265. package/open-sse/config/constants.ts +281 -0
  266. package/open-sse/config/contextEditing.ts +156 -0
  267. package/open-sse/config/credentialLoader.ts +123 -0
  268. package/open-sse/config/datarobot.ts +69 -0
  269. package/open-sse/config/defaultThinkingSignature.ts +8 -0
  270. package/open-sse/config/embeddingRegistry.ts +434 -0
  271. package/open-sse/config/errorConfig.ts +201 -0
  272. package/open-sse/config/freeModelCatalog.data.ts +467 -0
  273. package/open-sse/config/freeModelCatalog.ts +142 -0
  274. package/open-sse/config/freeTierCatalog.ts +101 -0
  275. package/open-sse/config/geminiRateLimits.json +34 -0
  276. package/open-sse/config/glmProvider.ts +488 -0
  277. package/open-sse/config/imageRegistry.ts +752 -0
  278. package/open-sse/config/maritalk.ts +18 -0
  279. package/open-sse/config/mediaServiceKinds.ts +70 -0
  280. package/open-sse/config/moderationRegistry.ts +89 -0
  281. package/open-sse/config/musicRegistry.ts +115 -0
  282. package/open-sse/config/oci.ts +44 -0
  283. package/open-sse/config/ocrRegistry.ts +82 -0
  284. package/open-sse/config/ollamaModels.ts +28 -0
  285. package/open-sse/config/providerErrorRules.ts +218 -0
  286. package/open-sse/config/providerFieldStrips.ts +42 -0
  287. package/open-sse/config/providerHeaderProfiles.ts +188 -0
  288. package/open-sse/config/providerModels.ts +199 -0
  289. package/open-sse/config/providerPluginManifest.ts +186 -0
  290. package/open-sse/config/providerPluginManifestRegistry.ts +31 -0
  291. package/open-sse/config/providerPluginManifestUrl.ts +26 -0
  292. package/open-sse/config/providerRegistry.ts +257 -0
  293. package/open-sse/config/providers/index.ts +377 -0
  294. package/open-sse/config/providers/registry/adapta-web/index.ts +20 -0
  295. package/open-sse/config/providers/registry/agentrouter/index.ts +24 -0
  296. package/open-sse/config/providers/registry/agy/index.ts +28 -0
  297. package/open-sse/config/providers/registry/ai21/index.ts +13 -0
  298. package/open-sse/config/providers/registry/aimlapi/index.ts +21 -0
  299. package/open-sse/config/providers/registry/alibaba/cn/index.ts +15 -0
  300. package/open-sse/config/providers/registry/alibaba/index.ts +15 -0
  301. package/open-sse/config/providers/registry/anthropic/index.ts +52 -0
  302. package/open-sse/config/providers/registry/antigravity/index.ts +28 -0
  303. package/open-sse/config/providers/registry/api-airforce/index.ts +57 -0
  304. package/open-sse/config/providers/registry/auggie/index.ts +38 -0
  305. package/open-sse/config/providers/registry/bai/index.ts +14 -0
  306. package/open-sse/config/providers/registry/baichuan/index.ts +20 -0
  307. package/open-sse/config/providers/registry/baidu/index.ts +31 -0
  308. package/open-sse/config/providers/registry/bailian-coding-plan/index.ts +27 -0
  309. package/open-sse/config/providers/registry/baseten/index.ts +13 -0
  310. package/open-sse/config/providers/registry/bazaarlink/index.ts +48 -0
  311. package/open-sse/config/providers/registry/bedrock/index.ts +49 -0
  312. package/open-sse/config/providers/registry/blackbox/index.ts +25 -0
  313. package/open-sse/config/providers/registry/blackbox/web/index.ts +19 -0
  314. package/open-sse/config/providers/registry/bluesminds/index.ts +39 -0
  315. package/open-sse/config/providers/registry/byteplus/index.ts +21 -0
  316. package/open-sse/config/providers/registry/bytez/index.ts +17 -0
  317. package/open-sse/config/providers/registry/cerebras/index.ts +16 -0
  318. package/open-sse/config/providers/registry/charm-hyper/index.ts +14 -0
  319. package/open-sse/config/providers/registry/chatgpt-web/index.ts +23 -0
  320. package/open-sse/config/providers/registry/chipotle/index.ts +14 -0
  321. package/open-sse/config/providers/registry/chutes/index.ts +12 -0
  322. package/open-sse/config/providers/registry/claude/index.ts +102 -0
  323. package/open-sse/config/providers/registry/claude/web/index.ts +16 -0
  324. package/open-sse/config/providers/registry/cline/index.ts +45 -0
  325. package/open-sse/config/providers/registry/clinepass/index.ts +47 -0
  326. package/open-sse/config/providers/registry/cloudflare-ai/index.ts +33 -0
  327. package/open-sse/config/providers/registry/codebuddy-cn/index.ts +151 -0
  328. package/open-sse/config/providers/registry/codestral/index.ts +13 -0
  329. package/open-sse/config/providers/registry/codex/index.ts +115 -0
  330. package/open-sse/config/providers/registry/cohere/index.ts +28 -0
  331. package/open-sse/config/providers/registry/command-code/index.ts +143 -0
  332. package/open-sse/config/providers/registry/copilot-m365-web/index.ts +12 -0
  333. package/open-sse/config/providers/registry/copilot-web/index.ts +16 -0
  334. package/open-sse/config/providers/registry/coze/index.ts +12 -0
  335. package/open-sse/config/providers/registry/crof/index.ts +38 -0
  336. package/open-sse/config/providers/registry/cursor/index.ts +111 -0
  337. package/open-sse/config/providers/registry/databricks/index.ts +13 -0
  338. package/open-sse/config/providers/registry/deepinfra/index.ts +13 -0
  339. package/open-sse/config/providers/registry/deepseek/index.ts +15 -0
  340. package/open-sse/config/providers/registry/deepseek/web/index.ts +35 -0
  341. package/open-sse/config/providers/registry/devin-cli/index.ts +68 -0
  342. package/open-sse/config/providers/registry/dgrid/index.ts +15 -0
  343. package/open-sse/config/providers/registry/dify/index.ts +12 -0
  344. package/open-sse/config/providers/registry/digitalocean/index.ts +11 -0
  345. package/open-sse/config/providers/registry/dit/index.ts +41 -0
  346. package/open-sse/config/providers/registry/doubao/index.ts +28 -0
  347. package/open-sse/config/providers/registry/doubao/web/index.ts +15 -0
  348. package/open-sse/config/providers/registry/duckduckgo-web/index.ts +19 -0
  349. package/open-sse/config/providers/registry/factory/index.ts +33 -0
  350. package/open-sse/config/providers/registry/featherless-ai/index.ts +13 -0
  351. package/open-sse/config/providers/registry/fireworks/index.ts +35 -0
  352. package/open-sse/config/providers/registry/freeaiapikey/index.ts +38 -0
  353. package/open-sse/config/providers/registry/freemodel-dev/index.ts +19 -0
  354. package/open-sse/config/providers/registry/friendliai/index.ts +16 -0
  355. package/open-sse/config/providers/registry/galadriel/index.ts +13 -0
  356. package/open-sse/config/providers/registry/gemini/index.ts +63 -0
  357. package/open-sse/config/providers/registry/gemini/web/index.ts +16 -0
  358. package/open-sse/config/providers/registry/gigachat/index.ts +13 -0
  359. package/open-sse/config/providers/registry/github/index.ts +161 -0
  360. package/open-sse/config/providers/registry/github/models/index.ts +38 -0
  361. package/open-sse/config/providers/registry/gitlab-duo/index.ts +29 -0
  362. package/open-sse/config/providers/registry/gitlawb/gmi/index.ts +19 -0
  363. package/open-sse/config/providers/registry/gitlawb/index.ts +18 -0
  364. package/open-sse/config/providers/registry/glhf/index.ts +12 -0
  365. package/open-sse/config/providers/registry/glm/cn/index.ts +17 -0
  366. package/open-sse/config/providers/registry/glm/index.ts +16 -0
  367. package/open-sse/config/providers/registry/glm/t/index.ts +16 -0
  368. package/open-sse/config/providers/registry/grok-cli/index.ts +32 -0
  369. package/open-sse/config/providers/registry/grok-web/index.ts +18 -0
  370. package/open-sse/config/providers/registry/groq/index.ts +25 -0
  371. package/open-sse/config/providers/registry/hackclub/index.ts +19 -0
  372. package/open-sse/config/providers/registry/haiper/index.ts +15 -0
  373. package/open-sse/config/providers/registry/hcnsec/index.ts +11 -0
  374. package/open-sse/config/providers/registry/heroku/index.ts +13 -0
  375. package/open-sse/config/providers/registry/huggingchat/index.ts +143 -0
  376. package/open-sse/config/providers/registry/huggingface/index.ts +20 -0
  377. package/open-sse/config/providers/registry/hyperbolic/index.ts +21 -0
  378. package/open-sse/config/providers/registry/ideogram/index.ts +15 -0
  379. package/open-sse/config/providers/registry/iflytek/index.ts +21 -0
  380. package/open-sse/config/providers/registry/inclusionai/index.ts +12 -0
  381. package/open-sse/config/providers/registry/inference-net/index.ts +13 -0
  382. package/open-sse/config/providers/registry/inner-ai/index.ts +43 -0
  383. package/open-sse/config/providers/registry/kenari/index.ts +14 -0
  384. package/open-sse/config/providers/registry/kie/index.ts +27 -0
  385. package/open-sse/config/providers/registry/kilo-gateway/index.ts +21 -0
  386. package/open-sse/config/providers/registry/kilocode/index.ts +43 -0
  387. package/open-sse/config/providers/registry/kimi/coding/index.ts +17 -0
  388. package/open-sse/config/providers/registry/kimi/coding-apikey/index.ts +9 -0
  389. package/open-sse/config/providers/registry/kimi/index.ts +17 -0
  390. package/open-sse/config/providers/registry/kimi/web/index.ts +27 -0
  391. package/open-sse/config/providers/registry/kiro/index.ts +50 -0
  392. package/open-sse/config/providers/registry/kluster/index.ts +12 -0
  393. package/open-sse/config/providers/registry/lambda-ai/index.ts +13 -0
  394. package/open-sse/config/providers/registry/leonardo/index.ts +15 -0
  395. package/open-sse/config/providers/registry/liquid/index.ts +12 -0
  396. package/open-sse/config/providers/registry/llamagate/index.ts +13 -0
  397. package/open-sse/config/providers/registry/llm7/index.ts +27 -0
  398. package/open-sse/config/providers/registry/longcat/index.ts +24 -0
  399. package/open-sse/config/providers/registry/maritalk/index.ts +13 -0
  400. package/open-sse/config/providers/registry/meta-llama/index.ts +13 -0
  401. package/open-sse/config/providers/registry/mimocode/index.ts +16 -0
  402. package/open-sse/config/providers/registry/minimax/cn/index.ts +24 -0
  403. package/open-sse/config/providers/registry/minimax/index.ts +24 -0
  404. package/open-sse/config/providers/registry/mistral/index.ts +18 -0
  405. package/open-sse/config/providers/registry/modal/index.ts +12 -0
  406. package/open-sse/config/providers/registry/modelscope/index.ts +24 -0
  407. package/open-sse/config/providers/registry/monsterapi/index.ts +17 -0
  408. package/open-sse/config/providers/registry/moonshot/index.ts +13 -0
  409. package/open-sse/config/providers/registry/morph/index.ts +13 -0
  410. package/open-sse/config/providers/registry/muse-spark-web/index.ts +24 -0
  411. package/open-sse/config/providers/registry/nanogpt/index.ts +13 -0
  412. package/open-sse/config/providers/registry/nebius/index.ts +9 -0
  413. package/open-sse/config/providers/registry/nlpcloud/index.ts +19 -0
  414. package/open-sse/config/providers/registry/nous-research/index.ts +15 -0
  415. package/open-sse/config/providers/registry/novita/index.ts +15 -0
  416. package/open-sse/config/providers/registry/nscale/index.ts +13 -0
  417. package/open-sse/config/providers/registry/nube/index.ts +17 -0
  418. package/open-sse/config/providers/registry/nvidia/index.ts +36 -0
  419. package/open-sse/config/providers/registry/ollama-cloud/index.ts +27 -0
  420. package/open-sse/config/providers/registry/openadapter/index.ts +25 -0
  421. package/open-sse/config/providers/registry/openai/index.ts +43 -0
  422. package/open-sse/config/providers/registry/opencode/go/index.ts +61 -0
  423. package/open-sse/config/providers/registry/opencode/index.ts +51 -0
  424. package/open-sse/config/providers/registry/opencode/zen/index.ts +98 -0
  425. package/open-sse/config/providers/registry/openrouter/index.ts +17 -0
  426. package/open-sse/config/providers/registry/orcarouter/index.ts +87 -0
  427. package/open-sse/config/providers/registry/ovhcloud/index.ts +13 -0
  428. package/open-sse/config/providers/registry/perplexity/index.ts +22 -0
  429. package/open-sse/config/providers/registry/perplexity/web/index.ts +23 -0
  430. package/open-sse/config/providers/registry/pioneer/index.ts +41 -0
  431. package/open-sse/config/providers/registry/pollinations/index.ts +51 -0
  432. package/open-sse/config/providers/registry/predibase/index.ts +13 -0
  433. package/open-sse/config/providers/registry/publicai/index.ts +13 -0
  434. package/open-sse/config/providers/registry/puter/index.ts +70 -0
  435. package/open-sse/config/providers/registry/qianfan/index.ts +18 -0
  436. package/open-sse/config/providers/registry/qiniu/index.ts +15 -0
  437. package/open-sse/config/providers/registry/qoder/index.ts +37 -0
  438. package/open-sse/config/providers/registry/qwen/index.ts +25 -0
  439. package/open-sse/config/providers/registry/qwen/web/index.ts +24 -0
  440. package/open-sse/config/providers/registry/reka/index.ts +18 -0
  441. package/open-sse/config/providers/registry/requesty/index.ts +11 -0
  442. package/open-sse/config/providers/registry/sambanova/index.ts +13 -0
  443. package/open-sse/config/providers/registry/scaleway/index.ts +20 -0
  444. package/open-sse/config/providers/registry/sensenova/index.ts +27 -0
  445. package/open-sse/config/providers/registry/siliconflow/index.ts +84 -0
  446. package/open-sse/config/providers/registry/snowflake/index.ts +13 -0
  447. package/open-sse/config/providers/registry/sparkdesk/index.ts +20 -0
  448. package/open-sse/config/providers/registry/stepfun/index.ts +20 -0
  449. package/open-sse/config/providers/registry/sumopod/index.ts +15 -0
  450. package/open-sse/config/providers/registry/suno/index.ts +18 -0
  451. package/open-sse/config/providers/registry/synthetic/index.ts +21 -0
  452. package/open-sse/config/providers/registry/t3-web/index.ts +45 -0
  453. package/open-sse/config/providers/registry/tencent/index.ts +25 -0
  454. package/open-sse/config/providers/registry/theoldllm/index.ts +51 -0
  455. package/open-sse/config/providers/registry/together/index.ts +20 -0
  456. package/open-sse/config/providers/registry/tokenrouter/index.ts +44 -0
  457. package/open-sse/config/providers/registry/trae/index.ts +24 -0
  458. package/open-sse/config/providers/registry/udio/index.ts +12 -0
  459. package/open-sse/config/providers/registry/uncloseai/index.ts +19 -0
  460. package/open-sse/config/providers/registry/upstage/index.ts +13 -0
  461. package/open-sse/config/providers/registry/v0-vercel/index.ts +13 -0
  462. package/open-sse/config/providers/registry/venice/index.ts +13 -0
  463. package/open-sse/config/providers/registry/veoaifree-web/index.ts +15 -0
  464. package/open-sse/config/providers/registry/vercel-ai-gateway/index.ts +13 -0
  465. package/open-sse/config/providers/registry/vertex/index.ts +33 -0
  466. package/open-sse/config/providers/registry/vertex/partner/index.ts +22 -0
  467. package/open-sse/config/providers/registry/volcengine/index.ts +13 -0
  468. package/open-sse/config/providers/registry/wafer/index.ts +19 -0
  469. package/open-sse/config/providers/registry/wandb/index.ts +13 -0
  470. package/open-sse/config/providers/registry/windsurf/index.ts +119 -0
  471. package/open-sse/config/providers/registry/x5lab/index.ts +15 -0
  472. package/open-sse/config/providers/registry/xai/index.ts +18 -0
  473. package/open-sse/config/providers/registry/xiaomi-mimo/index.ts +13 -0
  474. package/open-sse/config/providers/registry/yi/index.ts +12 -0
  475. package/open-sse/config/providers/registry/yuanbao-web/index.ts +37 -0
  476. package/open-sse/config/providers/registry/zai/index.ts +28 -0
  477. package/open-sse/config/providers/registry/zed-hosted/index.ts +35 -0
  478. package/open-sse/config/providers/registry/zenmux/index.ts +87 -0
  479. package/open-sse/config/providers/registry/zenmux-free/index.ts +40 -0
  480. package/open-sse/config/providers/shared.ts +766 -0
  481. package/open-sse/config/registryUtils.ts +134 -0
  482. package/open-sse/config/rerankRegistry.ts +196 -0
  483. package/open-sse/config/runway.ts +39 -0
  484. package/open-sse/config/sap.ts +58 -0
  485. package/open-sse/config/searchRegistry.ts +317 -0
  486. package/open-sse/config/toolCloaking.ts +253 -0
  487. package/open-sse/config/videoRegistry.ts +229 -0
  488. package/open-sse/config/watsonx.ts +43 -0
  489. package/open-sse/executors/adapta-web.ts +564 -0
  490. package/open-sse/executors/antigravity/sseCollect.ts +148 -0
  491. package/open-sse/executors/antigravity.ts +1716 -0
  492. package/open-sse/executors/antigravityUpstreamError.ts +25 -0
  493. package/open-sse/executors/auggie.ts +573 -0
  494. package/open-sse/executors/azure-openai.ts +48 -0
  495. package/open-sse/executors/base/headers.ts +93 -0
  496. package/open-sse/executors/base/reasoningEffort.ts +160 -0
  497. package/open-sse/executors/base.ts +1315 -0
  498. package/open-sse/executors/bedrock.ts +714 -0
  499. package/open-sse/executors/blackbox-web.ts +708 -0
  500. package/open-sse/executors/chatgpt-web/models.ts +133 -0
  501. package/open-sse/executors/chatgpt-web.ts +3107 -0
  502. package/open-sse/executors/chatgptWebErrors.ts +18 -0
  503. package/open-sse/executors/chatgptWebTools.ts +127 -0
  504. package/open-sse/executors/chipotle.ts +432 -0
  505. package/open-sse/executors/claude-web/payload.ts +230 -0
  506. package/open-sse/executors/claude-web-with-auto-refresh.ts +117 -0
  507. package/open-sse/executors/claude-web.ts +833 -0
  508. package/open-sse/executors/claudeIdentity.ts +445 -0
  509. package/open-sse/executors/cliproxyapi.ts +466 -0
  510. package/open-sse/executors/cloudflare-ai.ts +97 -0
  511. package/open-sse/executors/codebuddy-cn.ts +53 -0
  512. package/open-sse/executors/codex/quota.ts +114 -0
  513. package/open-sse/executors/codex/tools.ts +165 -0
  514. package/open-sse/executors/codex.ts +1270 -0
  515. package/open-sse/executors/commandCode.ts +716 -0
  516. package/open-sse/executors/copilot-m365-connection.ts +271 -0
  517. package/open-sse/executors/copilot-m365-frames.ts +279 -0
  518. package/open-sse/executors/copilot-m365-web.ts +341 -0
  519. package/open-sse/executors/copilot-web.ts +722 -0
  520. package/open-sse/executors/cursor/composer.ts +53 -0
  521. package/open-sse/executors/cursor/prompt.ts +75 -0
  522. package/open-sse/executors/cursor.ts +1465 -0
  523. package/open-sse/executors/deepseek-web/stream-format.ts +44 -0
  524. package/open-sse/executors/deepseek-web-with-auto-refresh.ts +184 -0
  525. package/open-sse/executors/deepseek-web.ts +1123 -0
  526. package/open-sse/executors/default/urlNormalizers.ts +64 -0
  527. package/open-sse/executors/default.ts +873 -0
  528. package/open-sse/executors/devin-cli.ts +470 -0
  529. package/open-sse/executors/doubao-web.ts +665 -0
  530. package/open-sse/executors/duckduckgo-web/challenge.ts +151 -0
  531. package/open-sse/executors/duckduckgo-web.ts +782 -0
  532. package/open-sse/executors/firecrawl-fetch.ts +177 -0
  533. package/open-sse/executors/forceResponsesUpstream.ts +60 -0
  534. package/open-sse/executors/gemini-business.ts +446 -0
  535. package/open-sse/executors/gemini-web.ts +413 -0
  536. package/open-sse/executors/github.ts +376 -0
  537. package/open-sse/executors/gitlab.ts +793 -0
  538. package/open-sse/executors/gitlabResponses.ts +191 -0
  539. package/open-sse/executors/glm.ts +520 -0
  540. package/open-sse/executors/grok-cli.ts +253 -0
  541. package/open-sse/executors/grok-web/native-tools.ts +182 -0
  542. package/open-sse/executors/grok-web/text-cleanup.ts +137 -0
  543. package/open-sse/executors/grok-web/tool-bridge.ts +666 -0
  544. package/open-sse/executors/grok-web/types.ts +47 -0
  545. package/open-sse/executors/grok-web.ts +883 -0
  546. package/open-sse/executors/huggingchat/jsonlStream.ts +221 -0
  547. package/open-sse/executors/huggingchat.ts +593 -0
  548. package/open-sse/executors/index.ts +232 -0
  549. package/open-sse/executors/inner-ai.ts +764 -0
  550. package/open-sse/executors/jina-reader-fetch.ts +119 -0
  551. package/open-sse/executors/kie.ts +109 -0
  552. package/open-sse/executors/kimi-web.ts +455 -0
  553. package/open-sse/executors/kimi.ts +133 -0
  554. package/open-sse/executors/kiro/eventstream.ts +192 -0
  555. package/open-sse/executors/kiro.ts +821 -0
  556. package/open-sse/executors/kiroThinking.ts +116 -0
  557. package/open-sse/executors/lmarena.ts +511 -0
  558. package/open-sse/executors/mimocode.ts +560 -0
  559. package/open-sse/executors/muse-spark-web/response-parser.ts +383 -0
  560. package/open-sse/executors/muse-spark-web.ts +928 -0
  561. package/open-sse/executors/ninerouter.ts +212 -0
  562. package/open-sse/executors/nlpcloud.ts +546 -0
  563. package/open-sse/executors/opencode.ts +336 -0
  564. package/open-sse/executors/perplexity-web/protocol.ts +503 -0
  565. package/open-sse/executors/perplexity-web.ts +545 -0
  566. package/open-sse/executors/poe-web.ts +158 -0
  567. package/open-sse/executors/pollinations.ts +119 -0
  568. package/open-sse/executors/puter.ts +59 -0
  569. package/open-sse/executors/qoder.ts +416 -0
  570. package/open-sse/executors/qwen-web.ts +474 -0
  571. package/open-sse/executors/t3-chat-web.ts +582 -0
  572. package/open-sse/executors/tavily-fetch.ts +103 -0
  573. package/open-sse/executors/theoldllm.ts +354 -0
  574. package/open-sse/executors/tinyfish-fetch.ts +131 -0
  575. package/open-sse/executors/trae.ts +481 -0
  576. package/open-sse/executors/v0-vercel-web.ts +164 -0
  577. package/open-sse/executors/venice-web.ts +165 -0
  578. package/open-sse/executors/veoaifree-web.ts +397 -0
  579. package/open-sse/executors/vertex.ts +208 -0
  580. package/open-sse/executors/vertexMedia.ts +341 -0
  581. package/open-sse/executors/windsurf.ts +706 -0
  582. package/open-sse/executors/xai.ts +94 -0
  583. package/open-sse/executors/yuanbao-web.ts +504 -0
  584. package/open-sse/executors/zed-hosted.ts +364 -0
  585. package/open-sse/executors/zenmux-free.ts +283 -0
  586. package/open-sse/handlers/audioSpeech.ts +1060 -0
  587. package/open-sse/handlers/audioTranscription.ts +554 -0
  588. package/open-sse/handlers/audioTranslation.ts +135 -0
  589. package/open-sse/handlers/chatCore/attemptLogging.ts +210 -0
  590. package/open-sse/handlers/chatCore/backgroundRedirect.ts +41 -0
  591. package/open-sse/handlers/chatCore/cacheUsageMeta.ts +65 -0
  592. package/open-sse/handlers/chatCore/cavemanOutputAnalytics.ts +47 -0
  593. package/open-sse/handlers/chatCore/claudeClassifierCompat.ts +99 -0
  594. package/open-sse/handlers/chatCore/claudeEffortVariant.ts +62 -0
  595. package/open-sse/handlers/chatCore/claudeMessageTypes.ts +15 -0
  596. package/open-sse/handlers/chatCore/claudeSystemRole.ts +48 -0
  597. package/open-sse/handlers/chatCore/claudeToolDefaults.ts +27 -0
  598. package/open-sse/handlers/chatCore/claudeUpstreamMessages.ts +143 -0
  599. package/open-sse/handlers/chatCore/clientUsageBuffer.ts +54 -0
  600. package/open-sse/handlers/chatCore/clineResponseEnvelope.ts +25 -0
  601. package/open-sse/handlers/chatCore/codexFailover.ts +41 -0
  602. package/open-sse/handlers/chatCore/codexQuota.ts +85 -0
  603. package/open-sse/handlers/chatCore/comboContextCache.ts +63 -0
  604. package/open-sse/handlers/chatCore/compressionAnalyticsWrite.ts +149 -0
  605. package/open-sse/handlers/chatCore/compressionCacheStats.ts +53 -0
  606. package/open-sse/handlers/chatCore/compressionComboPredicates.ts +41 -0
  607. package/open-sse/handlers/chatCore/compressionSettings.ts +35 -0
  608. package/open-sse/handlers/chatCore/compressionUsageReceipt.ts +27 -0
  609. package/open-sse/handlers/chatCore/contextEditingTelemetry.ts +40 -0
  610. package/open-sse/handlers/chatCore/cooldownClassification.ts +26 -0
  611. package/open-sse/handlers/chatCore/executionCredentials.ts +72 -0
  612. package/open-sse/handlers/chatCore/executorClientHeaders.ts +36 -0
  613. package/open-sse/handlers/chatCore/executorHelpers.ts +151 -0
  614. package/open-sse/handlers/chatCore/executorProxy.ts +117 -0
  615. package/open-sse/handlers/chatCore/failureUsage.ts +41 -0
  616. package/open-sse/handlers/chatCore/gamificationEvent.ts +28 -0
  617. package/open-sse/handlers/chatCore/headers.ts +65 -0
  618. package/open-sse/handlers/chatCore/idempotency.ts +65 -0
  619. package/open-sse/handlers/chatCore/jsonBodyToSse.ts +161 -0
  620. package/open-sse/handlers/chatCore/keyHealth.ts +113 -0
  621. package/open-sse/handlers/chatCore/logTruncation.ts +93 -0
  622. package/open-sse/handlers/chatCore/memoryExtraction.ts +131 -0
  623. package/open-sse/handlers/chatCore/memorySkillsInjection.ts +165 -0
  624. package/open-sse/handlers/chatCore/nonStreamingJsonResponse.ts +16 -0
  625. package/open-sse/handlers/chatCore/nonStreamingResponseBody.ts +155 -0
  626. package/open-sse/handlers/chatCore/nonStreamingResponseHeaders.ts +46 -0
  627. package/open-sse/handlers/chatCore/nonStreamingResponseParse.ts +135 -0
  628. package/open-sse/handlers/chatCore/nonStreamingSse.ts +171 -0
  629. package/open-sse/handlers/chatCore/nonStreamingUsageStats.ts +90 -0
  630. package/open-sse/handlers/chatCore/outputStyleTelemetry.ts +53 -0
  631. package/open-sse/handlers/chatCore/passthroughHelpers.ts +83 -0
  632. package/open-sse/handlers/chatCore/passthroughToolNames.ts +65 -0
  633. package/open-sse/handlers/chatCore/pluginOnRequest.ts +65 -0
  634. package/open-sse/handlers/chatCore/pluginOnResponse.ts +34 -0
  635. package/open-sse/handlers/chatCore/postCallGuardrailContext.ts +47 -0
  636. package/open-sse/handlers/chatCore/quotaShareConsumption.ts +41 -0
  637. package/open-sse/handlers/chatCore/requestFormat.ts +111 -0
  638. package/open-sse/handlers/chatCore/requestSetup.ts +51 -0
  639. package/open-sse/handlers/chatCore/responseHeaders.ts +138 -0
  640. package/open-sse/handlers/chatCore/sanitization.ts +63 -0
  641. package/open-sse/handlers/chatCore/semanticCache.ts +98 -0
  642. package/open-sse/handlers/chatCore/semanticCacheStore.ts +73 -0
  643. package/open-sse/handlers/chatCore/serviceTier.ts +70 -0
  644. package/open-sse/handlers/chatCore/skillsFormat.ts +33 -0
  645. package/open-sse/handlers/chatCore/stageTrace.ts +30 -0
  646. package/open-sse/handlers/chatCore/streamErrorResult.ts +58 -0
  647. package/open-sse/handlers/chatCore/streamFinalize.ts +48 -0
  648. package/open-sse/handlers/chatCore/streamingCost.ts +37 -0
  649. package/open-sse/handlers/chatCore/streamingPipeline.ts +99 -0
  650. package/open-sse/handlers/chatCore/streamingQuotaShare.ts +54 -0
  651. package/open-sse/handlers/chatCore/streamingResponseHeaders.ts +39 -0
  652. package/open-sse/handlers/chatCore/streamingSemanticCacheStore.ts +95 -0
  653. package/open-sse/handlers/chatCore/streamingUsageStats.ts +79 -0
  654. package/open-sse/handlers/chatCore/targetFormat.ts +34 -0
  655. package/open-sse/handlers/chatCore/telemetryHelpers.ts +78 -0
  656. package/open-sse/handlers/chatCore/upstreamBody.ts +168 -0
  657. package/open-sse/handlers/chatCore/upstreamExecuteHeaders.ts +71 -0
  658. package/open-sse/handlers/chatCore/upstreamTimeouts.ts +158 -0
  659. package/open-sse/handlers/chatCore.ts +4452 -0
  660. package/open-sse/handlers/embeddings.ts +378 -0
  661. package/open-sse/handlers/imageGeneration/providers/chatgptWeb.ts +187 -0
  662. package/open-sse/handlers/imageGeneration/providers/comfyUI.ts +116 -0
  663. package/open-sse/handlers/imageGeneration/providers/haiper.ts +120 -0
  664. package/open-sse/handlers/imageGeneration/providers/huggingface.ts +90 -0
  665. package/open-sse/handlers/imageGeneration/providers/hyperbolic.ts +100 -0
  666. package/open-sse/handlers/imageGeneration/providers/ideogram.ts +96 -0
  667. package/open-sse/handlers/imageGeneration/providers/imagen3.ts +136 -0
  668. package/open-sse/handlers/imageGeneration/providers/leonardo.ts +140 -0
  669. package/open-sse/handlers/imageGeneration/providers/nvidiaNim.ts +286 -0
  670. package/open-sse/handlers/imageGeneration/providers/sdWebUI.ts +94 -0
  671. package/open-sse/handlers/imageGeneration.ts +2880 -0
  672. package/open-sse/handlers/moderations.ts +82 -0
  673. package/open-sse/handlers/musicGeneration.ts +640 -0
  674. package/open-sse/handlers/ocr.ts +79 -0
  675. package/open-sse/handlers/rerank.ts +210 -0
  676. package/open-sse/handlers/responseSanitizer/reasoning.ts +149 -0
  677. package/open-sse/handlers/responseSanitizer.ts +1086 -0
  678. package/open-sse/handlers/responseTranslator.ts +640 -0
  679. package/open-sse/handlers/responsesHandler.ts +92 -0
  680. package/open-sse/handlers/search.ts +1545 -0
  681. package/open-sse/handlers/sseParser.ts +825 -0
  682. package/open-sse/handlers/usageExtractor.ts +93 -0
  683. package/open-sse/handlers/videoGeneration/googleFlow.ts +219 -0
  684. package/open-sse/handlers/videoGeneration/googleFlowHandler.ts +145 -0
  685. package/open-sse/handlers/videoGeneration.ts +1264 -0
  686. package/open-sse/handlers/webFetch.ts +130 -0
  687. package/open-sse/index.ts +170 -0
  688. package/open-sse/lib/deepseek-pow-solver.cjs +3 -0
  689. package/open-sse/lib/deepseek-pow.ts +189 -0
  690. package/open-sse/lib/sha3_wasm_bg.wasm +0 -0
  691. package/open-sse/mcp-server/README.md +611 -0
  692. package/open-sse/mcp-server/audit.ts +478 -0
  693. package/open-sse/mcp-server/catalog.ts +290 -0
  694. package/open-sse/mcp-server/descriptionCompressor.ts +243 -0
  695. package/open-sse/mcp-server/httpAuthContext.ts +42 -0
  696. package/open-sse/mcp-server/httpTransport.ts +306 -0
  697. package/open-sse/mcp-server/index.ts +19 -0
  698. package/open-sse/mcp-server/mcpCallerIdentity.ts +53 -0
  699. package/open-sse/mcp-server/runtimeHeartbeat.ts +162 -0
  700. package/open-sse/mcp-server/schemas/a2a.ts +203 -0
  701. package/open-sse/mcp-server/schemas/audit.ts +121 -0
  702. package/open-sse/mcp-server/schemas/index.ts +116 -0
  703. package/open-sse/mcp-server/schemas/pickFastestModel.ts +110 -0
  704. package/open-sse/mcp-server/schemas/toolDefinition.ts +31 -0
  705. package/open-sse/mcp-server/schemas/toolSearch.ts +37 -0
  706. package/open-sse/mcp-server/schemas/tools.ts +1481 -0
  707. package/open-sse/mcp-server/scopeEnforcement.ts +135 -0
  708. package/open-sse/mcp-server/server.ts +1370 -0
  709. package/open-sse/mcp-server/toolCardinality.ts +254 -0
  710. package/open-sse/mcp-server/toolSearch/catalog.ts +98 -0
  711. package/open-sse/mcp-server/toolSearch/handler.ts +18 -0
  712. package/open-sse/mcp-server/toolSearch/index.ts +5 -0
  713. package/open-sse/mcp-server/toolSearch/register.ts +36 -0
  714. package/open-sse/mcp-server/toolSearch/search.ts +96 -0
  715. package/open-sse/mcp-server/toolSearch/signature.ts +92 -0
  716. package/open-sse/mcp-server/tools/advancedTools.ts +1119 -0
  717. package/open-sse/mcp-server/tools/agentSkillTools.ts +83 -0
  718. package/open-sse/mcp-server/tools/compressionTools.ts +451 -0
  719. package/open-sse/mcp-server/tools/gamificationTools.ts +148 -0
  720. package/open-sse/mcp-server/tools/githubSkillTools.ts +141 -0
  721. package/open-sse/mcp-server/tools/memoryTools.ts +137 -0
  722. package/open-sse/mcp-server/tools/notionTools.ts +106 -0
  723. package/open-sse/mcp-server/tools/obsidianTools.ts +327 -0
  724. package/open-sse/mcp-server/tools/pickFastestModel.ts +293 -0
  725. package/open-sse/mcp-server/tools/pluginTools.ts +216 -0
  726. package/open-sse/mcp-server/tools/poolTools.ts +205 -0
  727. package/open-sse/mcp-server/tools/skillTools.ts +119 -0
  728. package/open-sse/package.json +17 -0
  729. package/open-sse/services/AGENTS.md +78 -0
  730. package/open-sse/services/accountFallback.ts +1863 -0
  731. package/open-sse/services/accountSelector.ts +80 -0
  732. package/open-sse/services/accountSemaphore.ts +367 -0
  733. package/open-sse/services/antigravity429Engine.ts +178 -0
  734. package/open-sse/services/antigravityClientProfile.ts +167 -0
  735. package/open-sse/services/antigravityCredits.ts +68 -0
  736. package/open-sse/services/antigravityHeaderScrub.ts +75 -0
  737. package/open-sse/services/antigravityHeaders.ts +121 -0
  738. package/open-sse/services/antigravityIdentity.ts +127 -0
  739. package/open-sse/services/antigravityObfuscation.ts +64 -0
  740. package/open-sse/services/antigravityProjectBootstrap.ts +145 -0
  741. package/open-sse/services/antigravityQuotaFamily.ts +56 -0
  742. package/open-sse/services/antigravityVersion.ts +163 -0
  743. package/open-sse/services/apiKeyRotator.ts +385 -0
  744. package/open-sse/services/autoCombo/autoPrefix.ts +61 -0
  745. package/open-sse/services/autoCombo/builtinCatalog.ts +126 -0
  746. package/open-sse/services/autoCombo/complexityRouter.ts +111 -0
  747. package/open-sse/services/autoCombo/engine.ts +314 -0
  748. package/open-sse/services/autoCombo/index.ts +18 -0
  749. package/open-sse/services/autoCombo/modePacks.ts +105 -0
  750. package/open-sse/services/autoCombo/modelFamily.ts +95 -0
  751. package/open-sse/services/autoCombo/paidModelFilter.ts +44 -0
  752. package/open-sse/services/autoCombo/persistence.ts +124 -0
  753. package/open-sse/services/autoCombo/pipelineRouter.ts +418 -0
  754. package/open-sse/services/autoCombo/providerDiversity.ts +170 -0
  755. package/open-sse/services/autoCombo/providerRegistryAccessor.ts +9 -0
  756. package/open-sse/services/autoCombo/requestControls.ts +80 -0
  757. package/open-sse/services/autoCombo/routerStrategy.ts +375 -0
  758. package/open-sse/services/autoCombo/scoring.ts +242 -0
  759. package/open-sse/services/autoCombo/selfHealing.ts +167 -0
  760. package/open-sse/services/autoCombo/speedRanking.ts +327 -0
  761. package/open-sse/services/autoCombo/suffixComposition.ts +147 -0
  762. package/open-sse/services/autoCombo/taskFitness.ts +407 -0
  763. package/open-sse/services/autoCombo/virtualFactory.ts +446 -0
  764. package/open-sse/services/autoRefreshDaemon.ts +206 -0
  765. package/open-sse/services/backgroundTaskDetector.ts +263 -0
  766. package/open-sse/services/bailianQuotaFetcher.ts +333 -0
  767. package/open-sse/services/batchProcessor.ts +914 -0
  768. package/open-sse/services/bedrock.ts +160 -0
  769. package/open-sse/services/browserBackedChat.ts +849 -0
  770. package/open-sse/services/browserPool.ts +501 -0
  771. package/open-sse/services/ccBridgeTransforms.ts +581 -0
  772. package/open-sse/services/ccWireImageBuiltins.ts +26 -0
  773. package/open-sse/services/chatgptImageCache.ts +143 -0
  774. package/open-sse/services/chatgptTlsClient.ts +628 -0
  775. package/open-sse/services/claudeAdaptiveThinking.ts +52 -0
  776. package/open-sse/services/claudeCodeCCH.ts +49 -0
  777. package/open-sse/services/claudeCodeCompatible.ts +1198 -0
  778. package/open-sse/services/claudeCodeCompatibleBeta.ts +23 -0
  779. package/open-sse/services/claudeCodeCompatibleThinkingDisplay.ts +34 -0
  780. package/open-sse/services/claudeCodeConstraints.ts +144 -0
  781. package/open-sse/services/claudeCodeExtraRemap.ts +18 -0
  782. package/open-sse/services/claudeCodeFingerprint.ts +46 -0
  783. package/open-sse/services/claudeCodeObfuscation.ts +116 -0
  784. package/open-sse/services/claudeCodeToolRemapper.ts +339 -0
  785. package/open-sse/services/claudeHaikuConstraints.ts +88 -0
  786. package/open-sse/services/claudeTlsClient.ts +590 -0
  787. package/open-sse/services/claudeTurnstileSolver.ts +206 -0
  788. package/open-sse/services/claudeUsageCooldown.ts +51 -0
  789. package/open-sse/services/claudeWebAutoRefresh.ts +224 -0
  790. package/open-sse/services/clinepassModels.ts +76 -0
  791. package/open-sse/services/cloudCodeHeaders.ts +41 -0
  792. package/open-sse/services/cloudCodeThinking.ts +71 -0
  793. package/open-sse/services/codeAssistSubscription.ts +83 -0
  794. package/open-sse/services/codexQuotaFetcher.ts +523 -0
  795. package/open-sse/services/codexUsageQuotas.ts +270 -0
  796. package/open-sse/services/codexVerbosity.ts +59 -0
  797. package/open-sse/services/combo/applyStrategyOrdering.ts +226 -0
  798. package/open-sse/services/combo/autoConfig.ts +62 -0
  799. package/open-sse/services/combo/autoStrategy.ts +475 -0
  800. package/open-sse/services/combo/comboCompatFallback.ts +82 -0
  801. package/open-sse/services/combo/comboCooldownRetry.ts +237 -0
  802. package/open-sse/services/combo/comboData.ts +24 -0
  803. package/open-sse/services/combo/comboPredicates.ts +211 -0
  804. package/open-sse/services/combo/comboSetup.ts +135 -0
  805. package/open-sse/services/combo/comboStructure.ts +766 -0
  806. package/open-sse/services/combo/concurrencyCaps.ts +76 -0
  807. package/open-sse/services/combo/context.ts +46 -0
  808. package/open-sse/services/combo/fingerprintExpansion.ts +105 -0
  809. package/open-sse/services/combo/headroomRanking.ts +91 -0
  810. package/open-sse/services/combo/providerWildcard.ts +253 -0
  811. package/open-sse/services/combo/quotaExhaustionCutoff.ts +140 -0
  812. package/open-sse/services/combo/quotaScoring.ts +311 -0
  813. package/open-sse/services/combo/quotaShareConcurrency.ts +74 -0
  814. package/open-sse/services/combo/quotaShareInflight.ts +133 -0
  815. package/open-sse/services/combo/quotaShareStrategy.ts +349 -0
  816. package/open-sse/services/combo/quotaStrategies.ts +647 -0
  817. package/open-sse/services/combo/resolveAutoStrategy.ts +334 -0
  818. package/open-sse/services/combo/responseValidation.ts +206 -0
  819. package/open-sse/services/combo/rrState.ts +98 -0
  820. package/open-sse/services/combo/runtimeUnits.ts +269 -0
  821. package/open-sse/services/combo/sessionStickiness.ts +301 -0
  822. package/open-sse/services/combo/shadowRouting.ts +179 -0
  823. package/open-sse/services/combo/targetExhaustion.ts +160 -0
  824. package/open-sse/services/combo/targetSorters.ts +174 -0
  825. package/open-sse/services/combo/targetTimeoutRunner.ts +91 -0
  826. package/open-sse/services/combo/types.ts +175 -0
  827. package/open-sse/services/combo/validateQuality.ts +445 -0
  828. package/open-sse/services/combo.ts +3085 -0
  829. package/open-sse/services/comboAgentMiddleware.ts +214 -0
  830. package/open-sse/services/comboConfig.ts +248 -0
  831. package/open-sse/services/comboManifestMetrics.ts +13 -0
  832. package/open-sse/services/comboMetrics.ts +480 -0
  833. package/open-sse/services/compression/adaptiveCompression/computeTarget.ts +31 -0
  834. package/open-sse/services/compression/adaptiveCompression/ladder.ts +59 -0
  835. package/open-sse/services/compression/adaptiveCompression/resolveAdaptivePlan.ts +104 -0
  836. package/open-sse/services/compression/adaptiveCompression/types.ts +61 -0
  837. package/open-sse/services/compression/aggressive.ts +204 -0
  838. package/open-sse/services/compression/bodyAdapter.ts +354 -0
  839. package/open-sse/services/compression/cacheAwareConfig.ts +60 -0
  840. package/open-sse/services/compression/cachingAware.ts +130 -0
  841. package/open-sse/services/compression/caveman.ts +602 -0
  842. package/open-sse/services/compression/cavemanRules.ts +432 -0
  843. package/open-sse/services/compression/deriveDefaultPlan.ts +59 -0
  844. package/open-sse/services/compression/diffHelper.ts +219 -0
  845. package/open-sse/services/compression/engineBreakdown.ts +29 -0
  846. package/open-sse/services/compression/engineCatalog.ts +91 -0
  847. package/open-sse/services/compression/engines/cavemanAdapter.ts +454 -0
  848. package/open-sse/services/compression/engines/ccr/ccrQuery.ts +110 -0
  849. package/open-sse/services/compression/engines/ccr/index.ts +460 -0
  850. package/open-sse/services/compression/engines/headroom/encoderComparison.ts +72 -0
  851. package/open-sse/services/compression/engines/headroom/gcf/decode_generic.ts +711 -0
  852. package/open-sse/services/compression/engines/headroom/gcf/generic.ts +332 -0
  853. package/open-sse/services/compression/engines/headroom/gcf/index.ts +9 -0
  854. package/open-sse/services/compression/engines/headroom/gcf/scalar.ts +336 -0
  855. package/open-sse/services/compression/engines/headroom/index.ts +286 -0
  856. package/open-sse/services/compression/engines/headroom/smartcrusher.ts +255 -0
  857. package/open-sse/services/compression/engines/headroom/tabular.ts +263 -0
  858. package/open-sse/services/compression/engines/headroom/toon.ts +43 -0
  859. package/open-sse/services/compression/engines/index.ts +42 -0
  860. package/open-sse/services/compression/engines/ionizer/index.ts +124 -0
  861. package/open-sse/services/compression/engines/ionizer/sample.ts +200 -0
  862. package/open-sse/services/compression/engines/llm/index.ts +346 -0
  863. package/open-sse/services/compression/engines/llmlingua/constants.ts +55 -0
  864. package/open-sse/services/compression/engines/llmlingua/index.ts +474 -0
  865. package/open-sse/services/compression/engines/llmlingua/modelStore.ts +67 -0
  866. package/open-sse/services/compression/engines/llmlingua/onnxWorker.ts +117 -0
  867. package/open-sse/services/compression/engines/llmlingua/ultraEntry.ts +109 -0
  868. package/open-sse/services/compression/engines/llmlingua/worker.ts +373 -0
  869. package/open-sse/services/compression/engines/mcpAccessibility/collapseRepeated.ts +121 -0
  870. package/open-sse/services/compression/engines/mcpAccessibility/constants.ts +63 -0
  871. package/open-sse/services/compression/engines/mcpAccessibility/index.ts +52 -0
  872. package/open-sse/services/compression/engines/readLifecycle/index.ts +299 -0
  873. package/open-sse/services/compression/engines/registry.ts +87 -0
  874. package/open-sse/services/compression/engines/relevance/configSchema.ts +63 -0
  875. package/open-sse/services/compression/engines/relevance/index.ts +185 -0
  876. package/open-sse/services/compression/engines/relevance/scorer.ts +85 -0
  877. package/open-sse/services/compression/engines/rtk/codeStripper.ts +145 -0
  878. package/open-sse/services/compression/engines/rtk/commandDetector.ts +482 -0
  879. package/open-sse/services/compression/engines/rtk/configSchema.ts +117 -0
  880. package/open-sse/services/compression/engines/rtk/deduplicator.ts +37 -0
  881. package/open-sse/services/compression/engines/rtk/discover.ts +150 -0
  882. package/open-sse/services/compression/engines/rtk/filterLoader.ts +245 -0
  883. package/open-sse/services/compression/engines/rtk/filterSchema.ts +207 -0
  884. package/open-sse/services/compression/engines/rtk/filters/aws.json +34 -0
  885. package/open-sse/services/compression/engines/rtk/filters/biome.json +35 -0
  886. package/open-sse/services/compression/engines/rtk/filters/build-eslint.json +37 -0
  887. package/open-sse/services/compression/engines/rtk/filters/build-typescript.json +33 -0
  888. package/open-sse/services/compression/engines/rtk/filters/build-vite.json +41 -0
  889. package/open-sse/services/compression/engines/rtk/filters/build-webpack.json +34 -0
  890. package/open-sse/services/compression/engines/rtk/filters/bundle-install.json +35 -0
  891. package/open-sse/services/compression/engines/rtk/filters/composer.json +81 -0
  892. package/open-sse/services/compression/engines/rtk/filters/curl.json +34 -0
  893. package/open-sse/services/compression/engines/rtk/filters/df.json +34 -0
  894. package/open-sse/services/compression/engines/rtk/filters/docker-build.json +78 -0
  895. package/open-sse/services/compression/engines/rtk/filters/docker-logs.json +42 -0
  896. package/open-sse/services/compression/engines/rtk/filters/docker-ps.json +33 -0
  897. package/open-sse/services/compression/engines/rtk/filters/dotnet.json +47 -0
  898. package/open-sse/services/compression/engines/rtk/filters/du.json +33 -0
  899. package/open-sse/services/compression/engines/rtk/filters/error-stacktrace.json +41 -0
  900. package/open-sse/services/compression/engines/rtk/filters/gcloud.json +34 -0
  901. package/open-sse/services/compression/engines/rtk/filters/generic-output.json +32 -0
  902. package/open-sse/services/compression/engines/rtk/filters/gh.json +98 -0
  903. package/open-sse/services/compression/engines/rtk/filters/git-branch.json +45 -0
  904. package/open-sse/services/compression/engines/rtk/filters/git-diff.json +33 -0
  905. package/open-sse/services/compression/engines/rtk/filters/git-log.json +33 -0
  906. package/open-sse/services/compression/engines/rtk/filters/git-status.json +40 -0
  907. package/open-sse/services/compression/engines/rtk/filters/golangci-lint.json +34 -0
  908. package/open-sse/services/compression/engines/rtk/filters/gradle.json +47 -0
  909. package/open-sse/services/compression/engines/rtk/filters/json-output.json +40 -0
  910. package/open-sse/services/compression/engines/rtk/filters/kubectl.json +99 -0
  911. package/open-sse/services/compression/engines/rtk/filters/make.json +38 -0
  912. package/open-sse/services/compression/engines/rtk/filters/mypy.json +34 -0
  913. package/open-sse/services/compression/engines/rtk/filters/npm-audit.json +43 -0
  914. package/open-sse/services/compression/engines/rtk/filters/npm-install.json +41 -0
  915. package/open-sse/services/compression/engines/rtk/filters/nx.json +34 -0
  916. package/open-sse/services/compression/engines/rtk/filters/pip.json +41 -0
  917. package/open-sse/services/compression/engines/rtk/filters/playwright.json +42 -0
  918. package/open-sse/services/compression/engines/rtk/filters/poetry-install.json +35 -0
  919. package/open-sse/services/compression/engines/rtk/filters/prettier.json +40 -0
  920. package/open-sse/services/compression/engines/rtk/filters/ps.json +34 -0
  921. package/open-sse/services/compression/engines/rtk/filters/rsync.json +33 -0
  922. package/open-sse/services/compression/engines/rtk/filters/rubocop.json +34 -0
  923. package/open-sse/services/compression/engines/rtk/filters/ruff.json +40 -0
  924. package/open-sse/services/compression/engines/rtk/filters/shell-find.json +33 -0
  925. package/open-sse/services/compression/engines/rtk/filters/shell-grep.json +37 -0
  926. package/open-sse/services/compression/engines/rtk/filters/shell-ls.json +33 -0
  927. package/open-sse/services/compression/engines/rtk/filters/ssh.json +43 -0
  928. package/open-sse/services/compression/engines/rtk/filters/systemctl-status.json +43 -0
  929. package/open-sse/services/compression/engines/rtk/filters/terraform-plan.json +34 -0
  930. package/open-sse/services/compression/engines/rtk/filters/test-cargo.json +42 -0
  931. package/open-sse/services/compression/engines/rtk/filters/test-go.json +41 -0
  932. package/open-sse/services/compression/engines/rtk/filters/test-jest.json +43 -0
  933. package/open-sse/services/compression/engines/rtk/filters/test-pytest.json +41 -0
  934. package/open-sse/services/compression/engines/rtk/filters/test-vitest.json +43 -0
  935. package/open-sse/services/compression/engines/rtk/filters/tofu-plan.json +34 -0
  936. package/open-sse/services/compression/engines/rtk/filters/turbo.json +34 -0
  937. package/open-sse/services/compression/engines/rtk/filters/uv-sync.json +35 -0
  938. package/open-sse/services/compression/engines/rtk/filters/wget.json +34 -0
  939. package/open-sse/services/compression/engines/rtk/grouper.ts +99 -0
  940. package/open-sse/services/compression/engines/rtk/index.ts +706 -0
  941. package/open-sse/services/compression/engines/rtk/learn.ts +290 -0
  942. package/open-sse/services/compression/engines/rtk/lineFilter.ts +178 -0
  943. package/open-sse/services/compression/engines/rtk/rawOutput.ts +208 -0
  944. package/open-sse/services/compression/engines/rtk/renderers/gitDiff.ts +39 -0
  945. package/open-sse/services/compression/engines/rtk/renderers/index.ts +50 -0
  946. package/open-sse/services/compression/engines/rtk/renderers/structuredTable.ts +96 -0
  947. package/open-sse/services/compression/engines/rtk/renderers/terraformPlan.ts +40 -0
  948. package/open-sse/services/compression/engines/rtk/renderers/testGreen.ts +70 -0
  949. package/open-sse/services/compression/engines/rtk/renderers/types.ts +13 -0
  950. package/open-sse/services/compression/engines/rtk/smartTruncate.ts +67 -0
  951. package/open-sse/services/compression/engines/rtk/splitCompositeCommand.ts +111 -0
  952. package/open-sse/services/compression/engines/rtk/verify.ts +107 -0
  953. package/open-sse/services/compression/engines/session-dedup/fuzzy.ts +153 -0
  954. package/open-sse/services/compression/engines/session-dedup/index.ts +435 -0
  955. package/open-sse/services/compression/engines/types.ts +77 -0
  956. package/open-sse/services/compression/entrypointWrap.ts +43 -0
  957. package/open-sse/services/compression/eval/aggregate.ts +62 -0
  958. package/open-sse/services/compression/eval/corpus.ts +45 -0
  959. package/open-sse/services/compression/eval/costMeter.ts +31 -0
  960. package/open-sse/services/compression/eval/executorModelClient.ts +44 -0
  961. package/open-sse/services/compression/eval/fidelityCheck.ts +61 -0
  962. package/open-sse/services/compression/eval/grader.ts +27 -0
  963. package/open-sse/services/compression/eval/judge.ts +68 -0
  964. package/open-sse/services/compression/eval/report.ts +44 -0
  965. package/open-sse/services/compression/eval/runner.ts +135 -0
  966. package/open-sse/services/compression/eval/savings.ts +30 -0
  967. package/open-sse/services/compression/eval/seedCorpus.ts +60 -0
  968. package/open-sse/services/compression/eval/types.ts +65 -0
  969. package/open-sse/services/compression/fidelityGate.ts +124 -0
  970. package/open-sse/services/compression/fidelityGateStep.ts +44 -0
  971. package/open-sse/services/compression/hardBudget.ts +196 -0
  972. package/open-sse/services/compression/harness/benchmark.ts +318 -0
  973. package/open-sse/services/compression/harness/budgetGate.ts +62 -0
  974. package/open-sse/services/compression/harness/index.ts +52 -0
  975. package/open-sse/services/compression/harness/measure.ts +98 -0
  976. package/open-sse/services/compression/harness/replay.ts +72 -0
  977. package/open-sse/services/compression/harness/runner.ts +58 -0
  978. package/open-sse/services/compression/index.ts +165 -0
  979. package/open-sse/services/compression/languageDetector.ts +51 -0
  980. package/open-sse/services/compression/lite.ts +241 -0
  981. package/open-sse/services/compression/messageContent.ts +89 -0
  982. package/open-sse/services/compression/outputMode.ts +175 -0
  983. package/open-sse/services/compression/outputStyles/apply.ts +135 -0
  984. package/open-sse/services/compression/outputStyles/backCompat.ts +29 -0
  985. package/open-sse/services/compression/outputStyles/catalog.ts +76 -0
  986. package/open-sse/services/compression/outputStyles/telemetry.ts +50 -0
  987. package/open-sse/services/compression/pipelineEngineBreaker.ts +139 -0
  988. package/open-sse/services/compression/pipelineGuards.ts +45 -0
  989. package/open-sse/services/compression/planResolution.ts +128 -0
  990. package/open-sse/services/compression/prefixFreeze.ts +124 -0
  991. package/open-sse/services/compression/preservation.ts +0 -0
  992. package/open-sse/services/compression/preserveSystemPromptMode.ts +72 -0
  993. package/open-sse/services/compression/progressiveAging.ts +145 -0
  994. package/open-sse/services/compression/quantumLock/index.ts +17 -0
  995. package/open-sse/services/compression/quantumLock/quantumLock.ts +58 -0
  996. package/open-sse/services/compression/quantumLock/quantumLockStep.ts +72 -0
  997. package/open-sse/services/compression/quantumLock/quantumPatterns.ts +80 -0
  998. package/open-sse/services/compression/quantumLock/strategyWrap.ts +72 -0
  999. package/open-sse/services/compression/resolveCompressionPlan.ts +28 -0
  1000. package/open-sse/services/compression/resultMemo.ts +83 -0
  1001. package/open-sse/services/compression/riskGate/index.ts +3 -0
  1002. package/open-sse/services/compression/riskGate/riskGate.ts +136 -0
  1003. package/open-sse/services/compression/riskGate/riskGateStep.ts +115 -0
  1004. package/open-sse/services/compression/riskGate/riskPatterns.ts +61 -0
  1005. package/open-sse/services/compression/riskGate/strategyWrap.ts +44 -0
  1006. package/open-sse/services/compression/ruleLoader.ts +273 -0
  1007. package/open-sse/services/compression/rules/_schema.json +31 -0
  1008. package/open-sse/services/compression/rules/de/context.json +38 -0
  1009. package/open-sse/services/compression/rules/de/dedup.json +38 -0
  1010. package/open-sse/services/compression/rules/de/filler.json +70 -0
  1011. package/open-sse/services/compression/rules/de/structural.json +30 -0
  1012. package/open-sse/services/compression/rules/de/ultra.json +107 -0
  1013. package/open-sse/services/compression/rules/en/context.json +88 -0
  1014. package/open-sse/services/compression/rules/en/dedup.json +38 -0
  1015. package/open-sse/services/compression/rules/en/filler.json +129 -0
  1016. package/open-sse/services/compression/rules/en/structural.json +102 -0
  1017. package/open-sse/services/compression/rules/en/ultra.json +107 -0
  1018. package/open-sse/services/compression/rules/es/context.json +87 -0
  1019. package/open-sse/services/compression/rules/es/dedup.json +38 -0
  1020. package/open-sse/services/compression/rules/es/filler.json +110 -0
  1021. package/open-sse/services/compression/rules/es/structural.json +105 -0
  1022. package/open-sse/services/compression/rules/es/ultra.json +107 -0
  1023. package/open-sse/services/compression/rules/fr/context.json +38 -0
  1024. package/open-sse/services/compression/rules/fr/dedup.json +38 -0
  1025. package/open-sse/services/compression/rules/fr/filler.json +70 -0
  1026. package/open-sse/services/compression/rules/fr/structural.json +30 -0
  1027. package/open-sse/services/compression/rules/fr/ultra.json +107 -0
  1028. package/open-sse/services/compression/rules/id/context.json +113 -0
  1029. package/open-sse/services/compression/rules/id/dedup.json +38 -0
  1030. package/open-sse/services/compression/rules/id/filler.json +138 -0
  1031. package/open-sse/services/compression/rules/id/structural.json +111 -0
  1032. package/open-sse/services/compression/rules/id/ultra.json +252 -0
  1033. package/open-sse/services/compression/rules/ja/context.json +38 -0
  1034. package/open-sse/services/compression/rules/ja/dedup.json +38 -0
  1035. package/open-sse/services/compression/rules/ja/filler.json +70 -0
  1036. package/open-sse/services/compression/rules/ja/structural.json +30 -0
  1037. package/open-sse/services/compression/rules/ja/ultra.json +86 -0
  1038. package/open-sse/services/compression/rules/pt-BR/context.json +69 -0
  1039. package/open-sse/services/compression/rules/pt-BR/dedup.json +51 -0
  1040. package/open-sse/services/compression/rules/pt-BR/filler.json +151 -0
  1041. package/open-sse/services/compression/rules/pt-BR/structural.json +78 -0
  1042. package/open-sse/services/compression/rules/pt-BR/ultra.json +192 -0
  1043. package/open-sse/services/compression/rules/zh/dedup.json +38 -0
  1044. package/open-sse/services/compression/rules/zh/filler.json +54 -0
  1045. package/open-sse/services/compression/rules/zh/ultra.json +55 -0
  1046. package/open-sse/services/compression/stackedStepCore.ts +87 -0
  1047. package/open-sse/services/compression/stats.ts +59 -0
  1048. package/open-sse/services/compression/strategySelector.ts +1007 -0
  1049. package/open-sse/services/compression/summarizer.ts +244 -0
  1050. package/open-sse/services/compression/toolResultCompressor.ts +283 -0
  1051. package/open-sse/services/compression/types.ts +479 -0
  1052. package/open-sse/services/compression/ultra.ts +321 -0
  1053. package/open-sse/services/compression/ultraHeuristic.ts +157 -0
  1054. package/open-sse/services/compression/validation.ts +432 -0
  1055. package/open-sse/services/contextHandoff.ts +770 -0
  1056. package/open-sse/services/contextManager.ts +617 -0
  1057. package/open-sse/services/credentialGate.ts +84 -0
  1058. package/open-sse/services/crofUsageFetcher.ts +182 -0
  1059. package/open-sse/services/cursorSessionManager.ts +208 -0
  1060. package/open-sse/services/deepseekQuotaFetcher.ts +244 -0
  1061. package/open-sse/services/deviceTracker.ts +307 -0
  1062. package/open-sse/services/emergencyFallback.ts +162 -0
  1063. package/open-sse/services/errorClassifier.ts +198 -0
  1064. package/open-sse/services/evalRouting.ts +276 -0
  1065. package/open-sse/services/freeWebSearch.ts +154 -0
  1066. package/open-sse/services/fusion.ts +337 -0
  1067. package/open-sse/services/geminiRateLimitTracker.ts +145 -0
  1068. package/open-sse/services/geminiThoughtSignatureStore.ts +329 -0
  1069. package/open-sse/services/genericQuotaFetcher.ts +215 -0
  1070. package/open-sse/services/gigachatAuth.ts +113 -0
  1071. package/open-sse/services/githubCopilotModels.ts +162 -0
  1072. package/open-sse/services/gpt5SamplingGuard.ts +81 -0
  1073. package/open-sse/services/grokTlsClient.ts +607 -0
  1074. package/open-sse/services/hfModelSuggestions.ts +63 -0
  1075. package/open-sse/services/inAppLoginService.ts +256 -0
  1076. package/open-sse/services/intentClassifier.ts +665 -0
  1077. package/open-sse/services/ipFilter.ts +340 -0
  1078. package/open-sse/services/keyGroupAuth.ts +84 -0
  1079. package/open-sse/services/kiroModels.ts +195 -0
  1080. package/open-sse/services/manifestAdapter.ts +134 -0
  1081. package/open-sse/services/mimoThinking.ts +54 -0
  1082. package/open-sse/services/model.ts +738 -0
  1083. package/open-sse/services/modelCapabilities.ts +5 -0
  1084. package/open-sse/services/modelDeprecation.ts +173 -0
  1085. package/open-sse/services/modelFamilyFallback.ts +240 -0
  1086. package/open-sse/services/modelStrip.ts +60 -0
  1087. package/open-sse/services/modelscopePolicy.ts +97 -0
  1088. package/open-sse/services/opencodeOllamaUsage.ts +562 -0
  1089. package/open-sse/services/opencodeQuotaFetcher.ts +351 -0
  1090. package/open-sse/services/payloadRules.ts +474 -0
  1091. package/open-sse/services/perplexityTlsClient.ts +593 -0
  1092. package/open-sse/services/pipeline.ts +189 -0
  1093. package/open-sse/services/provider.ts +460 -0
  1094. package/open-sse/services/providerCooldownTracker.ts +198 -0
  1095. package/open-sse/services/providerCostData.ts +52 -0
  1096. package/open-sse/services/providerDefaultRateLimit.ts +94 -0
  1097. package/open-sse/services/providerRequestDefaults.ts +88 -0
  1098. package/open-sse/services/proxyAutoSelector.ts +58 -0
  1099. package/open-sse/services/qoderCli.ts +987 -0
  1100. package/open-sse/services/qoderCliResolve.ts +111 -0
  1101. package/open-sse/services/quotaFetchThrottle.ts +118 -0
  1102. package/open-sse/services/quotaMonitor.ts +377 -0
  1103. package/open-sse/services/quotaPreflight.ts +349 -0
  1104. package/open-sse/services/qwenThinking.ts +44 -0
  1105. package/open-sse/services/rateLimitManager/headers.ts +94 -0
  1106. package/open-sse/services/rateLimitManager.ts +945 -0
  1107. package/open-sse/services/rateLimitSemaphore.ts +231 -0
  1108. package/open-sse/services/reasoningCache.ts +514 -0
  1109. package/open-sse/services/reasoningTokenBuffer.ts +50 -0
  1110. package/open-sse/services/refreshSerializer.ts +131 -0
  1111. package/open-sse/services/requestDedup.ts +127 -0
  1112. package/open-sse/services/responseModelEcho.ts +79 -0
  1113. package/open-sse/services/responsesInputSanitizer.ts +145 -0
  1114. package/open-sse/services/retryAfterJson.ts +44 -0
  1115. package/open-sse/services/roleNormalizer.ts +283 -0
  1116. package/open-sse/services/searchCache.ts +150 -0
  1117. package/open-sse/services/sessionManager.ts +380 -0
  1118. package/open-sse/services/sessionPool/fingerprintRotator.ts +126 -0
  1119. package/open-sse/services/sessionPool/index.ts +28 -0
  1120. package/open-sse/services/sessionPool/poolRegistry.ts +93 -0
  1121. package/open-sse/services/sessionPool/session.ts +119 -0
  1122. package/open-sse/services/sessionPool/sessionFactory.ts +57 -0
  1123. package/open-sse/services/sessionPool/sessionPool.ts +326 -0
  1124. package/open-sse/services/sessionPool/types.ts +100 -0
  1125. package/open-sse/services/sessionPool/webExecutorWrapper.ts +132 -0
  1126. package/open-sse/services/signatureCache.ts +189 -0
  1127. package/open-sse/services/slidingWindowLimiter.ts +84 -0
  1128. package/open-sse/services/specificityDetector.ts +89 -0
  1129. package/open-sse/services/specificityRules.ts +257 -0
  1130. package/open-sse/services/specificityTypes.ts +43 -0
  1131. package/open-sse/services/streamRecovery.ts +545 -0
  1132. package/open-sse/services/systemPrompt.ts +187 -0
  1133. package/open-sse/services/systemTransforms.ts +532 -0
  1134. package/open-sse/services/taskAwareRouter.ts +326 -0
  1135. package/open-sse/services/taskAwareRouting.ts +553 -0
  1136. package/open-sse/services/thinkingBudget.ts +391 -0
  1137. package/open-sse/services/tierConfig.ts +124 -0
  1138. package/open-sse/services/tierDefaults.json +26 -0
  1139. package/open-sse/services/tierResolver.ts +144 -0
  1140. package/open-sse/services/tierTypes.ts +40 -0
  1141. package/open-sse/services/tlsClientProxy.ts +30 -0
  1142. package/open-sse/services/tokenExtractionConfig.ts +398 -0
  1143. package/open-sse/services/tokenLimitCounter.ts +342 -0
  1144. package/open-sse/services/tokenRefresh.ts +2180 -0
  1145. package/open-sse/services/toolLatencyTracker.ts +89 -0
  1146. package/open-sse/services/toolLimitDetector.ts +87 -0
  1147. package/open-sse/services/toolSchemaSanitizer.ts +165 -0
  1148. package/open-sse/services/usage/antigravity.ts +794 -0
  1149. package/open-sse/services/usage/claude.ts +216 -0
  1150. package/open-sse/services/usage/codebuddy-cn.ts +199 -0
  1151. package/open-sse/services/usage/codex.ts +75 -0
  1152. package/open-sse/services/usage/cursor.ts +161 -0
  1153. package/open-sse/services/usage/glm.ts +220 -0
  1154. package/open-sse/services/usage/kimi.ts +209 -0
  1155. package/open-sse/services/usage/kiro.ts +243 -0
  1156. package/open-sse/services/usage/minimax.ts +346 -0
  1157. package/open-sse/services/usage/quota.ts +85 -0
  1158. package/open-sse/services/usage/scalars.ts +75 -0
  1159. package/open-sse/services/usage.ts +1058 -0
  1160. package/open-sse/services/volumeDetector.ts +224 -0
  1161. package/open-sse/services/webSearchFallback.ts +246 -0
  1162. package/open-sse/services/webSearchRouting.ts +68 -0
  1163. package/open-sse/services/webSessionPoolHealth.ts +287 -0
  1164. package/open-sse/services/wildcardRouter.ts +136 -0
  1165. package/open-sse/services/workflowFSM.ts +340 -0
  1166. package/open-sse/shared/zedAuth.ts +535 -0
  1167. package/open-sse/transformer/responsesTransformer.ts +667 -0
  1168. package/open-sse/translator/bootstrap.ts +27 -0
  1169. package/open-sse/translator/deepseekWebTools.ts +486 -0
  1170. package/open-sse/translator/formats.ts +12 -0
  1171. package/open-sse/translator/helpers/claudeHelper.ts +563 -0
  1172. package/open-sse/translator/helpers/geminiHelper.ts +657 -0
  1173. package/open-sse/translator/helpers/geminiToolsSanitizer.ts +255 -0
  1174. package/open-sse/translator/helpers/jsonUtil.ts +18 -0
  1175. package/open-sse/translator/helpers/maxTokensHelper.ts +21 -0
  1176. package/open-sse/translator/helpers/openaiHelper.ts +244 -0
  1177. package/open-sse/translator/helpers/responsesApiHelper.ts +9 -0
  1178. package/open-sse/translator/helpers/schemaCoercion.ts +408 -0
  1179. package/open-sse/translator/helpers/toolCallHelper.ts +224 -0
  1180. package/open-sse/translator/helpers/toolCallShim.ts +113 -0
  1181. package/open-sse/translator/image/sizeMapper.ts +22 -0
  1182. package/open-sse/translator/index.ts +614 -0
  1183. package/open-sse/translator/paramSupport.ts +70 -0
  1184. package/open-sse/translator/registry.ts +41 -0
  1185. package/open-sse/translator/request/antigravity-to-openai.ts +357 -0
  1186. package/open-sse/translator/request/claude-to-gemini.ts +236 -0
  1187. package/open-sse/translator/request/claude-to-openai.ts +534 -0
  1188. package/open-sse/translator/request/gemini-to-openai.ts +193 -0
  1189. package/open-sse/translator/request/openai-responses/helpers.ts +69 -0
  1190. package/open-sse/translator/request/openai-responses/toResponses.ts +357 -0
  1191. package/open-sse/translator/request/openai-responses.ts +533 -0
  1192. package/open-sse/translator/request/openai-to-claude/thinkingBudget.ts +89 -0
  1193. package/open-sse/translator/request/openai-to-claude/toolResultAdjacency.ts +106 -0
  1194. package/open-sse/translator/request/openai-to-claude.ts +747 -0
  1195. package/open-sse/translator/request/openai-to-cursor.ts +226 -0
  1196. package/open-sse/translator/request/openai-to-gemini/helpers.ts +142 -0
  1197. package/open-sse/translator/request/openai-to-gemini.ts +753 -0
  1198. package/open-sse/translator/request/openai-to-kiro/messageHelpers.ts +109 -0
  1199. package/open-sse/translator/request/openai-to-kiro.ts +889 -0
  1200. package/open-sse/translator/response/claude-to-openai.ts +327 -0
  1201. package/open-sse/translator/response/cursor-to-openai.ts +30 -0
  1202. package/open-sse/translator/response/gemini-to-claude.ts +199 -0
  1203. package/open-sse/translator/response/gemini-to-openai.ts +765 -0
  1204. package/open-sse/translator/response/kiro-to-openai.ts +211 -0
  1205. package/open-sse/translator/response/openai-responses/pureHelpers.ts +92 -0
  1206. package/open-sse/translator/response/openai-responses.ts +1011 -0
  1207. package/open-sse/translator/response/openai-to-antigravity.ts +145 -0
  1208. package/open-sse/translator/response/openai-to-claude.ts +289 -0
  1209. package/open-sse/translator/response/openai-to-gemini-sse.ts +431 -0
  1210. package/open-sse/translator/webTools.ts +531 -0
  1211. package/open-sse/tsconfig.json +25 -0
  1212. package/open-sse/types.d.ts +139 -0
  1213. package/open-sse/utils/agentGoalPolicy.ts +112 -0
  1214. package/open-sse/utils/aiSdkCompat.ts +179 -0
  1215. package/open-sse/utils/anthropicHost.ts +25 -0
  1216. package/open-sse/utils/awsSigV4.ts +139 -0
  1217. package/open-sse/utils/bypassHandler.ts +300 -0
  1218. package/open-sse/utils/cacheControlPolicy.ts +374 -0
  1219. package/open-sse/utils/claudeCodeMetaRequests.ts +87 -0
  1220. package/open-sse/utils/clinepassEnvelope.ts +59 -0
  1221. package/open-sse/utils/comfyuiClient.ts +126 -0
  1222. package/open-sse/utils/composerToolCalls.ts +307 -0
  1223. package/open-sse/utils/cors.ts +13 -0
  1224. package/open-sse/utils/cursorAgentProtobuf/wire.ts +143 -0
  1225. package/open-sse/utils/cursorAgentProtobuf.ts +1400 -0
  1226. package/open-sse/utils/cursorChecksum.ts +139 -0
  1227. package/open-sse/utils/cursorImages.ts +354 -0
  1228. package/open-sse/utils/cursorVersionDetector.ts +74 -0
  1229. package/open-sse/utils/diagnostics.ts +288 -0
  1230. package/open-sse/utils/earlyStreamKeepalive.ts +228 -0
  1231. package/open-sse/utils/error.ts +515 -0
  1232. package/open-sse/utils/estimateSize.ts +35 -0
  1233. package/open-sse/utils/finishReason.ts +36 -0
  1234. package/open-sse/utils/flattenToolHistory.ts +116 -0
  1235. package/open-sse/utils/headers.ts +61 -0
  1236. package/open-sse/utils/heapPressure.ts +81 -0
  1237. package/open-sse/utils/jsonToSse.ts +127 -0
  1238. package/open-sse/utils/keepaliveThreshold.ts +62 -0
  1239. package/open-sse/utils/kieTask.ts +127 -0
  1240. package/open-sse/utils/kiroSanitizer.ts +127 -0
  1241. package/open-sse/utils/logger.ts +190 -0
  1242. package/open-sse/utils/networkProxy.ts +75 -0
  1243. package/open-sse/utils/noThinkingAlias.ts +153 -0
  1244. package/open-sse/utils/number.ts +4 -0
  1245. package/open-sse/utils/ollamaTransform.ts +122 -0
  1246. package/open-sse/utils/opencodeHeaders.ts +98 -0
  1247. package/open-sse/utils/passthroughTailProcessor.ts +299 -0
  1248. package/open-sse/utils/progressTracker.ts +112 -0
  1249. package/open-sse/utils/providerRequestLogging.ts +272 -0
  1250. package/open-sse/utils/proxyDispatcher.ts +507 -0
  1251. package/open-sse/utils/proxyDispatcherCache.ts +124 -0
  1252. package/open-sse/utils/proxyFallback.ts +418 -0
  1253. package/open-sse/utils/proxyFamily.ts +24 -0
  1254. package/open-sse/utils/proxyFamilyResolve.ts +39 -0
  1255. package/open-sse/utils/proxyFetch.ts +666 -0
  1256. package/open-sse/utils/publicCreds.ts +215 -0
  1257. package/open-sse/utils/reasoningContentInjector.ts +73 -0
  1258. package/open-sse/utils/reasoningFields.ts +72 -0
  1259. package/open-sse/utils/requestLogger.ts +386 -0
  1260. package/open-sse/utils/responsesInputNormalization.ts +94 -0
  1261. package/open-sse/utils/responsesStatePolicy.ts +75 -0
  1262. package/open-sse/utils/responsesStreamHelpers.ts +166 -0
  1263. package/open-sse/utils/setupPolyfill.ts +33 -0
  1264. package/open-sse/utils/sha3-512.ts +164 -0
  1265. package/open-sse/utils/sleep.ts +9 -0
  1266. package/open-sse/utils/socksConnectorWithFamily.ts +89 -0
  1267. package/open-sse/utils/sseHeartbeat.ts +119 -0
  1268. package/open-sse/utils/stream.ts +2791 -0
  1269. package/open-sse/utils/streamFailureFinalization.ts +174 -0
  1270. package/open-sse/utils/streamHandler.ts +680 -0
  1271. package/open-sse/utils/streamHelpers.ts +460 -0
  1272. package/open-sse/utils/streamPayloadCollector.ts +700 -0
  1273. package/open-sse/utils/streamReadiness.ts +385 -0
  1274. package/open-sse/utils/streamReadinessPolicy.ts +132 -0
  1275. package/open-sse/utils/textualToolCall.ts +112 -0
  1276. package/open-sse/utils/thinkCloseMarker.ts +77 -0
  1277. package/open-sse/utils/thinkTagParser.ts +146 -0
  1278. package/open-sse/utils/tlsClient.ts +243 -0
  1279. package/open-sse/utils/toolCallArguments.ts +32 -0
  1280. package/open-sse/utils/toolSources.ts +69 -0
  1281. package/open-sse/utils/upstreamResponseHeaders.ts +47 -0
  1282. package/open-sse/utils/urlSanitize.ts +24 -0
  1283. package/open-sse/utils/usageTracking.ts +596 -0
  1284. package/package.json +393 -0
  1285. package/scripts/build/build-next-isolated.mjs +322 -0
  1286. package/scripts/build/colocateOptionals.mjs +144 -0
  1287. package/scripts/build/native-binary-compat.mjs +167 -0
  1288. package/scripts/build/postinstall.mjs +357 -0
  1289. package/scripts/build/postinstallSupport.mjs +45 -0
  1290. package/scripts/build/runtime-env.mjs +140 -0
  1291. package/scripts/build/sync-env.mjs +3 -0
  1292. package/scripts/check/check-supported-node-runtime.ts +20 -0
  1293. package/scripts/dev/responses-ws-proxy.mjs +907 -0
  1294. package/scripts/dev/sync-env.mjs +362 -0
  1295. package/scripts/dev/tls-options.mjs +92 -0
  1296. package/scripts/postinstall.mjs +27 -0
  1297. package/src/domain/assessment/assessor.ts +206 -0
  1298. package/src/domain/assessment/categorizer.ts +118 -0
  1299. package/src/domain/assessment/index.ts +24 -0
  1300. package/src/domain/assessment/migration.ts +111 -0
  1301. package/src/domain/assessment/selfHealer.ts +261 -0
  1302. package/src/domain/assessment/types.ts +361 -0
  1303. package/src/domain/comboResolver.ts +106 -0
  1304. package/src/domain/configAudit.ts +285 -0
  1305. package/src/domain/connectionModelRules.ts +82 -0
  1306. package/src/domain/costRules.ts +631 -0
  1307. package/src/domain/degradation.ts +253 -0
  1308. package/src/domain/fallbackPolicy.ts +160 -0
  1309. package/src/domain/lockoutPolicy.ts +208 -0
  1310. package/src/domain/modelAvailability.ts +41 -0
  1311. package/src/domain/omnirouteResponseMeta.ts +202 -0
  1312. package/src/domain/pipeline.ts +307 -0
  1313. package/src/domain/policyEngine.ts +195 -0
  1314. package/src/domain/prompts.ts +103 -0
  1315. package/src/domain/providerExpiration.ts +255 -0
  1316. package/src/domain/quotaCache.ts +553 -0
  1317. package/src/domain/responses.ts +139 -0
  1318. package/src/domain/tagRouter.ts +64 -0
  1319. package/src/domain/types.ts +123 -0
  1320. package/src/lib/a2a/README.md +748 -0
  1321. package/src/lib/a2a/routingLogger.ts +67 -0
  1322. package/src/lib/a2a/skills/costAnalysis.ts +162 -0
  1323. package/src/lib/a2a/skills/healthReport.ts +155 -0
  1324. package/src/lib/a2a/skills/listCapabilities.ts +72 -0
  1325. package/src/lib/a2a/skills/providerDiscovery.ts +202 -0
  1326. package/src/lib/a2a/skills/quotaManagement.ts +121 -0
  1327. package/src/lib/a2a/skills/smartRouting.ts +89 -0
  1328. package/src/lib/a2a/streaming.ts +149 -0
  1329. package/src/lib/a2a/taskExecution.ts +64 -0
  1330. package/src/lib/a2a/taskManager.ts +240 -0
  1331. package/src/lib/accessTokens/scopes.ts +51 -0
  1332. package/src/lib/acp/index.ts +11 -0
  1333. package/src/lib/acp/manager.ts +202 -0
  1334. package/src/lib/acp/registry.ts +384 -0
  1335. package/src/lib/agentSkills/catalog.ts +256 -0
  1336. package/src/lib/agentSkills/cliRegistryParser.ts +242 -0
  1337. package/src/lib/agentSkills/generator.ts +367 -0
  1338. package/src/lib/agentSkills/openapiParser.ts +201 -0
  1339. package/src/lib/agentSkills/schemas.ts +36 -0
  1340. package/src/lib/agentSkills/types.ts +101 -0
  1341. package/src/lib/api/comboErrorResponse.ts +80 -0
  1342. package/src/lib/api/errorResponse.ts +54 -0
  1343. package/src/lib/api/modelTestRunner.ts +390 -0
  1344. package/src/lib/api/proxyRegistryRouteHandlers.ts +142 -0
  1345. package/src/lib/api/requireCliToolsAuth.ts +5 -0
  1346. package/src/lib/api/requireManagementAuth.ts +118 -0
  1347. package/src/lib/api/serverErrorMessage.ts +36 -0
  1348. package/src/lib/apiBridgeServer.ts +233 -0
  1349. package/src/lib/apiKeyExposure.ts +19 -0
  1350. package/src/lib/arenaEloSync.ts +564 -0
  1351. package/src/lib/audit/activityIcons.ts +69 -0
  1352. package/src/lib/audit/highLevelActions.ts +57 -0
  1353. package/src/lib/audit/timeline.ts +132 -0
  1354. package/src/lib/auth/managementPassword.ts +117 -0
  1355. package/src/lib/batches/costEstimator.ts +130 -0
  1356. package/src/lib/batches/csvToJsonl.ts +248 -0
  1357. package/src/lib/batches/dispatch.ts +53 -0
  1358. package/src/lib/batches/retryFailed.ts +77 -0
  1359. package/src/lib/batches/schemas.ts +38 -0
  1360. package/src/lib/batches/types.ts +78 -0
  1361. package/src/lib/batches/validateJsonl.ts +154 -0
  1362. package/src/lib/benchmarks.ts +33 -0
  1363. package/src/lib/build-profile/featureDisabled.ts +23 -0
  1364. package/src/lib/cacheControlSettings.ts +25 -0
  1365. package/src/lib/cacheLayer.ts +220 -0
  1366. package/src/lib/catalog/openrouterCatalog.ts +177 -0
  1367. package/src/lib/cli-helper/claudeProfileAutoSync.ts +92 -0
  1368. package/src/lib/cli-helper/codexProfileAutoSync.ts +80 -0
  1369. package/src/lib/cli-helper/config-generator/claude.ts +25 -0
  1370. package/src/lib/cli-helper/config-generator/cline.ts +23 -0
  1371. package/src/lib/cli-helper/config-generator/codex.ts +34 -0
  1372. package/src/lib/cli-helper/config-generator/continue.ts +37 -0
  1373. package/src/lib/cli-helper/config-generator/hermes-agent.ts +210 -0
  1374. package/src/lib/cli-helper/config-generator/hermes.ts +47 -0
  1375. package/src/lib/cli-helper/config-generator/hermesHome.ts +40 -0
  1376. package/src/lib/cli-helper/config-generator/index.ts +124 -0
  1377. package/src/lib/cli-helper/config-generator/kilocode.ts +23 -0
  1378. package/src/lib/cli-helper/config-generator/opencode.ts +443 -0
  1379. package/src/lib/cli-helper/doctor/checks.ts +41 -0
  1380. package/src/lib/cli-helper/log-streamer.ts +78 -0
  1381. package/src/lib/cli-helper/tool-detector.ts +165 -0
  1382. package/src/lib/cliTools/batchStatusCache.ts +47 -0
  1383. package/src/lib/cliTools/checkToolConfigStatus.ts +112 -0
  1384. package/src/lib/cloudAgent/agents/codex.ts +148 -0
  1385. package/src/lib/cloudAgent/agents/cursor.ts +205 -0
  1386. package/src/lib/cloudAgent/agents/devin.ts +137 -0
  1387. package/src/lib/cloudAgent/agents/jules.ts +354 -0
  1388. package/src/lib/cloudAgent/api.ts +86 -0
  1389. package/src/lib/cloudAgent/baseAgent.ts +98 -0
  1390. package/src/lib/cloudAgent/credentials.ts +89 -0
  1391. package/src/lib/cloudAgent/db.ts +145 -0
  1392. package/src/lib/cloudAgent/index.ts +8 -0
  1393. package/src/lib/cloudAgent/julesApi.ts +7 -0
  1394. package/src/lib/cloudAgent/registry.ts +29 -0
  1395. package/src/lib/cloudAgent/types.ts +90 -0
  1396. package/src/lib/cloudSync.stub.ts +31 -0
  1397. package/src/lib/cloudSync.ts +210 -0
  1398. package/src/lib/cloudflaredTunnel.ts +933 -0
  1399. package/src/lib/combos/autoPromote.ts +92 -0
  1400. package/src/lib/combos/builderDraft.ts +242 -0
  1401. package/src/lib/combos/builderOptions.ts +681 -0
  1402. package/src/lib/combos/compositeTiers.ts +200 -0
  1403. package/src/lib/combos/controlCenter.ts +271 -0
  1404. package/src/lib/combos/intelligentRouting.ts +192 -0
  1405. package/src/lib/combos/steps.ts +322 -0
  1406. package/src/lib/combos/testHealth.ts +190 -0
  1407. package/src/lib/compliance/index.ts +637 -0
  1408. package/src/lib/compliance/noLog.ts +86 -0
  1409. package/src/lib/compliance/providerAudit.ts +98 -0
  1410. package/src/lib/compression/judgeModelClient.ts +43 -0
  1411. package/src/lib/config/hotReload.ts +115 -0
  1412. package/src/lib/config/runtimeSettings.ts +551 -0
  1413. package/src/lib/consoleInterceptor.ts +136 -0
  1414. package/src/lib/container.ts +122 -0
  1415. package/src/lib/contextWindowResolver.ts +147 -0
  1416. package/src/lib/copilot/codegraphKnowledge.ts +229 -0
  1417. package/src/lib/copilot/engine.ts +372 -0
  1418. package/src/lib/copilot/systemPrompt.ts +189 -0
  1419. package/src/lib/copilot/tools.ts +415 -0
  1420. package/src/lib/credentialHealth/cache.ts +206 -0
  1421. package/src/lib/credentialHealth/scheduler.ts +328 -0
  1422. package/src/lib/dataPaths.ts +122 -0
  1423. package/src/lib/db/AGENTS.md +70 -0
  1424. package/src/lib/db/_rowTypes.ts +45 -0
  1425. package/src/lib/db/accessTokens.ts +183 -0
  1426. package/src/lib/db/adapters/betterSqliteAdapter.ts +58 -0
  1427. package/src/lib/db/adapters/driverFactory.ts +98 -0
  1428. package/src/lib/db/adapters/nodeSqliteAdapter.ts +60 -0
  1429. package/src/lib/db/adapters/nodeSqliteShared.ts +148 -0
  1430. package/src/lib/db/adapters/sqljsAdapter.ts +232 -0
  1431. package/src/lib/db/adapters/types.ts +34 -0
  1432. package/src/lib/db/agentBridgeBypass.ts +81 -0
  1433. package/src/lib/db/agentBridgeMappings.ts +47 -0
  1434. package/src/lib/db/agentBridgeState.ts +115 -0
  1435. package/src/lib/db/apiKeyColumnFallbacks.ts +47 -0
  1436. package/src/lib/db/apiKeyContextSources.ts +107 -0
  1437. package/src/lib/db/apiKeyGroups.ts +318 -0
  1438. package/src/lib/db/apiKeyUsageLimitFields.ts +65 -0
  1439. package/src/lib/db/apiKeys/modelPermissions.ts +122 -0
  1440. package/src/lib/db/apiKeys/rowParsers.ts +161 -0
  1441. package/src/lib/db/apiKeys/types.ts +21 -0
  1442. package/src/lib/db/apiKeys.ts +1492 -0
  1443. package/src/lib/db/backup.ts +708 -0
  1444. package/src/lib/db/batches.ts +450 -0
  1445. package/src/lib/db/callLogStats.ts +235 -0
  1446. package/src/lib/db/caseMapping.ts +80 -0
  1447. package/src/lib/db/cleanup.ts +584 -0
  1448. package/src/lib/db/cliToolState.ts +159 -0
  1449. package/src/lib/db/comboForecast.ts +119 -0
  1450. package/src/lib/db/combos.ts +339 -0
  1451. package/src/lib/db/commandCodeAuth.ts +209 -0
  1452. package/src/lib/db/compression.ts +780 -0
  1453. package/src/lib/db/compressionAnalytics.ts +661 -0
  1454. package/src/lib/db/compressionCacheStats.ts +112 -0
  1455. package/src/lib/db/compressionCombos.ts +491 -0
  1456. package/src/lib/db/compressionRunTelemetry.ts +126 -0
  1457. package/src/lib/db/contextHandoffs.ts +233 -0
  1458. package/src/lib/db/core.ts +1520 -0
  1459. package/src/lib/db/creditBalance.ts +92 -0
  1460. package/src/lib/db/databaseSettings.ts +309 -0
  1461. package/src/lib/db/detailedLogs.ts +170 -0
  1462. package/src/lib/db/discovery.ts +97 -0
  1463. package/src/lib/db/discoveryResults.ts +176 -0
  1464. package/src/lib/db/domainState.ts +630 -0
  1465. package/src/lib/db/encryption.ts +327 -0
  1466. package/src/lib/db/evals.ts +786 -0
  1467. package/src/lib/db/featureFlags.ts +82 -0
  1468. package/src/lib/db/files.ts +170 -0
  1469. package/src/lib/db/freeProxies.ts +360 -0
  1470. package/src/lib/db/gamification.ts +613 -0
  1471. package/src/lib/db/healthCheck.ts +565 -0
  1472. package/src/lib/db/inspectorCustomHosts.ts +88 -0
  1473. package/src/lib/db/inspectorSessions.ts +161 -0
  1474. package/src/lib/db/jsonMigration.ts +321 -0
  1475. package/src/lib/db/memoryVec.ts +138 -0
  1476. package/src/lib/db/middleware.ts +239 -0
  1477. package/src/lib/db/migrationRunner/constants.ts +118 -0
  1478. package/src/lib/db/migrationRunner.ts +1069 -0
  1479. package/src/lib/db/migrations/001_initial_schema.sql +226 -0
  1480. package/src/lib/db/migrations/002_mcp_a2a_tables.sql +95 -0
  1481. package/src/lib/db/migrations/003_provider_node_custom_paths.sql +5 -0
  1482. package/src/lib/db/migrations/004_proxy_registry.sql +31 -0
  1483. package/src/lib/db/migrations/005_combo_agent_fields.sql +19 -0
  1484. package/src/lib/db/migrations/006_detailed_request_logs.sql +42 -0
  1485. package/src/lib/db/migrations/007_search_request_type.sql +4 -0
  1486. package/src/lib/db/migrations/008_registered_keys.sql +65 -0
  1487. package/src/lib/db/migrations/009_requested_model.sql +9 -0
  1488. package/src/lib/db/migrations/010_model_combo_mappings.sql +19 -0
  1489. package/src/lib/db/migrations/011_webhooks.sql +15 -0
  1490. package/src/lib/db/migrations/012_fix_token_input_cache_tokens.sql +15 -0
  1491. package/src/lib/db/migrations/013_quota_snapshots.sql +19 -0
  1492. package/src/lib/db/migrations/014_unified_log_artifacts.sql +15 -0
  1493. package/src/lib/db/migrations/015_create_memories.sql +22 -0
  1494. package/src/lib/db/migrations/016_create_skills.sql +37 -0
  1495. package/src/lib/db/migrations/017_version_manager_upstream_proxy.sql +56 -0
  1496. package/src/lib/db/migrations/018_call_logs_detailed_tokens.sql +6 -0
  1497. package/src/lib/db/migrations/019_context_handoffs.sql +28 -0
  1498. package/src/lib/db/migrations/020_combo_sort_order.sql +16 -0
  1499. package/src/lib/db/migrations/021_combo_call_log_targets.sql +5 -0
  1500. package/src/lib/db/migrations/022_add_memory_fts5.sql +33 -0
  1501. package/src/lib/db/migrations/023_fix_memory_fts_uuid.sql +55 -0
  1502. package/src/lib/db/migrations/024_create_sync_tokens.sql +15 -0
  1503. package/src/lib/db/migrations/025_call_logs_summary_storage.sql +145 -0
  1504. package/src/lib/db/migrations/027_skill_mode_and_metadata.sql +10 -0
  1505. package/src/lib/db/migrations/028_create_files_and_batches.sql +51 -0
  1506. package/src/lib/db/migrations/029_provider_connection_max_concurrent.sql +10 -0
  1507. package/src/lib/db/migrations/030_create_eval_runs.sql +28 -0
  1508. package/src/lib/db/migrations/031_create_eval_suites.sql +27 -0
  1509. package/src/lib/db/migrations/032_apikey_lifecycle.sql +24 -0
  1510. package/src/lib/db/migrations/033_create_reasoning_cache.sql +27 -0
  1511. package/src/lib/db/migrations/034_compression_settings.sql +10 -0
  1512. package/src/lib/db/migrations/035_standard_compression_config.sql +9 -0
  1513. package/src/lib/db/migrations/036_aggressive_compression.sql +4 -0
  1514. package/src/lib/db/migrations/037_ultra_compression.sql +6 -0
  1515. package/src/lib/db/migrations/038_compression_analytics.sql +13 -0
  1516. package/src/lib/db/migrations/039_compression_cache_stats.sql +15 -0
  1517. package/src/lib/db/migrations/040_oneproxy_proxy_fields.sql +24 -0
  1518. package/src/lib/db/migrations/041_compression_receipts.sql +18 -0
  1519. package/src/lib/db/migrations/042_compression_combos.sql +43 -0
  1520. package/src/lib/db/migrations/043_default_compression_combo_pipeline.sql +12 -0
  1521. package/src/lib/db/migrations/044_usage_history_api_key_backfill.sql +27 -0
  1522. package/src/lib/db/migrations/045_compression_tokens.sql +4 -0
  1523. package/src/lib/db/migrations/046_database_settings.sql +44 -0
  1524. package/src/lib/db/migrations/047_aggregation_tables.sql +44 -0
  1525. package/src/lib/db/migrations/048_summary_indexes.sql +29 -0
  1526. package/src/lib/db/migrations/049_compression_analytics_indexes.sql +10 -0
  1527. package/src/lib/db/migrations/050_session_account_affinity.sql +11 -0
  1528. package/src/lib/db/migrations/051_hot_path_db_indexes.sql +10 -0
  1529. package/src/lib/db/migrations/052_api_key_combo_throttle.sql +4 -0
  1530. package/src/lib/db/migrations/053_remove_status_from_files.sql +2 -0
  1531. package/src/lib/db/migrations/054_usage_history_service_tier.sql +4 -0
  1532. package/src/lib/db/migrations/056_mcp_accessibility_compression.sql +8 -0
  1533. package/src/lib/db/migrations/057_provider_connection_quota_window_thresholds.sql +14 -0
  1534. package/src/lib/db/migrations/058_command_code_auth_sessions.sql +19 -0
  1535. package/src/lib/db/migrations/059_manifest_routing.sql +21 -0
  1536. package/src/lib/db/migrations/060_create_gamification.sql +94 -0
  1537. package/src/lib/db/migrations/061_cloud_agent_credentials.sql +9 -0
  1538. package/src/lib/db/migrations/062_usage_history_combo_strategy.sql +4 -0
  1539. package/src/lib/db/migrations/063_add_last_model_to_handoffs.sql +7 -0
  1540. package/src/lib/db/migrations/064_create_session_model_history.sql +19 -0
  1541. package/src/lib/db/migrations/065_middleware_hooks.sql +45 -0
  1542. package/src/lib/db/migrations/066_api_key_groups.sql +47 -0
  1543. package/src/lib/db/migrations/067_relay_proxies.sql +56 -0
  1544. package/src/lib/db/migrations/068_free_proxies.sql +52 -0
  1545. package/src/lib/db/migrations/069_webhook_deliveries.sql +15 -0
  1546. package/src/lib/db/migrations/070_webhooks_kind_metadata.sql +3 -0
  1547. package/src/lib/db/migrations/071_services.sql +19 -0
  1548. package/src/lib/db/migrations/072_free_proxies_fk.sql +27 -0
  1549. package/src/lib/db/migrations/073_per_model_token_limits.sql +61 -0
  1550. package/src/lib/db/migrations/074_discovery_results.sql +20 -0
  1551. package/src/lib/db/migrations/075_api_key_self_service_usage_scopes.sql +51 -0
  1552. package/src/lib/db/migrations/076_create_plugins.sql +31 -0
  1553. package/src/lib/db/migrations/077_api_key_stream_default_mode.sql +3 -0
  1554. package/src/lib/db/migrations/078_quota_consumption.sql +24 -0
  1555. package/src/lib/db/migrations/079_provider_plans.sql +19 -0
  1556. package/src/lib/db/migrations/080_agent_bridge.sql +24 -0
  1557. package/src/lib/db/migrations/081_inspector_custom_hosts.sql +11 -0
  1558. package/src/lib/db/migrations/082_inspector_sessions.sql +18 -0
  1559. package/src/lib/db/migrations/083_memory_vec.sql +26 -0
  1560. package/src/lib/db/migrations/084_playground_presets.sql +15 -0
  1561. package/src/lib/db/migrations/085_quota_pools.sql +39 -0
  1562. package/src/lib/db/migrations/086_api_key_allowed_quotas.sql +8 -0
  1563. package/src/lib/db/migrations/087_quota_pool_connections.sql +21 -0
  1564. package/src/lib/db/migrations/088_quota_groups.sql +28 -0
  1565. package/src/lib/db/migrations/089_add_disable_non_public_to_api_keys.sql +3 -0
  1566. package/src/lib/db/migrations/090_plugin_metrics.sql +9 -0
  1567. package/src/lib/db/migrations/091_plugin_analytics.sql +23 -0
  1568. package/src/lib/db/migrations/092_api_key_context_sources.sql +13 -0
  1569. package/src/lib/db/migrations/093_proxy_enable_toggles.sql +17 -0
  1570. package/src/lib/db/migrations/094_per_key_proxy_toggles.sql +12 -0
  1571. package/src/lib/db/migrations/095_provider_node_custom_headers.sql +5 -0
  1572. package/src/lib/db/migrations/096_sync_context_cache_protection.sql +9 -0
  1573. package/src/lib/db/migrations/097_model_intelligence.sql +25 -0
  1574. package/src/lib/db/migrations/098_clear_semantic_cache_for_key_isolation.sql +4 -0
  1575. package/src/lib/db/migrations/099_proxy_family.sql +5 -0
  1576. package/src/lib/db/migrations/100_cli_access_tokens.sql +18 -0
  1577. package/src/lib/db/migrations/101_api_key_usage_limits.sql +4 -0
  1578. package/src/lib/db/migrations/102_compression_engines_map.sql +5 -0
  1579. package/src/lib/db/migrations/103_strip_legacy_combo_config_keys.sql +54 -0
  1580. package/src/lib/db/migrations/104_normalize_database_cache_size.sql +10 -0
  1581. package/src/lib/db/migrations/105_usage_history_endpoint.sql +6 -0
  1582. package/src/lib/db/migrations/106_quota_allocation_model_caps.sql +32 -0
  1583. package/src/lib/db/migrations/107_quota_combos_quota_share_strategy.sql +25 -0
  1584. package/src/lib/db/migrations/108_provider_quota_reset_events.sql +26 -0
  1585. package/src/lib/db/migrations/109_call_logs_correlation_id.sql +2 -0
  1586. package/src/lib/db/migrations/110_model_context_overrides.sql +17 -0
  1587. package/src/lib/db/migrations/111_memory_typed_decay.sql +10 -0
  1588. package/src/lib/db/migrations/112_batch_item_checkpoints.sql +18 -0
  1589. package/src/lib/db/migrations/113_provider_node_icon_url.sql +5 -0
  1590. package/src/lib/db/migrations/114_mux_service_seed.sql +12 -0
  1591. package/src/lib/db/migrations/115_bifrost_service.sql +9 -0
  1592. package/src/lib/db/migrations/116_call_logs_reasoning_source.sql +13 -0
  1593. package/src/lib/db/migrations/117_proxy_pool_rotation.sql +53 -0
  1594. package/src/lib/db/modelComboMappings.ts +255 -0
  1595. package/src/lib/db/modelContextOverrides.ts +133 -0
  1596. package/src/lib/db/modelIntelligence.ts +232 -0
  1597. package/src/lib/db/models/aliases.ts +61 -0
  1598. package/src/lib/db/models/compat.ts +249 -0
  1599. package/src/lib/db/models/mitmAlias.ts +32 -0
  1600. package/src/lib/db/models/shared.ts +19 -0
  1601. package/src/lib/db/models.ts +936 -0
  1602. package/src/lib/db/notion.ts +48 -0
  1603. package/src/lib/db/obsidian.ts +283 -0
  1604. package/src/lib/db/oneproxy.ts +293 -0
  1605. package/src/lib/db/optimizationSettings.ts +284 -0
  1606. package/src/lib/db/playgroundPresets.ts +167 -0
  1607. package/src/lib/db/pluginMetrics.ts +88 -0
  1608. package/src/lib/db/plugins.ts +280 -0
  1609. package/src/lib/db/prompts.ts +302 -0
  1610. package/src/lib/db/providerLimits.ts +131 -0
  1611. package/src/lib/db/providerNodeSelect.ts +48 -0
  1612. package/src/lib/db/providerPlans.ts +149 -0
  1613. package/src/lib/db/providerStats.ts +68 -0
  1614. package/src/lib/db/providers/columns.ts +116 -0
  1615. package/src/lib/db/providers/nodes.ts +169 -0
  1616. package/src/lib/db/providers/rateLimit.ts +198 -0
  1617. package/src/lib/db/providers.ts +803 -0
  1618. package/src/lib/db/proxies/mappers.ts +181 -0
  1619. package/src/lib/db/proxies/types.ts +78 -0
  1620. package/src/lib/db/proxies.ts +1176 -0
  1621. package/src/lib/db/proxyLogs.ts +35 -0
  1622. package/src/lib/db/quotaConsumption.ts +274 -0
  1623. package/src/lib/db/quotaGroups.ts +147 -0
  1624. package/src/lib/db/quotaModelCaps.ts +128 -0
  1625. package/src/lib/db/quotaPools.ts +548 -0
  1626. package/src/lib/db/quotaResetEvents.ts +334 -0
  1627. package/src/lib/db/quotaSnapshots.ts +209 -0
  1628. package/src/lib/db/readCache.ts +202 -0
  1629. package/src/lib/db/reasoningCache.ts +276 -0
  1630. package/src/lib/db/recovery.ts +33 -0
  1631. package/src/lib/db/registeredKeys.ts +532 -0
  1632. package/src/lib/db/relayProxies.ts +364 -0
  1633. package/src/lib/db/schemaColumns.ts +226 -0
  1634. package/src/lib/db/secrets.ts +28 -0
  1635. package/src/lib/db/semanticCache.ts +117 -0
  1636. package/src/lib/db/serviceModels.ts +79 -0
  1637. package/src/lib/db/sessionAccountAffinity.ts +212 -0
  1638. package/src/lib/db/settings/cacheMetrics.ts +235 -0
  1639. package/src/lib/db/settings/lkgp.ts +49 -0
  1640. package/src/lib/db/settings/pricing.ts +254 -0
  1641. package/src/lib/db/settings/shared.ts +9 -0
  1642. package/src/lib/db/settings.ts +661 -0
  1643. package/src/lib/db/skills.ts +62 -0
  1644. package/src/lib/db/stateReset.ts +30 -0
  1645. package/src/lib/db/stats.ts +71 -0
  1646. package/src/lib/db/syncTokens.ts +163 -0
  1647. package/src/lib/db/tierConfig.ts +88 -0
  1648. package/src/lib/db/tokenLimits.ts +295 -0
  1649. package/src/lib/db/upstreamProxy.ts +247 -0
  1650. package/src/lib/db/usageAnalytics/sources.ts +208 -0
  1651. package/src/lib/db/usageAnalytics.ts +723 -0
  1652. package/src/lib/db/usageLogs.ts +94 -0
  1653. package/src/lib/db/usageSummary.ts +18 -0
  1654. package/src/lib/db/vacuumScheduler.ts +326 -0
  1655. package/src/lib/db/versionManager.ts +377 -0
  1656. package/src/lib/db/webSessionDedup.ts +57 -0
  1657. package/src/lib/db/webhookDeliveries.ts +77 -0
  1658. package/src/lib/db/webhooks.ts +178 -0
  1659. package/src/lib/discovery/index.ts +137 -0
  1660. package/src/lib/display/names.ts +73 -0
  1661. package/src/lib/display/useProviderNodeMap.ts +68 -0
  1662. package/src/lib/docsI18nPath.ts +33 -0
  1663. package/src/lib/docsSanitizer.ts +42 -0
  1664. package/src/lib/embeddings/familyGuard.ts +24 -0
  1665. package/src/lib/embeddings/service.ts +288 -0
  1666. package/src/lib/env/runtimeEnv.ts +166 -0
  1667. package/src/lib/evals/evalRunner/builtinSuites.ts +676 -0
  1668. package/src/lib/evals/evalRunner.ts +301 -0
  1669. package/src/lib/evals/runtime.ts +311 -0
  1670. package/src/lib/events/eventBus.ts +148 -0
  1671. package/src/lib/events/types.ts +181 -0
  1672. package/src/lib/freeProviderRankings.ts +340 -0
  1673. package/src/lib/freeProxyProviders/index.ts +24 -0
  1674. package/src/lib/freeProxyProviders/iplocate.ts +107 -0
  1675. package/src/lib/freeProxyProviders/oneproxy.ts +127 -0
  1676. package/src/lib/freeProxyProviders/proxifly.ts +143 -0
  1677. package/src/lib/freeProxyProviders/types.ts +33 -0
  1678. package/src/lib/freeProxyProviders/webshare.ts +148 -0
  1679. package/src/lib/gamification/antiCheat.ts +160 -0
  1680. package/src/lib/gamification/badges.ts +542 -0
  1681. package/src/lib/gamification/events.ts +187 -0
  1682. package/src/lib/gamification/index.ts +37 -0
  1683. package/src/lib/gamification/invites.ts +127 -0
  1684. package/src/lib/gamification/leaderboard.ts +64 -0
  1685. package/src/lib/gamification/notifications.ts +118 -0
  1686. package/src/lib/gamification/servers.ts +179 -0
  1687. package/src/lib/gamification/sharing.ts +56 -0
  1688. package/src/lib/gamification/streaks.ts +164 -0
  1689. package/src/lib/gamification/xp.ts +152 -0
  1690. package/src/lib/gracefulShutdown.ts +151 -0
  1691. package/src/lib/guardrails/base.ts +65 -0
  1692. package/src/lib/guardrails/index.ts +4 -0
  1693. package/src/lib/guardrails/piiMasker.ts +208 -0
  1694. package/src/lib/guardrails/promptInjection.ts +285 -0
  1695. package/src/lib/guardrails/registry.ts +282 -0
  1696. package/src/lib/guardrails/visionBridge.ts +237 -0
  1697. package/src/lib/guardrails/visionBridgeHelpers.ts +499 -0
  1698. package/src/lib/guardrails/visionBridgeRouter.ts +271 -0
  1699. package/src/lib/headroom/detect.ts +214 -0
  1700. package/src/lib/headroom/process.ts +177 -0
  1701. package/src/lib/idempotencyLayer.ts +105 -0
  1702. package/src/lib/images/imageRouteModel.ts +168 -0
  1703. package/src/lib/initCloudSync.ts +52 -0
  1704. package/src/lib/inspector/agentBridgeMaintenanceApi.ts +70 -0
  1705. package/src/lib/inspector/captureState.ts +90 -0
  1706. package/src/lib/inspector/configPortability.ts +86 -0
  1707. package/src/lib/inspector/harExport.ts +188 -0
  1708. package/src/lib/inspector/matchesTrafficFilter.ts +37 -0
  1709. package/src/lib/inspector/secretMask.ts +6 -0
  1710. package/src/lib/inspector/tproxyCaptureApi.ts +60 -0
  1711. package/src/lib/ipUtils.ts +94 -0
  1712. package/src/lib/jobs/budgetResetJob.ts +40 -0
  1713. package/src/lib/jobs/reasoningCacheCleanupJob.ts +40 -0
  1714. package/src/lib/localDb.ts +797 -0
  1715. package/src/lib/localHealthCheck.ts +267 -0
  1716. package/src/lib/logEnv.ts +164 -0
  1717. package/src/lib/logPayloads.ts +110 -0
  1718. package/src/lib/logRotation.ts +206 -0
  1719. package/src/lib/machineToken.ts +53 -0
  1720. package/src/lib/memory/cache.ts +76 -0
  1721. package/src/lib/memory/embedding/cache.ts +77 -0
  1722. package/src/lib/memory/embedding/index.ts +281 -0
  1723. package/src/lib/memory/embedding/remote.ts +95 -0
  1724. package/src/lib/memory/embedding/staticPotion.ts +253 -0
  1725. package/src/lib/memory/embedding/transformersLocal.ts +153 -0
  1726. package/src/lib/memory/embedding/types.ts +40 -0
  1727. package/src/lib/memory/extraction.ts +195 -0
  1728. package/src/lib/memory/injection.ts +211 -0
  1729. package/src/lib/memory/qdrant.ts +521 -0
  1730. package/src/lib/memory/reindex.ts +102 -0
  1731. package/src/lib/memory/retrieval/scoring.ts +104 -0
  1732. package/src/lib/memory/retrieval.ts +1072 -0
  1733. package/src/lib/memory/schemas.ts +39 -0
  1734. package/src/lib/memory/settings.ts +184 -0
  1735. package/src/lib/memory/store.ts +621 -0
  1736. package/src/lib/memory/summarization.ts +202 -0
  1737. package/src/lib/memory/typedDecay.ts +245 -0
  1738. package/src/lib/memory/types.ts +45 -0
  1739. package/src/lib/memory/vectorStore.ts +425 -0
  1740. package/src/lib/memory/verify.ts +56 -0
  1741. package/src/lib/middleware/cliTokenAuth.ts +91 -0
  1742. package/src/lib/middleware/registry.ts +432 -0
  1743. package/src/lib/middleware/types.ts +129 -0
  1744. package/src/lib/modelAliasSeed.ts +82 -0
  1745. package/src/lib/modelCapabilities.ts +481 -0
  1746. package/src/lib/modelMetadataRegistry.ts +574 -0
  1747. package/src/lib/modelsDevSync/transform.ts +279 -0
  1748. package/src/lib/modelsDevSync.ts +677 -0
  1749. package/src/lib/monitoring/comboHealthAutopilot.ts +494 -0
  1750. package/src/lib/monitoring/observability.ts +336 -0
  1751. package/src/lib/monitoring/providerHealthAutopilot.ts +743 -0
  1752. package/src/lib/monitoring/providerHealthMatrix.ts +621 -0
  1753. package/src/lib/ngrokTunnel.ts +142 -0
  1754. package/src/lib/notion/api.ts +247 -0
  1755. package/src/lib/oauth/codexDeviceFlow.ts +316 -0
  1756. package/src/lib/oauth/config/index.ts +31 -0
  1757. package/src/lib/oauth/connectionPersistence.ts +114 -0
  1758. package/src/lib/oauth/constants/oauth.ts +494 -0
  1759. package/src/lib/oauth/credentialBlob.ts +105 -0
  1760. package/src/lib/oauth/deviceFlowTickets.ts +110 -0
  1761. package/src/lib/oauth/gitlab.ts +103 -0
  1762. package/src/lib/oauth/pasteCredentials.ts +51 -0
  1763. package/src/lib/oauth/providers/agy.ts +15 -0
  1764. package/src/lib/oauth/providers/antigravity.ts +159 -0
  1765. package/src/lib/oauth/providers/claude.ts +170 -0
  1766. package/src/lib/oauth/providers/cline.ts +91 -0
  1767. package/src/lib/oauth/providers/codebuddy-cn.ts +123 -0
  1768. package/src/lib/oauth/providers/codex.ts +214 -0
  1769. package/src/lib/oauth/providers/cursor.ts +15 -0
  1770. package/src/lib/oauth/providers/github.ts +89 -0
  1771. package/src/lib/oauth/providers/gitlab-duo.ts +124 -0
  1772. package/src/lib/oauth/providers/grok-cli.ts +155 -0
  1773. package/src/lib/oauth/providers/index.ts +59 -0
  1774. package/src/lib/oauth/providers/kilocode.ts +77 -0
  1775. package/src/lib/oauth/providers/kimi-coding.ts +135 -0
  1776. package/src/lib/oauth/providers/kiro.ts +185 -0
  1777. package/src/lib/oauth/providers/qoder.ts +81 -0
  1778. package/src/lib/oauth/providers/qwen.ts +82 -0
  1779. package/src/lib/oauth/providers/trae.ts +78 -0
  1780. package/src/lib/oauth/providers/windsurf.ts +64 -0
  1781. package/src/lib/oauth/providers/zed-hosted.ts +89 -0
  1782. package/src/lib/oauth/providers/zed.ts +35 -0
  1783. package/src/lib/oauth/providers.ts +278 -0
  1784. package/src/lib/oauth/services/codexImport.ts +222 -0
  1785. package/src/lib/oauth/services/cursor.ts +219 -0
  1786. package/src/lib/oauth/services/kiro.ts +441 -0
  1787. package/src/lib/oauth/utils/agyAuthImport.ts +259 -0
  1788. package/src/lib/oauth/utils/banner.ts +62 -0
  1789. package/src/lib/oauth/utils/claudeAuthFile.ts +334 -0
  1790. package/src/lib/oauth/utils/claudeAuthImport.ts +259 -0
  1791. package/src/lib/oauth/utils/claudeAuthZipExtract.ts +5 -0
  1792. package/src/lib/oauth/utils/cliProxyAuthImport.ts +142 -0
  1793. package/src/lib/oauth/utils/codexAuthFile.ts +352 -0
  1794. package/src/lib/oauth/utils/codexAuthImport.ts +294 -0
  1795. package/src/lib/oauth/utils/codexAuthZipExtract.ts +5 -0
  1796. package/src/lib/oauth/utils/jsonZipExtract.ts +89 -0
  1797. package/src/lib/oauth/utils/pkce.ts +37 -0
  1798. package/src/lib/oauth/utils/server.ts +122 -0
  1799. package/src/lib/oauth/utils/ui.ts +47 -0
  1800. package/src/lib/obsidian/api.ts +390 -0
  1801. package/src/lib/obsidianSync.ts +110 -0
  1802. package/src/lib/oneproxyRotator.ts +19 -0
  1803. package/src/lib/oneproxySync.ts +182 -0
  1804. package/src/lib/piiSanitizer.ts +416 -0
  1805. package/src/lib/playground/codeExport.ts +408 -0
  1806. package/src/lib/playground/promptImprover.ts +147 -0
  1807. package/src/lib/playground/streamMetrics.ts +61 -0
  1808. package/src/lib/playground/types.ts +114 -0
  1809. package/src/lib/plugins/devMode.ts +65 -0
  1810. package/src/lib/plugins/doctor.ts +138 -0
  1811. package/src/lib/plugins/errors.ts +38 -0
  1812. package/src/lib/plugins/hooks.ts +322 -0
  1813. package/src/lib/plugins/index.ts +72 -0
  1814. package/src/lib/plugins/loader.ts +326 -0
  1815. package/src/lib/plugins/logger.ts +50 -0
  1816. package/src/lib/plugins/manager.ts +579 -0
  1817. package/src/lib/plugins/manifest.ts +213 -0
  1818. package/src/lib/plugins/marketplace.ts +202 -0
  1819. package/src/lib/plugins/pluginWorker.ts +246 -0
  1820. package/src/lib/plugins/sandbox.ts +29 -0
  1821. package/src/lib/plugins/scanner.ts +110 -0
  1822. package/src/lib/plugins/sdk.ts +88 -0
  1823. package/src/lib/plugins/signing.ts +34 -0
  1824. package/src/lib/plugins/testRunner.ts +95 -0
  1825. package/src/lib/plugins/watcher.ts +90 -0
  1826. package/src/lib/pricingSync.ts +456 -0
  1827. package/src/lib/promptCache/index.ts +1 -0
  1828. package/src/lib/promptCache/prefixAnalyzer.ts +81 -0
  1829. package/src/lib/providerModels/cursorAgent.ts +166 -0
  1830. package/src/lib/providerModels/geminiModelsParser.ts +91 -0
  1831. package/src/lib/providerModels/managedAvailableModels.ts +165 -0
  1832. package/src/lib/providerModels/managedModelImport.ts +349 -0
  1833. package/src/lib/providerModels/modelDiscovery.ts +151 -0
  1834. package/src/lib/providers/catalog.ts +246 -0
  1835. package/src/lib/providers/claudeExtraUsage.ts +160 -0
  1836. package/src/lib/providers/claudeFastMode.ts +75 -0
  1837. package/src/lib/providers/codexConnectionDefaults.ts +85 -0
  1838. package/src/lib/providers/codexFastTier.ts +210 -0
  1839. package/src/lib/providers/imageValidation.ts +160 -0
  1840. package/src/lib/providers/managedAvailableModels.ts +21 -0
  1841. package/src/lib/providers/modelListingCapability.ts +26 -0
  1842. package/src/lib/providers/nvidiaValidationModel.ts +24 -0
  1843. package/src/lib/providers/requestDefaults.ts +318 -0
  1844. package/src/lib/providers/serviceKindIndex.ts +0 -0
  1845. package/src/lib/providers/staticModels.ts +170 -0
  1846. package/src/lib/providers/validation/anthropicFormat.ts +319 -0
  1847. package/src/lib/providers/validation/audioMiscProviders.ts +582 -0
  1848. package/src/lib/providers/validation/cloudProviders.ts +669 -0
  1849. package/src/lib/providers/validation/cozeError.ts +56 -0
  1850. package/src/lib/providers/validation/directChatProbe.ts +47 -0
  1851. package/src/lib/providers/validation/embeddingProviders.ts +143 -0
  1852. package/src/lib/providers/validation/headers.ts +122 -0
  1853. package/src/lib/providers/validation/metaAi.ts +117 -0
  1854. package/src/lib/providers/validation/openaiFormat.ts +500 -0
  1855. package/src/lib/providers/validation/searchProviders.ts +199 -0
  1856. package/src/lib/providers/validation/transport.ts +109 -0
  1857. package/src/lib/providers/validation/urlHelpers.ts +114 -0
  1858. package/src/lib/providers/validation/webProvidersA.ts +808 -0
  1859. package/src/lib/providers/validation/webProvidersB.ts +536 -0
  1860. package/src/lib/providers/validation.ts +772 -0
  1861. package/src/lib/providers/webCookieAuth.ts +157 -0
  1862. package/src/lib/providers/xai/thinking.ts +127 -0
  1863. package/src/lib/providers/xai/translators/claude.ts +368 -0
  1864. package/src/lib/providers/xai/translators/gemini.ts +371 -0
  1865. package/src/lib/providers/xai/translators/openai-chat.ts +310 -0
  1866. package/src/lib/providers/xai/translators/openai-responses.ts +77 -0
  1867. package/src/lib/proxyEgress.ts +388 -0
  1868. package/src/lib/proxyHealth/decision.ts +77 -0
  1869. package/src/lib/proxyHealth/scheduler.ts +207 -0
  1870. package/src/lib/proxyHealth/statusPolicy.ts +41 -0
  1871. package/src/lib/proxyHealth.ts +173 -0
  1872. package/src/lib/proxyLogger.ts +240 -0
  1873. package/src/lib/proxyRelay/cloudflareWorkerScript.ts +107 -0
  1874. package/src/lib/quota/QuotaStore.ts +23 -0
  1875. package/src/lib/quota/accountBuckets.ts +225 -0
  1876. package/src/lib/quota/burnRate.ts +111 -0
  1877. package/src/lib/quota/connectionProvider.ts +32 -0
  1878. package/src/lib/quota/connectionRecovery.ts +303 -0
  1879. package/src/lib/quota/dimensions.ts +61 -0
  1880. package/src/lib/quota/enforce.ts +401 -0
  1881. package/src/lib/quota/fairShare.ts +186 -0
  1882. package/src/lib/quota/planRegistry.ts +107 -0
  1883. package/src/lib/quota/planResolver.ts +78 -0
  1884. package/src/lib/quota/quotaCombos.ts +414 -0
  1885. package/src/lib/quota/quotaKey.ts +202 -0
  1886. package/src/lib/quota/quotaModelNaming.ts +84 -0
  1887. package/src/lib/quota/redisQuotaStore.ts +352 -0
  1888. package/src/lib/quota/saturationSignals.ts +559 -0
  1889. package/src/lib/quota/spendRecorder.ts +131 -0
  1890. package/src/lib/quota/sqliteQuotaStore.ts +282 -0
  1891. package/src/lib/quota/storeFactory.ts +124 -0
  1892. package/src/lib/quota/types.ts +94 -0
  1893. package/src/lib/resilience/modelLockoutSettings.ts +95 -0
  1894. package/src/lib/resilience/settings/normalize.ts +359 -0
  1895. package/src/lib/resilience/settings/types.ts +182 -0
  1896. package/src/lib/resilience/settings.ts +386 -0
  1897. package/src/lib/runtime/ports.ts +32 -0
  1898. package/src/lib/search/executeWebSearch.ts +270 -0
  1899. package/src/lib/security/localEndpoints.ts +82 -0
  1900. package/src/lib/semanticCache.ts +377 -0
  1901. package/src/lib/services/ServiceSupervisor.ts +243 -0
  1902. package/src/lib/services/apiKey.ts +40 -0
  1903. package/src/lib/services/bootstrap.ts +133 -0
  1904. package/src/lib/services/embedPath.ts +19 -0
  1905. package/src/lib/services/embedWsProxy.ts +285 -0
  1906. package/src/lib/services/healthCheck.ts +79 -0
  1907. package/src/lib/services/htmlRewriter.ts +185 -0
  1908. package/src/lib/services/installers/bifrost.ts +145 -0
  1909. package/src/lib/services/installers/cliproxy.ts +116 -0
  1910. package/src/lib/services/installers/mux.ts +178 -0
  1911. package/src/lib/services/installers/ninerouter.stub.ts +17 -0
  1912. package/src/lib/services/installers/ninerouter.ts +157 -0
  1913. package/src/lib/services/installers/utils.ts +167 -0
  1914. package/src/lib/services/modelSync.ts +105 -0
  1915. package/src/lib/services/portProbe.ts +104 -0
  1916. package/src/lib/services/registry.ts +42 -0
  1917. package/src/lib/services/reverseProxy.ts +180 -0
  1918. package/src/lib/services/ringBuffer.ts +91 -0
  1919. package/src/lib/services/types.ts +50 -0
  1920. package/src/lib/settingsCache.ts +62 -0
  1921. package/src/lib/skills/a2a.ts +34 -0
  1922. package/src/lib/skills/builtin/browser.ts +22 -0
  1923. package/src/lib/skills/builtins.ts +493 -0
  1924. package/src/lib/skills/custom.ts +41 -0
  1925. package/src/lib/skills/executor.ts +196 -0
  1926. package/src/lib/skills/githubCollector.ts +426 -0
  1927. package/src/lib/skills/hybrid.ts +67 -0
  1928. package/src/lib/skills/injection.ts +307 -0
  1929. package/src/lib/skills/interception.ts +343 -0
  1930. package/src/lib/skills/providerSettings.ts +14 -0
  1931. package/src/lib/skills/registry.ts +398 -0
  1932. package/src/lib/skills/sandbox.ts +178 -0
  1933. package/src/lib/skills/schemas.ts +43 -0
  1934. package/src/lib/skills/skillssh.ts +73 -0
  1935. package/src/lib/skills/types.ts +61 -0
  1936. package/src/lib/source.ts +7 -0
  1937. package/src/lib/spend/batchWriter.ts +208 -0
  1938. package/src/lib/sseTextTransform.ts +346 -0
  1939. package/src/lib/streamingPiiTransform.ts +350 -0
  1940. package/src/lib/sync/bundle.ts +208 -0
  1941. package/src/lib/sync/tokens.ts +107 -0
  1942. package/src/lib/system/autoUpdate.ts +400 -0
  1943. package/src/lib/system/globalPackagePath.ts +49 -0
  1944. package/src/lib/system/versionCheck.ts +163 -0
  1945. package/src/lib/tailscaleTunnel.ts +1201 -0
  1946. package/src/lib/tokenHealthCheck.ts +829 -0
  1947. package/src/lib/toolPolicy.ts +150 -0
  1948. package/src/lib/translator/streamTransform.ts +27 -0
  1949. package/src/lib/translatorEvents.ts +40 -0
  1950. package/src/lib/usage/aggregateHistory.ts +212 -0
  1951. package/src/lib/usage/apiKeySelfService.ts +420 -0
  1952. package/src/lib/usage/apiKeyUsageLimits.ts +578 -0
  1953. package/src/lib/usage/callLogArtifacts.ts +337 -0
  1954. package/src/lib/usage/callLogs/format.ts +129 -0
  1955. package/src/lib/usage/callLogs.ts +928 -0
  1956. package/src/lib/usage/callLogsBoundedQueries.ts +42 -0
  1957. package/src/lib/usage/codexResetCredits.ts +355 -0
  1958. package/src/lib/usage/comboForecast.ts +441 -0
  1959. package/src/lib/usage/comboHealth.ts +545 -0
  1960. package/src/lib/usage/comboHealthDashboard.ts +109 -0
  1961. package/src/lib/usage/comboScoringInspector.ts +416 -0
  1962. package/src/lib/usage/completedRequestDetails.ts +103 -0
  1963. package/src/lib/usage/costCalculator.ts +279 -0
  1964. package/src/lib/usage/fetcher.ts +483 -0
  1965. package/src/lib/usage/flatRateProviders.ts +59 -0
  1966. package/src/lib/usage/internalUsageCommand.ts +788 -0
  1967. package/src/lib/usage/migrations.ts +471 -0
  1968. package/src/lib/usage/pendingRequestScope.ts +26 -0
  1969. package/src/lib/usage/providerLimits/quotaNormalize.ts +72 -0
  1970. package/src/lib/usage/providerLimits.ts +997 -0
  1971. package/src/lib/usage/providerWindowCosts.ts +571 -0
  1972. package/src/lib/usage/resilienceExplain.ts +468 -0
  1973. package/src/lib/usage/routeExplain.ts +747 -0
  1974. package/src/lib/usage/tokenAccounting.ts +212 -0
  1975. package/src/lib/usage/usageEvents.ts +91 -0
  1976. package/src/lib/usage/usageHistory/helpers.ts +85 -0
  1977. package/src/lib/usage/usageHistory.ts +916 -0
  1978. package/src/lib/usage/usageStats.ts +581 -0
  1979. package/src/lib/usageAnalytics.ts +372 -0
  1980. package/src/lib/usageDb.ts +38 -0
  1981. package/src/lib/versionManager/binaryManager.ts +240 -0
  1982. package/src/lib/versionManager/healthMonitor.ts +71 -0
  1983. package/src/lib/versionManager/index.ts +155 -0
  1984. package/src/lib/versionManager/processManager.ts +155 -0
  1985. package/src/lib/versionManager/releaseChecker.ts +98 -0
  1986. package/src/lib/vscode/familyFirstModelIds.ts +92 -0
  1987. package/src/lib/vscode/modelPresentation.ts +132 -0
  1988. package/src/lib/vscode/reasoningMetadata.ts +183 -0
  1989. package/src/lib/vscode/serviceTierVariants.ts +202 -0
  1990. package/src/lib/vscode/tokenizedRequest.ts +79 -0
  1991. package/src/lib/webhookDispatcher.ts +221 -0
  1992. package/src/lib/webhooks/eventDescriptions.ts +76 -0
  1993. package/src/lib/webhooks/integrations/discord.ts +49 -0
  1994. package/src/lib/webhooks/integrations/slack.ts +45 -0
  1995. package/src/lib/webhooks/integrations/telegram.ts +67 -0
  1996. package/src/lib/ws/handshake.ts +129 -0
  1997. package/src/lib/zed-oauth/confirmedAccounts.ts +38 -0
  1998. package/src/lib/zed-oauth/credentialFingerprint.ts +23 -0
  1999. package/src/lib/zed-oauth/dockerDetect.ts +38 -0
  2000. package/src/lib/zed-oauth/importUtils.ts +46 -0
  2001. package/src/lib/zed-oauth/keychain-reader.stub.ts +28 -0
  2002. package/src/lib/zed-oauth/keychain-reader.ts +231 -0
  2003. package/src/mitm/_internal/bypass.cjs +170 -0
  2004. package/src/mitm/_internal/forwardTarget.cjs +55 -0
  2005. package/src/mitm/_internal/ingest.cjs +82 -0
  2006. package/src/mitm/cert/generate.ts +41 -0
  2007. package/src/mitm/cert/install.stub.ts +23 -0
  2008. package/src/mitm/cert/install.ts +440 -0
  2009. package/src/mitm/dataDir.ts +41 -0
  2010. package/src/mitm/detection/antigravity.ts +33 -0
  2011. package/src/mitm/detection/claudeCode.ts +25 -0
  2012. package/src/mitm/detection/codex.ts +25 -0
  2013. package/src/mitm/detection/copilot.ts +39 -0
  2014. package/src/mitm/detection/cursor.ts +31 -0
  2015. package/src/mitm/detection/index.ts +53 -0
  2016. package/src/mitm/detection/kiro.ts +30 -0
  2017. package/src/mitm/detection/openCode.ts +32 -0
  2018. package/src/mitm/detection/zed.ts +26 -0
  2019. package/src/mitm/dns/dnsConfig.ts +242 -0
  2020. package/src/mitm/dns/provision.ts +92 -0
  2021. package/src/mitm/handlers/antigravity.ts +192 -0
  2022. package/src/mitm/handlers/base.ts +333 -0
  2023. package/src/mitm/handlers/claudeCode.ts +56 -0
  2024. package/src/mitm/handlers/codex.ts +55 -0
  2025. package/src/mitm/handlers/copilot.ts +55 -0
  2026. package/src/mitm/handlers/cursor.ts +55 -0
  2027. package/src/mitm/handlers/kiro.ts +58 -0
  2028. package/src/mitm/handlers/openCode.ts +55 -0
  2029. package/src/mitm/handlers/trae.ts +24 -0
  2030. package/src/mitm/handlers/zed.ts +55 -0
  2031. package/src/mitm/inspector/agentBridgeHook.ts +137 -0
  2032. package/src/mitm/inspector/buffer.ts +201 -0
  2033. package/src/mitm/inspector/contextKey.ts +98 -0
  2034. package/src/mitm/inspector/conversationNormalizer.ts +393 -0
  2035. package/src/mitm/inspector/diagnostics.ts +67 -0
  2036. package/src/mitm/inspector/httpProxyServer.ts +272 -0
  2037. package/src/mitm/inspector/kindDetector.ts +87 -0
  2038. package/src/mitm/inspector/llmMetadataExtractor.ts +183 -0
  2039. package/src/mitm/inspector/pricing.ts +57 -0
  2040. package/src/mitm/inspector/processAttribution.ts +107 -0
  2041. package/src/mitm/inspector/sseMerger.ts +316 -0
  2042. package/src/mitm/inspector/systemProxyConfig.ts +316 -0
  2043. package/src/mitm/inspector/types.ts +112 -0
  2044. package/src/mitm/manager.runtime.ts +5 -0
  2045. package/src/mitm/manager.stub.ts +44 -0
  2046. package/src/mitm/manager.ts +762 -0
  2047. package/src/mitm/maskSecrets.ts +31 -0
  2048. package/src/mitm/passthrough.ts +76 -0
  2049. package/src/mitm/sanitizeHeaders.ts +61 -0
  2050. package/src/mitm/server.cjs +786 -0
  2051. package/src/mitm/socketTimeouts.ts +24 -0
  2052. package/src/mitm/systemCommands.ts +280 -0
  2053. package/src/mitm/targets/antigravity.ts +85 -0
  2054. package/src/mitm/targets/claudeCode.ts +37 -0
  2055. package/src/mitm/targets/codex.ts +30 -0
  2056. package/src/mitm/targets/copilot.ts +32 -0
  2057. package/src/mitm/targets/cursor.ts +33 -0
  2058. package/src/mitm/targets/index.ts +75 -0
  2059. package/src/mitm/targets/kiro.ts +64 -0
  2060. package/src/mitm/targets/openCode.ts +34 -0
  2061. package/src/mitm/targets/trae.ts +32 -0
  2062. package/src/mitm/targets/zed.ts +32 -0
  2063. package/src/mitm/tproxy/caTrust.ts +120 -0
  2064. package/src/mitm/tproxy/captureManager.ts +118 -0
  2065. package/src/mitm/tproxy/captureMode.ts +226 -0
  2066. package/src/mitm/tproxy/commands.ts +122 -0
  2067. package/src/mitm/tproxy/dynamicCert.ts +119 -0
  2068. package/src/mitm/tproxy/native/README.md +55 -0
  2069. package/src/mitm/tproxy/native/binding.gyp +9 -0
  2070. package/src/mitm/tproxy/native/transparent.c +147 -0
  2071. package/src/mitm/tproxy/setup.ts +68 -0
  2072. package/src/mitm/tproxy/tlsCapture.ts +368 -0
  2073. package/src/mitm/tproxy/transparentSocket.ts +131 -0
  2074. package/src/mitm/types.ts +75 -0
  2075. package/src/mitm/upstreamTrust.ts +40 -0
  2076. package/src/models/index.ts +29 -0
  2077. package/src/server/auth/loginGuard.ts +130 -0
  2078. package/src/server/authz/accessScopes.ts +62 -0
  2079. package/src/server/authz/accessTokenAuth.ts +67 -0
  2080. package/src/server/authz/assertAuth.ts +88 -0
  2081. package/src/server/authz/classify.ts +135 -0
  2082. package/src/server/authz/context.ts +44 -0
  2083. package/src/server/authz/csrf.ts +85 -0
  2084. package/src/server/authz/headers.ts +76 -0
  2085. package/src/server/authz/peerStamp.ts +99 -0
  2086. package/src/server/authz/pipeline.ts +370 -0
  2087. package/src/server/authz/policies/clientApi.ts +72 -0
  2088. package/src/server/authz/policies/management.ts +298 -0
  2089. package/src/server/authz/policies/public.ts +9 -0
  2090. package/src/server/authz/routeGuard.ts +233 -0
  2091. package/src/server/authz/types.ts +77 -0
  2092. package/src/server/cors/origins.ts +172 -0
  2093. package/src/server/origin/publicOrigin.ts +270 -0
  2094. package/src/server/ws/liveServer.ts +630 -0
  2095. package/src/server/ws/liveServerAllowList.ts +106 -0
  2096. package/src/server/ws/types.ts +57 -0
  2097. package/src/shared/components/Avatar.tsx +81 -0
  2098. package/src/shared/components/Badge.tsx +68 -0
  2099. package/src/shared/components/Breadcrumbs.tsx +103 -0
  2100. package/src/shared/components/Button.tsx +85 -0
  2101. package/src/shared/components/Card.tsx +141 -0
  2102. package/src/shared/components/Checkbox.tsx +38 -0
  2103. package/src/shared/components/CloudSyncStatus.tsx +104 -0
  2104. package/src/shared/components/Collapsible.tsx +93 -0
  2105. package/src/shared/components/CollapsibleSection.tsx +66 -0
  2106. package/src/shared/components/ColumnToggle.tsx +100 -0
  2107. package/src/shared/components/CommandPalette.tsx +375 -0
  2108. package/src/shared/components/ConsoleLogViewer.tsx +326 -0
  2109. package/src/shared/components/CursorAuthModal.tsx +198 -0
  2110. package/src/shared/components/DataTable.tsx +195 -0
  2111. package/src/shared/components/DegradationBadge.tsx +41 -0
  2112. package/src/shared/components/DistributeProxiesButton.tsx +74 -0
  2113. package/src/shared/components/EmptyState.tsx +121 -0
  2114. package/src/shared/components/ErrorPageScaffold.tsx +91 -0
  2115. package/src/shared/components/FilterBar.tsx +197 -0
  2116. package/src/shared/components/Footer.tsx +169 -0
  2117. package/src/shared/components/Header.tsx +284 -0
  2118. package/src/shared/components/InfoTooltip.tsx +34 -0
  2119. package/src/shared/components/Input.tsx +155 -0
  2120. package/src/shared/components/KiroAuthModal.tsx +425 -0
  2121. package/src/shared/components/KiroOAuthWrapper.tsx +116 -0
  2122. package/src/shared/components/KiroSocialOAuthModal.tsx +202 -0
  2123. package/src/shared/components/LanguageSelector.tsx +106 -0
  2124. package/src/shared/components/LinkifiedText.tsx +30 -0
  2125. package/src/shared/components/Loading.tsx +128 -0
  2126. package/src/shared/components/LocaleAutoDetect.tsx +43 -0
  2127. package/src/shared/components/MaintenanceBanner.tsx +87 -0
  2128. package/src/shared/components/ManualConfigModal.tsx +51 -0
  2129. package/src/shared/components/Modal.tsx +240 -0
  2130. package/src/shared/components/ModelRoutingSection.tsx +323 -0
  2131. package/src/shared/components/ModelSelectModal.tsx +618 -0
  2132. package/src/shared/components/MonacoEditor.tsx +23 -0
  2133. package/src/shared/components/NavigationProgress.tsx +105 -0
  2134. package/src/shared/components/NoAuthAccountCard.tsx +539 -0
  2135. package/src/shared/components/NoAuthProviderCard.tsx +40 -0
  2136. package/src/shared/components/NoAuthProviderToggle.tsx +36 -0
  2137. package/src/shared/components/NotificationToast.tsx +206 -0
  2138. package/src/shared/components/OAuthModal.tsx +992 -0
  2139. package/src/shared/components/OmniRouteLogo.tsx +86 -0
  2140. package/src/shared/components/PresetSlider.tsx +64 -0
  2141. package/src/shared/components/PricingModal.tsx +211 -0
  2142. package/src/shared/components/ProviderIcon.tsx +263 -0
  2143. package/src/shared/components/ProviderTestSlideOver.tsx +560 -0
  2144. package/src/shared/components/ProxyConfigModal.tsx +781 -0
  2145. package/src/shared/components/ProxyLogDetail.tsx +192 -0
  2146. package/src/shared/components/ProxyLogger.tsx +573 -0
  2147. package/src/shared/components/PwaRegister.tsx +22 -0
  2148. package/src/shared/components/RequestLoggerDetail.tsx +797 -0
  2149. package/src/shared/components/RequestLoggerV2.tsx +1628 -0
  2150. package/src/shared/components/RiskNoticeModal.tsx +81 -0
  2151. package/src/shared/components/SegmentedControl.tsx +69 -0
  2152. package/src/shared/components/Select.tsx +110 -0
  2153. package/src/shared/components/Sidebar.tsx +726 -0
  2154. package/src/shared/components/SkillsConceptCard.tsx +84 -0
  2155. package/src/shared/components/SystemMonitor.tsx +179 -0
  2156. package/src/shared/components/Textarea.tsx +29 -0
  2157. package/src/shared/components/ThemeProvider.tsx +14 -0
  2158. package/src/shared/components/ThemeToggle.tsx +52 -0
  2159. package/src/shared/components/Toggle.tsx +102 -0
  2160. package/src/shared/components/TokenHealthBadge.tsx +113 -0
  2161. package/src/shared/components/Tooltip.tsx +193 -0
  2162. package/src/shared/components/TraeAuthModal.tsx +334 -0
  2163. package/src/shared/components/UsageAnalytics.tsx +414 -0
  2164. package/src/shared/components/UsageStats.tsx +693 -0
  2165. package/src/shared/components/analytics/ApiKeyFilterDropdown.tsx +205 -0
  2166. package/src/shared/components/analytics/CustomRangePicker.tsx +195 -0
  2167. package/src/shared/components/analytics/TimeRangeSelector.tsx +49 -0
  2168. package/src/shared/components/analytics/chartColors.ts +12 -0
  2169. package/src/shared/components/analytics/charts.tsx +1023 -0
  2170. package/src/shared/components/analytics/index.tsx +28 -0
  2171. package/src/shared/components/analytics/rechartsCore.tsx +85 -0
  2172. package/src/shared/components/analytics/rechartsDonuts.tsx +195 -0
  2173. package/src/shared/components/analytics/rechartsUsageCharts.tsx +312 -0
  2174. package/src/shared/components/cli/CliComparisonCard.tsx +82 -0
  2175. package/src/shared/components/cli/CliConceptCard.tsx +58 -0
  2176. package/src/shared/components/cli/CliToolCard.tsx +152 -0
  2177. package/src/shared/components/cli/index.ts +8 -0
  2178. package/src/shared/components/compression/CompressionPipelineEditor.tsx +175 -0
  2179. package/src/shared/components/compression/EngineConfigForm.tsx +78 -0
  2180. package/src/shared/components/compression/EngineConfigPage.tsx +411 -0
  2181. package/src/shared/components/compression/compressionPipelineModel.ts +78 -0
  2182. package/src/shared/components/docs/APIReference.stories.tsx +35 -0
  2183. package/src/shared/components/docs/APIReference.tsx +83 -0
  2184. package/src/shared/components/docs/Callout.stories.tsx +40 -0
  2185. package/src/shared/components/docs/Callout.tsx +38 -0
  2186. package/src/shared/components/docs/CodeBlock.stories.tsx +25 -0
  2187. package/src/shared/components/docs/CodeBlock.tsx +52 -0
  2188. package/src/shared/components/docs/DocsBreadcrumbs.stories.tsx +20 -0
  2189. package/src/shared/components/docs/DocsBreadcrumbs.tsx +46 -0
  2190. package/src/shared/components/docs/DocsSidebar.stories.tsx +31 -0
  2191. package/src/shared/components/docs/DocsSidebar.tsx +77 -0
  2192. package/src/shared/components/docs/DocsThemeProvider.tsx +21 -0
  2193. package/src/shared/components/docs/Tabs.stories.tsx +26 -0
  2194. package/src/shared/components/docs/Tabs.tsx +50 -0
  2195. package/src/shared/components/docs/tokens.ts +38 -0
  2196. package/src/shared/components/flow/FlowCanvas.tsx +151 -0
  2197. package/src/shared/components/flow/StatusDot.tsx +36 -0
  2198. package/src/shared/components/flow/edgeStyles.ts +32 -0
  2199. package/src/shared/components/index.tsx +49 -0
  2200. package/src/shared/components/layouts/AuthLayout.tsx +28 -0
  2201. package/src/shared/components/layouts/DashboardLayout.tsx +131 -0
  2202. package/src/shared/components/layouts/index.tsx +3 -0
  2203. package/src/shared/components/lobeProviderIcons.ts +488 -0
  2204. package/src/shared/components/logTableStyles.ts +7 -0
  2205. package/src/shared/components/modelSelectModalHelpers.ts +75 -0
  2206. package/src/shared/components/oauthBlobSubmit.ts +42 -0
  2207. package/src/shared/components/proxyAssignment.ts +40 -0
  2208. package/src/shared/components/requestLoggerPreferences.ts +44 -0
  2209. package/src/shared/components/requestLoggerSignature.ts +56 -0
  2210. package/src/shared/constants/agentSkills.ts +457 -0
  2211. package/src/shared/constants/antigravityClientProfile.ts +29 -0
  2212. package/src/shared/constants/apiKeyPolicyScopes.ts +5 -0
  2213. package/src/shared/constants/appConfig.ts +12 -0
  2214. package/src/shared/constants/batch.ts +1 -0
  2215. package/src/shared/constants/batchEndpoints.ts +11 -0
  2216. package/src/shared/constants/bodySize.ts +39 -0
  2217. package/src/shared/constants/cliCompatProviders.ts +88 -0
  2218. package/src/shared/constants/cliTools.ts +862 -0
  2219. package/src/shared/constants/clientIdentityProfiles.ts +89 -0
  2220. package/src/shared/constants/colors.ts +147 -0
  2221. package/src/shared/constants/comboConfigMode.ts +9 -0
  2222. package/src/shared/constants/config.ts +44 -0
  2223. package/src/shared/constants/dashboardCsrf.ts +1 -0
  2224. package/src/shared/constants/endpointCategories.ts +133 -0
  2225. package/src/shared/constants/errorCodes.ts +245 -0
  2226. package/src/shared/constants/featureFlagDefinitions.ts +495 -0
  2227. package/src/shared/constants/headers.ts +16 -0
  2228. package/src/shared/constants/homeWidgets.ts +5 -0
  2229. package/src/shared/constants/index.ts +4 -0
  2230. package/src/shared/constants/managementScopes.ts +31 -0
  2231. package/src/shared/constants/mcpScopes.ts +78 -0
  2232. package/src/shared/constants/mitmToolHosts.ts +31 -0
  2233. package/src/shared/constants/modal.ts +5 -0
  2234. package/src/shared/constants/modelCompat.ts +9 -0
  2235. package/src/shared/constants/modelSpecs.ts +607 -0
  2236. package/src/shared/constants/models.ts +40 -0
  2237. package/src/shared/constants/openRouterPreset.ts +11 -0
  2238. package/src/shared/constants/pricing/default-pricing.ts +16 -0
  2239. package/src/shared/constants/pricing/frontier-labs.ts +386 -0
  2240. package/src/shared/constants/pricing/inference-hosts.ts +208 -0
  2241. package/src/shared/constants/pricing/oauth-subscriptions.ts +599 -0
  2242. package/src/shared/constants/pricing/regional.ts +168 -0
  2243. package/src/shared/constants/pricing/shared-tiers.ts +162 -0
  2244. package/src/shared/constants/pricing.ts +40 -0
  2245. package/src/shared/constants/providers/apikey/enterprise-cloud.ts +214 -0
  2246. package/src/shared/constants/providers/apikey/frontier-labs.ts +253 -0
  2247. package/src/shared/constants/providers/apikey/gateways.ts +662 -0
  2248. package/src/shared/constants/providers/apikey/index.ts +21 -0
  2249. package/src/shared/constants/providers/apikey/inference-hosts.ts +328 -0
  2250. package/src/shared/constants/providers/apikey/regional.ts +372 -0
  2251. package/src/shared/constants/providers/apikey/specialty-media.ts +266 -0
  2252. package/src/shared/constants/providers/audio.ts +71 -0
  2253. package/src/shared/constants/providers/cloud-agent.ts +36 -0
  2254. package/src/shared/constants/providers/local.ts +162 -0
  2255. package/src/shared/constants/providers/noauth.ts +123 -0
  2256. package/src/shared/constants/providers/oauth.ts +231 -0
  2257. package/src/shared/constants/providers/search.ts +125 -0
  2258. package/src/shared/constants/providers/system.ts +16 -0
  2259. package/src/shared/constants/providers/upstream-proxy.ts +36 -0
  2260. package/src/shared/constants/providers/web-cookie.ts +364 -0
  2261. package/src/shared/constants/providers.ts +449 -0
  2262. package/src/shared/constants/publicApiRoutes.ts +62 -0
  2263. package/src/shared/constants/responsesPreviousResponseId.ts +5 -0
  2264. package/src/shared/constants/routingStrategies.ts +216 -0
  2265. package/src/shared/constants/selfServiceScopes.ts +20 -0
  2266. package/src/shared/constants/serviceKinds.ts +34 -0
  2267. package/src/shared/constants/sidebarGroupVisibility.ts +31 -0
  2268. package/src/shared/constants/sidebarVisibility/sections.ts +769 -0
  2269. package/src/shared/constants/sidebarVisibility/types.ts +161 -0
  2270. package/src/shared/constants/sidebarVisibility.ts +291 -0
  2271. package/src/shared/constants/spawnCapablePrefixes.ts +35 -0
  2272. package/src/shared/constants/statusColors.ts +17 -0
  2273. package/src/shared/constants/upstreamHeaders.ts +42 -0
  2274. package/src/shared/constants/visionBridgeDefaults.ts +88 -0
  2275. package/src/shared/constants/visionModels.ts +68 -0
  2276. package/src/shared/contracts/quota.ts +138 -0
  2277. package/src/shared/hooks/cli/useToolBatchStatuses.ts +54 -0
  2278. package/src/shared/hooks/index.ts +3 -0
  2279. package/src/shared/hooks/useCopyToClipboard.ts +38 -0
  2280. package/src/shared/hooks/useDisplayBaseUrl.ts +49 -0
  2281. package/src/shared/hooks/useElectron.ts +197 -0
  2282. package/src/shared/hooks/useTheme.ts +59 -0
  2283. package/src/shared/http/apiErrorMessage.ts +19 -0
  2284. package/src/shared/lib/persistLocale.ts +19 -0
  2285. package/src/shared/middleware/bodySizeGuard.ts +97 -0
  2286. package/src/shared/middleware/chatBodyAdmission.ts +161 -0
  2287. package/src/shared/middleware/correlationId.ts +43 -0
  2288. package/src/shared/network/outboundUrlGuard.ts +276 -0
  2289. package/src/shared/network/remoteImageFetch.ts +182 -0
  2290. package/src/shared/network/safeOutboundFetch.ts +372 -0
  2291. package/src/shared/providers/webSessionCredentials.ts +308 -0
  2292. package/src/shared/reasoning/effortStandardization.ts +124 -0
  2293. package/src/shared/schemas/agentBridge.ts +37 -0
  2294. package/src/shared/schemas/cliCatalog.ts +66 -0
  2295. package/src/shared/schemas/inspector.ts +47 -0
  2296. package/src/shared/schemas/memory.ts +142 -0
  2297. package/src/shared/schemas/playground.ts +67 -0
  2298. package/src/shared/schemas/qdrant.ts +39 -0
  2299. package/src/shared/schemas/quota.ts +61 -0
  2300. package/src/shared/schemas/searchTools.ts +39 -0
  2301. package/src/shared/schemas/validation.ts +154 -0
  2302. package/src/shared/services/apiKeyResolver.ts +44 -0
  2303. package/src/shared/services/backupService.ts +233 -0
  2304. package/src/shared/services/claudeCliConfig.ts +17 -0
  2305. package/src/shared/services/cliRuntime.ts +1099 -0
  2306. package/src/shared/services/cloudSyncScheduler.ts +135 -0
  2307. package/src/shared/services/droidCustomModels.ts +118 -0
  2308. package/src/shared/services/initializeCloudSync.ts +31 -0
  2309. package/src/shared/services/loginShellPath.ts +87 -0
  2310. package/src/shared/services/modelSyncScheduler.ts +225 -0
  2311. package/src/shared/services/opencodeConfig.ts +140 -0
  2312. package/src/shared/services/providerLimitsSyncScheduler.ts +72 -0
  2313. package/src/shared/types/cliBatchStatus.ts +18 -0
  2314. package/src/shared/types/index.ts +3 -0
  2315. package/src/shared/types/pagination.ts +61 -0
  2316. package/src/shared/types/utilization.ts +405 -0
  2317. package/src/shared/utils/a11yAudit.ts +140 -0
  2318. package/src/shared/utils/api.ts +112 -0
  2319. package/src/shared/utils/apiAuth.ts +354 -0
  2320. package/src/shared/utils/apiKey.ts +92 -0
  2321. package/src/shared/utils/apiKeyPolicy.ts +680 -0
  2322. package/src/shared/utils/apiResponse.ts +79 -0
  2323. package/src/shared/utils/bulkApiKeyParser.ts +113 -0
  2324. package/src/shared/utils/circuitBreaker.ts +611 -0
  2325. package/src/shared/utils/classify429.ts +253 -0
  2326. package/src/shared/utils/cliCompat.ts +5 -0
  2327. package/src/shared/utils/clineAuth.ts +62 -0
  2328. package/src/shared/utils/clipboard.ts +49 -0
  2329. package/src/shared/utils/cloud.ts +41 -0
  2330. package/src/shared/utils/cn.ts +12 -0
  2331. package/src/shared/utils/codexBaseUrl.ts +32 -0
  2332. package/src/shared/utils/codexConfig.ts +30 -0
  2333. package/src/shared/utils/compressionHeaderEcho.ts +59 -0
  2334. package/src/shared/utils/cors.ts +24 -0
  2335. package/src/shared/utils/costEstimator.ts +126 -0
  2336. package/src/shared/utils/dashboardCsrf.ts +196 -0
  2337. package/src/shared/utils/featureFlags.ts +113 -0
  2338. package/src/shared/utils/fetchError.ts +26 -0
  2339. package/src/shared/utils/fetchTimeout.ts +78 -0
  2340. package/src/shared/utils/formatting.ts +183 -0
  2341. package/src/shared/utils/freeModels.ts +112 -0
  2342. package/src/shared/utils/index.ts +39 -0
  2343. package/src/shared/utils/inputSanitizer.ts +339 -0
  2344. package/src/shared/utils/linkify.ts +54 -0
  2345. package/src/shared/utils/logRedaction.ts +108 -0
  2346. package/src/shared/utils/logger.ts +173 -0
  2347. package/src/shared/utils/machine.ts +5 -0
  2348. package/src/shared/utils/machineId.ts +167 -0
  2349. package/src/shared/utils/maskEmail.ts +77 -0
  2350. package/src/shared/utils/modelCatalogSearch.ts +84 -0
  2351. package/src/shared/utils/noAuthProviders.ts +79 -0
  2352. package/src/shared/utils/nodeRuntimeSupport.ts +112 -0
  2353. package/src/shared/utils/parseApiKeys.ts +41 -0
  2354. package/src/shared/utils/providerDisplayLabel.ts +41 -0
  2355. package/src/shared/utils/providerHints.ts +73 -0
  2356. package/src/shared/utils/providerModelAliases.ts +68 -0
  2357. package/src/shared/utils/rateLimiter.ts +243 -0
  2358. package/src/shared/utils/releaseNotes.ts +53 -0
  2359. package/src/shared/utils/requestId.ts +102 -0
  2360. package/src/shared/utils/requestTelemetry.ts +189 -0
  2361. package/src/shared/utils/requestTimeout.ts +64 -0
  2362. package/src/shared/utils/resolveOmniRouteBaseUrl.ts +24 -0
  2363. package/src/shared/utils/runtimeTimeouts.ts +257 -0
  2364. package/src/shared/utils/secretsValidator.ts +135 -0
  2365. package/src/shared/utils/secureRandom.ts +66 -0
  2366. package/src/shared/utils/serviceTierLabels.ts +42 -0
  2367. package/src/shared/utils/shuffleDeck.ts +147 -0
  2368. package/src/shared/utils/sidebarRouteMatch.ts +43 -0
  2369. package/src/shared/utils/streamTracker.ts +187 -0
  2370. package/src/shared/utils/structuredLogger.ts +219 -0
  2371. package/src/shared/utils/tiktokenCounter.ts +21 -0
  2372. package/src/shared/utils/turkishText.ts +66 -0
  2373. package/src/shared/utils/upstreamError.ts +112 -0
  2374. package/src/shared/validation/compressionConfigSchemas.ts +234 -0
  2375. package/src/shared/validation/freeProxySchemas.ts +111 -0
  2376. package/src/shared/validation/helpers.ts +117 -0
  2377. package/src/shared/validation/oneproxySchemas.ts +14 -0
  2378. package/src/shared/validation/providerSchema.ts +51 -0
  2379. package/src/shared/validation/providerSpecificData.ts +354 -0
  2380. package/src/shared/validation/schemas/apiV1.ts +297 -0
  2381. package/src/shared/validation/schemas/auth.ts +200 -0
  2382. package/src/shared/validation/schemas/cli.ts +86 -0
  2383. package/src/shared/validation/schemas/cloud.ts +53 -0
  2384. package/src/shared/validation/schemas/combo.ts +373 -0
  2385. package/src/shared/validation/schemas/evals.ts +86 -0
  2386. package/src/shared/validation/schemas/gemini.ts +59 -0
  2387. package/src/shared/validation/schemas/keys.ts +144 -0
  2388. package/src/shared/validation/schemas/misc.ts +203 -0
  2389. package/src/shared/validation/schemas/payloadRules.ts +64 -0
  2390. package/src/shared/validation/schemas/pricing.ts +40 -0
  2391. package/src/shared/validation/schemas/provider.ts +430 -0
  2392. package/src/shared/validation/schemas/proxy.ts +243 -0
  2393. package/src/shared/validation/schemas/routing.ts +88 -0
  2394. package/src/shared/validation/schemas/settings.ts +267 -0
  2395. package/src/shared/validation/schemas/translator.ts +44 -0
  2396. package/src/shared/validation/schemas.ts +18 -0
  2397. package/src/shared/validation/settingsSchemas.ts +396 -0
  2398. package/src/sse/handlers/chat.ts +1750 -0
  2399. package/src/sse/handlers/chatHelpers.ts +859 -0
  2400. package/src/sse/handlers/requestBody.ts +24 -0
  2401. package/src/sse/handlers/resolveRoutingModel.ts +17 -0
  2402. package/src/sse/services/auth.ts +2446 -0
  2403. package/src/sse/services/cooldownAwareRetry.ts +162 -0
  2404. package/src/sse/services/model.ts +254 -0
  2405. package/src/sse/services/noAuthProviderSettings.ts +18 -0
  2406. package/src/sse/services/noAuthProxyResolution.ts +111 -0
  2407. package/src/sse/services/sessionAffinityPin.ts +247 -0
  2408. package/src/sse/services/streamState.ts +218 -0
  2409. package/src/sse/services/tokenRefresh.ts +275 -0
  2410. package/src/sse/utils/logger.ts +37 -0
  2411. package/src/types/databaseSettings.ts +124 -0
  2412. package/src/types/global.d.ts +122 -0
  2413. package/src/types/index.ts +10 -0
  2414. package/src/types/provider.ts +9 -0
  2415. package/src/types/sqljs.d.ts +32 -0
package/.env.example ADDED
@@ -0,0 +1,2070 @@
1
+ # ┌─────────────────────────────────────────────────────────────────────────────┐
2
+ # │ OmniRoute — .env Contract │
3
+ # │ This file documents EVERY environment variable read by the runtime. │
4
+ # │ Copy to .env and adjust values. Lines starting with # are commented out │
5
+ # │ (optional / off-by-default). Uncomment only what you need. │
6
+ # │ Reference: docs/ENVIRONMENT.md for full details and usage scenarios. │
7
+ # └─────────────────────────────────────────────────────────────────────────────┘
8
+
9
+ # ═══════════════════════════════════════════════════════════════════════════════
10
+ # 1. REQUIRED SECRETS — Must be set before first run!
11
+ # ═══════════════════════════════════════════════════════════════════════════════
12
+ # These secrets are critical for security. Generate strong, unique values.
13
+
14
+ # JWT signing key for dashboard session tokens.
15
+ # Used by: src/lib/auth — signs/verifies all authenticated session cookies.
16
+ # Generate: openssl rand -base64 48
17
+ JWT_SECRET=
18
+
19
+ # Encryption key for API keys stored in the database.
20
+ # Used by: src/lib/db/apiKeys.ts — encrypts API key values at rest in SQLite.
21
+ # Generate: openssl rand -hex 32
22
+ API_KEY_SECRET=
23
+
24
+ # Initial admin login password — CHANGE THIS before first use!
25
+ # Used by: bootstrap only — sets the initial dashboard password on first boot.
26
+ # After first login you can change it from Dashboard → Settings → Security.
27
+ # Default: CHANGEME (insecure, for local dev only)
28
+ INITIAL_PASSWORD=CHANGEME
29
+
30
+ # ═══════════════════════════════════════════════════════════════════════════════
31
+ # 2. STORAGE & DATABASE
32
+ # ═══════════════════════════════════════════════════════════════════════════════
33
+ # OmniRoute uses SQLite for all persistence. These variables control where
34
+ # data lives, encryption, and cleanup policies.
35
+
36
+ # Base directory for all persistent data (SQLite DB, logs, backups).
37
+ # Used by: src/lib/db/core.ts — resolves the SQLite database file path.
38
+ # Default: ~/.omniroute/ | Override for Docker or custom installations.
39
+ # Hint: When running in Docker, consider mounting a host directory here for data persistence across container restarts
40
+ # also if you want to share the same database as "npm run dev" use "./data"
41
+ # DATA_DIR=/var/lib/omniroute
42
+
43
+ # Encryption key for SQLite database encryption at rest.
44
+ # Used by: src/lib/db/encryption.ts — encrypts the entire SQLite database.
45
+ # Generate: openssl rand -hex 32 | Leave empty to disable DB encryption.
46
+ STORAGE_ENCRYPTION_KEY=
47
+
48
+ # Version tag for the encryption key — allows future key rotation.
49
+ # Used by: scripts/bootstrap-env.mjs, electron/main.js — persists key version.
50
+ # Default: v1 | Increment when rotating STORAGE_ENCRYPTION_KEY.
51
+ STORAGE_ENCRYPTION_KEY_VERSION=v1
52
+
53
+ # Automatic SQLite backup on startup.
54
+ # Used by: src/lib/db/backup.ts — creates a timestamped backup before migrations.
55
+ # Default: false (backups enabled) | Set true to skip backup on every restart.
56
+ DISABLE_SQLITE_AUTO_BACKUP=false
57
+
58
+ # ── Redis (Rate Limiting) ──
59
+ # Redis connection URL for the rate limiter backend. OPT-IN: leave this
60
+ # commented out to use the built-in in-memory rate limiter. Setting it to a
61
+ # non-running localhost (#4878) makes ioredis flood "[REDIS] Error:" logs.
62
+ # Used by: src/shared/utils/rateLimiter.ts
63
+ # Example: redis://localhost:6379 (or redis://redis:6379 in Docker)
64
+ # REDIS_URL=redis://localhost:6379
65
+
66
+ # ═══════════════════════════════════════════════════════════════════════════════
67
+ # 3. NETWORK & PORTS
68
+ # ═══════════════════════════════════════════════════════════════════════════════
69
+ # OmniRoute can run on a single port (default) or split Dashboard/API ports.
70
+
71
+ # Canonical port for both Dashboard UI and API (single-port mode).
72
+ # Used by: src/lib/runtime/ports.ts — base port for the Next.js server.
73
+ # Default: 20128
74
+ PORT=20128
75
+
76
+ # Base path (URL subpath) when serving OmniRoute behind a reverse proxy under a subpath.
77
+ # Used by: next.config.mjs — sets Next.js `basePath`; auth redirects are basePath-aware.
78
+ # Default: "" (served at the domain root). Example: /omniroute to serve under https://host/omniroute
79
+ # OMNIROUTE_BASE_PATH=
80
+
81
+ # Split-port mode: serve Dashboard and API on separate ports for network isolation.
82
+ # Used by: src/lib/runtime/ports.ts — overrides PORT for each service.
83
+ # API_PORT=20129
84
+ # API_HOST=0.0.0.0
85
+ # DASHBOARD_PORT=20128
86
+
87
+ # Port for the real-time WebSocket live monitoring server.
88
+ # Used by: src/server/ws/liveServer.ts, src/app/api/v1/ws/route.ts
89
+ # Default: 20129
90
+ # LIVE_WS_PORT=20129
91
+
92
+ # Bind address for the live WebSocket server.
93
+ # Default: 127.0.0.1 (loopback only). Set to 0.0.0.0 to expose on LAN —
94
+ # remember to also configure LIVE_WS_ALLOWED_ORIGINS when doing so.
95
+ # LIVE_WS_HOST=127.0.0.1
96
+
97
+ # Comma-separated extra origins allowed to open a live WebSocket. The
98
+ # loopback dashboard origins are already permitted by default; use this
99
+ # var when fronting the server with a domain (e.g. https://omni.local).
100
+ # ⚠️ When using NEXT_PUBLIC_LIVE_WS_PUBLIC_URL or exposing the WS server
101
+ # beyond loopback, this MUST include the public origin(s) — otherwise
102
+ # the Origin allow-list check will reject all browser connections.
103
+ # Example: LIVE_WS_ALLOWED_ORIGINS=https://omni.local,https://dashboard.example.com,https://ws.my-ai.com
104
+ # LIVE_WS_ALLOWED_ORIGINS=https://omni.local,https://dashboard.example.com
105
+
106
+ # Comma-separated extra hostnames allowed to open a live WebSocket (LAN/Tailscale).
107
+ # Unlike LIVE_WS_ALLOWED_ORIGINS (which matches full origin URLs), this matches
108
+ # only the host portion — useful for wildcard-ish LAN/Tailscale setups.
109
+ # Used by: src/server/ws/liveServerAllowList.ts
110
+ # Example: LIVE_WS_ALLOWED_HOSTS=omni.local,tailscale-host,192.168.1.50
111
+ # LIVE_WS_ALLOWED_HOSTS=omni.local,tailscale-host,192.168.1.50
112
+
113
+ # Public URL for the live dashboard WebSocket (client-side, browser only).
114
+ # Set this when fronting the WS server with a reverse proxy or Cloudflare Tunnel.
115
+ # The browser will connect to this URL instead of ws://hostname:20129.
116
+ # The /live-ws path is already proxied from the main app (port 20128) to the
117
+ # live WS server (port 20129) by scripts/dev/standalone-server-ws.mjs.
118
+ # Used by: src/hooks/useLiveDashboard.ts
119
+ # Example: NEXT_PUBLIC_LIVE_WS_PUBLIC_URL=wss://ws.my-ai.com/live-ws
120
+ # NEXT_PUBLIC_LIVE_WS_PUBLIC_URL=
121
+
122
+ # Disable the standalone live WebSocket helper used by scripts/start-ws-server.mjs.
123
+ # Used by: scripts/start-ws-server.mjs (CI/embedded harness toggle).
124
+ # OMNIROUTE_DISABLE_LIVE_WS=0
125
+
126
+ # Enable the real-time dashboard WebSocket server.
127
+ # Used by: src/server/ws/liveServer.ts, scripts/start-ws-server.mjs
128
+ # Default: ON. Set to 0 or false to disable startup of the live WS server.
129
+ # Combine with LIVE_WS_HOST / LIVE_WS_ALLOWED_ORIGINS above when exposing
130
+ # beyond loopback.
131
+ # OMNIROUTE_ENABLE_LIVE_WS=1
132
+
133
+ # Per-(token,IP) relay rate limit, requests/minute. In-memory, per instance.
134
+ # 0 or negative disables the IP-dimension gate (per-token DB limit still applies).
135
+ # Default: 30
136
+ # Used by: src/app/api/v1/relay/chat/completions/route.ts
137
+ # RELAY_IP_PER_MINUTE=30
138
+
139
+ # Bundler selection for `npm run dev`. Set to 0 to fall back to webpack.
140
+ # Default is 1 (Turbopack). PR #4092 had forced webpack because earlier
141
+ # Turbopack 16.2.x panicked on the OmniRoute module graph with "internal error:
142
+ # entered unreachable code: there must be a path to a root"
143
+ # (turbopack-core/module_graph/mod.rs:662). That panic no longer reproduces on
144
+ # the pinned Next 16.2.9 — verified across a broad cold-compile sweep (36
145
+ # dashboard routes + open-sse-heavy API routes incl. /api/v1/chat/completions,
146
+ # /api/v1/models, /api/mcp) and repeated HMR rebuilds: zero panics. Turbopack
147
+ # also keeps dev memory far lower on the edit→rebuild loop (HMR rebuild RSS stays
148
+ # ~flat vs webpack's monotonic growth), which mitigates the dev-server OOM on
149
+ # this 60+ route app. The production build still uses webpack (build pipeline is
150
+ # unaffected by this dev-only flag).
151
+ OMNIROUTE_USE_TURBOPACK=1
152
+
153
+ # Skip the SQLite integrity health check on startup (faster boot on large DBs).
154
+ # Used by: src/lib/db/core.ts, src/lib/db/healthCheck.ts. Set to 1 to skip.
155
+ # OMNIROUTE_SKIP_DB_HEALTHCHECK=1
156
+
157
+ # Interval (ms) for the background credential health check scheduler.
158
+ # Default: 300000 (5 minutes). Minimum: 10000 (10 seconds).
159
+ # Used by: open-sse/config/constants.ts, src/lib/credentialHealth/scheduler.ts
160
+ # CREDENTIAL_HEALTH_CHECK_INTERVAL=300000
161
+
162
+ # TTL (ms) for cached credential health status.
163
+ # Default: 300000 (5 minutes).
164
+ # Used by: open-sse/config/constants.ts, src/lib/credentialHealth/cache.ts
165
+ # CREDENTIAL_HEALTH_CACHE_TTL=300000
166
+
167
+ # Set to 1 or true to disable background periodic testing of provider connections.
168
+ # Default: false
169
+ # Used by: src/lib/credentialHealth/scheduler.ts
170
+ # OMNIROUTE_DISABLE_CREDENTIAL_HEALTH_CHECK=false
171
+
172
+ # Set to "true" to emit `[ProxyFetch]` debug logs from the Vercel relay path
173
+ # in open-sse/utils/proxyFetch.ts. Off by default to avoid leaking routing
174
+ # hints in production logs.
175
+ # OMNIROUTE_PROXY_FETCH_DEBUG=true
176
+
177
+ # Docker production port mappings (docker-compose.prod.yml only).
178
+ # These set the HOST-side published ports. Container ports use PORT/API_PORT.
179
+ # PROD_DASHBOARD_PORT=20130
180
+ # PROD_API_PORT=20131
181
+
182
+ # Runtime override used by Electron and wrapped environments.
183
+ # OMNIROUTE_PORT takes precedence over PORT when running inside wrappers.
184
+ # Used by: src/lib/runtime/ports.ts — preserves canonical port in Electron.
185
+ # OMNIROUTE_PORT=20128
186
+
187
+ # Hostname/bind address for the Next.js server.
188
+ # Used by: scripts/dev/run-next.mjs (HOST), Playwright runner (HOSTNAME).
189
+ # Default: 0.0.0.0 (HOST) / 127.0.0.1 (HOSTNAME inside tests).
190
+ # NOTE: Do NOT use `HOSTNAME` — it is a POSIX shell variable automatically set to
191
+ # the machine name by bash/zsh. The .env loader cannot override it (first-wins
192
+ # semantics). Use OMNIROUTE_SERVER_HOST instead for `omniroute serve`.
193
+ # See: https://github.com/diegosouzapw/OmniRoute/issues/6194
194
+ #HOST=0.0.0.0
195
+ #HOSTNAME=127.0.0.1
196
+ #OMNIROUTE_SERVER_HOST=0.0.0.0
197
+
198
+ # Environment mode — affects Next.js behavior, logging verbosity, and caching.
199
+ # Values: production | development | Default: production
200
+ NODE_ENV=production
201
+
202
+ # Container runtime — controls startup script behavior (permissions, advice).
203
+ # Values: docker | podman | Default: docker
204
+ # Set to "podman" when running under rootless Podman so the entrypoint
205
+ # gives the correct fix instructions (podman unshare chown vs sudo chown).
206
+ CONTAINER_HOST=docker
207
+
208
+ # ═══════════════════════════════════════════════════════════════════════════════
209
+ # 4. SECURITY & AUTHENTICATION
210
+ # ═══════════════════════════════════════════════════════════════════════════════
211
+
212
+ # Salt for generating unique machine IDs (fingerprint diversification).
213
+ # Used by: src/lib/auth — combined with hardware identifiers for machine-id hash.
214
+ # Default: endpoint-proxy-salt | Change per-deployment for isolation.
215
+ MACHINE_ID_SALT=endpoint-proxy-salt
216
+
217
+ # Salt for deriving CLI machine-ID auth tokens (HMAC-SHA256).
218
+ # Used by: src/lib/machineToken.ts — rotates the local CLI auth token without
219
+ # touching code. Set to a new value to invalidate existing CLI tokens.
220
+ # Default: omniroute-cli-auth-v1
221
+ # OMNIROUTE_CLI_SALT=omniroute-cli-auth-v1
222
+
223
+ # Set true when running behind HTTPS (reverse proxy with TLS termination).
224
+ # Used by: src/lib/auth — sets the Secure flag on session cookies.
225
+ # Default: false | MUST be true in any non-localhost deployment.
226
+ AUTH_COOKIE_SECURE=false
227
+
228
+ # Require an API key for all /v1/* proxy endpoints.
229
+ # Used by: API middleware — rejects unauthenticated requests to the proxy API.
230
+ # Default: false | Set true for multi-user/public deployments.
231
+ REQUIRE_API_KEY=false
232
+
233
+ # Allow revealing full API key values in the Dashboard UI.
234
+ # Used by: src/shared/constants/featureFlagDefinitions.ts — controls show/hide of key values.
235
+ # Also configurable from Dashboard > Settings > Feature Flags.
236
+ # Default: false | Security risk if enabled on shared instances.
237
+ ALLOW_API_KEY_REVEAL=false
238
+
239
+ # Shared secret for the internal Codex Responses WebSocket bridge.
240
+ # Used by: src/app/api/internal/codex-responses-ws/route.ts — authenticates
241
+ # bridge requests between the Electron/browser WS relay and OmniRoute.
242
+ # ⚠️ REQUIRED for production — if unset, all WS bridge requests are rejected.
243
+ # Generate: openssl rand -base64 32
244
+ # OMNIROUTE_WS_BRIDGE_SECRET=
245
+
246
+ # Per-process secret that proves the trusted peer-IP stamp came from OmniRoute's
247
+ # own HTTP server (scripts/dev/peer-stamp.mjs). The custom server stamps the real
248
+ # TCP peer IP as `<token>|<ip>`; the authz middleware trusts the locality only
249
+ # when the token matches. Used by: src/server/authz/policies/management.ts.
250
+ # Auto-generated per boot — leave UNSET in normal use. Only set it to pin a fixed
251
+ # value across processes (e.g. a multi-process setup that must share the stamp).
252
+ # OMNIROUTE_PEER_STAMP_TOKEN=
253
+
254
+ # Comma-separated API key IDs that skip request logging (GDPR/compliance).
255
+ # Used by: src/lib/compliance/index.ts — suppresses logs for specific keys.
256
+ # NO_LOG_API_KEY_IDS=key_abc123,key_def456
257
+
258
+ # Fallback per-day request budget applied to API keys whose `rate_limits`
259
+ # column is null. Default (unset/empty/malformed) preserves the legacy
260
+ # 1000/day, 5000/week, 20000/month windows so existing deployments do not
261
+ # silently lose rate limiting on upgrade.
262
+ # Set explicitly to "0" to opt out entirely (unlimited fallback). Any
263
+ # positive integer N enables N/day, 5N/week, 20N/month.
264
+ # Used by: src/shared/utils/apiKeyPolicy.ts — checkRateLimit() fallback.
265
+ # DEFAULT_RATE_LIMIT_PER_DAY=1000
266
+
267
+ # Maximum request body size in bytes (rejects larger payloads).
268
+ # Used by: src/shared/middleware/bodySizeGuard.ts — prevents oversized uploads.
269
+ # Default: 10485760 (10 MB)
270
+ # MAX_BODY_SIZE_BYTES=10485760
271
+
272
+ # Heap-pressure-aware admission for POST /v1/chat/completions (#5152). A large
273
+ # coding-agent "compact" body amplifies into hundreds of MB of transient JS objects
274
+ # on the combo path; concurrent compacts can stack past the V8 heap ceiling and OOM
275
+ # the process. These shed a LARGE body with 503 (Retry-After) only while the heap is
276
+ # already under pressure — healthy heap admits every body untouched.
277
+ # Used by: src/shared/middleware/chatBodyAdmission.ts
278
+ # Bodies below this size skip the guard entirely (heap not even sampled). Default 262144 (256 KB).
279
+ # OMNIROUTE_CHAT_LARGE_BODY_BYTES=262144
280
+ # Hard cap — bodies above this are rejected with 413 before any clone/parse. Default 52428800 (50 MB).
281
+ # OMNIROUTE_CHAT_HARD_MAX_BODY_BYTES=52428800
282
+ # Shed large bodies once heapUsed/heap_size_limit reaches this ratio (0<r<1). Default 0.75.
283
+ # OMNIROUTE_CHAT_HEAP_SHED_RATIO=0.75
284
+
285
+ # Hard cap (bytes) for a non-streaming upstream response buffered fully into memory
286
+ # (#5152). Past this the upstream reader is cancelled and the request fails fast
287
+ # instead of growing an unbounded string until the V8 heap is exhausted.
288
+ # Used by: open-sse/handlers/chatCore/nonStreamingResponseBody.ts
289
+ # Default: 67108864 (64 MB)
290
+ # OMNIROUTE_MAX_NONSTREAMING_RESPONSE_BYTES=67108864
291
+
292
+ # CORS configuration — controls which cross-origin browser clients can call the API.
293
+ # Used by: src/server/cors/origins.ts — sets Access-Control-Allow-Origin.
294
+ # Same-origin dashboard requests behind a reverse proxy do not need CORS; they
295
+ # use session-bound CSRF protection. No wildcard is sent unless CORS_ALLOW_ALL=true.
296
+ # CORS_ALLOWED_ORIGINS=https://your-frontend.example.com
297
+ # CORS_ORIGIN=https://your-frontend.example.com # legacy single-origin alias
298
+ # CORS_ALLOW_ALL=false
299
+
300
+ # Allow provider URLs pointing to private/local networks (localhost, 192.168.x.x, etc.).
301
+ # REQUIRED for self-hosted providers: LM Studio, Ollama, vLLM, Llamafile, Triton, etc.
302
+ # Used by: src/shared/network/outboundUrlGuard.ts — disables SSRF guard for provider calls.
303
+ # Default: false (blocked) | Set true to enable local providers.
304
+ # OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS=true
305
+
306
+ # Allow adding/validating providers on local/private addresses (127.0.0.1, localhost, LAN).
307
+ # Used by: src/shared/network/outboundUrlGuard.ts — scopes to the provider validation path and
308
+ # still blocks cloud-metadata (169.254.169.254, metadata.google.internal). Default: true
309
+ # (OmniRoute is local-first). Set false to enforce strict public-only blocking.
310
+ # OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS=false
311
+
312
+ # Legacy alias toggling the SSRF guard. Used by: src/shared/network/outboundUrlGuard.ts
313
+ # When unset, OmniRoute uses the per-feature defaults. Set to "false"/"0" to disable.
314
+ # OUTBOUND_SSRF_GUARD_ENABLED=true
315
+
316
+ # ═══════════════════════════════════════════════════════════════════════════════
317
+ # 5. INPUT SANITIZATION & PII PROTECTION (FASE-01)
318
+ # ═══════════════════════════════════════════════════════════════════════════════
319
+ # Multi-layer defense: request-side injection guard + response-side PII sanitizer.
320
+
321
+ # ── Request-Side: Prompt Injection Guard ──
322
+ # Scans incoming messages for prompt injection patterns before routing.
323
+ # Used by: src/middleware/promptInjectionGuard.ts
324
+ # INPUT_SANITIZER_ENABLED=true
325
+ # INPUT_SANITIZER_MODE=warn # warn = log only | block = reject request | redact = strip patterns
326
+
327
+ # Legacy alias for INPUT_SANITIZER_MODE (same effect).
328
+ # INJECTION_GUARD_MODE=warn
329
+
330
+ # PII detection in incoming requests (emails, phone numbers, SSNs, etc.).
331
+ # Used by: src/middleware/promptInjectionGuard.ts — extends injection guard.
332
+ # PII_REDACTION_ENABLED=false
333
+
334
+ # Minimum streaming window size for PII detection (bytes). Default: 200.
335
+ # Used by: src/lib/streamingPiiTransform.ts.
336
+ # PII_WINDOW_SIZE=200
337
+
338
+ # Test bypass: allow setting PII_WINDOW_SIZE below minimum. Default: false.
339
+ # Used by: src/lib/streamingPiiTransform.ts.
340
+ # PII_TEST_BYPASS_MIN_WINDOW=false
341
+
342
+ # ── Response-Side: PII Sanitizer ──
343
+ # Scans LLM responses for leaked PII before returning to the client.
344
+ # Used by: src/lib/piiSanitizer.ts
345
+ # PII_RESPONSE_SANITIZATION=false
346
+ # PII_RESPONSE_SANITIZATION_MODE=redact # redact = mask PII | warn = log only | block = drop response
347
+
348
+ # ── VS Code Tokenized-Route Context Sanitizer ──
349
+ # Strips implicit active-editor context (editorContext/activeEditor/currentFile/
350
+ # selection/openTabs…) from requests on the /v1/vscode/[token]/* routes before
351
+ # forwarding upstream, and redacts the content of explicitly-attached sensitive
352
+ # files (.env, private keys, kubeconfig, credentials/secrets). Explicit
353
+ # attachments otherwise pass through. Secure-by-default: ON unless set to 0.
354
+ # Used by: src/app/api/v1/vscode/contextSanitizer.ts
355
+ # OMNIROUTE_VSCODE_SANITIZE_CONTEXT=1 # set to 0 to disable
356
+
357
+ # ═══════════════════════════════════════════════════════════════════════════════
358
+ # 6. TOOL & ROUTING POLICIES
359
+ # ═══════════════════════════════════════════════════════════════════════════════
360
+
361
+ # Tool policy mode — controls which tools LLMs can invoke via function calling.
362
+ # Used by: src/lib/toolPolicy.ts — enforces allowlist/denylist on tool_choice.
363
+ # Values: allowlist | denylist | disabled | Default: disabled
364
+ # TOOL_POLICY_MODE=disabled
365
+
366
+ # Payload manipulation rules JSON file.
367
+ # Used by: open-sse/services/payloadRules.ts — injects/removes upstream payload fields per model/protocol.
368
+ # Default: ./config/payloadRules.json
369
+ # OMNIROUTE_PAYLOAD_RULES_PATH=./config/payloadRules.json
370
+
371
+ # Reload interval for payloadRules.json mtime checks in milliseconds.
372
+ # Used by: open-sse/services/payloadRules.ts — keeps file-based rules hot-reloadable without restart.
373
+ # Default: 5000 | Minimum: 1000
374
+ # OMNIROUTE_PAYLOAD_RULES_RELOAD_MS=5000
375
+
376
+ # Prefer Claude Code OAuth for unprefixed Claude-family model IDs such as
377
+ # claude-sonnet-4-6 or newly released IDs like claude-fable-5.
378
+ # Used by: open-sse/services/model.ts. Explicit provider prefixes still win.
379
+ # Default: false
380
+ # OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS=false
381
+
382
+ # ═══════════════════════════════════════════════════════════════════════════════
383
+ # 7. URLS & CLOUD SYNC
384
+ # ═══════════════════════════════════════════════════════════════════════════════
385
+ # URLs used for internal sync jobs, OAuth callbacks, and cloud relay.
386
+
387
+ # Internal base URL — used by server-side sync jobs to call /api/sync/cloud.
388
+ # Keep this as a loopback/container URL even when the app is publicly proxied.
389
+ # Used by: src/lib/cloudSync.ts, src/lib/initCloudSync.ts
390
+ # Default: http://localhost:20128
391
+ BASE_URL=http://localhost:20128
392
+
393
+ # Cloud relay URL — premium feature for remote config sync.
394
+ # Used by: src/lib/cloudSync.ts — pushes/pulls settings from OmniRoute Cloud.
395
+ CLOUD_URL=
396
+
397
+ # Timeout for cloud sync HTTP requests in milliseconds.
398
+ # Used by: src/lib/cloudSync.ts — fetchWithTimeout wrapper.
399
+ # Default: 12000 (12 seconds)
400
+ # CLOUD_SYNC_TIMEOUT_MS=12000
401
+
402
+ # Public-facing base URL — required for stable reverse proxy / OAuth callback setups.
403
+ # Used by: OAuth redirect_uri computation, Dashboard UI links, and generated public URLs.
404
+ # Set to your stable public URL when OAuth callbacks or generated browser links need a
405
+ # canonical host behind nginx/Caddy (e.g., https://omniroute.example.com).
406
+ #
407
+ # Dashboard display behavior: when this variable is unset, the dashboard
408
+ # auto-detects the base URL shown in curl examples and CLI tool snippets
409
+ # from window.location.origin (the host the user is browsing). Setting it
410
+ # explicitly is only required when running behind a reverse proxy with a
411
+ # different public hostname, or when OAuth callbacks / generated browser links must point
412
+ # to a canonical URL. Authenticated dashboard writes use same-origin requests plus
413
+ # session-bound CSRF protection and do not require a static public base URL.
414
+ #
415
+ # Default: http://localhost:20128
416
+ NEXT_PUBLIC_BASE_URL=http://localhost:20128
417
+
418
+ # Browser-facing OmniRoute origin for generated assets in API responses.
419
+ # Highest-priority public origin override; also used by non-dashboard public-origin validation.
420
+ # Used by: chatgpt-web image generation cache URLs (/v1/chatgpt-web/image/<id>).
421
+ # Set this when OpenWebUI or another relay reaches OmniRoute by an internal URL
422
+ # but the user's browser must fetch images from a LAN, tunnel, or public origin.
423
+ # Do not include /v1; if included accidentally it will be normalized away.
424
+ # OMNIROUTE_PUBLIC_BASE_URL=http://192.168.0.15:20128
425
+
426
+ # Absolute provider plugin manifest URL advertised to sidecar clients.
427
+ # Used by: open-sse/config/providerPluginManifestUrl.ts. When unset, OmniRoute
428
+ # derives the URL from request origin or HOST/PORT using OMNIROUTE_PUBLIC_PROTOCOL.
429
+ # OMNIROUTE_PROVIDER_MANIFEST_URL=https://omniroute.example.com/api/v1/provider-plugin-manifest
430
+
431
+ # Protocol used when deriving provider plugin manifest URLs without a request origin.
432
+ # Used by: open-sse/config/providerPluginManifestUrl.ts. Defaults to http.
433
+ # OMNIROUTE_PUBLIC_PROTOCOL=http
434
+
435
+ # Max wait time for an async chatgpt-web image to land via the celsius
436
+ # WebSocket, in milliseconds. Default 180000 (3 minutes). Increase during
437
+ # upstream queue-deep windows ("Lots of people are creating images right now").
438
+ # OMNIROUTE_CGPT_WEB_IMAGE_TIMEOUT_MS=180000
439
+
440
+ # Total in-memory byte budget for the chatgpt-web image cache (used to serve
441
+ # /v1/chatgpt-web/image/<id>), in megabytes. Default 256. Lower this if you
442
+ # run OmniRoute on a memory-constrained host; raise it if image generation
443
+ # is heavy and clients are racing the 30-minute TTL.
444
+ # OMNIROUTE_CGPT_WEB_IMAGE_CACHE_MAX_MB=256
445
+
446
+ # Overall wait budget for a chatgpt-web GPT-5.5 Pro background-poll handoff,
447
+ # in milliseconds. Default 1200000 (20 minutes). Pro reasoning runs are slow
448
+ # and complete out-of-band, so OmniRoute polls until the answer lands or this
449
+ # budget elapses. Raise it if Pro requests time out before finishing.
450
+ # OMNIROUTE_CGPT_WEB_PRO_TIMEOUT_MS=1200000
451
+
452
+ # Interval between chatgpt-web GPT-5.5 Pro background-poll attempts, in
453
+ # milliseconds. Default 4000 (4 seconds). Lower for snappier completion at the
454
+ # cost of more upstream polling; raise to reduce request volume.
455
+ # OMNIROUTE_CGPT_WEB_PRO_POLL_INTERVAL_MS=4000
456
+
457
+ # Public cloud URL — client-side mirror of CLOUD_URL.
458
+ NEXT_PUBLIC_CLOUD_URL=
459
+
460
+ # Legacy alias — fallback for NEXT_PUBLIC_BASE_URL in sync schedulers.
461
+ # NEXT_PUBLIC_APP_URL=http://localhost:20128
462
+
463
+ # Advanced reverse-proxy trust mode for deriving public origin from Forwarded /
464
+ # X-Forwarded-* headers when no explicit public base URL is set. Prefer setting
465
+ # NEXT_PUBLIC_BASE_URL. Only enable if direct client access to OmniRoute is blocked
466
+ # and your proxy strips/rebuilds incoming forwarded headers.
467
+ # Values: true/loopback (trust loopback proxy peers), private/lan (also trust LAN peers).
468
+ # OMNIROUTE_TRUST_PROXY=
469
+
470
+ # Public callback URL for asynchronous image/audio jobs (kie.ai, etc.).
471
+ # Used by: open-sse/utils/kieTask.ts — overrides callbackUrlFromBaseUrl().
472
+ # Honor order: KIE_CALLBACK_URL → OMNIROUTE_KIE_CALLBACK_URL → OMNIROUTE_PUBLIC_URL.
473
+ #KIE_CALLBACK_URL=
474
+ #OMNIROUTE_KIE_CALLBACK_URL=
475
+ #OMNIROUTE_PUBLIC_URL=
476
+
477
+ # Headroom token-saver proxy URL. The dashboard lifecycle (api/headroom/*) spawns
478
+ # a local headroom-ai CLI on loopback by default; override only to point at an
479
+ # external Docker sidecar proxy. Defaults to http://localhost:8787 when unset.
480
+ # Used by: src/lib/headroom/detect.ts.
481
+ #HEADROOM_URL=http://localhost:8787
482
+
483
+ # Upstream quota endpoints used by the Usage page. Override only for
484
+ # debugging or when routing through a corporate mirror. Used by:
485
+ # open-sse/services/usage.ts.
486
+ #OMNIROUTE_CROF_USAGE_URL=https://crof.ai/usage_api/
487
+ #OMNIROUTE_CODEWHISPERER_BASE_URL=https://codewhisperer.us-east-1.amazonaws.com
488
+ #OMNIROUTE_OPENCODE_QUOTA_URL=https://opencode.ai/zen/go/v1/quota
489
+ #OMNIROUTE_OPENCODE_GO_QUOTA_URL=https://api.z.ai/api/monitor/usage/quota/limit
490
+ #OMNIROUTE_OPENCODE_GO_DASHBOARD_URL=https://opencode.ai/workspace
491
+ #OMNIROUTE_OLLAMA_CLOUD_USAGE_URL=https://ollama.com/settings
492
+
493
+ # OpenCode Go dashboard quota scraping. Prefer configuring these per connection
494
+ # in Dashboard → Providers → OpenCode Go. Env vars are useful for headless
495
+ # deployments or shared server defaults. The cookie is sensitive.
496
+ #OPENCODE_GO_WORKSPACE_ID=wrk_...
497
+ #OMNIROUTE_OPENCODE_GO_WORKSPACE_ID=wrk_...
498
+ #OPENCODE_GO_AUTH_COOKIE=auth=...
499
+ #OMNIROUTE_OPENCODE_GO_AUTH_COOKIE=auth=...
500
+
501
+ # OpenCode Go/Zen VPS egress (#5997): on a datacenter VPS, Cloudflare in front of
502
+ # opencode.ai/zen/go 403s chat requests that lack OpenCode CLI identity headers.
503
+ # When your clients don't already send them, set this to synthesize the CLI headers
504
+ # (User-Agent, x-opencode-client, x-opencode-project, fresh request/session UUIDs) on
505
+ # absent keys. OFF by default — forward-only is safer when clients already send them.
506
+ # Values are overridable via OPENCODE_GO_USER_AGENT / OPENCODE_USER_AGENT / OPENCODE_CLIENT /
507
+ # OPENCODE_PROJECT (defaults: opencode-cli/1.0.0 / cli / default).
508
+ #OPENCODE_SYNTHESIZE_CLI_HEADERS=true
509
+ #OPENCODE_USER_AGENT=opencode-cli/1.0.0
510
+ #OPENCODE_CLIENT=cli
511
+ #OPENCODE_PROJECT=default
512
+
513
+ # Ollama Cloud quota scraping. Prefer configuring this per connection in
514
+ # Dashboard → Providers → Ollama Cloud. The cookie is sensitive.
515
+ #OLLAMA_USAGE_COOKIE=__Secure-session=...
516
+ #OLLAMA_CLOUD_USAGE_COOKIE=__Secure-session=...
517
+ #OMNIROUTE_OLLAMA_USAGE_COOKIE=__Secure-session=...
518
+
519
+ # ═══════════════════════════════════════════════════════════════════════════════
520
+ # 8. OUTBOUND PROXY (Upstream Provider Calls)
521
+ # ═══════════════════════════════════════════════════════════════════════════════
522
+ # Route upstream LLM API calls through an HTTP/SOCKS5 proxy.
523
+ # Useful for corporate egress, geo-routing, or IP masking.
524
+
525
+ # Enable SOCKS5 proxy support in both server and client components.
526
+ # Used by: open-sse/executors — wraps fetch() calls through the proxy agent.
527
+ ENABLE_SOCKS5_PROXY=true
528
+ NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=true
529
+
530
+ # Standard proxy variables (lowercase variants also supported).
531
+ # HTTP_PROXY=http://127.0.0.1:7890
532
+ # HTTPS_PROXY=http://127.0.0.1:7890
533
+ # ALL_PROXY=socks5://127.0.0.1:7890
534
+ # NO_PROXY=localhost,127.0.0.1
535
+
536
+ # Max concurrent sockets per cached HTTP/SOCKS proxy dispatcher.
537
+ # Long-lived SSE streams such as Codex /v1/responses need more than one
538
+ # connection when multiple requests share the same account-level proxy.
539
+ # Set to 1 only for legacy diagnostics. Values above 256 are capped.
540
+ # OMNIROUTE_PROXY_DISPATCHER_CONNECTIONS=32
541
+
542
+ # SOCKS5 handshake (connect) timeout in ms (default 10000, capped at 120000).
543
+ # Raise it when a single residential gateway host is hit by high concurrency
544
+ # (e.g. 100 simultaneous requests): the real SOCKS5 handshake can exceed 10s
545
+ # under a saturated pool even though the proxy is reachable, which otherwise
546
+ # surfaces as a false "[Proxy Fast-Fail] Proxy unreachable".
547
+ # SOCKS_HANDSHAKE_TIMEOUT_MS=10000
548
+
549
+ # Proxy fail-open mode (default: false = fail-closed).
550
+ # When false, a request whose assigned proxy fails to resolve is REFUSED rather than
551
+ # falling back to a direct connection — prevents real-IP leaks in egress-controlled
552
+ # deployments. Set true to restore the legacy DIRECT fallback (legacy behaviour).
553
+ # Used by: src/sse/handlers/chatHelpers.ts
554
+ # PROXY_FAIL_OPEN=false
555
+
556
+ # TLS fingerprint spoofing (opt-in) — mimics Chrome 124 TLS handshake via wreq-js.
557
+ # Reduces risk of JA3/JA4 fingerprint-based blocking by providers (e.g., Google).
558
+ # Used by: open-sse/executors — replaces Node.js default TLS fingerprint.
559
+ # ENABLE_TLS_FINGERPRINT=true
560
+
561
+ # Allow the Claude Turnstile Playwright browser context to ignore HTTPS certificate errors.
562
+ # Only enable for local debugging or trusted MITM/corporate proxy environments.
563
+ # Used by: open-sse/services/claudeTurnstileSolver.ts
564
+ # OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS=false
565
+
566
+ # ═══════════════════════════════════════════════════════════════════════════════
567
+ # 9. CLI TOOL INTEGRATION
568
+ # ═══════════════════════════════════════════════════════════════════════════════
569
+ # Control how OmniRoute discovers and launches CLI sidecars (Claude, Codex, etc.).
570
+ # Used by: src/shared/services/cliRuntime.ts
571
+
572
+ # CLI discovery mode: auto = search PATH | manual = use explicit paths below.
573
+ # CLI_MODE=auto
574
+
575
+ # Additional PATH entries for finding CLI binaries (colon-separated).
576
+ # CLI_EXTRA_PATHS=/host-cli/bin:/usr/local/bin
577
+
578
+ # Home directory override for reading CLI config files (~/.claude, etc.).
579
+ # CLI_CONFIG_HOME=/root
580
+
581
+ # Allow OmniRoute to write CLI config files (token refresh, etc.).
582
+ # CLI_ALLOW_CONFIG_WRITES=true
583
+
584
+ # Auto-sync CLI profile files after provider model discovery changes. OPT-IN, default OFF for
585
+ # both. When enabled, writes only the tool's profile files (~/.codex/*.config.toml or
586
+ # ~/.claude/profiles/<name>/settings.json); never changes the active/default config. Both also
587
+ # require CLI_ALLOW_CONFIG_WRITES (default on). Toggle from the CLI Code dashboard, or set here.
588
+ # Leave unset to disable. (Feature flags — a DB/dashboard override takes precedence over env.)
589
+ # OMNIROUTE_AUTO_SYNC_CODEX_PROFILES=true
590
+ # OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES=true
591
+
592
+ # Override binary paths for individual CLI tools.
593
+ # CLI_CLAUDE_BIN=claude
594
+ # CLI_CODEX_BIN=codex
595
+ # CLI_DROID_BIN=droid
596
+ # CLI_OPENCLAW_BIN=openclaw
597
+ # CLI_CURSOR_BIN=agent
598
+ # CLI_CLINE_BIN=cline
599
+ # CLI_CONTINUE_BIN=cn
600
+ # CLI_QODER_BIN=qoder
601
+ # CLI_QWEN_BIN=qwen
602
+ # CLI_AUGGIE_BIN=auggie
603
+ # AUGGIE_BIN=auggie
604
+
605
+ # Override the Hermes Agent home directory (where OmniRoute reads/writes the
606
+ # Hermes CLI config). Matches the env var the Hermes PowerShell installer sets
607
+ # on Windows (%LOCALAPPDATA%\hermes); defaults to ~/.hermes when unset.
608
+ # Used by: src/lib/cli-helper/config-generator/hermesHome.ts
609
+ # HERMES_HOME=~/.hermes
610
+
611
+ # ═══════════════════════════════════════════════════════════════════════════════
612
+ # 10. INTERNAL AGENT & MCP INTEGRATIONS
613
+ # ═══════════════════════════════════════════════════════════════════════════════
614
+ # Used by MCP server, A2A skills, and CLI sidecars to call the running instance.
615
+
616
+ # Explicit base URL for MCP/A2A tools to reach OmniRoute (overrides localhost auto-detect).
617
+ # For browser-visible generated image URLs, prefer OMNIROUTE_PUBLIC_BASE_URL above.
618
+ # Used by: open-sse/mcp-server/server.ts, src/lib/a2a/
619
+ # OMNIROUTE_BASE_URL=http://localhost:20128
620
+
621
+ # API key for internal tool calls (MCP tools, A2A skills).
622
+ # OMNIROUTE_API_KEY=
623
+
624
+ # API key ID for MCP audit logging.
625
+ # Used by: open-sse/mcp-server/audit.ts — tags audit events with a key identity.
626
+ # OMNIROUTE_API_KEY_ID=
627
+
628
+ # Legacy alias for OMNIROUTE_API_KEY.
629
+ # ROUTER_API_KEY=
630
+
631
+ # CLI remote-mode context/profile for `omniroute` commands (overrides the active
632
+ # context in the local contexts store). Equivalent to the `--context <name>` flag.
633
+ # Used by: bin/cli/program.mjs, bin/cli/api.mjs (remote mode).
634
+ # OMNIROUTE_CONTEXT=
635
+
636
+ # Enforce scope-based access control on MCP tool calls.
637
+ # Used by: open-sse/mcp-server/server.ts — rejects calls outside allowed scopes.
638
+ # OMNIROUTE_MCP_ENFORCE_SCOPES=false
639
+
640
+ # Comma-separated scopes granted to this MCP connection.
641
+ # Full list: admin, combos, health, models, routing, budget, metrics, pricing, memory, skills
642
+ # OMNIROUTE_MCP_SCOPES=admin,combos,health
643
+
644
+ # Compress MCP tool descriptions before serializing the manifest.
645
+ # Used by: open-sse/mcp-server/descriptionCompressor.ts — reduces token spend
646
+ # for clients that read the full tool catalog.
647
+ # Accepted disabling values: 0, false, off. Default: enabled.
648
+ # OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS=1
649
+
650
+ # Algorithm/profile used when description compression is enabled.
651
+ # Used by: open-sse/mcp-server/descriptionCompressor.ts
652
+ # Set to 0/false/off to skip compression entirely. Default: rtk
653
+ # OMNIROUTE_MCP_DESCRIPTION_COMPRESSION=rtk
654
+
655
+ # Model catalog sync interval in hours.
656
+ # Used by: src/shared/services/modelSyncScheduler.ts — periodic model refresh.
657
+ # Default: 24
658
+ # MODEL_SYNC_INTERVAL_HOURS=24
659
+
660
+ # Provider limits sync interval in minutes (rate limit windows, quotas).
661
+ # Used by: src/server-init.ts — polls provider health endpoints.
662
+ # Default: 70
663
+ PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES=70
664
+
665
+ # Gap (ms) between consecutive OAuth quota fetches in a bulk provider-limits sync.
666
+ # OAuth providers are fetched one at a time with this spacing so a single host
667
+ # never bursts simultaneous usage/refresh requests to the same upstream. Set to 0
668
+ # to opt out (restores fully concurrent fetches). Default: 1500
669
+ PROVIDER_LIMITS_SYNC_SPACING_MS=1500
670
+
671
+ # Min interval (ms) between consecutive UPSTREAM quota fetches on the per-request
672
+ # preflight/monitor path (e.g. Codex /wham/usage), complementing the bulk-sync
673
+ # spacing above. Many accounts on one IP fetching quota in the same second can look
674
+ # like automation to the upstream and get an OAuth token revoked (#6009). This gate
675
+ # serializes genuine network calls (cache hits are unaffected). Set to 0 to disable.
676
+ # Default: 250 (clamped 0..5000).
677
+ # OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS=250
678
+
679
+ # Delay (ms) before refreshing provider limits after a real usage event (e.g. a
680
+ # completed request). Gives the upstream quota API time to register the consumption
681
+ # before the dashboard polls. Default: 5000
682
+ #PROVIDER_LIMITS_POST_USAGE_REFRESH_DELAY_MS=5000
683
+
684
+ # Disable all background services (sync, pricing, model refresh).
685
+ # Used by: src/instrumentation-node.ts, src/lib/initCloudSync.ts
686
+ # Useful for: CI builds, test environments, or resource-constrained containers.
687
+ # OMNIROUTE_DISABLE_BACKGROUND_SERVICES=false
688
+
689
+ # Force runtime background tasks (healthchecks/sync) even under automated test
690
+ # detection. Used by: src/lib/config/runtimeSettings.ts — overrides the test
691
+ # heuristic in instrumentation-node.ts. Default: unset (tests skip background).
692
+ #OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS=1
693
+
694
+ # Proactive connection-cooldown recovery (#8): re-validates connections whose
695
+ # transient `rate_limited_until` window has elapsed OUTSIDE the request hot path,
696
+ # so the first request after a cooldown does not pay the probe latency. Lazy
697
+ # recovery in getProviderCredentials still applies regardless. Used by:
698
+ # src/lib/quota/connectionRecovery.ts.
699
+ # Tick cadence (ms). Default 60000, floor 5000.
700
+ # OMNIROUTE_CONNECTION_RECOVERY_INTERVAL_MS=60000
701
+ # Disable the proactive recovery scheduler entirely (default: false).
702
+ # OMNIROUTE_DISABLE_CONNECTION_RECOVERY=false
703
+
704
+ # Background job interval for budget reset checks (ms). Default: 600000 (10m).
705
+ # Used by: src/lib/jobs/budgetResetJob.ts. Floor: 10000.
706
+ #OMNIROUTE_BUDGET_RESET_JOB_INTERVAL_MS=600000
707
+
708
+ # Emergency budget-exhaustion fallback (set false or 0 to disable the reroute to
709
+ # nvidia/openai/gpt-oss-120b when a request fails with a 402 budget error).
710
+ # Used by: open-sse/services/emergencyFallback.ts. Default: enabled.
711
+ #OMNIROUTE_EMERGENCY_FALLBACK=true
712
+
713
+ # Reasoning cache cleanup cadence (ms). Default: 1800000 (30m). Floor: 60000.
714
+ # Used by: src/lib/jobs/reasoningCacheCleanupJob.ts.
715
+ #OMNIROUTE_REASONING_CACHE_CLEANUP_INTERVAL_MS=1800000
716
+
717
+ # Spend write batcher cadence (ms) and buffer size before forced flush.
718
+ # Used by: src/lib/spend/batchWriter.ts. Defaults: 60000 ms / 1000 entries.
719
+ #OMNIROUTE_SPEND_FLUSH_INTERVAL_MS=60000
720
+ #OMNIROUTE_SPEND_MAX_BUFFER_SIZE=1000
721
+
722
+ # Batch request processor retry, backoff, and concurrency settings.
723
+ # Used by: open-sse/services/batchProcessor.ts. Defaults shown.
724
+ #BATCH_RETRY_DURATION_MS=86400000
725
+ #BATCH_BACKOFF_BASE_MS=5000
726
+ #BATCH_BACKOFF_MAX_MS=3600000
727
+ #BATCH_MAX_CONCURRENT=1
728
+
729
+ # Config hot-reload polling interval (ms). Default: 5000.
730
+ # Used by: src/lib/config/hotReload.ts. Lower than 1000ms is rejected.
731
+ #OMNIROUTE_CONFIG_HOT_RELOAD_MS=5000
732
+
733
+ # Override the migrations directory used by src/lib/db/migrationRunner.ts.
734
+ # Default: <repo>/src/lib/db/migrations.
735
+ #OMNIROUTE_MIGRATIONS_DIR=
736
+
737
+ # Mass-pending-migrations safety threshold (#3416). If more than this many
738
+ # migrations are pending on an existing DB, startup aborts (a wiped tracking
739
+ # table could cause data loss). Raise it to restore an older backup; set to 0
740
+ # to disable the check. Used by: src/lib/db/migrationRunner.ts. Default: 50.
741
+ #OMNIROUTE_MAX_PENDING_MIGRATIONS=50
742
+
743
+ # Trust user-managed RTK project filter rules without strict signature checks.
744
+ # Used by: open-sse/services/compression/engines/rtk/filterLoader.ts. Default: 0.
745
+ #OMNIROUTE_RTK_TRUST_PROJECT_FILTERS=0
746
+
747
+ # T02 stacked-pipeline engine circuit-breaker (OPT-IN, default off). When enabled, a compression
748
+ # engine that throws repeatedly across requests is skipped (fail-open) for a cooldown.
749
+ # Used by: open-sse/services/compression/pipelineEngineBreaker.ts.
750
+ #COMPRESSION_PIPELINE_BREAKER_ENABLED=false # master switch (default false)
751
+ #COMPRESSION_PIPELINE_BREAKER_THRESHOLD=3 # consecutive failures before the engine opens
752
+ #COMPRESSION_PIPELINE_BREAKER_COOLDOWN_MS=30000 # ms the engine stays skipped before a probe
753
+
754
+ # T08/H8 — CCR retrieval-feedback ramp factor. Each prior retrieval of a stored block raises its
755
+ # effective minChars linearly, so frequently-retrieved content is compressed progressively less
756
+ # (>= 3 retrievals = never compressed). 1 disables the ramp (binary skip at the threshold only).
757
+ # Used by: open-sse/services/compression/engines/ccr/index.ts. Default: 2.
758
+ #COMPRESSION_CCR_RETRIEVAL_RAMP_FACTOR=2
759
+ # T08/H5 — usage-observed prefix freeze (OPT-IN, default off). When enabled, a system prompt seen
760
+ # >= THRESHOLD times is treated as a stable cacheable prefix and preserved from compression even
761
+ # for providers the static cache-aware heuristic does not recognize (freeze = preserve, never
762
+ # mutates). Used by: open-sse/services/compression/prefixFreeze.ts.
763
+ #COMPRESSION_PREFIX_FREEZE_ENABLED=false # master switch (default false)
764
+ #COMPRESSION_PREFIX_FREEZE_THRESHOLD=3 # observations before a prefix is frozen
765
+
766
+ # Skip the postinstall native-runtime warm-up (useful in CI / headless installs). Default: 0.
767
+ # Used by: scripts/postinstall.mjs.
768
+ #OMNIROUTE_SKIP_POSTINSTALL=0
769
+
770
+ # Operator-supplied JSON credentials for the offline compression-eval CLI
771
+ # (parsed with JSON.parse; leave unset for a dry run). Developer tooling only.
772
+ # Used by: scripts/compression-eval/index.ts. Default: {} (empty).
773
+ #OMNIROUTE_EVAL_CREDENTIALS={}
774
+
775
+ # Skip the DB healthcheck entirely on startup (useful for short-lived tasks / tests).
776
+ # Used by: src/lib/db/core.ts, src/lib/db/healthCheck.ts. Set to 1 to disable. Default: 0.
777
+ #OMNIROUTE_SKIP_DB_HEALTHCHECK=0
778
+
779
+ # Force a DB healthcheck regardless of cadence. Default: 0.
780
+ # Used by: src/lib/db/core.ts::shouldRunDbHealthCheck().
781
+ #OMNIROUTE_FORCE_DB_HEALTHCHECK=0
782
+
783
+ # DB healthcheck cadence override (ms). Default: 21600000 (6h).
784
+ # Used by: src/lib/db/core.ts::getDbHealthCheckIntervalMs().
785
+ #OMNIROUTE_DB_HEALTHCHECK_INTERVAL_MS=21600000
786
+
787
+ # Skip the Redis-backed auth cache used by API key lookups (forces DB reads).
788
+ # Used by: src/lib/db/apiKeys.ts. Set to 1 to disable. Default: enabled.
789
+ #OMNIROUTE_DISABLE_REDIS_AUTH_CACHE=0
790
+
791
+ # Flag set by bootstrap script after initial setup is complete.
792
+ # Used by: src/app/(dashboard)/dashboard/page.tsx — shows setup wizard vs. dashboard.
793
+ # OMNIROUTE_BOOTSTRAPPED=false
794
+
795
+ # Allow request body to override the Antigravity project field.
796
+ # Used by: open-sse/executors/antigravity.ts — escape hatch for multi-project setups.
797
+ # OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE=0
798
+
799
+ # Adjust how Antigravity advertises remaining credits. Used by:
800
+ # open-sse/services/antigravityCredits.ts — accepts forced override strings.
801
+ # Default: empty (use upstream-reported credits).
802
+ #ANTIGRAVITY_CREDITS=
803
+
804
+ # Override the path to the Antigravity CLI (agy) token file read by the
805
+ # "auto-detect local login" import. Used by:
806
+ # src/app/api/providers/agy-auth/apply-local/route.ts — for non-standard installs.
807
+ # Default: ~/.gemini/antigravity-cli/antigravity-oauth-token
808
+ #AGY_TOKEN_FILE=
809
+
810
+ # ═══════════════════════════════════════════════════════════════════════════════
811
+ # 11. OAUTH PROVIDER CREDENTIALS
812
+ # ═══════════════════════════════════════════════════════════════════════════════
813
+ # Built-in default credentials for localhost development.
814
+ # For remote/VPS deployments, register your own at each provider's developer console.
815
+ # The bootstrap-env script auto-populates these in .env if missing.
816
+ # Can also be overridden via data/provider-credentials.json where supported.
817
+
818
+ # ── Claude Code (Anthropic) ──
819
+ CLAUDE_OAUTH_CLIENT_ID=9d1c250a-e61b-44d9-88ed-5944d1962f5e
820
+ # Custom redirect URI override for Claude OAuth callback.
821
+ # CLAUDE_CODE_REDIRECT_URI=https://platform.claude.com/oauth/code/callback
822
+
823
+ # ── Codex / OpenAI ──
824
+ CODEX_OAUTH_CLIENT_ID=app_EMoamEEZ73f0CkXaXp7hrann
825
+
826
+ # Milliseconds to wait between consecutive Codex token refreshes.
827
+ # Used by: open-sse/services/refreshSerializer.ts. Default: 0 (no spacing).
828
+ # CODEX_REFRESH_SPACING_MS=0
829
+
830
+ # ── Trae (ByteDance) ──
831
+ # Trae stream idle timeout (ms). Default: 300000 (5 min).
832
+ # Used by: open-sse/executors/trae.ts.
833
+ # TRAE_STREAM_TIMEOUT_MS=300000
834
+
835
+ # Trae OAuth token override. Used by: open-sse/executors/trae.ts.
836
+ # TRAE_TOKEN=
837
+
838
+ # ── The Old LLM (theoldllm) ──
839
+ # Playwright navigation timeout (ms) for the browser-backed token capture.
840
+ # Used by: open-sse/executors/theoldllm.ts. Default: 30000 (30s).
841
+ # THEOLDLLM_NAV_TIMEOUT_MS=30000
842
+
843
+ # ── Gemini / Antigravity / Windsurf (all Google-based) ──
844
+ # These providers ship public OAuth client_id/secret values (or Firebase Web
845
+ # keys) embedded in their public CLIs/binaries. Defaults are baked into the
846
+ # code via open-sse/utils/publicCreds.ts — leave the env vars unset to use
847
+ # them. Only set these if you registered your own OAuth app and want to use
848
+ # your own credentials instead. See docs/security/PUBLIC_CREDS.md for context.
849
+ #
850
+ # GEMINI_OAUTH_CLIENT_ID=
851
+ # GEMINI_OAUTH_CLIENT_SECRET=
852
+ # ANTIGRAVITY_OAUTH_CLIENT_ID=
853
+ # ANTIGRAVITY_OAUTH_CLIENT_SECRET=
854
+ # WINDSURF_FIREBASE_API_KEY=
855
+
856
+ # ── Qwen (Alibaba) ──
857
+ QWEN_OAUTH_CLIENT_ID=f0304373b74a44d2b584a3fb70ca9e56
858
+
859
+ # ── Kimi Coding (Moonshot) ──
860
+ KIMI_CODING_OAUTH_CLIENT_ID=17e5f671-d194-4dfb-9706-5516cb48c098
861
+
862
+ # ── GitHub Copilot ──
863
+ GITHUB_OAUTH_CLIENT_ID=Iv1.b507a08c87ecfe98
864
+
865
+ # ── GitLab Duo ──
866
+ # Register an OAuth app at: https://gitlab.com/-/profile/applications
867
+ # Set redirect URI to: http://localhost:20128/callback (or your NEXT_PUBLIC_BASE_URL + /callback)
868
+ # Required scopes: ai_features, read_user (matches GITLAB_DUO_CONFIG.scope in src/lib/oauth/constants/oauth.ts)
869
+ # GITLAB_DUO_OAUTH_CLIENT_ID=***
870
+ # GITLAB_DUO_OAUTH_CLIENT_SECRET=*** # optional — PKCE flow does not require a secret
871
+ #
872
+ # Self-managed GitLab Duo instance overrides.
873
+ # Used by: src/lib/oauth/gitlab.ts and src/lib/oauth/constants/oauth.ts —
874
+ # fall back to these when the _DUO_ variants above are unset.
875
+ #GITLAB_DUO_BASE_URL=https://gitlab.com
876
+ #GITLAB_BASE_URL=https://gitlab.com
877
+ #GITLAB_OAUTH_CLIENT_ID=
878
+ #GITLAB_OAUTH_CLIENT_SECRET=
879
+
880
+ # ── Qoder ──
881
+ # Public OAuth client secret embedded in the Qoder CLI binary. Required only
882
+ # when QODER_OAUTH_AUTHORIZE_URL / TOKEN_URL / USERINFO_URL / CLIENT_ID are
883
+ # also set (see QODER_CONFIG.enabled in src/lib/oauth/constants/oauth.ts).
884
+ # Extract the value from the public Qoder CLI binary if you intend to use it.
885
+ # QODER_OAUTH_CLIENT_SECRET=
886
+
887
+ # ── Qoder Browser OAuth (experimental) ──
888
+ # OmniRoute only enables the browser OAuth flow when ALL 5 variables below are set:
889
+ # - QODER_OAUTH_AUTHORIZE_URL
890
+ # - QODER_OAUTH_TOKEN_URL
891
+ # - QODER_OAUTH_USERINFO_URL
892
+ # - QODER_OAUTH_CLIENT_ID
893
+ # - QODER_OAUTH_CLIENT_SECRET
894
+ #
895
+ # Redirect URI to register in the Qoder OAuth app:
896
+ # - Localhost dev with PORT=20128: http://localhost:20128/callback
897
+ # - LAN access (example): http://192.168.0.15:20128/callback
898
+ # - Public domain (recommended): https://omniroute.example.com/callback
899
+ #
900
+ # Behind reverse proxy / public domain, also set NEXT_PUBLIC_BASE_URL to the same public origin.
901
+ # If these values are not available, prefer QODER_PERSONAL_ACCESS_TOKEN below.
902
+ # QODER_OAUTH_AUTHORIZE_URL=
903
+ # QODER_OAUTH_TOKEN_URL=
904
+ # QODER_OAUTH_USERINFO_URL=
905
+ # QODER_OAUTH_CLIENT_ID=
906
+ # QODER_OAUTH_CLIENT_SECRET=
907
+
908
+ # ── Qoder Personal Access Token (direct API key fallback) ──
909
+ # Used by: open-sse/executors/qoder.ts — bypasses OAuth when set.
910
+ # QODER_PERSONAL_ACCESS_TOKEN=
911
+ # QODER_CLI_WORKSPACE=
912
+ # OMNIROUTE_QODER_WORKSPACE=
913
+ # Override the Qoder CLI config dir (isolated PAT session, avoids clobbering a browser login).
914
+ # QODER_CLI_CONFIG_DIR=
915
+
916
+ # ── Blackbox Web validated-token override (issue #2252) ──
917
+ # Used by: open-sse/executors/blackbox-web.ts. Blackbox `/api/chat` rejects
918
+ # requests whose `validated` field doesn't match the frontend `tk` token,
919
+ # returning HTTP 403 even with a valid session cookie + active subscription.
920
+ # Set this to the `tk` value exported from app.blackbox.ai's Next.js bundle
921
+ # to bypass the random-UUID fallback. Leave empty to keep the legacy behavior.
922
+ # BLACKBOX_WEB_VALIDATED_TOKEN=
923
+
924
+ # ── Vision Bridge OpenAI-compatible endpoint override (issue #2232) ──
925
+ # Used by: src/lib/guardrails/visionBridgeHelpers.ts. By default the
926
+ # vision-bridge guardrail sends non-Anthropic image-description calls to
927
+ # `https://api.openai.com/v1`, which fails with 401 if your operator doesn't
928
+ # have an OpenAI key or wants to use a different vision model
929
+ # (e.g., `google/gemini-2.0-flash` via the Gemini OpenAI-compat endpoint, or
930
+ # any model registered in OmniRoute via the self-loop endpoint).
931
+ #
932
+ # Set these two env vars to point the bridge at any OpenAI-compatible URL:
933
+ # - VISION_BRIDGE_BASE_URL=http://localhost:20128/v1 (OmniRoute self-loop)
934
+ # - VISION_BRIDGE_BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai
935
+ # - VISION_BRIDGE_BASE_URL=https://openrouter.ai/api/v1
936
+ # Anthropic models (anthropic/*) keep their dedicated path and are unaffected.
937
+ # VISION_BRIDGE_BASE_URL=
938
+ # VISION_BRIDGE_API_KEY=
939
+
940
+ # ─────────────────────────────────────────────────────────────────────────────
941
+ # ⚠️ GOOGLE OAUTH (Antigravity) & OTHER PROVIDERS — REMOTE SERVERS
942
+ # ─────────────────────────────────────────────────────────────────────────────
943
+ # The default Client IDs above ONLY work when OmniRoute runs on localhost.
944
+ # For remote/VPS hosting (including Docker containers on remote servers):
945
+ # 1. By default, the browser will attempt OAuth redirects back to localhost, which will fail.
946
+ # 2. Set NEXT_PUBLIC_BASE_URL=https://your-domain.com to fix the redirect URI.
947
+ # 3. You MUST create your own OAuth App in each provider's developer console (Google Cloud, etc.)
948
+ # and set the Authorized redirect URI to your domain (e.g., https://your-domain.com/callback).
949
+ # 4. Replace the _OAUTH_CLIENT_ID and _SECRET values above with your own credentials.
950
+ # ─────────────────────────────────────────────────────────────────────────────
951
+
952
+ # ── OAuth sidecar/CLI bridge (internal) ──
953
+ # Used by: src/lib/oauth/config/index.ts — internal CLI↔OmniRoute auth bridge.
954
+ # OMNIROUTE_SERVER=http://localhost:20128
955
+ # OMNIROUTE_TOKEN=
956
+ # OMNIROUTE_USER_ID=cli
957
+ # CLI_TOKEN= # legacy alias for OMNIROUTE_TOKEN
958
+ # CLI_USER_ID= # legacy alias for OMNIROUTE_USER_ID
959
+ # SERVER_URL= # legacy alias for OMNIROUTE_SERVER
960
+
961
+ # ═══════════════════════════════════════════════════════════════════════════════
962
+ # 12. PROVIDER USER-AGENT OVERRIDES
963
+ # ═══════════════════════════════════════════════════════════════════════════════
964
+ # Customize the User-Agent header sent to each upstream provider.
965
+ # Format: {PROVIDER_ID}_USER_AGENT=custom-value
966
+ # Used by: open-sse/executors/base.ts — buildHeaders() dynamic lookup.
967
+ # Update these when providers release new CLI versions to avoid blocks.
968
+
969
+ CLAUDE_USER_AGENT="claude-cli/2.1.195 (external, cli)"
970
+
971
+ # Disable the deterministic tool-name cloak applied on both Anthropic-bound paths
972
+ # (executors/base.ts native OAuth + executors/cliproxyapi.ts CLIProxyAPI) —
973
+ # third-party-harness tool names are aliased to
974
+ # Claude Code canonical or PascalCase forms so Anthropic does not refuse the
975
+ # stream with a misleading 400 out-of-extra-usage placeholder. Set to true to
976
+ # forward the original names verbatim (debugging only).
977
+ # CLAUDE_DISABLE_TOOL_NAME_CLOAK=false
978
+ CODEX_USER_AGENT="codex-cli/0.142.0 (Windows 10.0.26200; x64)"
979
+ GITHUB_USER_AGENT="GitHubCopilotChat/0.54.0"
980
+ ANTIGRAVITY_USER_AGENT="antigravity/2.0.1 linux/arm64 google-api-nodejs-client/10.3.0"
981
+ KIRO_USER_AGENT="AWS-SDK-JS/3.0.0 kiro-ide/1.0.0"
982
+ # KIRO_VERIFY_FULL_CRC=false # opt-in: full per-frame message CRC validation on the Kiro event stream (debug corrupted streams; prelude CRC + TLS already protect framing)
983
+ # Optional override for the Kiro social device-code OAuth clientId. Kiro's
984
+ # device endpoint accepts any non-empty string and behaves like a User-Agent
985
+ # rather than a secret. Only override if AWS ever starts enforcing this field.
986
+ # Used by: src/lib/oauth/constants/oauth.ts (KIRO_CONFIG.socialClientId).
987
+ # KIRO_OAUTH_CLIENT_ID=kiro-cli
988
+ # Enable full per-frame message CRC validation for Kiro streams. Off by default
989
+ # because it is O(frame bytes) on the main thread; use only for debugging
990
+ # suspected corrupted-stream issues.
991
+ # Used by: open-sse/executors/kiro.ts
992
+ # KIRO_VERIFY_FULL_CRC=false
993
+ QODER_USER_AGENT="Qoder-Cli"
994
+ QWEN_USER_AGENT="QwenCode/0.19.3 (linux; x64)"
995
+ CURSOR_USER_AGENT="Cursor/3.4"
996
+
997
+ # Override Codex client version sent in headers independently of the
998
+ # CODEX_USER_AGENT string. Used by: open-sse/config/codexClient.ts.
999
+ # CODEX_CLIENT_VERSION=0.142.0
1000
+
1001
+ # Kill-switch to strip non-standard `codex.*` SSE events (e.g. codex.rate_limits)
1002
+ # from the Codex Responses stream. These frames break the OpenAI SDK's
1003
+ # responses.stream() with a 502 "Controller is already closed". Off by default;
1004
+ # set to true/1/yes to enable. Used by: open-sse/executors/codex.ts.
1005
+ # OMNIROUTE_CODEX_DROP_NONSTANDARD_EVENTS=true
1006
+
1007
+ # ═══════════════════════════════════════════════════════════════════════════════
1008
+ # 13. CLI FINGERPRINT COMPATIBILITY (Anti-Detection)
1009
+ # ═══════════════════════════════════════════════════════════════════════════════
1010
+ # When enabled, OmniRoute reorders HTTP headers and JSON body fields to match
1011
+ # the exact signature of official CLI tools, reducing account flagging risk.
1012
+ # Your proxy IP is preserved — you get both stealth AND IP masking.
1013
+ # Used by: open-sse/config/cliFingerprints.ts, open-sse/executors/base.ts
1014
+
1015
+ # Enable per-provider:
1016
+ # CLI_COMPAT_CODEX=1
1017
+ # CLI_COMPAT_CLAUDE=1
1018
+ # CLI_COMPAT_GITHUB=1
1019
+ # CLI_COMPAT_ANTIGRAVITY=1
1020
+ # CLI_COMPAT_CURSOR=1
1021
+ # CLI_COMPAT_KIMI_CODING=1
1022
+ # CLI_COMPAT_KILOCODE=1
1023
+ # CLI_COMPAT_CLINE=1
1024
+ # CLI_COMPAT_QWEN=1
1025
+
1026
+ # Or enable for all providers at once:
1027
+ # CLI_COMPAT_ALL=1
1028
+
1029
+ # ── Kimi Coding CLI identity overrides ──
1030
+ # Used by: src/lib/oauth/providers/kimi-coding.ts — sent in OAuth + API headers.
1031
+ # Leave unset to use the captured defaults baked into the OmniRoute build.
1032
+ #KIMI_CLI_VERSION=1.36.0
1033
+ #KIMI_CODING_DEVICE_ID=
1034
+
1035
+ # ═══════════════════════════════════════════════════════════════════════════════
1036
+ # 14. API KEY PROVIDERS
1037
+ # ═══════════════════════════════════════════════════════════════════════════════
1038
+ # API keys for direct-authentication providers.
1039
+ # Preferred setup: Dashboard → Providers → Add API Key.
1040
+ # Setting here is an alternative for Docker/headless deployments.
1041
+
1042
+ # Static API keys for direct-authentication providers wired through the runtime.
1043
+ # OmniRoute loads provider credentials from the encrypted database or
1044
+ # data/provider-credentials.json. The variables below are documented escape
1045
+ # hatches that are referenced in code today.
1046
+ # DEEPSEEK_API_KEY=
1047
+ # NVIDIA_API_KEY=
1048
+
1049
+ # Windsurf / Devin CLI direct API key.
1050
+ # Used by: open-sse/executors/devin-cli.ts — bypasses OAuth when set.
1051
+ # WINDSURF_API_KEY=
1052
+
1053
+ # Embedding Providers (optional — used by /v1/embeddings)
1054
+ # OpenAI/Mistral/Together/Fireworks/NVIDIA configured via Dashboard → Providers
1055
+ # also work for embeddings.
1056
+
1057
+ # ═══════════════════════════════════════════════════════════════════════════════
1058
+ # 15. TIMEOUT SETTINGS
1059
+ # ═══════════════════════════════════════════════════════════════════════════════
1060
+ # All timeout values are in milliseconds.
1061
+ # Used by: src/shared/utils/runtimeTimeouts.ts — centralized timeout resolution.
1062
+ #
1063
+ # Hierarchy: REQUEST_TIMEOUT_MS acts as a global override.
1064
+ # If set, it becomes the default for FETCH_TIMEOUT_MS, STREAM_IDLE_TIMEOUT_MS,
1065
+ # and STREAM_READINESS_TIMEOUT_MS.
1066
+ # The fine-grained variables below override their respective defaults only when set.
1067
+
1068
+ # ── Global shortcut ──
1069
+ # REQUEST_TIMEOUT_MS=600000 # Overrides both fetch and stream idle defaults
1070
+
1071
+ # ── Upstream fetch (provider calls) ──
1072
+ # FETCH_TIMEOUT_MS=600000 # Total request timeout (default: 600000 = 10 min)
1073
+ # # Also drives anthropic-compatible-cc-* X-Stainless-Timeout.
1074
+ # FETCH_HEADERS_TIMEOUT_MS=600000 # Time to receive response headers
1075
+ # FETCH_BODY_TIMEOUT_MS=600000 # Time to receive full response body
1076
+ # FETCH_CONNECT_TIMEOUT_MS=30000 # TCP connection establishment (default: 30s)
1077
+ # FETCH_KEEPALIVE_TIMEOUT_MS=4000 # Keep-alive socket idle timeout (default: 4s)
1078
+
1079
+ # Default timeout (ms) for src/shared/utils/fetchTimeout.ts. Acts as the
1080
+ # fallback when FETCH_TIMEOUT_MS is unset. Default: 120000 (2 min).
1081
+ # OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS=120000
1082
+
1083
+ # ── Firecrawl web-fetch executor ──
1084
+ # Point at a self-hosted Firecrawl instance (defaults to the public cloud API).
1085
+ # When set to a non-cloud base URL, the API key becomes optional.
1086
+ # FIRECRAWL_BASE_URL=https://api.firecrawl.dev
1087
+ # FIRECRAWL_TIMEOUT_MS=30000 # Per-request timeout (default: 30000 = 30s)
1088
+
1089
+ # ── ChatGPT TLS sidecar (Firefox-fingerprinted client) ──
1090
+ # Used by: open-sse/services/chatgptTlsClient.ts — wire-level timeout for
1091
+ # the bogdanfinn/tls-client koffi binding and the JS-side grace window
1092
+ # layered on top of it when the native library is wedged.
1093
+ # OMNIROUTE_CHATGPT_TLS_TIMEOUT_MS=60000
1094
+ # OMNIROUTE_CHATGPT_TLS_GRACE_MS=10000
1095
+ # Max wait for the FIRST streamed byte from the ChatGPT TLS sidecar before the
1096
+ # request is aborted as a dead stream, in milliseconds. Default 30000 (30s).
1097
+ # Raise it if upstream cold-starts routinely exceed the window.
1098
+ # OMNIROUTE_CHATGPT_STREAM_FIRST_BYTE_TIMEOUT_MS=30000
1099
+
1100
+ # ── Claude TLS sidecar (Chromium-fingerprinted client) ──
1101
+ # Used by: open-sse/services/claudeTlsClient.ts — wire-level timeout for
1102
+ # the bogdanfinn/tls-client koffi binding and the JS-side grace window
1103
+ # layered on top of it when the native library is wedged.
1104
+ # OMNIROUTE_CLAUDE_TLS_TIMEOUT_MS=60000
1105
+ # OMNIROUTE_CLAUDE_TLS_GRACE_MS=10000
1106
+
1107
+ # ── Perplexity TLS sidecar (Firefox-fingerprinted client) ──
1108
+ # Used by: open-sse/services/perplexityTlsClient.ts — wire-level timeout for
1109
+ # the bogdanfinn/tls-client koffi binding and the JS-side grace window
1110
+ # layered on top of it when the native library is wedged.
1111
+ # OMNIROUTE_PPLX_TLS_TIMEOUT_MS=30000
1112
+ # OMNIROUTE_PPLX_TLS_GRACE_MS=10000
1113
+
1114
+ # ── Grok web TLS sidecar (Chrome-fingerprinted client) ──
1115
+ # Used by: open-sse/services/grokTlsClient.ts — wire-level timeout for the
1116
+ # bogdanfinn/tls-client koffi binding and the JS-side grace window layered on
1117
+ # top of it when the native library is wedged.
1118
+ # OMNIROUTE_GROK_TLS_TIMEOUT_MS=60000
1119
+ # OMNIROUTE_GROK_TLS_GRACE_MS=10000
1120
+
1121
+ # ── Browser-backed web-cookie chat (Playwright shared pool) ──
1122
+ # Used by: open-sse/services/browserPool.ts + browserBackedChat.ts. The shared
1123
+ # browser pool warms a headless context for web-cookie providers (e.g. claude-web)
1124
+ # that need a real browser to satisfy anti-bot challenges. Set OMNIROUTE_BROWSER_POOL=off
1125
+ # to fully disable the pool; set WEB_COOKIE_USE_BROWSER=1 to opt a web-cookie chat
1126
+ # request into the browser-backed path.
1127
+ # OMNIROUTE_BROWSER_POOL=on
1128
+ # WEB_COOKIE_USE_BROWSER=0
1129
+
1130
+ # ── Circuit breaker thresholds and reset windows ──
1131
+ # Used by: open-sse/config/constants.ts → src/lib/resilience/settings.ts.
1132
+ # Defaults match historical PROVIDER_PROFILES values (post-scaling for
1133
+ # 500+ connections). Lower the threshold to react faster, raise it to
1134
+ # tolerate more transient failures before short-circuiting.
1135
+ # OMNIROUTE_CIRCUIT_BREAKER_OAUTH_THRESHOLD=8
1136
+ # OMNIROUTE_CIRCUIT_BREAKER_OAUTH_RESET_MS=60000
1137
+ # OMNIROUTE_CIRCUIT_BREAKER_API_KEY_THRESHOLD=12
1138
+ # OMNIROUTE_CIRCUIT_BREAKER_API_KEY_RESET_MS=30000
1139
+ # OMNIROUTE_CIRCUIT_BREAKER_LOCAL_THRESHOLD=2
1140
+ # OMNIROUTE_CIRCUIT_BREAKER_LOCAL_RESET_MS=15000
1141
+
1142
+ # ── Context-cache pin health gate ──
1143
+ # Used by: open-sse/services/combo.ts. When a context-cache pin points at a
1144
+ # provider that is durably unhealthy, the pin is dropped to allow failover.
1145
+ # PIN_DROP_BACKOFF_LEVEL gates how deep a connection's backoff must be before the
1146
+ # pin is considered durably unhealthy; PIN_DROP_GRACE_MS is the anti-flap window
1147
+ # that tolerates brief transient cooldowns before dropping the pin.
1148
+ # PIN_DROP_BACKOFF_LEVEL=2
1149
+ # PIN_DROP_GRACE_MS=20000
1150
+
1151
+ # ── Stream idle detection ──
1152
+ # STREAM_IDLE_TIMEOUT_MS=600000 # Max silence between SSE chunks (default: 600000)
1153
+ # # Extended-thinking models rarely pause >90s.
1154
+ # STREAM_READINESS_TIMEOUT_MS=80000 # Time to receive the first non-ping SSE event
1155
+ # STREAM_READINESS_MAX_TIMEOUT_MS=180000 # Cap for adaptive first-event extensions
1156
+ # # (large/tool-heavy/high-reasoning requests).
1157
+ # OMNIROUTE_AGENT_GOAL_POLICY_ENABLED=true # Kill-switch for the /goal heuristic below.
1158
+ # # Set to false to fully disable detection —
1159
+ # # readiness timeouts and stream recovery are
1160
+ # # never elevated by request body/headers when off.
1161
+ # OMNIROUTE_AGENT_GOAL_READINESS_MAX_TIMEOUT_MS=600000 # Auto cap for detected /goal agent runs
1162
+ # OMNIROUTE_AGENT_GOAL_STREAM_RECOVERY=true # Auto early stream recovery for /goal runs.
1163
+ # # NOTE: this can only ADD recovery on top of the
1164
+ # # operator default — it never overrides an explicit
1165
+ # # STREAM_RECOVERY_ENABLED / DB settings opt-out.
1166
+
1167
+ # ── TLS client (wreq-js fingerprint proxy) ──
1168
+ # TLS_CLIENT_TIMEOUT_MS=600000 # Inherits from FETCH_TIMEOUT_MS by default
1169
+
1170
+ # ── API Bridge (/v1 proxy server) ──
1171
+ # API_BRIDGE_PROXY_TIMEOUT_MS=600000 # Proxy hop timeout (default: 10min)
1172
+ # API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS=600000 # Overall server request timeout (default: 10min)
1173
+ # API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS=60000 # Time to send response headers
1174
+ # API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS=5000 # Keep-alive idle timeout
1175
+ # API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS=0 # Raw socket timeout (0 = disabled)
1176
+
1177
+ # ── Graceful shutdown ──
1178
+ # Time to wait for in-flight requests before force-exiting on SIGTERM/SIGINT.
1179
+ # Used by: src/lib/gracefulShutdown.ts
1180
+ # Default: 30000 (30 seconds)
1181
+ # SHUTDOWN_TIMEOUT_MS=30000
1182
+
1183
+ # ═══════════════════════════════════════════════════════════════════════════════
1184
+ # 16. LOGGING
1185
+ # ═══════════════════════════════════════════════════════════════════════════════
1186
+ # Used by: src/lib/logEnv.ts, src/lib/logRotation.ts, src/shared/utils/logger.ts
1187
+
1188
+ # Application log level — controls console and file log verbosity.
1189
+ # Values: debug | info | warn | error | Default: info
1190
+ # APP_LOG_LEVEL=info
1191
+
1192
+ # Log output format.
1193
+ # Values: text | json | Default: text
1194
+ # APP_LOG_FORMAT=text
1195
+
1196
+ # Write logs to file in addition to stdout.
1197
+ # Default: true | Set false to disable file logging.
1198
+ APP_LOG_TO_FILE=true
1199
+
1200
+ # Path to the application log file.
1201
+ # Default: <DATA_DIR>/logs/application/app.log (DATA_DIR defaults to ~/.omniroute)
1202
+ # APP_LOG_FILE_PATH=logs/application/app.log
1203
+
1204
+ # Maximum single log file size before rotation.
1205
+ # Accepts: plain bytes or suffixed (50M, 1G, 512K). Default: 50M
1206
+ # APP_LOG_MAX_FILE_SIZE=50M
1207
+
1208
+ # Days to keep rotated application log files before auto-deletion.
1209
+ # Default: 7
1210
+ # APP_LOG_RETENTION_DAYS=7
1211
+
1212
+ # Maximum number of rotated log file backups to keep.
1213
+ # Default: 20
1214
+ # APP_LOG_MAX_FILES=20
1215
+
1216
+ # How often OmniRoute checks whether the active log file has exceeded
1217
+ # APP_LOG_MAX_FILE_SIZE and triggers a rotation. Set lower for very verbose
1218
+ # services to prevent log files from growing large between checks.
1219
+ # Accepts milliseconds. Default: 60000 (1 minute)
1220
+ # APP_LOG_ROTATION_CHECK_INTERVAL_MS=60000
1221
+
1222
+ # Days to keep request/call log entries in the database before auto-cleanup.
1223
+ # Default: 7
1224
+ # CALL_LOG_RETENTION_DAYS=7
1225
+
1226
+ # Maximum call log entries stored in-memory buffer.
1227
+ # Default: 10000
1228
+ # CALL_LOG_MAX_ENTRIES=10000
1229
+
1230
+ # Maximum rows in the call_logs SQLite table before oldest entries are pruned.
1231
+ # Default: 100000
1232
+ # CALL_LOGS_TABLE_MAX_ROWS=100000
1233
+
1234
+ # Maximum age for orphaned active request log entries before the in-memory
1235
+ # pending-request reaper removes them. Accepts milliseconds.
1236
+ # Default: 3600000 (1 hour)
1237
+ # MAX_PENDING_REQUEST_AGE_MS=3600000
1238
+
1239
+ # Whether call log pipeline capture stores stream chunks when enabled in settings.
1240
+ # Only applies when call_log_pipeline_enabled=true.
1241
+ # Default: true
1242
+ # CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS=true
1243
+
1244
+ # Maximum call log artifact size for pipeline captures, in KB.
1245
+ # Only applies when call_log_pipeline_enabled=true.
1246
+ # Default: 512
1247
+ # CALL_LOG_PIPELINE_MAX_SIZE_KB=512
1248
+
1249
+ # Call log payload truncation limits — controls how much of request/response
1250
+ # bodies is retained in the database.
1251
+ # Used by: open-sse/handlers/chatCore.ts — cloneBoundedChatLogPayload()
1252
+ # CHAT_LOG_TEXT_LIMIT=65536 # Max string length before truncation (default: 64 KB)
1253
+ # CHAT_LOG_ARRAY_TAIL_ITEMS=24 # Number of array items retained from tail (default: 24)
1254
+ # CHAT_LOG_MAX_DEPTH=6 # Max nesting depth before truncation (default: 6)
1255
+ # CHAT_LOG_MAX_OBJECT_KEYS=80 # Max object keys retained (default: 80, 0 = no limit)
1256
+
1257
+ # Maximum rows in the proxy_logs SQLite table.
1258
+ # Default: 100000
1259
+ # PROXY_LOGS_TABLE_MAX_ROWS=100000
1260
+
1261
+ # ═══════════════════════════════════════════════════════════════════════════════
1262
+ # 17. MEMORY OPTIMIZATION (Low-RAM / Docker)
1263
+ # ═══════════════════════════════════════════════════════════════════════════════
1264
+
1265
+ # Node.js V8 heap limit in MB, passed to the server via --max-old-space-size.
1266
+ # Used by the standalone launcher (Docker CMD) and `omniroute serve`.
1267
+ # Clamped to [64, 16384]. Default: 512 (safe for a 1 GB / 1 core VPS). Size it to
1268
+ # roughly half the box's RAM, leaving the rest for native memory (better-sqlite3,
1269
+ # buffers — ~300 MB) and the OS:
1270
+ # 1 GB RAM → 512 (default)
1271
+ # 2 GB RAM → 1024
1272
+ # 4 GB RAM → 2048
1273
+ # In a memory-capped container, set this EXPLICITLY: Node reads the HOST's RAM,
1274
+ # not the cgroup limit, so leaving it to a RAM heuristic can oversize the heap and
1275
+ # get the container OOM-killed. (#2939)
1276
+ # OMNIROUTE_MEMORY_MB=512
1277
+
1278
+ # Heap-pressure shed threshold (MB) — chatCore returns 503 when V8 heapUsed exceeds
1279
+ # it, to avoid hard OOM under concurrent large-context load.
1280
+ # LEAVE UNSET: it now AUTO-CALIBRATES to 85% of the actual V8 heap ceiling, so it
1281
+ # tracks OMNIROUTE_MEMORY_MB above and never sits below the ~260 MB runtime baseline
1282
+ # (a fixed 200 here used to reject every request). Used by: open-sse/utils/heapPressure.ts.
1283
+ # Override only to hand-tune for a known workload.
1284
+ # HEAP_PRESSURE_THRESHOLD_MB=
1285
+
1286
+ # ── CLI helpers (bin/cli/) ──
1287
+ # Override UI language for CLI output. Accepts BCP-47 locale (e.g. en, pt-BR).
1288
+ # Falls back to LC_ALL / LC_MESSAGES / LANG / en if unset.
1289
+ # OMNIROUTE_LANG=en
1290
+
1291
+ # Show server logs inline when running in supervised mode (omniroute serve).
1292
+ # Set to "1" to forward server stdout/stderr to the terminal.
1293
+ # Equivalent to the --log flag on `omniroute serve`.
1294
+ # OMNIROUTE_SHOW_LOG=1
1295
+
1296
+ # Bearer token injected as x-omniroute-cli-token header for machine-auth (task 8.12).
1297
+ # Auto-generated on first run if machine-id is available; set manually to override.
1298
+ # OMNIROUTE_CLI_TOKEN=
1299
+
1300
+ # Per-attempt HTTP timeout for CLI → server calls (milliseconds). Default: 30000.
1301
+ # OMNIROUTE_HTTP_TIMEOUT_MS=30000
1302
+
1303
+ # Set to 1 to print retry/backoff details to stderr during CLI commands.
1304
+ # OMNIROUTE_VERBOSE=0
1305
+
1306
+ # Custom directory for CLI plugin discovery (omniroute-cmd-* packages).
1307
+ # Default: ~/.omniroute/plugins/ Override in dev/CI to point at a local plugin tree.
1308
+ # OMNIROUTE_PLUGIN_PATH=
1309
+
1310
+ # Allow plugins to request the 'exec' permission (spawn child processes from the
1311
+ # plugin worker sandbox). Disabled by default; set to 1 to enable (local operator only).
1312
+ # OMNIROUTE_PLUGINS_ALLOW_EXEC=0
1313
+
1314
+ # ── Prompt cache (system prompt deduplication) ──
1315
+ # Used by: open-sse/services — caches identical system prompts across requests.
1316
+ # PROMPT_CACHE_MAX_SIZE=50 # Max cached entries (default: 50)
1317
+ # PROMPT_CACHE_MAX_BYTES=2097152 # Max total cache size in bytes (default: 2 MB)
1318
+ # PROMPT_CACHE_TTL_MS=300000 # Cache entry TTL (default: 5 minutes)
1319
+
1320
+ # ── Semantic cache (deterministic response dedup, temperature=0) ──
1321
+ # Used by: open-sse/services — caches identical temperature=0 responses.
1322
+ # SEMANTIC_CACHE_MAX_SIZE=100 # Max cached entries (default: 100)
1323
+ # SEMANTIC_CACHE_MAX_BYTES=4194304 # Max total cache size in bytes (default: 4 MB)
1324
+ # SEMANTIC_CACHE_TTL_MS=1800000 # Cache entry TTL (default: 30 minutes)
1325
+
1326
+ # ── In-memory log buffers ──
1327
+ # Maximum recent stream events kept in memory for the Dashboard live view.
1328
+ # STREAM_HISTORY_MAX=50
1329
+
1330
+ # ── Context length default ──
1331
+ # Global fallback max context length for models without explicit config.
1332
+ # Used by: open-sse/services/contextManager.ts
1333
+ # CONTEXT_LENGTH_DEFAULT=128000
1334
+
1335
+ # ── Usage token buffer ──
1336
+ # Extra token headroom reserved when tracking usage quotas (prevents over-limit).
1337
+ # Used by: open-sse/utils/usageTracking.ts
1338
+ # USAGE_TOKEN_BUFFER=100
1339
+
1340
+ # ═══════════════════════════════════════════════════════════════════════════════
1341
+ # 18. PRICING SYNC
1342
+ # ═══════════════════════════════════════════════════════════════════════════════
1343
+ # Automatic model pricing synchronization from external sources.
1344
+ # Used by: src/lib/pricingSync.ts
1345
+
1346
+ # Enable periodic pricing data sync. Default: false (opt-in only).
1347
+ # PRICING_SYNC_ENABLED=false
1348
+
1349
+ # Sync interval in seconds. Default: 86400 (24 hours).
1350
+ # PRICING_SYNC_INTERVAL=86400
1351
+
1352
+ # Comma-separated data sources. Default: litellm
1353
+ # PRICING_SYNC_SOURCES=litellm
1354
+
1355
+ # ═══════════════════════════════════════════════════════════════════════════════
1356
+ # 18b. ARENA ELO SYNC
1357
+ # ═══════════════════════════════════════════════════════════════════════════════
1358
+ # Auto-update model intelligence from Arena AI leaderboard ELO scores (powers the
1359
+ # Free Provider Rankings page). ON by default — fetches from api.wulong.dev on startup
1360
+ # (non-blocking, never fatal). Set to false to opt out of the outbound sync.
1361
+ # Also configurable from Dashboard > Settings > Feature Flags.
1362
+ # Used by: src/shared/constants/featureFlagDefinitions.ts, src/lib/arenaEloSync.ts
1363
+ # ARENA_ELO_SYNC_ENABLED=true
1364
+
1365
+ # Sync interval in seconds. Default: 86400 (24 hours).
1366
+ # ARENA_ELO_SYNC_INTERVAL=86400
1367
+
1368
+ # ═══════════════════════════════════════════════════════════════════════════════
1369
+ # 19. MODEL SYNC (Dev)
1370
+ # ═══════════════════════════════════════════════════════════════════════════════
1371
+ # Development-time model catalog sync interval in seconds.
1372
+ # Used by: src/lib/modelsDevSync.ts
1373
+ # Default: 86400 (24 hours)
1374
+ # MODELS_DEV_SYNC_INTERVAL=86400
1375
+
1376
+ # Self-correcting context-window reconciler interval in seconds (feature 5004).
1377
+ # Pins provider-declared windows from /models discovery as auto:discovery overrides
1378
+ # when they diverge from the catalog. Set to 0 to disable. Never overwrites manual overrides.
1379
+ # Used by: src/lib/contextWindowResolver.ts
1380
+ # Default: 86400 (24 hours)
1381
+ # CONTEXT_WINDOW_RECONCILE_INTERVAL=86400
1382
+
1383
+ # ═══════════════════════════════════════════════════════════════════════════════
1384
+ # 20. PROVIDER-SPECIFIC SETTINGS
1385
+ # ═══════════════════════════════════════════════════════════════════════════════
1386
+
1387
+ # ── OpenRouter ──
1388
+ # OpenRouter model catalog cache TTL in ms.
1389
+ # Used by: src/lib/catalog/openrouterCatalog.ts
1390
+ # Default: 86400000 (24 hours)
1391
+ # OPENROUTER_CATALOG_TTL_MS=86400000
1392
+
1393
+ # ── Model catalog response shape ──
1394
+ # Include display-friendly name fields in /v1/models responses.
1395
+ # Disable for clients that expect model IDs only.
1396
+ # Defined in: src/shared/constants/featureFlagDefinitions.ts
1397
+ # Used by: src/app/api/v1/models/catalog.ts
1398
+ # Default: true
1399
+ # MODEL_CATALOG_INCLUDE_NAMES=true
1400
+
1401
+ # ── NanoBanana (Image Generation) ──
1402
+ # Polling config for async image generation jobs.
1403
+ # Used by: open-sse/handlers/imageGeneration.ts
1404
+ # NANOBANANA_POLL_TIMEOUT_MS=120000 # Max wait for job completion (default: 120s)
1405
+ # NANOBANANA_POLL_INTERVAL_MS=2500 # Poll frequency (default: 2.5s)
1406
+
1407
+ # ── AWS Bedrock (Kiro / Audio) ──
1408
+ # Region used to construct AWS Bedrock endpoints. Used by:
1409
+ # src/lib/providers/validation.ts and open-sse/handlers/audioSpeech.ts.
1410
+ # AWS_REGION takes precedence over AWS_DEFAULT_REGION when both are set.
1411
+ # AWS_REGION=us-east-1
1412
+ # AWS_DEFAULT_REGION=us-east-1
1413
+
1414
+ # ── Cloudflare Workers AI ──
1415
+ # Account ID override for Cloudflare Workers AI executor.
1416
+ # Used by: open-sse/executors/cloudflare-ai.ts
1417
+ # CLOUDFLARE_ACCOUNT_ID=
1418
+
1419
+ # ── Deno Deploy proxy relay (#4643 / 9router#1437) ──
1420
+ # Override the Deno Deploy REST API base used by the proxy-pool relay deployer.
1421
+ # Default: https://api.deno.com/v2 (omit unless mocking).
1422
+ # Used by: src/app/api/settings/proxy/deno-deploy/route.ts
1423
+ # DENO_DEPLOY_API_BASE=https://api.deno.com/v2
1424
+
1425
+ # Default Deno Deploy app name suggested in the "Deploy Relay" modal.
1426
+ # Used by: src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx
1427
+ # NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT=omniroute-deno-relay
1428
+
1429
+ # Set to "false" to hide the Deno Deploy relay option from the Proxy Pool tab.
1430
+ # Used by: src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx
1431
+ # NEXT_PUBLIC_DENO_RELAY_ENABLED=true
1432
+
1433
+ # ── Cloudflare Workers proxy relay (#4640 / 9router#1360) ──
1434
+ # Override the Cloudflare REST API base used by the proxy-pool relay deployer.
1435
+ # Default: https://api.cloudflare.com/client/v4 (omit unless mocking).
1436
+ # Used by: src/app/api/settings/proxy/cloudflare-deploy/route.ts
1437
+ # CLOUDFLARE_API_BASE=https://api.cloudflare.com/client/v4
1438
+
1439
+ # Default worker project name suggested in the "Deploy Relay" modal.
1440
+ # Used by: src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx
1441
+ # NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT=omniroute-relay
1442
+
1443
+ # Set to "false" to hide the Cloudflare Workers relay option from the Proxy Pool tab.
1444
+ # Used by: src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx
1445
+ # NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED=true
1446
+
1447
+ # ── Cloudflare Tunnel (cloudflared) ──
1448
+ # Custom path to cloudflared binary for tunnel management.
1449
+ # Used by: src/lib/cloudflaredTunnel.ts
1450
+ # CLOUDFLARED_BIN=/usr/local/bin/cloudflared
1451
+
1452
+ # ── Search cache ──
1453
+ # TTL for search API response caching (Perplexity, Brave, etc.).
1454
+ # Used by: open-sse/services/searchCache.ts
1455
+ # Default: 300000 (5 minutes)
1456
+ # SEARCH_CACHE_TTL_MS=300000
1457
+
1458
+ # ── OpenAI-compatible multi-connection ──
1459
+ # Allow multiple simultaneous connections per OpenAI-compatible provider node.
1460
+ # Used by: src/app/api/providers/route.ts
1461
+ # ALLOW_MULTI_CONNECTIONS_PER_COMPAT_NODE=false
1462
+
1463
+ # ── CC-compatible provider (experimental) ──
1464
+ # Enable the Claude Code compatible provider endpoint.
1465
+ # This is only for third-party relays that accept Claude Code clients exclusively.
1466
+ # OmniRoute rewrites requests to pass those relays' Claude Code client validation.
1467
+ # If you only want to use Claude Code CLI, or you are not sure what these relays are,
1468
+ # keep this disabled and add a regular Anthropic-compatible provider instead.
1469
+ # Used by: src/shared/utils/featureFlags.ts
1470
+ # ENABLE_CC_COMPATIBLE_PROVIDER=false
1471
+
1472
+ # ── 9router embedded service ──
1473
+ # Override the host/port where the embedded 9router instance listens.
1474
+ # Rarely needed — defaults match the bootstrap config (127.0.0.1:20130).
1475
+ # Used by: open-sse/executors/ninerouter.ts
1476
+ # NINEROUTER_HOST=127.0.0.1
1477
+ # NINEROUTER_PORT=20130
1478
+
1479
+ # ── Embedded service WebSocket proxy ──
1480
+ # Standalone WebSocket proxy that tunnels WS connections to embedded services.
1481
+ # Binds to loopback by default. Only change EMBED_WS_PROXY_HOST if you know
1482
+ # what you are doing — exposing this to non-loopback bypasses local-only policy.
1483
+ # Used by: src/lib/services/embedWsProxy.ts
1484
+ # EMBED_WS_PROXY_HOST=127.0.0.1
1485
+ # EMBED_WS_PROXY_PORT=20131
1486
+
1487
+ # ── CLIProxyAPI bridge (legacy) ──
1488
+ # Connection settings for external CLIProxyAPI instances.
1489
+ # Used by: open-sse/executors/cliproxyapi.ts
1490
+ # CLIPROXYAPI_HOST=127.0.0.1
1491
+ # CLIPROXYAPI_PORT=5544
1492
+ # CLIPROXYAPI_CONFIG_DIR=~/.cli-proxy-api
1493
+
1494
+ # ── Mux embedded service ──
1495
+ # Override the port where the embedded Mux (coder/mux) agent-orchestration
1496
+ # daemon listens. Always bound to 127.0.0.1 — never configurable to 0.0.0.0.
1497
+ # Rarely needed — defaults to 8322.
1498
+ # Used by: src/lib/services/bootstrap.ts, src/app/api/services/mux/_lib.ts
1499
+ # MUX_SERVICE_PORT=8322
1500
+
1501
+ # ── Local hostnames (Docker networking) ──
1502
+ # Comma-separated additional hostnames treated as "local" for provider routing.
1503
+ # Used by: open-sse/config/providerRegistry.ts — allows Docker service names.
1504
+ # LOCAL_HOSTNAMES=omlx,mlx-audio
1505
+
1506
+ # ═══════════════════════════════════════════════════════════════════════════════
1507
+ # 21. PROXY HEALTH
1508
+ # ═══════════════════════════════════════════════════════════════════════════════
1509
+ # Fine-tune proxy health checking behavior.
1510
+ # Used by: src/lib/proxyHealth.ts
1511
+
1512
+ # Timeout for fast-fail health checks (ms). Default: 2000
1513
+ # PROXY_FAST_FAIL_TIMEOUT_MS=2000
1514
+
1515
+ # Health check result cache TTL (ms). Default: 30000 (30s)
1516
+ # PROXY_HEALTH_CACHE_TTL_MS=30000
1517
+
1518
+ # Unhealthy health check result cache TTL (ms). Default: 2000 (2s)
1519
+ # Keeps transient fast-fail timeouts from poisoning a proxy for the full
1520
+ # healthy-result cache window under high concurrency.
1521
+ # PROXY_HEALTH_UNHEALTHY_CACHE_TTL_MS=2000
1522
+
1523
+ # Background proxy health scheduler (src/lib/proxyHealth/scheduler.ts).
1524
+ # Periodically probes every registered proxy and (optionally) removes dead ones.
1525
+ # Set "false" to disable the scheduler entirely. Default: enabled.
1526
+ # PROXY_HEALTH_ENABLED=true
1527
+ # Sweep interval in ms (minimum 60000). Default: 600000 (10min).
1528
+ # PROXY_HEALTH_INTERVAL_MS=600000
1529
+ # Reachability probe target for the scheduler and the auto-test endpoint.
1530
+ # Point it at an internal/self-hosted URL to avoid the public default.
1531
+ # PROXY_HEALTH_TEST_URL=https://httpbin.org/ip
1532
+ # Set "true" to let the scheduler auto-remove proxies after repeated failures.
1533
+ # PROXY_AUTO_REMOVE=false
1534
+ # Consecutive failures before an auto-remove fires. Default: 3.
1535
+ # PROXY_AUTO_REMOVE_AFTER=3
1536
+ # Let automated reachability probes (the scheduler + the "Test All" button) WRITE
1537
+ # a proxy's status. Default "false": probes are read-only and never deactivate a
1538
+ # proxy — only the operator sets active/inactive (a flaky probe must not strand an
1539
+ # assigned proxy; #6246). Set "true" to restore the legacy test-and-set behaviour.
1540
+ # PROXY_HEALTH_AUTO_DEACTIVATE=false
1541
+
1542
+ # Allow OAuth and provider validation flows to bypass a pinned proxy and connect
1543
+ # directly when proxy reachability pre-checks fail. Default: false.
1544
+ # Also configurable from Dashboard > Settings > Feature Flags.
1545
+ # OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK=false
1546
+
1547
+ # Rate limit maximum wait time before failing a request (ms). Default: 120000 (2 min)
1548
+ # Used by: open-sse/services/rateLimitManager.ts
1549
+ # RATE_LIMIT_MAX_WAIT_MS=120000
1550
+
1551
+ # Force the auto-enable rate limit safety net on/off regardless of the persisted
1552
+ # Dashboard setting. Used by: open-sse/services/rateLimitManager.ts.
1553
+ # Accepted values: true|1|on (force on), false|0|off (force off), unset (use Dashboard).
1554
+ # RATE_LIMIT_AUTO_ENABLE=
1555
+
1556
+ # Provider cooldown tracking: minimum time (ms) before a failed provider/connection
1557
+ # can be retried. Prevents subsequent requests from re-walking failing providers.
1558
+ # Scaled exponentially: minCooldown * 2^(failures-1), capped at maxRetryCooldownMs.
1559
+ # Used by: open-sse/services/providerCooldownTracker.ts
1560
+ # PROVIDER_COOLDOWN_MIN_MS=5000
1561
+
1562
+ # Provider cooldown tracking: maximum time (ms) before a failed provider/connection
1563
+ # is retried regardless. Hard cap to prevent providers from being skipped indefinitely.
1564
+ # Used by: open-sse/services/providerCooldownTracker.ts
1565
+ # PROVIDER_COOLDOWN_MAX_MS=300000
1566
+
1567
+ # Enable/disable global provider cooldown tracking. Opt-in: this global
1568
+ # cross-request cooldown overlaps the existing Connection Cooldown / Provider
1569
+ # Circuit Breaker layers, so it is OFF by default. When disabled, only the
1570
+ # existing per-request/per-connection cooldown state is used (previous behavior).
1571
+ # Used by: open-sse/services/providerCooldownTracker.ts
1572
+ # Accepted values: true|1|on (enable). Unset or anything else = disabled (default).
1573
+ # PROVIDER_COOLDOWN_ENABLED=true
1574
+
1575
+ # Transparent stream recovery (free-claude-code port). When enabled, the opening SSE
1576
+ # window is briefly held (up to STREAM_RECOVERY.HOLDBACK_MS) so an upstream truncation
1577
+ # before any byte reaches the client can be retried invisibly. Opt-in: holding the
1578
+ # window adds up to that much time-to-first-token latency on every stream, so it is
1579
+ # OFF by default. Seeds ResilienceSettings.streamRecovery.enabled.
1580
+ # Used by: open-sse/services/streamRecovery.ts, open-sse/handlers/chatCore.ts
1581
+ # Accepted values: true|1|on (enable). Unset or anything else = disabled (default).
1582
+ # STREAM_RECOVERY_ENABLED=true
1583
+
1584
+ # Mid-stream continuation (Fase 4.4): when an upstream stream truncates AFTER bytes
1585
+ # already reached the client, re-request with the partial text as an assistant prefill
1586
+ # and stitch the missing suffix (plain-text OpenAI-compatible streams only; never with a
1587
+ # tool call in flight). OFF by default — the recovered tail arrives as one burst, not
1588
+ # token-by-token. Independent of STREAM_RECOVERY_ENABLED (different risk profile).
1589
+ # Seeds ResilienceSettings.streamRecovery.continueMidStream.
1590
+ # Used by: open-sse/services/streamRecovery.ts, open-sse/handlers/chatCore.ts
1591
+ # Accepted values: true|1|on (enable). Unset or anything else = disabled (default).
1592
+ # STREAM_RECOVERY_MIDSTREAM_ENABLED=true
1593
+
1594
+ # Stagger interval (ms) between provider token healthchecks at startup.
1595
+ # Used by: src/lib/tokenHealthCheck.ts. Default: 3000.
1596
+ # HEALTHCHECK_STAGGER_MS=3000
1597
+
1598
+ # ═══════════════════════════════════════════════════════════════════════════════
1599
+ # 22. DEBUGGING
1600
+ # ═══════════════════════════════════════════════════════════════════════════════
1601
+ # These variables enable verbose debugging output. NEVER enable in production.
1602
+
1603
+ # Cursor executor verbose debug (decoded SSE chunks, etc.).
1604
+ # CURSOR_STREAM_DEBUG is kept as a backward-compatible alias.
1605
+ # Used by: open-sse/executors/cursor.ts
1606
+ # CURSOR_DEBUG=1
1607
+
1608
+ # Enable verbose trace logging for OmniRoute internals.
1609
+ # Used by: open-sse/handlers/chatCore.ts.
1610
+ # OMNIROUTE_TRACE=true
1611
+
1612
+ # Standard DEBUG flag (same effect as OMNIROUTE_TRACE).
1613
+ # DEBUG=true
1614
+ # CURSOR_STREAM_DEBUG=1
1615
+
1616
+ # When CURSOR_DEBUG=1, also append raw decoded chunks to this file path.
1617
+ # CURSOR_DUMP_FILE=/tmp/cursor-stream.log
1618
+
1619
+ # Cursor stream idle timeout (ms). Default: 300000 (5 min).
1620
+ # Used by: open-sse/executors/cursor.ts.
1621
+ # CURSOR_STREAM_TIMEOUT_MS=300000
1622
+
1623
+ # Cursor tool-commit directive toggle. Default-on: when a request declares
1624
+ # tools, a directive is prepended so composer-2.5 reliably issues tool calls
1625
+ # instead of narrating intent. Set to 0 to disable.
1626
+ # Used by: open-sse/executors/cursor.ts.
1627
+ # CURSOR_TOOL_DIRECTIVE=1
1628
+
1629
+ # Per-image fetch timeout (ms) for remote image_url vision input. Default: 15000.
1630
+ # Used by: open-sse/utils/cursorImages.ts.
1631
+ # CURSOR_IMAGE_FETCH_TIMEOUT_MS=15000
1632
+
1633
+ # Cursor state DB path override (for cursor version detection).
1634
+ # Used by: open-sse/utils/cursorVersionDetector.ts. Default: probed automatically.
1635
+ # CURSOR_STATE_DB_PATH=
1636
+
1637
+ # Direct Cursor bearer token used by scripts/ad-hoc/cursor-tap.cjs (developer tooling).
1638
+ # CURSOR_TOKEN=
1639
+
1640
+ # Log Responses API SSE-to-JSON translation details.
1641
+ # DEBUG_RESPONSES_SSE_TO_JSON=true
1642
+
1643
+ # Log request shape (content-type + content-length) for large chat payloads.
1644
+ # Used by: src/app/api/v1/chat/completions/route.ts. Set to "0" to silence.
1645
+ # Default: enabled.
1646
+ # OMNIROUTE_LOG_REQUEST_SHAPE=1
1647
+
1648
+ # Write raw (untruncated) request/response JSON in call log artifacts.
1649
+ # When enabled, serializeArtifactForStorage skips size-based truncation.
1650
+ # Also enabled automatically when APP_LOG_LEVEL=debug.
1651
+ # WARNING: produces large files — use only for temporary debugging.
1652
+ # CHAT_DEBUG_FILE=true
1653
+
1654
+ # Enable E2E test mode — relaxes auth and enables test harness hooks.
1655
+ # NEXT_PUBLIC_OMNIROUTE_E2E_MODE=true
1656
+
1657
+ # ═══════════════════════════════════════════════════════════════════════════════
1658
+ # 23. GITHUB INTEGRATION (Issue Reporting)
1659
+ # ═══════════════════════════════════════════════════════════════════════════════
1660
+ # Allow users to report issues directly from the Dashboard to GitHub.
1661
+ # Used by: src/app/api/v1/issues/report/route.ts
1662
+
1663
+ # GitHub repository in owner/repo format.
1664
+ # GITHUB_ISSUES_REPO=owner/repo
1665
+
1666
+ # GitHub Personal Access Token with issues:write scope.
1667
+ # GITHUB_ISSUES_TOKEN=ghp_xxxx
1668
+
1669
+ # Generic GitHub access token consumed by issue triage / agent helpers.
1670
+ # Used by: src/app/api/v1/issues/* and src/lib/cloudAgent/* — falls back to
1671
+ # GITHUB_ISSUES_TOKEN when unset.
1672
+ # GITHUB_TOKEN=
1673
+
1674
+ # ═══════════════════════════════════════════════════════════════════════════════
1675
+ # 24. PROVIDER QUOTAS, TUNNELS & SANDBOXED SKILLS
1676
+ # ═══════════════════════════════════════════════════════════════════════════════
1677
+ # Provider quota endpoints, network tunnels (Tailscale, Ngrok, MITM debug
1678
+ # proxy), 1Proxy egress pool, skills sandbox runtime, and miscellaneous CLI
1679
+ # binaries referenced by the executor layer or the dashboard runtime.
1680
+
1681
+ # ── Alibaba (Bailian) coding plan quota ──
1682
+ # Host/full URL override used by: open-sse/services/bailianQuotaFetcher.ts.
1683
+ # When unset the fetcher uses the production Alibaba endpoints.
1684
+ # ALIBABA_CODING_PLAN_HOST=
1685
+ # ALIBABA_CODING_PLAN_QUOTA_URL=
1686
+
1687
+ # ── Context window tuning ──
1688
+ # Tokens reserved for completion output when computing prompt budgets.
1689
+ # Used by: open-sse/services/contextManager.ts. Default: 1024.
1690
+ # CONTEXT_RESERVE_TOKENS=1024
1691
+
1692
+ # ── Model alias rewriting (legacy compatibility) ──
1693
+ # Toggle the legacy model-alias compatibility layer used by older clients.
1694
+ # Used by: open-sse/services/model.ts. Default: enabled.
1695
+ # MODEL_ALIAS_COMPAT_ENABLED=true
1696
+
1697
+ # ── Devin CLI binary path ──
1698
+ # Used by: open-sse/executors/devin-cli.ts. Default: looked up via PATH.
1699
+ # CLI_DEVIN_BIN=devin
1700
+
1701
+ # ── Command Code (custom CLI) callback ──
1702
+ # Local port used for OAuth-style callbacks from the Command Code CLI helper.
1703
+ # Used by: src/app/api/providers/command-code/auth/shared.ts.
1704
+ # COMMAND_CODE_CALLBACK_PORT=
1705
+
1706
+ # ── Command Code CLI version header ──
1707
+ # Value sent as the x-command-code-version header to the Command Code upstream.
1708
+ # Overrides the built-in default; bump if the upstream requires a newer CLI version.
1709
+ # Used by: open-sse/executors/commandCode.ts
1710
+ # Default: 0.33.2
1711
+ # COMMAND_CODE_VERSION=0.33.2
1712
+
1713
+ # ── MITM debug proxy (development only) ──
1714
+ # Used by: src/mitm/server.cjs — captures upstream traffic for inspection.
1715
+ # MITM_LOCAL_PORT=443
1716
+ # MITM_DISABLE_TLS_VERIFY=0
1717
+ # Idle socket timeout (ms) for proxied connections; sockets idle past this are torn
1718
+ # down to avoid leaking half-open tunnels (src/mitm/socketTimeouts.ts, server.cjs).
1719
+ # MITM_IDLE_TIMEOUT_MS=60000
1720
+ # Routing-decision log verbosity: 0 silences, higher values log more bypass/route
1721
+ # decisions (src/mitm/server.cjs, _internal/bypass.cjs).
1722
+ # MITM_VERBOSE=1
1723
+ # Strip the leading `sudo` from MITM cert-trust commands (src/mitm/systemCommands.ts) —
1724
+ # for root-less / user-namespaced deployments (e.g. rootless Docker/Podman)
1725
+ # where the operator trusts the CA manually (e.g. via Node's extra-CA-certs mechanism).
1726
+ # OMNIROUTE_NO_SUDO=0
1727
+
1728
+ # ── Test/CI-only guards (never needed in production) ──
1729
+ # Set automatically by tests/_setup/isolateDataDir.ts and the CI workflows: the
1730
+ # test suite must NEVER mutate the OS trust store (a fake test PEM installed via
1731
+ # update-ca-certificates broke all system TLS on a persistent runner, 2026-07-05).
1732
+ # OMNIROUTE_SKIP_SYSTEM_TRUST=1
1733
+ # check-changelog-integrity.mjs (anti CHANGELOG-eat gate): explicit base ref
1734
+ # override, and the justified-removal escape hatch for intentional bullet removals.
1735
+ # CHANGELOG_BASE_REF=origin/release/v0.0.0
1736
+ # ALLOW_CHANGELOG_REMOVALS=1
1737
+
1738
+ # ── 1Proxy egress pool ──
1739
+ # Used by: src/lib/oneproxySync.ts — fetches proxy nodes from the OmniRoute
1740
+ # CrofAI 1Proxy service. Disable, override URL, or tune the import quality.
1741
+ # ONEPROXY_ENABLED=true
1742
+ # ONEPROXY_API_URL=https://1proxy-api.aitradepulse.com
1743
+ # ONEPROXY_MAX_PROXIES=500
1744
+ # ONEPROXY_MIN_QUALITY_THRESHOLD=50
1745
+
1746
+ # ── Free Proxy Pool (1proxy source) ──
1747
+ # Used by: src/lib/freeProxyProviders/oneproxy.ts
1748
+ # Set FREE_PROXY_1PROXY_ENABLED=false to disable this source.
1749
+ # FREE_PROXY_1PROXY_ENABLED=true
1750
+ # FREE_PROXY_1PROXY_API_URL=https://1proxy-api.aitradepulse.com/api/v1/proxies/advanced
1751
+ # FREE_PROXY_1PROXY_MAX=500
1752
+ # FREE_PROXY_1PROXY_MIN_QUALITY=50
1753
+
1754
+ # ── Free Proxy Pool (Proxifly source) ──
1755
+ # Used by: src/lib/freeProxyProviders/proxifly.ts
1756
+ # Enabled by default; set to false to disable.
1757
+ # FREE_PROXY_PROXIFLY_ENABLED=true
1758
+ # FREE_PROXY_PROXIFLY_QUANTITY=100
1759
+ # FREE_PROXY_PROXIFLY_ANONYMITY=elite
1760
+
1761
+ # ── Free Proxy Pool (IPLocate source) ──
1762
+ # Used by: src/lib/freeProxyProviders/iplocate.ts
1763
+ # Opt-in only; must set FREE_PROXY_IPLOCATE_ENABLED=true to activate.
1764
+ # FREE_PROXY_IPLOCATE_ENABLED=false
1765
+ # FREE_PROXY_IPLOCATE_BASE_URL=https://raw.githubusercontent.com/iplocate/free-proxy-list/main/protocols
1766
+
1767
+ # ── Free Proxy Pool (Webshare source) ──
1768
+ # Used by: src/lib/freeProxyProviders/webshare.ts
1769
+ # Paid, per-account proxy list — requires FREE_PROXY_WEBSHARE_API_KEY to activate,
1770
+ # regardless of FREE_PROXY_WEBSHARE_ENABLED.
1771
+ # FREE_PROXY_WEBSHARE_ENABLED=true
1772
+ # FREE_PROXY_WEBSHARE_API_KEY=
1773
+ # FREE_PROXY_WEBSHARE_API_URL=https://proxy.webshare.io/api/v2/proxy/list/
1774
+ # FREE_PROXY_WEBSHARE_MAX=500
1775
+
1776
+ # ── Vercel Relay ──
1777
+ # Used by: src/app/api/settings/proxy/vercel-deploy/route.ts
1778
+ # Hides the "Deploy Relay" button when set to false.
1779
+ # NEXT_PUBLIC_VERCEL_RELAY_ENABLED=true
1780
+ # VERCEL_API_BASE=https://api.vercel.com
1781
+ # Default project name pre-filled in the Vercel Relay deploy modal.
1782
+ # NEXT_PUBLIC_VERCEL_RELAY_DEFAULT_PROJECT=omniroute-relay
1783
+
1784
+ # ── Tailscale tunnel binaries ──
1785
+ # Optional explicit paths to tailscale/tailscaled binaries used by the
1786
+ # dashboard's tunnel manager. Used by: src/lib/tailscaleTunnel.ts.
1787
+ # TAILSCALE_BIN=/usr/local/bin/tailscale
1788
+ # TAILSCALED_BIN=/usr/local/bin/tailscaled
1789
+ # Pre-shared Tailscale auth key for non-interactive / headless `tailscale up`
1790
+ # (passed via --auth-key=). When unset, login falls back to the interactive
1791
+ # browser auth URL. Used by: src/lib/tailscaleTunnel.ts.
1792
+ # TAILSCALE_AUTHKEY=
1793
+
1794
+ # ── Ngrok tunnel ──
1795
+ # Used by: src/lib/ngrokTunnel.ts — authenticates outbound tunnels.
1796
+ # NGROK_AUTHTOKEN=
1797
+
1798
+ # ── Database backups ──
1799
+ # Used by: src/lib/db/backup.ts.
1800
+ # DB_BACKUP_MAX_FILES=20
1801
+ # DB_BACKUP_RETENTION_DAYS=0
1802
+
1803
+ # ── TLS sidecar override ──
1804
+ # Used by: open-sse/services/chatgptTlsClient.ts tests. Production deployments
1805
+ # should leave this unset; the sidecar is auto-managed.
1806
+ # OMNIROUTE_TLS_PROXY_URL=
1807
+
1808
+ # ── Skills sandbox (experimental) ──
1809
+ # Used by: src/lib/skills/builtins.ts. All values support comma lists where
1810
+ # noted in the source.
1811
+ # SKILLS_MAX_FILE_BYTES=1048576
1812
+ # SKILLS_MAX_HTTP_RESPONSE_BYTES=256000
1813
+ # SKILLS_MAX_SANDBOX_OUTPUT_CHARS=100000
1814
+ # SKILLS_SANDBOX_TIMEOUT_MS=10000
1815
+ # SKILLS_SANDBOX_NETWORK_ENABLED=0
1816
+ # SKILLS_ALLOWED_SANDBOX_IMAGES=
1817
+
1818
+ # ═══════════════════════════════════════════════════════════════════════════════
1819
+ # 25. TEST & E2E
1820
+ # ═══════════════════════════════════════════════════════════════════════════════
1821
+ # Used by scripts/dev/run-next-playwright.mjs, scripts/dev/smoke-electron-packaged.mjs,
1822
+ # scripts/dev/run-ecosystem-tests.mjs and scripts/build/uninstall.mjs.
1823
+ # Production deployments should leave every value below unset.
1824
+
1825
+ # E2E bootstrap mode for the Playwright runner. Accepted: auth | fresh | reuse.
1826
+ # Default (when unset): auth.
1827
+ # OMNIROUTE_E2E_BOOTSTRAP_MODE=auth
1828
+
1829
+ # Admin password injected into the Playwright test environment.
1830
+ # Falls back to INITIAL_PASSWORD when unset.
1831
+ # OMNIROUTE_E2E_PASSWORD=
1832
+
1833
+ # Disable the local healthcheck poll during Playwright runs (default: true).
1834
+ # OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK=true
1835
+
1836
+ # Disable the OAuth token healthcheck loop during tests (default: true).
1837
+ # OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK=true
1838
+
1839
+ # Exclude specific providers from the PROACTIVE token-refresh sweep (comma-separated,
1840
+ # case-insensitive). Targeted alternative to OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK: keeps
1841
+ # rotating-cascade providers (Codex/OpenAI share one Auth0 family) on the reactive 401
1842
+ # path only, while short-TTL providers like Kimi-coding keep being refreshed proactively.
1843
+ # OMNIROUTE_HEALTHCHECK_SKIP_PROVIDERS=codex,openai
1844
+
1845
+ # Silence healthcheck noise in Playwright stdout (default: true).
1846
+ # OMNIROUTE_HIDE_HEALTHCHECK_LOGS=true
1847
+
1848
+ # Skip the Next.js production build before Playwright starts (CI optimization).
1849
+ # OMNIROUTE_PLAYWRIGHT_SKIP_BUILD=0
1850
+
1851
+ # Skip the OmniRoute uninstall hook (used by CI to keep node_modules intact).
1852
+ # OMNIROUTE_SKIP_UNINSTALL_HOOK=0
1853
+
1854
+ # Ecosystem/protocol test orchestrators wait this long (ms) for the server to
1855
+ # become healthy. Default: 180000.
1856
+ # ECOSYSTEM_SERVER_WAIT_MS=180000
1857
+
1858
+ # Docs translation pipeline (used by scripts/i18n/run-translation.mjs).
1859
+ # OpenAI-compatible base URL, e.g. https://cloud.omniroute.online/v1
1860
+ # OMNIROUTE_TRANSLATION_API_URL=
1861
+ # Bearer token for the translation backend (NEVER commit a real key here).
1862
+ # OMNIROUTE_TRANSLATION_API_KEY=
1863
+ # Model id, e.g. gpt-4o-mini or cx/gpt-5.4-mini.
1864
+ # OMNIROUTE_TRANSLATION_MODEL=gpt-4o-mini
1865
+ # Per-request timeout in milliseconds (default 60000).
1866
+ # OMNIROUTE_TRANSLATION_TIMEOUT_MS=60000
1867
+ # Number of parallel translation requests (default 4).
1868
+ # OMNIROUTE_TRANSLATION_CONCURRENCY=4
1869
+
1870
+ # ─── Cloud Sync hardening (v3.8.6) ──────────────────────────────────────────
1871
+ # Shared secret used to verify the HMAC-SHA256 of the Cloud sync response body
1872
+ # (the Cloud endpoint must sign each response with the same secret and place
1873
+ # the hex digest in the X-Cloud-Sig header). When unset, v3.8.6 logs a warning
1874
+ # but accepts unsigned responses for back-compat. v3.9 will make this required.
1875
+ # OMNIROUTE_CLOUD_SYNC_SECRET=
1876
+ #
1877
+ # Set to "true" to allow the Cloud Sync endpoint to overwrite local OAuth
1878
+ # tokens (accessToken / refreshToken / providerSpecificData). Default OFF —
1879
+ # only non-credential metadata is synced. See docs/security/SOCKET_DEV_FINDINGS.md §5.
1880
+ # OMNIROUTE_CLOUD_SYNC_SECRETS=false
1881
+
1882
+ # ─── Zed import legacy compat (v3.8.6) ──────────────────────────────────────
1883
+ # Set to "true" to fall back to the v3.8.5 one-step "import everything from
1884
+ # the keychain" behaviour. Default OFF — the new 2-step confirmation flow
1885
+ # requires `confirmedAccounts` in the request body. See SOCKET_DEV_FINDINGS.md §2.
1886
+ # OMNIROUTE_ZED_IMPORT_LEGACY_ONE_STEP=false
1887
+
1888
+ # ─── Build profile (build-time only) ────────────────────────────────────────
1889
+ # Set to "minimal" before `npm run build` to physically remove four optional
1890
+ # privileged modules (MITM cert install, Zed keychain import, Cloud Sync,
1891
+ # 9router installer) from the standalone bundle. The resulting artifact is
1892
+ # intended to be published as `omniroute-secure`. See SECURITY.md.
1893
+ # OMNIROUTE_BUILD_PROFILE=full
1894
+
1895
+ # Electron smoke harness (used by scripts/dev/smoke-electron-packaged.mjs).
1896
+ # ELECTRON_SMOKE_URL=http://127.0.0.1:20128/login
1897
+ # ELECTRON_SMOKE_TIMEOUT_MS=45000
1898
+ # ELECTRON_SMOKE_SETTLE_MS=2000
1899
+ # ELECTRON_SMOKE_APP_EXECUTABLE=
1900
+ # ELECTRON_SMOKE_DATA_DIR=
1901
+ # ELECTRON_SMOKE_KEEP_DATA=0
1902
+ # ELECTRON_SMOKE_STREAM_LOGS=0
1903
+
1904
+ # Playground Studio
1905
+ # Default model used by the improve-prompt route (optional; falls back to model in request body).
1906
+ PLAYGROUND_IMPROVE_PROMPT_DEFAULT_MODEL=
1907
+ # Maximum number of parallel compare columns in the Compare tab.
1908
+ PLAYGROUND_COMPARE_MAX_COLUMNS=4
1909
+ # Memory engine (plan 21)
1910
+ # MEMORY_EMBEDDING_CACHE_TTL_MS=300000 # default 5 min
1911
+ # MEMORY_EMBEDDING_CACHE_MAX=1000 # default 1000 entries
1912
+ # MEMORY_TRANSFORMERS_MODEL=Xenova/all-MiniLM-L6-v2
1913
+ # MEMORY_STATIC_MODEL=minishlab/potion-base-8M # HF repo id (download once)
1914
+ # MEMORY_STATIC_CACHE_DIR= # default <DATA_DIR>/embeddings
1915
+ # MEMORY_VEC_TOP_K=20 # default top-K for vector search
1916
+ # MEMORY_RRF_K=60 # RRF k constant (sqlite-vec hybrid recipe)
1917
+ # HF_HUB_ENDPOINT=https://huggingface.co # override Hugging Face Hub base URL for static potion downloads
1918
+ # TV6 typed memory decay (OPT-IN, default off — the sweep DELETES decayed memories)
1919
+ # MEMORY_TYPED_DECAY_ENABLED=false # master switch for the destructive sweep (default off)
1920
+ # MEMORY_TYPED_DECAY_EPISODIC_DAYS=30 # episodic TTL in days; 0 = episodic immune too
1921
+ # MEMORY_TYPED_DECAY_ACCESS_IMMUNITY=3 # access_count >= N → immune; 0 disables access immunity
1922
+ # MEMORY_TYPED_DECAY_SWEEP_INTERVAL=0 # periodic sweep interval (seconds); 0 = no periodic sweep
1923
+ # AgentBridge + Traffic Inspector (Group A)
1924
+
1925
+ # AgentBridge
1926
+ AGENTBRIDGE_UPSTREAM_CA_CERT=
1927
+
1928
+ # Inspector
1929
+ INSPECTOR_BUFFER_SIZE=1000
1930
+ INSPECTOR_HTTP_PROXY_PORT=8080
1931
+ INSPECTOR_HTTP_PROXY_AUTOSTART=false
1932
+ INSPECTOR_TLS_INTERCEPT=false
1933
+ INSPECTOR_SYSTEM_PROXY_GUARD_MINUTES=30
1934
+ INSPECTOR_MAX_BODY_KB=1024
1935
+ INSPECTOR_MASK_SECRETS=true
1936
+ INSPECTOR_LLM_HOSTS_EXTRA=
1937
+ INSPECTOR_INTERNAL_INGEST_TOKEN=
1938
+ # Quota Sharing (Group B — planos 16+22)
1939
+ QUOTA_STORE_DRIVER=sqlite # sqlite | redis
1940
+ # QUOTA_STORE_REDIS_URL= # ex.: redis://localhost:6379 (apenas quando driver=redis)
1941
+ # QUOTA_SATURATION_THRESHOLD=0.5 # 0..1; >= threshold ativa modo strict (sem empréstimo)
1942
+ # QUOTA_SOFT_DEPRIORITIZE_FACTOR=0.7 # 0..1; multiplicador do score quando soft policy ativa
1943
+ # STATUS_SOFT_DEPRIORITIZE_FACTOR=0.5 # 0..1; multiplicador do score p/ provider esgotado (credits_exhausted/rate_limited) quando preflight cutoff OFF (#4540)
1944
+ # QUOTA_CONSUMPTION_RETENTION_DAYS=14 # GC de buckets quota_consumption.updated_at antigos
1945
+ # QUOTA_PREFLIGHT_CUTOFF_ENABLED=false # opt-in (default OFF): hard quota cutoff drops low-quota candidates before auto-routing scoring
1946
+
1947
+ # ─── Auto-Combo tier filter (#4517) ───────────────────────────────────────
1948
+ # When an `auto/<category>:free` (or any `:<tier>`) request matches NO connected
1949
+ # candidates, OmniRoute returns an EMPTY pool by default — so `:free` really means
1950
+ # "free tier only" and a paid model is never picked just because no free provider is
1951
+ # connected. Set this to `true`/`1` to restore the legacy behavior of falling back to
1952
+ # the full (unfiltered) pool with a warning. Source: open-sse/services/autoCombo/virtualFactory.ts
1953
+ # OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL=false
1954
+
1955
+ # ─── OpenCode config regeneration (scripts/ad-hoc/regen-opencode-config.ts) ───
1956
+ # Base URL of the OmniRoute instance to query for /v1/models when regenerating
1957
+ # an opencode.json with accurate limit.context values. Used by:
1958
+ # scripts/ad-hoc/regen-opencode-config.ts. Default: http://localhost:20128
1959
+ # OMNIROUTE_URL=
1960
+ # API key to authenticate against the OmniRoute /v1/models endpoint. Falls back
1961
+ # to OPENCODE_API_KEY when unset. Used by: scripts/ad-hoc/regen-opencode-config.ts.
1962
+ # OMNIROUTE_KEY=
1963
+ # OpenCode-style API key (sk-...) for the regenerated opencode.json. Used by:
1964
+ # scripts/ad-hoc/regen-opencode-config.ts. Falls back to OMNIROUTE_KEY.
1965
+ # OPENCODE_API_KEY=
1966
+
1967
+ # ─── Bifrost Go sidecar (PR-4 in #3932) ──────────────────────────────────────
1968
+ # Master kill switch for the bifrost sidecar proxy. When set to 0, the
1969
+ # /api/v1/relay/chat/completions/bifrost route returns 503 with the
1970
+ # X-Bifrost-Killswitch header and the operator is bounced to the TS path.
1971
+ # Use this to disable the sidecar without redeploying (e.g. during a
1972
+ # tier-1 router incident or a key rotation). Default: 1 (sidecar active).
1973
+ # BIFROST_ENABLED=1
1974
+ # When BIFROST_BASE_URL is set, /api/v1/relay/chat/completions/bifrost routes
1975
+ # traffic to the Go gateway instead of the TS relay handler, removing TS from
1976
+ # the hot path. Auth/rate-limit/injection-guard stay in the route (security not
1977
+ # duplicated). Falls back to TS path via X-Bifrost-Fallback header on
1978
+ # timeout/failure. See bin/omniroute for the local-redis companion.
1979
+ # BIFROST_BASE_URL=
1980
+ # Port the supervised Bifrost embedded service binds to (127.0.0.1:<port>), read by
1981
+ # src/lib/services/bootstrap.ts when OmniRoute manages the Bifrost sidecar lifecycle.
1982
+ # Default: 8080.
1983
+ # BIFROST_PORT=8080
1984
+ # API key for the Bifrost gateway (sent as Authorization: Bearer ...). If
1985
+ # unset, the route expects the request to carry a valid OmniRoute API key;
1986
+ # this key is for gateway-side auth only.
1987
+ # BIFROST_API_KEY=
1988
+ # When true, the Bifrost sidecar route streams responses back via SSE through
1989
+ # the gateway rather than the TS streaming executor. Default: true (when
1990
+ # BIFROST_BASE_URL is set).
1991
+ # BIFROST_STREAMING_ENABLED=
1992
+ # Per-request timeout when proxying to the Bifrost gateway. Default: 30000 (30s).
1993
+ # BIFROST_TIMEOUT_MS=
1994
+ # Alias for BIFROST_API_KEY (used by scripts that read the env via
1995
+ # OMNIROUTE_*). BIFROST_API_KEY takes precedence when both are set.
1996
+ # OMNIROUTE_BIFROST_KEY=
1997
+ # Relay backend selection for the OpenAI-compatible relay endpoint:
1998
+ # ts | bifrost | auto. "ts" (default when Bifrost is not configured) uses the
1999
+ # TypeScript relay; "auto" selects Bifrost when BIFROST_BASE_URL is set (and
2000
+ # BIFROST_ENABLED != 0) and falls back to TS if the sidecar is unreachable;
2001
+ # "bifrost" forces Bifrost (strict — no TS fallback). Auth, rate limits,
2002
+ # injection guard and model allowlists always run in the Next route first.
2003
+ # RELAY_ROUTING_BACKEND is an accepted alias. Responses carry X-Routing-Backend
2004
+ # and X-Routing-Fallback.
2005
+ # OMNIROUTE_RELAY_BACKEND=
2006
+ # RELAY_ROUTING_BACKEND=
2007
+ # Cooldown (ms) after a Bifrost sidecar hop fails in "auto" mode before the relay
2008
+ # re-attempts the sidecar; it goes straight to the TS path while the cooldown lasts.
2009
+ # 0 disables. Default 5000. Only applies when OMNIROUTE_RELAY_BACKEND=auto.
2010
+ # OMNIROUTE_BIFROST_FAILURE_COOLDOWN_MS=
2011
+ # Opt-in native HTTPS/TLS for `omniroute serve` (equivalent to --tls-cert /
2012
+ # --tls-key). Provide BOTH a PEM certificate and its private key and the
2013
+ # standalone server terminates TLS on the same listener (wss:// works
2014
+ # unchanged). With neither set the server stays plain HTTP; providing only one
2015
+ # (or an unreadable path) logs a warning and stays HTTP (never half-enables).
2016
+ # OMNIROUTE_TLS_CERT=
2017
+ # OMNIROUTE_TLS_KEY=
2018
+
2019
+ # ─── 1-click local service launchers (PR-3 in #3932) ────────────────────────
2020
+ # Master switch for /api/local/* routes. When unset or "0", all /api/local/*
2021
+ # routes return 503 in production. Default: 0. Must be "1" in non-loopback
2022
+ # deploys to enable the Redis launcher and similar 1-click local service
2023
+ # starters. Belt-and-suspenders with the isLocalOnlyPath() route-guard
2024
+ # classification (LOCAL_ONLY_API_PREFIXES in src/server/authz/routeGuard.ts).
2025
+ # OMNIROUTE_LOCAL_ENDPOINTS_ENABLED=
2026
+ # Bearer token for /api/local/* callers that aren't on loopback (e.g. the
2027
+ # desktop app). When set, requests from non-loopback IPs must carry
2028
+ # Authorization: Bearer <token>. Required when
2029
+ # OMNIROUTE_LOCAL_ENDPOINTS_ENABLED=1 in non-loopback deployments. Default:
2030
+ # unset (loopback-only).
2031
+ # OMNIROUTE_LOCAL_ENDPOINTS_TOKEN=
2032
+ # Container name for the 1-click Redis launcher (`omniroute redis up`).
2033
+ # Default: omniroute-redis. Used by bin/cli/commands/redis.mjs and the
2034
+ # RedisLauncherPanel.
2035
+ # OMNIROUTE_REDIS_CONTAINER_NAME=
2036
+ # Host port for the 1-click Redis launcher. Default: 6379. Bump if the host
2037
+ # already binds 6379. The container's internal port stays 6379.
2038
+ # OMNIROUTE_REDIS_HOST_PORT=
2039
+ # Redis image used by the 1-click Redis launcher. Default: redis:7-alpine.
2040
+ # Override to redis:8-alpine or a private registry mirror as needed.
2041
+ # OMNIROUTE_REDIS_IMAGE=
2042
+
2043
+ # ── Cluster Profile: Qdrant Vector Memory (opt-in via `docker compose --profile memory up`) ──
2044
+ # Qdrant is an OPTIONAL sidecar for deployments that need cosine-distance vector
2045
+ # search at >1M embeddings. The default vector store is sqlite-vec
2046
+ # (src/lib/memory/vectorStore.ts:108); flip this profile on only if you hit the
2047
+ # sqlite-vec ceiling or want persistent cross-replica vector state. See
2048
+ # docs/architecture/cluster-decisions.md § "Qdrant (memory profile)".
2049
+ # QDRANT_HOST=qdrant
2050
+ # QDRANT_PORT=6333
2051
+ # QDRANT_GRPC_PORT=6334
2052
+ # QDRANT_API_KEY=
2053
+ # QDRANT_COLLECTION=omniroute-memory
2054
+ # QDRANT_EMBEDDING_MODEL=text-embedding-3-small
2055
+ # QDRANT_VECTOR_SIZE=1536
2056
+ # QDRANT_HNSW_EF_CONSTRUCT=128
2057
+
2058
+ # ── Cluster Profile: Bifrost Tier-1 Router (opt-in via `docker compose --profile bifrost up`) ──
2059
+ # Bifrost is an OPTIONAL Go-based Tier-1 router that handles the upstream-provider
2060
+ # multiplexing layer. Default: OmniRoute's open-sse/executors/bifrost.ts in-process
2061
+ # executor handles routing directly. Flip this profile on only if you want the
2062
+ # gateway as a separate sidecar (helps in 3+ replica deployments where you want
2063
+ # provider rotation centralised). See docs/architecture/cluster-decisions.md §
2064
+ # "Bifrost (bifrost profile)".
2065
+ # Set OMNIROUTE_RELAY_BACKEND=auto to use this sidecar when healthy, or
2066
+ # OMNIROUTE_RELAY_BACKEND=bifrost to require it without TS fallback.
2067
+ # BIFROST_BASE_URL=http://bifrost:8080
2068
+ # BIFROST_API_KEY=
2069
+ # BIFROST_STREAMING_ENABLED=true
2070
+ # BIFROST_TIMEOUT_MS=30000