omniroute 1.7.2 → 1.7.4

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 (843) hide show
  1. package/README.ar.md +4 -0
  2. package/README.bg.md +4 -0
  3. package/README.da.md +4 -0
  4. package/README.de.md +13 -9
  5. package/README.es.md +13 -9
  6. package/README.fi.md +4 -0
  7. package/README.fr.md +13 -9
  8. package/README.he.md +29 -25
  9. package/README.hu.md +4 -0
  10. package/README.id.md +4 -0
  11. package/README.in.md +4 -0
  12. package/README.it.md +13 -9
  13. package/README.ja.md +4 -0
  14. package/README.ko.md +29 -25
  15. package/README.md +45 -0
  16. package/README.ms.md +4 -0
  17. package/README.nl.md +4 -0
  18. package/README.no.md +4 -0
  19. package/README.phi.md +4 -0
  20. package/README.pl.md +4 -0
  21. package/README.pt-BR.md +29 -25
  22. package/README.pt.md +4 -0
  23. package/README.ro.md +4 -0
  24. package/README.ru.md +13 -9
  25. package/README.sk.md +4 -0
  26. package/README.sv.md +4 -0
  27. package/README.th.md +16 -12
  28. package/README.uk-UA.md +4 -0
  29. package/README.vi.md +4 -0
  30. package/README.zh-CN.md +26 -22
  31. package/app/.env +122 -0
  32. package/app/.next/BUILD_ID +1 -1
  33. package/app/.next/app-path-routes-manifest.json +30 -28
  34. package/app/.next/build-manifest.json +3 -3
  35. package/app/.next/prerender-manifest.json +3 -3
  36. package/app/.next/required-server-files.json +1 -1
  37. package/app/.next/routes-manifest.json +12 -0
  38. package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js +2 -2
  39. package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js +2 -2
  42. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js.nft.json +1 -1
  43. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js +2 -2
  45. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js.nft.json +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +3 -3
  48. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  49. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  51. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  52. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/(dashboard)/dashboard/costs/page.js +2 -2
  54. package/app/.next/server/app/(dashboard)/dashboard/costs/page.js.nft.json +1 -1
  55. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  57. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  58. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/(dashboard)/dashboard/health/page.js +2 -2
  60. package/app/.next/server/app/(dashboard)/dashboard/health/page.js.nft.json +1 -1
  61. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/(dashboard)/dashboard/limits/page.js +2 -2
  63. package/app/.next/server/app/(dashboard)/dashboard/limits/page.js.nft.json +1 -1
  64. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/(dashboard)/dashboard/logs/page.js +2 -2
  66. package/app/.next/server/app/(dashboard)/dashboard/logs/page.js.nft.json +1 -1
  67. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/(dashboard)/dashboard/media/page.js +2 -2
  69. package/app/.next/server/app/(dashboard)/dashboard/media/page.js.nft.json +1 -1
  70. package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js +2 -2
  72. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js.nft.json +1 -1
  73. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  75. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  76. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  78. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  79. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  80. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  81. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  82. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  84. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  85. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  87. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  88. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js +2 -2
  90. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js.nft.json +1 -1
  91. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js +2 -2
  93. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
  94. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  95. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +3 -3
  96. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  97. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  98. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  99. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  100. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  101. package/app/.next/server/app/_global-error/page.js +3 -3
  102. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  103. package/app/.next/server/app/_global-error.html +2 -2
  104. package/app/.next/server/app/_global-error.rsc +4 -4
  105. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +4 -4
  106. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  107. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  108. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  109. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  110. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  111. package/app/.next/server/app/_not-found/page.js +2 -2
  112. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  113. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  114. package/app/.next/server/app/api/auth/login/route.js +1 -1
  115. package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  116. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  117. package/app/.next/server/app/api/auth/logout/route.js +1 -1
  118. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  119. package/app/.next/server/app/api/auth/status/route.js +1 -1
  120. package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  121. package/app/.next/server/app/api/cache/route.js +1 -1
  122. package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/cache/stats/route.js +1 -1
  124. package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  126. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  127. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  128. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
  129. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  130. package/app/.next/server/app/api/cli-tools/backups/route.js +2 -2
  131. package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  133. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  134. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +2 -2
  135. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +2 -2
  137. package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
  138. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
  139. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  140. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
  141. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route.js +1 -1
  143. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
  144. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  145. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  146. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  147. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
  149. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/cli-tools/status/route.js +2 -2
  151. package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
  152. package/app/.next/server/app/api/cloud/auth/route.js +1 -1
  153. package/app/.next/server/app/api/cloud/auth/route.js.nft.json +1 -1
  154. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  155. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
  156. package/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json +1 -1
  157. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  158. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
  159. package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +1 -1
  160. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  161. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  162. package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +1 -1
  163. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  164. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  165. package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  166. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  167. package/app/.next/server/app/api/combos/metrics/route.js +1 -1
  168. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  169. package/app/.next/server/app/api/combos/route.js +1 -1
  170. package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
  171. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  172. package/app/.next/server/app/api/combos/test/route.js +1 -1
  173. package/app/.next/server/app/api/combos/test/route.js.nft.json +1 -1
  174. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  175. package/app/.next/server/app/api/compliance/audit-log/route.js +1 -1
  176. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  177. package/app/.next/server/app/api/db-backups/export/route.js +1 -1
  178. package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
  179. package/app/.next/server/app/api/db-backups/exportAll/route.js +1 -1
  180. package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
  181. package/app/.next/server/app/api/db-backups/import/route.js +1 -1
  182. package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
  183. package/app/.next/server/app/api/db-backups/route.js +1 -1
  184. package/app/.next/server/app/api/db-backups/route.js.nft.json +1 -1
  185. package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app/api/evals/[suiteId]/route.js +1 -1
  187. package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
  188. package/app/.next/server/app/api/evals/route.js +1 -1
  189. package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
  190. package/app/.next/server/app/api/fallback/chains/route.js +2 -2
  191. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  192. package/app/.next/server/app/api/init/route.js +1 -1
  193. package/app/.next/server/app/api/init/route.js.nft.json +1 -1
  194. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  195. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  196. package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
  197. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  198. package/app/.next/server/app/api/keys/route.js +1 -1
  199. package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
  200. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  201. package/app/.next/server/app/api/logs/console/route.js +1 -1
  202. package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
  203. package/app/.next/server/app/api/models/alias/route.js +1 -1
  204. package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
  205. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  206. package/app/.next/server/app/api/models/availability/route.js +1 -1
  207. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  208. package/app/.next/server/app/api/models/catalog/route.js +2 -2
  209. package/app/.next/server/app/api/models/catalog/route.js.nft.json +1 -1
  210. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  211. package/app/.next/server/app/api/models/route.js +2 -2
  212. package/app/.next/server/app/api/models/route.js.nft.json +1 -1
  213. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  214. package/app/.next/server/app/api/monitoring/health/route.js +2 -2
  215. package/app/.next/server/app/api/monitoring/health/route.js.nft.json +1 -1
  216. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
  217. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +2 -2
  218. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  219. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  220. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +1 -1
  221. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  222. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  223. package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  224. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  225. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  226. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  227. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  228. package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  229. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  230. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  231. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  232. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  233. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  234. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  235. package/app/.next/server/app/api/policies/route.js +2 -2
  236. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  237. package/app/.next/server/app/api/pricing/defaults/route.js +1 -1
  238. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  239. package/app/.next/server/app/api/pricing/models/route.js +1 -1
  240. package/app/.next/server/app/api/pricing/models/route.js.nft.json +1 -1
  241. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  242. package/app/.next/server/app/api/pricing/route.js +1 -1
  243. package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
  244. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  245. package/app/.next/server/app/api/provider-metrics/route.js +2 -2
  246. package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
  247. package/app/.next/server/app/api/provider-models/route.js +1 -1
  248. package/app/.next/server/app/api/provider-models/route.js.nft.json +1 -1
  249. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  250. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  251. package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  252. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  253. package/app/.next/server/app/api/provider-nodes/route.js +2 -2
  254. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  255. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  256. package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  257. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  258. package/app/.next/server/app/api/providers/[id]/models/route.js +2 -2
  259. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  260. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  261. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  262. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  263. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  264. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  265. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  266. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  267. package/app/.next/server/app/api/providers/client/route.js +1 -1
  268. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  269. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  270. package/app/.next/server/app/api/providers/route.js +2 -2
  271. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  272. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  273. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  274. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  275. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  276. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  277. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  278. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  279. package/app/.next/server/app/api/rate-limit/route.js +1 -1
  280. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  281. package/app/.next/server/app/api/rate-limits/route.js +1 -1
  282. package/app/.next/server/app/api/rate-limits/route.js.nft.json +1 -1
  283. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  284. package/app/.next/server/app/api/resilience/reset/route.js +1 -1
  285. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  286. package/app/.next/server/app/api/resilience/route.js +1 -1
  287. package/app/.next/server/app/api/resilience/route.js.nft.json +1 -1
  288. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  289. package/app/.next/server/app/api/restart/route.js +1 -1
  290. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  291. package/app/.next/server/app/api/sessions/route.js +1 -1
  292. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  293. package/app/.next/server/app/api/settings/background-degradation/route.js +1 -0
  294. package/app/.next/server/app/api/settings/background-degradation/route.js.nft.json +1 -0
  295. package/app/.next/server/app/api/settings/background-degradation/route_client-reference-manifest.js +1 -0
  296. package/app/.next/server/app/api/settings/combo-defaults/route.js +1 -1
  297. package/app/.next/server/app/api/settings/combo-defaults/route.js.nft.json +1 -1
  298. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  299. package/app/.next/server/app/api/settings/ip-filter/route.js +1 -1
  300. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  301. package/app/.next/server/app/api/settings/model-aliases/route.js +1 -0
  302. package/app/.next/server/app/api/settings/model-aliases/route.js.nft.json +1 -0
  303. package/app/.next/server/app/api/settings/model-aliases/route_client-reference-manifest.js +1 -0
  304. package/app/.next/server/app/api/settings/proxy/route.js +1 -1
  305. package/app/.next/server/app/api/settings/proxy/route.js.nft.json +1 -1
  306. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  307. package/app/.next/server/app/api/settings/proxy/test/route.js +1 -1
  308. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  309. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  310. package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
  311. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  312. package/app/.next/server/app/api/settings/route.js +1 -1
  313. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  314. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  315. package/app/.next/server/app/api/settings/system-prompt/route.js +1 -1
  316. package/app/.next/server/app/api/settings/system-prompt/route.js.nft.json +1 -1
  317. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  318. package/app/.next/server/app/api/settings/thinking-budget/route.js +1 -1
  319. package/app/.next/server/app/api/settings/thinking-budget/route.js.nft.json +1 -1
  320. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  321. package/app/.next/server/app/api/shutdown/route.js +1 -1
  322. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  323. package/app/.next/server/app/api/storage/health/route.js +1 -1
  324. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  325. package/app/.next/server/app/api/sync/cloud/route.js +1 -1
  326. package/app/.next/server/app/api/sync/cloud/route.js.nft.json +1 -1
  327. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  328. package/app/.next/server/app/api/sync/initialize/route.js +1 -1
  329. package/app/.next/server/app/api/sync/initialize/route.js.nft.json +1 -1
  330. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  331. package/app/.next/server/app/api/tags/route.js +1 -1
  332. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  333. package/app/.next/server/app/api/telemetry/summary/route.js +1 -1
  334. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  335. package/app/.next/server/app/api/token-health/route.js +1 -1
  336. package/app/.next/server/app/api/token-health/route.js.nft.json +1 -1
  337. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  338. package/app/.next/server/app/api/translator/detect/route.js +1 -1
  339. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  340. package/app/.next/server/app/api/translator/history/route.js +1 -1
  341. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  342. package/app/.next/server/app/api/translator/load/route.js +1 -1
  343. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  344. package/app/.next/server/app/api/translator/save/route.js +1 -1
  345. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  346. package/app/.next/server/app/api/translator/send/route.js +1 -1
  347. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  348. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  349. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  350. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  351. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  352. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  353. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  354. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  355. package/app/.next/server/app/api/usage/analytics/route.js +1 -1
  356. package/app/.next/server/app/api/usage/analytics/route.js.nft.json +1 -1
  357. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  358. package/app/.next/server/app/api/usage/budget/route.js +2 -2
  359. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  360. package/app/.next/server/app/api/usage/call-logs/[id]/route.js +1 -1
  361. package/app/.next/server/app/api/usage/call-logs/[id]/route.js.nft.json +1 -1
  362. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  363. package/app/.next/server/app/api/usage/call-logs/route.js +1 -1
  364. package/app/.next/server/app/api/usage/call-logs/route.js.nft.json +1 -1
  365. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  366. package/app/.next/server/app/api/usage/history/route.js +1 -1
  367. package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  368. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  369. package/app/.next/server/app/api/usage/logs/route.js +1 -1
  370. package/app/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
  371. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  372. package/app/.next/server/app/api/usage/proxy-logs/route.js +1 -1
  373. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  374. package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
  375. package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  376. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  377. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  378. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  379. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  380. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  381. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  382. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  383. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  384. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  385. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  386. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  387. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  388. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  389. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  390. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  391. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  392. package/app/.next/server/app/api/v1/images/generations/route.js +1 -1
  393. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  394. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  395. package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  396. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  397. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  398. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  399. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  400. package/app/.next/server/app/api/v1/models/route.js +2 -2
  401. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  402. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  403. package/app/.next/server/app/api/v1/moderations/route.js +1 -1
  404. package/app/.next/server/app/api/v1/moderations/route.js.nft.json +1 -1
  405. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  406. package/app/.next/server/app/api/v1/music/generations/route.js +1 -1
  407. package/app/.next/server/app/api/v1/music/generations/route.js.nft.json +1 -1
  408. package/app/.next/server/app/api/v1/music/generations/route_client-reference-manifest.js +1 -1
  409. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js +1 -1
  410. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js.nft.json +1 -1
  411. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  412. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js +1 -1
  413. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js.nft.json +1 -1
  414. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  415. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js +1 -1
  416. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js.nft.json +1 -1
  417. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  418. package/app/.next/server/app/api/v1/rerank/route.js +1 -1
  419. package/app/.next/server/app/api/v1/rerank/route.js.nft.json +1 -1
  420. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  421. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  422. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  423. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  424. package/app/.next/server/app/api/v1/route.js +1 -1
  425. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  426. package/app/.next/server/app/api/v1/videos/generations/route.js +1 -1
  427. package/app/.next/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  428. package/app/.next/server/app/api/v1/videos/generations/route_client-reference-manifest.js +1 -1
  429. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  430. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  431. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  432. package/app/.next/server/app/api/v1beta/models/route.js +2 -2
  433. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  434. package/app/.next/server/app/callback/page.js +2 -2
  435. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  436. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  437. package/app/.next/server/app/docs/page.js +3 -3
  438. package/app/.next/server/app/docs/page.js.nft.json +1 -1
  439. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  440. package/app/.next/server/app/forbidden/page.js +2 -2
  441. package/app/.next/server/app/forbidden/page.js.nft.json +1 -1
  442. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  443. package/app/.next/server/app/forgot-password/page.js +2 -2
  444. package/app/.next/server/app/forgot-password/page.js.nft.json +1 -1
  445. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  446. package/app/.next/server/app/landing/page.js +2 -2
  447. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  448. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  449. package/app/.next/server/app/login/page.js +2 -2
  450. package/app/.next/server/app/login/page.js.nft.json +1 -1
  451. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  452. package/app/.next/server/app/page.js +2 -2
  453. package/app/.next/server/app/page.js.nft.json +1 -1
  454. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  455. package/app/.next/server/app/privacy/page.js +2 -2
  456. package/app/.next/server/app/privacy/page.js.nft.json +1 -1
  457. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  458. package/app/.next/server/app/terms/page.js +2 -2
  459. package/app/.next/server/app/terms/page.js.nft.json +1 -1
  460. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  461. package/app/.next/server/app-paths-manifest.json +30 -28
  462. package/app/.next/server/chunks/1248.js +1 -1
  463. package/app/.next/server/chunks/1308.js +1 -1
  464. package/app/.next/server/chunks/1526.js +1 -1
  465. package/app/.next/server/chunks/1584.js +1 -1
  466. package/app/.next/server/chunks/1623.js +1 -1
  467. package/app/.next/server/chunks/1880.js +1 -1
  468. package/app/.next/server/chunks/1960.js +1 -1
  469. package/app/.next/server/chunks/1990.js +1 -1
  470. package/app/.next/server/chunks/2180.js +1 -1
  471. package/app/.next/server/chunks/2214.js +1 -1
  472. package/app/.next/server/chunks/2372.js +1 -1
  473. package/app/.next/server/chunks/2594.js +1 -1
  474. package/app/.next/server/chunks/2767.js +1 -1
  475. package/app/.next/server/chunks/2901.js +2 -2
  476. package/app/.next/server/chunks/2910.js +1 -1
  477. package/app/.next/server/chunks/3371.js +1 -1
  478. package/app/.next/server/chunks/3447.js +1 -1
  479. package/app/.next/server/chunks/3498.js +1 -1
  480. package/app/.next/server/chunks/3596.js +1 -1
  481. package/app/.next/server/chunks/3801.js +2 -0
  482. package/app/.next/server/chunks/3911.js +1 -1
  483. package/app/.next/server/chunks/4488.js +1 -1
  484. package/app/.next/server/chunks/4568.js +1 -1
  485. package/app/.next/server/chunks/496.js +1 -1
  486. package/app/.next/server/chunks/5047.js +1 -1
  487. package/app/.next/server/chunks/5094.js +1 -1
  488. package/app/.next/server/chunks/5097.js +1 -1
  489. package/app/.next/server/chunks/5521.js +1 -1
  490. package/app/.next/server/chunks/5945.js +1 -1
  491. package/app/.next/server/chunks/6118.js +1 -1
  492. package/app/.next/server/chunks/6930.js +1 -1
  493. package/app/.next/server/chunks/7011.js +1 -1
  494. package/app/.next/server/chunks/708.js +1 -1
  495. package/app/.next/server/chunks/7109.js +1 -1
  496. package/app/.next/server/chunks/7230.js +2 -2
  497. package/app/.next/server/chunks/7650.js +1 -1
  498. package/app/.next/server/chunks/8020.js +3 -3
  499. package/app/.next/server/chunks/8220.js +1 -1
  500. package/app/.next/server/chunks/8464.js +1 -1
  501. package/app/.next/server/chunks/8706.js +1 -1
  502. package/app/.next/server/chunks/8976.js +1 -1
  503. package/app/.next/server/chunks/9119.js +1 -1
  504. package/app/.next/server/chunks/944.js +1 -1
  505. package/app/.next/server/chunks/9548.js +1 -0
  506. package/app/.next/server/chunks/9679.js +1 -0
  507. package/app/.next/server/chunks/9824.js +2 -2
  508. package/app/.next/server/chunks/9837.js +1 -1
  509. package/app/.next/server/middleware-build-manifest.js +1 -1
  510. package/app/.next/server/middleware.js +3 -3
  511. package/app/.next/server/next-font-manifest.js +1 -1
  512. package/app/.next/server/next-font-manifest.json +1 -1
  513. package/app/.next/server/pages/500.html +2 -2
  514. package/app/.next/server/server-reference-manifest.js +1 -1
  515. package/app/.next/server/server-reference-manifest.json +1 -1
  516. package/app/.next/static/a624rqqXG_QtNPqv8ZMWa/_buildManifest.js +1 -0
  517. package/app/.next/static/chunks/5846-1dad4fadf761e0d8.js +2 -0
  518. package/app/.next/static/chunks/{993-035473765d7d1871.js → 993-9f36b0b069ca090e.js} +2 -2
  519. package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/loading-ce5214cdf489c9df.js +1 -0
  520. package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/{page-52f76c7c91444ec2.js → page-20786f2c7fdbab57.js} +1 -1
  521. package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-12d772841a253032.js +1 -0
  522. package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-c9b98846b8479f3f.js +1 -0
  523. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-5e34630a5dc32825.js +15 -0
  524. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/{page-3dce7fccfcf177dd.js → page-85a3e6a423aceded.js} +1 -1
  525. package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/{page-3ed2a7685adf9b91.js → page-cdb8071441476da9.js} +1 -1
  526. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-588b8bc3c4e631e0.js +1 -0
  527. package/app/.next/static/chunks/app/(dashboard)/dashboard/health/{page-9a6519bf1468f16e.js → page-b480b3cb318782d7.js} +1 -1
  528. package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-0ae1d6cc5fc4671f.js +1 -0
  529. package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/{page-833d24f322a20f5a.js → page-ffdc1dcf074c7528.js} +1 -1
  530. package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-72b768421394b42c.js +1 -0
  531. package/app/.next/static/chunks/app/(dashboard)/dashboard/onboarding/{page-d424641c7e428be9.js → page-5378e9473a20cd6a.js} +1 -1
  532. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-5c87e49261a22fd5.js +1 -0
  533. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-6301a4ed902b878a.js +1 -0
  534. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-b38f2d03bae8166a.js +1 -0
  535. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/{error-2f0177a2197dd556.js → error-f0730d6d62d02e82.js} +1 -1
  536. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/{loading-99ab4d478260d53b.js → loading-59cbccd6d5185ca9.js} +1 -1
  537. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-a7fb36872be60fe0.js +1 -0
  538. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/{page-1f022385b812b987.js → page-40dc5ac82df708e9.js} +1 -1
  539. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/{error-e844916e39172c8b.js → error-cc85c3ff1f63aea6.js} +1 -1
  540. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/{loading-bb068659ee679ff4.js → loading-19fc771a287bcb4c.js} +1 -1
  541. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-1550a2460948273c.js +1 -0
  542. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/pricing/{page-f10a8d4bb8236913.js → page-cbe9b21b62bbc2bd.js} +1 -1
  543. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/{page-83b07523f81d6282.js → page-534e13a69cb60a4f.js} +1 -1
  544. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/{page-9cc99ab874fc36e7.js → page-86a076d820931a30.js} +1 -1
  545. package/app/.next/static/chunks/app/(dashboard)/{layout-00d5d56af65098a9.js → layout-16302e54f9ef3d0e.js} +1 -1
  546. package/app/.next/static/chunks/app/_global-error/page-6301a4ed902b878a.js +1 -0
  547. package/app/.next/static/chunks/app/_not-found/page-6301a4ed902b878a.js +1 -0
  548. package/app/.next/static/chunks/app/api/auth/login/route-6301a4ed902b878a.js +1 -0
  549. package/app/.next/static/chunks/app/api/auth/logout/route-6301a4ed902b878a.js +1 -0
  550. package/app/.next/static/chunks/app/api/auth/status/route-6301a4ed902b878a.js +1 -0
  551. package/app/.next/static/chunks/app/api/cache/route-6301a4ed902b878a.js +1 -0
  552. package/app/.next/static/chunks/app/api/cache/stats/route-6301a4ed902b878a.js +1 -0
  553. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-6301a4ed902b878a.js +1 -0
  554. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-6301a4ed902b878a.js +1 -0
  555. package/app/.next/static/chunks/app/api/cli-tools/backups/route-6301a4ed902b878a.js +1 -0
  556. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-6301a4ed902b878a.js +1 -0
  557. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-6301a4ed902b878a.js +1 -0
  558. package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-6301a4ed902b878a.js +1 -0
  559. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-6301a4ed902b878a.js +1 -0
  560. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-6301a4ed902b878a.js +1 -0
  561. package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-6301a4ed902b878a.js +1 -0
  562. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-6301a4ed902b878a.js +1 -0
  563. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-6301a4ed902b878a.js +1 -0
  564. package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-6301a4ed902b878a.js +1 -0
  565. package/app/.next/static/chunks/app/api/cli-tools/status/route-6301a4ed902b878a.js +1 -0
  566. package/app/.next/static/chunks/app/api/cloud/auth/route-6301a4ed902b878a.js +1 -0
  567. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-6301a4ed902b878a.js +1 -0
  568. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-6301a4ed902b878a.js +1 -0
  569. package/app/.next/static/chunks/app/api/cloud/models/alias/route-6301a4ed902b878a.js +1 -0
  570. package/app/.next/static/chunks/app/api/combos/[id]/route-6301a4ed902b878a.js +1 -0
  571. package/app/.next/static/chunks/app/api/combos/metrics/route-6301a4ed902b878a.js +1 -0
  572. package/app/.next/static/chunks/app/api/combos/route-6301a4ed902b878a.js +1 -0
  573. package/app/.next/static/chunks/app/api/combos/test/route-6301a4ed902b878a.js +1 -0
  574. package/app/.next/static/chunks/app/api/compliance/audit-log/route-6301a4ed902b878a.js +1 -0
  575. package/app/.next/static/chunks/app/api/db-backups/export/route-6301a4ed902b878a.js +1 -0
  576. package/app/.next/static/chunks/app/api/db-backups/exportAll/route-6301a4ed902b878a.js +1 -0
  577. package/app/.next/static/chunks/app/api/db-backups/import/route-6301a4ed902b878a.js +1 -0
  578. package/app/.next/static/chunks/app/api/db-backups/route-6301a4ed902b878a.js +1 -0
  579. package/app/.next/static/chunks/app/api/evals/[suiteId]/route-6301a4ed902b878a.js +1 -0
  580. package/app/.next/static/chunks/app/api/evals/route-6301a4ed902b878a.js +1 -0
  581. package/app/.next/static/chunks/app/api/fallback/chains/route-6301a4ed902b878a.js +1 -0
  582. package/app/.next/static/chunks/app/api/init/route-6301a4ed902b878a.js +1 -0
  583. package/app/.next/static/chunks/app/api/keys/[id]/route-6301a4ed902b878a.js +1 -0
  584. package/app/.next/static/chunks/app/api/keys/route-6301a4ed902b878a.js +1 -0
  585. package/app/.next/static/chunks/app/api/logs/console/route-6301a4ed902b878a.js +1 -0
  586. package/app/.next/static/chunks/app/api/models/alias/route-6301a4ed902b878a.js +1 -0
  587. package/app/.next/static/chunks/app/api/models/availability/route-6301a4ed902b878a.js +1 -0
  588. package/app/.next/static/chunks/app/api/models/catalog/route-6301a4ed902b878a.js +1 -0
  589. package/app/.next/static/chunks/app/api/models/route-6301a4ed902b878a.js +1 -0
  590. package/app/.next/static/chunks/app/api/monitoring/health/route-6301a4ed902b878a.js +1 -0
  591. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-6301a4ed902b878a.js +1 -0
  592. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-6301a4ed902b878a.js +1 -0
  593. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-6301a4ed902b878a.js +1 -0
  594. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-6301a4ed902b878a.js +1 -0
  595. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-6301a4ed902b878a.js +1 -0
  596. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-6301a4ed902b878a.js +1 -0
  597. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-6301a4ed902b878a.js +1 -0
  598. package/app/.next/static/chunks/app/api/policies/route-6301a4ed902b878a.js +1 -0
  599. package/app/.next/static/chunks/app/api/pricing/defaults/route-6301a4ed902b878a.js +1 -0
  600. package/app/.next/static/chunks/app/api/pricing/models/route-6301a4ed902b878a.js +1 -0
  601. package/app/.next/static/chunks/app/api/pricing/route-6301a4ed902b878a.js +1 -0
  602. package/app/.next/static/chunks/app/api/provider-metrics/route-6301a4ed902b878a.js +1 -0
  603. package/app/.next/static/chunks/app/api/provider-models/route-6301a4ed902b878a.js +1 -0
  604. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-6301a4ed902b878a.js +1 -0
  605. package/app/.next/static/chunks/app/api/provider-nodes/route-6301a4ed902b878a.js +1 -0
  606. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-6301a4ed902b878a.js +1 -0
  607. package/app/.next/static/chunks/app/api/providers/[id]/models/route-6301a4ed902b878a.js +1 -0
  608. package/app/.next/static/chunks/app/api/providers/[id]/route-6301a4ed902b878a.js +1 -0
  609. package/app/.next/static/chunks/app/api/providers/[id]/test/route-6301a4ed902b878a.js +1 -0
  610. package/app/.next/static/chunks/app/api/providers/client/route-6301a4ed902b878a.js +1 -0
  611. package/app/.next/static/chunks/app/api/providers/route-6301a4ed902b878a.js +1 -0
  612. package/app/.next/static/chunks/app/api/providers/test-batch/route-6301a4ed902b878a.js +1 -0
  613. package/app/.next/static/chunks/app/api/providers/validate/route-6301a4ed902b878a.js +1 -0
  614. package/app/.next/static/chunks/app/api/rate-limit/route-6301a4ed902b878a.js +1 -0
  615. package/app/.next/static/chunks/app/api/rate-limits/route-6301a4ed902b878a.js +1 -0
  616. package/app/.next/static/chunks/app/api/resilience/reset/route-6301a4ed902b878a.js +1 -0
  617. package/app/.next/static/chunks/app/api/resilience/route-6301a4ed902b878a.js +1 -0
  618. package/app/.next/static/chunks/app/api/restart/route-6301a4ed902b878a.js +1 -0
  619. package/app/.next/static/chunks/app/api/sessions/route-6301a4ed902b878a.js +1 -0
  620. package/app/.next/static/chunks/app/api/settings/background-degradation/route-6301a4ed902b878a.js +1 -0
  621. package/app/.next/static/chunks/app/api/settings/combo-defaults/route-6301a4ed902b878a.js +1 -0
  622. package/app/.next/static/chunks/app/api/settings/ip-filter/route-6301a4ed902b878a.js +1 -0
  623. package/app/.next/static/chunks/app/api/settings/model-aliases/route-6301a4ed902b878a.js +1 -0
  624. package/app/.next/static/chunks/app/api/settings/proxy/route-6301a4ed902b878a.js +1 -0
  625. package/app/.next/static/chunks/app/api/settings/proxy/test/route-6301a4ed902b878a.js +1 -0
  626. package/app/.next/static/chunks/app/api/settings/require-login/route-6301a4ed902b878a.js +1 -0
  627. package/app/.next/static/chunks/app/api/settings/route-6301a4ed902b878a.js +1 -0
  628. package/app/.next/static/chunks/app/api/settings/system-prompt/route-6301a4ed902b878a.js +1 -0
  629. package/app/.next/static/chunks/app/api/settings/thinking-budget/route-6301a4ed902b878a.js +1 -0
  630. package/app/.next/static/chunks/app/api/shutdown/route-6301a4ed902b878a.js +1 -0
  631. package/app/.next/static/chunks/app/api/storage/health/route-6301a4ed902b878a.js +1 -0
  632. package/app/.next/static/chunks/app/api/sync/cloud/route-6301a4ed902b878a.js +1 -0
  633. package/app/.next/static/chunks/app/api/sync/initialize/route-6301a4ed902b878a.js +1 -0
  634. package/app/.next/static/chunks/app/api/tags/route-6301a4ed902b878a.js +1 -0
  635. package/app/.next/static/chunks/app/api/telemetry/summary/route-6301a4ed902b878a.js +1 -0
  636. package/app/.next/static/chunks/app/api/token-health/route-6301a4ed902b878a.js +1 -0
  637. package/app/.next/static/chunks/app/api/translator/detect/route-6301a4ed902b878a.js +1 -0
  638. package/app/.next/static/chunks/app/api/translator/history/route-6301a4ed902b878a.js +1 -0
  639. package/app/.next/static/chunks/app/api/translator/load/route-6301a4ed902b878a.js +1 -0
  640. package/app/.next/static/chunks/app/api/translator/save/route-6301a4ed902b878a.js +1 -0
  641. package/app/.next/static/chunks/app/api/translator/send/route-6301a4ed902b878a.js +1 -0
  642. package/app/.next/static/chunks/app/api/translator/translate/route-6301a4ed902b878a.js +1 -0
  643. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-6301a4ed902b878a.js +1 -0
  644. package/app/.next/static/chunks/app/api/usage/analytics/route-6301a4ed902b878a.js +1 -0
  645. package/app/.next/static/chunks/app/api/usage/budget/route-6301a4ed902b878a.js +1 -0
  646. package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-6301a4ed902b878a.js +1 -0
  647. package/app/.next/static/chunks/app/api/usage/call-logs/route-6301a4ed902b878a.js +1 -0
  648. package/app/.next/static/chunks/app/api/usage/history/route-6301a4ed902b878a.js +1 -0
  649. package/app/.next/static/chunks/app/api/usage/logs/route-6301a4ed902b878a.js +1 -0
  650. package/app/.next/static/chunks/app/api/usage/proxy-logs/route-6301a4ed902b878a.js +1 -0
  651. package/app/.next/static/chunks/app/api/usage/request-logs/route-6301a4ed902b878a.js +1 -0
  652. package/app/.next/static/chunks/app/api/v1/api/chat/route-6301a4ed902b878a.js +1 -0
  653. package/app/.next/static/chunks/app/api/v1/audio/speech/route-6301a4ed902b878a.js +1 -0
  654. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-6301a4ed902b878a.js +1 -0
  655. package/app/.next/static/chunks/app/api/v1/chat/completions/route-6301a4ed902b878a.js +1 -0
  656. package/app/.next/static/chunks/app/api/v1/embeddings/route-6301a4ed902b878a.js +1 -0
  657. package/app/.next/static/chunks/app/api/v1/images/generations/route-6301a4ed902b878a.js +1 -0
  658. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-6301a4ed902b878a.js +1 -0
  659. package/app/.next/static/chunks/app/api/v1/messages/route-6301a4ed902b878a.js +1 -0
  660. package/app/.next/static/chunks/app/api/v1/models/route-6301a4ed902b878a.js +1 -0
  661. package/app/.next/static/chunks/app/api/v1/moderations/route-6301a4ed902b878a.js +1 -0
  662. package/app/.next/static/chunks/app/api/v1/music/generations/route-6301a4ed902b878a.js +1 -0
  663. package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-6301a4ed902b878a.js +1 -0
  664. package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-6301a4ed902b878a.js +1 -0
  665. package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-6301a4ed902b878a.js +1 -0
  666. package/app/.next/static/chunks/app/api/v1/rerank/route-6301a4ed902b878a.js +1 -0
  667. package/app/.next/static/chunks/app/api/v1/responses/route-6301a4ed902b878a.js +1 -0
  668. package/app/.next/static/chunks/app/api/v1/route-6301a4ed902b878a.js +1 -0
  669. package/app/.next/static/chunks/app/api/v1/videos/generations/route-6301a4ed902b878a.js +1 -0
  670. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-6301a4ed902b878a.js +1 -0
  671. package/app/.next/static/chunks/app/api/v1beta/models/route-6301a4ed902b878a.js +1 -0
  672. package/app/.next/static/chunks/app/callback/{page-585a53f7dc6a30f1.js → page-0f0ebc0820dd18a5.js} +1 -1
  673. package/app/.next/static/chunks/app/docs/{page-2fe9dcbeb3f738c0.js → page-3658b3f15df3a19e.js} +1 -1
  674. package/app/.next/static/chunks/app/{error-0d59fc4efafbc38c.js → error-f918d9961a2368d3.js} +1 -1
  675. package/app/.next/static/chunks/app/forbidden/page-77657dfa95e61cd8.js +1 -0
  676. package/app/.next/static/chunks/app/forgot-password/page-be3bacc125c30a6b.js +1 -0
  677. package/app/.next/static/chunks/app/global-error-504ff9093e2a997d.js +1 -0
  678. package/app/.next/static/chunks/app/landing/page-75b0c988db383cfc.js +1 -0
  679. package/app/.next/static/chunks/app/{layout-108592eafb959363.js → layout-070972eb026af319.js} +1 -1
  680. package/app/.next/static/chunks/app/login/{page-121c612ee459e7c2.js → page-6c769465e407368f.js} +1 -1
  681. package/app/.next/static/chunks/app/not-found-11b712c853d93172.js +1 -0
  682. package/app/.next/static/chunks/app/page-6301a4ed902b878a.js +1 -0
  683. package/app/.next/static/chunks/app/privacy/{page-2fe9dcbeb3f738c0.js → page-3658b3f15df3a19e.js} +1 -1
  684. package/app/.next/static/chunks/app/terms/{page-2fe9dcbeb3f738c0.js → page-3658b3f15df3a19e.js} +1 -1
  685. package/app/.next/static/chunks/{main-app-c9da11a8061df107.js → main-app-ae230f6bf51a5edb.js} +1 -1
  686. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-6301a4ed902b878a.js +1 -0
  687. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-6301a4ed902b878a.js +1 -0
  688. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-6301a4ed902b878a.js +1 -0
  689. package/app/.next/static/css/bcd1741aee9d39ab.css +1 -0
  690. package/app/package.json +1 -1
  691. package/app/server.js +1 -1
  692. package/package.json +1 -1
  693. package/app/.next/server/chunks/5248.js +0 -1
  694. package/app/.next/server/chunks/5393.js +0 -2
  695. package/app/.next/static/chunks/5846-9e0f1f3afcbfb08c.js +0 -2
  696. package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/loading-6f1750506292c630.js +0 -1
  697. package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-1dd4d0c348a7b0a6.js +0 -1
  698. package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-e5bf8955e7b9a4f5.js +0 -1
  699. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-77ab26722f5c56c7.js +0 -15
  700. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-1420c3ca376f1585.js +0 -1
  701. package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-f4a2d6d07df5ddc4.js +0 -1
  702. package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-1d0ca9b5d3eaf7cd.js +0 -1
  703. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-388840686801f3f5.js +0 -1
  704. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-cab2fb7f592d3c36.js +0 -1
  705. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-9c8ffb212f855704.js +0 -1
  706. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-31cdb6e15134d8c2.js +0 -1
  707. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-1393d4935fc087cf.js +0 -1
  708. package/app/.next/static/chunks/app/_global-error/page-cab2fb7f592d3c36.js +0 -1
  709. package/app/.next/static/chunks/app/_not-found/page-cab2fb7f592d3c36.js +0 -1
  710. package/app/.next/static/chunks/app/api/auth/login/route-cab2fb7f592d3c36.js +0 -1
  711. package/app/.next/static/chunks/app/api/auth/logout/route-cab2fb7f592d3c36.js +0 -1
  712. package/app/.next/static/chunks/app/api/auth/status/route-cab2fb7f592d3c36.js +0 -1
  713. package/app/.next/static/chunks/app/api/cache/route-cab2fb7f592d3c36.js +0 -1
  714. package/app/.next/static/chunks/app/api/cache/stats/route-cab2fb7f592d3c36.js +0 -1
  715. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-cab2fb7f592d3c36.js +0 -1
  716. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-cab2fb7f592d3c36.js +0 -1
  717. package/app/.next/static/chunks/app/api/cli-tools/backups/route-cab2fb7f592d3c36.js +0 -1
  718. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-cab2fb7f592d3c36.js +0 -1
  719. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-cab2fb7f592d3c36.js +0 -1
  720. package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-cab2fb7f592d3c36.js +0 -1
  721. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-cab2fb7f592d3c36.js +0 -1
  722. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-cab2fb7f592d3c36.js +0 -1
  723. package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-cab2fb7f592d3c36.js +0 -1
  724. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-cab2fb7f592d3c36.js +0 -1
  725. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-cab2fb7f592d3c36.js +0 -1
  726. package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-cab2fb7f592d3c36.js +0 -1
  727. package/app/.next/static/chunks/app/api/cli-tools/status/route-cab2fb7f592d3c36.js +0 -1
  728. package/app/.next/static/chunks/app/api/cloud/auth/route-cab2fb7f592d3c36.js +0 -1
  729. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-cab2fb7f592d3c36.js +0 -1
  730. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-cab2fb7f592d3c36.js +0 -1
  731. package/app/.next/static/chunks/app/api/cloud/models/alias/route-cab2fb7f592d3c36.js +0 -1
  732. package/app/.next/static/chunks/app/api/combos/[id]/route-cab2fb7f592d3c36.js +0 -1
  733. package/app/.next/static/chunks/app/api/combos/metrics/route-cab2fb7f592d3c36.js +0 -1
  734. package/app/.next/static/chunks/app/api/combos/route-cab2fb7f592d3c36.js +0 -1
  735. package/app/.next/static/chunks/app/api/combos/test/route-cab2fb7f592d3c36.js +0 -1
  736. package/app/.next/static/chunks/app/api/compliance/audit-log/route-cab2fb7f592d3c36.js +0 -1
  737. package/app/.next/static/chunks/app/api/db-backups/export/route-cab2fb7f592d3c36.js +0 -1
  738. package/app/.next/static/chunks/app/api/db-backups/exportAll/route-cab2fb7f592d3c36.js +0 -1
  739. package/app/.next/static/chunks/app/api/db-backups/import/route-cab2fb7f592d3c36.js +0 -1
  740. package/app/.next/static/chunks/app/api/db-backups/route-cab2fb7f592d3c36.js +0 -1
  741. package/app/.next/static/chunks/app/api/evals/[suiteId]/route-cab2fb7f592d3c36.js +0 -1
  742. package/app/.next/static/chunks/app/api/evals/route-cab2fb7f592d3c36.js +0 -1
  743. package/app/.next/static/chunks/app/api/fallback/chains/route-cab2fb7f592d3c36.js +0 -1
  744. package/app/.next/static/chunks/app/api/init/route-cab2fb7f592d3c36.js +0 -1
  745. package/app/.next/static/chunks/app/api/keys/[id]/route-cab2fb7f592d3c36.js +0 -1
  746. package/app/.next/static/chunks/app/api/keys/route-cab2fb7f592d3c36.js +0 -1
  747. package/app/.next/static/chunks/app/api/logs/console/route-cab2fb7f592d3c36.js +0 -1
  748. package/app/.next/static/chunks/app/api/models/alias/route-cab2fb7f592d3c36.js +0 -1
  749. package/app/.next/static/chunks/app/api/models/availability/route-cab2fb7f592d3c36.js +0 -1
  750. package/app/.next/static/chunks/app/api/models/catalog/route-cab2fb7f592d3c36.js +0 -1
  751. package/app/.next/static/chunks/app/api/models/route-cab2fb7f592d3c36.js +0 -1
  752. package/app/.next/static/chunks/app/api/monitoring/health/route-cab2fb7f592d3c36.js +0 -1
  753. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-cab2fb7f592d3c36.js +0 -1
  754. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-cab2fb7f592d3c36.js +0 -1
  755. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-cab2fb7f592d3c36.js +0 -1
  756. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-cab2fb7f592d3c36.js +0 -1
  757. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-cab2fb7f592d3c36.js +0 -1
  758. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-cab2fb7f592d3c36.js +0 -1
  759. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-cab2fb7f592d3c36.js +0 -1
  760. package/app/.next/static/chunks/app/api/policies/route-cab2fb7f592d3c36.js +0 -1
  761. package/app/.next/static/chunks/app/api/pricing/defaults/route-cab2fb7f592d3c36.js +0 -1
  762. package/app/.next/static/chunks/app/api/pricing/models/route-cab2fb7f592d3c36.js +0 -1
  763. package/app/.next/static/chunks/app/api/pricing/route-cab2fb7f592d3c36.js +0 -1
  764. package/app/.next/static/chunks/app/api/provider-metrics/route-cab2fb7f592d3c36.js +0 -1
  765. package/app/.next/static/chunks/app/api/provider-models/route-cab2fb7f592d3c36.js +0 -1
  766. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-cab2fb7f592d3c36.js +0 -1
  767. package/app/.next/static/chunks/app/api/provider-nodes/route-cab2fb7f592d3c36.js +0 -1
  768. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-cab2fb7f592d3c36.js +0 -1
  769. package/app/.next/static/chunks/app/api/providers/[id]/models/route-cab2fb7f592d3c36.js +0 -1
  770. package/app/.next/static/chunks/app/api/providers/[id]/route-cab2fb7f592d3c36.js +0 -1
  771. package/app/.next/static/chunks/app/api/providers/[id]/test/route-cab2fb7f592d3c36.js +0 -1
  772. package/app/.next/static/chunks/app/api/providers/client/route-cab2fb7f592d3c36.js +0 -1
  773. package/app/.next/static/chunks/app/api/providers/route-cab2fb7f592d3c36.js +0 -1
  774. package/app/.next/static/chunks/app/api/providers/test-batch/route-cab2fb7f592d3c36.js +0 -1
  775. package/app/.next/static/chunks/app/api/providers/validate/route-cab2fb7f592d3c36.js +0 -1
  776. package/app/.next/static/chunks/app/api/rate-limit/route-cab2fb7f592d3c36.js +0 -1
  777. package/app/.next/static/chunks/app/api/rate-limits/route-cab2fb7f592d3c36.js +0 -1
  778. package/app/.next/static/chunks/app/api/resilience/reset/route-cab2fb7f592d3c36.js +0 -1
  779. package/app/.next/static/chunks/app/api/resilience/route-cab2fb7f592d3c36.js +0 -1
  780. package/app/.next/static/chunks/app/api/restart/route-cab2fb7f592d3c36.js +0 -1
  781. package/app/.next/static/chunks/app/api/sessions/route-cab2fb7f592d3c36.js +0 -1
  782. package/app/.next/static/chunks/app/api/settings/combo-defaults/route-cab2fb7f592d3c36.js +0 -1
  783. package/app/.next/static/chunks/app/api/settings/ip-filter/route-cab2fb7f592d3c36.js +0 -1
  784. package/app/.next/static/chunks/app/api/settings/proxy/route-cab2fb7f592d3c36.js +0 -1
  785. package/app/.next/static/chunks/app/api/settings/proxy/test/route-cab2fb7f592d3c36.js +0 -1
  786. package/app/.next/static/chunks/app/api/settings/require-login/route-cab2fb7f592d3c36.js +0 -1
  787. package/app/.next/static/chunks/app/api/settings/route-cab2fb7f592d3c36.js +0 -1
  788. package/app/.next/static/chunks/app/api/settings/system-prompt/route-cab2fb7f592d3c36.js +0 -1
  789. package/app/.next/static/chunks/app/api/settings/thinking-budget/route-cab2fb7f592d3c36.js +0 -1
  790. package/app/.next/static/chunks/app/api/shutdown/route-cab2fb7f592d3c36.js +0 -1
  791. package/app/.next/static/chunks/app/api/storage/health/route-cab2fb7f592d3c36.js +0 -1
  792. package/app/.next/static/chunks/app/api/sync/cloud/route-cab2fb7f592d3c36.js +0 -1
  793. package/app/.next/static/chunks/app/api/sync/initialize/route-cab2fb7f592d3c36.js +0 -1
  794. package/app/.next/static/chunks/app/api/tags/route-cab2fb7f592d3c36.js +0 -1
  795. package/app/.next/static/chunks/app/api/telemetry/summary/route-cab2fb7f592d3c36.js +0 -1
  796. package/app/.next/static/chunks/app/api/token-health/route-cab2fb7f592d3c36.js +0 -1
  797. package/app/.next/static/chunks/app/api/translator/detect/route-cab2fb7f592d3c36.js +0 -1
  798. package/app/.next/static/chunks/app/api/translator/history/route-cab2fb7f592d3c36.js +0 -1
  799. package/app/.next/static/chunks/app/api/translator/load/route-cab2fb7f592d3c36.js +0 -1
  800. package/app/.next/static/chunks/app/api/translator/save/route-cab2fb7f592d3c36.js +0 -1
  801. package/app/.next/static/chunks/app/api/translator/send/route-cab2fb7f592d3c36.js +0 -1
  802. package/app/.next/static/chunks/app/api/translator/translate/route-cab2fb7f592d3c36.js +0 -1
  803. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-cab2fb7f592d3c36.js +0 -1
  804. package/app/.next/static/chunks/app/api/usage/analytics/route-cab2fb7f592d3c36.js +0 -1
  805. package/app/.next/static/chunks/app/api/usage/budget/route-cab2fb7f592d3c36.js +0 -1
  806. package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-cab2fb7f592d3c36.js +0 -1
  807. package/app/.next/static/chunks/app/api/usage/call-logs/route-cab2fb7f592d3c36.js +0 -1
  808. package/app/.next/static/chunks/app/api/usage/history/route-cab2fb7f592d3c36.js +0 -1
  809. package/app/.next/static/chunks/app/api/usage/logs/route-cab2fb7f592d3c36.js +0 -1
  810. package/app/.next/static/chunks/app/api/usage/proxy-logs/route-cab2fb7f592d3c36.js +0 -1
  811. package/app/.next/static/chunks/app/api/usage/request-logs/route-cab2fb7f592d3c36.js +0 -1
  812. package/app/.next/static/chunks/app/api/v1/api/chat/route-cab2fb7f592d3c36.js +0 -1
  813. package/app/.next/static/chunks/app/api/v1/audio/speech/route-cab2fb7f592d3c36.js +0 -1
  814. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-cab2fb7f592d3c36.js +0 -1
  815. package/app/.next/static/chunks/app/api/v1/chat/completions/route-cab2fb7f592d3c36.js +0 -1
  816. package/app/.next/static/chunks/app/api/v1/embeddings/route-cab2fb7f592d3c36.js +0 -1
  817. package/app/.next/static/chunks/app/api/v1/images/generations/route-cab2fb7f592d3c36.js +0 -1
  818. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-cab2fb7f592d3c36.js +0 -1
  819. package/app/.next/static/chunks/app/api/v1/messages/route-cab2fb7f592d3c36.js +0 -1
  820. package/app/.next/static/chunks/app/api/v1/models/route-cab2fb7f592d3c36.js +0 -1
  821. package/app/.next/static/chunks/app/api/v1/moderations/route-cab2fb7f592d3c36.js +0 -1
  822. package/app/.next/static/chunks/app/api/v1/music/generations/route-cab2fb7f592d3c36.js +0 -1
  823. package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-cab2fb7f592d3c36.js +0 -1
  824. package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-cab2fb7f592d3c36.js +0 -1
  825. package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-cab2fb7f592d3c36.js +0 -1
  826. package/app/.next/static/chunks/app/api/v1/rerank/route-cab2fb7f592d3c36.js +0 -1
  827. package/app/.next/static/chunks/app/api/v1/responses/route-cab2fb7f592d3c36.js +0 -1
  828. package/app/.next/static/chunks/app/api/v1/route-cab2fb7f592d3c36.js +0 -1
  829. package/app/.next/static/chunks/app/api/v1/videos/generations/route-cab2fb7f592d3c36.js +0 -1
  830. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-cab2fb7f592d3c36.js +0 -1
  831. package/app/.next/static/chunks/app/api/v1beta/models/route-cab2fb7f592d3c36.js +0 -1
  832. package/app/.next/static/chunks/app/forbidden/page-df886dfa2d5bd9fa.js +0 -1
  833. package/app/.next/static/chunks/app/forgot-password/page-2a495f0b0c653ab4.js +0 -1
  834. package/app/.next/static/chunks/app/global-error-41eef2a698918fc1.js +0 -1
  835. package/app/.next/static/chunks/app/landing/page-9d540ab1716f8e3e.js +0 -1
  836. package/app/.next/static/chunks/app/not-found-1dbd8c3e506fe00f.js +0 -1
  837. package/app/.next/static/chunks/app/page-cab2fb7f592d3c36.js +0 -1
  838. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-cab2fb7f592d3c36.js +0 -1
  839. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-cab2fb7f592d3c36.js +0 -1
  840. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-cab2fb7f592d3c36.js +0 -1
  841. package/app/.next/static/css/b77490a14619ffbb.css +0 -1
  842. package/app/.next/static/ozfkuTtQLl3_rnlOdkSZi/_buildManifest.js +0 -1
  843. /package/app/.next/static/{ozfkuTtQLl3_rnlOdkSZi → a624rqqXG_QtNPqv8ZMWa}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=1526,exports.ids=[1526],exports.modules={61526:a=>{a.exports=JSON.parse('{"common":{"save":"Сохранить","cancel":"Отмена","delete":"Удалить","loading":"Загрузка...","error":"Произошла ошибка","success":"Успех","confirm":"Вы уверены?","refresh":"Обновить","close":"Закрыть","add":"Добавить","edit":"Редактировать","search":"Поиск","back":"Назад","next":"Далее","submit":"Отправить","reset":"Сброс","copy":"Копировать","copied":"Скопировано!","enabled":"Включено","disabled":"Отключено","active":"Активный","inactive":"Неактивный","noData":"Нет доступных данных","configure":"Настроить","manage":"Управление","name":"Имя","actions":"Действия","status":"Статус","type":"Тип","model":"Модель","models":"модели","provider":"Поставщик","account":"Аккаунт","time":"Время","details":"Подробности","created":"Создано","lastUsed":"Последнее использование","loadMore":"Загрузить больше","noResults":"Результаты не найдены","reloadPage":"Обновить страницу","connected":"Подключено","disconnected":"Отключено","notConfigured":"Не настроено","testConnection":"Тестовое соединение","enable":"Включить","disable":"Отключить","columns":"Столбцы","newest":"Новейший","oldest":"Самый старый","all":"Все","none":"Нет","yes":"Да","no":"Нет","warning":"Предупреждение","note":"Примечание","free":"Бесплатно","skipToContent":"Перейти к содержимому"},"sidebar":{"home":"Главная","dashboard":"Панель управления","providers":"Провайдеры","combos":"Комбо","usage":"Использование","analytics":"Аналитика","costs":"Затраты","health":"Здоровье","limits":"Лимиты и квоты","cliTools":"Инструменты интерфейса командной строки","settings":"Настройки","translator":"Переводчик","docs":"Документы","issues":"Проблемы","endpoint":"Конечная точка","apiManager":"Менеджер API","logs":"Журналы","auditLog":"Журнал аудита","shutdown":"Выключение","restart":"Перезапустить","shutdownConfirm":"Выключить OmniRoute?","restartConfirm":"Перезапустить OmniRoute?","version":"v{version}","debug":"Отладка","system":"Система","help":"Помощь","serverDisconnected":"Сервер отключен","serverDisconnectedMsg":"Прокси-сервер остановлен или перезагружается.","expandSidebar":"Развернуть боковую панель","collapseSidebar":"Свернуть боковую панель"},"header":{"logout":"Выход из системы","language":"Язык","providers":"Провайдеры","providerDescription":"Управляйте подключениями к поставщикам ИИ","combos":"Комбо","comboDescription":"Комбинации моделей с резервным вариантом","usage":"Использование и аналитика","usageDescription":"Отслеживайте использование API, потребление токенов и журналы запросов.","analytics":"Аналитика","analyticsDescription":"Диаграммы, тенденции и аналитические сведения об оценках","cliTools":"Инструменты интерфейса командной строки","cliToolsDescription":"Настройка инструментов CLI","home":"Главная","homeDescription":"Добро пожаловать в OmniRoute","endpoint":"Конечная точка","endpointDescription":"Конфигурация конечной точки API","settings":"Настройки","settingsDescription":"Управляйте своими предпочтениями","openaiCompatible":"Совместимость с OpenAI","anthropicCompatible":"Антропная совместимость"},"home":{"quickStart":"Быстрый старт","quickStartDesc":"Приступайте к работе в 4 шага. Подключайте провайдеров, маршрутизируйте модели, контролируйте все.","fullDocs":"Полная документация","step1Title":"1. Создайте ключ API.","step1Desc":"Перейдите к <endpoint>Endpoint</endpoint> -> Зарегистрированные ключи. Создайте один ключ для каждой среды.","step2Title":"2. Подключите провайдеров","step2Desc":"Добавьте учетные записи в <providers>Providers</providers>. Поддерживает OAuth, ключ API и уровни бесплатного пользования.","step3Title":"3. Укажите своего клиента","step3Desc":"Установите базовый URL-адрес {url} в клиенте IDE или API.","step4Title":"4. Мониторинг и оптимизация","step4Desc":"Отслеживайте токены, стоимость и ошибки в <logs>Журналы запросов</logs> и <analytics>Analytics</analytics>.","providersOverview":"Обзор провайдеров","configuredOf":"{configured} настроен из {total} доступных поставщиков","noModelsAvailable":"Нет доступных моделей для этого поставщика.","configureFirst":"Сначала настройте соединение в {providers}.","configureProvider":"Настроить поставщика","modelAvailable":"Доступна модель {count}","modelsAvailable":"Доступно {count} моделей","connectionsActive":"Соединение {count} активно","connectionsActivePlural":"{count} активных соединений","copyModelName":"Скопировать название модели","documentation":"Документация","healthMonitor":"Монитор здоровья","reportIssue":"Сообщить о проблеме","activeError":"{active} активен \xb7 {errors} ошибка","oauthLabel":"OAuth","apiKeyLabel":"API-ключ","requestsShort":"{count} требуется","providerModelsTitle":"{provider} — Модели","copiedModel":"Скопировано: {model}","aliasLabel":"псевдоним"},"analytics":{"title":"Аналитика","overviewDescription":"Отслеживайте шаблоны использования API, потребление токенов, затраты и тенденции активности среди всех поставщиков и моделей.","evalsDescription":"Запустите оценочные пакеты для тестирования и проверки конечных точек LLM. Сравнивайте качество модели, обнаруживайте регрессии и измеряйте задержку тестирования.","overview":"Обзор","evals":"Оценки"},"apiManager":{"title":"API-ключи","createKey":"Создать ключ API","key":"Ключ","revokeKey":"Отозвать ключ","revokeConfirm":"Вы уверены, что хотите отозвать этот ключ API?","noKeys":"Ключей API пока нет","noKeysDesc":"Создайте свой первый ключ API для аутентификации запросов к вашей конечной точке.","keyLabel":"Ключевая этикетка","permissions":"Разрешения","expiresAt":"Срок действия истекает","never":"Никогда","revoke":"Отозвать","showKey":"Показать ключ","hideKey":"Скрыть ключ","copyKey":"Копировать ключ API","allModels":"Все модели","selectedModels":"Выбранные модели","readOnly":"Только чтение","fullAccess":"Полный доступ","keyManagement":"Управление ключами API","keyManagementDesc":"Создавайте ключи API для аутентификации запросов к вашей конечной точке и управляйте ими.","totalKeys":"Всего ключей","restricted":"Ограниченный","totalRequests":"Всего запросов","modelsAvailable":"Доступные модели","registeredKeys":"Зарегистрированные ключи","keysRegistered":"Зарегистрировано {count} ключей","keyRegistered":"Ключ {count} зарегистрирован","keysSecurityNote":"Каждый ключ изолирует отслеживание использования и может быть отозван независимо. Ключи маскируются после создания в целях безопасности.","createFirstKey":"Создайте свой первый ключ","name":"Имя","usage":"Использование","created":"Создано","actions":"Действия","reqs":"требования","neverUsed":"Никогда не использовался","deleteConfirm":"Удалить этот ключ API?","usageTips":"Советы по использованию","tipAuth":"Используйте ключи API в заголовке авторизации в качестве носителя YOUR_KEY.","tipSecure":"Ключи отображаются только один раз во время создания — храните их в надежном месте.","tipSeparate":"Создавайте отдельные ключи для разных клиентов или сред.","tipRestrict":"Ограничьте ключи определенными моделями для повышения безопасности и контроля затрат.","keyName":"Имя ключа","keyNamePlaceholder":"например, Ключ производства, Ключ разработки","keyNameDesc":"Выберите описательное имя, чтобы определить назначение этого ключа.","keyCreated":"Ключ API создан","keyCreatedSuccess":"Ключ успешно создан!","keyCreatedNote":"Скопируйте и сохраните этот ключ сейчас — он больше не будет отображаться.","done":"Готово","savePermissions":"Сохранить разрешения","allowAll":"Разрешить все","restrict":"Ограничить","allowAllInfo":"Этот ключ дает доступ ко всем доступным моделям.","restrictInfo":"Этот ключ может получить доступ к {selected} из моделей {total}.","selected":"{count} выбрано","all":"Все","clear":"Очистить","searchModels":"Поиск моделей по названию или поставщику...","noModelsFound":"Модели не найдены","keyNameRequired":"Укажите имя ключа.","keyNameTooLong":"Имя ключа должно содержать не более {max} символов.","keyNameInvalid":"Имя ключа может содержать только буквы, цифры, пробелы, дефисы и подчеркивания.","invalidKeyName":"Неверное имя ключа","failedCreateKey":"Не удалось создать ключ","failedCreateKeyRetry":"Не удалось создать ключ. Пожалуйста, попробуйте еще раз.","invalidKeyId":"Неверный идентификатор ключа","failedDeleteKey":"Не удалось удалить ключ","failedDeleteKeyRetry":"Не удалось удалить ключ. Пожалуйста, попробуйте еще раз.","invalidModelsSelection":"Неверный выбор моделей","cannotSelectMoreThanModels":"Невозможно выбрать более {max} моделей.","failedUpdatePermissions":"Не удалось обновить разрешения.","failedUpdatePermissionsRetry":"Не удалось обновить разрешения. Пожалуйста, попробуйте еще раз.","unknownProvider":"неизвестно","copyMaskedKey":"Копировать замаскированный ключ","modelsCount":"{count, plural, one {# model} other {# models}}","lastUsedOn":"Последний: {date}","editPermissions":"Редактировать разрешения","deleteKey":"Удалить ключ","model":"{count} модель","models":"{count} модели","permissionsTitle":"Разрешения: {name}","allowAllDesc":"Этот ключ дает доступ ко всем доступным моделям.","restrictDesc":"Этот ключ может получить доступ к {selectedCount} из моделей {totalModels}.","selectedCount":"{count} выбрано"},"auditLog":{"title":"Журнал аудита","searchPlaceholder":"Поиск действий...","action":"Действие","actor":"Актер","target":"Цель","ipAddress":"IP-адрес","timestamp":"Временная метка","noEntries":"Записи аудита не найдены","filterByAction":"Фильтровать по действию...","filterByActor":"Фильтровать по актеру...","filterEntriesAria":"Фильтрация записей журнала аудита","filterByActionTypeAria":"Фильтровать по типу действия","filterByActorAria":"Фильтровать по актеру","refreshAuditLogAria":"Обновить журнал аудита","tableAria":"Записи журнала аудита","failedFetchAuditLog":"Не удалось получить журнал аудита.","notAvailable":"—","description":"Административные действия и события безопасности","showing":"Показаны записи {count} (смещение {offset})","previous":"Предыдущий"},"cliTools":{"title":"Инструменты интерфейса командной строки","noActiveProviders":"Нет активных провайдеров","noActiveProvidersDesc":"Сначала добавьте и подключите поставщиков, чтобы настроить инструменты CLI.","mapModels":"Модели карт","testConnection":"Тестовое соединение","connectionStatus":"Статус соединения","configureEndpoint":"Настроить конечную точку","instructions":"Инструкции","modelMapping":"Сопоставление модели","baseUrl":"Базовый URL","apiKey":"API-ключ","configured":"Настроен","notConfigured":"Не настроено","notInstalled":"Не установлено","custom":"Пользовательский","unknown":"Неизвестно","lastSavedAt":"Последнее сохранение: {date}","never":"Никогда","justNow":"только что","minutesAgoShort":"{count} мин назад","hoursAgoShort":"{count}ч назад","daysAgoShort":"{count}дн назад","monthsAgoShort":"{count}мес. назад","yearsAgoShort":"{count}г назад","runtimeCheckFailed":"Проверка времени выполнения не удалась","yourApiKeyPlaceholder":"ваш-API-ключ","modelPlaceholder":"поставщик/идентификатор модели","configurationSaved":"Конфигурация успешно сохранена.","failedToSave":"Не удалось сохранить конфигурацию.","noApiKeysCreateOne":"Нет ключей API — создайте их на странице \xabКлючи\xbb.","defaultOmnirouteKey":"sk_omniroute (по умолчанию)","selectModel":"Выберите модель","selectModelForAlias":"Выберите модель для {alias}","selectModelForTool":"Выберите модель для {tool}","select":"Выбрать","clear":"Очистить","comingSoon":"Скоро","checkingRuntime":"Проверка статуса выполнения...","guideOnlyIntegration":"Интеграция только для руководства (локальная среда выполнения не требуется)","cliRuntimeDetected":"Среда выполнения CLI обнаружена и готова","cliFoundNotRunnable":"CLI найден, но не работает{reason}","cliRuntimeNotDetected":"Среда выполнения CLI не обнаружена","binary":"Двоичный","configPath":"Путь конфигурации","configPathShort":"Конфигурация","failedCheckRuntimeStatus":"Не удалось проверить статус выполнения.","copy":"Копировать","copied":"Скопировано","copyConfig":"Копировать конфигурацию","saveConfig":"Сохранить конфигурацию","selectionSaved":"Выбор сохранен.","guide":"Руководство","detected":"Обнаружено","notReady":"Не готов","active":"Активный","inactive":"Неактивный","startMitm":"Запустить МИТМ","stopMitm":"Остановить МИТМ","mitmStarted":"MITM стартовал успешно!","mitmStopped":"MITM успешно остановлен!","failedStart":"Не удалось запустить MITM","failedStop":"Не удалось остановить MITM","saveMappings":"Сохранить сопоставления","mappingsSaved":"Сопоставления сохранены!","failedSaveMappings":"Не удалось сохранить сопоставления.","howItWorks":"Как это работает:","antigravityHowWorksDesc":"Антигравитация отправляет запросы на конечную точку Google. MITM перехватывает и перенаправляет их в OmniRoute.","antigravityStep1":"1. Запустите MITM для маршрутизации запросов через OmniRoute.","antigravityStep2Prefix":"2. Добавить","antigravityStep2Suffix":"в файл хостов как 127.0.0.1.","antigravityStep3":"3. Откройте Антигравитацию и запросы будут проксироваться.","sudoPasswordRequiredTitle":"Требуется пароль Sudo","sudoPasswordHint":"Пароль администратора необходим для изменения файлов хостов и настроек системного прокси.","enterSudoPassword":"Введите пароль sudo","sudoPasswordRequiredError":"Требуется пароль Sudo.","cancel":"Отмена","confirm":"Подтвердить","settingsApplied":"Настройки успешно применены!","failedApplySettings":"Не удалось применить настройки.","settingsReset":"Настройки успешно сброшены!","failedResetSettings":"Не удалось сбросить настройки","backupRestored":"Бэкап восстановлен!","failedRestore":"Не удалось восстановить","checkingCli":"Проверка {tool} CLI...","cliNotRunnable":"{tool} CLI установлен, но не запускается","cliNotInstalled":"{tool} CLI не установлен","cliNotDetected":"{tool} CLI не обнаружен","cliDetectedReady":"{tool} CLI обнаружен и готов","cliFoundFailedHealthcheck":"{tool} CLI найден, но проверка работоспособности во время выполнения не выполнена {reason}.","installCliPrompt":"Чтобы использовать эту функцию, установите {tool} CLI.","installCodexPrompt":"Установите Codex CLI, чтобы использовать функцию автоматического применения.","hide":"Скрыть","howToInstall":"Как установить","installationGuide":"Руководство по установке","platforms":"macOS/Linux/Windows:","afterInstallationRun":"После установки запустите","toVerify":"чтобы проверить.","current":"Текущий","baseUrlPlaceholder":"https://.../v1","resetToDefault":"Сбросить настройки по умолчанию","providerModelPlaceholder":"поставщик/идентификатор модели","apply":"Применить","reset":"Сброс","manualConfig":"Ручная настройка","backups":"Резервные копии","configBackups":"Резервные копии конфигурации","noBackupsYet":"Резервных копий пока нет. Резервные копии создаются автоматически перед каждым применением или сбросом.","restore":"Восстановить","backupRestoredReloading":"Бэкап восстановлен! Статус перезагрузки...","failedRestoreBackup":"Не удалось восстановить резервную копию","applied":"Применено!","failed":"Не удалось","resetDone":"Сбросить!","omnirouteConfiguredOpenAiCompatible":"OmniRoute настроен как поставщик, совместимый с OpenAI.","provider":"Поставщик","model":"Модель","providers":"Провайдеры","auth":"Авторизация","noApiKeysAvailable":"Нет доступных ключей API","usingDefaultOmniroute":"Использование по умолчанию: sk_omniroute","updateConfig":"Обновить конфигурацию","applyConfig":"Применить конфигурацию","noBackupsAvailable":"Резервные копии отсутствуют.","profileSaved":"Профиль \xab{name}\xbb сохранен!","failedSaveProfile":"Не удалось сохранить профиль","profileActivated":"Профиль активирован!","failedActivateProfile":"Не удалось активировать профиль","profiles":"Профили","savedProfiles":"Сохраненные профили","noProfilesYet":"Ни один профиль еще не сохранен. Сохраните текущую конфигурацию как профиль ниже.","activate":"Активировать","deleteProfile":"Удалить профиль","profileNamePlaceholder":"Имя профиля (например, Личный кабинет)","saveCurrent":"Сохранить текущий","codexAuthNotePrefix":"Кодекс использует","codexAuthNoteMiddle":"с","codexAuthNoteSuffix":"Нажмите \xabПрименить\xbb для автоматической настройки.","claudeManualConfiguration":"Клод CLI — ручная настройка","codexManualConfiguration":"Интерфейс командной строки Codex — ручная настройка","droidManualConfiguration":"Заводской дроид – ручная настройка","openClawManualConfiguration":"Открытый коготь — ручная настройка","clineManualConfiguration":"Ручная настройка Cline","kiloManualConfiguration":"Ручная настройка кода Kilo","toolDescriptions":{"antigravity":"Google Antigravity IDE с MITM","claude":"Антропный код Клода CLI","codex":"Интерфейс командной строки Кодекса OpenAI","droid":"Искусственный интеллект заводского дроида","openclaw":"Открытый ИИ-помощник когтя","cline":"Cline AI Coding Assistant CLI","kilo":"Интерфейс командной строки Kilo Code AI Assistant","cursor":"Редактор кода курсора AI","continue":"Продолжить AI-помощник"},"guides":{"cursor":{"notes":{"0":"Для использования этой функции требуется учетная запись Cursor Pro.","1":"Курсор маршрутизирует запросы через собственный сервер, поэтому локальная конечная точка не поддерживается. Пожалуйста, включите Cloud Endpoint в настройках."},"steps":{"1":{"title":"Открыть настройки","desc":"Зайдите в Настройки -> Модели."},"2":{"title":"Включить API OpenAI","desc":"Включите опцию \xabКлюч OpenAI API\xbb."},"3":{"title":"Базовый URL"},"4":{"title":"API-ключ"},"5":{"title":"Добавить пользовательскую модель","desc":"Нажмите \xabПросмотреть всю модель\xbb -> \xabДобавить пользовательскую модель\xbb."},"6":{"title":"Выберите модель"}}},"continue":{"steps":{"1":{"title":"Открыть конфигурацию","desc":"Открыть файл конфигурации \xabПродолжить\xbb"},"2":{"title":"API-ключ"},"3":{"title":"Выберите модель"},"4":{"title":"Добавить конфигурацию модели","desc":"Добавьте следующую конфигурацию в массив моделей:"}}}}},"combos":{"title":"Комбо","description":"Создавайте комбинации моделей с взвешенной маршрутизацией и поддержкой резервного варианта.","createCombo":"Создать комбо","editCombo":"Редактировать комбо","deleteCombo":"Удалить комбо","noModels":"Нет моделей","noModelsYet":"Модели еще не добавлены","addModel":"Добавить модель","addModelToCombo":"Добавить модель в комбинацию","routingStrategy":"Стратегия маршрутизации","maxRetries":"Макс. повторов","timeout":"Тайм-аут (мс)","healthcheck":"Проверка здоровья","priority":"Приоритет","fallback":"Резервный вариант","roundRobin":"Круговая система","random":"Случайный","leastLatency":"Наименьшая задержка","comboName":"Имя комбинации","comboNamePlaceholder":"мое комбо","deleteConfirm":"Удалить это комбо?","noCombosYet":"Комбинаций пока нет","comboCreated":"Комбо успешно создано","comboUpdated":"Комбо успешно обновлено","comboDeleted":"Комбо удалено.","failedCreate":"Не удалось создать комбо","failedUpdate":"Не удалось обновить комбо.","errorCreating":"Ошибка создания комбо","errorUpdating":"Ошибка обновления комбо","errorDeleting":"Ошибка удаления комбо.","testFailed":"Тестовый запрос не выполнен","failedToggle":"Не удалось переключить комбо.","testResults":"Результаты теста — {name}","resolvedBy":"Решено:","more":"+{count} подробнее","reqs":"требования","success":"успех","proxyConfigured":"Прокси настроен","copyComboName":"Скопировать название комбинации","enableCombo":"Включить комбо","disableCombo":"Отключить комбо","testCombo":"Тестовое комбо","duplicate":"Дублировать","proxyConfig":"Конфигурация прокси","nameRequired":"Требуется имя","nameInvalid":"Только буквы, цифры, -, _, / и . разрешено","nameHint":"Буквы, цифры, -, _, / и . разрешено","priorityDesc":"Последовательный откат: сначала пробуется модель 1, затем 2 и т.\xa0д.","weightedDesc":"Распределяет трафик по весовому проценту с резервным вариантом","roundRobinDesc":"Круговое распределение: каждый запрос переходит к следующей модели по очереди.","randomDesc":"Равномерный случайный выбор, затем возврат к оставшимся моделям","leastUsedDesc":"Выбирает модель с наименьшим количеством запросов, балансируя нагрузку с течением времени.","costOptimizedDesc":"Маршруты к самой дешевой модели в первую очередь на основе цены","models":"Модели","autoBalance":"Автобаланс","advancedSettings":"Расширенные настройки","retryDelay":"Задержка повтора (мс)","concurrencyPerModel":"Параллелизм/модель","queueTimeout":"Тайм-аут очереди (мс)","advancedHint":"Оставьте пустым, чтобы использовать глобальные значения по умолчанию. Они переопределяют настройки каждого провайдера.","moveUp":"Вверх","moveDown":"Двигаться вниз","removeModel":"Удалить","saving":"Сохранение...","weighted":"Взвешенный","leastUsed":"Наименее используемый","costOpt":"Цена-опция"},"costs":{"title":"Затраты","budget":"Бюджет","totalCost":"Общая стоимость","breakdown":"Распределение затрат","noData":"Нет данных о стоимости","byModel":"По модели","byProvider":"По поставщику"},"endpoint":{"title":"Конечная точка API","available":"Доступные конечные точки","cloudProxy":"Облачный прокси","disableConfirm":"Вы уверены, что хотите отключить облачный прокси?","baseUrl":"Базовый URL","apiKeyLabel":"API-ключ","registeredKeys":"Зарегистрированные ключи","chatCompletions":"Завершения чата","responses":"Ответы","listModels":"Получение списка моделей","usingCloudProxy":"Использование облачного прокси","usingLocalServer":"Использование локального сервера","machineId":"Идентификатор машины: {id}...","disableCloud":"Отключить облако","enableCloud":"Включить облако","modelsAcrossEndpoints":"{models} модели на {endpoints} конечных точках","chatDesc":"Потоковое и непотоковое чат со всеми провайдерами","embeddings":"Вложения","embeddingsDesc":"Встраивание текста для конвейеров поиска и RAG","imageGeneration":"Генерация изображений","imageDesc":"Генерация изображений из текстовых подсказок","rerank":"Изменить рейтинг","rerankDesc":"Изменение ранжирования документов по релевантности запросу","audioTranscription":"Аудио транскрипция","audioTranscriptionDesc":"Транскрипция аудиофайлов в текст (шепотом)","textToSpeech":"Преобразование текста в речь","textToSpeechDesc":"Преобразование текста в естественно звучащую речь","moderations":"Модерации","moderationsDesc":"Модерация контента и классификация безопасности","enableCloudTitle":"Включить облачный прокси","whatYouGet":"Что вы получите","cloudBenefitAccess":"Доступ к вашему API из любой точки мира","cloudBenefitShare":"Легко делитесь конечной точкой со своей командой","cloudBenefitPorts":"Нет необходимости открывать порты или настраивать брандмауэр","cloudBenefitEdge":"Быстрая глобальная периферийная сеть","cloudSessionNote":"Cloud сохранит ваш сеанс аутентификации в течение 1\xa0дня. Если он не используется, он будет автоматически удален.","cloudUnstableNote":"Cloud в настоящее время нестабильно работает с Claude Code OAuth в некоторых случаях.","cloudConnected":"Облачный прокси подключен!","connectingToCloud":"Подключение к облаку...","verifyingConnection":"Проверка соединения...","connecting":"Подключение...","verifying":"Проверка...","connected":"Подключено!","disableCloudTitle":"Отключить облачный прокси","disableWarning":"Все сеансы аутентификации будут удалены из облака.","syncingData":"Синхронизация последних данных...","disablingCloud":"Отключение облака...","syncing":"Синхронизация...","disabling":"Отключение...","cloudConnectedVerified":"Облачный прокси подключен и проверен!","connectedVerificationPending":"Подключено — ожидается проверка","connectedVerificationPendingWithError":"Подключено — ожидается проверка: {error}","cloudDisabledSuccess":"Облако успешно отключено","syncedSuccess":"Синхронизировано успешно","failedDisable":"Не удалось отключить облако.","failedEnable":"Не удалось включить облако","cloudRequestTimeout":"Тайм-аут запроса облака","cloudRequestFailed":"Запрос в облако не выполнен.","cloudWorkerUnreachable":"Не удалось связаться с облачным работником. Убедитесь, что облачная служба запущена (npm run dev в /cloud).","connectionFailed":"Соединение не удалось","syncFailed":"Не удалось синхронизировать облачные данные.","providerModelsTitle":"{provider} — Модели","noModelsForProvider":"Нет доступных моделей для этого поставщика.","chat":"Чат","embedding":"Встраивание","image":"Изображение","custom":"обычай","modelsCount":"{count, plural, one {# model} other {# models}}"},"health":{"title":"Здоровье системы","description":"Мониторинг вашего экземпляра OmniRoute в режиме реального времени","healthy":"Здоровый","degraded":"Деградированный","down":"Вниз","uptime":"Время работы","memory":"Память","memoryRss":"Память (RSS)","heap":"Куча","cpu":"ЦП","database":"База данных","version":"Версия","lastCheck":"Последняя проверка","providerHealth":"Здоровье поставщика","systemMetrics":"Системные метрики","tokenHealth":"Здоровье токена","refreshAll":"Обновить все","checkNow":"Проверьте сейчас","loadingHealth":"Загрузка данных о состоянии здоровья...","failedToLoad":"Не удалось загрузить данные о состоянии: {error}.","retry":"Повторить попытку","allOperational":"Все системы в рабочем состоянии","issuesDetected":"Обнаружены системные проблемы","updatedAt":"Обновлен {time}","latency":"Задержка","latencyP50":"стр50","latencyP95":"стр.95","latencyP99":"стр.99","millisecondsShort":"{value}мс","notAvailable":"—","totalRequests":"Всего запросов","noDataYet":"Данных пока нет","promptCache":"Подскажите кэш","entries":"Записи","hitRate":"Скорость попадания","hitsMisses":"Попадания/промахи","signatureCache":"Кэш подписей","signatureDefaults":"По умолчанию","signatureTool":"Инструмент","signatureFamily":"Семья","signatureSession":"Сессия","recovering":"Восстановление","noCBData":"Данные по автоматическому выключателю отсутствуют. Сначала сделайте несколько запросов.","providerHealthStatusAria":"Состояние здоровья поставщика","issuesLabel":"Обнаружены проблемы","operational":"Оперативный","providers":"Провайдеры","healthyCount":"{count} здоров","nodeVersion":"Узел {version}","failures":"{count} сбой","failuresPlural":"{count} сбоев","lastFailure":"Последний","rateLimitStatus":"Статус ограничения скорости","activeLimiters":"{count} активный ограничитель","activeLimitersPlural":"{count} активные ограничители","queued":"В очереди","queuedCount":"{count} поставлен в очередь","running":"бег","runningCount":"{count} работает","ok":"ОК","activeLockouts":"Активные блокировки","resetConfirm":"Вернуть все автоматические выключатели в исправное состояние? Это очистит все счетчики сбоев и вернет всех поставщиков в рабочее состояние.","resetAllTitle":"Верните все автоматические выключатели в исправное состояние.","resetting":"Сброс...","resetAll":"Сбросить все","until":"До {time}"},"limits":{"title":"Лимиты и квоты","rateLimit":"Ограничение скорости","remaining":"Осталось","requestsPerMinute":"Запросов/мин","tokensPerMinute":"Токенов/мин","dailyLimit":"Дневной лимит"},"logs":{"title":"Журналы","requestLogs":"Запрос журналов","proxyLogs":"Журналы прокси","auditLog":"Журнал аудита","console":"Консоль","auditLogDesc":"Административные действия и события безопасности","loading":"Загрузка...","refresh":"Обновить","filterByAction":"Фильтровать по действию...","filterByActor":"Фильтровать по актеру...","filterEntriesAria":"Фильтрация записей журнала аудита","filterByActionTypeAria":"Фильтровать по типу действия","filterByActorAria":"Фильтровать по актеру","refreshAuditLogAria":"Обновить журнал аудита","tableAria":"Записи журнала аудита","failedFetchAuditLog":"Не удалось получить журнал аудита.","showing":"Показаны записи {count} (смещение {offset})","search":"Поиск","timestamp":"Временная метка","action":"Действие","actor":"Актер","target":"Цель","details":"Подробности","ipAddress":"IP-адрес","notAvailable":"—","noEntries":"Записи журнала аудита не найдены","previous":"Предыдущий","next":"Далее"},"onboarding":{"welcome":"Добро пожаловать","security":"Безопасность","test":"Тест","ready":"Готово!","setPassword":"Установить пароль","addProvider":"Добавьте своего первого провайдера","getStarted":"Начать","skip":"Пропустить","skipWizard":"Полностью пропустить мастер","skipPassword":"Пропустить установку пароля","skipAndContinue":"Пропустить и продолжить","passwordLabel":"Пароль","confirmPassword":"Подтвердите пароль","enterPassword":"Введите пароль","confirmPasswordPlaceholder":"Подтвердите пароль","passwordsMismatch":"Пароли не совпадают","setupComplete":"Настройка завершена!","goToDashboard":"Перейти в личный кабинет →","welcomeDesc":"OmniRoute — это ваш локальный прокси-сервер AI API. Он направляет запросы нескольким поставщикам искусственного интеллекта с балансировкой нагрузки, аварийным переключением и отслеживанием использования.","multiProvider":"Мультипровайдер","usageTracking":"Отслеживание использования","apiKeyMgmt":"Управление ключами API","securityDesc":"Установите пароль для защиты вашей панели управления или пропустите этот шаг.","providerDesc":"Подключите своего первого поставщика искусственного интеллекта. Вы можете добавить больше позже.","apiKeyRequired":"Ключ API (обязательно)","customUrlOptional":"Пользовательский URL-адрес (необязательно)","testDesc":"Давайте проверим, работает ли подключение к вашему провайдеру.","runTest":"Запустить тест соединения","testingConnection":"Тестирование соединения...","connectionSuccessful":"Подключение успешно! Ваш провайдер готов.","noProviderFound":"Поставщик не найден. Вы можете добавить его из панели управления позже.","testFailed":"Тест не пройден, но вы можете настроить это позже.","couldNotTest":"Не удалось проверить сейчас. Вы можете протестировать с панели управления.","doneDesc":"Все готово! Ваш экземпляр OmniRoute настроен и готов к прокси-запросам AI.","yourEndpoint":"Ваша конечная точка:","continue":"Продолжить","retry":"Повторить попытку","failedSetPassword":"Не удалось установить пароль. Попробуйте еще раз.","failedAddProvider":"Не удалось добавить поставщика. Попробуйте еще раз.","connectionError":"Ошибка подключения. Пожалуйста, попробуйте еще раз.","provider":"Поставщик"},"providers":{"title":"Провайдеры","addProvider":"Добавить поставщика","editProvider":"Изменить поставщика","deleteProvider":"Удалить поставщика","noProviders":"Поставщики не настроены","modelAvailability":"Доступность модели","accounts":"Счета","newAccount":"Новая учетная запись","deleteConfirm":"Вы уверены, что хотите удалить этого провайдера?","testing":"Тестирование...","testConnection":"Тестовое соединение","testSuccess":"Соединение успешно","testFailed":"Соединение не удалось","available":"Доступно","cooldown":"Перезарядка","unavailable":"Недоступно","unknown":"Неизвестно","oauthLabel":"OAuth","compatibleLabel":"Совместимый","chat":"Чат","responses":"Ответы","messages":"Сообщения","oauthProviders":"Поставщики OAuth","freeProviders":"Бесплатные провайдеры","apiKeyProviders":"Поставщики ключей API","compatibleProviders":"Поставщики, совместимые с ключами API","testAll":"Проверить все","testAllOAuth":"Проверьте все соединения OAuth","testAllFree":"Проверьте все бесплатные соединения","testAllApiKey":"Проверьте все соединения API-ключей","testAllCompatible":"Проверьте все совместимые соединения","connected":"{count} подключено","errorCount":"{count} Ошибка ({code})","errorCountNoCode":"{count} Ошибка","noConnections":"Нет соединений","disabled":"Отключено","enableProvider":"Включить провайдера","disableProvider":"Отключить провайдера","testResults":"Результаты испытаний","noCompatibleYet":"Совместимых поставщиков пока не добавлено","compatibleHint":"Используйте кнопки выше, чтобы добавить конечные точки, совместимые с OpenAI или Anthropic.","addOpenAICompatible":"Добавить совместимость с OpenAI","addAnthropicCompatible":"Добавить антропную совместимость","addNewProvider":"Добавить нового провайдера","backToProviders":"Вернуться к Провайдерам","configureNewProvider":"Настройте нового поставщика ИИ для использования с вашими приложениями.","providerLabel":"Поставщик","selectProvider":"Выберите провайдера","selectedProvider":"Выбранный провайдер","authMethod":"Метод аутентификации","apiKeyLabel":"API-ключ","apiKeyRequired":"Требуется ключ API","selectProviderRequired":"Пожалуйста, выберите провайдера","enterApiKey":"Введите свой ключ API","apiKeySecure":"Ваш ключ API будет зашифрован и надежно сохранен.","oauth2Connect":"Подключиться с помощью OAuth2","oauth2Label":"ОАут2","oauth2Desc":"Подключите свою учетную запись, используя аутентификацию OAuth2.","displayName":"Отображаемое имя","displayNamePlaceholder":"например, Production API, среда разработки","displayNameHint":"Необязательно. Понятное имя для идентификации этой конфигурации.","active":"Активный","activeDescription":"Включите этого поставщика для использования в ваших приложениях.","cancel":"Отмена","createProvider":"Создать поставщика","failedCreate":"Не удалось создать поставщика","errorOccurred":"Произошла ошибка. Пожалуйста, попробуйте еще раз.","modelStatus":"Статус модели","allModelsOperational":"Все модели в рабочем состоянии","modelsWithIssues":"{count} модели с проблемами","allModelsNormal":"Все модели реагируют нормально.","cooldownCleared":"Время восстановления для {model} очищено.","failedClearCooldown":"Не удалось очистить время восстановления","loadingAvailability":"Загрузка доступности модели...","clearCooldown":"Очистить","clearing":"Очистка...","until":"До {time}","providerTestFailed":"Тест провайдера не пройден","modeTest":"{mode} Тест","passedCount":"{count} пройден","failedCount":"{count} не удалось","testedCount":"{count} проверено","millisecondsAbbr":"{value}мс","okShort":"ОК","errorShort":"ОШИБКА","noActiveConnectionsInGroup":"Для этой группы не найдено активных соединений.","allTestsPassed":"Все тесты {total} пройдены","testSummary":"{passed}/{total} пройден, {failed} не выполнен","nameLabel":"Имя","prefixLabel":"Префикс","baseUrlLabel":"Базовый URL","apiTypeLabel":"Тип API","prefixHint":"Обязательно. Уникальный префикс для названий моделей.","nameHint":"Обязательно. Дружественная метка для этого узла.","baseUrlHint":"Обязательно.  Базовый URL-адрес API поставщика.","anthropicPrefixPlaceholder":"ac-прод","openaiPrefixPlaceholder":"oc-прод","anthropicBaseUrlPlaceholder":"https://api.anthropic.com/v1","openaiBaseUrlPlaceholder":"https://api.openai.com/v1","validateConnection":"Подтвердить соединение","validating":"Проверка...","connectionValid":"Соединение действительно!","connectionFailed":"Соединение не удалось. Проверьте URL и ключ.","testKeyLabel":"Тестовый ключ API","testKeyPlaceholder":"sk-... (только для проверки)","providerNotFound":"Провайдер не найден","deleteConnectionConfirm":"Удалить это соединение?","failedSetAlias":"Не удалось установить псевдоним","failedSaveConnection":"Не удалось сохранить соединение.","failedSaveConnectionRetry":"Не удалось сохранить соединение. Пожалуйста, попробуйте еще раз.","failedRetestConnection":"Не удалось повторно проверить соединение","deleteCompatibleNodeConfirm":"Удалить этот {type} Совместимый узел?","anthropicCompatibleDetails":"Антропные совместимые детали","openaiCompatibleDetails":"Подробности совместимости с OpenAI","messagesApi":"API сообщений","responsesApi":"API ответов","chatCompletions":"Завершения чата","importingModels":"Импорт...","importFromModels":"Импорт из /модели","addConnectionToImport":"Добавьте соединение, чтобы включить импорт.","noModelsConfigured":"Ни одна модель не настроена","connectionCount":"{count} соединение(я)","fetchingModels":"Загрузка доступных моделей...","failedFetchModels":"Не удалось получить модели.","noModelsFound":"Модели не найдены","importFailed":"Импорт не удался","noNewModelsAdded":"Новых моделей не добавлялось.","adding":"Добавление...","importingModelsTitle":"Импорт моделей","copyModel":"Копировать модель","removeModel":"Удалить модель","rateLimitProtected":"Защищено","rateLimitUnprotected":"незащищенный","enableRateLimitProtection":"Нажмите, чтобы включить защиту от ограничения скорости","disableRateLimitProtection":"Нажмите, чтобы отключить защиту ограничения скорости","productionKey":"Производственный ключ","enterNewApiKey":"Введите новый ключ API","optional":"Необязательно","anthropicCompatibleName":"Антропная совместимость","openaiCompatibleName":"Совместимость с OpenAI","failedImportModels":"Не удалось импортировать модели.","noModelsReturnedFromEndpoint":"Ни одна модель не возвращена из конечной точки /models.","importingModelsProgress":"Импорт {current} из {total} моделей...","foundModelsStartingImport":"Найдено {count} моделей. Начинаем импорт...","importingModelById":"Импорт {modelId}...","importSuccessCount":"{count, plural, one {# model} other {# models}} успешно импортирован!","noNewModelsAddedExisting":"Новых моделей не добавлялось (все уже есть).","importDoneCount":"✓ Готово! {count, plural, one {# model imported.} other {# models imported.}}","unexpectedErrorOccurred":"Произошла непредвиденная ошибка","connectionCountLabel":"{count, plural, one {# connection} other {# connections}}","messagesPath":"сообщения","responsesPath":"ответы","chatCompletionsPath":"чат/дополнения","add":"Добавить","edit":"Редактировать","delete":"Удалить","anthropic":"антропный","openai":"ОпенАИ","singleConnectionPerCompatible":"Для каждого совместимого узла разрешено только одно соединение. Добавьте еще один узел, если вам нужно больше соединений.","connections":"Соединения","providerProxyTitleConfigured":"Прокси-сервер провайдера: {host}","configured":"настроен","providerProxyConfigureHint":"Настроить прокси для всех подключений этого провайдера","providerProxy":"Прокси-сервер провайдера","noConnectionsYet":"Пока нет подключений","addFirstConnectionHint":"Добавьте первое соединение, чтобы начать","addConnection":"Добавить соединение","availableModels":"Доступные модели","pageAutoRefresh":"Страница обновится автоматически...","statusDisabled":"отключен","statusConnected":"подключен","statusRuntimeIssue":"проблема во время выполнения","statusAuthFailed":"аутентификация не удалась","statusRateLimited":"ставка ограничена","statusNetworkIssue":"проблема с сетью","statusTestUnsupported":"тест не поддерживается","statusUnavailable":"недоступен","statusFailed":"не удалось","statusError":"ошибка","oauthAccount":"Учетная запись OAuth","errorTypeRuntime":"Локальная среда выполнения","errorTypeUpstreamAuth":"Авторизация восходящего потока","errorTypeMissingCredential":"Отсутствуют учетные данные","errorTypeRefreshFailed":"Обновить не удалось","errorTypeTokenExpired":"Срок действия токена истек","errorTypeRateLimited":"Скорость ограничена","errorTypeUpstreamUnavailable":"Восходящий поток недоступен","errorTypeNetworkError":"Ошибка сети","errorTypeTestUnsupported":"Тест не поддерживается","errorTypeUpstreamError":"Ошибка восходящего потока","proxySourceGlobal":"Глобальный","proxySourceProvider":"Поставщик","proxySourceKey":"Ключ","proxyConfiguredBySource":"Прокси ({source}): {host}","autoPriority":"Авто: {priority}","proxy":"Прокси","retestAuthentication":"Повторная проверка подлинности","retest":"Повторное тестирование","disableConnection":"Отключить соединение","enableConnection":"Включить соединение","reauthenticateConnection":"Повторно аутентифицировать это соединение","proxyConfig":"Конфигурация прокси","aliasExistsAlert":"Псевдоним \xab{alias}\xbb уже существует. Используйте другую модель или измените существующий псевдоним.","openRouterAnyModelHint":"OpenRouter поддерживает любую модель. Добавляйте модели и создавайте псевдонимы для быстрого доступа.","modelIdFromOpenRouter":"Идентификатор модели (из OpenRouter)","openRouterModelPlaceholder":"антропный/Клод-3-опус","customModels":"Пользовательские модели","customModelsHint":"Добавьте идентификаторы моделей, которых нет в списке по умолчанию. Они будут доступны для маршрутизации.","modelId":"Идентификатор модели","customModelPlaceholder":"например gpt-4.5-турбо","loading":"Загрузка...","removeCustomModel":"Удалить пользовательскую модель","noCustomModels":"Пользовательские модели пока не добавлены.","allSuggestedAliasesExist":"Все предложенные псевдонимы уже существуют. Пожалуйста, выберите другую модель или удалите конфликтующие псевдонимы.","failedSaveCustomModel":"Не удалось сохранить пользовательскую модель.","modelAddedSuccess":"Модель {modelId} успешно добавлена","failedAddModelTryAgain":"Не удалось добавить модель. Пожалуйста, попробуйте еще раз.","failedSaveImportedModel":"Не удалось сохранить импортированную модель в пользовательскую базу данных.","failedImportModelsTryAgain":"Не удалось импортировать модели. Пожалуйста, попробуйте еще раз.","failedRemoveModelFromDatabase":"Не удалось удалить модель из базы данных.","modelRemovedSuccess":"Модель успешно удалена","failedDeleteModelTryAgain":"Не удалось удалить модель. Пожалуйста, попробуйте еще раз.","compatibleModelsDescription":"Добавьте модели, совместимые с {type}, вручную или импортируйте их из конечной точки /models.","anthropicCompatibleModelPlaceholder":"Клод-3-опус-20240229","openaiCompatibleModelPlaceholder":"gpt-4o","apiKeyValidationFailed":"Проверка ключа API не удалась. Пожалуйста, проверьте свой ключ и повторите попытку.","addProviderApiKeyTitle":"Добавьте ключ API {provider}","checking":"Проверка...","check":"Проверить","valid":"Действителен","invalid":"Недействительный","creating":"Создание...","validationChecksAnthropicCompatible":"Проверка проверяет {provider} путем проверки ключа API.","validationChecksOpenAiCompatible":"Проверка проверяет {provider} через /models по вашему базовому URL-адресу.","priorityLabel":"Приоритет","saving":"Сохранение...","save":"Сохранить","editConnection":"Изменить соединение","accountName":"Имя учетной записи","email":"электронная почта","healthCheckMinutes":"Проверка здоровья (мин)","healthCheckHint":"Интервал обновления упреждающего токена. 0 = отключено.","failedTestConnection":"Не удалось проверить соединение","failed":"Не удалось","leaveBlankKeepCurrentApiKey":"Оставьте пустым, чтобы сохранить текущий ключ API.","editCompatibleTitle":"Изменить совместимость {type}","compatibleBaseUrlHint":"Используйте базовый URL-адрес (оканчивающийся на /v1) для вашего {type}-совместимого API.","apiKeyForCheck":"API-ключ (для проверки)","compatibleProdPlaceholder":"{type} Совместимость (Прод.)"},"settings":{"title":"Настройки","general":"Общий","security":"Безопасность","appearance":"Внешний вид","routing":"Маршрутизация","cache":"Кэш","resilience":"Устойчивость","systemPrompt":"Системная подсказка","thinkingBudget":"Думая о бюджете","proxy":"Прокси","pricing":"Цены","storage":"Хранение","policies":"Политика","ipFilter":"IP-фильтр","comboDefaults":"Комбинированные значения по умолчанию","fallbackChains":"Резервные цепочки","changePassword":"Изменить пароль","enablePassword":"Включить пароль","darkMode":"Темный режим","lightMode":"Светлый режим","systemTheme":"Системная тема","enableCache":"Включить кеш","cacheTTL":"Срок жизни кэша","maxCacheSize":"Максимальный размер кэша","clearCache":"Очистить кэш","cacheHits":"Попадания в кэш","cacheMisses":"Промахи в кэше","hitRate":"Скорость попадания","cacheEntries":"Записи кэша","circuitBreaker":"Автоматический выключатель","retryPolicy":"Политика повтора","maxRetries":"Макс. повторов","retryDelay":"Задержка повтора","timeoutMs":"Тайм-аут (мс)","enableSystemPrompt":"Включить системную подсказку","systemPromptText":"Текст системной подсказки","enableThinking":"Включить мышление","maxThinkingTokens":"Максимальное количество жетонов мышления","enableProxy":"Включить прокси","proxyUrl":"URL-адрес прокси-сервера","pricingRates":"Формат ценообразования","currentPricing":"Текущий обзор цен","loadingPricing":"Загрузка данных о ценах...","noPricing":"Нет данных о ценах","input":"Ввод","output":"Выход","cached":"Кэшированный","reasoning":"Рассуждение","cacheCreation":"Создание кэша","customPricing":"Индивидуальные цены","databaseSize":"Размер базы данных","backupDb":"Резервное копирование базы данных","restoreDb":"Восстановить базу данных","exportData":"Экспортировать данные","importData":"Импортировать данные","clearData":"Очистить все данные","clearDataConfirm":"Это приведет к безвозвратному удалению всех данных. Вы уверены?","enableRequestLogs":"Включить журналы запросов","logRetention":"Хранение журнала","ipWhitelist":"Белый список IP-адресов","ipBlacklist":"Черный список IP-адресов","addIP":"Добавить IP","savedSuccessfully":"Настройки успешно сохранены","ai":"ИИ","advanced":"Расширенный","localMode":"Локальный режим — все данные хранятся на вашем компьютере.","settingsSectionsAria":"Разделы настроек","switchThemes":"Переключение между светлой и темной темами","themeSelectionAria":"Выбор темы","themeLight":"Свет","themeDark":"Темный","themeSystem":"Система","hideHealthLogs":"Скрыть журналы проверки работоспособности","hideHealthLogsDesc":"Если включено, подавлять сообщения [HealthCheck] в консоли сервера.","promptCache":"Подскажите кэш","flushCache":"Очистить кэш","flushing":"Промывка…","size":"Размер","hits":"Хиты","evictions":"Выселения","loadingCacheStats":"Загрузка статистики кеша…","globalProxy":"Глобальный прокси","globalProxyDesc":"Настройте глобальный исходящий прокси-сервер для всех вызовов API. Отдельные поставщики, комбинации и ключи могут переопределить это.","noGlobalProxy":"Глобальный прокси не настроен","globalLabel":"Глобальный","configure":"Настроить","globalSystemPrompt":"Глобальная системная подсказка","systemPromptDesc":"Внедряется во все запросы на уровне прокси.","saved":"Сохранено","systemPromptPlaceholder":"Введите системное приглашение для внедрения во все запросы...","systemPromptHint":"Это приглашение добавляется к системному сообщению каждого запроса. Используйте для глобальных инструкций, рекомендаций по безопасности или правил форматирования ответов.","chars":"{count} символов","thinkingBudgetTitle":"Думая о бюджете","thinkingBudgetDesc":"Контролируйте использование токенов рассуждения ИИ во всех запросах","passthrough":"Сквозное прохождение","passthroughDesc":"Никаких изменений — клиент контролирует продуманный бюджет","auto":"Авто","autoDesc":"Удалите всю конфигурацию мышления — пусть решает провайдер","custom":"Пользовательский","customDesc":"Установите фиксированный бюджет токенов для всех запросов.","adaptive":"Адаптивный","adaptiveDesc":"Масштабируйте бюджет в зависимости от сложности запроса","effortNone":"Нет (0 токенов)","effortLow":"Низкий (1 тыс. токенов)","effortMedium":"Средний (10 тыс. токенов)","effortHigh":"Высокий (128 тыс. токенов)","tokenBudget":"Бюджет токена","tokens":"жетоны","baseEffortLevel":"Базовый уровень усилий","adaptiveHint":"Адаптивный режим масштабируется от этого базового уровня в зависимости от количества сообщений, использования инструмента и длины подсказки.","requireLogin":"Требовать вход","requireLoginDesc":"При включении приборная панель требует пароль. Когда ВЫКЛ, доступ без входа в систему.","currentPassword":"Текущий пароль","enterCurrentPassword":"Введите текущий пароль","newPassword":"Новый пароль","enterNewPassword":"Введите новый пароль","confirmPassword":"Подтвердите новый пароль","confirmPasswordPlaceholder":"Подтвердите новый пароль","passwordsNoMatch":"Пароли не совпадают","passwordUpdated":"Пароль успешно обновлен","failedUpdatePassword":"Не удалось обновить пароль","errorOccurred":"Произошла ошибка","updatePassword":"Обновить пароль","setPassword":"Установить пароль","apiEndpointProtection":"Защита конечных точек API","requireAuthModels":"Требовать ключ API для /models","requireAuthModelsDesc":"Если включено, конечная точка /v1/models возвращает 404 для неаутентифицированных запросов. Предотвращает обнаружение модели неавторизованными пользователями.","blockedProviders":"Заблокированные провайдеры","blockedProvidersDesc":"Скройте конкретных поставщиков из ответа /v1/models. Заблокированные поставщики не будут отображаться в списках моделей.","providersBlocked":"Поставщик(и) {count} заблокирован в /models","blockProviderTitle":"Блок {provider}","unblockProviderTitle":"Разблокировать {provider}","routingStrategy":"Стратегия маршрутизации","fillFirst":"Сначала заполните","fillFirstDesc":"Используйте учетные записи в порядке приоритета","roundRobin":"Круговая система","roundRobinDesc":"Перебирать все аккаунты","p2c":"P2C","p2cDesc":"Выберите 2 случайных, используйте более здоровый","random":"Случайный","randomDesc":"Случайный аккаунт для каждого запроса","leastUsed":"Наименее используемый","leastUsedDesc":"Выберите наименее использованную учетную запись","costOpt":"Опция стоимости","costOptDesc":"Предпочитаю самый дешевый доступный аккаунт","stickyLimit":"Липкий лимит","stickyLimitDesc":"Звонки на аккаунт до переключения","modelAliases":"Псевдонимы моделей","modelAliasesDesc":"Шаблоны подстановочных знаков для переназначения названий моделей • Используйте * и ?","aliasPatternPlaceholder":"Клод-сонет-*","aliasTargetPlaceholder":"Клод-сонет-4-20250514","pattern":"Узор","targetModel":"Целевая модель","add":"+ Добавить","session":"Сессия","sessionDetailsAria":"Детали сеанса","status":"Статус","authenticated":"Аутентифицированный","guest":"Гость","loginTime":"Время входа в систему","sessionAge":"Возраст сессии","browser":"Браузер","clearLocalData":"Очистить локальные данные","logout":"Выход из системы","clearLocalDataConfirm":"Удалить все локальные данные? Это сбросит ваши настройки.","unknown":"Неизвестно","systemActor":"система","ipAccessControl":"IP-контроль доступа","ipAccessControlDesc":"Блокировать или разрешать определенные IP-адреса","ipModeDisabled":"Отключено","ipModeBlacklist":"Черный список","ipModeWhitelist":"Белый список","ipModeWhitelistPriority":"Приоритет ВЛ","addIpAddress":"Добавить IP-адрес","ipAddressPlaceholder":"192.168.1.0/24 или 10.0.*.*","block":"+ Блокировать","allow":"+ Разрешить","blocked":"Заблокировано ({count})","allowed":"Разрешено ({count})","temporaryBans":"Временные баны ({count})","minLeft":"Осталось {min}\xa0м","auditLog":"Журнал аудита","searchAuditLogs":"Поиск в журналах аудита...","failedLoadAuditLog":"Не удалось загрузить журнал аудита.","noAuditEvents":"События аудита не найдены","action":"Действие","actor":"Актер","details":"Подробности","time":"Время","fallbackChainsTitle":"Резервные цепочки","fallbackChainsDesc":"Определить резервный порядок поставщика для каждой модели","addChain":"+ Добавить цепочку","modelName":"Название модели","modelNamePlaceholder":"Клод-сонет-4-20250514","providersCommaSeparated":"Поставщики (через запятую, в порядке приоритета)","providersCommaSeparatedPlaceholder":"антропный, опенай, близнецы","createChain":"Создать цепочку","noFallbackChains":"Никаких резервных цепочек","noFallbackChainsDesc":"Создайте цепочку, чтобы определить резервный порядок поставщика для модели.","loadingFallbackChains":"Загрузка резервных цепочек...","deleteChainConfirm":"Удалить резервную цепочку для \\"{model}\\"?","chainCreated":"Цепочка создана для {model}","chainDeleted":"Цепочка удалена для {model}.","failedCreateChain":"Не удалось создать цепочку.","failedDeleteChain":"Не удалось удалить цепочку.","deleteChain":"Удалить цепочку","fillModelAndProviders":"Пожалуйста, укажите название модели и поставщиков","addAtLeastOneProvider":"Добавьте хотя бы одного провайдера","comboDefaultsTitle":"Комбинированные значения по умолчанию","globalComboConfig":"Глобальная комбинированная конфигурация","defaultStrategy":"Стратегия по умолчанию","defaultStrategyDesc":"Применяется к новым комбинациям без явной стратегии.","comboStrategyAria":"Комбо-стратегия","priority":"Приоритет","weighted":"Взвешенный","maxRetriesLabel":"Макс. повторов","retryDelayLabel":"Задержка повтора (мс)","timeoutLabel":"Тайм-аут (мс)","healthCheck":"Проверка здоровья","healthCheckDesc":"Предварительная проверка доступности провайдера","trackMetrics":"Отслеживание показателей","trackMetricsDesc":"Запись показателей для каждого комбо-запроса","providerOverrides":"Переопределения поставщика","providerOverridesDesc":"Переопределить тайм-аут и повторные попытки для каждого поставщика. Настройки поставщика переопределяют глобальные настройки по умолчанию.","providerMaxRetriesAria":"{provider} максимальное количество повторов","providerTimeoutAria":"{provider} таймаут мс","removeProviderOverrideAria":"Удалить переопределение {provider}","newProviderNamePlaceholder":"например гугл, опенай...","newProviderNameAria":"Новое имя провайдера","retries":"повторные попытки","ms":"мс","saveComboDefaults":"Сохранить настройки комбинации по умолчанию","maxNestingDepth":"Максимальная глубина вложения","concurrencyPerModel":"Параллелизм/модель","queueTimeout":"Тайм-аут очереди (мс)","providerProfiles":"Профили поставщиков","providerProfilesDesc":"Отдельные настройки устойчивости для поставщиков OAuth (на основе сеанса) и API-ключей (измеренного). Поставщики OAuth имеют более строгие пороговые значения из-за более низких ограничений скорости.","oauthProviders":"Поставщики OAuth","apiKeyProviders":"Поставщики ключей API","transientCooldown":"Временное восстановление","rateLimitCooldown":"Время восстановления лимита скорости","maxBackoffLevel":"Максимальный уровень отсрочки","cbThreshold":"Порог CB","cbResetTime":"Время сброса выключателя","rateLimiting":"Ограничение скорости","rateLimitingDesc":"Поставщики ключей API автоматически ограничиваются по скорости безопасными значениями по умолчанию. Ограничения извлекаются из заголовков ответов и со временем адаптируются.","defaultSafetyNet":"Сеть безопасности по умолчанию","rpm":"об/мин","minGap":"Мин. разрыв","maxConcurrent":"Макс. одновременность","activeLimiters":"Активные лимитеры","noActiveLimiters":"Активных ограничителей скорости пока нет.","reservoir":"водохранилище","running":"Бег","queued":"В очереди","circuitBreakers":"Автоматические выключатели","breakerStateClosed":"Закрыто","breakerStateOpen":"Открыть","breakerStateHalfOpen":"Полуоткрытый","tripped":"{count} сработал","healthy":"{count} здоров","resetAll":"Сбросить все","noCircuitBreakers":"Автоматические выключатели пока не активны. Они создаются автоматически, когда запросы проходят через комбинированный конвейер.","failures":"{count} сбой(и)","policiesLocked":"Политики и заблокированные идентификаторы","allOperational":"Все системы в рабочем состоянии — никаких блокировок или срабатываний выключателей.","loadingPolicies":"Загрузка политик...","lockedIdentifiers":"Заблокированные идентификаторы","unlockedIdentifier":"Разблокировано: {identifier}","sinceDate":"с {date}","forceUnlock":"Принудительная разблокировка","unlocking":"Разблокировка...","failedUnlock":"Не удалось разблокировать","failedLoadWithStatus":"Не удалось загрузить: {status}.","failedLoadResilience":"Не удалось загрузить статус устойчивости.","saveFailed":"Сохранить не удалось","resetFailed":"Сбросить не удалось","loadingResilience":"Загрузка состояния устойчивости...","retry":"Повторить попытку","systemStorage":"Система и хранилище","allDataLocal":"Все данные хранятся локально на вашем компьютере.","databasePath":"Путь к базе данных","exportDatabase":"Экспорт базы данных","exportAll":"Экспортировать все (.tar.gz)","importDatabase":"Импортировать базу данных","confirmDbImport":"Подтвердить импорт базы данных","confirmDbImportDesc":"Это заменит все текущие данные содержимым из {file}. Резервная копия будет создана автоматически перед импортом.","yesImport":"Да, импорт","lastBackup":"Последняя резервная копия","noBackupYet":"Резервной копии пока нет","backupNow":"Резервное копирование сейчас","backupRestore":"Резервное копирование и восстановление","viewBackups":"Просмотр резервных копий","hide":"Скрыть","backupRetentionDesc":"Снимки базы данных создаются автоматически перед восстановлением и каждые 15 минут при изменении данных. Хранение: 24 часа в час + 30 ежедневных резервных копий с умной ротацией.","loadingBackups":"Загрузка резервных копий...","noBackupsYet":"Резервных копий пока нет. Резервные копии будут создаваться автоматически при изменении данных.","backupsAvailable":"Доступно {count} резервных копий","refresh":"Обновить","confirm":"Подтвердить?","yes":"Да","no":"Нет","restore":"Восстановить","invalidFileType":"Неверный тип файла. Принимаются только файлы .sqlite.","exportFailed":"Экспорт не удался","exportFailedWithError":"Не удалось экспортировать: {error}.","fullExportFailedWithError":"Не удалось выполнить полный экспорт: {error}.","backupCreated":"Резервная копия создана: {file}","restoreSuccess":"Восстановлено! {connections} соединений, {nodes} узлов, {combos} комбинаций, {apiKeys} ключей API.","importSuccess":"База данных импортирована! {connections} соединений, {nodes} узлов, {combos} комбинаций, {apiKeys} ключей API.","justNow":"только что","minutesAgo":"{count} мин назад","hoursAgo":"{count}ч назад","daysAgo":"{count}дн назад","backupReasonManual":"руководство","backupReasonPreRestore":"предварительное восстановление","connectionsCount":"{count, plural, one {# connection} other {# connections}}","noChangesSinceBackup":"Никаких изменений с момента последнего резервного копирования","backupFailed":"Резервное копирование не выполнено","restoreFailed":"Восстановление не удалось","importFailed":"Импорт не удался","errorDuringRestore":"Произошла ошибка во время восстановления","errorDuringImport":"Во время импорта произошла ошибка","modelPricing":"Цены на модели","modelPricingDesc":"Настройка ставок стоимости для каждой модели • Все ставки указаны в токенах $/1 млн.","providers":"Провайдеры","registry":"Реестр","priced":"Цена","searchProvidersModels":"Поиск поставщиков или моделей...","showAll":"Показать все","noProvidersMatch":"Ни один поставщик не соответствует вашему запросу.","howPricingWorks":"Как работает ценообразование","cacheWrite":"Запись в кэш","unsaved":"несохраненный","resetDefaults":"Сбросить настройки по умолчанию","saveProvider":"Сохранить поставщика","saving":"Сохранение...","model":"Модель","models":"модели","moreProviders":"{count} больше поставщиков","withPricing":"с настроенной ценой","policiesCircuitBreakers":"Политики и автоматические выключатели","activeIssuesDetected":"Обнаружены активные проблемы","off":"Выкл.","resetPricingConfirm":"Сбросить все цены для {provider} до значений по умолчанию?","pricingDescInput":"Входные данные: токены, отправленные в модель.","pricingDescOutput":"Результат: сгенерированы токены","pricingDescCached":"Кэшировано: повторно используемый ввод (~ 50\xa0% от частоты ввода)","pricingDescReasoning":"Рассуждение: жетоны мышления (возврат к выходу)","pricingDescCacheWrite":"Запись в кэш: создание записей в кэше (возврат к вводу)","pricingDescFormula":"Стоимость = (вход \xd7 входная_ставка) + (выход \xd7 выходная_ставка) + (кэширование \xd7 кэшированная_ставка) за миллион токенов.","pricingSettingsTitle":"Настройки цен","totalModels":"Всего моделей","active":"Активный","costCalculation":"Расчет стоимости","costCalculationDesc":"Затраты рассчитываются на основе использования токенов и ценовых ставок, настроенных для каждой модели.","pricingFormat":"Формат цен","pricingFormatDesc":"Все ставки указаны в токенах $/1M (долларов за миллион токенов).","tokenTypes":"Типы токенов","inputTokenDesc":"Стандартные токены подсказок","outputTokenDesc":"Жетоны завершения/ответа","cachedTokenDesc":"Кэшированные входные токены (обычно 50\xa0% от скорости ввода)","reasoningTokenDesc":"Специальные жетоны рассуждения/мышления (возврат к скорости вывода)","cacheCreationTokenDesc":"Токены, используемые для создания записей в кэше (возврат к скорости ввода)","customPricingNote":"Вы можете переопределить цены по умолчанию для определенных моделей. Пользовательские переопределения имеют приоритет над ценами, определяемыми автоматически.","editPricing":"Изменить цену","viewFullDetails":"Посмотреть полную информацию"},"translator":{"title":"Переводчик","metaTitle":"Детская площадка для переводчиков | ОмниРоут","metaDescription":"Отладка, тестирование и визуализация преобразований форматов API между поставщиками.","playgroundTitle":"Площадка для переводчиков","playground":"Детская площадка","realtime":"Переводческая деятельность в режиме реального времени","chatTester":"Тестер чата","testBench":"Испытательный стенд","liveMonitor":"Живой монитор","modeDescriptionPlayground":"Вставьте любое тело запроса API и посмотрите, как OmniRoute преобразует его между форматами поставщика (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).","modeDescriptionChatTester":"Отправляйте реальные запросы чата через OmniRoute и проверяйте полный цикл обработки: входные данные, переведенный запрос, ответ поставщика и переведенный вывод.","modeDescriptionTestBench":"Запускайте заранее определенные сценарии и сравнивайте совместимость поставщиков и моделей.","modeDescriptionLiveMonitor":"Наблюдайте за событиями перевода в режиме реального времени по мере прохождения запросов через OmniRoute.","modeDescriptionFallback":"Отлаживайте, тестируйте и визуализируйте, как OmniRoute преобразует запросы API между поставщиками.","recentTranslations":"Недавние переводы","noTranslations":"Переводов пока нет","source":"Источник","target":"Цель","time":"Время","model":"Модель","status":"Статус","latency":"Задержка","totalTranslations":"Всего переводов","successful":"Успешный","errors":"Ошибки","avgLatency":"Средняя задержка","millisecondsShort":"{value}мс","notAvailableSymbol":"—","liveAutoRefreshing":"Прямой эфир — автоматическое обновление","paused":"Приостановлено","eventsAppearHint":"События перевода появляются здесь по мере прохождения запросов через OmniRoute. Используйте любой из этих методов для генерации событий:","chatTesterTab":"Вкладка \xabТестер чата\xbb","testBenchTab":"Вкладка \xabТестовый стенд\xbb","externalApiCalls":"Внешние вызовы API","ideCliIntegrations":"Интеграция IDE/CLI","inMemoryNote":"Примечание. События сохраняются в памяти и сбрасываются при перезапуске сервера.","ok":"ОК","errorShort":"ОШИБКА","formatConverter":"Конвертер форматов","formatConverterDescription":"Вставьте или введите тело запроса JSON. Переводчик автоматически определит исходный формат и преобразует его в целевой формат. Используйте это для отладки того, как OmniRoute преобразует запросы между форматами (OpenAI ↔ Claude ↔ Gemini ↔ API ответов).","input":"Ввод","output":"Выход","auto":"Авто","swapFormats":"Форматы обмена","translateAction":"Перевести","clear":"Очистить","inputPlaceholder":"Вставьте сюда текст запроса или выберите шаблон ниже...","exampleTemplates":"Примеры шаблонов","exampleTemplatesHint":"— Нажмите, чтобы загрузить","templateLoadHint":"Шаблон загружает запрос в формате {format}. Измените исходный формат, чтобы загрузить его в другом формате.","compatibilityTester":"Тестер совместимости","compatibilityReport":"Отчет о совместимости","testBenchDescription":"Запустите предопределенные сценарии (простой чат, вызов инструментов и т.\xa0д.), чтобы проверить совместимость перевода и поставщика. Выберите исходный формат и целевого поставщика, затем запустите все тесты, чтобы увидеть процент совместимости. Используйте это, чтобы узнать, какие функции работают у разных поставщиков.","targetProvider":"Целевой поставщик","runAllTests":"Запустить все тесты","runTest":"Запустить тест","reRun":"Повторный запуск","running":"Бег...","passed":"прошло","failed":"не удалось","passedIconLabel":"✅ Пройдено","chunks":"куски","scenarioSimpleChat":"Простой чат","scenarioToolCalling":"Вызов инструмента","scenarioMultiTurn":"Многооборотный","scenarioThinking":"мышление","scenarioSystemPrompt":"Системная подсказка","scenarioStreaming":"Потоковое вещание","templateNames":{"simple-chat":"Простой чат","tool-calling":"Вызов инструмента","multi-turn":"Многооборотный","thinking":"мышление","system-prompt":"Системная подсказка","streaming":"Потоковое вещание"},"templateDescriptions":{"simple-chat":"Основное текстовое сообщение","tool-calling":"Вызов функции/инструмента","multi-turn":"Разговор с историей","thinking":"Расширенное мышление/рассуждение","system-prompt":"Сложные системные инструкции","streaming":"Запрос потоковой передачи SSE"},"templatePayloads":{"simpleChat":{"system":"Вы полезный помощник.","userGreeting":"Здравствуйте! Как вы сегодня?"},"toolCalling":{"userWeather":"Какая погода в Сан-Паулу?","toolDescription":"Получить текущую погоду для местоположения","cityNameDescription":"Название города"},"multiTurn":{"system":"Вы помощник кодировщика.","userInitial":"Напишите функцию для сортировки массива на Python.","assistantExample":"Вот простая функция сортировки:\\n\\n``` питон\\nЗащиту sort_array (обр):\\n возврат отсортированный (прибытие)\\n```","userFollowUp":"Теперь отсортируйте его по убыванию."},"thinking":{"question":"Какова сумма первых 100 простых чисел?"},"systemPrompt":{"systemInstruction":"Вы старший инженер-программист, специализирующийся на распределенных системах. Кратко отвечайте на вопросы, используя лучшие отраслевые практики. Всегда предоставляйте примеры кода, когда это уместно. Отформатируйте свои ответы, используя уценку.","question":"Как реализовать шаблон автоматического выключателя?"},"streaming":{"prompt":"Расскажите мне короткую историю о роботе, который учится рисовать."}},"openaiCompatibleLabel":"Совместимость с OpenAI","anthropicCompatibleLabel":"Антропная совместимость","noTemplateForFormat":"Нет шаблона для этого формата","translationFailed":"Не удалось выполнить перевод: {error}.","pipelineDebugger":"Отладчик конвейеров","translationPipeline":"Конвейер перевода","pipelineVisualization":"Визуализация трубопровода","pipelineVisualizationHint":"Отправьте сообщение, чтобы узнать, как ваш запрос проходит через обнаружение → перевод → звонок поставщику.","chatTesterDescription":"Отправляйте сообщения в определенном клиентском формате и проверяйте каждый этап конвейера перевода.","chatTesterFlow":"Запрос клиента → Обнаружение формата → OpenAI Intermediate → Формат поставщика → Ответ","clickStepToInspect":"Щелкните любой шаг, чтобы проверить данные на этом этапе.","clientFormat":"Формат клиента","provider":"Поставщик","modelPlaceholder":"Выберите или введите название модели...","sendMessageToSeePipeline":"Отправьте сообщение, чтобы увидеть процесс перевода","chatMessageHintPrefix":"Ваше сообщение будет отформатировано как","chatMessageHintSuffix":"запрос, транслируемый через конвейер и отправляемый выбранному провайдеру.","youWithFormat":"Вы ({format})","assistant":"Ассистент","typeMessage":"Введите сообщение...","send":"Отправить","clientRequest":"Запрос клиента","clientRequestDescription":"Тело запроса в том виде, в каком его отправил бы ваш клиент.","formatDetected":"Обнаружен формат","formatDetectedDescription":"OmniRoute автоматически определяет формат API по структуре запроса.","openaiIntermediate":"OpenAI Средний уровень","openaiIntermediateDescription":"Все форматы сначала нормализуются до формата OpenAI (универсальный мост).","providerFormat":"Формат поставщика","providerFormatDescription":"Формат OpenAI транслируется в собственный формат провайдера.","providerResponse":"Ответ поставщика","providerResponseRawDescription":"Необработанный ответ от API провайдера","providerResponseSseDescription":"Необработанный поток SSE из API провайдера","unexpectedError":"Произошла непредвиденная ошибка","error":"Ошибка","errorMessage":"Ошибка: {message}","requestFailed":"Запрос не выполнен","noTextExtracted":"(текст не извлечен)","liveMonitorDescriptionPrefix":"Показывает события перевода, когда вызовы API проходят через OmniRoute. События поступают из буфера в памяти (сбрасывается при перезапуске). Использование","liveMonitorDescriptionSuffix":"или внешние вызовы API для генерации событий."},"usage":{"title":"Использование","loggerTab":"Регистратор","proxyTab":"Прокси","budgetManagement":"Управление бюджетом","budgetSaved":"Ограничения бюджета сохранены.","budgetSaveFailed":"Не удалось сохранить бюджет.","loadingBudgetData":"Загрузка данных бюджета...","noApiKeysTitle":"Нет ключей API","noApiKeysDescription":"Сначала добавьте ключи API, чтобы настроить ограничения бюджета.","apiKey":"API-ключ","todaysSpend":"Сегодняшние расходы","thisMonth":"В этом месяце","setLimits":"Установить ограничения","dailyLimitUsd":"Дневной лимит (доллар США)","monthlyLimitUsd":"Месячный лимит (долл. США)","warningThresholdPercent":"Порог предупреждения (%)","dailyLimitPlaceholder":"например 5.00","monthlyLimitPlaceholder":"например 50.00","warningThresholdPlaceholder":"80","saveLimits":"Сохранить лимиты","budgetOk":"Бюджет в порядке — осталось {remaining}","budgetExceeded":"Бюджет превышен — запросы могут быть заблокированы","totalRequests":"Всего запросов","noDataYet":"Данных пока нет","latency":"Задержка","latencyP50":"стр50","latencyP95":"стр.95","latencyP99":"стр.99","promptCache":"Подскажите кэш","systemHealth":"Здоровье системы","entries":"Записи","activeCount":"{count} активен","openCircuitBreakersDetected":"Обнаружены разомкнутые автоматические выключатели","hitRate":"Скорость попадания","hitsMisses":"Попадания/промахи","circuitBreakers":"Автоматические выключатели","lockedIPs":"Заблокированные IP-адреса","lockoutsAutoRefreshHint":"Блокировка ограничения скорости для каждой модели • Автоматическое обновление 10 с.","lockedCount":"{count, plural, one {# locked} other {# locked}}","timeLeft":"{time} осталось","howItWorks":"Как это работает","howItWorksSubtitle":"Узнайте, как оценки подтверждают ваши ответы LLM","define":"Определить","defineStepDescription":"Создавайте тестовые примеры с подсказками для ввода и ожидаемыми критериями вывода, используя такие стратегии, как \xabсодержит\xbb, регулярное выражение или точное соответствие.","run":"Беги","runStepDescription":"Выполняйте тестовые сценарии для конечных точек LLM через OmniRoute. Каждый случай отправляется как реальный запрос API.","evaluate":"Оценить","evaluateStepDescription":"Ответы сравниваются с ожидаемыми критериями. См. \xabГоден/не годен\xbb для каждого случая с показателями задержки и подробной обратной связью.","evalSuites":"Оценочные пакеты","evalSuitesHint":"Щелкните пакет, чтобы просмотреть тестовые примеры, а затем запустите его для оценки конечных точек LLM.","evalsLoading":"Загрузка тестовых пакетов...","noEvalSuitesFound":"Eval Suites не найдено","noEvalSuitesDescription":"Пакеты Eval можно определить через API или в коде. Они проверяют результаты модели на соответствие ожидаемым результатам, используя такие стратегии, как содержание, регулярное выражение, точное соответствие и пользовательские функции.","columnCase":"Дело","columnStatus":"Статус","columnLatency":"Задержка","columnDetails":"Подробности","columnModel":"Модель","columnStrategy":"Стратегия","columnExpected":"Ожидается","statsSuites":"Люксы","statsTestCases":"Тестовые случаи","statsModels":"Модели","statsCoverage":"Покрытие","statsStrategiesCount":"{count} стратегии","evaluationStrategies":"Стратегии оценки","modelsUnderTest":"Тестируемые модели","searchSuitesPlaceholder":"Искать апартаменты...","passSuffix":"пройти","casesCount":"{count, plural, one {# case} other {# cases}}","runEval":"Запустить оценку","runningProgress":"Запуск {current}/{total}...","passRate":"проходной балл","summaryBreakdown":"{passed} пройден \xb7 {failed} не пройден \xb7 всего {total}","passedIconLabel":"✅ Пройдено","failedIconLabel":"❌ Не удалось","detailsContains":"Содержит: \xab{term}\xbb","detailsRegex":"Регулярное выражение: {pattern}","detailsExpected":"Ожидается: \\"{expected}\\"","noResultsYet":"Пока нет результатов","testCasesCount":"Тестовые примеры ({count})","noTestCasesDefined":"Тестовые примеры не определены","runEvalHint":"Нажмите \xabЗапустить оценку\xbb, чтобы выполнить все случаи для вашей конечной точки LLM. Каждый тест отправляет реальный запрос через OmniRoute.","notifyNoTestCases":"Для этого набора тестовых примеров не определено.","notifyAllCasesPassed":"Все дела {total} пройдены ✅","notifySomeCasesFailed":"{passed}/{total} пройден, {failed} не выполнен","notifyEvalRunFailed":"Оценочный запуск не удался","notifyEvalTitle":"Оценка: {name}","modelEvals":"Модельные оценки","evalsHeroDescription":"Протестируйте и подтвердите свои конечные точки LLM, запустив предварительно определенные пакеты оценки. Каждый пакет содержит тестовые примеры, которые отправляют реальные запросы через OmniRoute и сравнивают ответы с ожидаемыми критериями, что помогает выявлять регрессии, сравнивать модели и обеспечивать качество ответов между поставщиками.","qualityValidation":"Проверка качества","modelComparison":"Сравнение моделей","regressionDetection":"Обнаружение регрессии","latencyBenchmarks":"Тесты задержки","modelLockouts":"Модельные локауты","noLockouts":"Ни одна модель в настоящее время не заблокирована","activeSessions":"Активные сессии","noSessions":"Нет активных сессий","sessionsHint":"Сеансы появляются по мере прохождения запросов через прокси.","sessionsTrackedHint":"Отслеживается с помощью снятия отпечатков пальцев • Автоматическое обновление в течение 5 секунд.","session":"Сессия","age":"Возраст","requests":"Запросы","connection":"Подключение","durationMillisecondsShort":"{value}мс","durationSecondsShort":"{value}с","durationMinutesShort":"{value}м","durationHoursShort":"{value}h","reasonSeparator":" - ","notAvailableSymbol":"-","providerLimits":"Ограничения поставщика","noProviders":"Ни один провайдер не подключен","connectProvidersForQuota":"Подключайтесь к поставщикам с помощью OAuth, чтобы отслеживать ограничения и использование квот API.","accountsCount":"{count, plural, one {# account} other {# accounts}}","filteredFromCount":"(отфильтровано из {count})","autoRefresh":"Автообновление","refreshAll":"Обновить все","loadingQuotas":"Загрузка...","account":"Аккаунт","modelQuotas":"Модельные квоты","lastUsed":"Последнее использование","actions":"Действия","refreshQuota":"Обновить квоту","today":"Сегодня","tomorrow":"Завтра","dayTimeFormat":"{day}, {time}","inDuration":"в {duration}","notApplicable":"Н/Д","rawPlanWithValue":"Необработанный план: {plan}","noPlanFromProvider":"Нет плана от провайдера","noQuotaData":"Нет данных о квотах","noQuotaDataAvailable":"Нет данных о квотах","noAccountsForTierFilter":"Аккаунты для фильтра уровня не найдены","tierAll":"Все","tierEnterprise":"Предприятие","tierTeam":"Команда","tierBusiness":"Бизнес","tierUltra":"Ультра","tierPro":"Про","tierPlus":"Плюс","tierFree":"Бесплатно","tierUnknown":"Неизвестно"},"modals":{"waitingAuth":"Ожидание авторизации","verificationUrl":"URL-адрес подтверждения","yourCode":"Ваш код","remoteAccess":"Удаленный доступ:","connectedSuccess":"Подключено успешно!","connectionFailed":"Соединение не удалось","chooseAuthMethod":"Выберите метод аутентификации:","awsBuilderId":"Идентификатор строителя AWS","awsIamIdentity":"Центр идентификации AWS IAM","googleAccount":"Аккаунт Google","githubAccount":"Аккаунт GitHub","importToken":"Импортировать токен","pasteToken":"Вставьте токен обновления из Kiro IDE.","awsRegion":"Регион AWS","autoDetecting":"Автоматическое обнаружение токенов...","readingFromCache":"Чтение из кэша AWS SSO","readingFromCursor":"Чтение из базы данных Cursor IDE","initializing":"Инициализация...","pricingConfig":"Конфигурация цен","loadingPricing":"Загрузка данных о ценах...","pricingRatesFormat":"Формат ценообразования","noPricingData":"Нет данных о ценах","noModelsFound":"Модели не найдены"},"loggers":{"allProviders":"Все провайдеры","allModels":"Все модели","allAccounts":"Все аккаунты","allApiKeys":"Все ключи API","allTypes":"Все типы","allLevels":"Все уровни","modelAZ":"Модель А-Я","modelZA":"Модель Z-A","loadingLogs":"Загрузка журналов...","loadingProxyLogs":"Загрузка журналов прокси...","noLogEntries":"Записи журнала не найдены","noPayloadData":"Для этой записи журнала отсутствуют данные полезной нагрузки.","proxyEvent":"Прокси-событие","proxy":"Прокси","level":"Уровень","directNative":"Прямой (родной)","combo":"Комбо","inputTokens":"Я:","outputTokens":"О:"},"stats":{"usageOverview":"Обзор использования","outputTokens":"Выходные токены","totalCost":"Общая стоимость","usageByModel":"Использование по модели","usageByAccount":"Использование по учетной записи","failedToLoad":"Не удалось загрузить статистику использования.","tokenHealth":"Здоровье токена","totalOAuth":"Всего OAuth","healthy":"Здоровый","warning":"Предупреждение","errored":"Ошибка","lastCheck":"Последняя проверка","noData":"Нет данных","share":"Поделиться","unableToLoad":"Невозможно загрузить системные метрики","product":"Продукт","resources":"Ресурсы","company":"Компания"},"auth":{"welcome":"Добро пожаловать","signIn":"Войти","enterPassword":"Введите свой пароль, чтобы продолжить","password":"Пароль","unifiedProxy":"Единый прокси-сервер AI API","unifiedAiApiProxy":"Единый прокси-сервер AI API","unifiedAiApiProxyDesc":"Направляйте запросы к нескольким поставщикам ИИ через одну конечную точку. Встроенные функции балансировки нагрузки, аварийного переключения и отслеживания использования.","passwordNotEnabled":"Защита паролем не включена","loading":"Загрузка...","invalidPassword":"Неверный пароль","errorOccurredRetry":"Произошла ошибка. Пожалуйста, попробуйте еще раз.","configureInstance":"Давайте настроим ваш экземпляр OmniRoute.","runOnboardingWizard":"Запустите мастер регистрации, чтобы настроить пароль и подключить первого поставщика ИИ.","startOnboarding":"Начать регистрацию","secureYourInstance":"Защитите свой экземпляр","setPasswordDescription":"Установите пароль, чтобы защитить свою панель управления и защитить конечные точки API от несанкционированного доступа.","configurePassword":"Настроить пароль","continue":"Продолжить","windowWillClose":"Это окно закроется автоматически...","closeTabNow":"Вы можете закрыть эту вкладку сейчас.","copyUrlManual":"Скопируйте URL-адрес из адресной строки и вставьте его в приложение.","accessDeniedDescription":"У вас нет разрешения на доступ к этому ресурсу. Проверьте свой API-ключ или свяжитесь с администратором.","goToDashboard":"Перейти на панель управления","featureMultiProviderTitle":"Мультипровайдер","featureMultiProviderDesc":"OpenAI, Anthropic, Google и другие","featureLoadBalancingTitle":"Балансировка нагрузки","featureLoadBalancingDesc":"Распределяйте запросы разумно","featureUsageTrackingTitle":"Отслеживание использования","featureUsageTrackingDesc":"Мониторинг затрат и токенов","resetPassword":"Сбросить пароль","resetDescription":"Выберите способ восстановления доступа к панели управления","stopServer":"Остановите сервер OmniRoute.","processing":"Обработка...","pleaseWait":"Пожалуйста, подождите, пока мы завершим авторизацию.","authSuccess":"Авторизация прошла успешно!","copyUrl":"Скопировать этот URL","accessDenied":"Доступ запрещен","methodCliTitle":"Способ 1: сброс CLI","methodCliDescription":"Выполните следующую команду на сервере, где работает OmniRoute:","methodCliHint":"Это предложит вам установить новый пароль. Сначала сервер должен быть остановлен.","methodManualTitle":"Способ 2: Ручной сброс","methodManualDescription":"Удалим пароль из базы данных и установим новый при запуске:","setPasswordInYour":"Установите новый пароль в своем","fileLabelSuffix":"файл:","newPasswordPlaceholder":"ваш_новый_пароль","deleteSettingsFile":"Удалить","orRemovePasswordHashField":"или удалите поле пароляHash","restartServerWithNewPassword":"Перезагрузите сервер - он будет использовать новый пароль.","backToLogin":"Вернуться к входу","forgotPassword":"Забыли пароль?"},"landing":{"brandName":"ОмниРоут","navigateHome":"Перейти домой","toggleMenu":"Переключить меню","featuresLink":"Особенности","docsLink":"Документы","github":"GitHub","versionLive":"v1.0 уже доступен","oneEndpoint":"Одна конечная точка для","allProviders":"Все поставщики ИИ","heroDescription":"Прокси-сервер конечной точки AI с веб-панелью — порт CLIProxyAPI на JavaScript. Беспрепятственно работает с Claude Code, OpenAI Codex, Cline, RooCode и другими инструментами CLI.","getStarted":"Начать","viewOnGithub":"Посмотреть на GitHub","powerfulFeatures":"Мощные функции","featuresSubtitle":"Все, что вам нужно для управления инфраструктурой искусственного интеллекта, собрано в одном месте и рассчитано на масштабирование.","featureUnifiedEndpointTitle":"Единая конечная точка","featureUnifiedEndpointDesc":"Доступ ко всем поставщикам через единый стандартный URL-адрес API.","featureEasySetupTitle":"Простая настройка","featureEasySetupDesc":"Приступайте к работе за считанные минуты с помощью команды npx.","featureModelFallbackTitle":"Резервная модель","featureModelFallbackDesc":"Автоматически переключайте поставщиков в случае сбоя или высокой задержки.","featureUsageTrackingTitle":"Отслеживание использования","featureUsageTrackingDesc":"Подробная аналитика и мониторинг затрат по всем моделям.","featureOAuthApiKeysTitle":"OAuth и ключи API","featureOAuthApiKeysDesc":"Безопасно управляйте учетными данными в одном хранилище.","featureCloudSyncTitle":"Облачная синхронизация","featureCloudSyncDesc":"Мгновенно синхронизируйте свои конфигурации между устройствами.","featureCliSupportTitle":"Поддержка интерфейса командной строки","featureCliSupportDesc":"Работает с Claude Code, Codex, Cline, Cursor и другими.","featureDashboardTitle":"Панель управления","featureDashboardDesc":"Визуальная панель для анализа трафика в реальном времени.","howItWorks":"Как работает OmniRoute","howItWorksDescription":"Данные беспрепятственно передаются из вашего приложения через наш уровень интеллектуальной маршрутизации к лучшему поставщику для выполнения этой работы.","howItWorksStep1Title":"1. Интерфейс командной строки и SDK","howItWorksStep1Description":"Ваши запросы начинаются с ваших любимых инструментов или нашего единого SDK. Просто измените базовый URL.","howItWorksStep2Title":"2. Хаб OmniRoute","howItWorksStep2Description":"Наш механизм анализирует приглашение, проверяет работоспособность провайдера и маршрутизирует с наименьшей задержкой или стоимостью.","howItWorksStep3Title":"3. Поставщики ИИ","howItWorksStep3Description":"Запрос мгновенно выполняется OpenAI, Anthropic, Gemini или другими.","getStartedIn30Seconds":"Начните за 30 секунд","getStartedDescription":"Установите OmniRoute, настройте своих провайдеров через веб-панель и начните маршрутизировать запросы AI.","installOmniRoute":"Установите OmniRoute","installStepDescription":"Запустите команду npx, чтобы мгновенно запустить сервер.","openDashboard":"Открыть панель управления","openDashboardStepDescription":"Настройка поставщиков и ключей API через веб-интерфейс","routeRequests":"Запросы маршрутов","routeRequestsStepDescription":"Направьте свои инструменты CLI на {endpoint}.","terminal":"терминал","copy":"Копировать","copied":"✓ Скопировано","startingOmniRoute":"Запускаем OmniRoute...","serverRunningOnLabel":"Сервер работает на","dashboardLabel":"Панель управления","readyToRoute":"Готов к маршруту! ✓","configureProvidersNote":"\uD83D\uDCDD Настройте поставщиков на панели управления или используйте переменные среды.","dataLocation":"Местоположение данных:","dataLocationMacLinux":" macOS/Линукс:","dataLocationWindows":" Окна:","product":"Продукт","dashboardLink":"Панель управления","changelog":"Журнал изменений","resources":"Ресурсы","documentation":"Документация","npm":"НПМ","legal":"Юридический","mitLicense":"Лицензия MIT","footerTagline":"Единая конечная точка для создания ИИ. С легкостью подключайтесь, маршрутизируйте и управляйте своими поставщиками ИИ.","copyright":"\xa9 {year} OmniRoute. Все права защищены.","flowToolClaudeCode":"Клод Код","flowToolOpenAICodex":"Кодекс OpenAI","flowToolCline":"Клайн","flowToolCursor":"Курсор","flowProviderOpenAI":"ОпенАИ","flowProviderAnthropic":"антропный","flowProviderGemini":"Близнецы","flowProviderGithubCopilot":"GitHub второй пилот","interactiveDiagram":"Интерактивная диаграмма видна на рабочем столе","ctaTitle":"Готовы упростить свою инфраструктуру искусственного интеллекта?","ctaDescription":"Присоединяйтесь к разработчикам, которые оптимизируют интеграцию искусственного интеллекта с помощью OmniRoute. Открытый исходный код и бесплатный запуск.","startFree":"Начать бесплатно","readDocumentation":"Читать документацию"},"docs":{"title":"Документация","quickStart":"Быстрый старт","features":"Особенности","supportedProviders":"Поддерживаемые провайдеры","supportedProvidersToc":"Провайдеры","commonUseCases":"Общие случаи использования","clientCompatibility":"Совместимость клиентов","apiReference":"Справочник по API","method":"Метод","path":"Путь","notes":"Примечания","modelPrefixes":"Префиксы моделей","prefix":"Префикс","troubleshooting":"Устранение неполадок","supportsChat":"Поддерживает конечные точки чата и ответов.","oauthAutoRefresh":"Соединение OAuth с автоматическим обновлением токена.","fullStreaming":"Полная поддержка потоковой передачи для всех моделей.","docsLabel":"Документы","docsHeroDescription":"AI-шлюз для LLM с несколькими поставщиками. Одна конечная точка для OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor и еще более 20 провайдеров.","openDashboard":"Открыть панель управления","endpointPage":"Страница конечной точки","github":"GitHub","reportIssue":"Сообщить о проблеме","onThisPage":"На этой странице","documentationVersion":"Документация — v{version}","quickStartStep1Title":"1. Установите и запустите","quickStartStep1Prefix":"Беги","quickStartStep1Middle":"или клонируйте с GitHub и запустите","quickStartStep2Title":"2. Создайте ключ API.","quickStartStep2Text":"Перейдите в Конечная точка -> Зарегистрированные ключи. Создайте один ключ для каждой среды.","quickStartStep3Title":"3. Подключите провайдеров","quickStartStep3Text":"Добавляйте учетные записи поставщиков с помощью входа в систему OAuth, ключа API или автоматического подключения на бесплатном уровне.","quickStartStep4Title":"4. Установите URL-адрес клиентской базы.","quickStartStep4Prefix":"Направьте свой клиент IDE или API на","quickStartStep4Suffix":"Используйте префикс провайдера, например","featureRoutingTitle":"Маршрутизация между несколькими провайдерами","featureRoutingText":"Направляйте запросы более чем 30 поставщикам ИИ через единую конечную точку, совместимую с OpenAI. Поддерживает API чата, ответов, аудио и изображений.","featureCombosTitle":"Комбинации и балансировка","featureCombosText":"Создавайте комбинации моделей с резервными цепочками и стратегиями балансировки: циклическим, приоритетным, случайным, наименее используемым и оптимизированным по затратам.","featureUsageTitle":"Отслеживание использования и затрат","featureUsageText":"Подсчет токенов в реальном времени, расчет стоимости для каждого поставщика/модели и подробная разбивка использования по ключам API и учетным записям.","featureAnalyticsTitle":"Аналитическая панель","featureAnalyticsText":"Визуальная аналитика с диаграммами запросов, токенов, ошибок, задержек, затрат и популярности модели с течением времени.","featureHealthTitle":"Мониторинг здоровья","featureHealthText":"Проверки работоспособности в реальном времени, статус поставщика услуг, состояния автоматических выключателей и автоматическое определение ограничения скорости с экспоненциальным замедлением.","featureCliTitle":"Инструменты интерфейса командной строки","featureCliText":"Управляйте конфигурациями IDE, экспортируйте/импортируйте резервные копии, находите профили кодекса и настраивайте параметры с панели управления.","featureSecurityTitle":"Безопасность и политики","featureSecurityText":"Аутентификация по ключу API, фильтрация IP-адресов, защита от внедрения подсказок, политики домена, управление сеансами и ведение журнала аудита.","featureCloudSyncTitle":"Облачная синхронизация","featureCloudSyncText":"Синхронизируйте свою конфигурацию с Cloudflare Workers для удаленного доступа с зашифрованными учетными данными и автоматического переключения при сбое.","providersAcrossConnectionTypes":"Поставщики {count} для трех типов подключения.","manageProviders":"Управление поставщиками","providersCount":"{count} поставщиков","providerTypeFree":"Уровень бесплатного пользования","providerTypeOAuth":"OAuth","providerTypeApiKey":"API-ключ","useCaseSingleEndpointTitle":"Единая конечная точка для многих провайдеров","useCaseSingleEndpointText":"Направьте клиентов на один базовый URL-адрес и выполните маршрутизацию по префиксу модели (например: gh/, cc/, kr/, openai/).","useCaseFallbackTitle":"Откат и переключение модели с помощью комбинаций","useCaseFallbackText":"Создавайте комбинированные модели в Dashboard и сохраняйте стабильную конфигурацию клиента, пока поставщики меняются внутри компании.","useCaseUsageVisibilityTitle":"Видимость использования, стоимости и отладки","useCaseUsageVisibilityText":"Отслеживайте токены и стоимость по поставщикам, учетным записям и ключам API на вкладках \xabИспользование\xbb и \xabАналитика\xbb.","clientCherryStudioTitle":"Черри Студия","baseUrlLabel":"Базовый URL","chatEndpointLabel":"Конечная точка чата","modelRecommendationLabel":"Рекомендация модели: явный префикс","clientCodexTitle":"Модели второго пилотного проекта Codex/GitHub","clientCodexBullet1":"Используйте идентификаторы моделей с","clientCodexBullet2":"Модели семейства Codex автоматически перенаправляются к","clientCodexBullet3":"Модели, не относящиеся к Кодексу, продолжают действовать","clientCursorTitle":"Курсор IDE","clientCursorBullet1":"Использование","clientCursorBullet1Suffix":"префикс для моделей Cursor.","clientCursorBullet2":"Соединение OAuth — вход со страницы \xabПровайдеры\xbb.","clientClaudeTitle":"Клод Код / Антигравитация","clientClaudeBullet1Prefix":"Использование","clientClaudeBullet1Middle":"(Клод) или","clientClaudeBullet1Suffix":"(Антигравитация) приставка.","endpointChatNote":"Конечная точка чата, совместимая с OpenAI (по умолчанию).","endpointResponsesNote":"Конечная точка API ответов (Кодекс, серия o).","endpointModelsNote":"Каталог моделей для всех подключенных провайдеров.","endpointAudioNote":"Транскрипция аудио (Deepgram, AssemblyAI).","endpointImagesNote":"Генерация изображений (NanoBanana).","endpointRewriteChatNote":"Переписать помощник для клиентов без /v1.","endpointRewriteResponsesNote":"Переписать помощник для ответов без /v1.","endpointRewriteModelsNote":"Переписать помощник для обнаружения моделей без /v1.","modelPrefixesDescriptionStart":"Используйте префикс поставщика перед названием модели для маршрутизации к определенному поставщику. Пример:","modelPrefixesDescriptionEnd":"маршруты к GitHub Copilot.","provider":"Поставщик","type":"Тип","troubleshootingModelRouting":"Если клиенту не удается выполнить маршрутизацию модели, используйте явный поставщик/модель (например: gh/gpt-5.1-codex).","troubleshootingAmbiguousModels":"Если вы получаете неоднозначные ошибки модели, выберите префикс поставщика вместо простого идентификатора модели.","troubleshootingCodexFamily":"Для моделей семейства GitHub Codex сохраните модель как gh/<codex-model>; Маршрутизатор выбирает / отвечает автоматически.","troubleshootingTestConnection":"Используйте \xabПанель мониторинга\xbb > \xabПоставщики\xbb > \xabПроверить соединение\xbb перед тестированием из IDE или внешних клиентов.","troubleshootingCircuitBreaker":"Если поставщик услуг показывает, что автоматический выключатель разомкнут, дождитесь охлаждения или посетите страницу \xabЗдоровье\xbb для получения подробной информации.","troubleshootingOAuth":"Для поставщиков OAuth выполните повторную аутентификацию, если срок действия токенов истечет. Проверьте индикатор состояния карты провайдера."},"legal":{"privacyPolicy":"Политика конфиденциальности","termsOfService":"Условия использования","providerConfigurations":"Конфигурации провайдера","apiKeys":"Ключи API","usageLogs":"Журналы использования","applicationSettings":"Настройки приложения","viewExportAnalytics":"Просмотр и экспорт аналитики использования","clearHistory":"Очистить историю использования в любое время","configureRetention":"Настройка политик хранения журналов","backupRestore":"Резервное копирование и восстановление базы данных","privacyMetadataTitle":"Политика конфиденциальности | ОмниРоут","privacyMetadataDescription":"Политика конфиденциальности для прокси-маршрутизатора OmniRoute AI API.","termsMetadataTitle":"Условия обслуживания | ОмниРоут","termsMetadataDescription":"Условия использования прокси-маршрутизатора OmniRoute AI API.","backToHome":"Вернуться домой","lastUpdated":"Последнее обновление: {date}.","policyLastUpdatedDate":"13 февраля 2026 г.","listSeparator":"-","questionsVisit":"Вопросы? Посетите наш","githubRepository":"Репозиторий GitHub","privacySection1Title":"1. Архитектура, ориентированная на локальность","privacySection1Text":"OmniRoute спроектирован как локальное приложение. Вся обработка и хранение данных происходит полностью на вашем компьютере. Не существует централизованного сервера, собирающего вашу информацию.","privacySection2Title":"2. Данные, которые мы храним","privacyDataStoredIn":"Следующие данные хранятся локально в","privacyDataProviderConfigurationsDesc":"URL-адреса подключения, типы провайдеров и настройки приоритета","privacyDataApiKeysDesc":"шифруется и хранится локально для аутентификации у поставщиков ИИ.","privacyDataUsageLogsDesc":"количество запросов, использование токенов, названия моделей, временные метки и время ответа.","privacyDataApplicationSettingsDesc":"настройки темы, стратегия маршрутизации и комбинированные конфигурации","privacySection3Title":"3. Нет телеметрии","privacySection3Text":"OmniRoute не собирает телеметрию, аналитику или отчеты о сбоях. Никакие данные не передаются нам или третьим лицам. Ваши шаблоны использования, вызовы API и конфигурации остаются полностью конфиденциальными.","privacySection4Title":"4. Сторонние поставщики ИИ","privacySection4Text":"Когда вы выполняете вызовы API через OmniRoute, ваши запросы перенаправляются настроенным вами поставщикам искусственного интеллекта (например: OpenAI, Anthropic, Google). У этих провайдеров есть свои собственные политики конфиденциальности, которые определяют, как они обрабатывают ваши данные. Пожалуйста, просмотрите:","privacyOpenAiPolicy":"Политика конфиденциальности OpenAI","privacyAnthropicPolicy":"Антропная политика конфиденциальности","privacyGooglePolicy":"Политика конфиденциальности Google","privacySection5Title":"5. Облачная синхронизация (необязательно)","privacySection5Text":"Если вы включите дополнительную функцию облачной синхронизации, конфигурации поставщика и ключи API могут быть переданы в настроенную конечную точку облака. Эта функция отключена по умолчанию и требует явного согласия.","privacySection6Title":"6. Ведение журнала","privacyLoggingIntro":"Журналы запросов можно настроить через настройки панели управления. Вы можете:","privacySection7Title":"7. Ваши права","privacySection7TextStart":"Поскольку все данные хранятся локально, у вас есть полный контроль. Вы можете удалить свои данные в любое время, удалив","privacySection7TextEnd":"каталог или с помощью функций резервного копирования и восстановления базы данных на панели управления.","termsSection1Title":"1. Обзор","termsSection1Text":"OmniRoute — это локальный прокси-маршрутизатор AI API, который полностью работает на вашем компьютере. Он направляет запросы нескольким поставщикам искусственного интеллекта с балансировкой нагрузки, аварийным переключением и отслеживанием использования.","termsSection2Title":"2. Обязанности пользователя","termsResponsibilityApiKeys":"Вы несете единоличную ответственность за управление своими собственными ключами API и учетными данными для сторонних поставщиков ИИ (OpenAI, Anthropic, Google и т.\xa0д.).","termsResponsibilityCompliance":"Вы должны соблюдать условия обслуживания каждого поставщика ИИ, к API которого вы получаете доступ через OmniRoute.","termsResponsibilitySecurity":"Вы несете ответственность за безопасность вашей локальной установки OmniRoute, включая установку пароля и ограничение доступа к сети.","termsSection3Title":"3. Как это работает","termsSection3Text":"OmniRoute действует как промежуточный прокси. Вызовы API, отправленные в OmniRoute, преобразуются и пересылаются настроенным вами поставщикам искусственного интеллекта. OmniRoute не изменяет содержимое ваших запросов или ответов за пределами необходимой трансляции протокола.","termsSection4Title":"4. Обработка данных","termsDataStoredLocally":"Все данные хранятся локально на вашем компьютере в базе данных SQLite.","termsNoTransmission":"OmniRoute не передает данные на внешние серверы, если вы явно не включили функции облачной синхронизации.","termsDataLocationText":"Журналы использования, ключи API и конфигурация хранятся в","termsSection5Title":"5. Отказ от ответственности","termsSection5Text":"OmniRoute предоставляется \xabкак есть\xbb без каких-либо гарантий. Мы не несем ответственности за любые расходы, понесенные в результате использования API, перебоев в обслуживании или потери данных. Всегда сохраняйте резервные копии вашей конфигурации.","termsSection6Title":"6. Открытый исходный код","termsSection6Text":"OmniRoute — это программное обеспечение с открытым исходным кодом. Вы можете свободно просматривать, изменять и распространять его в соответствии с условиями лицензии."}}')}};
1
+ "use strict";exports.id=1526,exports.ids=[1526],exports.modules={61526:a=>{a.exports=JSON.parse('{"common":{"save":"Сохранить","cancel":"Отмена","delete":"Удалить","loading":"Загрузка...","error":"Произошла ошибка","success":"Успех","confirm":"Вы уверены?","refresh":"Обновить","close":"Закрыть","add":"Добавить","edit":"Редактировать","search":"Поиск","back":"Назад","next":"Далее","submit":"Отправить","reset":"Сброс","copy":"Копировать","copied":"Скопировано!","enabled":"Включено","disabled":"Отключено","active":"Активный","inactive":"Неактивный","noData":"Нет доступных данных","configure":"Настроить","manage":"Управление","name":"Имя","actions":"Действия","status":"Статус","type":"Тип","model":"Модель","models":"модели","provider":"Поставщик","account":"Аккаунт","time":"Время","details":"Подробности","created":"Создано","lastUsed":"Последнее использование","loadMore":"Загрузить больше","noResults":"Результаты не найдены","reloadPage":"Обновить страницу","connected":"Подключено","disconnected":"Отключено","notConfigured":"Не настроено","testConnection":"Тестовое соединение","enable":"Включить","disable":"Отключить","columns":"Столбцы","newest":"Новейший","oldest":"Самый старый","all":"Все","none":"Нет","yes":"Да","no":"Нет","warning":"Предупреждение","note":"Примечание","free":"Бесплатно","skipToContent":"Перейти к содержимому"},"sidebar":{"home":"Главная","dashboard":"Панель управления","providers":"Провайдеры","combos":"Комбо","usage":"Использование","analytics":"Аналитика","costs":"Затраты","health":"Здоровье","limits":"Лимиты и квоты","cliTools":"Инструменты интерфейса командной строки","settings":"Настройки","translator":"Переводчик","docs":"Документы","issues":"Проблемы","endpoint":"Конечная точка","apiManager":"Менеджер API","logs":"Журналы","auditLog":"Журнал аудита","shutdown":"Выключение","restart":"Перезапустить","shutdownConfirm":"Выключить OmniRoute?","restartConfirm":"Перезапустить OmniRoute?","version":"v{version}","debug":"Отладка","system":"Система","help":"Помощь","serverDisconnected":"Сервер отключен","serverDisconnectedMsg":"Прокси-сервер остановлен или перезагружается.","expandSidebar":"Развернуть боковую панель","collapseSidebar":"Свернуть боковую панель"},"header":{"logout":"Выход из системы","language":"Язык","providers":"Провайдеры","providerDescription":"Управляйте подключениями к поставщикам ИИ","combos":"Комбо","comboDescription":"Комбинации моделей с резервным вариантом","usage":"Использование и аналитика","usageDescription":"Отслеживайте использование API, потребление токенов и журналы запросов.","analytics":"Аналитика","analyticsDescription":"Диаграммы, тенденции и аналитические сведения об оценках","cliTools":"Инструменты интерфейса командной строки","cliToolsDescription":"Настройка инструментов CLI","home":"Главная","homeDescription":"Добро пожаловать в OmniRoute","endpoint":"Конечная точка","endpointDescription":"Конфигурация конечной точки API","settings":"Настройки","settingsDescription":"Управляйте своими предпочтениями","openaiCompatible":"Совместимость с OpenAI","anthropicCompatible":"Антропная совместимость"},"home":{"quickStart":"Быстрый старт","quickStartDesc":"Приступайте к работе в 4 шага. Подключайте провайдеров, маршрутизируйте модели, контролируйте все.","fullDocs":"Полная документация","step1Title":"1. Создайте ключ API.","step1Desc":"Перейдите к <endpoint>Endpoint</endpoint> -> Зарегистрированные ключи. Создайте один ключ для каждой среды.","step2Title":"2. Подключите провайдеров","step2Desc":"Добавьте учетные записи в <providers>Providers</providers>. Поддерживает OAuth, ключ API и уровни бесплатного пользования.","step3Title":"3. Укажите своего клиента","step3Desc":"Установите базовый URL-адрес {url} в клиенте IDE или API.","step4Title":"4. Мониторинг и оптимизация","step4Desc":"Отслеживайте токены, стоимость и ошибки в <logs>Журналы запросов</logs> и <analytics>Analytics</analytics>.","providersOverview":"Обзор провайдеров","configuredOf":"{configured} настроен из {total} доступных поставщиков","noModelsAvailable":"Нет доступных моделей для этого поставщика.","configureFirst":"Сначала настройте соединение в {providers}.","configureProvider":"Настроить поставщика","modelAvailable":"Доступна модель {count}","modelsAvailable":"Доступно {count} моделей","connectionsActive":"Соединение {count} активно","connectionsActivePlural":"{count} активных соединений","copyModelName":"Скопировать название модели","documentation":"Документация","healthMonitor":"Монитор здоровья","reportIssue":"Сообщить о проблеме","activeError":"{active} активен \xb7 {errors} ошибка","oauthLabel":"OAuth","apiKeyLabel":"API-ключ","requestsShort":"{count} требуется","providerModelsTitle":"{provider} — Модели","copiedModel":"Скопировано: {model}","aliasLabel":"псевдоним"},"analytics":{"title":"Аналитика","overviewDescription":"Отслеживайте шаблоны использования API, потребление токенов, затраты и тенденции активности среди всех поставщиков и моделей.","evalsDescription":"Запустите оценочные пакеты для тестирования и проверки конечных точек LLM. Сравнивайте качество модели, обнаруживайте регрессии и измеряйте задержку тестирования.","overview":"Обзор","evals":"Оценки"},"apiManager":{"title":"API-ключи","createKey":"Создать ключ API","key":"Ключ","revokeKey":"Отозвать ключ","revokeConfirm":"Вы уверены, что хотите отозвать этот ключ API?","noKeys":"Ключей API пока нет","noKeysDesc":"Создайте свой первый ключ API для аутентификации запросов к вашей конечной точке.","keyLabel":"Ключевая этикетка","permissions":"Разрешения","expiresAt":"Срок действия истекает","never":"Никогда","revoke":"Отозвать","showKey":"Показать ключ","hideKey":"Скрыть ключ","copyKey":"Копировать ключ API","allModels":"Все модели","selectedModels":"Выбранные модели","readOnly":"Только чтение","fullAccess":"Полный доступ","keyManagement":"Управление ключами API","keyManagementDesc":"Создавайте ключи API для аутентификации запросов к вашей конечной точке и управляйте ими.","totalKeys":"Всего ключей","restricted":"Ограниченный","totalRequests":"Всего запросов","modelsAvailable":"Доступные модели","registeredKeys":"Зарегистрированные ключи","keysRegistered":"Зарегистрировано {count} ключей","keyRegistered":"Ключ {count} зарегистрирован","keysSecurityNote":"Каждый ключ изолирует отслеживание использования и может быть отозван независимо. Ключи маскируются после создания в целях безопасности.","createFirstKey":"Создайте свой первый ключ","name":"Имя","usage":"Использование","created":"Создано","actions":"Действия","reqs":"требования","neverUsed":"Никогда не использовался","deleteConfirm":"Удалить этот ключ API?","usageTips":"Советы по использованию","tipAuth":"Используйте ключи API в заголовке авторизации в качестве носителя YOUR_KEY.","tipSecure":"Ключи отображаются только один раз во время создания — храните их в надежном месте.","tipSeparate":"Создавайте отдельные ключи для разных клиентов или сред.","tipRestrict":"Ограничьте ключи определенными моделями для повышения безопасности и контроля затрат.","keyName":"Имя ключа","keyNamePlaceholder":"например, Ключ производства, Ключ разработки","keyNameDesc":"Выберите описательное имя, чтобы определить назначение этого ключа.","keyCreated":"Ключ API создан","keyCreatedSuccess":"Ключ успешно создан!","keyCreatedNote":"Скопируйте и сохраните этот ключ сейчас — он больше не будет отображаться.","done":"Готово","savePermissions":"Сохранить разрешения","allowAll":"Разрешить все","restrict":"Ограничить","allowAllInfo":"Этот ключ дает доступ ко всем доступным моделям.","restrictInfo":"Этот ключ может получить доступ к {selected} из моделей {total}.","selected":"{count} выбрано","all":"Все","clear":"Очистить","searchModels":"Поиск моделей по названию или поставщику...","noModelsFound":"Модели не найдены","keyNameRequired":"Укажите имя ключа.","keyNameTooLong":"Имя ключа должно содержать не более {max} символов.","keyNameInvalid":"Имя ключа может содержать только буквы, цифры, пробелы, дефисы и подчеркивания.","invalidKeyName":"Неверное имя ключа","failedCreateKey":"Не удалось создать ключ","failedCreateKeyRetry":"Не удалось создать ключ. Пожалуйста, попробуйте еще раз.","invalidKeyId":"Неверный идентификатор ключа","failedDeleteKey":"Не удалось удалить ключ","failedDeleteKeyRetry":"Не удалось удалить ключ. Пожалуйста, попробуйте еще раз.","invalidModelsSelection":"Неверный выбор моделей","cannotSelectMoreThanModels":"Невозможно выбрать более {max} моделей.","failedUpdatePermissions":"Не удалось обновить разрешения.","failedUpdatePermissionsRetry":"Не удалось обновить разрешения. Пожалуйста, попробуйте еще раз.","unknownProvider":"неизвестно","copyMaskedKey":"Копировать замаскированный ключ","modelsCount":"{count, plural, one {# model} other {# models}}","lastUsedOn":"Последний: {date}","editPermissions":"Редактировать разрешения","deleteKey":"Удалить ключ","model":"{count} модель","models":"{count} модели","permissionsTitle":"Разрешения: {name}","allowAllDesc":"Этот ключ дает доступ ко всем доступным моделям.","restrictDesc":"Этот ключ может получить доступ к {selectedCount} из моделей {totalModels}.","selectedCount":"{count} выбрано"},"auditLog":{"title":"Журнал аудита","searchPlaceholder":"Поиск действий...","action":"Действие","actor":"Актер","target":"Цель","ipAddress":"IP-адрес","timestamp":"Временная метка","noEntries":"Записи аудита не найдены","filterByAction":"Фильтровать по действию...","filterByActor":"Фильтровать по актеру...","filterEntriesAria":"Фильтрация записей журнала аудита","filterByActionTypeAria":"Фильтровать по типу действия","filterByActorAria":"Фильтровать по актеру","refreshAuditLogAria":"Обновить журнал аудита","tableAria":"Записи журнала аудита","failedFetchAuditLog":"Не удалось получить журнал аудита.","notAvailable":"—","description":"Административные действия и события безопасности","showing":"Показаны записи {count} (смещение {offset})","previous":"Предыдущий"},"cliTools":{"title":"Инструменты интерфейса командной строки","noActiveProviders":"Нет активных провайдеров","noActiveProvidersDesc":"Сначала добавьте и подключите поставщиков, чтобы настроить инструменты CLI.","mapModels":"Модели карт","testConnection":"Тестовое соединение","connectionStatus":"Статус соединения","configureEndpoint":"Настроить конечную точку","instructions":"Инструкции","modelMapping":"Сопоставление модели","baseUrl":"Базовый URL","apiKey":"API-ключ","configured":"Настроен","notConfigured":"Не настроено","notInstalled":"Не установлено","custom":"Пользовательский","unknown":"Неизвестно","lastSavedAt":"Последнее сохранение: {date}","never":"Никогда","justNow":"только что","minutesAgoShort":"{count} мин назад","hoursAgoShort":"{count}ч назад","daysAgoShort":"{count}дн назад","monthsAgoShort":"{count}мес. назад","yearsAgoShort":"{count}г назад","runtimeCheckFailed":"Проверка времени выполнения не удалась","yourApiKeyPlaceholder":"ваш-API-ключ","modelPlaceholder":"поставщик/идентификатор модели","configurationSaved":"Конфигурация успешно сохранена.","failedToSave":"Не удалось сохранить конфигурацию.","noApiKeysCreateOne":"Нет ключей API — создайте их на странице \xabКлючи\xbb.","defaultOmnirouteKey":"sk_omniroute (по умолчанию)","selectModel":"Выберите модель","selectModelForAlias":"Выберите модель для {alias}","selectModelForTool":"Выберите модель для {tool}","select":"Выбрать","clear":"Очистить","comingSoon":"Скоро","checkingRuntime":"Проверка статуса выполнения...","guideOnlyIntegration":"Интеграция только для руководства (локальная среда выполнения не требуется)","cliRuntimeDetected":"Среда выполнения CLI обнаружена и готова","cliFoundNotRunnable":"CLI найден, но не работает{reason}","cliRuntimeNotDetected":"Среда выполнения CLI не обнаружена","binary":"Двоичный","configPath":"Путь конфигурации","configPathShort":"Конфигурация","failedCheckRuntimeStatus":"Не удалось проверить статус выполнения.","copy":"Копировать","copied":"Скопировано","copyConfig":"Копировать конфигурацию","saveConfig":"Сохранить конфигурацию","selectionSaved":"Выбор сохранен.","guide":"Руководство","detected":"Обнаружено","notReady":"Не готов","active":"Активный","inactive":"Неактивный","startMitm":"Запустить МИТМ","stopMitm":"Остановить МИТМ","mitmStarted":"MITM стартовал успешно!","mitmStopped":"MITM успешно остановлен!","failedStart":"Не удалось запустить MITM","failedStop":"Не удалось остановить MITM","saveMappings":"Сохранить сопоставления","mappingsSaved":"Сопоставления сохранены!","failedSaveMappings":"Не удалось сохранить сопоставления.","howItWorks":"Как это работает:","antigravityHowWorksDesc":"Антигравитация отправляет запросы на конечную точку Google. MITM перехватывает и перенаправляет их в OmniRoute.","antigravityStep1":"1. Запустите MITM для маршрутизации запросов через OmniRoute.","antigravityStep2Prefix":"2. Добавить","antigravityStep2Suffix":"в файл хостов как 127.0.0.1.","antigravityStep3":"3. Откройте Антигравитацию и запросы будут проксироваться.","sudoPasswordRequiredTitle":"Требуется пароль Sudo","sudoPasswordHint":"Пароль администратора необходим для изменения файлов хостов и настроек системного прокси.","enterSudoPassword":"Введите пароль sudo","sudoPasswordRequiredError":"Требуется пароль Sudo.","cancel":"Отмена","confirm":"Подтвердить","settingsApplied":"Настройки успешно применены!","failedApplySettings":"Не удалось применить настройки.","settingsReset":"Настройки успешно сброшены!","failedResetSettings":"Не удалось сбросить настройки","backupRestored":"Бэкап восстановлен!","failedRestore":"Не удалось восстановить","checkingCli":"Проверка {tool} CLI...","cliNotRunnable":"{tool} CLI установлен, но не запускается","cliNotInstalled":"{tool} CLI не установлен","cliNotDetected":"{tool} CLI не обнаружен","cliDetectedReady":"{tool} CLI обнаружен и готов","cliFoundFailedHealthcheck":"{tool} CLI найден, но проверка работоспособности во время выполнения не выполнена {reason}.","installCliPrompt":"Чтобы использовать эту функцию, установите {tool} CLI.","installCodexPrompt":"Установите Codex CLI, чтобы использовать функцию автоматического применения.","hide":"Скрыть","howToInstall":"Как установить","installationGuide":"Руководство по установке","platforms":"macOS/Linux/Windows:","afterInstallationRun":"После установки запустите","toVerify":"чтобы проверить.","current":"Текущий","baseUrlPlaceholder":"https://.../v1","resetToDefault":"Сбросить настройки по умолчанию","providerModelPlaceholder":"поставщик/идентификатор модели","apply":"Применить","reset":"Сброс","manualConfig":"Ручная настройка","backups":"Резервные копии","configBackups":"Резервные копии конфигурации","noBackupsYet":"Резервных копий пока нет. Резервные копии создаются автоматически перед каждым применением или сбросом.","restore":"Восстановить","backupRestoredReloading":"Бэкап восстановлен! Статус перезагрузки...","failedRestoreBackup":"Не удалось восстановить резервную копию","applied":"Применено!","failed":"Не удалось","resetDone":"Сбросить!","omnirouteConfiguredOpenAiCompatible":"OmniRoute настроен как поставщик, совместимый с OpenAI.","provider":"Поставщик","model":"Модель","providers":"Провайдеры","auth":"Авторизация","noApiKeysAvailable":"Нет доступных ключей API","usingDefaultOmniroute":"Использование по умолчанию: sk_omniroute","updateConfig":"Обновить конфигурацию","applyConfig":"Применить конфигурацию","noBackupsAvailable":"Резервные копии отсутствуют.","profileSaved":"Профиль \xab{name}\xbb сохранен!","failedSaveProfile":"Не удалось сохранить профиль","profileActivated":"Профиль активирован!","failedActivateProfile":"Не удалось активировать профиль","profiles":"Профили","savedProfiles":"Сохраненные профили","noProfilesYet":"Ни один профиль еще не сохранен. Сохраните текущую конфигурацию как профиль ниже.","activate":"Активировать","deleteProfile":"Удалить профиль","profileNamePlaceholder":"Имя профиля (например, Личный кабинет)","saveCurrent":"Сохранить текущий","codexAuthNotePrefix":"Кодекс использует","codexAuthNoteMiddle":"с","codexAuthNoteSuffix":"Нажмите \xabПрименить\xbb для автоматической настройки.","claudeManualConfiguration":"Клод CLI — ручная настройка","codexManualConfiguration":"Интерфейс командной строки Codex — ручная настройка","droidManualConfiguration":"Заводской дроид – ручная настройка","openClawManualConfiguration":"Открытый коготь — ручная настройка","clineManualConfiguration":"Ручная настройка Cline","kiloManualConfiguration":"Ручная настройка кода Kilo","toolDescriptions":{"antigravity":"Google Antigravity IDE с MITM","claude":"Антропный код Клода CLI","codex":"Интерфейс командной строки Кодекса OpenAI","droid":"Искусственный интеллект заводского дроида","openclaw":"Открытый ИИ-помощник когтя","cline":"Cline AI Coding Assistant CLI","kilo":"Интерфейс командной строки Kilo Code AI Assistant","cursor":"Редактор кода курсора AI","continue":"Продолжить AI-помощник"},"guides":{"cursor":{"notes":{"0":"Для использования этой функции требуется учетная запись Cursor Pro.","1":"Курсор маршрутизирует запросы через собственный сервер, поэтому локальная конечная точка не поддерживается. Пожалуйста, включите Cloud Endpoint в настройках."},"steps":{"1":{"title":"Открыть настройки","desc":"Зайдите в Настройки -> Модели."},"2":{"title":"Включить API OpenAI","desc":"Включите опцию \xabКлюч OpenAI API\xbb."},"3":{"title":"Базовый URL"},"4":{"title":"API-ключ"},"5":{"title":"Добавить пользовательскую модель","desc":"Нажмите \xabПросмотреть всю модель\xbb -> \xabДобавить пользовательскую модель\xbb."},"6":{"title":"Выберите модель"}}},"continue":{"steps":{"1":{"title":"Открыть конфигурацию","desc":"Открыть файл конфигурации \xabПродолжить\xbb"},"2":{"title":"API-ключ"},"3":{"title":"Выберите модель"},"4":{"title":"Добавить конфигурацию модели","desc":"Добавьте следующую конфигурацию в массив моделей:"}}}}},"combos":{"title":"Комбо","description":"Создавайте комбинации моделей с взвешенной маршрутизацией и поддержкой резервного варианта.","createCombo":"Создать комбо","editCombo":"Редактировать комбо","deleteCombo":"Удалить комбо","noModels":"Нет моделей","noModelsYet":"Модели еще не добавлены","addModel":"Добавить модель","addModelToCombo":"Добавить модель в комбинацию","routingStrategy":"Стратегия маршрутизации","maxRetries":"Макс. повторов","timeout":"Тайм-аут (мс)","healthcheck":"Проверка здоровья","priority":"Приоритет","fallback":"Резервный вариант","roundRobin":"Круговая система","random":"Случайный","leastLatency":"Наименьшая задержка","comboName":"Имя комбинации","comboNamePlaceholder":"мое комбо","deleteConfirm":"Удалить это комбо?","noCombosYet":"Комбинаций пока нет","comboCreated":"Комбо успешно создано","comboUpdated":"Комбо успешно обновлено","comboDeleted":"Комбо удалено.","failedCreate":"Не удалось создать комбо","failedUpdate":"Не удалось обновить комбо.","errorCreating":"Ошибка создания комбо","errorUpdating":"Ошибка обновления комбо","errorDeleting":"Ошибка удаления комбо.","testFailed":"Тестовый запрос не выполнен","failedToggle":"Не удалось переключить комбо.","testResults":"Результаты теста — {name}","resolvedBy":"Решено:","more":"+{count} подробнее","reqs":"требования","success":"успех","proxyConfigured":"Прокси настроен","copyComboName":"Скопировать название комбинации","enableCombo":"Включить комбо","disableCombo":"Отключить комбо","testCombo":"Тестовое комбо","duplicate":"Дублировать","proxyConfig":"Конфигурация прокси","nameRequired":"Требуется имя","nameInvalid":"Только буквы, цифры, -, _, / и . разрешено","nameHint":"Буквы, цифры, -, _, / и . разрешено","priorityDesc":"Последовательный откат: сначала пробуется модель 1, затем 2 и т.\xa0д.","weightedDesc":"Распределяет трафик по весовому проценту с резервным вариантом","roundRobinDesc":"Круговое распределение: каждый запрос переходит к следующей модели по очереди.","randomDesc":"Равномерный случайный выбор, затем возврат к оставшимся моделям","leastUsedDesc":"Выбирает модель с наименьшим количеством запросов, балансируя нагрузку с течением времени.","costOptimizedDesc":"Маршруты к самой дешевой модели в первую очередь на основе цены","models":"Модели","autoBalance":"Автобаланс","advancedSettings":"Расширенные настройки","retryDelay":"Задержка повтора (мс)","concurrencyPerModel":"Параллелизм/модель","queueTimeout":"Тайм-аут очереди (мс)","advancedHint":"Оставьте пустым, чтобы использовать глобальные значения по умолчанию. Они переопределяют настройки каждого провайдера.","moveUp":"Вверх","moveDown":"Двигаться вниз","removeModel":"Удалить","saving":"Сохранение...","weighted":"Взвешенный","leastUsed":"Наименее используемый","costOpt":"Цена-опция"},"costs":{"title":"Затраты","budget":"Бюджет","totalCost":"Общая стоимость","breakdown":"Распределение затрат","noData":"Нет данных о стоимости","byModel":"По модели","byProvider":"По поставщику"},"endpoint":{"title":"Конечная точка API","available":"Доступные конечные точки","cloudProxy":"Облачный прокси","disableConfirm":"Вы уверены, что хотите отключить облачный прокси?","baseUrl":"Базовый URL","apiKeyLabel":"API-ключ","registeredKeys":"Зарегистрированные ключи","chatCompletions":"Завершения чата","responses":"Ответы","listModels":"Получение списка моделей","usingCloudProxy":"Использование облачного прокси","usingLocalServer":"Использование локального сервера","machineId":"Идентификатор машины: {id}...","disableCloud":"Отключить облако","enableCloud":"Включить облако","modelsAcrossEndpoints":"{models} модели на {endpoints} конечных точках","chatDesc":"Потоковое и непотоковое чат со всеми провайдерами","embeddings":"Вложения","embeddingsDesc":"Встраивание текста для конвейеров поиска и RAG","imageGeneration":"Генерация изображений","imageDesc":"Генерация изображений из текстовых подсказок","rerank":"Изменить рейтинг","rerankDesc":"Изменение ранжирования документов по релевантности запросу","audioTranscription":"Аудио транскрипция","audioTranscriptionDesc":"Транскрипция аудиофайлов в текст (шепотом)","textToSpeech":"Преобразование текста в речь","textToSpeechDesc":"Преобразование текста в естественно звучащую речь","moderations":"Модерации","moderationsDesc":"Модерация контента и классификация безопасности","enableCloudTitle":"Включить облачный прокси","whatYouGet":"Что вы получите","cloudBenefitAccess":"Доступ к вашему API из любой точки мира","cloudBenefitShare":"Легко делитесь конечной точкой со своей командой","cloudBenefitPorts":"Нет необходимости открывать порты или настраивать брандмауэр","cloudBenefitEdge":"Быстрая глобальная периферийная сеть","cloudSessionNote":"Cloud сохранит ваш сеанс аутентификации в течение 1\xa0дня. Если он не используется, он будет автоматически удален.","cloudUnstableNote":"Cloud в настоящее время нестабильно работает с Claude Code OAuth в некоторых случаях.","cloudConnected":"Облачный прокси подключен!","connectingToCloud":"Подключение к облаку...","verifyingConnection":"Проверка соединения...","connecting":"Подключение...","verifying":"Проверка...","connected":"Подключено!","disableCloudTitle":"Отключить облачный прокси","disableWarning":"Все сеансы аутентификации будут удалены из облака.","syncingData":"Синхронизация последних данных...","disablingCloud":"Отключение облака...","syncing":"Синхронизация...","disabling":"Отключение...","cloudConnectedVerified":"Облачный прокси подключен и проверен!","connectedVerificationPending":"Подключено — ожидается проверка","connectedVerificationPendingWithError":"Подключено — ожидается проверка: {error}","cloudDisabledSuccess":"Облако успешно отключено","syncedSuccess":"Синхронизировано успешно","failedDisable":"Не удалось отключить облако.","failedEnable":"Не удалось включить облако","cloudRequestTimeout":"Тайм-аут запроса облака","cloudRequestFailed":"Запрос в облако не выполнен.","cloudWorkerUnreachable":"Не удалось связаться с облачным работником. Убедитесь, что облачная служба запущена (npm run dev в /cloud).","connectionFailed":"Соединение не удалось","syncFailed":"Не удалось синхронизировать облачные данные.","providerModelsTitle":"{provider} — Модели","noModelsForProvider":"Нет доступных моделей для этого поставщика.","chat":"Чат","embedding":"Встраивание","image":"Изображение","custom":"обычай","modelsCount":"{count, plural, one {# model} other {# models}}","responsesDesc":"OpenAI Responses API для Codex и продвинутых агентных рабочих процессов","listModelsDesc":"Список всех доступных моделей по всем подключённым провайдерам","settingsApi":"Settings API","settingsApiDesc":"Чтение и изменение конфигурации OmniRoute через API","categoryCore":"Основные API","categoryMedia":"Медиа и мультимодальность","categoryUtility":"Утилиты и управление"},"health":{"title":"Здоровье системы","description":"Мониторинг вашего экземпляра OmniRoute в режиме реального времени","healthy":"Здоровый","degraded":"Деградированный","down":"Вниз","uptime":"Время работы","memory":"Память","memoryRss":"Память (RSS)","heap":"Куча","cpu":"ЦП","database":"База данных","version":"Версия","lastCheck":"Последняя проверка","providerHealth":"Здоровье поставщика","systemMetrics":"Системные метрики","tokenHealth":"Здоровье токена","refreshAll":"Обновить все","checkNow":"Проверьте сейчас","loadingHealth":"Загрузка данных о состоянии здоровья...","failedToLoad":"Не удалось загрузить данные о состоянии: {error}.","retry":"Повторить попытку","allOperational":"Все системы в рабочем состоянии","issuesDetected":"Обнаружены системные проблемы","updatedAt":"Обновлен {time}","latency":"Задержка","latencyP50":"стр50","latencyP95":"стр.95","latencyP99":"стр.99","millisecondsShort":"{value}мс","notAvailable":"—","totalRequests":"Всего запросов","noDataYet":"Данных пока нет","promptCache":"Подскажите кэш","entries":"Записи","hitRate":"Скорость попадания","hitsMisses":"Попадания/промахи","signatureCache":"Кэш подписей","signatureDefaults":"По умолчанию","signatureTool":"Инструмент","signatureFamily":"Семья","signatureSession":"Сессия","recovering":"Восстановление","noCBData":"Данные по автоматическому выключателю отсутствуют. Сначала сделайте несколько запросов.","providerHealthStatusAria":"Состояние здоровья поставщика","issuesLabel":"Обнаружены проблемы","operational":"Оперативный","providers":"Провайдеры","healthyCount":"{count} здоров","nodeVersion":"Узел {version}","failures":"{count} сбой","failuresPlural":"{count} сбоев","lastFailure":"Последний","rateLimitStatus":"Статус ограничения скорости","activeLimiters":"{count} активный ограничитель","activeLimitersPlural":"{count} активные ограничители","queued":"В очереди","queuedCount":"{count} поставлен в очередь","running":"бег","runningCount":"{count} работает","ok":"ОК","activeLockouts":"Активные блокировки","resetConfirm":"Вернуть все автоматические выключатели в исправное состояние? Это очистит все счетчики сбоев и вернет всех поставщиков в рабочее состояние.","resetAllTitle":"Верните все автоматические выключатели в исправное состояние.","resetting":"Сброс...","resetAll":"Сбросить все","until":"До {time}"},"limits":{"title":"Лимиты и квоты","rateLimit":"Ограничение скорости","remaining":"Осталось","requestsPerMinute":"Запросов/мин","tokensPerMinute":"Токенов/мин","dailyLimit":"Дневной лимит"},"logs":{"title":"Журналы","requestLogs":"Запрос журналов","proxyLogs":"Журналы прокси","auditLog":"Журнал аудита","console":"Консоль","auditLogDesc":"Административные действия и события безопасности","loading":"Загрузка...","refresh":"Обновить","filterByAction":"Фильтровать по действию...","filterByActor":"Фильтровать по актеру...","filterEntriesAria":"Фильтрация записей журнала аудита","filterByActionTypeAria":"Фильтровать по типу действия","filterByActorAria":"Фильтровать по актеру","refreshAuditLogAria":"Обновить журнал аудита","tableAria":"Записи журнала аудита","failedFetchAuditLog":"Не удалось получить журнал аудита.","showing":"Показаны записи {count} (смещение {offset})","search":"Поиск","timestamp":"Временная метка","action":"Действие","actor":"Актер","target":"Цель","details":"Подробности","ipAddress":"IP-адрес","notAvailable":"—","noEntries":"Записи журнала аудита не найдены","previous":"Предыдущий","next":"Далее"},"onboarding":{"welcome":"Добро пожаловать","security":"Безопасность","test":"Тест","ready":"Готово!","setPassword":"Установить пароль","addProvider":"Добавьте своего первого провайдера","getStarted":"Начать","skip":"Пропустить","skipWizard":"Полностью пропустить мастер","skipPassword":"Пропустить установку пароля","skipAndContinue":"Пропустить и продолжить","passwordLabel":"Пароль","confirmPassword":"Подтвердите пароль","enterPassword":"Введите пароль","confirmPasswordPlaceholder":"Подтвердите пароль","passwordsMismatch":"Пароли не совпадают","setupComplete":"Настройка завершена!","goToDashboard":"Перейти в личный кабинет →","welcomeDesc":"OmniRoute — это ваш локальный прокси-сервер AI API. Он направляет запросы нескольким поставщикам искусственного интеллекта с балансировкой нагрузки, аварийным переключением и отслеживанием использования.","multiProvider":"Мультипровайдер","usageTracking":"Отслеживание использования","apiKeyMgmt":"Управление ключами API","securityDesc":"Установите пароль для защиты вашей панели управления или пропустите этот шаг.","providerDesc":"Подключите своего первого поставщика искусственного интеллекта. Вы можете добавить больше позже.","apiKeyRequired":"Ключ API (обязательно)","customUrlOptional":"Пользовательский URL-адрес (необязательно)","testDesc":"Давайте проверим, работает ли подключение к вашему провайдеру.","runTest":"Запустить тест соединения","testingConnection":"Тестирование соединения...","connectionSuccessful":"Подключение успешно! Ваш провайдер готов.","noProviderFound":"Поставщик не найден. Вы можете добавить его из панели управления позже.","testFailed":"Тест не пройден, но вы можете настроить это позже.","couldNotTest":"Не удалось проверить сейчас. Вы можете протестировать с панели управления.","doneDesc":"Все готово! Ваш экземпляр OmniRoute настроен и готов к прокси-запросам AI.","yourEndpoint":"Ваша конечная точка:","continue":"Продолжить","retry":"Повторить попытку","failedSetPassword":"Не удалось установить пароль. Попробуйте еще раз.","failedAddProvider":"Не удалось добавить поставщика. Попробуйте еще раз.","connectionError":"Ошибка подключения. Пожалуйста, попробуйте еще раз.","provider":"Поставщик"},"providers":{"title":"Провайдеры","addProvider":"Добавить поставщика","editProvider":"Изменить поставщика","deleteProvider":"Удалить поставщика","noProviders":"Поставщики не настроены","modelAvailability":"Доступность модели","accounts":"Счета","newAccount":"Новая учетная запись","deleteConfirm":"Вы уверены, что хотите удалить этого провайдера?","testing":"Тестирование...","testConnection":"Тестовое соединение","testSuccess":"Соединение успешно","testFailed":"Соединение не удалось","available":"Доступно","cooldown":"Перезарядка","unavailable":"Недоступно","unknown":"Неизвестно","oauthLabel":"OAuth","compatibleLabel":"Совместимый","chat":"Чат","responses":"Ответы","messages":"Сообщения","oauthProviders":"Поставщики OAuth","freeProviders":"Бесплатные провайдеры","apiKeyProviders":"Поставщики ключей API","compatibleProviders":"Поставщики, совместимые с ключами API","testAll":"Проверить все","testAllOAuth":"Проверьте все соединения OAuth","testAllFree":"Проверьте все бесплатные соединения","testAllApiKey":"Проверьте все соединения API-ключей","testAllCompatible":"Проверьте все совместимые соединения","connected":"{count} подключено","errorCount":"{count} Ошибка ({code})","errorCountNoCode":"{count} Ошибка","noConnections":"Нет соединений","disabled":"Отключено","enableProvider":"Включить провайдера","disableProvider":"Отключить провайдера","testResults":"Результаты испытаний","noCompatibleYet":"Совместимых поставщиков пока не добавлено","compatibleHint":"Используйте кнопки выше, чтобы добавить конечные точки, совместимые с OpenAI или Anthropic.","addOpenAICompatible":"Добавить совместимость с OpenAI","addAnthropicCompatible":"Добавить антропную совместимость","addNewProvider":"Добавить нового провайдера","backToProviders":"Вернуться к Провайдерам","configureNewProvider":"Настройте нового поставщика ИИ для использования с вашими приложениями.","providerLabel":"Поставщик","selectProvider":"Выберите провайдера","selectedProvider":"Выбранный провайдер","authMethod":"Метод аутентификации","apiKeyLabel":"API-ключ","apiKeyRequired":"Требуется ключ API","selectProviderRequired":"Пожалуйста, выберите провайдера","enterApiKey":"Введите свой ключ API","apiKeySecure":"Ваш ключ API будет зашифрован и надежно сохранен.","oauth2Connect":"Подключиться с помощью OAuth2","oauth2Label":"ОАут2","oauth2Desc":"Подключите свою учетную запись, используя аутентификацию OAuth2.","displayName":"Отображаемое имя","displayNamePlaceholder":"например, Production API, среда разработки","displayNameHint":"Необязательно. Понятное имя для идентификации этой конфигурации.","active":"Активный","activeDescription":"Включите этого поставщика для использования в ваших приложениях.","cancel":"Отмена","createProvider":"Создать поставщика","failedCreate":"Не удалось создать поставщика","errorOccurred":"Произошла ошибка. Пожалуйста, попробуйте еще раз.","modelStatus":"Статус модели","allModelsOperational":"Все модели в рабочем состоянии","modelsWithIssues":"{count} модели с проблемами","allModelsNormal":"Все модели реагируют нормально.","cooldownCleared":"Время восстановления для {model} очищено.","failedClearCooldown":"Не удалось очистить время восстановления","loadingAvailability":"Загрузка доступности модели...","clearCooldown":"Очистить","clearing":"Очистка...","until":"До {time}","providerTestFailed":"Тест провайдера не пройден","modeTest":"{mode} Тест","passedCount":"{count} пройден","failedCount":"{count} не удалось","testedCount":"{count} проверено","millisecondsAbbr":"{value}мс","okShort":"ОК","errorShort":"ОШИБКА","noActiveConnectionsInGroup":"Для этой группы не найдено активных соединений.","allTestsPassed":"Все тесты {total} пройдены","testSummary":"{passed}/{total} пройден, {failed} не выполнен","nameLabel":"Имя","prefixLabel":"Префикс","baseUrlLabel":"Базовый URL","apiTypeLabel":"Тип API","prefixHint":"Обязательно. Уникальный префикс для названий моделей.","nameHint":"Обязательно. Дружественная метка для этого узла.","baseUrlHint":"Обязательно.  Базовый URL-адрес API поставщика.","anthropicPrefixPlaceholder":"ac-прод","openaiPrefixPlaceholder":"oc-прод","anthropicBaseUrlPlaceholder":"https://api.anthropic.com/v1","openaiBaseUrlPlaceholder":"https://api.openai.com/v1","validateConnection":"Подтвердить соединение","validating":"Проверка...","connectionValid":"Соединение действительно!","connectionFailed":"Соединение не удалось. Проверьте URL и ключ.","testKeyLabel":"Тестовый ключ API","testKeyPlaceholder":"sk-... (только для проверки)","providerNotFound":"Провайдер не найден","deleteConnectionConfirm":"Удалить это соединение?","failedSetAlias":"Не удалось установить псевдоним","failedSaveConnection":"Не удалось сохранить соединение.","failedSaveConnectionRetry":"Не удалось сохранить соединение. Пожалуйста, попробуйте еще раз.","failedRetestConnection":"Не удалось повторно проверить соединение","deleteCompatibleNodeConfirm":"Удалить этот {type} Совместимый узел?","anthropicCompatibleDetails":"Антропные совместимые детали","openaiCompatibleDetails":"Подробности совместимости с OpenAI","messagesApi":"API сообщений","responsesApi":"API ответов","chatCompletions":"Завершения чата","importingModels":"Импорт...","importFromModels":"Импорт из /модели","addConnectionToImport":"Добавьте соединение, чтобы включить импорт.","noModelsConfigured":"Ни одна модель не настроена","connectionCount":"{count} соединение(я)","fetchingModels":"Загрузка доступных моделей...","failedFetchModels":"Не удалось получить модели.","noModelsFound":"Модели не найдены","importFailed":"Импорт не удался","noNewModelsAdded":"Новых моделей не добавлялось.","adding":"Добавление...","importingModelsTitle":"Импорт моделей","copyModel":"Копировать модель","removeModel":"Удалить модель","rateLimitProtected":"Защищено","rateLimitUnprotected":"незащищенный","enableRateLimitProtection":"Нажмите, чтобы включить защиту от ограничения скорости","disableRateLimitProtection":"Нажмите, чтобы отключить защиту ограничения скорости","productionKey":"Производственный ключ","enterNewApiKey":"Введите новый ключ API","optional":"Необязательно","anthropicCompatibleName":"Антропная совместимость","openaiCompatibleName":"Совместимость с OpenAI","failedImportModels":"Не удалось импортировать модели.","noModelsReturnedFromEndpoint":"Ни одна модель не возвращена из конечной точки /models.","importingModelsProgress":"Импорт {current} из {total} моделей...","foundModelsStartingImport":"Найдено {count} моделей. Начинаем импорт...","importingModelById":"Импорт {modelId}...","importSuccessCount":"{count, plural, one {# model} other {# models}} успешно импортирован!","noNewModelsAddedExisting":"Новых моделей не добавлялось (все уже есть).","importDoneCount":"✓ Готово! {count, plural, one {# model imported.} other {# models imported.}}","unexpectedErrorOccurred":"Произошла непредвиденная ошибка","connectionCountLabel":"{count, plural, one {# connection} other {# connections}}","messagesPath":"сообщения","responsesPath":"ответы","chatCompletionsPath":"чат/дополнения","add":"Добавить","edit":"Редактировать","delete":"Удалить","anthropic":"антропный","openai":"ОпенАИ","singleConnectionPerCompatible":"Для каждого совместимого узла разрешено только одно соединение. Добавьте еще один узел, если вам нужно больше соединений.","connections":"Соединения","providerProxyTitleConfigured":"Прокси-сервер провайдера: {host}","configured":"настроен","providerProxyConfigureHint":"Настроить прокси для всех подключений этого провайдера","providerProxy":"Прокси-сервер провайдера","noConnectionsYet":"Пока нет подключений","addFirstConnectionHint":"Добавьте первое соединение, чтобы начать","addConnection":"Добавить соединение","availableModels":"Доступные модели","pageAutoRefresh":"Страница обновится автоматически...","statusDisabled":"отключен","statusConnected":"подключен","statusRuntimeIssue":"проблема во время выполнения","statusAuthFailed":"аутентификация не удалась","statusRateLimited":"ставка ограничена","statusNetworkIssue":"проблема с сетью","statusTestUnsupported":"тест не поддерживается","statusUnavailable":"недоступен","statusFailed":"не удалось","statusError":"ошибка","oauthAccount":"Учетная запись OAuth","errorTypeRuntime":"Локальная среда выполнения","errorTypeUpstreamAuth":"Авторизация восходящего потока","errorTypeMissingCredential":"Отсутствуют учетные данные","errorTypeRefreshFailed":"Обновить не удалось","errorTypeTokenExpired":"Срок действия токена истек","errorTypeRateLimited":"Скорость ограничена","errorTypeUpstreamUnavailable":"Восходящий поток недоступен","errorTypeNetworkError":"Ошибка сети","errorTypeTestUnsupported":"Тест не поддерживается","errorTypeUpstreamError":"Ошибка восходящего потока","proxySourceGlobal":"Глобальный","proxySourceProvider":"Поставщик","proxySourceKey":"Ключ","proxyConfiguredBySource":"Прокси ({source}): {host}","autoPriority":"Авто: {priority}","proxy":"Прокси","retestAuthentication":"Повторная проверка подлинности","retest":"Повторное тестирование","disableConnection":"Отключить соединение","enableConnection":"Включить соединение","reauthenticateConnection":"Повторно аутентифицировать это соединение","proxyConfig":"Конфигурация прокси","aliasExistsAlert":"Псевдоним \xab{alias}\xbb уже существует. Используйте другую модель или измените существующий псевдоним.","openRouterAnyModelHint":"OpenRouter поддерживает любую модель. Добавляйте модели и создавайте псевдонимы для быстрого доступа.","modelIdFromOpenRouter":"Идентификатор модели (из OpenRouter)","openRouterModelPlaceholder":"антропный/Клод-3-опус","customModels":"Пользовательские модели","customModelsHint":"Добавьте идентификаторы моделей, которых нет в списке по умолчанию. Они будут доступны для маршрутизации.","modelId":"Идентификатор модели","customModelPlaceholder":"например gpt-4.5-турбо","loading":"Загрузка...","removeCustomModel":"Удалить пользовательскую модель","noCustomModels":"Пользовательские модели пока не добавлены.","allSuggestedAliasesExist":"Все предложенные псевдонимы уже существуют. Пожалуйста, выберите другую модель или удалите конфликтующие псевдонимы.","failedSaveCustomModel":"Не удалось сохранить пользовательскую модель.","modelAddedSuccess":"Модель {modelId} успешно добавлена","failedAddModelTryAgain":"Не удалось добавить модель. Пожалуйста, попробуйте еще раз.","failedSaveImportedModel":"Не удалось сохранить импортированную модель в пользовательскую базу данных.","failedImportModelsTryAgain":"Не удалось импортировать модели. Пожалуйста, попробуйте еще раз.","failedRemoveModelFromDatabase":"Не удалось удалить модель из базы данных.","modelRemovedSuccess":"Модель успешно удалена","failedDeleteModelTryAgain":"Не удалось удалить модель. Пожалуйста, попробуйте еще раз.","compatibleModelsDescription":"Добавьте модели, совместимые с {type}, вручную или импортируйте их из конечной точки /models.","anthropicCompatibleModelPlaceholder":"Клод-3-опус-20240229","openaiCompatibleModelPlaceholder":"gpt-4o","apiKeyValidationFailed":"Проверка ключа API не удалась. Пожалуйста, проверьте свой ключ и повторите попытку.","addProviderApiKeyTitle":"Добавьте ключ API {provider}","checking":"Проверка...","check":"Проверить","valid":"Действителен","invalid":"Недействительный","creating":"Создание...","validationChecksAnthropicCompatible":"Проверка проверяет {provider} путем проверки ключа API.","validationChecksOpenAiCompatible":"Проверка проверяет {provider} через /models по вашему базовому URL-адресу.","priorityLabel":"Приоритет","saving":"Сохранение...","save":"Сохранить","editConnection":"Изменить соединение","accountName":"Имя учетной записи","email":"электронная почта","healthCheckMinutes":"Проверка здоровья (мин)","healthCheckHint":"Интервал обновления упреждающего токена. 0 = отключено.","failedTestConnection":"Не удалось проверить соединение","failed":"Не удалось","leaveBlankKeepCurrentApiKey":"Оставьте пустым, чтобы сохранить текущий ключ API.","editCompatibleTitle":"Изменить совместимость {type}","compatibleBaseUrlHint":"Используйте базовый URL-адрес (оканчивающийся на /v1) для вашего {type}-совместимого API.","apiKeyForCheck":"API-ключ (для проверки)","compatibleProdPlaceholder":"{type} Совместимость (Прод.)"},"settings":{"title":"Настройки","general":"Общий","security":"Безопасность","appearance":"Внешний вид","routing":"Маршрутизация","cache":"Кэш","resilience":"Устойчивость","systemPrompt":"Системная подсказка","thinkingBudget":"Думая о бюджете","proxy":"Прокси","pricing":"Цены","storage":"Хранение","policies":"Политика","ipFilter":"IP-фильтр","comboDefaults":"Комбинированные значения по умолчанию","fallbackChains":"Резервные цепочки","changePassword":"Изменить пароль","enablePassword":"Включить пароль","darkMode":"Темный режим","lightMode":"Светлый режим","systemTheme":"Системная тема","enableCache":"Включить кеш","cacheTTL":"Срок жизни кэша","maxCacheSize":"Максимальный размер кэша","clearCache":"Очистить кэш","cacheHits":"Попадания в кэш","cacheMisses":"Промахи в кэше","hitRate":"Скорость попадания","cacheEntries":"Записи кэша","circuitBreaker":"Автоматический выключатель","retryPolicy":"Политика повтора","maxRetries":"Макс. повторов","retryDelay":"Задержка повтора","timeoutMs":"Тайм-аут (мс)","enableSystemPrompt":"Включить системную подсказку","systemPromptText":"Текст системной подсказки","enableThinking":"Включить мышление","maxThinkingTokens":"Максимальное количество жетонов мышления","enableProxy":"Включить прокси","proxyUrl":"URL-адрес прокси-сервера","pricingRates":"Формат ценообразования","currentPricing":"Текущий обзор цен","loadingPricing":"Загрузка данных о ценах...","noPricing":"Нет данных о ценах","input":"Ввод","output":"Выход","cached":"Кэшированный","reasoning":"Рассуждение","cacheCreation":"Создание кэша","customPricing":"Индивидуальные цены","databaseSize":"Размер базы данных","backupDb":"Резервное копирование базы данных","restoreDb":"Восстановить базу данных","exportData":"Экспортировать данные","importData":"Импортировать данные","clearData":"Очистить все данные","clearDataConfirm":"Это приведет к безвозвратному удалению всех данных. Вы уверены?","enableRequestLogs":"Включить журналы запросов","logRetention":"Хранение журнала","ipWhitelist":"Белый список IP-адресов","ipBlacklist":"Черный список IP-адресов","addIP":"Добавить IP","savedSuccessfully":"Настройки успешно сохранены","ai":"ИИ","advanced":"Расширенный","localMode":"Локальный режим — все данные хранятся на вашем компьютере.","settingsSectionsAria":"Разделы настроек","switchThemes":"Переключение между светлой и темной темами","themeSelectionAria":"Выбор темы","themeLight":"Свет","themeDark":"Темный","themeSystem":"Система","hideHealthLogs":"Скрыть журналы проверки работоспособности","hideHealthLogsDesc":"Если включено, подавлять сообщения [HealthCheck] в консоли сервера.","promptCache":"Подскажите кэш","flushCache":"Очистить кэш","flushing":"Промывка…","size":"Размер","hits":"Хиты","evictions":"Выселения","loadingCacheStats":"Загрузка статистики кеша…","globalProxy":"Глобальный прокси","globalProxyDesc":"Настройте глобальный исходящий прокси-сервер для всех вызовов API. Отдельные поставщики, комбинации и ключи могут переопределить это.","noGlobalProxy":"Глобальный прокси не настроен","globalLabel":"Глобальный","configure":"Настроить","globalSystemPrompt":"Глобальная системная подсказка","systemPromptDesc":"Внедряется во все запросы на уровне прокси.","saved":"Сохранено","systemPromptPlaceholder":"Введите системное приглашение для внедрения во все запросы...","systemPromptHint":"Это приглашение добавляется к системному сообщению каждого запроса. Используйте для глобальных инструкций, рекомендаций по безопасности или правил форматирования ответов.","chars":"{count} символов","thinkingBudgetTitle":"Думая о бюджете","thinkingBudgetDesc":"Контролируйте использование токенов рассуждения ИИ во всех запросах","passthrough":"Сквозное прохождение","passthroughDesc":"Никаких изменений — клиент контролирует продуманный бюджет","auto":"Авто","autoDesc":"Удалите всю конфигурацию мышления — пусть решает провайдер","custom":"Пользовательский","customDesc":"Установите фиксированный бюджет токенов для всех запросов.","adaptive":"Адаптивный","adaptiveDesc":"Масштабируйте бюджет в зависимости от сложности запроса","effortNone":"Нет (0 токенов)","effortLow":"Низкий (1 тыс. токенов)","effortMedium":"Средний (10 тыс. токенов)","effortHigh":"Высокий (128 тыс. токенов)","tokenBudget":"Бюджет токена","tokens":"жетоны","baseEffortLevel":"Базовый уровень усилий","adaptiveHint":"Адаптивный режим масштабируется от этого базового уровня в зависимости от количества сообщений, использования инструмента и длины подсказки.","requireLogin":"Требовать вход","requireLoginDesc":"При включении приборная панель требует пароль. Когда ВЫКЛ, доступ без входа в систему.","currentPassword":"Текущий пароль","enterCurrentPassword":"Введите текущий пароль","newPassword":"Новый пароль","enterNewPassword":"Введите новый пароль","confirmPassword":"Подтвердите новый пароль","confirmPasswordPlaceholder":"Подтвердите новый пароль","passwordsNoMatch":"Пароли не совпадают","passwordUpdated":"Пароль успешно обновлен","failedUpdatePassword":"Не удалось обновить пароль","errorOccurred":"Произошла ошибка","updatePassword":"Обновить пароль","setPassword":"Установить пароль","apiEndpointProtection":"Защита конечных точек API","requireAuthModels":"Требовать ключ API для /models","requireAuthModelsDesc":"Если включено, конечная точка /v1/models возвращает 404 для неаутентифицированных запросов. Предотвращает обнаружение модели неавторизованными пользователями.","blockedProviders":"Заблокированные провайдеры","blockedProvidersDesc":"Скройте конкретных поставщиков из ответа /v1/models. Заблокированные поставщики не будут отображаться в списках моделей.","providersBlocked":"Поставщик(и) {count} заблокирован в /models","blockProviderTitle":"Блок {provider}","unblockProviderTitle":"Разблокировать {provider}","routingStrategy":"Стратегия маршрутизации","fillFirst":"Сначала заполните","fillFirstDesc":"Используйте учетные записи в порядке приоритета","roundRobin":"Круговая система","roundRobinDesc":"Перебирать все аккаунты","p2c":"P2C","p2cDesc":"Выберите 2 случайных, используйте более здоровый","random":"Случайный","randomDesc":"Случайный аккаунт для каждого запроса","leastUsed":"Наименее используемый","leastUsedDesc":"Выберите наименее использованную учетную запись","costOpt":"Опция стоимости","costOptDesc":"Предпочитаю самый дешевый доступный аккаунт","stickyLimit":"Липкий лимит","stickyLimitDesc":"Звонки на аккаунт до переключения","modelAliases":"Псевдонимы моделей","modelAliasesDesc":"Шаблоны подстановочных знаков для переназначения названий моделей • Используйте * и ?","aliasPatternPlaceholder":"Клод-сонет-*","aliasTargetPlaceholder":"Клод-сонет-4-20250514","pattern":"Узор","targetModel":"Целевая модель","add":"+ Добавить","session":"Сессия","sessionDetailsAria":"Детали сеанса","status":"Статус","authenticated":"Аутентифицированный","guest":"Гость","loginTime":"Время входа в систему","sessionAge":"Возраст сессии","browser":"Браузер","clearLocalData":"Очистить локальные данные","logout":"Выход из системы","clearLocalDataConfirm":"Удалить все локальные данные? Это сбросит ваши настройки.","unknown":"Неизвестно","systemActor":"система","ipAccessControl":"IP-контроль доступа","ipAccessControlDesc":"Блокировать или разрешать определенные IP-адреса","ipModeDisabled":"Отключено","ipModeBlacklist":"Черный список","ipModeWhitelist":"Белый список","ipModeWhitelistPriority":"Приоритет ВЛ","addIpAddress":"Добавить IP-адрес","ipAddressPlaceholder":"192.168.1.0/24 или 10.0.*.*","block":"+ Блокировать","allow":"+ Разрешить","blocked":"Заблокировано ({count})","allowed":"Разрешено ({count})","temporaryBans":"Временные баны ({count})","minLeft":"Осталось {min}\xa0м","auditLog":"Журнал аудита","searchAuditLogs":"Поиск в журналах аудита...","failedLoadAuditLog":"Не удалось загрузить журнал аудита.","noAuditEvents":"События аудита не найдены","action":"Действие","actor":"Актер","details":"Подробности","time":"Время","fallbackChainsTitle":"Резервные цепочки","fallbackChainsDesc":"Определить резервный порядок поставщика для каждой модели","addChain":"+ Добавить цепочку","modelName":"Название модели","modelNamePlaceholder":"Клод-сонет-4-20250514","providersCommaSeparated":"Поставщики (через запятую, в порядке приоритета)","providersCommaSeparatedPlaceholder":"антропный, опенай, близнецы","createChain":"Создать цепочку","noFallbackChains":"Никаких резервных цепочек","noFallbackChainsDesc":"Создайте цепочку, чтобы определить резервный порядок поставщика для модели.","loadingFallbackChains":"Загрузка резервных цепочек...","deleteChainConfirm":"Удалить резервную цепочку для \\"{model}\\"?","chainCreated":"Цепочка создана для {model}","chainDeleted":"Цепочка удалена для {model}.","failedCreateChain":"Не удалось создать цепочку.","failedDeleteChain":"Не удалось удалить цепочку.","deleteChain":"Удалить цепочку","fillModelAndProviders":"Пожалуйста, укажите название модели и поставщиков","addAtLeastOneProvider":"Добавьте хотя бы одного провайдера","comboDefaultsTitle":"Комбинированные значения по умолчанию","globalComboConfig":"Глобальная комбинированная конфигурация","defaultStrategy":"Стратегия по умолчанию","defaultStrategyDesc":"Применяется к новым комбинациям без явной стратегии.","comboStrategyAria":"Комбо-стратегия","priority":"Приоритет","weighted":"Взвешенный","maxRetriesLabel":"Макс. повторов","retryDelayLabel":"Задержка повтора (мс)","timeoutLabel":"Тайм-аут (мс)","healthCheck":"Проверка здоровья","healthCheckDesc":"Предварительная проверка доступности провайдера","trackMetrics":"Отслеживание показателей","trackMetricsDesc":"Запись показателей для каждого комбо-запроса","providerOverrides":"Переопределения поставщика","providerOverridesDesc":"Переопределить тайм-аут и повторные попытки для каждого поставщика. Настройки поставщика переопределяют глобальные настройки по умолчанию.","providerMaxRetriesAria":"{provider} максимальное количество повторов","providerTimeoutAria":"{provider} таймаут мс","removeProviderOverrideAria":"Удалить переопределение {provider}","newProviderNamePlaceholder":"например гугл, опенай...","newProviderNameAria":"Новое имя провайдера","retries":"повторные попытки","ms":"мс","saveComboDefaults":"Сохранить настройки комбинации по умолчанию","maxNestingDepth":"Максимальная глубина вложения","concurrencyPerModel":"Параллелизм/модель","queueTimeout":"Тайм-аут очереди (мс)","providerProfiles":"Профили поставщиков","providerProfilesDesc":"Отдельные настройки устойчивости для поставщиков OAuth (на основе сеанса) и API-ключей (измеренного). Поставщики OAuth имеют более строгие пороговые значения из-за более низких ограничений скорости.","oauthProviders":"Поставщики OAuth","apiKeyProviders":"Поставщики ключей API","transientCooldown":"Временное восстановление","rateLimitCooldown":"Время восстановления лимита скорости","maxBackoffLevel":"Максимальный уровень отсрочки","cbThreshold":"Порог CB","cbResetTime":"Время сброса выключателя","rateLimiting":"Ограничение скорости","rateLimitingDesc":"Поставщики ключей API автоматически ограничиваются по скорости безопасными значениями по умолчанию. Ограничения извлекаются из заголовков ответов и со временем адаптируются.","defaultSafetyNet":"Сеть безопасности по умолчанию","rpm":"об/мин","minGap":"Мин. разрыв","maxConcurrent":"Макс. одновременность","activeLimiters":"Активные лимитеры","noActiveLimiters":"Активных ограничителей скорости пока нет.","reservoir":"водохранилище","running":"Бег","queued":"В очереди","circuitBreakers":"Автоматические выключатели","breakerStateClosed":"Закрыто","breakerStateOpen":"Открыть","breakerStateHalfOpen":"Полуоткрытый","tripped":"{count} сработал","healthy":"{count} здоров","resetAll":"Сбросить все","noCircuitBreakers":"Автоматические выключатели пока не активны. Они создаются автоматически, когда запросы проходят через комбинированный конвейер.","failures":"{count} сбой(и)","policiesLocked":"Политики и заблокированные идентификаторы","allOperational":"Все системы в рабочем состоянии — никаких блокировок или срабатываний выключателей.","loadingPolicies":"Загрузка политик...","lockedIdentifiers":"Заблокированные идентификаторы","unlockedIdentifier":"Разблокировано: {identifier}","sinceDate":"с {date}","forceUnlock":"Принудительная разблокировка","unlocking":"Разблокировка...","failedUnlock":"Не удалось разблокировать","failedLoadWithStatus":"Не удалось загрузить: {status}.","failedLoadResilience":"Не удалось загрузить статус устойчивости.","saveFailed":"Сохранить не удалось","resetFailed":"Сбросить не удалось","loadingResilience":"Загрузка состояния устойчивости...","retry":"Повторить попытку","systemStorage":"Система и хранилище","allDataLocal":"Все данные хранятся локально на вашем компьютере.","databasePath":"Путь к базе данных","exportDatabase":"Экспорт базы данных","exportAll":"Экспортировать все (.tar.gz)","importDatabase":"Импортировать базу данных","confirmDbImport":"Подтвердить импорт базы данных","confirmDbImportDesc":"Это заменит все текущие данные содержимым из {file}. Резервная копия будет создана автоматически перед импортом.","yesImport":"Да, импорт","lastBackup":"Последняя резервная копия","noBackupYet":"Резервной копии пока нет","backupNow":"Резервное копирование сейчас","backupRestore":"Резервное копирование и восстановление","viewBackups":"Просмотр резервных копий","hide":"Скрыть","backupRetentionDesc":"Снимки базы данных создаются автоматически перед восстановлением и каждые 15 минут при изменении данных. Хранение: 24 часа в час + 30 ежедневных резервных копий с умной ротацией.","loadingBackups":"Загрузка резервных копий...","noBackupsYet":"Резервных копий пока нет. Резервные копии будут создаваться автоматически при изменении данных.","backupsAvailable":"Доступно {count} резервных копий","refresh":"Обновить","confirm":"Подтвердить?","yes":"Да","no":"Нет","restore":"Восстановить","invalidFileType":"Неверный тип файла. Принимаются только файлы .sqlite.","exportFailed":"Экспорт не удался","exportFailedWithError":"Не удалось экспортировать: {error}.","fullExportFailedWithError":"Не удалось выполнить полный экспорт: {error}.","backupCreated":"Резервная копия создана: {file}","restoreSuccess":"Восстановлено! {connections} соединений, {nodes} узлов, {combos} комбинаций, {apiKeys} ключей API.","importSuccess":"База данных импортирована! {connections} соединений, {nodes} узлов, {combos} комбинаций, {apiKeys} ключей API.","justNow":"только что","minutesAgo":"{count} мин назад","hoursAgo":"{count}ч назад","daysAgo":"{count}дн назад","backupReasonManual":"руководство","backupReasonPreRestore":"предварительное восстановление","connectionsCount":"{count, plural, one {# connection} other {# connections}}","noChangesSinceBackup":"Никаких изменений с момента последнего резервного копирования","backupFailed":"Резервное копирование не выполнено","restoreFailed":"Восстановление не удалось","importFailed":"Импорт не удался","errorDuringRestore":"Произошла ошибка во время восстановления","errorDuringImport":"Во время импорта произошла ошибка","modelPricing":"Цены на модели","modelPricingDesc":"Настройка ставок стоимости для каждой модели • Все ставки указаны в токенах $/1 млн.","providers":"Провайдеры","registry":"Реестр","priced":"Цена","searchProvidersModels":"Поиск поставщиков или моделей...","showAll":"Показать все","noProvidersMatch":"Ни один поставщик не соответствует вашему запросу.","howPricingWorks":"Как работает ценообразование","cacheWrite":"Запись в кэш","unsaved":"несохраненный","resetDefaults":"Сбросить настройки по умолчанию","saveProvider":"Сохранить поставщика","saving":"Сохранение...","model":"Модель","models":"модели","moreProviders":"{count} больше поставщиков","withPricing":"с настроенной ценой","policiesCircuitBreakers":"Политики и автоматические выключатели","activeIssuesDetected":"Обнаружены активные проблемы","off":"Выкл.","resetPricingConfirm":"Сбросить все цены для {provider} до значений по умолчанию?","pricingDescInput":"Входные данные: токены, отправленные в модель.","pricingDescOutput":"Результат: сгенерированы токены","pricingDescCached":"Кэшировано: повторно используемый ввод (~ 50\xa0% от частоты ввода)","pricingDescReasoning":"Рассуждение: жетоны мышления (возврат к выходу)","pricingDescCacheWrite":"Запись в кэш: создание записей в кэше (возврат к вводу)","pricingDescFormula":"Стоимость = (вход \xd7 входная_ставка) + (выход \xd7 выходная_ставка) + (кэширование \xd7 кэшированная_ставка) за миллион токенов.","pricingSettingsTitle":"Настройки цен","totalModels":"Всего моделей","active":"Активный","costCalculation":"Расчет стоимости","costCalculationDesc":"Затраты рассчитываются на основе использования токенов и ценовых ставок, настроенных для каждой модели.","pricingFormat":"Формат цен","pricingFormatDesc":"Все ставки указаны в токенах $/1M (долларов за миллион токенов).","tokenTypes":"Типы токенов","inputTokenDesc":"Стандартные токены подсказок","outputTokenDesc":"Жетоны завершения/ответа","cachedTokenDesc":"Кэшированные входные токены (обычно 50\xa0% от скорости ввода)","reasoningTokenDesc":"Специальные жетоны рассуждения/мышления (возврат к скорости вывода)","cacheCreationTokenDesc":"Токены, используемые для создания записей в кэше (возврат к скорости ввода)","customPricingNote":"Вы можете переопределить цены по умолчанию для определенных моделей. Пользовательские переопределения имеют приоритет над ценами, определяемыми автоматически.","editPricing":"Изменить цену","viewFullDetails":"Посмотреть полную информацию","modelAliasesTitle":"Псевдонимы моделей","addCustomAlias":"Добавить пользовательский псевдоним","deprecatedModelId":"Устаревший ID модели","newModelId":"Новый ID модели","customAliases":"Пользовательские псевдонимы","builtInAliases":"Встроенные псевдонимы","backgroundDegradationTitle":"Деградация фоновых задач","backgroundDegradationDesc":"Автоматически обнаруживает фоновые задачи (заголовки, резюме) и перенаправляет на более дешёвые модели","enableDegradation":"Включить деградацию фоновых задач","enableDegradationHint":"Когда включено, фоновые задачи, такие как генерация заголовков и резюмирование, автоматически перенаправляются на более дешёвые модели","tasksDetected":"Обнаружено задач","degradationMap":"Карта деградации моделей","premiumModel":"Премиум-модель","cheapModel":"Дешёвая модель","detectionPatterns":"Шаблоны обнаружения","newPattern":"напр. \\"создать заголовок\\""},"translator":{"title":"Переводчик","metaTitle":"Детская площадка для переводчиков | ОмниРоут","metaDescription":"Отладка, тестирование и визуализация преобразований форматов API между поставщиками.","playgroundTitle":"Площадка для переводчиков","playground":"Детская площадка","realtime":"Переводческая деятельность в режиме реального времени","chatTester":"Тестер чата","testBench":"Испытательный стенд","liveMonitor":"Живой монитор","modeDescriptionPlayground":"Вставьте любое тело запроса API и посмотрите, как OmniRoute преобразует его между форматами поставщика (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).","modeDescriptionChatTester":"Отправляйте реальные запросы чата через OmniRoute и проверяйте полный цикл обработки: входные данные, переведенный запрос, ответ поставщика и переведенный вывод.","modeDescriptionTestBench":"Запускайте заранее определенные сценарии и сравнивайте совместимость поставщиков и моделей.","modeDescriptionLiveMonitor":"Наблюдайте за событиями перевода в режиме реального времени по мере прохождения запросов через OmniRoute.","modeDescriptionFallback":"Отлаживайте, тестируйте и визуализируйте, как OmniRoute преобразует запросы API между поставщиками.","recentTranslations":"Недавние переводы","noTranslations":"Переводов пока нет","source":"Источник","target":"Цель","time":"Время","model":"Модель","status":"Статус","latency":"Задержка","totalTranslations":"Всего переводов","successful":"Успешный","errors":"Ошибки","avgLatency":"Средняя задержка","millisecondsShort":"{value}мс","notAvailableSymbol":"—","liveAutoRefreshing":"Прямой эфир — автоматическое обновление","paused":"Приостановлено","eventsAppearHint":"События перевода появляются здесь по мере прохождения запросов через OmniRoute. Используйте любой из этих методов для генерации событий:","chatTesterTab":"Вкладка \xabТестер чата\xbb","testBenchTab":"Вкладка \xabТестовый стенд\xbb","externalApiCalls":"Внешние вызовы API","ideCliIntegrations":"Интеграция IDE/CLI","inMemoryNote":"Примечание. События сохраняются в памяти и сбрасываются при перезапуске сервера.","ok":"ОК","errorShort":"ОШИБКА","formatConverter":"Конвертер форматов","formatConverterDescription":"Вставьте или введите тело запроса JSON. Переводчик автоматически определит исходный формат и преобразует его в целевой формат. Используйте это для отладки того, как OmniRoute преобразует запросы между форматами (OpenAI ↔ Claude ↔ Gemini ↔ API ответов).","input":"Ввод","output":"Выход","auto":"Авто","swapFormats":"Форматы обмена","translateAction":"Перевести","clear":"Очистить","inputPlaceholder":"Вставьте сюда текст запроса или выберите шаблон ниже...","exampleTemplates":"Примеры шаблонов","exampleTemplatesHint":"— Нажмите, чтобы загрузить","templateLoadHint":"Шаблон загружает запрос в формате {format}. Измените исходный формат, чтобы загрузить его в другом формате.","compatibilityTester":"Тестер совместимости","compatibilityReport":"Отчет о совместимости","testBenchDescription":"Запустите предопределенные сценарии (простой чат, вызов инструментов и т.\xa0д.), чтобы проверить совместимость перевода и поставщика. Выберите исходный формат и целевого поставщика, затем запустите все тесты, чтобы увидеть процент совместимости. Используйте это, чтобы узнать, какие функции работают у разных поставщиков.","targetProvider":"Целевой поставщик","runAllTests":"Запустить все тесты","runTest":"Запустить тест","reRun":"Повторный запуск","running":"Бег...","passed":"прошло","failed":"не удалось","passedIconLabel":"✅ Пройдено","chunks":"куски","scenarioSimpleChat":"Простой чат","scenarioToolCalling":"Вызов инструмента","scenarioMultiTurn":"Многооборотный","scenarioThinking":"мышление","scenarioSystemPrompt":"Системная подсказка","scenarioStreaming":"Потоковое вещание","templateNames":{"simple-chat":"Простой чат","tool-calling":"Вызов инструмента","multi-turn":"Многооборотный","thinking":"мышление","system-prompt":"Системная подсказка","streaming":"Потоковое вещание"},"templateDescriptions":{"simple-chat":"Основное текстовое сообщение","tool-calling":"Вызов функции/инструмента","multi-turn":"Разговор с историей","thinking":"Расширенное мышление/рассуждение","system-prompt":"Сложные системные инструкции","streaming":"Запрос потоковой передачи SSE"},"templatePayloads":{"simpleChat":{"system":"Вы полезный помощник.","userGreeting":"Здравствуйте! Как вы сегодня?"},"toolCalling":{"userWeather":"Какая погода в Сан-Паулу?","toolDescription":"Получить текущую погоду для местоположения","cityNameDescription":"Название города"},"multiTurn":{"system":"Вы помощник кодировщика.","userInitial":"Напишите функцию для сортировки массива на Python.","assistantExample":"Вот простая функция сортировки:\\n\\n``` питон\\nЗащиту sort_array (обр):\\n возврат отсортированный (прибытие)\\n```","userFollowUp":"Теперь отсортируйте его по убыванию."},"thinking":{"question":"Какова сумма первых 100 простых чисел?"},"systemPrompt":{"systemInstruction":"Вы старший инженер-программист, специализирующийся на распределенных системах. Кратко отвечайте на вопросы, используя лучшие отраслевые практики. Всегда предоставляйте примеры кода, когда это уместно. Отформатируйте свои ответы, используя уценку.","question":"Как реализовать шаблон автоматического выключателя?"},"streaming":{"prompt":"Расскажите мне короткую историю о роботе, который учится рисовать."}},"openaiCompatibleLabel":"Совместимость с OpenAI","anthropicCompatibleLabel":"Антропная совместимость","noTemplateForFormat":"Нет шаблона для этого формата","translationFailed":"Не удалось выполнить перевод: {error}.","pipelineDebugger":"Отладчик конвейеров","translationPipeline":"Конвейер перевода","pipelineVisualization":"Визуализация трубопровода","pipelineVisualizationHint":"Отправьте сообщение, чтобы узнать, как ваш запрос проходит через обнаружение → перевод → звонок поставщику.","chatTesterDescription":"Отправляйте сообщения в определенном клиентском формате и проверяйте каждый этап конвейера перевода.","chatTesterFlow":"Запрос клиента → Обнаружение формата → OpenAI Intermediate → Формат поставщика → Ответ","clickStepToInspect":"Щелкните любой шаг, чтобы проверить данные на этом этапе.","clientFormat":"Формат клиента","provider":"Поставщик","modelPlaceholder":"Выберите или введите название модели...","sendMessageToSeePipeline":"Отправьте сообщение, чтобы увидеть процесс перевода","chatMessageHintPrefix":"Ваше сообщение будет отформатировано как","chatMessageHintSuffix":"запрос, транслируемый через конвейер и отправляемый выбранному провайдеру.","youWithFormat":"Вы ({format})","assistant":"Ассистент","typeMessage":"Введите сообщение...","send":"Отправить","clientRequest":"Запрос клиента","clientRequestDescription":"Тело запроса в том виде, в каком его отправил бы ваш клиент.","formatDetected":"Обнаружен формат","formatDetectedDescription":"OmniRoute автоматически определяет формат API по структуре запроса.","openaiIntermediate":"OpenAI Средний уровень","openaiIntermediateDescription":"Все форматы сначала нормализуются до формата OpenAI (универсальный мост).","providerFormat":"Формат поставщика","providerFormatDescription":"Формат OpenAI транслируется в собственный формат провайдера.","providerResponse":"Ответ поставщика","providerResponseRawDescription":"Необработанный ответ от API провайдера","providerResponseSseDescription":"Необработанный поток SSE из API провайдера","unexpectedError":"Произошла непредвиденная ошибка","error":"Ошибка","errorMessage":"Ошибка: {message}","requestFailed":"Запрос не выполнен","noTextExtracted":"(текст не извлечен)","liveMonitorDescriptionPrefix":"Показывает события перевода, когда вызовы API проходят через OmniRoute. События поступают из буфера в памяти (сбрасывается при перезапуске). Использование","liveMonitorDescriptionSuffix":"или внешние вызовы API для генерации событий."},"usage":{"title":"Использование","loggerTab":"Регистратор","proxyTab":"Прокси","budgetManagement":"Управление бюджетом","budgetSaved":"Ограничения бюджета сохранены.","budgetSaveFailed":"Не удалось сохранить бюджет.","loadingBudgetData":"Загрузка данных бюджета...","noApiKeysTitle":"Нет ключей API","noApiKeysDescription":"Сначала добавьте ключи API, чтобы настроить ограничения бюджета.","apiKey":"API-ключ","todaysSpend":"Сегодняшние расходы","thisMonth":"В этом месяце","setLimits":"Установить ограничения","dailyLimitUsd":"Дневной лимит (доллар США)","monthlyLimitUsd":"Месячный лимит (долл. США)","warningThresholdPercent":"Порог предупреждения (%)","dailyLimitPlaceholder":"например 5.00","monthlyLimitPlaceholder":"например 50.00","warningThresholdPlaceholder":"80","saveLimits":"Сохранить лимиты","budgetOk":"Бюджет в порядке — осталось {remaining}","budgetExceeded":"Бюджет превышен — запросы могут быть заблокированы","totalRequests":"Всего запросов","noDataYet":"Данных пока нет","latency":"Задержка","latencyP50":"стр50","latencyP95":"стр.95","latencyP99":"стр.99","promptCache":"Подскажите кэш","systemHealth":"Здоровье системы","entries":"Записи","activeCount":"{count} активен","openCircuitBreakersDetected":"Обнаружены разомкнутые автоматические выключатели","hitRate":"Скорость попадания","hitsMisses":"Попадания/промахи","circuitBreakers":"Автоматические выключатели","lockedIPs":"Заблокированные IP-адреса","lockoutsAutoRefreshHint":"Блокировка ограничения скорости для каждой модели • Автоматическое обновление 10 с.","lockedCount":"{count, plural, one {# locked} other {# locked}}","timeLeft":"{time} осталось","howItWorks":"Как это работает","howItWorksSubtitle":"Узнайте, как оценки подтверждают ваши ответы LLM","define":"Определить","defineStepDescription":"Создавайте тестовые примеры с подсказками для ввода и ожидаемыми критериями вывода, используя такие стратегии, как \xabсодержит\xbb, регулярное выражение или точное соответствие.","run":"Беги","runStepDescription":"Выполняйте тестовые сценарии для конечных точек LLM через OmniRoute. Каждый случай отправляется как реальный запрос API.","evaluate":"Оценить","evaluateStepDescription":"Ответы сравниваются с ожидаемыми критериями. См. \xabГоден/не годен\xbb для каждого случая с показателями задержки и подробной обратной связью.","evalSuites":"Оценочные пакеты","evalSuitesHint":"Щелкните пакет, чтобы просмотреть тестовые примеры, а затем запустите его для оценки конечных точек LLM.","evalsLoading":"Загрузка тестовых пакетов...","noEvalSuitesFound":"Eval Suites не найдено","noEvalSuitesDescription":"Пакеты Eval можно определить через API или в коде. Они проверяют результаты модели на соответствие ожидаемым результатам, используя такие стратегии, как содержание, регулярное выражение, точное соответствие и пользовательские функции.","columnCase":"Дело","columnStatus":"Статус","columnLatency":"Задержка","columnDetails":"Подробности","columnModel":"Модель","columnStrategy":"Стратегия","columnExpected":"Ожидается","statsSuites":"Люксы","statsTestCases":"Тестовые случаи","statsModels":"Модели","statsCoverage":"Покрытие","statsStrategiesCount":"{count} стратегии","evaluationStrategies":"Стратегии оценки","modelsUnderTest":"Тестируемые модели","searchSuitesPlaceholder":"Искать апартаменты...","passSuffix":"пройти","casesCount":"{count, plural, one {# case} other {# cases}}","runEval":"Запустить оценку","runningProgress":"Запуск {current}/{total}...","passRate":"проходной балл","summaryBreakdown":"{passed} пройден \xb7 {failed} не пройден \xb7 всего {total}","passedIconLabel":"✅ Пройдено","failedIconLabel":"❌ Не удалось","detailsContains":"Содержит: \xab{term}\xbb","detailsRegex":"Регулярное выражение: {pattern}","detailsExpected":"Ожидается: \\"{expected}\\"","noResultsYet":"Пока нет результатов","testCasesCount":"Тестовые примеры ({count})","noTestCasesDefined":"Тестовые примеры не определены","runEvalHint":"Нажмите \xabЗапустить оценку\xbb, чтобы выполнить все случаи для вашей конечной точки LLM. Каждый тест отправляет реальный запрос через OmniRoute.","notifyNoTestCases":"Для этого набора тестовых примеров не определено.","notifyAllCasesPassed":"Все дела {total} пройдены ✅","notifySomeCasesFailed":"{passed}/{total} пройден, {failed} не выполнен","notifyEvalRunFailed":"Оценочный запуск не удался","notifyEvalTitle":"Оценка: {name}","modelEvals":"Модельные оценки","evalsHeroDescription":"Протестируйте и подтвердите свои конечные точки LLM, запустив предварительно определенные пакеты оценки. Каждый пакет содержит тестовые примеры, которые отправляют реальные запросы через OmniRoute и сравнивают ответы с ожидаемыми критериями, что помогает выявлять регрессии, сравнивать модели и обеспечивать качество ответов между поставщиками.","qualityValidation":"Проверка качества","modelComparison":"Сравнение моделей","regressionDetection":"Обнаружение регрессии","latencyBenchmarks":"Тесты задержки","modelLockouts":"Модельные локауты","noLockouts":"Ни одна модель в настоящее время не заблокирована","activeSessions":"Активные сессии","noSessions":"Нет активных сессий","sessionsHint":"Сеансы появляются по мере прохождения запросов через прокси.","sessionsTrackedHint":"Отслеживается с помощью снятия отпечатков пальцев • Автоматическое обновление в течение 5 секунд.","session":"Сессия","age":"Возраст","requests":"Запросы","connection":"Подключение","durationMillisecondsShort":"{value}мс","durationSecondsShort":"{value}с","durationMinutesShort":"{value}м","durationHoursShort":"{value}h","reasonSeparator":" - ","notAvailableSymbol":"-","providerLimits":"Ограничения поставщика","noProviders":"Ни один провайдер не подключен","connectProvidersForQuota":"Подключайтесь к поставщикам с помощью OAuth, чтобы отслеживать ограничения и использование квот API.","accountsCount":"{count, plural, one {# account} other {# accounts}}","filteredFromCount":"(отфильтровано из {count})","autoRefresh":"Автообновление","refreshAll":"Обновить все","loadingQuotas":"Загрузка...","account":"Аккаунт","modelQuotas":"Модельные квоты","lastUsed":"Последнее использование","actions":"Действия","refreshQuota":"Обновить квоту","today":"Сегодня","tomorrow":"Завтра","dayTimeFormat":"{day}, {time}","inDuration":"в {duration}","notApplicable":"Н/Д","rawPlanWithValue":"Необработанный план: {plan}","noPlanFromProvider":"Нет плана от провайдера","noQuotaData":"Нет данных о квотах","noQuotaDataAvailable":"Нет данных о квотах","noAccountsForTierFilter":"Аккаунты для фильтра уровня не найдены","tierAll":"Все","tierEnterprise":"Предприятие","tierTeam":"Команда","tierBusiness":"Бизнес","tierUltra":"Ультра","tierPro":"Про","tierPlus":"Плюс","tierFree":"Бесплатно","tierUnknown":"Неизвестно"},"modals":{"waitingAuth":"Ожидание авторизации","verificationUrl":"URL-адрес подтверждения","yourCode":"Ваш код","remoteAccess":"Удаленный доступ:","connectedSuccess":"Подключено успешно!","connectionFailed":"Соединение не удалось","chooseAuthMethod":"Выберите метод аутентификации:","awsBuilderId":"Идентификатор строителя AWS","awsIamIdentity":"Центр идентификации AWS IAM","googleAccount":"Аккаунт Google","githubAccount":"Аккаунт GitHub","importToken":"Импортировать токен","pasteToken":"Вставьте токен обновления из Kiro IDE.","awsRegion":"Регион AWS","autoDetecting":"Автоматическое обнаружение токенов...","readingFromCache":"Чтение из кэша AWS SSO","readingFromCursor":"Чтение из базы данных Cursor IDE","initializing":"Инициализация...","pricingConfig":"Конфигурация цен","loadingPricing":"Загрузка данных о ценах...","pricingRatesFormat":"Формат ценообразования","noPricingData":"Нет данных о ценах","noModelsFound":"Модели не найдены"},"loggers":{"allProviders":"Все провайдеры","allModels":"Все модели","allAccounts":"Все аккаунты","allApiKeys":"Все ключи API","allTypes":"Все типы","allLevels":"Все уровни","modelAZ":"Модель А-Я","modelZA":"Модель Z-A","loadingLogs":"Загрузка журналов...","loadingProxyLogs":"Загрузка журналов прокси...","noLogEntries":"Записи журнала не найдены","noPayloadData":"Для этой записи журнала отсутствуют данные полезной нагрузки.","proxyEvent":"Прокси-событие","proxy":"Прокси","level":"Уровень","directNative":"Прямой (родной)","combo":"Комбо","inputTokens":"Я:","outputTokens":"О:"},"stats":{"usageOverview":"Обзор использования","outputTokens":"Выходные токены","totalCost":"Общая стоимость","usageByModel":"Использование по модели","usageByAccount":"Использование по учетной записи","failedToLoad":"Не удалось загрузить статистику использования.","tokenHealth":"Здоровье токена","totalOAuth":"Всего OAuth","healthy":"Здоровый","warning":"Предупреждение","errored":"Ошибка","lastCheck":"Последняя проверка","noData":"Нет данных","share":"Поделиться","unableToLoad":"Невозможно загрузить системные метрики","product":"Продукт","resources":"Ресурсы","company":"Компания"},"auth":{"welcome":"Добро пожаловать","signIn":"Войти","enterPassword":"Введите свой пароль, чтобы продолжить","password":"Пароль","unifiedProxy":"Единый прокси-сервер AI API","unifiedAiApiProxy":"Единый прокси-сервер AI API","unifiedAiApiProxyDesc":"Направляйте запросы к нескольким поставщикам ИИ через одну конечную точку. Встроенные функции балансировки нагрузки, аварийного переключения и отслеживания использования.","passwordNotEnabled":"Защита паролем не включена","loading":"Загрузка...","invalidPassword":"Неверный пароль","errorOccurredRetry":"Произошла ошибка. Пожалуйста, попробуйте еще раз.","configureInstance":"Давайте настроим ваш экземпляр OmniRoute.","runOnboardingWizard":"Запустите мастер регистрации, чтобы настроить пароль и подключить первого поставщика ИИ.","startOnboarding":"Начать регистрацию","secureYourInstance":"Защитите свой экземпляр","setPasswordDescription":"Установите пароль, чтобы защитить свою панель управления и защитить конечные точки API от несанкционированного доступа.","configurePassword":"Настроить пароль","continue":"Продолжить","windowWillClose":"Это окно закроется автоматически...","closeTabNow":"Вы можете закрыть эту вкладку сейчас.","copyUrlManual":"Скопируйте URL-адрес из адресной строки и вставьте его в приложение.","accessDeniedDescription":"У вас нет разрешения на доступ к этому ресурсу. Проверьте свой API-ключ или свяжитесь с администратором.","goToDashboard":"Перейти на панель управления","featureMultiProviderTitle":"Мультипровайдер","featureMultiProviderDesc":"OpenAI, Anthropic, Google и другие","featureLoadBalancingTitle":"Балансировка нагрузки","featureLoadBalancingDesc":"Распределяйте запросы разумно","featureUsageTrackingTitle":"Отслеживание использования","featureUsageTrackingDesc":"Мониторинг затрат и токенов","resetPassword":"Сбросить пароль","resetDescription":"Выберите способ восстановления доступа к панели управления","stopServer":"Остановите сервер OmniRoute.","processing":"Обработка...","pleaseWait":"Пожалуйста, подождите, пока мы завершим авторизацию.","authSuccess":"Авторизация прошла успешно!","copyUrl":"Скопировать этот URL","accessDenied":"Доступ запрещен","methodCliTitle":"Способ 1: сброс CLI","methodCliDescription":"Выполните следующую команду на сервере, где работает OmniRoute:","methodCliHint":"Это предложит вам установить новый пароль. Сначала сервер должен быть остановлен.","methodManualTitle":"Способ 2: Ручной сброс","methodManualDescription":"Удалим пароль из базы данных и установим новый при запуске:","setPasswordInYour":"Установите новый пароль в своем","fileLabelSuffix":"файл:","newPasswordPlaceholder":"ваш_новый_пароль","deleteSettingsFile":"Удалить","orRemovePasswordHashField":"или удалите поле пароляHash","restartServerWithNewPassword":"Перезагрузите сервер - он будет использовать новый пароль.","backToLogin":"Вернуться к входу","forgotPassword":"Забыли пароль?"},"landing":{"brandName":"ОмниРоут","navigateHome":"Перейти домой","toggleMenu":"Переключить меню","featuresLink":"Особенности","docsLink":"Документы","github":"GitHub","versionLive":"v1.0 уже доступен","oneEndpoint":"Одна конечная точка для","allProviders":"Все поставщики ИИ","heroDescription":"Прокси-сервер конечной точки AI с веб-панелью — порт CLIProxyAPI на JavaScript. Беспрепятственно работает с Claude Code, OpenAI Codex, Cline, RooCode и другими инструментами CLI.","getStarted":"Начать","viewOnGithub":"Посмотреть на GitHub","powerfulFeatures":"Мощные функции","featuresSubtitle":"Все, что вам нужно для управления инфраструктурой искусственного интеллекта, собрано в одном месте и рассчитано на масштабирование.","featureUnifiedEndpointTitle":"Единая конечная точка","featureUnifiedEndpointDesc":"Доступ ко всем поставщикам через единый стандартный URL-адрес API.","featureEasySetupTitle":"Простая настройка","featureEasySetupDesc":"Приступайте к работе за считанные минуты с помощью команды npx.","featureModelFallbackTitle":"Резервная модель","featureModelFallbackDesc":"Автоматически переключайте поставщиков в случае сбоя или высокой задержки.","featureUsageTrackingTitle":"Отслеживание использования","featureUsageTrackingDesc":"Подробная аналитика и мониторинг затрат по всем моделям.","featureOAuthApiKeysTitle":"OAuth и ключи API","featureOAuthApiKeysDesc":"Безопасно управляйте учетными данными в одном хранилище.","featureCloudSyncTitle":"Облачная синхронизация","featureCloudSyncDesc":"Мгновенно синхронизируйте свои конфигурации между устройствами.","featureCliSupportTitle":"Поддержка интерфейса командной строки","featureCliSupportDesc":"Работает с Claude Code, Codex, Cline, Cursor и другими.","featureDashboardTitle":"Панель управления","featureDashboardDesc":"Визуальная панель для анализа трафика в реальном времени.","howItWorks":"Как работает OmniRoute","howItWorksDescription":"Данные беспрепятственно передаются из вашего приложения через наш уровень интеллектуальной маршрутизации к лучшему поставщику для выполнения этой работы.","howItWorksStep1Title":"1. Интерфейс командной строки и SDK","howItWorksStep1Description":"Ваши запросы начинаются с ваших любимых инструментов или нашего единого SDK. Просто измените базовый URL.","howItWorksStep2Title":"2. Хаб OmniRoute","howItWorksStep2Description":"Наш механизм анализирует приглашение, проверяет работоспособность провайдера и маршрутизирует с наименьшей задержкой или стоимостью.","howItWorksStep3Title":"3. Поставщики ИИ","howItWorksStep3Description":"Запрос мгновенно выполняется OpenAI, Anthropic, Gemini или другими.","getStartedIn30Seconds":"Начните за 30 секунд","getStartedDescription":"Установите OmniRoute, настройте своих провайдеров через веб-панель и начните маршрутизировать запросы AI.","installOmniRoute":"Установите OmniRoute","installStepDescription":"Запустите команду npx, чтобы мгновенно запустить сервер.","openDashboard":"Открыть панель управления","openDashboardStepDescription":"Настройка поставщиков и ключей API через веб-интерфейс","routeRequests":"Запросы маршрутов","routeRequestsStepDescription":"Направьте свои инструменты CLI на {endpoint}.","terminal":"терминал","copy":"Копировать","copied":"✓ Скопировано","startingOmniRoute":"Запускаем OmniRoute...","serverRunningOnLabel":"Сервер работает на","dashboardLabel":"Панель управления","readyToRoute":"Готов к маршруту! ✓","configureProvidersNote":"\uD83D\uDCDD Настройте поставщиков на панели управления или используйте переменные среды.","dataLocation":"Местоположение данных:","dataLocationMacLinux":" macOS/Линукс:","dataLocationWindows":" Окна:","product":"Продукт","dashboardLink":"Панель управления","changelog":"Журнал изменений","resources":"Ресурсы","documentation":"Документация","npm":"НПМ","legal":"Юридический","mitLicense":"Лицензия MIT","footerTagline":"Единая конечная точка для создания ИИ. С легкостью подключайтесь, маршрутизируйте и управляйте своими поставщиками ИИ.","copyright":"\xa9 {year} OmniRoute. Все права защищены.","flowToolClaudeCode":"Клод Код","flowToolOpenAICodex":"Кодекс OpenAI","flowToolCline":"Клайн","flowToolCursor":"Курсор","flowProviderOpenAI":"ОпенАИ","flowProviderAnthropic":"антропный","flowProviderGemini":"Близнецы","flowProviderGithubCopilot":"GitHub второй пилот","interactiveDiagram":"Интерактивная диаграмма видна на рабочем столе","ctaTitle":"Готовы упростить свою инфраструктуру искусственного интеллекта?","ctaDescription":"Присоединяйтесь к разработчикам, которые оптимизируют интеграцию искусственного интеллекта с помощью OmniRoute. Открытый исходный код и бесплатный запуск.","startFree":"Начать бесплатно","readDocumentation":"Читать документацию"},"docs":{"title":"Документация","quickStart":"Быстрый старт","features":"Особенности","supportedProviders":"Поддерживаемые провайдеры","supportedProvidersToc":"Провайдеры","commonUseCases":"Общие случаи использования","clientCompatibility":"Совместимость клиентов","apiReference":"Справочник по API","method":"Метод","path":"Путь","notes":"Примечания","modelPrefixes":"Префиксы моделей","prefix":"Префикс","troubleshooting":"Устранение неполадок","supportsChat":"Поддерживает конечные точки чата и ответов.","oauthAutoRefresh":"Соединение OAuth с автоматическим обновлением токена.","fullStreaming":"Полная поддержка потоковой передачи для всех моделей.","docsLabel":"Документы","docsHeroDescription":"AI-шлюз для LLM с несколькими поставщиками. Одна конечная точка для OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor и еще более 20 провайдеров.","openDashboard":"Открыть панель управления","endpointPage":"Страница конечной точки","github":"GitHub","reportIssue":"Сообщить о проблеме","onThisPage":"На этой странице","documentationVersion":"Документация — v{version}","quickStartStep1Title":"1. Установите и запустите","quickStartStep1Prefix":"Беги","quickStartStep1Middle":"или клонируйте с GitHub и запустите","quickStartStep2Title":"2. Создайте ключ API.","quickStartStep2Text":"Перейдите в Конечная точка -> Зарегистрированные ключи. Создайте один ключ для каждой среды.","quickStartStep3Title":"3. Подключите провайдеров","quickStartStep3Text":"Добавляйте учетные записи поставщиков с помощью входа в систему OAuth, ключа API или автоматического подключения на бесплатном уровне.","quickStartStep4Title":"4. Установите URL-адрес клиентской базы.","quickStartStep4Prefix":"Направьте свой клиент IDE или API на","quickStartStep4Suffix":"Используйте префикс провайдера, например","featureRoutingTitle":"Маршрутизация между несколькими провайдерами","featureRoutingText":"Направляйте запросы более чем 30 поставщикам ИИ через единую конечную точку, совместимую с OpenAI. Поддерживает API чата, ответов, аудио и изображений.","featureCombosTitle":"Комбинации и балансировка","featureCombosText":"Создавайте комбинации моделей с резервными цепочками и стратегиями балансировки: циклическим, приоритетным, случайным, наименее используемым и оптимизированным по затратам.","featureUsageTitle":"Отслеживание использования и затрат","featureUsageText":"Подсчет токенов в реальном времени, расчет стоимости для каждого поставщика/модели и подробная разбивка использования по ключам API и учетным записям.","featureAnalyticsTitle":"Аналитическая панель","featureAnalyticsText":"Визуальная аналитика с диаграммами запросов, токенов, ошибок, задержек, затрат и популярности модели с течением времени.","featureHealthTitle":"Мониторинг здоровья","featureHealthText":"Проверки работоспособности в реальном времени, статус поставщика услуг, состояния автоматических выключателей и автоматическое определение ограничения скорости с экспоненциальным замедлением.","featureCliTitle":"Инструменты интерфейса командной строки","featureCliText":"Управляйте конфигурациями IDE, экспортируйте/импортируйте резервные копии, находите профили кодекса и настраивайте параметры с панели управления.","featureSecurityTitle":"Безопасность и политики","featureSecurityText":"Аутентификация по ключу API, фильтрация IP-адресов, защита от внедрения подсказок, политики домена, управление сеансами и ведение журнала аудита.","featureCloudSyncTitle":"Облачная синхронизация","featureCloudSyncText":"Синхронизируйте свою конфигурацию с Cloudflare Workers для удаленного доступа с зашифрованными учетными данными и автоматического переключения при сбое.","providersAcrossConnectionTypes":"Поставщики {count} для трех типов подключения.","manageProviders":"Управление поставщиками","providersCount":"{count} поставщиков","providerTypeFree":"Уровень бесплатного пользования","providerTypeOAuth":"OAuth","providerTypeApiKey":"API-ключ","useCaseSingleEndpointTitle":"Единая конечная точка для многих провайдеров","useCaseSingleEndpointText":"Направьте клиентов на один базовый URL-адрес и выполните маршрутизацию по префиксу модели (например: gh/, cc/, kr/, openai/).","useCaseFallbackTitle":"Откат и переключение модели с помощью комбинаций","useCaseFallbackText":"Создавайте комбинированные модели в Dashboard и сохраняйте стабильную конфигурацию клиента, пока поставщики меняются внутри компании.","useCaseUsageVisibilityTitle":"Видимость использования, стоимости и отладки","useCaseUsageVisibilityText":"Отслеживайте токены и стоимость по поставщикам, учетным записям и ключам API на вкладках \xabИспользование\xbb и \xabАналитика\xbb.","clientCherryStudioTitle":"Черри Студия","baseUrlLabel":"Базовый URL","chatEndpointLabel":"Конечная точка чата","modelRecommendationLabel":"Рекомендация модели: явный префикс","clientCodexTitle":"Модели второго пилотного проекта Codex/GitHub","clientCodexBullet1":"Используйте идентификаторы моделей с","clientCodexBullet2":"Модели семейства Codex автоматически перенаправляются к","clientCodexBullet3":"Модели, не относящиеся к Кодексу, продолжают действовать","clientCursorTitle":"Курсор IDE","clientCursorBullet1":"Использование","clientCursorBullet1Suffix":"префикс для моделей Cursor.","clientCursorBullet2":"Соединение OAuth — вход со страницы \xabПровайдеры\xbb.","clientClaudeTitle":"Клод Код / Антигравитация","clientClaudeBullet1Prefix":"Использование","clientClaudeBullet1Middle":"(Клод) или","clientClaudeBullet1Suffix":"(Антигравитация) приставка.","endpointChatNote":"Конечная точка чата, совместимая с OpenAI (по умолчанию).","endpointResponsesNote":"Конечная точка API ответов (Кодекс, серия o).","endpointModelsNote":"Каталог моделей для всех подключенных провайдеров.","endpointAudioNote":"Транскрипция аудио (Deepgram, AssemblyAI).","endpointImagesNote":"Генерация изображений (NanoBanana).","endpointRewriteChatNote":"Переписать помощник для клиентов без /v1.","endpointRewriteResponsesNote":"Переписать помощник для ответов без /v1.","endpointRewriteModelsNote":"Переписать помощник для обнаружения моделей без /v1.","modelPrefixesDescriptionStart":"Используйте префикс поставщика перед названием модели для маршрутизации к определенному поставщику. Пример:","modelPrefixesDescriptionEnd":"маршруты к GitHub Copilot.","provider":"Поставщик","type":"Тип","troubleshootingModelRouting":"Если клиенту не удается выполнить маршрутизацию модели, используйте явный поставщик/модель (например: gh/gpt-5.1-codex).","troubleshootingAmbiguousModels":"Если вы получаете неоднозначные ошибки модели, выберите префикс поставщика вместо простого идентификатора модели.","troubleshootingCodexFamily":"Для моделей семейства GitHub Codex сохраните модель как gh/<codex-model>; Маршрутизатор выбирает / отвечает автоматически.","troubleshootingTestConnection":"Используйте \xabПанель мониторинга\xbb > \xabПоставщики\xbb > \xabПроверить соединение\xbb перед тестированием из IDE или внешних клиентов.","troubleshootingCircuitBreaker":"Если поставщик услуг показывает, что автоматический выключатель разомкнут, дождитесь охлаждения или посетите страницу \xabЗдоровье\xbb для получения подробной информации.","troubleshootingOAuth":"Для поставщиков OAuth выполните повторную аутентификацию, если срок действия токенов истечет. Проверьте индикатор состояния карты провайдера."},"legal":{"privacyPolicy":"Политика конфиденциальности","termsOfService":"Условия использования","providerConfigurations":"Конфигурации провайдера","apiKeys":"Ключи API","usageLogs":"Журналы использования","applicationSettings":"Настройки приложения","viewExportAnalytics":"Просмотр и экспорт аналитики использования","clearHistory":"Очистить историю использования в любое время","configureRetention":"Настройка политик хранения журналов","backupRestore":"Резервное копирование и восстановление базы данных","privacyMetadataTitle":"Политика конфиденциальности | ОмниРоут","privacyMetadataDescription":"Политика конфиденциальности для прокси-маршрутизатора OmniRoute AI API.","termsMetadataTitle":"Условия обслуживания | ОмниРоут","termsMetadataDescription":"Условия использования прокси-маршрутизатора OmniRoute AI API.","backToHome":"Вернуться домой","lastUpdated":"Последнее обновление: {date}.","policyLastUpdatedDate":"13 февраля 2026 г.","listSeparator":"-","questionsVisit":"Вопросы? Посетите наш","githubRepository":"Репозиторий GitHub","privacySection1Title":"1. Архитектура, ориентированная на локальность","privacySection1Text":"OmniRoute спроектирован как локальное приложение. Вся обработка и хранение данных происходит полностью на вашем компьютере. Не существует централизованного сервера, собирающего вашу информацию.","privacySection2Title":"2. Данные, которые мы храним","privacyDataStoredIn":"Следующие данные хранятся локально в","privacyDataProviderConfigurationsDesc":"URL-адреса подключения, типы провайдеров и настройки приоритета","privacyDataApiKeysDesc":"шифруется и хранится локально для аутентификации у поставщиков ИИ.","privacyDataUsageLogsDesc":"количество запросов, использование токенов, названия моделей, временные метки и время ответа.","privacyDataApplicationSettingsDesc":"настройки темы, стратегия маршрутизации и комбинированные конфигурации","privacySection3Title":"3. Нет телеметрии","privacySection3Text":"OmniRoute не собирает телеметрию, аналитику или отчеты о сбоях. Никакие данные не передаются нам или третьим лицам. Ваши шаблоны использования, вызовы API и конфигурации остаются полностью конфиденциальными.","privacySection4Title":"4. Сторонние поставщики ИИ","privacySection4Text":"Когда вы выполняете вызовы API через OmniRoute, ваши запросы перенаправляются настроенным вами поставщикам искусственного интеллекта (например: OpenAI, Anthropic, Google). У этих провайдеров есть свои собственные политики конфиденциальности, которые определяют, как они обрабатывают ваши данные. Пожалуйста, просмотрите:","privacyOpenAiPolicy":"Политика конфиденциальности OpenAI","privacyAnthropicPolicy":"Антропная политика конфиденциальности","privacyGooglePolicy":"Политика конфиденциальности Google","privacySection5Title":"5. Облачная синхронизация (необязательно)","privacySection5Text":"Если вы включите дополнительную функцию облачной синхронизации, конфигурации поставщика и ключи API могут быть переданы в настроенную конечную точку облака. Эта функция отключена по умолчанию и требует явного согласия.","privacySection6Title":"6. Ведение журнала","privacyLoggingIntro":"Журналы запросов можно настроить через настройки панели управления. Вы можете:","privacySection7Title":"7. Ваши права","privacySection7TextStart":"Поскольку все данные хранятся локально, у вас есть полный контроль. Вы можете удалить свои данные в любое время, удалив","privacySection7TextEnd":"каталог или с помощью функций резервного копирования и восстановления базы данных на панели управления.","termsSection1Title":"1. Обзор","termsSection1Text":"OmniRoute — это локальный прокси-маршрутизатор AI API, который полностью работает на вашем компьютере. Он направляет запросы нескольким поставщикам искусственного интеллекта с балансировкой нагрузки, аварийным переключением и отслеживанием использования.","termsSection2Title":"2. Обязанности пользователя","termsResponsibilityApiKeys":"Вы несете единоличную ответственность за управление своими собственными ключами API и учетными данными для сторонних поставщиков ИИ (OpenAI, Anthropic, Google и т.\xa0д.).","termsResponsibilityCompliance":"Вы должны соблюдать условия обслуживания каждого поставщика ИИ, к API которого вы получаете доступ через OmniRoute.","termsResponsibilitySecurity":"Вы несете ответственность за безопасность вашей локальной установки OmniRoute, включая установку пароля и ограничение доступа к сети.","termsSection3Title":"3. Как это работает","termsSection3Text":"OmniRoute действует как промежуточный прокси. Вызовы API, отправленные в OmniRoute, преобразуются и пересылаются настроенным вами поставщикам искусственного интеллекта. OmniRoute не изменяет содержимое ваших запросов или ответов за пределами необходимой трансляции протокола.","termsSection4Title":"4. Обработка данных","termsDataStoredLocally":"Все данные хранятся локально на вашем компьютере в базе данных SQLite.","termsNoTransmission":"OmniRoute не передает данные на внешние серверы, если вы явно не включили функции облачной синхронизации.","termsDataLocationText":"Журналы использования, ключи API и конфигурация хранятся в","termsSection5Title":"5. Отказ от ответственности","termsSection5Text":"OmniRoute предоставляется \xabкак есть\xbb без каких-либо гарантий. Мы не несем ответственности за любые расходы, понесенные в результате использования API, перебоев в обслуживании или потери данных. Всегда сохраняйте резервные копии вашей конфигурации.","termsSection6Title":"6. Открытый исходный код","termsSection6Text":"OmniRoute — это программное обеспечение с открытым исходным кодом. Вы можете свободно просматривать, изменять и распространять его в соответствии с условиями лицензии."}}')}};