@srouterhq/server 0.0.0-stage → 0.9.0

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 (1027) hide show
  1. package/LICENSE +21 -0
  2. package/client/dist/assets/am-TQ7Jmdqe.js +1 -0
  3. package/client/dist/assets/ar-Bf5a7yfC.js +1 -0
  4. package/client/dist/assets/az-CrosE1xH.js +1 -0
  5. package/client/dist/assets/bg-BvWnmcUz.js +1 -0
  6. package/client/dist/assets/bn-ams5TsJp.js +1 -0
  7. package/client/dist/assets/cs-Dh67CaJ_.js +1 -0
  8. package/client/dist/assets/da-9WlT8Iq7.js +1 -0
  9. package/client/dist/assets/de-lWhJJzz7.js +1 -0
  10. package/client/dist/assets/el-Cu7_GhNq.js +1 -0
  11. package/client/dist/assets/es-BZuzsBcP.js +1 -0
  12. package/client/dist/assets/fa-Dwdn-jKS.js +1 -0
  13. package/client/dist/assets/fi-BFrFyOTy.js +1 -0
  14. package/client/dist/assets/fr-XhbtmPpj.js +1 -0
  15. package/client/dist/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
  16. package/client/dist/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
  17. package/client/dist/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
  18. package/client/dist/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
  19. package/client/dist/assets/geist-mono-cyrillic-ext-wght-normal-I4S5GZfc.woff2 +0 -0
  20. package/client/dist/assets/geist-mono-cyrillic-wght-normal-BmXc_FBt.woff2 +0 -0
  21. package/client/dist/assets/geist-mono-latin-ext-wght-normal-DrnZ1wKl.woff2 +0 -0
  22. package/client/dist/assets/geist-mono-latin-wght-normal-B_7UjwxQ.woff2 +0 -0
  23. package/client/dist/assets/geist-mono-symbols2-wght-normal-GZpp1pK2.woff2 +0 -0
  24. package/client/dist/assets/geist-mono-vietnamese-wght-normal-D8KDMBhC.woff2 +0 -0
  25. package/client/dist/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
  26. package/client/dist/assets/gu-D0uhLUB8.js +1 -0
  27. package/client/dist/assets/ha-CVlm9pqp.js +1 -0
  28. package/client/dist/assets/he-CMIFeoWr.js +1 -0
  29. package/client/dist/assets/hi-ENTwhBpn.js +1 -0
  30. package/client/dist/assets/hr-fc03vMy_.js +1 -0
  31. package/client/dist/assets/hu-YBo2BIYt.js +1 -0
  32. package/client/dist/assets/id-BEWXYX69.js +1 -0
  33. package/client/dist/assets/ig-BKLZFKka.js +1 -0
  34. package/client/dist/assets/index-D9I4KtvR.js +145 -0
  35. package/client/dist/assets/index-txhEmCdb.css +2 -0
  36. package/client/dist/assets/it-Bzmei1Y2.js +1 -0
  37. package/client/dist/assets/ja-BfcpuqEl.js +1 -0
  38. package/client/dist/assets/ka-CnWjRgLo.js +1 -0
  39. package/client/dist/assets/km-BAjPR3Qj.js +1 -0
  40. package/client/dist/assets/kn-B15WKU5m.js +1 -0
  41. package/client/dist/assets/ko-C61fAB-w.js +1 -0
  42. package/client/dist/assets/lt-CYTr4_YW.js +1 -0
  43. package/client/dist/assets/ml-CtqxgyH3.js +1 -0
  44. package/client/dist/assets/mr-X5TMY7aR.js +1 -0
  45. package/client/dist/assets/ms-DSg8RqPS.js +1 -0
  46. package/client/dist/assets/my-D7RqR8uE.js +1 -0
  47. package/client/dist/assets/ne-DaflxkDj.js +1 -0
  48. package/client/dist/assets/nl-BOqqtsC8.js +1 -0
  49. package/client/dist/assets/no-BSHp_StB.js +1 -0
  50. package/client/dist/assets/or-BkLR9Vub.js +1 -0
  51. package/client/dist/assets/pa-CarJ2XgI.js +1 -0
  52. package/client/dist/assets/pl-C2n0V-0k.js +1 -0
  53. package/client/dist/assets/pt-BR-CqJdNhg2.js +1 -0
  54. package/client/dist/assets/pt-PT-C_HpMyKz.js +1 -0
  55. package/client/dist/assets/ro-DVRZqSAS.js +1 -0
  56. package/client/dist/assets/ru-DwAJG7VC.js +1 -0
  57. package/client/dist/assets/si-BxUezXm0.js +1 -0
  58. package/client/dist/assets/sk-eI1VcIfY.js +1 -0
  59. package/client/dist/assets/sr-CJF3auCr.js +1 -0
  60. package/client/dist/assets/srouter-logo-C6ZfjGIi.svg +14 -0
  61. package/client/dist/assets/sv-nqvwHAq_.js +1 -0
  62. package/client/dist/assets/sw-DWynE2pW.js +1 -0
  63. package/client/dist/assets/ta-BVM12knC.js +1 -0
  64. package/client/dist/assets/te-oyzEkF7_.js +1 -0
  65. package/client/dist/assets/th-COVeE0ZQ.js +1 -0
  66. package/client/dist/assets/tl-DsJANnQz.js +1 -0
  67. package/client/dist/assets/tr-B-Fl-urO.js +1 -0
  68. package/client/dist/assets/uk-C5qketAO.js +1 -0
  69. package/client/dist/assets/ur-QU9KugfV.js +1 -0
  70. package/client/dist/assets/uz-DL9cG_mY.js +1 -0
  71. package/client/dist/assets/vi-CQiVy3Pu.js +1 -0
  72. package/client/dist/assets/yo-DqazMdrZ.js +1 -0
  73. package/client/dist/assets/zh-CN-DnYL_Kio.js +1 -0
  74. package/client/dist/assets/zh-TW-5bdbosKj.js +1 -0
  75. package/client/dist/favicon.svg +14 -0
  76. package/client/dist/icons.svg +24 -0
  77. package/client/dist/index.html +37 -0
  78. package/dist/app.d.ts +4 -0
  79. package/dist/app.d.ts.map +1 -0
  80. package/dist/app.js +372 -0
  81. package/dist/app.js.map +1 -0
  82. package/dist/db/index.d.ts +49 -0
  83. package/dist/db/index.d.ts.map +1 -0
  84. package/dist/db/index.js +203 -0
  85. package/dist/db/index.js.map +1 -0
  86. package/dist/db/migrate/TEMPLATE.d.ts +4 -0
  87. package/dist/db/migrate/TEMPLATE.d.ts.map +1 -0
  88. package/dist/db/migrate/TEMPLATE.js +18 -0
  89. package/dist/db/migrate/TEMPLATE.js.map +1 -0
  90. package/dist/db/migrate/cli.d.ts +2 -0
  91. package/dist/db/migrate/cli.d.ts.map +1 -0
  92. package/dist/db/migrate/cli.js +177 -0
  93. package/dist/db/migrate/cli.js.map +1 -0
  94. package/dist/db/migrate/defaults.d.ts +52 -0
  95. package/dist/db/migrate/defaults.d.ts.map +1 -0
  96. package/dist/db/migrate/defaults.js +126 -0
  97. package/dist/db/migrate/defaults.js.map +1 -0
  98. package/dist/db/migrate/runner.d.ts +16 -0
  99. package/dist/db/migrate/runner.d.ts.map +1 -0
  100. package/dist/db/migrate/runner.js +178 -0
  101. package/dist/db/migrate/runner.js.map +1 -0
  102. package/dist/db/migrations/20260101_000000_legacy_baseline.d.ts +4 -0
  103. package/dist/db/migrations/20260101_000000_legacy_baseline.d.ts.map +1 -0
  104. package/dist/db/migrations/20260101_000000_legacy_baseline.js +2240 -0
  105. package/dist/db/migrations/20260101_000000_legacy_baseline.js.map +1 -0
  106. package/dist/db/migrations/20260627_000001_custom_provider_modalities.d.ts +4 -0
  107. package/dist/db/migrations/20260627_000001_custom_provider_modalities.d.ts.map +1 -0
  108. package/dist/db/migrations/20260627_000001_custom_provider_modalities.js +27 -0
  109. package/dist/db/migrations/20260627_000001_custom_provider_modalities.js.map +1 -0
  110. package/dist/db/migrations/20260627_000002_catalog_model_state.d.ts +4 -0
  111. package/dist/db/migrations/20260627_000002_catalog_model_state.d.ts.map +1 -0
  112. package/dist/db/migrations/20260627_000002_catalog_model_state.js +30 -0
  113. package/dist/db/migrations/20260627_000002_catalog_model_state.js.map +1 -0
  114. package/dist/db/migrations/20260628_120000_request_aggregates.d.ts +6 -0
  115. package/dist/db/migrations/20260628_120000_request_aggregates.d.ts.map +1 -0
  116. package/dist/db/migrations/20260628_120000_request_aggregates.js +104 -0
  117. package/dist/db/migrations/20260628_120000_request_aggregates.js.map +1 -0
  118. package/dist/db/migrations/20260630_000001_github_gpt41_context.d.ts +9 -0
  119. package/dist/db/migrations/20260630_000001_github_gpt41_context.d.ts.map +1 -0
  120. package/dist/db/migrations/20260630_000001_github_gpt41_context.js +22 -0
  121. package/dist/db/migrations/20260630_000001_github_gpt41_context.js.map +1 -0
  122. package/dist/db/migrations/20260706_000001_request_client_info.d.ts +4 -0
  123. package/dist/db/migrations/20260706_000001_request_client_info.d.ts.map +1 -0
  124. package/dist/db/migrations/20260706_000001_request_client_info.js +30 -0
  125. package/dist/db/migrations/20260706_000001_request_client_info.js.map +1 -0
  126. package/dist/db/migrations/20260706_000002_custom_model_tool_support.d.ts +17 -0
  127. package/dist/db/migrations/20260706_000002_custom_model_tool_support.d.ts.map +1 -0
  128. package/dist/db/migrations/20260706_000002_custom_model_tool_support.js +20 -0
  129. package/dist/db/migrations/20260706_000002_custom_model_tool_support.js.map +1 -0
  130. package/dist/db/migrations/20260714_000001_profile_chain_backfill.d.ts +12 -0
  131. package/dist/db/migrations/20260714_000001_profile_chain_backfill.d.ts.map +1 -0
  132. package/dist/db/migrations/20260714_000001_profile_chain_backfill.js +45 -0
  133. package/dist/db/migrations/20260714_000001_profile_chain_backfill.js.map +1 -0
  134. package/dist/db/migrations/20260720_000001_key_health_error.d.ts +5 -0
  135. package/dist/db/migrations/20260720_000001_key_health_error.d.ts.map +1 -0
  136. package/dist/db/migrations/20260720_000001_key_health_error.js +16 -0
  137. package/dist/db/migrations/20260720_000001_key_health_error.js.map +1 -0
  138. package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.d.ts +4 -0
  139. package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.d.ts.map +1 -0
  140. package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.js +38 -0
  141. package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.js.map +1 -0
  142. package/dist/db/migrations/20260726_000002_request_attempts.d.ts +4 -0
  143. package/dist/db/migrations/20260726_000002_request_attempts.d.ts.map +1 -0
  144. package/dist/db/migrations/20260726_000002_request_attempts.js +43 -0
  145. package/dist/db/migrations/20260726_000002_request_attempts.js.map +1 -0
  146. package/dist/db/migrations/20260726_000003_model_source_provenance.d.ts +4 -0
  147. package/dist/db/migrations/20260726_000003_model_source_provenance.d.ts.map +1 -0
  148. package/dist/db/migrations/20260726_000003_model_source_provenance.js +80 -0
  149. package/dist/db/migrations/20260726_000003_model_source_provenance.js.map +1 -0
  150. package/dist/db/migrations/20260726_000004_media_model_meta.d.ts +4 -0
  151. package/dist/db/migrations/20260726_000004_media_model_meta.d.ts.map +1 -0
  152. package/dist/db/migrations/20260726_000004_media_model_meta.js +34 -0
  153. package/dist/db/migrations/20260726_000004_media_model_meta.js.map +1 -0
  154. package/dist/db/migrations/20260726_000005_request_served_model.d.ts +4 -0
  155. package/dist/db/migrations/20260726_000005_request_served_model.d.ts.map +1 -0
  156. package/dist/db/migrations/20260726_000005_request_served_model.js +31 -0
  157. package/dist/db/migrations/20260726_000005_request_served_model.js.map +1 -0
  158. package/dist/db/migrations/20260726_000006_attempt_error_summary.d.ts +4 -0
  159. package/dist/db/migrations/20260726_000006_attempt_error_summary.d.ts.map +1 -0
  160. package/dist/db/migrations/20260726_000006_attempt_error_summary.js +29 -0
  161. package/dist/db/migrations/20260726_000006_attempt_error_summary.js.map +1 -0
  162. package/dist/db/migrations/20260727_000001_agent_compatibility.d.ts +4 -0
  163. package/dist/db/migrations/20260727_000001_agent_compatibility.d.ts.map +1 -0
  164. package/dist/db/migrations/20260727_000001_agent_compatibility.js +41 -0
  165. package/dist/db/migrations/20260727_000001_agent_compatibility.js.map +1 -0
  166. package/dist/db/migrations/20260728_000001_tombstone_provenance.d.ts +12 -0
  167. package/dist/db/migrations/20260728_000001_tombstone_provenance.d.ts.map +1 -0
  168. package/dist/db/migrations/20260728_000001_tombstone_provenance.js +37 -0
  169. package/dist/db/migrations/20260728_000001_tombstone_provenance.js.map +1 -0
  170. package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.d.ts +4 -0
  171. package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.d.ts.map +1 -0
  172. package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.js +145 -0
  173. package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.js.map +1 -0
  174. package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.d.ts +6 -0
  175. package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.d.ts.map +1 -0
  176. package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.js +52 -0
  177. package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.js.map +1 -0
  178. package/dist/db/migrations/20260805_000001_key_model_scope.d.ts +6 -0
  179. package/dist/db/migrations/20260805_000001_key_model_scope.d.ts.map +1 -0
  180. package/dist/db/migrations/20260805_000001_key_model_scope.js +17 -0
  181. package/dist/db/migrations/20260805_000001_key_model_scope.js.map +1 -0
  182. package/dist/db/migrations/20260805_000002_client_profiles.d.ts +4 -0
  183. package/dist/db/migrations/20260805_000002_client_profiles.d.ts.map +1 -0
  184. package/dist/db/migrations/20260805_000002_client_profiles.js +33 -0
  185. package/dist/db/migrations/20260805_000002_client_profiles.js.map +1 -0
  186. package/dist/db/migrations/20260810_000001_api_key_proxy.d.ts +4 -0
  187. package/dist/db/migrations/20260810_000001_api_key_proxy.d.ts.map +1 -0
  188. package/dist/db/migrations/20260810_000001_api_key_proxy.js +33 -0
  189. package/dist/db/migrations/20260810_000001_api_key_proxy.js.map +1 -0
  190. package/dist/db/migrations/20260819_000001_custom_model_tombstones.d.ts +4 -0
  191. package/dist/db/migrations/20260819_000001_custom_model_tombstones.d.ts.map +1 -0
  192. package/dist/db/migrations/20260819_000001_custom_model_tombstones.js +19 -0
  193. package/dist/db/migrations/20260819_000001_custom_model_tombstones.js.map +1 -0
  194. package/dist/db/migrations/20260820_000001_playground_conversations.d.ts +4 -0
  195. package/dist/db/migrations/20260820_000001_playground_conversations.d.ts.map +1 -0
  196. package/dist/db/migrations/20260820_000001_playground_conversations.js +47 -0
  197. package/dist/db/migrations/20260820_000001_playground_conversations.js.map +1 -0
  198. package/dist/db/migrations/20260823_000001_server_logs.d.ts +4 -0
  199. package/dist/db/migrations/20260823_000001_server_logs.d.ts.map +1 -0
  200. package/dist/db/migrations/20260823_000001_server_logs.js +53 -0
  201. package/dist/db/migrations/20260823_000001_server_logs.js.map +1 -0
  202. package/dist/db/migrations/20260823_000002_backups_table.d.ts +8 -0
  203. package/dist/db/migrations/20260823_000002_backups_table.d.ts.map +1 -0
  204. package/dist/db/migrations/20260823_000002_backups_table.js +22 -0
  205. package/dist/db/migrations/20260823_000002_backups_table.js.map +1 -0
  206. package/dist/db/migrations/20260823_000003_attempt_key_label.d.ts +19 -0
  207. package/dist/db/migrations/20260823_000003_attempt_key_label.d.ts.map +1 -0
  208. package/dist/db/migrations/20260823_000003_attempt_key_label.js +28 -0
  209. package/dist/db/migrations/20260823_000003_attempt_key_label.js.map +1 -0
  210. package/dist/db/migrations/20260823_000004_profile_auto_include.d.ts +14 -0
  211. package/dist/db/migrations/20260823_000004_profile_auto_include.d.ts.map +1 -0
  212. package/dist/db/migrations/20260823_000004_profile_auto_include.js +25 -0
  213. package/dist/db/migrations/20260823_000004_profile_auto_include.js.map +1 -0
  214. package/dist/db/migrations/20260901_000001_idempotency_claims.d.ts +4 -0
  215. package/dist/db/migrations/20260901_000001_idempotency_claims.d.ts.map +1 -0
  216. package/dist/db/migrations/20260901_000001_idempotency_claims.js +46 -0
  217. package/dist/db/migrations/20260901_000001_idempotency_claims.js.map +1 -0
  218. package/dist/db/migrations/20260901_000002_quota_observation_lookup.d.ts +4 -0
  219. package/dist/db/migrations/20260901_000002_quota_observation_lookup.d.ts.map +1 -0
  220. package/dist/db/migrations/20260901_000002_quota_observation_lookup.js +37 -0
  221. package/dist/db/migrations/20260901_000002_quota_observation_lookup.js.map +1 -0
  222. package/dist/db/migrations/20260901_000003_request_caller.d.ts +4 -0
  223. package/dist/db/migrations/20260901_000003_request_caller.d.ts.map +1 -0
  224. package/dist/db/migrations/20260901_000003_request_caller.js +27 -0
  225. package/dist/db/migrations/20260901_000003_request_caller.js.map +1 -0
  226. package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.d.ts +4 -0
  227. package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.d.ts.map +1 -0
  228. package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.js +35 -0
  229. package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.js.map +1 -0
  230. package/dist/db/migrations/20260903_000001_mcp_enabled_default.d.ts +4 -0
  231. package/dist/db/migrations/20260903_000001_mcp_enabled_default.d.ts.map +1 -0
  232. package/dist/db/migrations/20260903_000001_mcp_enabled_default.js +37 -0
  233. package/dist/db/migrations/20260903_000001_mcp_enabled_default.js.map +1 -0
  234. package/dist/db/migrations/20260903_000002_response_cache.d.ts +4 -0
  235. package/dist/db/migrations/20260903_000002_response_cache.d.ts.map +1 -0
  236. package/dist/db/migrations/20260903_000002_response_cache.js +53 -0
  237. package/dist/db/migrations/20260903_000002_response_cache.js.map +1 -0
  238. package/dist/db/migrations/20260904_000001_key_monthly_budget.d.ts +13 -0
  239. package/dist/db/migrations/20260904_000001_key_monthly_budget.d.ts.map +1 -0
  240. package/dist/db/migrations/20260904_000001_key_monthly_budget.js +35 -0
  241. package/dist/db/migrations/20260904_000001_key_monthly_budget.js.map +1 -0
  242. package/dist/db/migrations/20260913_000001_request_model_attribution.d.ts +4 -0
  243. package/dist/db/migrations/20260913_000001_request_model_attribution.d.ts.map +1 -0
  244. package/dist/db/migrations/20260913_000001_request_model_attribution.js +68 -0
  245. package/dist/db/migrations/20260913_000001_request_model_attribution.js.map +1 -0
  246. package/dist/db/migrations/20260914_000001_key_monthly_usage.d.ts +5 -0
  247. package/dist/db/migrations/20260914_000001_key_monthly_usage.d.ts.map +1 -0
  248. package/dist/db/migrations/20260914_000001_key_monthly_usage.js +37 -0
  249. package/dist/db/migrations/20260914_000001_key_monthly_usage.js.map +1 -0
  250. package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.d.ts +4 -0
  251. package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.d.ts.map +1 -0
  252. package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.js +28 -0
  253. package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.js.map +1 -0
  254. package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.d.ts +4 -0
  255. package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.d.ts.map +1 -0
  256. package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.js +25 -0
  257. package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.js.map +1 -0
  258. package/dist/db/migrations/20261005_000001_key_budget_period.d.ts +10 -0
  259. package/dist/db/migrations/20261005_000001_key_budget_period.d.ts.map +1 -0
  260. package/dist/db/migrations/20261005_000001_key_budget_period.js +78 -0
  261. package/dist/db/migrations/20261005_000001_key_budget_period.js.map +1 -0
  262. package/dist/db/migrations/20261005_000002_key_budget_period_auto.d.ts +21 -0
  263. package/dist/db/migrations/20261005_000002_key_budget_period_auto.d.ts.map +1 -0
  264. package/dist/db/migrations/20261005_000002_key_budget_period_auto.js +41 -0
  265. package/dist/db/migrations/20261005_000002_key_budget_period_auto.js.map +1 -0
  266. package/dist/db/model-pricing.d.ts +39 -0
  267. package/dist/db/model-pricing.d.ts.map +1 -0
  268. package/dist/db/model-pricing.js +274 -0
  269. package/dist/db/model-pricing.js.map +1 -0
  270. package/dist/db/node-sqlite.d.ts +9 -0
  271. package/dist/db/node-sqlite.d.ts.map +1 -0
  272. package/dist/db/node-sqlite.js +87 -0
  273. package/dist/db/node-sqlite.js.map +1 -0
  274. package/dist/db/types.d.ts +22 -0
  275. package/dist/db/types.d.ts.map +1 -0
  276. package/dist/db/types.js +2 -0
  277. package/dist/db/types.js.map +1 -0
  278. package/dist/docs/docs-page.d.ts +2 -0
  279. package/dist/docs/docs-page.d.ts.map +1 -0
  280. package/dist/docs/docs-page.js +319 -0
  281. package/dist/docs/docs-page.js.map +1 -0
  282. package/dist/docs/openapi.d.ts +1896 -0
  283. package/dist/docs/openapi.d.ts.map +1 -0
  284. package/dist/docs/openapi.js +1096 -0
  285. package/dist/docs/openapi.js.map +1 -0
  286. package/dist/env.d.ts +2 -0
  287. package/dist/env.d.ts.map +1 -0
  288. package/dist/env.js +9 -0
  289. package/dist/env.js.map +1 -0
  290. package/dist/index.d.ts +2 -0
  291. package/dist/index.d.ts.map +1 -0
  292. package/dist/index.js +144 -0
  293. package/dist/index.js.map +1 -0
  294. package/dist/lib/anthropic-documents.d.ts +41 -0
  295. package/dist/lib/anthropic-documents.d.ts.map +1 -0
  296. package/dist/lib/anthropic-documents.js +132 -0
  297. package/dist/lib/anthropic-documents.js.map +1 -0
  298. package/dist/lib/app-version.d.ts +5 -0
  299. package/dist/lib/app-version.d.ts.map +1 -0
  300. package/dist/lib/app-version.js +61 -0
  301. package/dist/lib/app-version.js.map +1 -0
  302. package/dist/lib/attempt-trace.d.ts +23 -0
  303. package/dist/lib/attempt-trace.d.ts.map +1 -0
  304. package/dist/lib/attempt-trace.js +32 -0
  305. package/dist/lib/attempt-trace.js.map +1 -0
  306. package/dist/lib/budget.d.ts +6 -0
  307. package/dist/lib/budget.d.ts.map +1 -0
  308. package/dist/lib/budget.js +40 -0
  309. package/dist/lib/budget.js.map +1 -0
  310. package/dist/lib/client-classifier.d.ts +10 -0
  311. package/dist/lib/client-classifier.d.ts.map +1 -0
  312. package/dist/lib/client-classifier.js +126 -0
  313. package/dist/lib/client-classifier.js.map +1 -0
  314. package/dist/lib/client-context.d.ts +10 -0
  315. package/dist/lib/client-context.d.ts.map +1 -0
  316. package/dist/lib/client-context.js +39 -0
  317. package/dist/lib/client-context.js.map +1 -0
  318. package/dist/lib/config.d.ts +33 -0
  319. package/dist/lib/config.d.ts.map +1 -0
  320. package/dist/lib/config.js +94 -0
  321. package/dist/lib/config.js.map +1 -0
  322. package/dist/lib/content.d.ts +33 -0
  323. package/dist/lib/content.d.ts.map +1 -0
  324. package/dist/lib/content.js +201 -0
  325. package/dist/lib/content.js.map +1 -0
  326. package/dist/lib/credential.d.ts +11 -0
  327. package/dist/lib/credential.d.ts.map +1 -0
  328. package/dist/lib/credential.js +18 -0
  329. package/dist/lib/credential.js.map +1 -0
  330. package/dist/lib/crypto.d.ts +31 -0
  331. package/dist/lib/crypto.d.ts.map +1 -0
  332. package/dist/lib/crypto.js +206 -0
  333. package/dist/lib/crypto.js.map +1 -0
  334. package/dist/lib/custom-provider-cleanup.d.ts +13 -0
  335. package/dist/lib/custom-provider-cleanup.d.ts.map +1 -0
  336. package/dist/lib/custom-provider-cleanup.js +43 -0
  337. package/dist/lib/custom-provider-cleanup.js.map +1 -0
  338. package/dist/lib/db-backup.d.ts +31 -0
  339. package/dist/lib/db-backup.d.ts.map +1 -0
  340. package/dist/lib/db-backup.js +255 -0
  341. package/dist/lib/db-backup.js.map +1 -0
  342. package/dist/lib/endpoint-scope.d.ts +42 -0
  343. package/dist/lib/endpoint-scope.d.ts.map +1 -0
  344. package/dist/lib/endpoint-scope.js +95 -0
  345. package/dist/lib/endpoint-scope.js.map +1 -0
  346. package/dist/lib/env-drift.d.ts +17 -0
  347. package/dist/lib/env-drift.d.ts.map +1 -0
  348. package/dist/lib/env-drift.js +108 -0
  349. package/dist/lib/env-drift.js.map +1 -0
  350. package/dist/lib/error-classify.d.ts +40 -0
  351. package/dist/lib/error-classify.d.ts.map +1 -0
  352. package/dist/lib/error-classify.js +687 -0
  353. package/dist/lib/error-classify.js.map +1 -0
  354. package/dist/lib/error-redaction.d.ts +8 -0
  355. package/dist/lib/error-redaction.d.ts.map +1 -0
  356. package/dist/lib/error-redaction.js +45 -0
  357. package/dist/lib/error-redaction.js.map +1 -0
  358. package/dist/lib/fallback-loop.d.ts +306 -0
  359. package/dist/lib/fallback-loop.d.ts.map +1 -0
  360. package/dist/lib/fallback-loop.js +1336 -0
  361. package/dist/lib/fallback-loop.js.map +1 -0
  362. package/dist/lib/file-permissions.d.ts +98 -0
  363. package/dist/lib/file-permissions.d.ts.map +1 -0
  364. package/dist/lib/file-permissions.js +159 -0
  365. package/dist/lib/file-permissions.js.map +1 -0
  366. package/dist/lib/gemini-wire.d.ts +76 -0
  367. package/dist/lib/gemini-wire.d.ts.map +1 -0
  368. package/dist/lib/gemini-wire.js +392 -0
  369. package/dist/lib/gemini-wire.js.map +1 -0
  370. package/dist/lib/guardrails.d.ts +37 -0
  371. package/dist/lib/guardrails.d.ts.map +1 -0
  372. package/dist/lib/guardrails.js +106 -0
  373. package/dist/lib/guardrails.js.map +1 -0
  374. package/dist/lib/header-value.d.ts +8 -0
  375. package/dist/lib/header-value.d.ts.map +1 -0
  376. package/dist/lib/header-value.js +55 -0
  377. package/dist/lib/header-value.js.map +1 -0
  378. package/dist/lib/image-normalize.d.ts +21 -0
  379. package/dist/lib/image-normalize.d.ts.map +1 -0
  380. package/dist/lib/image-normalize.js +218 -0
  381. package/dist/lib/image-normalize.js.map +1 -0
  382. package/dist/lib/inbound-chat.d.ts +48 -0
  383. package/dist/lib/inbound-chat.d.ts.map +1 -0
  384. package/dist/lib/inbound-chat.js +406 -0
  385. package/dist/lib/inbound-chat.js.map +1 -0
  386. package/dist/lib/key-parser.d.ts +79 -0
  387. package/dist/lib/key-parser.d.ts.map +1 -0
  388. package/dist/lib/key-parser.js +701 -0
  389. package/dist/lib/key-parser.js.map +1 -0
  390. package/dist/lib/key-proxy.d.ts +49 -0
  391. package/dist/lib/key-proxy.d.ts.map +1 -0
  392. package/dist/lib/key-proxy.js +92 -0
  393. package/dist/lib/key-proxy.js.map +1 -0
  394. package/dist/lib/log-redaction.d.ts +28 -0
  395. package/dist/lib/log-redaction.d.ts.map +1 -0
  396. package/dist/lib/log-redaction.js +166 -0
  397. package/dist/lib/log-redaction.js.map +1 -0
  398. package/dist/lib/model-scope.d.ts +9 -0
  399. package/dist/lib/model-scope.d.ts.map +1 -0
  400. package/dist/lib/model-scope.js +29 -0
  401. package/dist/lib/model-scope.js.map +1 -0
  402. package/dist/lib/one-time-code.d.ts +15 -0
  403. package/dist/lib/one-time-code.d.ts.map +1 -0
  404. package/dist/lib/one-time-code.js +41 -0
  405. package/dist/lib/one-time-code.js.map +1 -0
  406. package/dist/lib/output-cap.d.ts +24 -0
  407. package/dist/lib/output-cap.d.ts.map +1 -0
  408. package/dist/lib/output-cap.js +80 -0
  409. package/dist/lib/output-cap.js.map +1 -0
  410. package/dist/lib/password.d.ts +3 -0
  411. package/dist/lib/password.d.ts.map +1 -0
  412. package/dist/lib/password.js +27 -0
  413. package/dist/lib/password.js.map +1 -0
  414. package/dist/lib/process-safety-net.d.ts +32 -0
  415. package/dist/lib/process-safety-net.d.ts.map +1 -0
  416. package/dist/lib/process-safety-net.js +123 -0
  417. package/dist/lib/process-safety-net.js.map +1 -0
  418. package/dist/lib/provider-identity.d.ts +37 -0
  419. package/dist/lib/provider-identity.d.ts.map +1 -0
  420. package/dist/lib/provider-identity.js +110 -0
  421. package/dist/lib/provider-identity.js.map +1 -0
  422. package/dist/lib/provider-size-parser.d.ts +6 -0
  423. package/dist/lib/provider-size-parser.d.ts.map +1 -0
  424. package/dist/lib/provider-size-parser.js +72 -0
  425. package/dist/lib/provider-size-parser.js.map +1 -0
  426. package/dist/lib/provider-timeout.d.ts +17 -0
  427. package/dist/lib/provider-timeout.d.ts.map +1 -0
  428. package/dist/lib/provider-timeout.js +70 -0
  429. package/dist/lib/provider-timeout.js.map +1 -0
  430. package/dist/lib/proxy.d.ts +180 -0
  431. package/dist/lib/proxy.d.ts.map +1 -0
  432. package/dist/lib/proxy.js +1002 -0
  433. package/dist/lib/proxy.js.map +1 -0
  434. package/dist/lib/request-log.d.ts +4 -0
  435. package/dist/lib/request-log.d.ts.map +1 -0
  436. package/dist/lib/request-log.js +161 -0
  437. package/dist/lib/request-log.js.map +1 -0
  438. package/dist/lib/reset-code.d.ts +5 -0
  439. package/dist/lib/reset-code.d.ts.map +1 -0
  440. package/dist/lib/reset-code.js +39 -0
  441. package/dist/lib/reset-code.js.map +1 -0
  442. package/dist/lib/retry-hint.d.ts +14 -0
  443. package/dist/lib/retry-hint.d.ts.map +1 -0
  444. package/dist/lib/retry-hint.js +36 -0
  445. package/dist/lib/retry-hint.js.map +1 -0
  446. package/dist/lib/route-live.d.ts +29 -0
  447. package/dist/lib/route-live.d.ts.map +1 -0
  448. package/dist/lib/route-live.js +97 -0
  449. package/dist/lib/route-live.js.map +1 -0
  450. package/dist/lib/sampling-params.d.ts +183 -0
  451. package/dist/lib/sampling-params.d.ts.map +1 -0
  452. package/dist/lib/sampling-params.js +386 -0
  453. package/dist/lib/sampling-params.js.map +1 -0
  454. package/dist/lib/scheduler.d.ts +13 -0
  455. package/dist/lib/scheduler.d.ts.map +1 -0
  456. package/dist/lib/scheduler.js +11 -0
  457. package/dist/lib/scheduler.js.map +1 -0
  458. package/dist/lib/served-model.d.ts +16 -0
  459. package/dist/lib/served-model.d.ts.map +1 -0
  460. package/dist/lib/served-model.js +0 -0
  461. package/dist/lib/served-model.js.map +1 -0
  462. package/dist/lib/server-logs.d.ts +132 -0
  463. package/dist/lib/server-logs.d.ts.map +1 -0
  464. package/dist/lib/server-logs.js +473 -0
  465. package/dist/lib/server-logs.js.map +1 -0
  466. package/dist/lib/setup-code.d.ts +5 -0
  467. package/dist/lib/setup-code.d.ts.map +1 -0
  468. package/dist/lib/setup-code.js +35 -0
  469. package/dist/lib/setup-code.js.map +1 -0
  470. package/dist/lib/structured-output.d.ts +9 -0
  471. package/dist/lib/structured-output.d.ts.map +1 -0
  472. package/dist/lib/structured-output.js +72 -0
  473. package/dist/lib/structured-output.js.map +1 -0
  474. package/dist/lib/system-prompt.d.ts +30 -0
  475. package/dist/lib/system-prompt.d.ts.map +1 -0
  476. package/dist/lib/system-prompt.js +66 -0
  477. package/dist/lib/system-prompt.js.map +1 -0
  478. package/dist/lib/task-type.d.ts +18 -0
  479. package/dist/lib/task-type.d.ts.map +1 -0
  480. package/dist/lib/task-type.js +92 -0
  481. package/dist/lib/task-type.js.map +1 -0
  482. package/dist/lib/think-tags.d.ts +37 -0
  483. package/dist/lib/think-tags.d.ts.map +1 -0
  484. package/dist/lib/think-tags.js +203 -0
  485. package/dist/lib/think-tags.js.map +1 -0
  486. package/dist/lib/tool-args.d.ts +36 -0
  487. package/dist/lib/tool-args.d.ts.map +1 -0
  488. package/dist/lib/tool-args.js +190 -0
  489. package/dist/lib/tool-args.js.map +1 -0
  490. package/dist/lib/tool-call-rescue.d.ts +62 -0
  491. package/dist/lib/tool-call-rescue.d.ts.map +1 -0
  492. package/dist/lib/tool-call-rescue.js +258 -0
  493. package/dist/lib/tool-call-rescue.js.map +1 -0
  494. package/dist/lib/tool-capability.d.ts +13 -0
  495. package/dist/lib/tool-capability.d.ts.map +1 -0
  496. package/dist/lib/tool-capability.js +70 -0
  497. package/dist/lib/tool-capability.js.map +1 -0
  498. package/dist/lib/tool-validate.d.ts +44 -0
  499. package/dist/lib/tool-validate.d.ts.map +1 -0
  500. package/dist/lib/tool-validate.js +165 -0
  501. package/dist/lib/tool-validate.js.map +1 -0
  502. package/dist/lib/ttfb-budget.d.ts +13 -0
  503. package/dist/lib/ttfb-budget.d.ts.map +1 -0
  504. package/dist/lib/ttfb-budget.js +153 -0
  505. package/dist/lib/ttfb-budget.js.map +1 -0
  506. package/dist/lib/url-guard.d.ts +47 -0
  507. package/dist/lib/url-guard.d.ts.map +1 -0
  508. package/dist/lib/url-guard.js +229 -0
  509. package/dist/lib/url-guard.js.map +1 -0
  510. package/dist/lib/wake-detect.d.ts +12 -0
  511. package/dist/lib/wake-detect.d.ts.map +1 -0
  512. package/dist/lib/wake-detect.js +99 -0
  513. package/dist/lib/wake-detect.js.map +1 -0
  514. package/dist/middleware/errorHandler.d.ts +3 -0
  515. package/dist/middleware/errorHandler.d.ts.map +1 -0
  516. package/dist/middleware/errorHandler.js +45 -0
  517. package/dist/middleware/errorHandler.js.map +1 -0
  518. package/dist/middleware/rateLimit.d.ts +4 -0
  519. package/dist/middleware/rateLimit.d.ts.map +1 -0
  520. package/dist/middleware/rateLimit.js +125 -0
  521. package/dist/middleware/rateLimit.js.map +1 -0
  522. package/dist/middleware/requireAuth.d.ts +3 -0
  523. package/dist/middleware/requireAuth.d.ts.map +1 -0
  524. package/dist/middleware/requireAuth.js +17 -0
  525. package/dist/middleware/requireAuth.js.map +1 -0
  526. package/dist/providers/aclide.d.ts +18 -0
  527. package/dist/providers/aclide.d.ts.map +1 -0
  528. package/dist/providers/aclide.js +174 -0
  529. package/dist/providers/aclide.js.map +1 -0
  530. package/dist/providers/aihorde.d.ts +42 -0
  531. package/dist/providers/aihorde.d.ts.map +1 -0
  532. package/dist/providers/aihorde.js +192 -0
  533. package/dist/providers/aihorde.js.map +1 -0
  534. package/dist/providers/airforce.d.ts +11 -0
  535. package/dist/providers/airforce.d.ts.map +1 -0
  536. package/dist/providers/airforce.js +32 -0
  537. package/dist/providers/airforce.js.map +1 -0
  538. package/dist/providers/base.d.ts +177 -0
  539. package/dist/providers/base.d.ts.map +1 -0
  540. package/dist/providers/base.js +354 -0
  541. package/dist/providers/base.js.map +1 -0
  542. package/dist/providers/blaze.d.ts +11 -0
  543. package/dist/providers/blaze.d.ts.map +1 -0
  544. package/dist/providers/blaze.js +33 -0
  545. package/dist/providers/blaze.js.map +1 -0
  546. package/dist/providers/blockrun.d.ts +14 -0
  547. package/dist/providers/blockrun.d.ts.map +1 -0
  548. package/dist/providers/blockrun.js +36 -0
  549. package/dist/providers/blockrun.js.map +1 -0
  550. package/dist/providers/clod.d.ts +11 -0
  551. package/dist/providers/clod.d.ts.map +1 -0
  552. package/dist/providers/clod.js +39 -0
  553. package/dist/providers/clod.js.map +1 -0
  554. package/dist/providers/cloudflare.d.ts +15 -0
  555. package/dist/providers/cloudflare.d.ts.map +1 -0
  556. package/dist/providers/cloudflare.js +175 -0
  557. package/dist/providers/cloudflare.js.map +1 -0
  558. package/dist/providers/cohere.d.ts +11 -0
  559. package/dist/providers/cohere.d.ts.map +1 -0
  560. package/dist/providers/cohere.js +117 -0
  561. package/dist/providers/cohere.js.map +1 -0
  562. package/dist/providers/dreamprompting.d.ts +11 -0
  563. package/dist/providers/dreamprompting.d.ts.map +1 -0
  564. package/dist/providers/dreamprompting.js +41 -0
  565. package/dist/providers/dreamprompting.js.map +1 -0
  566. package/dist/providers/electronhub.d.ts +10 -0
  567. package/dist/providers/electronhub.d.ts.map +1 -0
  568. package/dist/providers/electronhub.js +56 -0
  569. package/dist/providers/electronhub.js.map +1 -0
  570. package/dist/providers/experiential.d.ts +10 -0
  571. package/dist/providers/experiential.d.ts.map +1 -0
  572. package/dist/providers/experiential.js +33 -0
  573. package/dist/providers/experiential.js.map +1 -0
  574. package/dist/providers/gizmo.d.ts +15 -0
  575. package/dist/providers/gizmo.d.ts.map +1 -0
  576. package/dist/providers/gizmo.js +54 -0
  577. package/dist/providers/gizmo.js.map +1 -0
  578. package/dist/providers/google.d.ts +30 -0
  579. package/dist/providers/google.d.ts.map +1 -0
  580. package/dist/providers/google.js +766 -0
  581. package/dist/providers/google.js.map +1 -0
  582. package/dist/providers/index.d.ts +13 -0
  583. package/dist/providers/index.d.ts.map +1 -0
  584. package/dist/providers/index.js +561 -0
  585. package/dist/providers/index.js.map +1 -0
  586. package/dist/providers/llmtr.d.ts +15 -0
  587. package/dist/providers/llmtr.d.ts.map +1 -0
  588. package/dist/providers/llmtr.js +51 -0
  589. package/dist/providers/llmtr.js.map +1 -0
  590. package/dist/providers/logfare.d.ts +11 -0
  591. package/dist/providers/logfare.d.ts.map +1 -0
  592. package/dist/providers/logfare.js +33 -0
  593. package/dist/providers/logfare.js.map +1 -0
  594. package/dist/providers/lucidity.d.ts +11 -0
  595. package/dist/providers/lucidity.d.ts.map +1 -0
  596. package/dist/providers/lucidity.js +37 -0
  597. package/dist/providers/lucidity.js.map +1 -0
  598. package/dist/providers/modelscope.d.ts +50 -0
  599. package/dist/providers/modelscope.d.ts.map +1 -0
  600. package/dist/providers/modelscope.js +143 -0
  601. package/dist/providers/modelscope.js.map +1 -0
  602. package/dist/providers/moondream.d.ts +17 -0
  603. package/dist/providers/moondream.d.ts.map +1 -0
  604. package/dist/providers/moondream.js +140 -0
  605. package/dist/providers/moondream.js.map +1 -0
  606. package/dist/providers/openai-compat.d.ts +140 -0
  607. package/dist/providers/openai-compat.d.ts.map +1 -0
  608. package/dist/providers/openai-compat.js +537 -0
  609. package/dist/providers/openai-compat.js.map +1 -0
  610. package/dist/providers/opencode-free.d.ts +24 -0
  611. package/dist/providers/opencode-free.d.ts.map +1 -0
  612. package/dist/providers/opencode-free.js +262 -0
  613. package/dist/providers/opencode-free.js.map +1 -0
  614. package/dist/providers/pollinations.d.ts +32 -0
  615. package/dist/providers/pollinations.d.ts.map +1 -0
  616. package/dist/providers/pollinations.js +65 -0
  617. package/dist/providers/pollinations.js.map +1 -0
  618. package/dist/providers/router9.d.ts +16 -0
  619. package/dist/providers/router9.d.ts.map +1 -0
  620. package/dist/providers/router9.js +42 -0
  621. package/dist/providers/router9.js.map +1 -0
  622. package/dist/providers/sail.d.ts +44 -0
  623. package/dist/providers/sail.d.ts.map +1 -0
  624. package/dist/providers/sail.js +302 -0
  625. package/dist/providers/sail.js.map +1 -0
  626. package/dist/providers/septor.d.ts +10 -0
  627. package/dist/providers/septor.d.ts.map +1 -0
  628. package/dist/providers/septor.js +36 -0
  629. package/dist/providers/septor.js.map +1 -0
  630. package/dist/providers/speechify.d.ts +14 -0
  631. package/dist/providers/speechify.d.ts.map +1 -0
  632. package/dist/providers/speechify.js +28 -0
  633. package/dist/providers/speechify.js.map +1 -0
  634. package/dist/providers/speka.d.ts +12 -0
  635. package/dist/providers/speka.d.ts.map +1 -0
  636. package/dist/providers/speka.js +37 -0
  637. package/dist/providers/speka.js.map +1 -0
  638. package/dist/providers/waterfall.d.ts +11 -0
  639. package/dist/providers/waterfall.d.ts.map +1 -0
  640. package/dist/providers/waterfall.js +33 -0
  641. package/dist/providers/waterfall.js.map +1 -0
  642. package/dist/providers/xkiro.d.ts +71 -0
  643. package/dist/providers/xkiro.d.ts.map +1 -0
  644. package/dist/providers/xkiro.js +119 -0
  645. package/dist/providers/xkiro.js.map +1 -0
  646. package/dist/providers/zhipu.d.ts +43 -0
  647. package/dist/providers/zhipu.d.ts.map +1 -0
  648. package/dist/providers/zhipu.js +95 -0
  649. package/dist/providers/zhipu.js.map +1 -0
  650. package/dist/routes/analytics.d.ts +2 -0
  651. package/dist/routes/analytics.d.ts.map +1 -0
  652. package/dist/routes/analytics.js +738 -0
  653. package/dist/routes/analytics.js.map +1 -0
  654. package/dist/routes/anthropic.d.ts +7 -0
  655. package/dist/routes/anthropic.d.ts.map +1 -0
  656. package/dist/routes/anthropic.js +1076 -0
  657. package/dist/routes/anthropic.js.map +1 -0
  658. package/dist/routes/auth.d.ts +2 -0
  659. package/dist/routes/auth.d.ts.map +1 -0
  660. package/dist/routes/auth.js +310 -0
  661. package/dist/routes/auth.js.map +1 -0
  662. package/dist/routes/backups.d.ts +2 -0
  663. package/dist/routes/backups.d.ts.map +1 -0
  664. package/dist/routes/backups.js +127 -0
  665. package/dist/routes/backups.js.map +1 -0
  666. package/dist/routes/cache.d.ts +2 -0
  667. package/dist/routes/cache.d.ts.map +1 -0
  668. package/dist/routes/cache.js +40 -0
  669. package/dist/routes/cache.js.map +1 -0
  670. package/dist/routes/client-profiles.d.ts +2 -0
  671. package/dist/routes/client-profiles.d.ts.map +1 -0
  672. package/dist/routes/client-profiles.js +128 -0
  673. package/dist/routes/client-profiles.js.map +1 -0
  674. package/dist/routes/compression.d.ts +2 -0
  675. package/dist/routes/compression.d.ts.map +1 -0
  676. package/dist/routes/compression.js +82 -0
  677. package/dist/routes/compression.js.map +1 -0
  678. package/dist/routes/conversations.d.ts +3 -0
  679. package/dist/routes/conversations.d.ts.map +1 -0
  680. package/dist/routes/conversations.js +215 -0
  681. package/dist/routes/conversations.js.map +1 -0
  682. package/dist/routes/docs.d.ts +2 -0
  683. package/dist/routes/docs.d.ts.map +1 -0
  684. package/dist/routes/docs.js +21 -0
  685. package/dist/routes/docs.js.map +1 -0
  686. package/dist/routes/embeddings.d.ts +2 -0
  687. package/dist/routes/embeddings.d.ts.map +1 -0
  688. package/dist/routes/embeddings.js +255 -0
  689. package/dist/routes/embeddings.js.map +1 -0
  690. package/dist/routes/fallback.d.ts +2 -0
  691. package/dist/routes/fallback.d.ts.map +1 -0
  692. package/dist/routes/fallback.js +631 -0
  693. package/dist/routes/fallback.js.map +1 -0
  694. package/dist/routes/free-tier.d.ts +22 -0
  695. package/dist/routes/free-tier.d.ts.map +1 -0
  696. package/dist/routes/free-tier.js +175 -0
  697. package/dist/routes/free-tier.js.map +1 -0
  698. package/dist/routes/gemini.d.ts +2 -0
  699. package/dist/routes/gemini.d.ts.map +1 -0
  700. package/dist/routes/gemini.js +218 -0
  701. package/dist/routes/gemini.js.map +1 -0
  702. package/dist/routes/health.d.ts +2 -0
  703. package/dist/routes/health.d.ts.map +1 -0
  704. package/dist/routes/health.js +72 -0
  705. package/dist/routes/health.js.map +1 -0
  706. package/dist/routes/keys.d.ts +17 -0
  707. package/dist/routes/keys.d.ts.map +1 -0
  708. package/dist/routes/keys.js +1787 -0
  709. package/dist/routes/keys.js.map +1 -0
  710. package/dist/routes/logs.d.ts +2 -0
  711. package/dist/routes/logs.d.ts.map +1 -0
  712. package/dist/routes/logs.js +88 -0
  713. package/dist/routes/logs.js.map +1 -0
  714. package/dist/routes/mcp.d.ts +4 -0
  715. package/dist/routes/mcp.d.ts.map +1 -0
  716. package/dist/routes/mcp.js +563 -0
  717. package/dist/routes/mcp.js.map +1 -0
  718. package/dist/routes/media.d.ts +2 -0
  719. package/dist/routes/media.d.ts.map +1 -0
  720. package/dist/routes/media.js +180 -0
  721. package/dist/routes/media.js.map +1 -0
  722. package/dist/routes/models.d.ts +2 -0
  723. package/dist/routes/models.d.ts.map +1 -0
  724. package/dist/routes/models.js +439 -0
  725. package/dist/routes/models.js.map +1 -0
  726. package/dist/routes/ollama.d.ts +7 -0
  727. package/dist/routes/ollama.d.ts.map +1 -0
  728. package/dist/routes/ollama.js +595 -0
  729. package/dist/routes/ollama.js.map +1 -0
  730. package/dist/routes/profiles.d.ts +3 -0
  731. package/dist/routes/profiles.d.ts.map +1 -0
  732. package/dist/routes/profiles.js +431 -0
  733. package/dist/routes/profiles.js.map +1 -0
  734. package/dist/routes/proxy.d.ts +32 -0
  735. package/dist/routes/proxy.d.ts.map +1 -0
  736. package/dist/routes/proxy.js +2793 -0
  737. package/dist/routes/proxy.js.map +1 -0
  738. package/dist/routes/responses.d.ts +1161 -0
  739. package/dist/routes/responses.d.ts.map +1 -0
  740. package/dist/routes/responses.js +1521 -0
  741. package/dist/routes/responses.js.map +1 -0
  742. package/dist/routes/settings.d.ts +2 -0
  743. package/dist/routes/settings.d.ts.map +1 -0
  744. package/dist/routes/settings.js +549 -0
  745. package/dist/routes/settings.js.map +1 -0
  746. package/dist/routes/status.d.ts +3 -0
  747. package/dist/routes/status.d.ts.map +1 -0
  748. package/dist/routes/status.js +214 -0
  749. package/dist/routes/status.js.map +1 -0
  750. package/dist/routes/update.d.ts +31 -0
  751. package/dist/routes/update.d.ts.map +1 -0
  752. package/dist/routes/update.js +536 -0
  753. package/dist/routes/update.js.map +1 -0
  754. package/dist/routes/url-tokens.d.ts +2 -0
  755. package/dist/routes/url-tokens.d.ts.map +1 -0
  756. package/dist/routes/url-tokens.js +31 -0
  757. package/dist/routes/url-tokens.js.map +1 -0
  758. package/dist/scripts/export-catalog.d.ts +2 -0
  759. package/dist/scripts/export-catalog.d.ts.map +1 -0
  760. package/dist/scripts/export-catalog.js +114 -0
  761. package/dist/scripts/export-catalog.js.map +1 -0
  762. package/dist/scripts/rotate-encryption-key.d.ts +81 -0
  763. package/dist/scripts/rotate-encryption-key.d.ts.map +1 -0
  764. package/dist/scripts/rotate-encryption-key.js +232 -0
  765. package/dist/scripts/rotate-encryption-key.js.map +1 -0
  766. package/dist/scripts/routing-sim.d.ts +2 -0
  767. package/dist/scripts/routing-sim.d.ts.map +1 -0
  768. package/dist/scripts/routing-sim.js +130 -0
  769. package/dist/scripts/routing-sim.js.map +1 -0
  770. package/dist/scripts/test-all-models.d.ts +2 -0
  771. package/dist/scripts/test-all-models.d.ts.map +1 -0
  772. package/dist/scripts/test-all-models.js +56 -0
  773. package/dist/scripts/test-all-models.js.map +1 -0
  774. package/dist/services/anthropic-map.d.ts +39 -0
  775. package/dist/services/anthropic-map.d.ts.map +1 -0
  776. package/dist/services/anthropic-map.js +138 -0
  777. package/dist/services/anthropic-map.js.map +1 -0
  778. package/dist/services/auth.d.ts +30 -0
  779. package/dist/services/auth.d.ts.map +1 -0
  780. package/dist/services/auth.js +124 -0
  781. package/dist/services/auth.js.map +1 -0
  782. package/dist/services/auto-discover.d.ts +77 -0
  783. package/dist/services/auto-discover.d.ts.map +1 -0
  784. package/dist/services/auto-discover.js +1047 -0
  785. package/dist/services/auto-discover.js.map +1 -0
  786. package/dist/services/backups.d.ts +67 -0
  787. package/dist/services/backups.d.ts.map +1 -0
  788. package/dist/services/backups.js +444 -0
  789. package/dist/services/backups.js.map +1 -0
  790. package/dist/services/builtin-model-discovery.d.ts +107 -0
  791. package/dist/services/builtin-model-discovery.d.ts.map +1 -0
  792. package/dist/services/builtin-model-discovery.js +296 -0
  793. package/dist/services/builtin-model-discovery.js.map +1 -0
  794. package/dist/services/cache.d.ts +190 -0
  795. package/dist/services/cache.d.ts.map +1 -0
  796. package/dist/services/cache.js +617 -0
  797. package/dist/services/cache.js.map +1 -0
  798. package/dist/services/catalog-sync.d.ts +257 -0
  799. package/dist/services/catalog-sync.d.ts.map +1 -0
  800. package/dist/services/catalog-sync.js +1041 -0
  801. package/dist/services/catalog-sync.js.map +1 -0
  802. package/dist/services/compression/config.d.ts +33 -0
  803. package/dist/services/compression/config.d.ts.map +1 -0
  804. package/dist/services/compression/config.js +158 -0
  805. package/dist/services/compression/config.js.map +1 -0
  806. package/dist/services/compression/engines/aging.d.ts +2 -0
  807. package/dist/services/compression/engines/aging.d.ts.map +1 -0
  808. package/dist/services/compression/engines/aging.js +53 -0
  809. package/dist/services/compression/engines/aging.js.map +1 -0
  810. package/dist/services/compression/engines/custom-filters.d.ts +4 -0
  811. package/dist/services/compression/engines/custom-filters.d.ts.map +1 -0
  812. package/dist/services/compression/engines/custom-filters.js +49 -0
  813. package/dist/services/compression/engines/custom-filters.js.map +1 -0
  814. package/dist/services/compression/engines/dedup.d.ts +2 -0
  815. package/dist/services/compression/engines/dedup.d.ts.map +1 -0
  816. package/dist/services/compression/engines/dedup.js +61 -0
  817. package/dist/services/compression/engines/dedup.js.map +1 -0
  818. package/dist/services/compression/engines/filter-definitions.d.ts +75 -0
  819. package/dist/services/compression/engines/filter-definitions.d.ts.map +1 -0
  820. package/dist/services/compression/engines/filter-definitions.js +45 -0
  821. package/dist/services/compression/engines/filter-definitions.js.map +1 -0
  822. package/dist/services/compression/engines/hard-budget.d.ts +2 -0
  823. package/dist/services/compression/engines/hard-budget.d.ts.map +1 -0
  824. package/dist/services/compression/engines/hard-budget.js +52 -0
  825. package/dist/services/compression/engines/hard-budget.js.map +1 -0
  826. package/dist/services/compression/engines/index.d.ts +9 -0
  827. package/dist/services/compression/engines/index.d.ts.map +1 -0
  828. package/dist/services/compression/engines/index.js +9 -0
  829. package/dist/services/compression/engines/index.js.map +1 -0
  830. package/dist/services/compression/engines/jsoncompact.d.ts +3 -0
  831. package/dist/services/compression/engines/jsoncompact.d.ts.map +1 -0
  832. package/dist/services/compression/engines/jsoncompact.js +145 -0
  833. package/dist/services/compression/engines/jsoncompact.js.map +1 -0
  834. package/dist/services/compression/engines/lite.d.ts +2 -0
  835. package/dist/services/compression/engines/lite.d.ts.map +1 -0
  836. package/dist/services/compression/engines/lite.js +34 -0
  837. package/dist/services/compression/engines/lite.js.map +1 -0
  838. package/dist/services/compression/engines/read-lifecycle.d.ts +2 -0
  839. package/dist/services/compression/engines/read-lifecycle.d.ts.map +1 -0
  840. package/dist/services/compression/engines/read-lifecycle.js +70 -0
  841. package/dist/services/compression/engines/read-lifecycle.js.map +1 -0
  842. package/dist/services/compression/engines/relevance.d.ts +2 -0
  843. package/dist/services/compression/engines/relevance.d.ts.map +1 -0
  844. package/dist/services/compression/engines/relevance.js +74 -0
  845. package/dist/services/compression/engines/relevance.js.map +1 -0
  846. package/dist/services/compression/engines/toolfilter.d.ts +2 -0
  847. package/dist/services/compression/engines/toolfilter.d.ts.map +1 -0
  848. package/dist/services/compression/engines/toolfilter.js +195 -0
  849. package/dist/services/compression/engines/toolfilter.js.map +1 -0
  850. package/dist/services/compression/fidelity-gate.d.ts +12 -0
  851. package/dist/services/compression/fidelity-gate.d.ts.map +1 -0
  852. package/dist/services/compression/fidelity-gate.js +90 -0
  853. package/dist/services/compression/fidelity-gate.js.map +1 -0
  854. package/dist/services/compression/helpers.d.ts +9 -0
  855. package/dist/services/compression/helpers.d.ts.map +1 -0
  856. package/dist/services/compression/helpers.js +52 -0
  857. package/dist/services/compression/helpers.js.map +1 -0
  858. package/dist/services/compression/pipeline.d.ts +7 -0
  859. package/dist/services/compression/pipeline.d.ts.map +1 -0
  860. package/dist/services/compression/pipeline.js +245 -0
  861. package/dist/services/compression/pipeline.js.map +1 -0
  862. package/dist/services/compression/preservation.d.ts +27 -0
  863. package/dist/services/compression/preservation.d.ts.map +1 -0
  864. package/dist/services/compression/preservation.js +109 -0
  865. package/dist/services/compression/preservation.js.map +1 -0
  866. package/dist/services/compression/registry.d.ts +6 -0
  867. package/dist/services/compression/registry.d.ts.map +1 -0
  868. package/dist/services/compression/registry.js +16 -0
  869. package/dist/services/compression/registry.js.map +1 -0
  870. package/dist/services/compression/stats.d.ts +29 -0
  871. package/dist/services/compression/stats.d.ts.map +1 -0
  872. package/dist/services/compression/stats.js +55 -0
  873. package/dist/services/compression/stats.js.map +1 -0
  874. package/dist/services/compression/types.d.ts +90 -0
  875. package/dist/services/compression/types.d.ts.map +1 -0
  876. package/dist/services/compression/types.js +2 -0
  877. package/dist/services/compression/types.js.map +1 -0
  878. package/dist/services/context-handoff.d.ts +22 -0
  879. package/dist/services/context-handoff.d.ts.map +1 -0
  880. package/dist/services/context-handoff.js +164 -0
  881. package/dist/services/context-handoff.js.map +1 -0
  882. package/dist/services/cooldown-probe.d.ts +24 -0
  883. package/dist/services/cooldown-probe.d.ts.map +1 -0
  884. package/dist/services/cooldown-probe.js +181 -0
  885. package/dist/services/cooldown-probe.js.map +1 -0
  886. package/dist/services/custom-endpoint.d.ts +58 -0
  887. package/dist/services/custom-endpoint.d.ts.map +1 -0
  888. package/dist/services/custom-endpoint.js +167 -0
  889. package/dist/services/custom-endpoint.js.map +1 -0
  890. package/dist/services/custom-media-register.d.ts +22 -0
  891. package/dist/services/custom-media-register.d.ts.map +1 -0
  892. package/dist/services/custom-media-register.js +45 -0
  893. package/dist/services/custom-media-register.js.map +1 -0
  894. package/dist/services/custom-model-register.d.ts +50 -0
  895. package/dist/services/custom-model-register.d.ts.map +1 -0
  896. package/dist/services/custom-model-register.js +103 -0
  897. package/dist/services/custom-model-register.js.map +1 -0
  898. package/dist/services/custom-model-seed.d.ts +18 -0
  899. package/dist/services/custom-model-seed.d.ts.map +1 -0
  900. package/dist/services/custom-model-seed.js +42 -0
  901. package/dist/services/custom-model-seed.js.map +1 -0
  902. package/dist/services/custom-model-sync.d.ts +37 -0
  903. package/dist/services/custom-model-sync.d.ts.map +1 -0
  904. package/dist/services/custom-model-sync.js +118 -0
  905. package/dist/services/custom-model-sync.js.map +1 -0
  906. package/dist/services/custom-model-tombstone.d.ts +5 -0
  907. package/dist/services/custom-model-tombstone.d.ts.map +1 -0
  908. package/dist/services/custom-model-tombstone.js +30 -0
  909. package/dist/services/custom-model-tombstone.js.map +1 -0
  910. package/dist/services/declarative-config.d.ts +356 -0
  911. package/dist/services/declarative-config.d.ts.map +1 -0
  912. package/dist/services/declarative-config.js +427 -0
  913. package/dist/services/declarative-config.js.map +1 -0
  914. package/dist/services/degradation.d.ts +40 -0
  915. package/dist/services/degradation.d.ts.map +1 -0
  916. package/dist/services/degradation.js +119 -0
  917. package/dist/services/degradation.js.map +1 -0
  918. package/dist/services/embeddings.d.ts +76 -0
  919. package/dist/services/embeddings.d.ts.map +1 -0
  920. package/dist/services/embeddings.js +319 -0
  921. package/dist/services/embeddings.js.map +1 -0
  922. package/dist/services/fusion.d.ts +162 -0
  923. package/dist/services/fusion.d.ts.map +1 -0
  924. package/dist/services/fusion.js +789 -0
  925. package/dist/services/fusion.js.map +1 -0
  926. package/dist/services/gemini-map.d.ts +14 -0
  927. package/dist/services/gemini-map.d.ts.map +1 -0
  928. package/dist/services/gemini-map.js +78 -0
  929. package/dist/services/gemini-map.js.map +1 -0
  930. package/dist/services/health.d.ts +52 -0
  931. package/dist/services/health.d.ts.map +1 -0
  932. package/dist/services/health.js +352 -0
  933. package/dist/services/health.js.map +1 -0
  934. package/dist/services/idempotency.d.ts +49 -0
  935. package/dist/services/idempotency.d.ts.map +1 -0
  936. package/dist/services/idempotency.js +140 -0
  937. package/dist/services/idempotency.js.map +1 -0
  938. package/dist/services/key-budget.d.ts +74 -0
  939. package/dist/services/key-budget.d.ts.map +1 -0
  940. package/dist/services/key-budget.js +200 -0
  941. package/dist/services/key-budget.js.map +1 -0
  942. package/dist/services/media.d.ts +123 -0
  943. package/dist/services/media.d.ts.map +1 -0
  944. package/dist/services/media.js +954 -0
  945. package/dist/services/media.js.map +1 -0
  946. package/dist/services/model-discovery.d.ts +126 -0
  947. package/dist/services/model-discovery.d.ts.map +1 -0
  948. package/dist/services/model-discovery.js +662 -0
  949. package/dist/services/model-discovery.js.map +1 -0
  950. package/dist/services/model-groups.d.ts +149 -0
  951. package/dist/services/model-groups.d.ts.map +1 -0
  952. package/dist/services/model-groups.js +314 -0
  953. package/dist/services/model-groups.js.map +1 -0
  954. package/dist/services/model-listing.d.ts +18 -0
  955. package/dist/services/model-listing.d.ts.map +1 -0
  956. package/dist/services/model-listing.js +94 -0
  957. package/dist/services/model-listing.js.map +1 -0
  958. package/dist/services/model-retirement.d.ts +29 -0
  959. package/dist/services/model-retirement.d.ts.map +1 -0
  960. package/dist/services/model-retirement.js +86 -0
  961. package/dist/services/model-retirement.js.map +1 -0
  962. package/dist/services/model-state.d.ts +90 -0
  963. package/dist/services/model-state.d.ts.map +1 -0
  964. package/dist/services/model-state.js +342 -0
  965. package/dist/services/model-state.js.map +1 -0
  966. package/dist/services/model-weight-overrides.d.ts +48 -0
  967. package/dist/services/model-weight-overrides.d.ts.map +1 -0
  968. package/dist/services/model-weight-overrides.js +127 -0
  969. package/dist/services/model-weight-overrides.js.map +1 -0
  970. package/dist/services/notification-emitter.d.ts +50 -0
  971. package/dist/services/notification-emitter.d.ts.map +1 -0
  972. package/dist/services/notification-emitter.js +177 -0
  973. package/dist/services/notification-emitter.js.map +1 -0
  974. package/dist/services/opencode-free-sync.d.ts +29 -0
  975. package/dist/services/opencode-free-sync.d.ts.map +1 -0
  976. package/dist/services/opencode-free-sync.js +206 -0
  977. package/dist/services/opencode-free-sync.js.map +1 -0
  978. package/dist/services/penalty-inspector.d.ts +56 -0
  979. package/dist/services/penalty-inspector.d.ts.map +1 -0
  980. package/dist/services/penalty-inspector.js +167 -0
  981. package/dist/services/penalty-inspector.js.map +1 -0
  982. package/dist/services/profile-models.d.ts +5 -0
  983. package/dist/services/profile-models.d.ts.map +1 -0
  984. package/dist/services/profile-models.js +62 -0
  985. package/dist/services/profile-models.js.map +1 -0
  986. package/dist/services/provider-credential.d.ts +19 -0
  987. package/dist/services/provider-credential.d.ts.map +1 -0
  988. package/dist/services/provider-credential.js +51 -0
  989. package/dist/services/provider-credential.js.map +1 -0
  990. package/dist/services/provider-quota.d.ts +64 -0
  991. package/dist/services/provider-quota.d.ts.map +1 -0
  992. package/dist/services/provider-quota.js +563 -0
  993. package/dist/services/provider-quota.js.map +1 -0
  994. package/dist/services/quirks.d.ts +0 -0
  995. package/dist/services/quirks.d.ts.map +1 -0
  996. package/dist/services/quirks.js +0 -0
  997. package/dist/services/quirks.js.map +1 -0
  998. package/dist/services/quota-forecast.d.ts +50 -0
  999. package/dist/services/quota-forecast.d.ts.map +1 -0
  1000. package/dist/services/quota-forecast.js +150 -0
  1001. package/dist/services/quota-forecast.js.map +1 -0
  1002. package/dist/services/quota-outlook.d.ts +4 -0
  1003. package/dist/services/quota-outlook.d.ts.map +1 -0
  1004. package/dist/services/quota-outlook.js +92 -0
  1005. package/dist/services/quota-outlook.js.map +1 -0
  1006. package/dist/services/ratelimit.d.ts +249 -0
  1007. package/dist/services/ratelimit.d.ts.map +1 -0
  1008. package/dist/services/ratelimit.js +1182 -0
  1009. package/dist/services/ratelimit.js.map +1 -0
  1010. package/dist/services/request-retention.d.ts +60 -0
  1011. package/dist/services/request-retention.d.ts.map +1 -0
  1012. package/dist/services/request-retention.js +229 -0
  1013. package/dist/services/request-retention.js.map +1 -0
  1014. package/dist/services/router.d.ts +384 -0
  1015. package/dist/services/router.d.ts.map +1 -0
  1016. package/dist/services/router.js +1986 -0
  1017. package/dist/services/router.js.map +1 -0
  1018. package/dist/services/scoring.d.ts +156 -0
  1019. package/dist/services/scoring.d.ts.map +1 -0
  1020. package/dist/services/scoring.js +435 -0
  1021. package/dist/services/scoring.js.map +1 -0
  1022. package/dist/services/url-tokens.d.ts +15 -0
  1023. package/dist/services/url-tokens.d.ts.map +1 -0
  1024. package/dist/services/url-tokens.js +55 -0
  1025. package/dist/services/url-tokens.js.map +1 -0
  1026. package/package.json +77 -4
  1027. package/README.md +0 -3
@@ -0,0 +1 @@
1
+ var e={nav:{models:`Модели`,playground:`Игралиште`,keys:`Кључеви`,analytics:`Аналитика`,premium:`Премиум`,upgrade:`Надоградите`,settings:`Подешавања`,signOut:`Одјави се`,openMenu:`Отворите мени за навигацију`,switchLight:`Пребаците се на светлу тему`,switchDark:`Пребаците се на тамну тему`,switchToChinese:`Пребаци на кинески`,switchToEnglish:`Пребаците се на енглески`,modelsMenu:`Прегледајте типове модела`,agents:`Агенти`,logs:`Логови`,analyticsMenu:`Странице аналитике`,notifications:`Notifications`,noNotifications:`No notifications yet`},auth:{createYourAccount:`Креирајте свој налог`,signIn:`Пријавите се`,email:`Емаил`,password:`Лозинка`,emailPlaceholder:`ви@екампле.цом`,passwordPlaceholderSetup:`најмање 8 знакова`,passwordPlaceholderLogin:`своју лозинку`,setupDescription:`Подесите адресу е-поште и лозинку који ће заштитити ову контролну таблу.`,loginDescription:`Пријавите се да бисте управљали својим кључевима, рутирањем и аналитиком.`,createAccount:`Креирајте налог`,creating:`Прављење…`,signingIn:`Пријављивање…`,loading:`Учитавање…`,newPasswordAutoComplete:`нова лозинка`,currentPasswordAutoComplete:`тренутна лозинка`,serverUnreachableBefore:`Није могуће приступити серверу. Уверите се да је бацкенд покренут (`,serverUnreachableAfter:`).`,setupCode:`Сетуп цоде`,setupCodePlaceholder:`код из евиденције сервера`,setupCodeHint:`За подешавање са другог уређаја потребан је једнократни код одштампан у евиденцији сервера при покретању.`,changePassword:`Промени лозинку`,changeEmail:`Промени имејл`,forgotPassword:`Заборавили сте лозинку?`,currentPassword:`Тренутна лозинка`,newPassword:`Нова лозинка`,newEmail:`Нови имејл`,resetCode:`Код за ресетовање`,resetCodePlaceholder:`код из логова сервера`,resetCodeHint:`Код се налази у логу сервера. Никада се не шаље имејлом.`,forgotPasswordDescription:`Кликните на дугме испод да генеришете код за ресетовање. Код се уписује у лог сервера и никада се не шаље имејлом. Унесите га овде да поставите нову лозинку.`,requestResetCode:`Пошаљи код`,requestingResetCode:`Слање…`,resetPassword:`Ресетуј лозинку`,resettingPassword:`Ресетовање…`,changingPassword:`Мењање…`,changingEmail:`Мењање…`,backToLogin:`Назад на пријаву`,passwordChanged:`Лозинка је промењена.`,emailChanged:`Имејл је промењен.`,passwordReset:`Лозинка је ресетована. Пријавите се.`,resetCodeDockerHint:`Користите Docker? Код се налази у логу контејнера: docker logs <container>.`,desktopSessionFailed:`Контролна табла није успела да се пријави на локални сервер. Затворите SRouter и поново га отворите.`},common:{save:`Сачувај`,saving:`Чување…`,cancel:`Откажи`,discard:`Одбаци`,delete:`Избриши`,confirm:`Потврди`,copy:`Копирај`,copied:`Копирано`,copyFailed:`Копирање није успело — означите текст и копирајте га ручно`,show:`Схов`,hide:`Сакриј се`,apply:`Пријавите се`,applied:`Примењено`,applying:`Примењује се…`,active:`Ацтиве`,inactive:`Неактиван`,never:`никад`,loading:`Учитавање…`,error:`Грешка`,noData:`Још нема података`,unsavedChanges:`Несачуване промене`,saveChanges:`Сачувај промене`,remove:`Уклони`,unknownError:`Непозната грешка`,model:`Модел`,provider:`Провајдер`,success:`Успех`,failures:`Неуспеси`,dismiss:`Одбаци`,status:`Статус`},settings:{title:`Подешавања`,language:`Језик`,theme:`Тема`,themeSystem:`Систем`,themeLight:`Светла`,themeDark:`Тамна`,searchLanguage:`Претражи језике…`,noLanguages:`Ниједан језик није пронађен`,sections:`Одељци подешавања`,sectionGeneral:`Опште`,sectionCompression:`Компресија`,sectionAdvanced:`Напредно`,sectionPreview:`Преглед`,generalDescription:`Језик и изглед ове контролне табле.`,advancedDescription:`Прагови и сигурносни прекидачи ланца компресије.`,compressionTitle:`Компресија промптова`,compressionDescription:`Смањује величину захтева пре рутирања, уз очување кода, грешака, путања, бројева и дефиниција алата.`,compressionHelp:`Преписује сваки захтев пре слања провајдеру како би трошио мање токена. Код, грешке, путање датотека и бројеви су заштићени, а свако преписивање које их оштети се одбацује.`,compressionMode:`Режим`,compressionModeHelp:`„Искључено“ шаље захтеве неизмењене. „Без губитака“ уклања само удвостручен и сувишан текст. „Стандардно“ додатно скраћује излаз алата. „Агресивно“ уз то сажима старије реплике.`,compressionOff:`Искључено`,compressionLossless:`Без губитака`,compressionStandard:`Стандардно`,compressionAggressive:`Агресивно`,compressionLossy:`Са губицима`,compressionEngines:`Механизми`,compressionEnginesHelp:`Сваки механизам је један корак преписивања. Режим одређује који се механизми извршавају; овде искључен механизам не ради ни у једном режиму.`,engineDedup:`Поновљени блокови`,engineDedupHelp:`Замењује блок текста који се већ раније појавио у разговору кратком референцом на њега.`,engineLite:`Чишћење празнина`,engineLiteHelp:`Уклања размаке на крајевима редова, сажима поновљене празне редове и одбацује удвостручене системске поруке.`,engineReadLifecycle:`Застарела читања датотека`,engineReadLifecycleHelp:`Замењује раније читање датотеке белешком чим се иста датотека касније поново прочита или измени.`,engineToolfilter:`Филтер излаза алата`,engineToolfilterHelp:`Скраћује излаз команди и алата попут изградњи, тестова и инсталација. Редови са грешкама и траговима стека увек остају.`,engineJsoncompact:`JSON табеле`,engineJsoncompactHelp:`Поново кодира дугачке JSON низове са истим пољима као компактну табелу. Поступак је повратан па се ништа не губи.`,engineRelevance:`Филтер релевантности`,engineRelevanceHelp:`Када порука пређе свој буџет величине, одбацује реченице најмање повезане са последњом поруком.`,engineAging:`Старије реплике`,engineAgingHelp:`Сажима реплике старије од неколико последњих у кратак резиме који чува путање, грешке и одлуке.`,engineHardBudget:`Горња граница токена`,engineHardBudgetHelp:`Уклања најмање вредне редове док захтев не стане у циљани број токена.`,compressionAutoTrigger:`Аутоматско покретање изнад процењених токена`,compressionAutoTriggerHelp:`Захтеви процењени изнад овог броја токена аутоматски прелазе на агресивно. Оставите празно да искључите.`,compressionPrefixFreeze:`Замрзни понављајуће префиксе промптова`,compressionPrefixFreezeHelp:`Оставља системски промпт неизмењен чим се исти текст појави трећи пут, како би кеширање промптова на страни провајдера и даље радило.`,compressionTrustProjectFilters:`Веруј датотекама филтера пројекта`,compressionTrustProjectFiltersHelp:`Учитава филтере излаза алата и из радног директоријума. Подразумевано искључено јер би репозиторијум тиме могао да сакрије излаз од модела.`,compressionStats:`Уштеђена величина`,compressionEstimatedTokensSaved:`Процењени уштеђени токени`,compressionPreview:`Преглед уживо`,compressionPreviewDescription:`Пошаљите тело захтева кроз ланац обраде да видите шта би провајдер примио.`,compressionPreviewPlaceholder:`Налепи JSON захтева или обичан текст`,compressionRunPreview:`Покрени преглед`,updatesTitle:`Ажурирања`,checkForUpdates:`Проверите ажурирања`,lastChecked:`Последња провера: {when}`,currentVersion:`Тренутна верзија:`,updateAvailable:`Доступно је ажурирање`,changelog:`Шта је промењено`,upToDate:`Ажурно`,buildAhead:`Ова верзија је испред званичне гране main.`,buildDiverged:`Ова верзија се разишла са званичном граном main.`,buildUnknown:`Ова прилагођена верзија се не може упоредити са званичном граном main.`,notGitInstall:`Ова инсталација не садржи информације о комиту.`,checkFailed:`Провера ажурирања није успела.`,contactsGithub:`Провере се покрећу ручно и повезују се са GitHub-ом.`,autoUpdateCheck:`Аутоматска провера ажурирања`,autoUpdateCheckHelp:`Једном дневно проверава GitHub за ново издање и приказује подсетник. Подразумевано искључено.`,openReleases:`Отвори GitHub издања`,restartAfterUpdate:`Поново покрените SRouter након завршетка израде.`,syncSchedule:`Model Sync`,syncScheduleHint:`How often the model catalog is refreshed from the server`,syncIntervalOff:`Off`,syncInterval6h:`Every 6h`,syncInterval12h:`Every 12h`,syncInterval24h:`Every 24h`},models:{title:`Модели`,chatModelsTab:`Модели за ћаскање`,fusionTab:`Фусион`,embeddingsTab:`Ембеддингс`,imageTab:`Слика`,videoTab:`Video`,audioTab:`Аудио`,imageDesc:`Модели генерисања текста у слику.`,videoDesc:`Text-to-video generation models.`,audioDesc:`Модели претварања текста у говор и говора у текст.`,mediaHint:`Генеришите преко`,mediaEmpty:`Још нема модела. Они се синхронизују из каталога.`,ttsHeading:`Текст у говор`,sttHeading:`Говор у текст`,sttHint:`Препиши преко`,sttEmpty:`Још нема модела говора у текст. Они се синхронизују из каталога.`,newBadge:`Ново`,monthlyTokenBudget:`Месечни буџет токена`,remaining:`преосталих`,used:`коришћени`,usedScopeHint:`Chat requests only, since the start of this calendar month, summed over every model in the active chain — custom endpoints included. Traffic you send to a provider outside SRouter is not counted.`,legendRemainingTitle:`Remaining / monthly budget for {name} ({platform})`,noPublishedQuota:`+{count} with no published quota`,noPublishedQuotaTitle:`These models have no documented monthly token budget, so there is no remaining figure to show.`,of:`оф`,showAllModels:`Прикажи све моделе {count}`,showLess:`Прикажи мање`,vision:`Висион`,visionTitle:`Прихвата унос слике`,tools:`Алати`,toolsTitle:`Емитује структуриране позиве алата, тако да испуњава услове за захтеве који носе алате`,retired:`Повучен`,penalty:`−{value} казна`,obs:`{count} обс`,tokPerMonth:`{count} ток/мес`,rpmLimit:`{count} рпм`,rpdLimit:`{count} рпд`,noKey:`без кључа`,dragToReorder:`Превуците да бисте променили редослед`,dragToReorderGroup:`Превуците да бисте променили редослед модела`,moveToRank:`Скочи на ранг`,providerCount:`{count} провајдери`,servedBy:`Служи {providers}`,viewProviders:`Погледајте добављаче`,backToModels:`Назад на моделе`,providersHeading:`Провајдери који опслужују овај модел`,codeSnippetHeading:`Користите овај модел`,modelNotFound:`Овај модел није доступан или нема конфигурисаних провајдера.`,providerIdsHeading:`ИД-ови модела добављача`,providerIdsHint:`Пошаљите обједињени ИД модела да бисте прешли на грешку преко сваког провајдера или ИД специфичног за добављача да бисте закачили једног добављача.`,copyModelName:`Копирајте назив модела`,settingsHeading:`Подешавања провајдера`,settingsHint:`Локалне измене модела каталога се чувају током синхронизације каталога. Избрисани каталошки модели остају избрисани док их поново не додате преко конфигурације.`,catalogModel:`каталог`,customModel:`обичај`,discoveredModel:`откривен`,localOverride:`локално надјачавање`,displayName:`Име за приказ`,sizeLabel:`Ниво способности`,sizeLabelHint:`Frontier/Large/Medium/Small одређују осу интелигенције: виши ниво увек надмашује нижи, а унутар истог нивоа ранг интелигенције и даље помера резултат. Модел без препознатог нивоа добија најнижи резултат на овој оси, али интелигенција је само једна од три осе — уз добру поузданост и брзину и даље може бити изабран.`,sizeLabelNone:`Ниједан (најнижи резултат интелигенције)`,contextWindow:`Контекст`,inFallback:`У ланцу`,saveModelSettings:`Сачувајте подешавања модела`,aggregateBudget:`{count}/мес`,aggregateBudgetTitle:`Укупан број бесплатних токена месечно код провајдера овог модела`,rateRpm:`{count} RPM`,rateRpd:`{count} RPD`,rateTitle:`Ограничено на стопу — нема фиксног месечног буџета за токене`,rateLimitUsage:`{kind} {used}/{limit}`,rateLimitUsageTitle:`Искоришћеност ограничења брзине у временском прозору (искоришћено / ограничење) код добављача са највише резерве`,splitOut:`Немојте спајати ову копију`,splitOutHint:`Дајте копији овог добављача посебан унос уместо да је спајате у јединствени модел. Можете га поново спојити са сопствене странице копије.`,splitUndo:`Споји назад`,splitUndoHint:`Ова копија се чува одвојено од свог јединственог модела. Спојите га назад да поново пређете на све његове провајдере.`,splitBadge:`држао одвојено`,noData:`нема података`,noDataTitle:`Још увек нема забележених захтева — поузданост и брзина нису мерене за овог провајдера.`,bestOfN:`најбоље од {count}`,perProviderScores:`Резултати по провајдеру: {list}`,columnModel:`Модел`,columnOn:`Он`,noModelsBefore:`Нема доступних модела. Додајте API кључеве на`,keysPageLink:`Страница са кључевима`,noModelsAfter:`прво.`,hiddenNoKeys:`Скривено (без кључева): {platforms}`,searchPlaceholder:`Претражите моделе или добављаче…`,clearSearch:`Обриши претрагу`,ctxAny:`Било који контекст`,ctxBadge:`{size} цтк`,ctxTitle:`Контекстни прозор`,copyModelId:`Копирај ИД модела`,showingCount:`{shown} модела {total}`,clearFilters:`Обриши филтере`,noMatches:`Ниједан модел не одговара вашим филтерима.`,noModelsTitle:`Ниједан модел није конфигурисан`,intelligenceRank:`Интелигенција`,speedRank:`Брзина`,rankHint:`Ранг у каталогу — 1 је најбољи.`,limitRpm:`RPM`,limitRpd:`RPD`,limitTpm:`TPM`,limitTpd:`TPD`,limitRpmHint:`Захтева у минути. Оставите празно за без ограничења.`,limitRpdHint:`Захтева дневно. Оставите празно за без ограничења.`,limitTpmHint:`Токена у минути. Оставите празно за без ограничења.`,limitTpdHint:`Токена дневно. Оставите празно за без ограничења.`,usageThisMonth:`Месечна потрошња`,usageEmpty:`Овог месеца још нема захтева.`,usageRequestsMonth:`{count} захтева овог месеца`,aliasMergeHeading:`Merge model aliases`,aliasMergeHint:`Requests for the unified model id are also served through these custom-provider aliases (e.g. custom:my-alias).`,aliasMergeAdd:`Add`,aliasMergeRemove:`Remove`,bulkToggle:`Enable or disable every shown model`,enableAll:`Enable all`,disableAll:`Disable all`,enableAllHint:`Turn on every model shown, then Save`,disableAllHint:`Turn off every model shown, then Save`,enabledOfShown:`{enabled} of {shown} shown models are in the chain`},strategies:{explore:`Истражи неизмерене моделе`,exploreHint:`Give models with no reliability or speed data a 10% chance to go first so they build a track record. Your real request is what gets sent, so it may be answered by an untested model. For a custom endpoint, use Probe endpoint on the Keys page to test it without live traffic.`,keySelection:`Избор кључа`,keySelectionAuto:`Аутоматски`,keySelectionLeastRemaining:`Најмање преостало`,keySelectionHint:`Како се бира између више кључева истог провајдера. Аутоматски задржава тренутну ротацију; Најмање преостало рангира кључеве према уоченој квоти и прво пробава онај коме је највише преостало.`,cooldownCeiling:`Најдуже аутоматско хлађење`,cooldownCeilingHint:`Ограничава колико дуго сопствене процене рутера смеју да искључе неуспешан пар кључа и модела. Лествица обично расте 2 мин, 10 мин, 1 ч, 24 ч, а грешке кредита или нивоа искључују на један дан. Времена поновног покушаја која наведе провајдер никада се не скраћују.`,cooldownCeilingDefault:`Подразумевано (до 24 ч)`,cooldownCeiling10m:`10 минута`,cooldownCeiling1h:`1 сат`,cooldownCeiling6h:`6 сати`,moreOptions:`Више опција`,peakActive:`(вршни сати)`,peakActiveHint:`Прилагођавање за вршне сате тренутно је активно, па ово нису тежине саме поставке: 60% тежине брзине пребачено је на поузданост.`,peakAdjust:`Прилагођавање за вршне сате`,peakAdjustHint:`Подразумевано искључено. Унутар прозора испод премешта 60% тежине брзине на поузданост — бесплатни релеји су тада најоптерећенији, па поузданост боље предвиђа успех од сирове пропусности. „Најбрже“ и „Најпоузданије“ остају нетакнути.`,peakFrom:`Од`,peakTo:`до`,peakTimezoneLabel:`Временска зона`,peakUseBrowserTimezone:`Користи временску зону прегледача`,peakTimezoneInvalid:`Непозната временска зона.`,peakExemptNote:`Ова поставка остаје нетакнута — већ је на једном крају компромиса брзина/поузданост.`,title:`Стратегија рутирања`,description:`Изаберите стратегију рутирања. У ручном режиму превлачите да бисте поставили редослед; друге стратегије се крећу путем резултата уживо преко поузданости, брзине и интелигенције.`,weightsSummary:`поузданост {reliability}% · брзина {speed}% · интелигенција {intelligence}%`,guardrails:`Заштитне ограде`,guardrailsTooltip:`Увек постављене заштитне ограде: слободна квота простора × казна за ограничење брзине уживо. Испод 1.0 значи да се модел задржава.`,scoreTooltip:`Коначни резултат рутирања = пондерисани просек три осе, помножен заштитним оградама. Прво виши путеви.`,modeManualHint:`Ручни режим: захтеви следе редослед испод, од врха до дна. Превуците да бисте променили редослед.`,modeScoreHint:`Ажурирање резултата из саобраћаја уживо. Редослед у наставку је начин на који се захтеви усмеравају управо сада.`,manual:`Мануал`,manualBlurb:`Рутирајте у тачном редоследу који сте поставили у наставку. Превуците ручке да бисте променили редослед. Без бодовања; ланац се прати од врха до дна.`,balanced:`Баланцед`,balancedBlurb:`Поузданост води (50%), са једнаком тежином брзине и интелигенције (по 25%). Разумно свестрано подразумевано.`,smartest:`Најпаметнији`,smartestBlurb:`Преферирајте најспособнији модел који још увек ради. Интелигенција 55%, поузданост 35%, брзина 10%.`,fastest:`Најбржи`,fastestBlurb:`Преферирајте најбржи модел који још увек ради. Брзина 55%, поузданост 35%, интелигенција 10%.`,reliable:`Најпоузданији`,reliableBlurb:`Максимизирајте стопу успеха изнад свега. Поузданост 70%, брзина и интелигенција по 15%.`,custom:`Цустом`,customBlurb:`Поставите сопствену равнотежу поузданости, брзине и интелигенције помоћу клизача. Исти мотор као унапред подешени, само ваше тежине.`,adjust:`Подесите`,customWeights:`Прилагођене тежине`,customWeightsHelp:`Клизачи су независни; дели ауто-баланс до 100%.`,weightReliability:`Поузданост`,weightSpeed:`Брзина`,weightIntelligence:`Интелигенција`,weightRequired:`Најмање једна тежина мора бити изнад нуле.`,scoreColumn:`Резултат`},penaltyInspector:{title:`Притисак рутера`,subtitle:`Казне, хлађења и неуспеси од последњег {minutes} мин`,rowCount:`{count} активан`,offChain:`ван ланца`,penaltyValue:`Казна {value}`,factor:`резултат к{factor}`,noCooldown:`Нема хлађења`,cooldownChip:`{key} - {time}`,resetCooldown:`Reset cooldown`,clearAll:`Обриши све`,clearAllHint:`Одмах уклања сва хлађења, казне и низове неуспеха. Притисак се поново гради из следећих стварних резултата.`,errorsHeading:`{count} недавне грешке`,noRecentErrors:`Нема недавних грешака`,noKey:`без кључа`,reasons:{penalty:`кажњен`,cooldown:`цоолдовн`,recent_errors:`неуспешно`}},keys:JSON.parse(`{"pageTitle":"Кључеви","pageDescription":"Акредитиви добављача и обједињени кључ API са којим се ваше апликације повезују.","tabProviders":"Провајдери","checklistSummary":"Подешено {configured} од {total} провајдера","checklistKeyless":"кључ није потребан","checklistNoKeyTip":"Кључ још није додат. Кликните да бисте га додали.","checklistSignupLink":"Отворите {provider} да бисте направили налог и добили кључ","checklistKeylessTip":"Ради без кључа.","tabQuotaSignals":"Квотни сигнали","tabApiKey":"Обједињени кључ API","tabAnthropic":"Anthropic","unifiedKey":"Ваш обједињени кључ API","regenerate":"Регенерисати","showKey":"Схов","hideKey":"Сакриј се","copyKey":"Копирај","copyFullKey":"Копирај цео кључ","copiedKey":"Копирано","baseUrl":"База URL","endpointChat":"Ћаскање","endpointResponses":"Одговори","endpointEmbeddings":"Ембеддингс","endpointEmbeddingsHint":"model: \\"auto\\" или породицу са картице Ембеддингс","endpointMessages":"Поруке","endpointMessagesHint":"Компатибилан са Anthropic (Claude)","quickStart":"Quick start","quickStartDesc":"Use auto for your active routing chain, or auto:fast to prioritize speed across enabled models. Replace $YOUR_KEY with your unified API key.","exampleAuto":"Auto mode (use the active chain)","exampleFast":"Fast mode (prioritize speed)","anthropicTitle":"Claude (Anthropic) модели","anthropicDesc":"Усмерите Claude или Anthropic СДК клијента на овај сервер. Anthropic клијенти шаљу називе модела Claude — мапирајте сваки на Ауто (рутер бира бесплатан модел) или закачите одређени.","anthropicBaseUrl":"База URL","anthropicAuth":"Аутх хеадер","anthropicAuto":"Ауто — рутер бира најбољи модел","anthropicSave":"Сачувај мапирање","anthropicSaved":"Сачувано","anthropicNote":"Anthropic клијенти задржавају своје уграђене називе модела Claude; мапирање изнад одлучује како се свако од њих усмерава у ваш базен.","familyDefault":"Подразумевано","familyOpus":"Опус","familySonnet":"Сонет","familyHaiku":"Хаику","selectPlatform":"Изаберите провајдера","addKey":"Додај кључ","keyAdded":"Кључ је додат","endpointKeysShareModels":"Кључеви исте крајње тачке деле њене моделе.","export":"Извоз","exportAll":"Сви кључеви","exportHealthy":"Само здраво","exportKeys":"Извези кључеве API","exportFormat":"Формат","exportHealthyOnly":"Само здрави кључеви","exportHealthyOnlyDesc":"Изузми кључеве који тренутно не пролазе кроз здравствене провере","exportWillExport":"Извозиће","exportKey":"кључ","exportKeys plural":"кључеви","exporting":"Извоз…","exportDownload":"Преузми","exportSuccess":"Извезени кључеви {count}","adding":"Додавање…","selectProvider":"Изаберите провајдера…","accountId":"ИД налога","label":"Лабел","noKeyNeeded":"(није потребан кључ)","outboundProxy":"Оутбоунд проки","outboundProxyDescription":"Усмерите одлазне ЛЛМ захтеве преко проксија. Подржава SOCKS5, HTTP и HTTPS.","proxyUrl":"Прокси URL","saveProxy":"Сачувај","savingProxy":"Чување…","proxyLoadFailed":"Није могуће учитати подешавања проксија.","proxyMode":"Mode","proxyModeForward":"Forward proxy","proxyModeFetchRelay":"Fetch relay","relayToken":"Relay token","relayTokenConfigured":"Configured. Leave unchanged to keep.","relayTokenPlaceholder":"Relay bearer token (optional)","relayHeadersHint":"The relay reads the destination and its own credential from","addCustom":"Додајте прилагођени модел компатибилан са OpenAI","addCustomDescription":"Усмерите ћаскање, уграђивање, слике или аудио моделе на било коју крајњу тачку компатибилну са OpenAI. Кључ API је опциони за локалне сервере.","customType":"Тип","customTypeChat":"Ћаскање","customTypeEmbedding":"Ембеддинг","customTypeImage":"Слика","customTypeAudio":"Аудио","customTypeTranscription":"Transcription","customBaseUrl":"База URL","customModels":"Модели","customModel":"Модел","customDisplayName":"Име за приказ","customDisplayNamePerModel":"по моделу","customDisplayNameOptional":"опционо","customFamily":"Породица","customFamilyPlaceholder":"подразумевано је на ИД модела","customApiKey":"Кључ API","customCapabilities":"Могућности","addModel":"Додајте модел","modelAdded":"Модел је додат","addModels":"Додајте моделе {count}","addEmbeddingModel":"Додајте уграђивање","addImageModel":"Додајте модел слике","addAudioModel":"Додајте аудио модел","addTranscriptionModel":"Add transcription model","addingCustom":"Додавање…","discoverModels":"Преузми моделе","probeNow":"Тестирај крајњу тачку","probeConfirm":"Послати до 3 тест захтева?","probeCapabilities":"закључивање: {reasoning} · алати: {tools}","probeCapYes":"да","probeCapNo":"не","probeCapUnknown":"непознато","probeSuccess":"{model} тестиран за {latency} ms","probeFailed":"Тест није успео: {reason}","discoverTitle":"Модели на овој крајњој тачки","discoverHint":"Изабери моделе за регистрацију. Већ додати остају закључани.","discoverEmpty":"Ова крајња тачка није вратила ниједан модел.","discoverAlreadyAdded":"Додато","discoverSelectAll":"Изабери све","modelsAdded":"Додато модела: {count}","getApiKey":"Набавите кључ API","deleteKeyConfirm":"Избрисати овај кључ? Ово се не може поништити.","checkAll":"Проверите све","checking":"Проверава се…","editLabel":"Уреди ознаку","saveLabel":"Сачувај етикету","unifiedKeyDescBefore":"Користите ово као свој OpenAI","unifiedKeyDescAfter":"; потврђује аутентичност захтева овом проксију.","serverUnreachableBefore":"Није могуће приступити укљученом серверу","serverUnreachableAfter":". Уверите се да је бацкенд покренут. нпм рун дев покреће оба, а серверске евиденције штампају под префиксом сервера.","paneProviderKey":"Кључ провајдера","paneImportFile":"Увези датотеку","paneCustomEndpoint":"Прилагођена крајња тачка","platform":"Платформа","hideAdded":"Сакриј додате добављаче","apiToken":"API токен","keyOptionalPlaceholder":"Опционо","bearerTokenPlaceholder":"Токен носиоца","pasteKeyPlaceholder":"налепите кључ овде","pasteSeveral":"Налепи више","keyOptionalHint":"Опционо: оставите празно за анонимни бесплатни ниво (ограничење по IP адреси) или налепите сопствени кључ да бисте користили свој налог.","enable":"Омогући","noProviderKeys":"Још нема кључева добављача. Додајте један изнад да бисте започели рутирање.","filterPlaceholder":"Филтрирајте добављаче или кључеве","filterAll":"Све","filterHealthy":"Здраво","filterIssues":"Проблеми","filterDisabled":"Онемогућено","noFilterMatch":"Ниједан добављач не одговара вашим филтерима.","providerCountSummary":"{providers} провајдери · {keys} кључеви","summaryHealthy":"{count} здрав","summaryIssueOne":"{count} проблем","summaryIssueOther":"Проблеми са {count}","providerActions":"Акције провајдера","routeViaProxy":"Рута преко проксија","checkNow":"Проверите сада","syncModels":"Sync models with upstream","syncModelsResult":"Model list synced: {added} added, {total} live","syncModelsFailed":"Model sync failed: {reason}","syncAllModels":"Sync all providers","syncAllPending":"Syncing…","syncAllResult":"Synced {count} provider(s): {registered} model(s) registered","syncAllFailed":"Sync all failed: {reason}","syncAllNoChanges":"All provider rosters are already up to date","syncAllDialogTitle":"Sync Results","syncAllDialogSummary":"Changes detected in {changed} of {total} providers","syncAllNew":"+{count} new","syncAllUpdated":"{count} updated","syncAllRetired":"{count} retired","syncAllNewModels":"New models","syncAllUpdatedModels":"Updated models","syncAllRetiredModels":"Retired models","syncAllDialogClose":"Done","proxyEnvHintBefore":"Такође се може конфигурисати преко","proxyEnvHintAfter":"варијабла окружења (има предност). Оставите празно да бисте онемогућили. Примери:","importKeys":"Увезите кључеве добављача","importKeysDescription":"Отпремите .env, JSON, JSONC, CSV, Markdown или текстуалне датотеке.","importFiles":"Фајлови","importFileCount":"{count} изабрано","previewFiles":"Преглед","previewing":"Прегледа се…","selected":"Одабрано","provider":"Провајдер","keyName":"Кључно име","keyValue":"Кључна вредност","chooseProvider":"Изаберите провајдера","noPreviewKeys":"Нису пронађени кључеви у тим датотекама.","skippedItems":"Прескочено:","moreItems":"{count} више","importSelected":"Увези {count}","importing":"Увоз…","noImportSelection":"Изаберите најмање један ред са добављачем.","duplicate":"Дупликат","duplicatesFound":"{count} дупликати су откривени — већ постоје и биће прескочени.","importResult":"Импортед {imported}; неуспешно {failed}.","importModelCount":"+{count} модела","importResultWithModels":"Импортед {imported}; регистровано {models} модела; неуспешно {failed}.","confirmRemove":"Потврдите?","quotaSignalsTitle":"Квотни сигнали","quotaSignalsEmptyTitle":"Још нема запажања квота","quotaSignalsEmptyDesc":"Ово се попуњава након што добављачи врате заглавља ограничења брзине, грешке квоте или сигнале за валидацију.","quotaKeyRef":"кључ #{id}","quotaPoolRef":"базен {pool}","quotaLimit":"Лимит","quotaRemaining":"Преостало","quotaReset":"Ресетуј","quotaObserved":"Посматрано","tabAgents":"Агенти","familyGeminiPro":"Gemini Pro","familyGeminiFlash":"Gemini Flash","familyGeminiFlashLite":"Gemini Flash-Lite","geminiTitle":"Мапирање Gemini модела","geminiDesc":"Мапирајте називе Gemini Pro, Flash и Flash-Lite на Auto или одређени модел из каталога.","compatibilityTitle":"Компатибилност агената","compatibilityDesc":"Управљајте опционим површинама компатибилности и откривањем модела за Claude Code.","ollamaMode":"Ollama емулација","ollamaModeHint":"Отворени loopback никада не прихвата неаутентификовани LAN саобраћај.","ollamaOff":"Искључено","ollamaLoopback":"Отворено на loopback-у","ollamaKeyRequired":"Потребан је API кључ","claudeAliases":"Алијаси за откривање Claude Code-а","claudeAliasesHint":"Изложите claude/<model> алијасе како би бирач модела мрежног пролаза могао да прикаже каталог.","mcpServer":"MCP сервер","mcpServerHint":"Излаже крајњу тачку /mcp агентским клијентима. Нове инсталације почињу искључене.","urlTokensTitle":"Опозиви URL токени","urlTokensDesc":"Само за клијенте без заглавља. URL токени могу да процуре у историју и логове, па их опозовите када више нису потребни.","urlTokenLabel":"Ознака токена","createUrlToken":"Направи токен","urlTokenOnce":"Копирајте овај токен одмах. Неће бити поново приказан.","revoked":"Опозван","revoke":"Опозови","modelScope":"Опсег модела","modelScopeDesc":"Ограничите овај кључ на одређене ID-еве модела. За сваки други модел рутер прескаче овај кључ.","modelScopeAdd":"Унесите ID модела и притисните Enter","modelScopeEmpty":"Опсег није постављен — овај кључ служи све моделе свог провајдера.","modelScopeClear":"Очисти опсег","modelScopeBadgeOne":"ограничен · 1 модел","modelScopeBadgeOther":"ограничен · {count} модела","modelPicker":{"title":"За које се моделе користи овај кључ?","hint":"Ваш {provider} кључ је додат и тренутно опслужује све моделе испод. Одзначите оне које овај кључ не сме да користи — рутер ће га за њих прескочити.","count":"Изабрано {selected} од {total}","allNote":"Изабрано је све — ништа се не чува, а модели који се касније додају у каталог такође ће користити овај кључ.","subsetNote":"Овај кључ ће бити ограничен на изабране моделе. То можете касније променити у реду кључа.","skip":"Не сада","scopedOne":"Кључ је ограничен на 1 модел","scopedOther":"Кључ је ограничен на {count} модела","allSaved":"Key serves every catalog model"},"cpTitle":"Профили клијената","cpDesc":"API кључеви по клијенту, сваки са системским промптом који сервер увек примењује.","cpEmpty":"Још нема профила клијената.","cpNameLabel":"Назив","cpNamePlaceholder":"нпр. Бот за подршку","cpPromptLabel":"Системски промпт (опционо)","cpPromptPlaceholder":"Упутства која сервер додаје пре сваког захтева овим кључем.","cpCreate":"Направи профил","cpRotate":"Ротирај кључ","cpKeyOnce":"Копирајте овај кључ одмах — неће бити поново приказан.","cpEnabledAria":"Профил омогућен","selectKey":"Изабери овај кључ","bulkSelected":"{count} изабрано","bulkEnable":"Омогући све","bulkDisable":"Онемогући све","bulkDelete":"Избриши све","bulkDeleteConfirm":"Избрисати {count}?","bulkResult":"Ажурирано {done}; неуспешно {failed}.","bulkDeleteResult":"Избрисано {done}; неуспешно {failed}.","testProxy":"Test","testingProxy":"Testing…","proxyTestOk":"Proxy works — {ms}ms round trip","proxyTestFail":"Proxy failed: {reason}","editKey":"Измени кључ","editPlatformLocked":"Добављач и крајњу тачку није могуће променити након стварања.","editCredentialHint":"Оставите празно да бисте задржали тренутни кључ.","editCredentialPartsRequired":"Унесите и ID налога и API токен.","editModels":"Измени моделе","editModelsHint":"Choose which catalog models this key may serve. Select everything to clear the scope so future catalog models use it too.","editModelsCustomHint":"Choose which registered endpoint models this key may serve. Select everything to clear the scope.","editModelsSync":"Check catalog updates","editModelsSyncing":"Checking…","editModelsSynced":"Model catalog checked","outlookUnavailable":"Unavailable","outlookNoForecasts":"Forecast unavailable. More recent traffic or reliable quota readings are needed.","outlookCoverage":"Forecasts available for {count} of {total} pools.","outlookTraffic":"{count} successful requests through this instance in the last {minutes} minutes.","outlookMinimumTraffic":"An exhaustion forecast needs at least {count} successful requests within {minutes} minutes.","outlookNotReportedHint":"The provider has not reported a usable request balance and limit. Local usage is shown; remaining quota is unavailable.","outlookMissingResetHint":"The provider did not report a valid reset time. Remaining quota cannot support an exhaustion forecast.","outlookConfidenceHint":"This balance is not reliable enough for an exhaustion forecast.","outlookObserved":"Balance observed: {time}","outlookUnavailablePools":"Unavailable quota pools ({count})","outlookTitle":"Quota outlook","outlookInsufficient":"Not enough data","outlookLowBalance":"Low balance","outlookRunningLow":"Running low soon","outlookStale":"Needs fresh data","outlookUnknown":"Unknown","outlookWithinQuota":"Within quota","outlookResetsFirst":"Not before reset","outlookExhausted":"Already exhausted","outlookLastReported":"requests last reported","outlookRequestsLeft":"requests left","outlookNotReported":"Not reported","outlookRate":"Recent rate","outlookRateValue":"{count} req/min","outlookRunsOut":"May run out","outlookStaleHint":"This balance is old or its window has expired. A fresh provider reading is needed.","outlookError":"Could not load quota forecasts. Raw observations are still available below.","outlookRetry":"Retry","outlookAttention":"Quota pools needing attention: {count}","outlookNoWarnings":"No forecast warnings. Pools with insufficient data may still be limited.","outlookHint":"Rates count successful requests through this instance only, not usage elsewhere. Forecasts require recent provider balances and reported resets. Warnings appear below 20% remaining or when quota may run out within two hours, before reset.","outlookRaw":"Raw quota observations","addCustomModel":"Додај прилагођени модел","modelId":"ИД модела","modelIdRequired":"ИД модела је обавезан","modelDisplayName":"Приказано име","modelContextWindow":"Прозор контекста (токени)","modelRateLimits":"Ограничења брзине (опционо)","modelSupportsTools":"Подржава позивање алата","modelSupportsToolsHint":"Омогућите ако овај модел може позивати функције и алате","modelSupportsVision":"Подржава визуелне уносе","modelSupportsVisionHint":"Омогућите ако овај модел прихвата слике као улаз","createModel":"Креирај модел","modelAddedSuccess":"Прилагођени модел је успешно додат","modelAddFailed":"Додавање прилагођеног модела није успело","testModel":"Тестирај","testingModel":"Тестирање…","testPassedShort":"Прошао","testFailedShort":"Пао","testPassed":"Тест модела је успео за {latency}ms","testFailed":"Тест модела није успео","testThrottled":"Сачекајте {seconds}с пре поновног тестирања овог модела.","noModelsForProvider":"Нема конфигурисаних модела за овог пружаоца.","testModels":"Testiraj modele","syncAllCatalog":"Catalog: +{inserted} added, ~{updated} updated, -{removed} removed","requestCapLabel":"Request cap","tokenCapLabel":"Token cap","budgetPeriodLabel":"Budget period","budgetPeriodDaily":"Daily","budgetPeriodWeekly":"Weekly","budgetPeriodMonthly":"Monthly","budgetPeriodAuto":"Auto (follow provider)","autoResolvedDaily":"Detected provider cycle: daily","autoResolvedMonthly":"Detected provider cycle: monthly","autoResolvedFallback":"Provider cycle unknown, defaulting to monthly","capUnlimitedPlaceholder":"Неограничено","capEditHint":"Caps reset at the next period boundary, 00:00 UTC. Leave blank for unlimited.","monthlyUsageLine":"{requests} захтева, {tokens} токена овог месеца","monthlyUsageRequests":"{requests} requests","monthlyUsageTokens":"{tokens} tokens","monthlyUsageRequestsRelative":"{used} / {cap} ({remaining} left) requests","monthlyUsageTokensRelative":"{used} / {cap} ({remaining} left) tokens","monthlyUsageReset":"reset {date}"}`),backups:{title:`Backups`,description:`Save the routing data to a .sql file beside the database, and restore it later.`,excludedNote:`A backup carries your providers, models, routing settings and request history. Accounts, sessions and URL tokens are never included, so a dump holds no password hashes or login tokens and restoring one cannot log you out. Provider keys stay encrypted with this server's ENCRYPTION_KEY: a backup can only be restored on a server that still holds that key.`,selectHint:`Back up everything, or pick the tables you need.`,selectAll:`Select all`,deselectAll:`Clear`,fullBackup:`Full backup`,backupSelected:`Back up selected ({count})`,created:`Backup written to {filename}`,list:`Backups on disk`,empty:`No backups yet`,full:`All tables`,tablesCount:`{count} tables`,manual:`Manual`,scheduled:`Scheduled`,preRestore:`Pre-restore`,download:`Download`,restore:`Restore`,confirmRestore:`Replace data?`,restored:`Restored. The previous data was saved as {filename}.`,delete:`Delete backup`,prevPage:`Previous`,nextPage:`Next`,autoTitle:`Automatic backups`,autoHint:`The server writes a full backup on this cadence.`,time:`Time (HH:mm)`,intervalDays:`Every N days`,path:`Folder`,pathPlaceholder:`backups`,pathHint:`Relative to the database directory. Backups cannot be written outside it.`,save:`Save schedule`,saved:`Saved`},status:{healthy:`здраво`,rateLimited:`ограничено на стопу`,invalid:`неважећим`,error:`грешка`,unchecked:`непроверено`},analytics:{title:`Аналитика`,description:`Обим захтева, кашњење, коришћење токена и грешке.`,range24h:`24х`,range7d:`7д`,range30d:`30д`,range90d:`90д`,requests:`Захтеви`,successRate:`Стопа успеха`,inputTokens:`Улазни токени`,outputTokens:`Излазни токени`,avgLatency:`Прос. кашњење`,p95Latency:`П95 латенција`,avgTtft:`Авг TTFT`,estSavings:`Проц. штедње`,requestsByProvider:`Захтеви провајдера`,avgLatencyByProvider:`Просечно кашњење по провајдеру`,ttftByProvider:`Време до првог токена од провајдера`,ttftEmpty:`Још нема времена за снимање првог токена.`,requestsOverTime:`Захтеви током времена`,tokensOverTime:`Токени током времена`,byModel:`По моделу`,byPlatform:`По платформи`,errors:`Грешке`,errorDistribution:`Дистрибуција грешака`,pinnedRequests:`Закачени захтеви`,pinnedHonored:`Почаствован`,fallbackAttempts:`Резервни покушаји`,savingsHint:"Заправо сте уштедели ${actual} током последњег {range}. То је оно што би исти токени коштали на плаћеним АПИ-јима, по цени по моделу. Приказани број пројектује ваш темпо од последњег {span} података до пуних 30 дана.",savingsHintExact:"Заправо сте уштедели ${actual} током последњег {range}. То је оно што би исти токени коштали на плаћеним АПИ-јима, по цени по моделу. Приказани број је ваш стварни укупан број од 30 дана.",requestsHintPinned:`{pinned} ових захтева је закачио одређени модел по имену. {honored} је служио закачени модел; {failed} није успео да пређе на други. Остали су аутоматски рутирани.`,requestsHintAuto:`Сви захтеви у овом периоду су аутоматски преусмерени; ниједан клијент није закачио одређени модел по имену.`,requestsHintTypes:`{chat} ћаскање и {embedding} захтеви за уграђивање.`,rangeLabel24h:`24 сата`,rangeLabel7d:`7 дана`,rangeLabel30d:`30 дана`,rangeLabel90d:`90 дана`,spanDays:`{count} дана`,spanHours:`{count} сати`,latencyMs:`Латенција (мс)`,latency:`Латенција`,pinned:`Закачен`,inTokens:`У жетонима`,outTokens:`Оут токенс`,saved:`Сачувано`,message:`Порука`,time:`Време`,perModelBreakdown:`Распад по моделу`,usageByKey:`Употреба по кључу`,keyColumn:`Кључ`,keyLabelFallback:`Кључ #{id}`,errorsByProvider:`Грешке по провајдеру`,recentErrors:`Недавне грешке`,noErrors:`Нема грешака`,recentCalls:`Недавни позиви`,clientIp:`ИП клијента`,clientAgent:`Клијентска апликација`,requestedModelHint:`Захтевано {model}, сервирано резервним путем`,attempts:`Покушаји`,filterAll:`Све`,filterCanceled:`Отказани`,providerBreakdown:`Анализа по добављачима`,tokensPerSec:`Ток/с`,allProviders:`Сви провајдери`,requestDetailTitle:`Захтев #{id}`,failoverLadder:`Фаиловер мердер`,failoverLadderHint:`Сваки скок који је овај захтев прошао кроз резервни ланац, по реду.`,noAttemptTrace:`Није забележен траг покушаја за овај захтев.`,keyOrdinal:`кључ #{n}`,keyBadge:`Кључ #{n}`,attemptTimingHint:`Почетак одступања од почетка захтева · трајање покушаја`,requestedModel:`Тражени модел`,ttft:`TTFT`,requestsByAgent:`Захтеви по агенту`,sortBy:`Сортирај по: {column}`,sortHint:`Сортирање важи за {count} учитаних редова`,cacheHitRate:`Стопа погодака кеша`,cacheSavedTokens:`Уштеђено {tokens} токена`,cacheHitRateHint:`{hits} погодака наспрам {misses} промашаја од покретања сервера · избегнуто {requests} позива провајдеру`},logs:{title:`Логови`,description:`Лог сервера уживо. Нови уноси стижу док је страница отворена.`,pause:`Паузирај`,resume:`Настави`,clear:`Обриши логове`,cleared:`Лог сервера обрисан`,levelFilter:`Нивои логовања`,levels:{debug:`Дебаг`,info:`Инфо`,warn:`Упозорење`,error:`Грешка`},countsHint:`Бројеви се односе на цео бафер лога на серверу, а не само на уносе који одговарају овим филтерима.`,searchPlaceholder:`Претражите поруке лога…`,jumpToLatest:`Скочи на најновије`,showMore:`Прикажи више`,showLess:`Прикажи мање`,buffered:`Приказано {count} од највише {max} сачуваних уноса`,emptyTitle:`Још нема уноса у логу`,emptyDescription:`Уноси се појављују овде чим их сервер упише. Проширите филтере нивоа, провајдера или претраге ако сте очекивали излаз.`,noLevelsTitle:`Није изабран ниједан ниво`,noLevelsDescription:`Укључите бар један ниво да бисте видели садржај лога.`,loadFailed:`Није могуће учитати лог сервера.`},playground:{title:`Игралиште`,description:`Пошаљите завршетак ћаскања преко рутера и погледајте који провајдер га опслужује.`,autoModel:`Ауто (резервни ланац)`,fusionModel:`Фузија (синтеза више модела)`,selectModel:`Изаберите модел`,searchModels:`Тражи моделе…`,noModelsFound:`Није пронађен ниједан модел`,send:`Пошаљи`,sending:`Шаље се…`,clear:`Јасно`,inputPlaceholder:`Унесите поруку... (⏎ за слање, ⇧⏎ за нови ред)`,emptyTitle:`Пошаљите поруку да бисте започели.`,emptyDescription:`Коришћењем {model}. Замените моделе у селектору изнад.`,noModels:`Још нема модела. Додајте кључ API на страницу Кључеви да бисте попунили ову листу.`,copyReply:`Копирај одговор`,fallback:`резервни`,fallbacks:`резерве`,fusionPanel:`Панел`,fusionJudge:`Судија`,fusionTrace:`Одговори модела {count}`,fusionFailed:`нема одговора`,fusionJudgeSynth:`синтетизовао коначан одговор`,errorPrefix:`Грешка:`,systemPromptLabel:`Системски промпт`,systemPromptPlaceholder:`Опционо. Послато као системска порука пре вашег ћаскања.`,showSettings:`Прикажи подешавања`,hideSettings:`Сакриј подешавања`,samplingHeading:`Узорковање`,samplingHelp:`Када је искључено, примењује се подразумевана вредност самог провајдера. Шаљу се само контроле које укључите.`,samplingDefault:`Подразумевано`,temperature:`Температура`,topP:`Top P`,maxTokens:`Макс. токена`,errorTitle:`Захтев није успео`,attach:`Приложи датотеке`,attachTooMany:`По поруци можете приложити највише {count} датотека.`,attachTooLarge:`Датотека {name} је превелика. Ограничење је {max}.`,attachUnsupported:`Датотека {name} није подржана. Приложите слике (PNG, JPEG, WebP, GIF) или текстуалне датотеке (TXT, MD, CSV, JSON, LOG).`,attachFailed:`Није могуће прочитати датотеку {name}.`,noVisionBadge:`Без слика`,visionWarning:`Модел {model} не прихвата слике. Изаберите модел са визијом или Ауто.`,dictate:`Диктирај`,dictationStop:`Заустави снимање`,dictationTranscribing:`Транскрибовање…`,dictationUnavailable:`Додајте провајдере аудио модела да бисте могли да диктирате.`,dictationModel:`Модел диктирања`,dictationFailed:`Транскрипција није успела: {reason}`,artifactOpen:`Отвори преглед`,artifactPreview:`Преглед`,artifactCode:`Код`,artifactClose:`Затвори преглед`,artifactDownload:`Преузми`,artifactReload:`Поново учитај преглед`,artifactHtml:`HTML страница`,artifactSvg:`SVG слика`,artifactLines:`редова`,artifactResize:`Промени величину прегледа`},playgroundSessions:{heading:`Разговори`,newConversation:`Нови разговор`,showSidebar:`Прикажи разговоре`,hideSidebar:`Сакриј разговоре`,empty:`Још нема сачуваних разговора.`,untitled:`Разговор без назива`,rename:`Преименуј`,renamePlaceholder:`Назив разговора`,messageCount:`{count} порука`,justNow:`управо сада`,minutesAgo:`пре {count} мин`,hoursAgo:`пре {count} ч`,daysAgo:`пре {count} д`,loadFailed:`Није могуће отворити тај разговор.`,renameFailed:`Није могуће преименовати тај разговор.`,deleteFailed:`Није могуће избрисати тај разговор.`,actions:`Радње разговора`,newChat:`Нови разговор`},embeddings:{title:`Модели`,description:`Уграђивање не успева само у оквиру породице: исти модел који користи други провајдер. Вектори са различитих модела су некомпатибилни, тако да рутер никада не мења моделе на вама.`,defaultBadge:`Подразумевано · ауто`,makeDefault:`Постави као подразумевано`,moveUp:`Помери се горе`,moveDown:`Помери се доле`,usageToday:`{count} захтева данас`,usageMonth:`{count} ток овог месеца`,autoDescription:`model: "auto" на POST /v1/embeddings рутама до подразумеване породице. Именовање породице (или ИД модела добављача) везује ту породицу; провајдери унутар њега се покушавају по реду.`,unsavedChanges:`Несачуване промене`,saveChanges:`Сачувај промене`,savingChanges:`Чување…`,tokMax:`{tokens} ток мак`,emptyTitle:`Још нема модела за уграђивање`,emptyDesc:`Породице за уграђивање се појављују овде када додате кључ добављача који подржава уграђивање.`,dragToReorder:`Превуците да бисте променили редослед добављача`},fusion:{title:`Фусион`,description:`Група модела одговара паралелно, а затим судија синтетише један јачи одговор. Користите га тако што ћете назвати API са моделом "фусион".`,panelSource:`Панел извор`,panelSourceHelp:`Одакле долазе модели панела када захтев не наводи свој сопствени.`,mode:{auto:`аутоматски (резервни ланац)`,autoHelp:`Изаберите разноврстан скуп модела из вашег резервног ланца, рангираних према вашој активној стратегији рутирања.`,explicit:`Експлицитни панел`,explicitHelp:`Увек користите одређене моделе које одаберете у наставку.`},panelModels:`Панел модели`,selectedCount:`Изабрано је {count} од {max}`,noModels:`Још ниједан модел није повезан. Додајте кључ API, а затим омогућите моделе у резервном ланцу.`,panelSize:`Величина панела`,panelSizeHelp:`Колико различитих модела одабрати аутоматски (1–{max}).`,judge:`Судија модел`,judgeHelp:`Модел који синтетише одговоре панела у један. Ауто користи ваш најбоље рангирани доступни модел.`,judgeAuto:`Ауто (доступно најбоље рангирано)`,strategy:`Стратегија`,strategySynthesize:`Синтетизуј — споји панел у један одговор`,strategyBestOf:`Најбоље од — врати најјачи одговор (без позива судије)`,strategySynthesizeShort:`Синтетизуј`,strategyBestOfShort:`Најбоље од`,exposePanel:`Изложите детаље панела`,exposePanelHelp:`Приложите одговор сваког модела и метаподатке судије испод поља к_фусион у одговору.`,howToUse:`Како користити`,howToUseHelp:`Пошаљите нормалан захтев за ћаскање са моделом "фусион". Ова подешавања су подразумевана; сваки захтев их може заменити пољем „фузије“.`,unsavedChanges:`Несачуване промене`,save:`Сачувај`,searchPlaceholder:`Search models…`,providerFilterLabel:`Filter by provider`,providerAll:`All providers`,noMatch:`No models match your search.`},premium:{title:`Премиум`,description:`Каталог модела уживо, на сваком уређају.`,loading:`Учитавање…`,checkForUpdates:`Проверите ажурирања`,syncing:`Синхронизација…`,catalogFeed:`Цаталогуе феед`,liveFeed:`Ливе феед`,monthlySnapshot:`Месечни снимак`,lastChecked:`Последња провера: {when}`,liveDescription:`Нови бесплатни модели, промене квота и исправке необичних ствари стижу овде у року од неколико сати од слања. Апликација аутоматски проверава два пута дневно; ништа да се ради.`,snapshotDescription:`Бесплатан ниво: каталог се освежава са месечног снимка, аутоматски проверава два пута дневно. Премиум ово пребацује на фид уживо, који се ажурира свака 2-3 дана.`,lastSyncProblem:`Последњи проблем са синхронизацијом: {error}`,license:`Лиценца`,planAnnual:`Премиум Аннуал`,planLifetime:`Премиум Лифетиме`,expired:`Истекао`,inactive:`Неактиван`,lifetimeNote:`Доживотна лиценца: никада не истиче.`,renewsOn:`Обнавља се на {date}.`,willNotRenew:`Неће се обновити. Премиум до {date}, а затим се ова инсталација враћа на бесплатни месечни каталог.`,keyInactive:`Овај кључ више није активан. Апликација наставља да ради на бесплатном месечном каталогу.`,manageSubscription:`Управљајте претплатом`,openingPortal:`Отварање…`,removeKey:`Уклоните кључ са овог уређаја`,manageHint:`Управљање претплатом отвара портал за наплату Stripe: откажите, ажурирајте своју картицу или преузмите фактуре. Уклањање кључа само деактивира овај уређај; ваша куповина је нетакнута.`,licenseKey:`Лиценцни кључ`,licenseKeyPlaceholder:`fla_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`,activate:`Активирај`,activating:`Активирање…`,keyHint:`Ваш кључ се налази у е-поруци за куповину и на страници за одјаву. Лост ит?`,recoverKey:`Опоравите га на веб локацији`,upsellTitle:`Иди уживо за 19 долара годишње`,upsellDescription:`Нови бесплатни модели оног тренутка када постоје, уместо 30 дана касније. Један кључ, сваки уређај. Откажите било када; рутер остаје бесплатан заувек.`,goPremium:`Иди Премиум`,bundled:`у пакету`,planGeneric:`Премиум`},languages:{en:`English`,"zh-CN":`中文 (简体)`,es:`Español`,fr:`Français`,"pt-BR":`Português (Brasil)`,it:`Italiano`,hi:`हिन्दी`,ar:`العربية`,bn:`বাংলা`,ru:`Русский`,ur:`اردو`,id:`Bahasa Indonesia`,de:`Deutsch`,ja:`日本語`,sw:`Kiswahili`,mr:`मराठी`,te:`తెలుగు`,tr:`Türkçe`,ta:`தமிழ்`,vi:`Tiếng Việt`,ko:`한국어`,fa:`فارسی`,th:`ไทย`,gu:`ગુજરાતી`,pl:`Polski`,uk:`Українська`,kn:`ಕನ್ನಡ`,ml:`മലയാളം`,or:`ଓଡ଼ିଆ`,my:`မြန်မာဘာသာ`,pa:`ਪੰਜਾਬੀ`,ro:`Română`,nl:`Nederlands`,ms:`Bahasa Melayu`,tl:`Filipino`,ha:`Hausa`,yo:`Yorùbá`,ig:`Igbo`,am:`አማርኛ`,uz:`Oʻzbekcha`,az:`Azərbaycanca`,si:`සිංහල`,ne:`नेपाली`,km:`ខ្មែរ`,el:`Ελληνικά`,cs:`Čeština`,hu:`Magyar`,sv:`Svenska`,he:`עברית`,da:`Dansk`,fi:`Suomi`,no:`Norsk`,sk:`Slovenčina`,bg:`Български`,hr:`Hrvatski`,sr:`Српски`,lt:`Lietuvių`,"zh-TW":`中文 (繁體)`,"pt-PT":`Português (Portugal)`,ka:`ქართული`},errors:{boundaryTitle:`Нешто је пошло по злу`,boundaryDescription:`На контролној табли је дошло до неочекиване грешке. Ваши подаци су безбедни. Покушајте поново или се вратите на страницу модела.`,tryAgain:`Покушајте поново`,goHome:`Назад на моделе`},notFound:{title:`Страница није пронађена`,description:`Ова страница не постоји или је можда премештена.`},setup:{title:`Почетак рада`,subtitle:`Три корака за усмеравање вашег првог захтева.`,progress:`{done} од {total}`,step1Title:`Додајте кључ провајдера`,step1Desc:`Повежите најмање један налог провајдера. Бесплатни кључеви раде.`,step1Cta:`Додајте кључеве`,step2Title:`Пошаљите захтев за тестирање`,step2Desc:`Изаберите било који модел у Плаигроунду и поздравите се.`,step2Cta:`Опен Плаигроунд`,step3Title:`Повежите своју апликацију`,step3Desc:`Користите свој обједињени API кључ са било којим клијентом компатибилним са OpenAI.`,copyKey:`Копирај кључ API`,copyUrl:`Копирај базу URL`,copiedKey:`Кључ API је копиран у међуспремник`,copiedUrl:`База URL је копирана у међуспремник`},palette:{title:`Командна палета`,placeholder:`Претражи странице, моделе, акције…`,empty:`Нема резултата`,groupPages:`Пагес`,groupActions:`Акције`,groupModels:`Модели`,toggleTheme:`Укључите тамни режим`},validation:{required:`Обавезно`,url:`Унесите важећи URL који почиње са хттп:// или хттпс://`,email:`Унесите важећу адресу е-поште`,passwordMin:`Најмање {min} знакова`},agents:{title:`Агенти за кодирање`,description:`Повежите алате за кодирање са једним мрежним пролазом бесплатних модела уз генерисану конфигурацију безбедну за резервне копије.`,apiKey:`API кључ`,quickstartTitle:`Брзи почетак`,quickstart:`Најбржи пут: конфигуришите Claude Code из каталога уживо.`,currentKey:`Тренутни обједињени кључ:`,seenRecently:`Недавно виђен`,setupLabel:`Аутоматско подешавање`,setupHint:`Уместо вас уписује конфигурациону датотеку овог алата, усмерену на овај мрежни пролаз.`,setupGuideHint:`Приказује кораке подешавања овог алата; ниједна датотека се не уписује.`,manualLabel:`Ручно повезивање`,manualHint:`Основни URL и кључ за унос у сопствена подешавања алата.`,endpoint:`Крајња тачка`,documentation:`Документација`,descriptions:{claude:`Anthropic's terminal agent: it plans, edits files, and runs commands in your repo.`,codex:`OpenAI's terminal agent, which runs your task in a local sandbox first.`,cline:`A VS Code extension that asks you to approve every edit and command.`,continue:`A VS Code and JetBrains extension for inline autocomplete and chat while you type.`,aider:`A command-line pair programmer that turns each change into its own git commit.`,opencode:`A provider-agnostic terminal agent with a full-screen text interface.`,goose:`Block's local agent, extended with MCP servers to reach past your code.`,qwen:`A Gemini CLI fork tuned for Qwen models and large repositories.`,roo:`A VS Code extension with switchable modes: architect, coder, debugger.`,kilo:`A VS Code extension merging Roo and Cline, with an orchestrator that splits up work.`,crush:`Charm's terminal agent, written in Go, with one session per project.`,dsh:`DeepSeek's harness, which keeps every provider as a route you can switch between.`,mimo:`Xiaomi's terminal agent, an OpenCode fork that takes any OpenAI-compatible provider.`,cursor:`The AI-first editor; it calls through Cursor's cloud, so it needs a public URL.`,generic:`Anything else that speaks the OpenAI API, set up by hand from a base URL and key.`,atomcode:`AtomGit's terminal agent, written in Rust, that takes any OpenAI-compatible endpoint.`,openclaw:`Увек доступан лични асистент који са вашег рачунара одговара у апликацијама WhatsApp, Telegram, Discord и другим.`,hermes:`Агент компаније Nous Research који сам себе усавршава, са трајном меморијом и вештинама, у терминалу или у чет апликацијама.`,pi:`Минималистички терминалски агент који обликујете сопственим проширењима, вештинама и шаблонима упита.`}},update:{available:`New version available`,whatsNew:`What's new in v{version}`,publishedOn:`Published {date}`,noNotes:`No release notes were published for this version.`,openRelease:`Open release page`,dismissVersion:`Dismiss this version`,dismiss:`Dismiss`},freeTier:{poolsToggle:`Free-tier pools ({count})`,poolsToggleBare:`Free-tier pools`,summary:`{pools} pools · {budget} tokens/mo counted once per pool · {credits} credits-based · {unpublished} unpublished`,pool:`Pool`,models:`Models`,budget:`Monthly budget`,kind:`Kind`,kindDocumented:`Documented`,kindCredits:`Credits`,kindUnpublished:`Unpublished`,remaining:`Remaining`,resetAt:`Resets at`,disabledModels:`({count} off)`,metricTokens:`tokens`,metricRequests:`requests`,metricCredits:`credits`,metricNeurons:`neurons`,metricOther:`units`,empty:`No enabled models with free-tier budget data.`,poolLabel:`{platform} · shared {scope} pool`,poolLabelBare:`{platform} · shared pool`,poolModels:`{count} models`,poolBudget:`{budget}/mo`,poolBudgetTitle:`One monthly allowance for the whole pool, scaled by the {count} usable keys on this platform. Every model listed under it draws from the same budget.`,poolNoQuota:`no published quota`,poolResets:`resets {time}`,independentBudgets:`independent budgets`},chains:{title:`Fallback chains`,description:`Named chains, each callable as auto:<name> in /v1/models.`,count:`{count} chains`,active:`Active`,default:`Default`,activate:`Activate`,activateHint:`Make this the chain the table below edits and the one auto routes through`,deleteHint:`Delete this chain`,deleteConfirm:`Delete chain "{name}"?`,create:`Create`,createPlaceholder:`Chain name`,createFailed:`Could not create the chain.`,nameRules:`Up to 20 characters: letters, digits, hyphens and underscores.`,startEmpty:`Start empty`,startEmptyHint:`Create the chain with no models in it, and keep new catalog models out of it. Unchecked, it starts as a copy of the default chain.`,curated:`Curated`,curatedHint:`New catalog models are not added to this chain automatically.`,renameHint:`Преименуј овај ланац`,renameConfirm:`Преименовати ланац „{oldName}“ у „{name}“? Клијенти који зову auto:{oldName} морају прећи на auto:{name}.`,renamePlaceholder:`Нови назив ланца`,renameFailed:`Није могуће преименовати тај ланац.`},notifications:{catalogAdded:`{count} new models added from catalog`,catalogAddedFrom:`{count} new models added for {provider}`,catalogRemoved:`{count} models removed from catalog`,catalogRemovedFrom:`{count} models removed for {provider}`,catalogUpdated:`{count} models updated from latest catalog`,catalogUpdatedFrom:`{count} models updated for {provider}`,discoverAdded:`{count} new models from provider {provider}`,discoverRemoved:`{count} models removed from provider {provider}`,degraded:`Degraded mode active — only {healthy}/{total} providers healthy ({pct}%)`,updateAvailable:`Update available: v{version}`},routingStrip:{canceled:`Canceled`,title:`Live routing`,mode:`Mode`,processing:`Processing…`,idle:`Waiting for a request…`,failed:`Failed`,afterAttempts:`Success after {n} attempts`,activeCount:`{n} active`}};export{e as default};
@@ -0,0 +1,14 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1254 1254" fill="none" role="img" aria-label="SRouter">
2
+ <!-- SRouter brand mark — SVG geometris bersih (arc + sudut + polyline), bukan trace.
3
+ Regenerasi: temp/build-svg-clean.mjs, verifikasi IoU: temp/verify-clean.mjs -->
4
+ <title>SRouter</title>
5
+ <defs>
6
+ <linearGradient id="srouter-grad-ring" gradientUnits="userSpaceOnUse" x1="968.16" y1="-261.46" x2="-113.18" y2="30.56"><stop offset="0" stop-color="#046CD6"/><stop offset="1" stop-color="#23CBEF"/></linearGradient>
7
+ <linearGradient id="srouter-grad-dot" gradientUnits="userSpaceOnUse" x1="503.69" y1="-176.81" x2="289.68" y2="-101.69"><stop offset="0" stop-color="#14AFE6"/><stop offset="1" stop-color="#1BBBEB"/></linearGradient>
8
+ <linearGradient id="srouter-grad-s" gradientUnits="userSpaceOnUse" x1="95.5" y1="397.3" x2="263.15" y2="1094.76"><stop offset="0" stop-color="#FF8706"/><stop offset="1" stop-color="#F90E01"/></linearGradient>
9
+ </defs>
10
+ <path d="M 633.4 49.3 L 632.7 134.8 L 637 134.9 L 679.8 136.3 L 722.3 142.2 L 747.1 149.4 L 772 155.5 L 808.4 168.2 L 832.1 178.3 L 869.8 198.6 L 884 208.2 L 928.4 241.2 L 965.1 276.6 L 1001.9 317.3 L 1028.4 355.4 L 1037.3 369.6 L 1056.5 407 L 1071.1 441.8 L 1085.9 485.3 L 1091.9 509.6 L 1102.9 566.8 L 1105 583.4 L 1106.8 637.6 L 1106.4 654.3 L 1104.3 679.3 L 1100.7 708.3 L 1089.5 761.6 L 1074.9 805.4 L 1062.2 836.5 L 1045.5 870.6 L 1023.6 906.7 L 999.1 941.4 L 964.9 979.4 L 924.3 1017.3 L 894.2 1041.7 L 879.9 1051.5 L 865.1 1060.3 L 826.9 1080.8 L 783 1099.7 L 754 1109.2 L 703 1121.3 L 650.8 1127 L 624.5 1127.3 L 576.6 1122.9 L 542.2 1116.8 L 491.7 1103.4 L 463.1 1093.3 L 427.7 1077.1 L 386.2 1054.2 L 347.4 1027.3 L 314.4 1000.1 L 287.1 973.2 L 267.1 951.1 L 241.6 917.2 L 209.5 867.5 L 203.5 856.3 L 191.2 829.5 L 171.6 778.4 L 159.2 733.9 L 152.7 692.4 L 150.1 667.4 L 148.2 633.9 L 148.2 621.3 L 151.7 571.2 L 159.3 530 L 167.2 497.5 L 181.2 458.2 L 199.9 416.4 L 220.3 380.2 L 241.4 349.3 L 259.3 326.4 L 275.8 307.9 L 282.1 301 L 336.7 352.1 L 336.7 189.9 L 163.4 189.9 L 219.2 242.1 L 211.7 250.2 L 198.9 265 L 151.1 327.2 L 121 378 L 102.5 418.3 L 85.9 464.8 L 71.7 512.2 L 65.9 546.4 L 60.8 610.7 L 60.3 630.5 L 61.2 655.3 L 69 734.3 L 72.7 753.9 L 85.9 801.9 L 92.1 820.8 L 102.9 848.7 L 120.6 890 L 139.6 925.2 L 167.1 967.1 L 194.6 1002.9 L 233 1042.6 L 274.4 1079.1 L 327 1118 L 344.1 1128.6 L 398 1156.3 L 449.9 1176.2 L 493.4 1189.8 L 523.2 1195.7 L 583.3 1204.5 L 639 1205.2 L 664.3 1204.9 L 684.6 1203.6 L 744.7 1194.6 L 769.5 1189.1 L 808.4 1177.9 L 841.5 1165 L 860 1156.8 L 891.7 1141.1 L 939.3 1112.5 L 980.1 1082.9 L 1021.3 1045.9 L 1053.2 1014 L 1066.1 998.6 L 1100.9 949.6 L 1126.4 906.6 L 1135.7 889 L 1155.5 843.3 L 1173 791.5 L 1179.9 762.5 L 1187.3 723.5 L 1192.2 689.2 L 1194.2 669.5 L 1195.4 639.9 L 1193.4 580.6 L 1187.6 531.5 L 1180.5 492.5 L 1172.3 458.8 L 1158.5 416.3 L 1149.8 393 L 1133.6 356.5 L 1109.3 312.8 L 1085 274.7 L 1066.2 251.3 L 1035.8 217.7 L 1000.4 181.8 L 985.5 168.2 L 931 131.4 L 905 115.8 L 878.1 101.8 L 831.6 81.7 L 797.8 71 L 778.2 66 L 728.6 56.6 L 698.7 52.2 L 683.7 50.8 L 663.6 49.7 L 638.4 49.4 Z" fill="url(#srouter-grad-ring)"/>
11
+ <ellipse cx="555.03" cy="104.87" rx="49.14" ry="50.7" fill="url(#srouter-grad-dot)"/>
12
+ <ellipse cx="425.35" cy="149.95" rx="49.55" ry="50.1" fill="url(#srouter-grad-dot)"/>
13
+ <path d="M 617.3 267.5 L 600.2 268.2 L 578.4 273.4 L 568.4 274.4 L 558.7 277.7 L 551.6 278.6 L 546.7 281.7 L 538.2 283.2 L 531.1 287.1 L 524.3 289.3 L 498.2 302.2 L 482.7 313.7 L 477.6 313.7 L 472.6 321.6 L 468.8 325.8 L 459.9 331.9 L 455.4 338.4 L 444.9 347.6 L 444.1 349.3 L 441.9 349.1 L 440 356 L 436.6 358 L 434.7 363.7 L 430.5 368.5 L 421.8 382.3 L 421.4 387.5 L 418 393 L 416.9 398 L 412.2 405.2 L 411 415 L 407.2 427.2 L 405.8 440.4 L 404.4 439.2 L 404 441 L 404.6 454.9 L 404 467 L 406.4 491.6 L 412.4 517.6 L 418.1 527.9 L 418.8 534.3 L 422.7 538.3 L 424.7 543.3 L 433 556 L 433.5 559.7 L 435.2 560.8 L 435.8 563.4 L 440 566.2 L 448.1 576.6 L 456.7 585.3 L 457.6 590 L 461.8 590.2 L 467.4 595.6 L 472.4 598.6 L 477.2 603.9 L 480.3 604 L 488.1 608.9 L 491 615.4 L 495 614.5 L 497.7 615.3 L 505.2 619.6 L 513.2 625.8 L 529.2 632.8 L 549 644 L 550.1 645.2 L 549 647.4 L 552.7 646 L 560.7 649.3 L 576.6 658.2 L 579.9 660.9 L 586.2 662.9 L 590.2 666.8 L 596.4 669.5 L 597.9 671.4 L 605.6 673.4 L 607.7 675.2 L 608.8 678.2 L 618 680 L 623.2 683.8 L 630 686 L 636.2 691.8 L 641.3 693 L 653.6 698.7 L 656.6 701.4 L 663.7 704.3 L 669.8 709.2 L 676.4 710.8 L 686.1 717.9 L 693.8 721.2 L 704.8 729.9 L 708.2 730.9 L 716.6 740.4 L 721.6 744.4 L 729 753 L 730.1 755.6 L 729.8 758.2 L 733.8 760.2 L 735.3 764.2 L 734.7 766.9 L 738.6 769.4 L 740.4 777.6 L 744.1 781.8 L 744.2 787.4 L 745.8 786.6 L 746.3 803.5 L 747.8 804.6 L 748 810 L 742.4 837.4 L 738.5 845 L 736 847 L 734 854 L 729.1 859.2 L 728.1 862.3 L 725.2 863.4 L 718.7 872.7 L 714.1 873.5 L 713.6 875.7 L 708.2 880 L 706.5 882.6 L 700.4 885.4 L 696.6 889.6 L 690.2 892.2 L 686.3 895.3 L 674.3 898.3 L 669.5 901.2 L 659 903 L 651 906 L 641.1 905.4 L 632 907 L 619 907 L 600.2 904.8 L 593.8 902.5 L 587.4 902.6 L 572.4 897.6 L 564.4 892.6 L 558.2 890.8 L 545.8 883.9 L 539.2 877.8 L 537.4 872.6 L 531.8 871.1 L 526.4 866.6 L 523.8 861.2 L 519.3 856.7 L 513.1 847.9 L 506.4 832.6 L 505.4 826.3 L 502.5 817.8 L 503 812 L 502 804 L 502.8 800.8 L 506.8 798.4 L 503.8 795.9 L 501.4 797.8 L 497.2 788.8 L 495.4 782 L 484.7 771.3 L 481.2 769.6 L 480.7 768 L 478.7 766.3 L 468.7 762.3 L 461.2 762.7 L 457 759.3 L 450.6 762.6 L 437.9 763.9 L 435.6 766.8 L 426.3 771.3 L 414.1 784.1 L 410.6 790 L 408.5 789.1 L 409.5 793.7 L 404.1 810.1 L 404.6 821 L 403.6 823.2 L 404.6 825.9 L 403.4 829.1 L 404.4 831.2 L 403.4 833.9 L 405.8 844.2 L 407.3 857.7 L 408.6 861.1 L 407.4 862.4 L 407.6 864.4 L 411.5 871.5 L 412.9 878.1 L 420 892 L 421.5 898.5 L 425.7 904.3 L 428.2 910.8 L 431 913 L 434.2 918.8 L 437.2 921.5 L 437 924 L 439.8 925.3 L 448.3 936.7 L 455.6 943.4 L 457.4 948.2 L 457 950.4 L 459.6 949.9 L 467.4 954.6 L 485.4 969.6 L 493.4 975.1 L 501.5 978.4 L 502 979.2 L 500.5 981.2 L 501 982.2 L 508.9 983 L 509.8 983.6 L 508.6 985.2 L 509.4 986.6 L 515.5 986.3 L 518.1 988 L 526.4 990.6 L 529.2 992.8 L 533.9 994.5 L 533.7 996.9 L 534.4 997.6 L 541.6 997.4 L 546.2 998.7 L 549.2 1001.8 L 555.6 1001.4 L 585.2 1007.8 L 608.9 1009.1 L 619 1011 L 629 1011 L 664.8 1007.8 L 676.8 1005.8 L 709.6 997.6 L 741 983 L 746.8 982.6 L 747.3 980.2 L 749.4 978.4 L 758.6 972.6 L 763.4 968.4 L 771.4 963.6 L 774 963.4 L 774 961.4 L 776.5 958 L 779 956.9 L 784.7 951.7 L 790.2 949.2 L 791.4 945.4 L 799.5 938 L 801.3 934.3 L 809.9 923.6 L 810.1 921.8 L 815.1 917.2 L 816.2 912.2 L 820 909 L 825.2 897.2 L 828.4 891.2 L 829.8 890.4 L 831.6 881.6 L 836.1 875.6 L 837.4 865.4 L 840.9 858.9 L 842.3 849.2 L 845.6 838.6 L 845.3 832.2 L 847.7 820.8 L 847 810 L 848 799 L 845.1 767.9 L 836.3 736.2 L 834.4 730.6 L 830.6 724.2 L 827.7 715.3 L 823.6 709.4 L 820.8 702.5 L 815.8 694.4 L 810.4 688.6 L 806.7 682.3 L 801.4 677.6 L 799.6 673.4 L 796.4 670.6 L 794.8 666.2 L 784.2 659.7 L 773.4 650.6 L 765 645.5 L 759.6 640.9 L 753.7 638.3 L 746.4 630.5 L 742.3 630.2 L 729.4 623.6 L 727.9 621.9 L 730.9 621.1 L 730.4 619.5 L 718.9 617 L 713 613 L 706.2 610.8 L 702.6 607.4 L 688.6 600.5 L 686.1 595.9 L 681.3 596.4 L 676.4 594.6 L 668.8 589.2 L 656.8 584.2 L 651.1 579.9 L 640 575 L 632.4 569.9 L 623.4 566.6 L 619.2 562.8 L 610.4 559.6 L 605.8 556.2 L 599.5 553.5 L 595.5 549.5 L 587.8 547.1 L 585.4 544.2 L 578.6 542.4 L 575 539 L 569.8 537.2 L 560.2 530.8 L 554.4 528.6 L 549.6 524.4 L 539.5 518.6 L 537.5 515.4 L 534 513.5 L 531.7 508.3 L 526.4 505.7 L 523.2 499.8 L 520.1 496.9 L 512.9 483.1 L 509.4 470.6 L 509 448 L 512.4 433.4 L 520.4 418.4 L 527.3 408.3 L 532.2 405.2 L 539.1 397.1 L 561.5 383.5 L 577.9 376.9 L 589.4 373.4 L 605.6 372.6 L 605 370.3 L 607.2 369.2 L 628 368 L 642.8 369.2 L 651 372 L 657 371.5 L 662.6 372.4 L 687.6 380.4 L 697.6 385.4 L 702 388.9 L 706.6 390.4 L 712.9 395.1 L 715.6 398.2 L 719 399 L 720.4 402.8 L 723.7 403.3 L 731.8 412.2 L 735.6 414.5 L 737.4 419.6 L 741.8 424.4 L 746.5 434.3 L 748.1 445.9 L 750.8 450.2 L 751.1 456.9 L 753.2 462.8 L 753.8 468.3 L 759.6 479.4 L 764.4 483.8 L 782.4 492.6 L 785.4 495.3 L 787.3 493.5 L 808.5 493.5 L 817.2 488.2 L 822.8 486.8 L 827.2 481.2 L 832.7 477.7 L 837.8 470.8 L 839.4 465.4 L 844.4 461.8 L 844.2 457.2 L 846.2 444.6 L 847.7 444.5 L 848 433 L 845.4 408.3 L 843 403 L 837.1 380.9 L 832.3 374.7 L 826.7 364.3 L 809.2 339.8 L 801.6 334.4 L 795.6 326.9 L 791.1 325.1 L 791.4 322 L 789.2 322.2 L 786.4 320.6 L 780 313.5 L 775.2 311 L 775 308.6 L 771.6 309.1 L 769.1 306.2 L 765 305 L 760.7 300.8 L 747.8 295.2 L 742.5 291.5 L 733.5 288.5 L 728.3 285.8 L 726 282.9 L 722 281.8 L 718.4 282.6 L 710.6 279.4 L 700.6 277.8 L 702.2 276 L 701.6 275.4 L 696.3 275.5 L 685.2 273.8 L 670.2 269.6 L 657.9 268.2 L 618 267.5 Z" fill="url(#srouter-grad-s)"/>
14
+ </svg>
@@ -0,0 +1 @@
1
+ var e={nav:{models:`Modeller`,playground:`Lekplats`,keys:`Nycklar`,analytics:`Analys`,premium:`Premium`,upgrade:`Uppgradering`,settings:`Inställningar`,signOut:`Logga ut`,openMenu:`Öppna navigationsmeny`,switchLight:`Byt till ljustema`,switchDark:`Byt till mörkt tema`,switchToChinese:`Byt till kinesiska`,switchToEnglish:`Byta till engelska`,modelsMenu:`Bläddra bland modelltyper`,agents:`Agenter`,logs:`Loggar`,analyticsMenu:`Analyssidor`,notifications:`Notifications`,noNotifications:`No notifications yet`},auth:{createYourAccount:`Skapa ditt konto`,signIn:`Logga in`,email:`E-post`,password:`Lösenord`,emailPlaceholder:`you@example.com`,passwordPlaceholderSetup:`minst 8 karaktärer`,passwordPlaceholderLogin:`Ditt lösenord`,setupDescription:`Ställ in e-postadressen och lösenordet som skyddar denna dashboard.`,loginDescription:`Logga in för att hantera dina nycklar, routing och analys.`,createAccount:`Skapa konto`,creating:`Skapade...`,signingIn:`Loggar in...`,loading:`Laddar...`,newPasswordAutoComplete:`ny-lösenord`,currentPasswordAutoComplete:`current-password`,serverUnreachableBefore:`Kan inte nå servern. Se till att backend fungerar (`,serverUnreachableAfter:`).`,setupCode:`Setup-kod`,setupCodePlaceholder:`kod från serverloggarna`,setupCodeHint:`Att ställa in från en annan enhet kräver engångskoden som skrivs ut i serverloggarna vid uppstart.`,changePassword:`Byt lösenord`,changeEmail:`Byt e-post`,forgotPassword:`Glömt lösenordet?`,currentPassword:`Nuvarande lösenord`,newPassword:`Nytt lösenord`,newEmail:`Ny e-post`,resetCode:`Återställningskod`,resetCodePlaceholder:`kod från serverloggarna`,resetCodeHint:`Koden finns i serverloggen. Den skickas aldrig via e-post.`,forgotPasswordDescription:`Klicka på knappen nedan för att skapa en återställningskod. Koden skrivs till serverloggen och skickas aldrig via e-post. Ange den här för att sätta ett nytt lösenord.`,requestResetCode:`Skicka kod`,requestingResetCode:`Skickar…`,resetPassword:`Återställ lösenord`,resettingPassword:`Återställer…`,changingPassword:`Byter…`,changingEmail:`Byter…`,backToLogin:`Tillbaka till inloggning`,passwordChanged:`Lösenordet har bytts.`,emailChanged:`E-postadressen har bytts.`,passwordReset:`Lösenordet återställt. Logga in.`,resetCodeDockerHint:`Kör du i Docker? Koden finns i containerloggen: docker logs <container>.`,desktopSessionFailed:`Instrumentpanelen kunde inte logga in på den lokala servern. Avsluta SRouter och öppna det igen.`},common:{save:`Spara`,saving:`Rädda...`,cancel:`Avbryt`,discard:`Kasta bort`,delete:`Radera`,confirm:`Bekräfta`,copy:`Kopiera`,copied:`Kopierat`,copyFailed:`Det gick inte att kopiera — markera texten och kopiera manuellt`,show:`Show`,hide:`Göm dig`,apply:`Ansök`,applied:`Tillämpad`,applying:`Ansöker...`,active:`Aktiv`,inactive:`Inaktiv`,never:`Aldrig`,loading:`Laddar...`,error:`Fel`,noData:`Inga data än`,unsavedChanges:`Osparade ändringar`,saveChanges:`Sparändringar`,remove:`Ta bort`,unknownError:`Okänt fel`,model:`Modell`,provider:`Leverantör`,success:`Framgång`,failures:`Misslyckanden`,dismiss:`Avslut`,status:`Status`},settings:{title:`Inställningar`,language:`Språk`,theme:`Tema`,themeSystem:`System`,themeLight:`Ljust`,themeDark:`Mörkt`,searchLanguage:`Sök språk…`,noLanguages:`Inga språk hittade`,sections:`Inställningsavsnitt`,sectionGeneral:`Allmänt`,sectionCompression:`Komprimering`,sectionAdvanced:`Avancerat`,sectionPreview:`Förhandsvisning`,generalDescription:`Språk och utseende för den här instrumentpanelen.`,advancedDescription:`Tröskelvärden och säkerhetsreglage för komprimeringspipelinen.`,compressionTitle:`Promptkomprimering`,compressionDescription:`Minska förfrågningsstorleken före routing samtidigt som kod, fel, sökvägar, siffror och verktygsdefinitioner bevaras.`,compressionHelp:`Skriver om varje förfrågan innan den skickas till en leverantör så att den använder färre tokens. Kod, fel, sökvägar och siffror skyddas, och varje omskrivning som skadar dem kastas.`,compressionMode:`Läge`,compressionModeHelp:`Av skickar förfrågningar orörda. Förlustfri tar bara bort dubblerad och överflödig text. Standard kortar dessutom ned verktygsutdata. Aggressiv komprimerar därtill äldre delar av samtalet.`,compressionOff:`Av`,compressionLossless:`Förlustfri`,compressionStandard:`Standard`,compressionAggressive:`Aggressiv`,compressionLossy:`Förlustbehäftad`,compressionEngines:`Motorer`,compressionEnginesHelp:`Varje motor är ett omskrivningssteg. Läget avgör vilka motorer som körs; stänger du av en här hålls den utanför alla lägen.`,engineDedup:`Upprepade block`,engineDedupHelp:`Ersätter ett textblock som redan förekommit tidigare i samtalet med en kort hänvisning till det.`,engineLite:`Rensning av blanktecken`,engineLiteHelp:`Tar bort blanksteg i radslut, slår ihop upprepade tomma rader och tar bort dubblerade systemmeddelanden.`,engineReadLifecycle:`Ersatta filläsningar`,engineReadLifecycleHelp:`Ersätter en tidigare filläsning med en notering så snart samma fil läses eller redigeras igen.`,engineToolfilter:`Filter för verktygsutdata`,engineToolfilterHelp:`Kortar ned utdata från kommandon och verktyg, till exempel byggen, tester och installationer. Rader med fel och stackspårningar behålls alltid.`,engineJsoncompact:`JSON-tabeller`,engineJsoncompactHelp:`Kodar om långa JSON-arrayer med samma fält till en kompakt tabell. Det är reversibelt, så inget går förlorat.`,engineRelevance:`Relevansfilter`,engineRelevanceHelp:`Tar bort de meningar som har minst med det senaste meddelandet att göra när ett meddelande överskrider sin storleksbudget.`,engineAging:`Äldre samtalsturer`,engineAgingHelp:`Komprimerar allt utom de senaste turerna till en kort sammanfattning som behåller sökvägar, fel och beslut.`,engineHardBudget:`Tokentak`,engineHardBudgetHelp:`Tar bort de minst värdefulla raderna tills förfrågan ryms inom tokenmålet.`,compressionAutoTrigger:`Aktivera automatiskt över uppskattade tokens`,compressionAutoTriggerHelp:`Förfrågningar som beräknas överstiga detta antal tokens växlar automatiskt till Aggressiv. Lämna tomt för att stänga av.`,compressionPrefixFreeze:`Frys återkommande promptprefix`,compressionPrefixFreezeHelp:`Lämnar en systemprompt orörd när samma text har setts tre gånger, så att leverantörens promptcachning fortsätter att fungera.`,compressionTrustProjectFilters:`Lita på projektets filterfiler`,compressionTrustProjectFiltersHelp:`Läser även in filter för verktygsutdata från arbetskatalogen. Av som standard, eftersom ett repository skulle kunna använda det för att dölja utdata för modellen.`,compressionStats:`Storlek sparad`,compressionEstimatedTokensSaved:`Uppskattade tokens sparade`,compressionPreview:`Live-förhandsvisning`,compressionPreviewDescription:`Skicka en förfrågningskropp genom pipelinen för att se vad en leverantör skulle få.`,compressionPreviewPlaceholder:`Klistra in förfrågnings-JSON eller vanlig text`,compressionRunPreview:`Kör förhandsvisning`,updatesTitle:`Uppdateringar`,checkForUpdates:`Kolla efter uppdateringar`,lastChecked:`Senast kontrollerat: {when}`,currentVersion:`Aktuell version:`,updateAvailable:`Uppdatering tillgänglig`,changelog:`Vad har ändrats`,upToDate:`Uppdaterad`,buildAhead:`Den här versionen ligger före officiella main.`,buildDiverged:`Den här versionen har avvikit från officiella main.`,buildUnknown:`Den här anpassade versionen kan inte jämföras med officiella main.`,notGitInstall:`Den här installationen innehåller ingen commit-information.`,checkFailed:`Det gick inte att söka efter uppdateringar.`,contactsGithub:`Kontroller görs manuellt och kontaktar GitHub.`,autoUpdateCheck:`Automatisk uppdateringskontroll`,autoUpdateCheckHelp:`Kontrollerar GitHub en gång om dagen efter en ny version och visar en påminnelse. Av som standard.`,openReleases:`Öppna GitHub Releases`,restartAfterUpdate:`Starta om SRouter när bygget är klart.`,syncSchedule:`Model Sync`,syncScheduleHint:`How often the model catalog is refreshed from the server`,syncIntervalOff:`Off`,syncInterval6h:`Every 6h`,syncInterval12h:`Every 12h`,syncInterval24h:`Every 24h`},models:{title:`Modeller`,chatModelsTab:`Chattmodeller`,fusionTab:`Fusion`,embeddingsTab:`Inbäddningar`,imageTab:`Bild`,videoTab:`Video`,audioTab:`Ljud`,imageDesc:`Text-till-bild-genereringsmodeller.`,videoDesc:`Text-to-video generation models.`,audioDesc:`Text-till-tal och tal-till-text-modeller.`,mediaHint:`Generera via`,mediaEmpty:`Inga modeller än. De synkar från katalogen.`,ttsHeading:`Text-till-tal`,sttHeading:`Tal till text`,sttHint:`Transkribera via`,sttEmpty:`Inga tal-till-text-modeller än. De synkar från katalogen.`,newBadge:`Nytt`,monthlyTokenBudget:`Månatlig tokenbudget`,remaining:`Kvarvarande`,used:`Används`,usedScopeHint:`Chat requests only, since the start of this calendar month, summed over every model in the active chain — custom endpoints included. Traffic you send to a provider outside SRouter is not counted.`,legendRemainingTitle:`Remaining / monthly budget for {name} ({platform})`,noPublishedQuota:`+{count} with no published quota`,noPublishedQuotaTitle:`These models have no documented monthly token budget, so there is no remaining figure to show.`,of:`av`,showAllModels:`Visa alla {count} modeller`,showLess:`Visa mindre`,vision:`Vision`,visionTitle:`Accepterar bildindata`,tools:`Verktyg`,toolsTitle:`Skickar strukturerade verktygsanrop, så den är berättigad till verktygsbärande förfrågningar`,retired:`Utgått`,penalty:`−{value} straff`,obs:`{count} observationer`,tokPerMonth:`{count} tok/mo`,rpmLimit:`{count} varv`,rpdLimit:`{count} RPD`,noKey:`Ingen nyckel`,dragToReorder:`Dra för att omordna`,dragToReorderGroup:`Dra för att omordna modellen`,moveToRank:`Hoppa till rang`,providerCount:`{count} leverantörer`,servedBy:`Trafikerad av {providers}`,viewProviders:`Visa leverantörer`,backToModels:`Tillbaka till modellerna`,providersHeading:`Leverantörer som driver denna modell`,codeSnippetHeading:`Använd denna modell`,modelNotFound:`Denna modell finns inte tillgänglig, eller så finns inga konfigurerade leverantörer.`,providerIdsHeading:`Leverantörsmodell-id:n`,providerIdsHint:`Skicka det enhetliga modell-ID:t för att failover över över varje leverantör, eller ett leverantörsspecifikt ID för att fästa en leverantör.`,copyModelName:`Kopiera modellnamn`,settingsHeading:`Leverantörsinställningar`,settingsHint:`Lokala redigeringar av katalogmodeller sparas över katalogsynkningar. Raderade katalogmodeller förblir raderade tills du lägger till dem igen via konfigurationen.`,catalogModel:`Katalog`,customModel:`Sedvänja`,discoveredModel:`upptäckt`,localOverride:`Lokal överstyrning`,displayName:`Visningsnamn`,sizeLabel:`Kapacitetsnivå`,sizeLabelHint:`Frontier/Large/Medium/Small bestämmer underrättelseaxeln: en högre nivå slår alltid en lägre, och inom en nivå flyttar underrättelserankningen fortfarande poängen. En modell utan en igenkänd nivå får lägst poäng på den här axeln, men underrättelse är bara en av tre axlar — med god tillförlitlighet och hastighet kan den ändå väljas.`,sizeLabelNone:`Ingen (lägst underrättelsepoäng)`,contextWindow:`Bakgrund`,inFallback:`I kedja`,saveModelSettings:`Spara modellinställningar`,aggregateBudget:`{count}/mo`,aggregateBudgetTitle:`Totalt antal gratis tokens per månad hos denna modells leverantörer`,rateRpm:`{count} RPM`,rateRpd:`{count} RPD`,rateTitle:`Prisbegränsad – ingen fast månatlig tokenbudget`,rateLimitUsage:`{kind} {used}/{limit}`,rateLimitUsageTitle:`Hastighetsgränsanvändning i tidsfönstret (använt / gräns) för leverantören med mest marginal`,splitOut:`Slå inte samman denna kopia`,splitOutHint:`Ge denna leverantörs kopia en egen separat post istället för att slå samman den i den enhetliga modellen. Du kan slå tillbaka den från kopians egen sida.`,splitUndo:`Slå ihop tillbaka`,splitUndoHint:`Denna kopia hålls åtskild från dess enhetliga modell. Slå ihop det igen för att misslyckas med alla dess leverantörer igen.`,splitBadge:`hållas åtskilda`,noData:`inga data`,noDataTitle:`Inga förfrågningar registrerade än – tillförlitlighet och hastighet är omättade för den här leverantören.`,bestOfN:`det bästa av {count}`,perProviderScores:`Poäng per leverantör: {list}`,columnModel:`Modell`,columnOn:`On`,noModelsBefore:`Inga modeller tillgängliga. Lägg till API tangenter på`,keysPageLink:`Nyckelsida`,noModelsAfter:`Först.`,hiddenNoKeys:`Gömd (inga nycklar): {platforms}`,searchPlaceholder:`Sökmodeller eller leverantörer...`,clearSearch:`Rensa sökning`,ctxAny:`Någon kontext`,ctxBadge:`{size} ctx`,ctxTitle:`Kontextfönster`,copyModelId:`Kopiera modell-id`,showingCount:`{shown} av {total} modeller`,clearFilters:`Genomskinliga filter`,noMatches:`Inga modeller matchar dina filter.`,noModelsTitle:`Inga modeller konfigurerade`,intelligenceRank:`Underrättelse`,speedRank:`Hastighet`,rankHint:`Rankning i katalogen — 1 är bäst.`,limitRpm:`RPM`,limitRpd:`RPD`,limitTpm:`TPM`,limitTpd:`TPD`,limitRpmHint:`Förfrågningar per minut. Lämna tomt för ingen gräns.`,limitRpdHint:`Förfrågningar per dag. Lämna tomt för ingen gräns.`,limitTpmHint:`Tokens per minut. Lämna tomt för ingen gräns.`,limitTpdHint:`Tokens per dag. Lämna tomt för ingen gräns.`,usageThisMonth:`Månatlig användning`,usageEmpty:`Inga förfrågningar denna månad än.`,usageRequestsMonth:`{count} förfr. denna månad`,aliasMergeHeading:`Merge model aliases`,aliasMergeHint:`Requests for the unified model id are also served through these custom-provider aliases (e.g. custom:my-alias).`,aliasMergeAdd:`Add`,aliasMergeRemove:`Remove`,bulkToggle:`Enable or disable every shown model`,enableAll:`Enable all`,disableAll:`Disable all`,enableAllHint:`Turn on every model shown, then Save`,disableAllHint:`Turn off every model shown, then Save`,enabledOfShown:`{enabled} of {shown} shown models are in the chain`},strategies:{explore:`Utforska omätta modeller`,exploreHint:`Give models with no reliability or speed data a 10% chance to go first so they build a track record. Your real request is what gets sent, so it may be answered by an untested model. For a custom endpoint, use Probe endpoint on the Keys page to test it without live traffic.`,keySelection:`Nyckelval`,keySelectionAuto:`Automatiskt`,keySelectionLeastRemaining:`Minst kvar`,keySelectionHint:`Hur systemet väljer mellan flera nycklar hos samma leverantör. Automatiskt behåller nuvarande rotation; Minst kvar rangordnar nycklarna efter observerad kvot och provar först den som har mest kvar.`,cooldownCeiling:`Längsta automatiska nedkylning`,cooldownCeilingHint:`Begränsar hur länge routerns egna gissningar får bänka ett fallerande nyckel- och modellpar. Stegen ökar normalt 2 min, 10 min, 1 h, 24 h, och kredit- eller nivåfel bänkar i en dag. Väntetider som leverantören anger förkortas aldrig.`,cooldownCeilingDefault:`Standard (upp till 24 h)`,cooldownCeiling10m:`10 minuter`,cooldownCeiling1h:`1 timme`,cooldownCeiling6h:`6 timmar`,moreOptions:`Fler alternativ`,peakActive:`(rusningstid)`,peakActiveHint:`Justeringen för rusningstid är aktiv just nu, så det här är inte förinställningens egna vikter: 60 % av hastighetsvikten har flyttats till tillförlitlighet.`,peakAdjust:`Justering för rusningstid`,peakAdjustHint:`Av som standard. Inom fönstret nedan flyttas 60 % av hastighetsvikten till tillförlitlighet — gratisreläer är som mest belastade då, så tillförlitlighet förutsäger framgång bättre än ren genomströmning. Snabbast och Mest tillförlitlig lämnas orörda.`,peakFrom:`Från`,peakTo:`till`,peakTimezoneLabel:`Tidszon`,peakUseBrowserTimezone:`Använd webbläsarens tidszon`,peakTimezoneInvalid:`Okänd tidszon.`,peakExemptNote:`Den här förinställningen lämnas orörd — den ligger redan i ena änden av avvägningen hastighet/tillförlitlighet.`,title:`Routingstrategi`,description:`Välj en routingstrategi. I manuellt läge drar du för att ställa in ordningen; De andra strategierna styrs efter livepoäng över tillförlitlighet, hastighet och intelligens.`,weightsSummary:`Tillförlitlighet {reliability} % · Hastighet {speed}% · Intelligens {intelligence} %`,guardrails:`Räcken`,guardrailsTooltip:`Alltid-på-räcken: gratis kvot × levande avgiftsgräns. Under 1,0 betyder att modellen hålls tillbaka.`,scoreTooltip:`Slutlig routingpoäng = viktat medelvärde av de tre axlarna, multiplicerat med räckena. Högre vägar först.`,modeManualHint:`Manuellt läge: förfrågningar följer ordningen nedan, från topp till botten. Dra för att omordna.`,modeScoreHint:`Poängen uppdateras från livetrafik. Ordningen nedan visar hur förfrågningar hanteras just nu.`,manual:`Manuell`,manualBlurb:`Rutta i exakt den ordning du anger nedan. Dra handtagen för att omordna. Inga poäng; kedjan följs från topp till botten.`,balanced:`Balanserat`,balancedBlurb:`Tillförlitlighet leder (50 %), med hastighet och intelligens lika viktade (25 % vardera). En vettig allround-default.`,smartest:`Smartast`,smartestBlurb:`Föredrar den mest kapabla modellen som fortfarande fungerar. Intelligens 55 %, tillförlitlighet 35 %, hastighet 10 %.`,fastest:`Snabbast`,fastestBlurb:`Föredrar den snabbaste modellen som fortfarande fungerar. Hastighet 55%, tillförlitlighet 35%, intelligens 10%.`,reliable:`Mest pålitlig`,reliableBlurb:`Maximera framgångsgraden framför allt. Tillförlitlighet 70%, hastighet och intelligens 15% vardera.`,custom:`Sedvänja`,customBlurb:`Sätt din egen balans mellan pålitlighet, hastighet och intelligens med reglagen. Samma motor som förinställningarna, bara dina vikter.`,adjust:`Justera`,customWeights:`Specialvikter`,customWeightsHelp:`Sliders är oberoende; Aktierna är automatiskt på 100%.`,weightReliability:`Tillförlitlighet`,weightSpeed:`Hastighet`,weightIntelligence:`Underrättelse`,weightRequired:`Minst en vikt måste vara över noll.`,scoreColumn:`Poäng`},penaltyInspector:{title:`Frästryck`,subtitle:`Straff, nedkylningar och misslyckanden från de sista {minutes} minuterna`,rowCount:`{count} aktiv`,offChain:`Off chain`,penaltyValue:`Straff {value}`,factor:`score x{factor}`,noCooldown:`Ingen cooldown`,cooldownChip:`{key} - {time}`,resetCooldown:`Reset cooldown`,clearAll:`Rensa allt`,clearAllHint:`Häver genast alla nedkylningar, straff och felserier. Trycket byggs upp igen från nästa verkliga resultat.`,errorsHeading:`{count} senaste felen`,noRecentErrors:`Inga nyligen inträffade fel`,noKey:`Ingen nyckel`,reasons:{penalty:`straffades`,cooldown:`Nedkylning`,recent_errors:`Underkännande`}},keys:JSON.parse(`{"pageTitle":"Nycklar","pageDescription":"Leverantörsuppgifter och den enhetliga API-nyckeln som dina appar ansluter till.","tabProviders":"Leverantörer","checklistSummary":"{configured} av {total} leverantörer konfigurerade","checklistKeyless":"ingen nyckel krävs","checklistNoKeyTip":"Ingen nyckel har lagts till än. Klicka för att lägga till en.","checklistSignupLink":"Öppna {provider} för att skapa ett konto och få en nyckel","checklistKeylessTip":"Fungerar utan nyckel.","tabQuotaSignals":"Kvotsignaler","tabApiKey":"Enhetlig API nyckel","tabAnthropic":"Anthropic","unifiedKey":"Din enhetliga API-nyckel","regenerate":"Regenerera","showKey":"Show","hideKey":"Göm dig","copyKey":"Kopiera","copyFullKey":"Kopiera hela nyckeln","copiedKey":"Kopierat","baseUrl":"Bas URL","endpointChat":"Chatt","endpointResponses":"Svar","endpointEmbeddings":"Inbäddningar","endpointEmbeddingsHint":"model: \\"auto\\" eller en familj från fliken Embeddings","endpointMessages":"Meddelanden","endpointMessagesHint":"Anthropic-kompatibel (Claude)","quickStart":"Quick start","quickStartDesc":"Use auto for your active routing chain, or auto:fast to prioritize speed across enabled models. Replace $YOUR_KEY with your unified API key.","exampleAuto":"Auto mode (use the active chain)","exampleFast":"Fast mode (prioritize speed)","anthropicTitle":"Claude (Anthropic) modeller","anthropicDesc":"Peka ut en Claude eller Anthropic SDK-klient mot denna server. Anthropic klienter skickar Claude modellnamn — mappa varje modell till Auto (routern väljer en gratis modell) eller pinna en specifik.","anthropicBaseUrl":"Bas URL","anthropicAuth":"Auth-rubrik","anthropicAuto":"Auto — routern väljer den bästa modellen","anthropicSave":"Spara mappning","anthropicSaved":"Räddad","anthropicNote":"Anthropic klienter behåller sina inbyggda Claude modellnamn; Kartläggningen ovan avgör hur varje karta leder in i din pool.","familyDefault":"Standard","familyOpus":"Opus","familySonnet":"Sonett","familyHaiku":"Haiku","selectPlatform":"Välj en leverantör","addKey":"Lägg till nyckel","keyAdded":"Nyckel tillagd","endpointKeysShareModels":"Nycklar för samma endpoint delar dess modeller.","export":"Export","exportAll":"Alla nycklar","exportHealthy":"Endast hälsosamt","exportKeys":"Exportera API nycklar","exportFormat":"Format","exportHealthyOnly":"Endast friska nycklar","exportHealthyOnlyDesc":"Uteslut nycklar som för närvarande misslyckas med hälsokontroller","exportWillExport":"Kommer att exportera","exportKey":"Nyckel","exportKeys plural":"Nycklar","exporting":"Exporterar...","exportDownload":"Ladda ner","exportSuccess":"Exporterade {count} nycklar","adding":"Lägger till...","selectProvider":"Välj en leverantör...","accountId":"Konto-ID","label":"Etikett","noKeyNeeded":"(ingen nyckel behövs)","outboundProxy":"Utgående proxy","outboundProxyDescription":"Dirigera utgående LLM-förfrågningar genom en proxy. Stöder SOCKS5, HTTP och HTTPS.","proxyUrl":"Proxy URL","saveProxy":"Spara","savingProxy":"Rädda...","proxyLoadFailed":"Kunde inte ladda proxyinställningarna.","proxyMode":"Mode","proxyModeForward":"Forward proxy","proxyModeFetchRelay":"Fetch relay","relayToken":"Relay token","relayTokenConfigured":"Configured. Leave unchanged to keep.","relayTokenPlaceholder":"Relay bearer token (optional)","relayHeadersHint":"The relay reads the destination and its own credential from","addCustom":"Lägg till en anpassad OpenAI-kompatibel modell","addCustomDescription":"Peka chatt-, embedding-, bild- eller ljudmodeller mot vilken OpenAI-kompatibel slutpunkt som helst. API-nyckeln är valfri för lokala servrar.","customType":"Typ","customTypeChat":"Chatt","customTypeEmbedding":"Inbäddning","customTypeImage":"Bild","customTypeAudio":"Ljud","customTypeTranscription":"Transcription","customBaseUrl":"Bas URL","customModels":"Modeller","customModel":"Modell","customDisplayName":"Visningsnamn","customDisplayNamePerModel":"per modell","customDisplayNameOptional":"Valfritt","customFamily":"Familj","customFamilyPlaceholder":"Standardinställning till modell-ID","customApiKey":"API nyckel","customCapabilities":"Kapabiliteter","addModel":"Lägg till modell","modelAdded":"Modellen tillagd","addModels":"Lägg till {count} modeller","addEmbeddingModel":"Lägg till inbäddning","addImageModel":"Lägg till bildmodell","addAudioModel":"Lägg till ljudmodell","addTranscriptionModel":"Add transcription model","addingCustom":"Lägger till...","discoverModels":"Hämta modeller","probeNow":"Testa endpointen","probeConfirm":"Skicka upp till 3 testförfrågningar?","probeCapabilities":"resonemang: {reasoning} · verktyg: {tools}","probeCapYes":"ja","probeCapNo":"nej","probeCapUnknown":"okänt","probeSuccess":"Testade {model} på {latency} ms","probeFailed":"Testet misslyckades: {reason}","discoverTitle":"Modeller på denna endpoint","discoverHint":"Välj modellerna som ska registreras. Redan tillagda förblir låsta.","discoverEmpty":"Denna endpoint returnerade inga modeller.","discoverAlreadyAdded":"Tillagd","discoverSelectAll":"Markera alla","modelsAdded":"{count} modeller tillagda","getApiKey":"Hämta API nyckel","deleteKeyConfirm":"Radera den här nyckeln? Detta kan inte göras ogjort.","checkAll":"Kolla allt","checking":"Kontrollerar...","editLabel":"Redigera etikett","saveLabel":"Spara etikett","unifiedKeyDescBefore":"Använd detta som din OpenAI","unifiedKeyDescAfter":"; Den autentiserar förfrågningar till denna proxy.","serverUnreachableBefore":"Kan inte nå servern på","serverUnreachableAfter":". Se till att backend är igång. NPM kör utveckling startar båda, och serverloggarna skrivs ut under serverprefixet.","paneProviderKey":"Leverantörsnyckel","paneImportFile":"Importera fil","paneCustomEndpoint":"Anpassad slutpunkt","platform":"Plattform","hideAdded":"Dölj tillagda leverantörer","apiToken":"API token","keyOptionalPlaceholder":"Valfritt","bearerTokenPlaceholder":"Bärartoken","pasteKeyPlaceholder":"klistra in knappen här","pasteSeveral":"Klistra in flera","keyOptionalHint":"Valfritt: lämna tomt för den anonyma gratisnivån (hastighetsbegränsad per IP) eller klistra in din egen nyckel för att använda ditt konto.","enable":"Aktivera","noProviderKeys":"Inga leverantörsnycklar än. Lägg till en ovan för att börja rutta.","filterPlaceholder":"Filterleverantörer eller nycklar","filterAll":"Alla","filterHealthy":"Hälsosamt","filterIssues":"Frågor","filterDisabled":"Funktionsnedsatt","noFilterMatch":"Inga leverantörer matchar dina filter.","providerCountSummary":"{providers} leverantörer · {keys} nycklar","summaryHealthy":"{count} hälsosam","summaryIssueOne":"{count} problem","summaryIssueOther":"{count} problem","providerActions":"Leverantörsåtgärder","routeViaProxy":"Rutt via proxy","checkNow":"Kolla nu","syncModels":"Sync models with upstream","syncModelsResult":"Model list synced: {added} added, {total} live","syncModelsFailed":"Model sync failed: {reason}","syncAllModels":"Sync all providers","syncAllPending":"Syncing…","syncAllResult":"Synced {count} provider(s): {registered} model(s) registered","syncAllFailed":"Sync all failed: {reason}","syncAllNoChanges":"All provider rosters are already up to date","syncAllDialogTitle":"Sync Results","syncAllDialogSummary":"Changes detected in {changed} of {total} providers","syncAllNew":"+{count} new","syncAllUpdated":"{count} updated","syncAllRetired":"{count} retired","syncAllNewModels":"New models","syncAllUpdatedModels":"Updated models","syncAllRetiredModels":"Retired models","syncAllDialogClose":"Done","proxyEnvHintBefore":"Kan också konfigureras via","proxyEnvHintAfter":"miljövariabel (har företräde). Lämna tomt för att inaktivera. Exempel:","importKeys":"Importera leverantörsnycklar","importKeysDescription":"Ladda upp .env, JSON, JSONC, CSV, Markdown eller textfiler.","importFiles":"Filer","importFileCount":"{count} utvalda","previewFiles":"Förhandsvisning","previewing":"Förhandsvisning...","selected":"Utvalda","provider":"Leverantör","keyName":"Nyckelnamn","keyValue":"Nyckelvärde","chooseProvider":"Välj leverantör","noPreviewKeys":"Inga nycklar hittades i de filerna.","skippedItems":"Hoppade över:","moreItems":"+{count} mer","importSelected":"Importera {count}","importing":"Importerar...","noImportSelection":"Välj minst en rad med en leverantör.","duplicate":"Duplicat","duplicatesFound":"{count} dubblett upptäckt — finns redan och kommer att hoppas över.","importResult":"Importerade {imported}; Misslyckades {failed}.","importModelCount":"+{count} modeller","importResultWithModels":"Importerade {imported}; registrerade {models} modeller; Misslyckades {failed}.","confirmRemove":"Bekräfta?","quotaSignalsTitle":"Kvotsignaler","quotaSignalsEmptyTitle":"Inga kvotobservationer än","quotaSignalsEmptyDesc":"Detta fylls i efter att leverantörer returnerat hastighetsgränsrubriker, kvotfel eller valideringssignaler.","quotaKeyRef":"Nyckel#{id}","quotaPoolRef":"Pool {pool}","quotaLimit":"Gräns","quotaRemaining":"Återstående","quotaReset":"Återställ","quotaObserved":"Observerat","tabAgents":"Agenter","familyGeminiPro":"Gemini Pro","familyGeminiFlash":"Gemini Flash","familyGeminiFlashLite":"Gemini Flash-Lite","geminiTitle":"Gemini-modellmappning","geminiDesc":"Mappa namnen Gemini Pro, Flash och Flash-Lite till Auto eller en specifik katalogmodell.","compatibilityTitle":"Agentkompatibilitet","compatibilityDesc":"Styr kompatibilitetsytor som kräver aktivering samt modellupptäckt för Claude Code.","ollamaMode":"Ollama-emulering","ollamaModeHint":"Öppen loopback accepterar aldrig oautentiserad LAN-trafik.","ollamaOff":"Av","ollamaLoopback":"Öppen på loopback","ollamaKeyRequired":"API-nyckel krävs","claudeAliases":"Upptäcktsalias för Claude Code","claudeAliasesHint":"Exponera claude/<model>-alias så att gatewayens modellväljare kan lista katalogen.","mcpServer":"MCP-server","mcpServerHint":"Exponerar /mcp-slutpunkten för agentklienter. Nya installationer startar avstängda.","urlTokensTitle":"Återkallbara URL-token","urlTokensDesc":"Endast för klienter utan headers. URL-token kan läcka till historik och loggar, så återkalla dem när de inte längre behövs.","urlTokenLabel":"Tokenetikett","createUrlToken":"Skapa token","urlTokenOnce":"Kopiera denna token nu. Den visas inte igen.","revoked":"Återkallad","revoke":"Återkalla","modelScope":"Modellomfång","modelScopeDesc":"Begränsa den här nyckeln till specifika modell-ID:n. För alla andra modeller hoppar routern över nyckeln.","modelScopeAdd":"Ange ett modell-ID och tryck på Enter","modelScopeEmpty":"Inget omfång angivet — nyckeln betjänar alla modeller hos sin leverantör.","modelScopeClear":"Rensa omfång","modelScopeBadgeOne":"begränsad · 1 modell","modelScopeBadgeOther":"begränsad · {count} modeller","modelPicker":{"title":"Vilka modeller ska den här nyckeln betjäna?","hint":"Din {provider}-nyckel har lagts till och betjänar just nu alla modeller nedan. Avmarkera de modeller som nyckeln inte får användas för — routern hoppar då över den för dessa.","count":"{selected} av {total} valda","allNote":"Allt är valt — inget sparas, och modeller som läggs till i katalogen senare kommer också att använda den här nyckeln.","subsetNote":"Nyckeln begränsas till de valda modellerna. Du kan ändra detta senare från nyckelns rad.","skip":"Inte nu","scopedOne":"Nyckeln begränsad till 1 modell","scopedOther":"Nyckeln begränsad till {count} modeller","allSaved":"Key serves every catalog model"},"cpTitle":"Klientprofiler","cpDesc":"API-nycklar per klient, var och en med en systemprompt som servern alltid tillämpar.","cpEmpty":"Inga klientprofiler ännu.","cpNameLabel":"Namn","cpNamePlaceholder":"t.ex. Supportbot","cpPromptLabel":"Systemprompt (valfritt)","cpPromptPlaceholder":"Instruktioner som servern lägger till före varje förfrågan med den här nyckeln.","cpCreate":"Skapa profil","cpRotate":"Rotera nyckel","cpKeyOnce":"Kopiera nyckeln nu — den visas inte igen.","cpEnabledAria":"Profil aktiverad","selectKey":"Välj den här nyckeln","bulkSelected":"{count} valda","bulkEnable":"Aktivera alla","bulkDisable":"Inaktivera alla","bulkDelete":"Radera alla","bulkDeleteConfirm":"Radera {count}?","bulkResult":"Uppdaterade {done}; misslyckades {failed}.","bulkDeleteResult":"Raderade {done}; misslyckades {failed}.","testProxy":"Test","testingProxy":"Testing…","proxyTestOk":"Proxy works — {ms}ms round trip","proxyTestFail":"Proxy failed: {reason}","editKey":"Redigera nyckel","editPlatformLocked":"Leverantören och slutpunkten kan inte ändras efter skapandet.","editCredentialHint":"Lämna tomt för att behålla den aktuella nyckeln.","editCredentialPartsRequired":"Ange både kontoidentifikator och API-token.","editModels":"Redigera modeller","editModelsHint":"Choose which catalog models this key may serve. Select everything to clear the scope so future catalog models use it too.","editModelsCustomHint":"Choose which registered endpoint models this key may serve. Select everything to clear the scope.","editModelsSync":"Check catalog updates","editModelsSyncing":"Checking…","editModelsSynced":"Model catalog checked","outlookUnavailable":"Unavailable","outlookNoForecasts":"Forecast unavailable. More recent traffic or reliable quota readings are needed.","outlookCoverage":"Forecasts available for {count} of {total} pools.","outlookTraffic":"{count} successful requests through this instance in the last {minutes} minutes.","outlookMinimumTraffic":"An exhaustion forecast needs at least {count} successful requests within {minutes} minutes.","outlookNotReportedHint":"The provider has not reported a usable request balance and limit. Local usage is shown; remaining quota is unavailable.","outlookMissingResetHint":"The provider did not report a valid reset time. Remaining quota cannot support an exhaustion forecast.","outlookConfidenceHint":"This balance is not reliable enough for an exhaustion forecast.","outlookObserved":"Balance observed: {time}","outlookUnavailablePools":"Unavailable quota pools ({count})","outlookTitle":"Quota outlook","outlookInsufficient":"Not enough data","outlookLowBalance":"Low balance","outlookRunningLow":"Running low soon","outlookStale":"Needs fresh data","outlookUnknown":"Unknown","outlookWithinQuota":"Within quota","outlookResetsFirst":"Not before reset","outlookExhausted":"Already exhausted","outlookLastReported":"requests last reported","outlookRequestsLeft":"requests left","outlookNotReported":"Not reported","outlookRate":"Recent rate","outlookRateValue":"{count} req/min","outlookRunsOut":"May run out","outlookStaleHint":"This balance is old or its window has expired. A fresh provider reading is needed.","outlookError":"Could not load quota forecasts. Raw observations are still available below.","outlookRetry":"Retry","outlookAttention":"Quota pools needing attention: {count}","outlookNoWarnings":"No forecast warnings. Pools with insufficient data may still be limited.","outlookHint":"Rates count successful requests through this instance only, not usage elsewhere. Forecasts require recent provider balances and reported resets. Warnings appear below 20% remaining or when quota may run out within two hours, before reset.","outlookRaw":"Raw quota observations","addCustomModel":"Lägg till anpassad modell","modelId":"Modell-ID","modelIdRequired":"Modell-ID krävs","modelDisplayName":"Visningsnamn","modelContextWindow":"Kontextfönster (tokens)","modelRateLimits":"Hastighetsgränser (valfritt)","modelSupportsTools":"Stöder verktygsanrop","modelSupportsToolsHint":"Aktivera om denna modell kan anropa funktioner och verktyg","modelSupportsVision":"Stöder vision","modelSupportsVisionHint":"Aktivera om denna modell tar emot bildinmatning","createModel":"Skapa modell","modelAddedSuccess":"Anpassad modell lades till framgångsrikt","modelAddFailed":"Kunde inte lägga till anpassad modell","testModel":"Testa","testingModel":"Testar…","testPassedShort":"Godkänd","testFailedShort":"Misslyckades","testPassed":"Modelltestet lyckades på {latency}ms","testFailed":"Modelltestet misslyckades","testThrottled":"Vänta {seconds}s innan du testar denna modell igen.","noModelsForProvider":"Inga modeller konfigurerade för denna leverantör.","testModels":"Testa modeller","syncAllCatalog":"Catalog: +{inserted} added, ~{updated} updated, -{removed} removed","requestCapLabel":"Request cap","tokenCapLabel":"Token cap","budgetPeriodLabel":"Budget period","budgetPeriodDaily":"Daily","budgetPeriodWeekly":"Weekly","budgetPeriodMonthly":"Monthly","budgetPeriodAuto":"Auto (follow provider)","autoResolvedDaily":"Detected provider cycle: daily","autoResolvedMonthly":"Detected provider cycle: monthly","autoResolvedFallback":"Provider cycle unknown, defaulting to monthly","capUnlimitedPlaceholder":"Obegränsat","capEditHint":"Caps reset at the next period boundary, 00:00 UTC. Leave blank for unlimited.","monthlyUsageLine":"{requests} förfrågningar, {tokens} tokens denna månad","monthlyUsageRequests":"{requests} requests","monthlyUsageTokens":"{tokens} tokens","monthlyUsageRequestsRelative":"{used} / {cap} ({remaining} left) requests","monthlyUsageTokensRelative":"{used} / {cap} ({remaining} left) tokens","monthlyUsageReset":"reset {date}"}`),backups:{title:`Backups`,description:`Save the routing data to a .sql file beside the database, and restore it later.`,excludedNote:`A backup carries your providers, models, routing settings and request history. Accounts, sessions and URL tokens are never included, so a dump holds no password hashes or login tokens and restoring one cannot log you out. Provider keys stay encrypted with this server's ENCRYPTION_KEY: a backup can only be restored on a server that still holds that key.`,selectHint:`Back up everything, or pick the tables you need.`,selectAll:`Select all`,deselectAll:`Clear`,fullBackup:`Full backup`,backupSelected:`Back up selected ({count})`,created:`Backup written to {filename}`,list:`Backups on disk`,empty:`No backups yet`,full:`All tables`,tablesCount:`{count} tables`,manual:`Manual`,scheduled:`Scheduled`,preRestore:`Pre-restore`,download:`Download`,restore:`Restore`,confirmRestore:`Replace data?`,restored:`Restored. The previous data was saved as {filename}.`,delete:`Delete backup`,prevPage:`Previous`,nextPage:`Next`,autoTitle:`Automatic backups`,autoHint:`The server writes a full backup on this cadence.`,time:`Time (HH:mm)`,intervalDays:`Every N days`,path:`Folder`,pathPlaceholder:`backups`,pathHint:`Relative to the database directory. Backups cannot be written outside it.`,save:`Save schedule`,saved:`Saved`},status:{healthy:`Hälsosamt`,rateLimited:`Prisbegränsad`,invalid:`Ogiltig`,error:`Fel`,unchecked:`okontrollerat`},analytics:{title:`Analys`,description:`Begäran, latens, tokenanvändning och fel.`,range24h:`24 timmar`,range7d:`7d`,range30d:`30d`,range90d:`90d`,requests:`Önskemål`,successRate:`Framgångsfrekvens`,inputTokens:`Inmatningstokens`,outputTokens:`Utmatningstokens`,avgLatency:`Genomsnittlig latens`,p95Latency:`P95-latens`,avgTtft:`Genomsnittligt TTFT`,estSavings:`Uppskattade besparingar`,requestsByProvider:`Förfrågningar från leverantör`,avgLatencyByProvider:`Genomsnittlig latens per leverantör`,ttftByProvider:`Tid till första token per leverantör`,ttftEmpty:`Ingen tid att först spela in token än.`,requestsOverTime:`Förfrågningar över tid`,tokensOverTime:`Token över tid`,byModel:`Efter modell`,byPlatform:`Efter plattform`,errors:`Fel`,errorDistribution:`Felfördelning`,pinnedRequests:`Fastnålade förfrågningar`,pinnedHonored:`Hedrade`,fallbackAttempts:`Försök till reserv`,savingsHint:"Du sparade faktiskt ${actual} under de senaste {range}. Det är vad samma tokens skulle ha kostat på betalda API:er, prissatt per modell. Siffran som visas visar din takt från senaste {span} data till hela 30 dagar.",savingsHintExact:"Du sparade faktiskt ${actual} under de senaste {range}. Det är vad samma tokens skulle ha kostat på betalda API:er, prissatt per modell. Siffran som visas är din verkliga 30-dagarssumma.",requestsHintPinned:`{pinned} av dessa förfrågningar höll en specifik modell vid namn. {honored} betjänades av den fastnålade modellen; {failed} gick över till en annan. Resten var auto-rout.`,requestsHintAuto:`Alla förfrågningar under denna period var auto-routade; Ingen kund har fäst en specifik modell vid namn.`,requestsHintTypes:`{chat} chatta och {embedding} inbäddningsförfrågningar.`,rangeLabel24h:`24 timmar`,rangeLabel7d:`7 dagar`,rangeLabel30d:`30 dagar`,rangeLabel90d:`90 dagar`,spanDays:`{count} dagar`,spanHours:`{count} timmar`,latencyMs:`Latens (ms)`,latency:`Latens`,pinned:`Nedsatt`,inTokens:`I tokens`,outTokens:`Ut-tokens`,saved:`Räddad`,message:`Meddelande`,time:`Tid`,perModelBreakdown:`Uppdelning per modell`,usageByKey:`Användning efter nyckel`,keyColumn:`Nyckel`,keyLabelFallback:`Nyckel#{id}`,errorsByProvider:`Fel per leverantör`,recentErrors:`Nyliga fel`,noErrors:`Inga fel`,recentCalls:`Senaste samtal`,clientIp:`Klient-IP`,clientAgent:`Klientapp`,requestedModelHint:`Begärt {model}, servat som reservplan`,attempts:`Försök`,filterAll:`Alla`,filterCanceled:`Avbrutna`,providerBreakdown:`Uppdelning per leverantör`,tokensPerSec:`Tok/s`,allProviders:`Alla leverantörer`,requestDetailTitle:`Begär #{id}`,failoverLadder:`Failover-stege`,failoverLadderHint:`Varje hopp denna begäran tog genom reservkedjan, i ordning.`,noAttemptTrace:`Ingen försöksspårning registrerades för denna förfrågan.`,keyOrdinal:`Nyckel#{n}`,keyBadge:`Nyckel #{n}`,attemptTimingHint:`Startförskjutning från begäran start · Försökslängd`,requestedModel:`Efterfrågad modell`,ttft:`TTFT`,requestsByAgent:`Begäranden per agent`,sortBy:`Sortera efter {column}`,sortHint:`Sorteringen gäller de {count} inlästa raderna`,cacheHitRate:`Cacheträffkvot`,cacheSavedTokens:`{tokens} tokens sparade`,cacheHitRateHint:`{hits} träffar mot {misses} missar sedan servern startade · {requests} leverantörsanrop undvikna`},logs:{title:`Loggar`,description:`Serverns logg i realtid. Nya poster strömmar in medan sidan är öppen.`,pause:`Pausa`,resume:`Återuppta`,clear:`Rensa loggen`,cleared:`Serverloggen rensad`,levelFilter:`Loggnivåer`,levels:{debug:`Debug`,info:`Info`,warn:`Varning`,error:`Fel`},countsHint:`Antalen gäller hela loggbufferten på servern, inte bara posterna som matchar de här filtren.`,searchPlaceholder:`Sök i loggmeddelanden…`,jumpToLatest:`Hoppa till senaste`,showMore:`Visa mer`,showLess:`Visa mindre`,buffered:`Visar {count} av upp till {max} buffrade poster`,emptyTitle:`Inga loggposter än`,emptyDescription:`Poster visas här allteftersom servern skriver dem. Bredda filtren för nivå, leverantör eller sökning om du väntade dig utdata.`,noLevelsTitle:`Inga nivåer valda`,noLevelsDescription:`Slå på minst en nivå för att se loggutdata.`,loadFailed:`Det gick inte att läsa in serverloggen.`},playground:{title:`Lekplats`,description:`Skicka en chattfullbordan via routern och se vilken leverantör som hanterar den.`,autoModel:`Auto (reservkedja)`,fusionModel:`Fusion (multimodellsyntes)`,selectModel:`Välj modell`,searchModels:`Sök modeller...`,noModelsFound:`Inga modeller hittades`,send:`Skicka`,sending:`Skickar...`,clear:`Klart`,inputPlaceholder:`Skriv ett meddelande... (⏎ för att skicka, ⇧⏎ för nyrad)`,emptyTitle:`Skicka ett meddelande för att komma igång.`,emptyDescription:`Att använda {model}. Byt modeller i väljaren ovan.`,noModels:`Inga modeller än. Lägg till en API nyckel på sidan Keys för att fylla i denna lista.`,copyReply:`Kopiera svar`,fallback:`Reserv`,fallbacks:`Reservplaner`,fusionPanel:`Panel`,fusionJudge:`Domare`,fusionTrace:`{count} modellsvar`,fusionFailed:`Inget svar`,fusionJudgeSynth:`syntetiserade det slutgiltiga svaret`,errorPrefix:`Fel:`,systemPromptLabel:`Systemprompt`,systemPromptPlaceholder:`Valfritt. Skickat som ett systemmeddelande innan din chatt.`,showSettings:`Visa inställningar`,hideSettings:`Dölj inställningar`,samplingHeading:`Sampling`,samplingHelp:`Avstängt gäller leverantörens egen standard. Bara de reglage du slår på skickas med.`,samplingDefault:`Standard`,temperature:`Temperatur`,topP:`Top P`,maxTokens:`Max antal tokens`,errorTitle:`Begäran avvisades`,attach:`Bifoga filer`,attachTooMany:`Du kan bifoga upp till {count} filer per meddelande.`,attachTooLarge:`{name} är för stor. Gränsen är {max}.`,attachUnsupported:`{name} stöds inte. Bifoga bilder (PNG, JPEG, WebP, GIF) eller textfiler (TXT, MD, CSV, JSON, LOG).`,attachFailed:`Kunde inte läsa {name}.`,noVisionBadge:`Inga bilder`,visionWarning:`{model} accepterar inte bilder. Välj en modell med bildstöd eller Auto.`,dictate:`Diktera`,dictationStop:`Stoppa inspelning`,dictationTranscribing:`Transkriberar…`,dictationUnavailable:`Lägg till leverantörer för ljudmodeller för att kunna diktera.`,dictationModel:`Dikteringsmodell`,dictationFailed:`Transkriberingen misslyckades: {reason}`,artifactOpen:`Öppna förhandsvisning`,artifactPreview:`Förhandsvisning`,artifactCode:`Kod`,artifactClose:`Stäng förhandsvisning`,artifactDownload:`Ladda ned`,artifactReload:`Läs in förhandsvisningen igen`,artifactHtml:`HTML-sida`,artifactSvg:`SVG-bild`,artifactLines:`rader`,artifactResize:`Ändra storlek på förhandsvisning`},playgroundSessions:{heading:`Konversationer`,newConversation:`Ny konversation`,showSidebar:`Visa konversationer`,hideSidebar:`Dölj konversationer`,empty:`Inga sparade konversationer än.`,untitled:`Namnlös konversation`,rename:`Byt namn`,renamePlaceholder:`Konversationens namn`,messageCount:`{count} meddelanden`,justNow:`just nu`,minutesAgo:`{count} min sedan`,hoursAgo:`{count} tim sedan`,daysAgo:`{count} d sedan`,loadFailed:`Det gick inte att öppna den konversationen.`,renameFailed:`Det gick inte att byta namn på den konversationen.`,deleteFailed:`Det gick inte att radera den konversationen.`,actions:`Samtalsåtgärder`,newChat:`Ny chatt`},embeddings:{title:`Modeller`,description:`Embeddings failover endast inom en familj: samma modell som en annan leverantör erbjuder. Vektorer från olika modeller är inkompatibla, så routern byter aldrig modell på dig.`,defaultBadge:`Standard · Auto`,makeDefault:`Gör default`,moveUp:`Flytta upp`,moveDown:`Flytta ner`,usageToday:`{count} anspråk idag`,usageMonth:`{count} tok den här månaden`,autoDescription:`model: "auto" på POST /v1/embeddings rutter till standardfamiljen. Att namnge en familj (eller ett leverantörsmodell-id) stiftar den familjen; Leverantörer inom den prövas i ordning.`,unsavedChanges:`Osparade ändringar`,saveChanges:`Sparändringar`,savingChanges:`Rädda...`,tokMax:`{tokens} tok max`,emptyTitle:`Inga inbäddningsmodeller än`,emptyDesc:`Embedding-familjer visas här när du lägger till en leverantörsnyckel som stödjer inbäddningar.`,dragToReorder:`Dra till omordna leverantör`},fusion:{title:`Fusion`,description:`En panel av modeller svarar parallellt, sedan syntetiserar en domare ett starkare svar. Använd det genom att kalla API med modellen "fusion".`,panelSource:`Panelkälla`,panelSourceHelp:`Var panelmodellerna kommer ifrån när en förfrågan inte specificerar sin egen.`,mode:{auto:`Auto (reservkedja)`,autoHelp:`Välj en mångsidig uppsättning modeller från din Fallback-kedja, rankade efter din aktiva routingstrategi.`,explicit:`Explicit panel`,explicitHelp:`Använd alltid de specifika modeller du väljer nedan.`},panelModels:`Panelmodeller`,selectedCount:`{count} av {max} utvalda`,noModels:`Inga modeller är anslutna än. Lägg till en API-nyckel och aktivera sedan modeller i Fallback Chain.`,panelSize:`Panelstorlek`,panelSizeHelp:`Hur många olika modeller ska man välja automatiskt (1–{max}).`,judge:`Domarmodell`,judgeHelp:`Modellen som syntetiserar panelens svar till ett. Auto använder din högst rankade tillgängliga modell.`,judgeAuto:`Auto (högst rankad tillgänglig)`,strategy:`Strategi`,strategySynthesize:`Syntetisera — blanda panelen till ett enda svar`,strategyBestOf:`Bäst av — returnera det starkaste svaret (ingen domare)`,strategySynthesizeShort:`Syntes`,strategyBestOfShort:`Bäst av`,exposePanel:`Detaljer i exponeringspanelen`,exposePanelHelp:`Bifoga varje modells svar och domarens metadata under ett x_fusion fält i svaret.`,howToUse:`Hur man använder`,howToUseHelp:`Skicka en vanlig chattförfrågan med modellen "fusion". Dessa inställningar är standard; Vilken begäran som helst kan åsidosätta dem med ett "fusion"-fält.`,unsavedChanges:`Osparade ändringar`,save:`Spara`,searchPlaceholder:`Search models…`,providerFilterLabel:`Filter by provider`,providerAll:`All providers`,noMatch:`No models match your search.`},premium:{title:`Premium`,description:`Den levande modellkatalogen, på varje enhet.`,loading:`Laddar...`,checkForUpdates:`Kolla efter uppdateringar`,syncing:`Synkroniserar...`,catalogFeed:`Katalogflöde`,liveFeed:`Live-feed`,monthlySnapshot:`Månatlig översikt`,lastChecked:`Senast kontrollerat: {when}`,liveDescription:`Nya gratismodeller, kvotändringar och quirk-fixar landar här inom några timmar efter att de skickats. Appen kontrollerar automatiskt två gånger om dagen; Inget att göra.`,snapshotDescription:`Gratis nivå: katalogen uppdateras från en månatlig snapshot, kontrollerad automatiskt två gånger om dagen. Premium byter detta till live-flödet, uppdaterat var 2-3:e dag.`,lastSyncProblem:`Senaste synkroniseringsproblemet: {error}`,license:`Licens`,planAnnual:`Årspremie`,planLifetime:`Premiumlivstid`,expired:`Utgången`,inactive:`Inaktiv`,lifetimeNote:`Livstidslicens: går aldrig ut.`,renewsOn:`Förnyar {date}.`,willNotRenew:`Kommer inte att förnyas. Premium fram till {date}, sedan återgår denna installation till den gratis månadskatalogen.`,keyInactive:`Denna nyckel är inte längre aktiv. Appen fortsätter att arbeta med den kostnadsfria månatliga katalogen.`,manageSubscription:`Hantera prenumeration`,openingPortal:`Öppnar...`,removeKey:`Ta bort nyckeln från denna enhet`,manageHint:`Hantera prenumerationen öppnar Stripe faktureringsportal: avboka, uppdatera ditt kort eller ladda ner fakturor. Att ta bort nyckeln inaktiverar endast denna enhet; Ditt köp är orört.`,licenseKey:`Licensnyckel`,licenseKeyPlaceholder:`fla_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`,activate:`Aktivera`,activating:`Aktiverar...`,keyHint:`Din nyckel finns i din köpmejl och på sidan efter utcheckningen. Tappade du bort det?`,recoverKey:`Återställ den på webbplatsen`,upsellTitle:`Gå live för 19 dollar om året`,upsellDescription:`Nya gratismodeller så fort de finns, istället för 30 dagar senare. En nyckel, varje enhet. Avboka när som helst; Routern är gratis för alltid.`,goPremium:`Välj Premium`,bundled:`buntat`,planGeneric:`Premium`},languages:{en:`English`,"zh-CN":`中文 (简体)`,es:`Español`,fr:`Français`,"pt-BR":`Português (Brasil)`,it:`Italiano`,hi:`हिन्दी`,ar:`العربية`,bn:`বাংলা`,ru:`Русский`,ur:`اردو`,id:`Bahasa Indonesia`,de:`Deutsch`,ja:`日本語`,sw:`Kiswahili`,mr:`मराठी`,te:`తెలుగు`,tr:`Türkçe`,ta:`தமிழ்`,vi:`Tiếng Việt`,ko:`한국어`,fa:`فارسی`,th:`ไทย`,gu:`ગુજરાતી`,pl:`Polski`,uk:`Українська`,kn:`ಕನ್ನಡ`,ml:`മലയാളം`,or:`ଓଡ଼ିଆ`,my:`မြန်မာဘာသာ`,pa:`ਪੰਜਾਬੀ`,ro:`Română`,nl:`Nederlands`,ms:`Bahasa Melayu`,tl:`Filipino`,ha:`Hausa`,yo:`Yorùbá`,ig:`Igbo`,am:`አማርኛ`,uz:`Oʻzbekcha`,az:`Azərbaycanca`,si:`සිංහල`,ne:`नेपाली`,km:`ខ្មែរ`,el:`Ελληνικά`,cs:`Čeština`,hu:`Magyar`,sv:`Svenska`,he:`עברית`,da:`Dansk`,fi:`Suomi`,no:`Norsk`,sk:`Slovenčina`,bg:`Български`,hr:`Hrvatski`,sr:`Српски`,lt:`Lietuvių`,"zh-TW":`中文 (繁體)`,"pt-PT":`Português (Portugal)`,ka:`ქართული`},errors:{boundaryTitle:`Något gick fel`,boundaryDescription:`Instrumentpanelen fick ett oväntat fel. Din data är säker. Försök igen eller gå tillbaka till modellsidan.`,tryAgain:`Försök igen`,goHome:`Tillbaka till modellerna`},notFound:{title:`Sidan hittades inte`,description:`Denna sida existerar inte eller kan ha flyttats.`},setup:{title:`Att komma igång`,subtitle:`Tre steg för att styra din första förfrågan.`,progress:`{done} av {total}`,step1Title:`Lägg till en leverantörsnyckel`,step1Desc:`Koppla minst ett leverantörskonto. Gratis nycklar fungerar.`,step1Cta:`Lägg till nycklar`,step2Title:`Skicka en testförfrågan`,step2Desc:`Välj vilken modell som helst på lekplatsen och säg hej.`,step2Cta:`Öppen lekplats`,step3Title:`Koppla upp din app`,step3Desc:`Använd din Unified API-nyckel med vilken OpenAI-kompatibel klient som helst.`,copyKey:`Kopiera API nyckel`,copyUrl:`Kopiera basen URL`,copiedKey:`API nyckel kopierad till skrivplatta`,copiedUrl:`Basen URL kopierad till skrivplatta`},palette:{title:`Kommandopalett`,placeholder:`Söksidor, modeller, handlingar...`,empty:`Inga resultat`,groupPages:`Sidor`,groupActions:`Åtgärder`,groupModels:`Modeller`,toggleTheme:`Växla mörkt läge`},validation:{required:`Obligatoriskt`,url:`Ange en giltig URL som börjar med http:// eller https://`,email:`Ange en giltig e-postadress`,passwordMin:`Åtminstone {min} karaktärer`},agents:{title:`Kodningsagenter`,description:`Anslut kodningsverktyg till en gemensam gateway för gratismodeller med genererad konfiguration som säkerhetskopieras tryggt.`,apiKey:`API-nyckel`,quickstartTitle:`Snabbstart`,quickstart:`Snabbaste vägen: konfigurera Claude Code från livekatalogen.`,currentKey:`Aktuell enhetlig nyckel:`,seenRecently:`Nyligen sedd`,setupLabel:`Automatisk konfiguration`,setupHint:`Skriver verktygets konfigurationsfil åt dig, riktad mot den här gatewayen.`,setupGuideHint:`Visar verktygets konfigurationssteg; inga filer skrivs.`,manualLabel:`Manuell anslutning`,manualHint:`Bas-URL och nyckel att ange i verktygets egna inställningar.`,endpoint:`Slutpunkt`,documentation:`Dokumentation`,descriptions:{claude:`Anthropic's terminal agent: it plans, edits files, and runs commands in your repo.`,codex:`OpenAI's terminal agent, which runs your task in a local sandbox first.`,cline:`A VS Code extension that asks you to approve every edit and command.`,continue:`A VS Code and JetBrains extension for inline autocomplete and chat while you type.`,aider:`A command-line pair programmer that turns each change into its own git commit.`,opencode:`A provider-agnostic terminal agent with a full-screen text interface.`,goose:`Block's local agent, extended with MCP servers to reach past your code.`,qwen:`A Gemini CLI fork tuned for Qwen models and large repositories.`,roo:`A VS Code extension with switchable modes: architect, coder, debugger.`,kilo:`A VS Code extension merging Roo and Cline, with an orchestrator that splits up work.`,crush:`Charm's terminal agent, written in Go, with one session per project.`,dsh:`DeepSeek's harness, which keeps every provider as a route you can switch between.`,mimo:`Xiaomi's terminal agent, an OpenCode fork that takes any OpenAI-compatible provider.`,cursor:`The AI-first editor; it calls through Cursor's cloud, so it needs a public URL.`,generic:`Anything else that speaks the OpenAI API, set up by hand from a base URL and key.`,atomcode:`AtomGit's terminal agent, written in Rust, that takes any OpenAI-compatible endpoint.`,openclaw:`En ständigt tillgänglig personlig assistent som svarar på WhatsApp, Telegram, Discord med mera från din egen dator.`,hermes:`Nous Researchs självförbättrande agent med beständigt minne och färdigheter, i terminalen eller i chattappar.`,pi:`En minimal terminalagent som du formar med egna tillägg, färdigheter och promptmallar.`}},update:{available:`New version available`,whatsNew:`What's new in v{version}`,publishedOn:`Published {date}`,noNotes:`No release notes were published for this version.`,openRelease:`Open release page`,dismissVersion:`Dismiss this version`,dismiss:`Dismiss`},freeTier:{poolsToggle:`Free-tier pools ({count})`,poolsToggleBare:`Free-tier pools`,summary:`{pools} pools · {budget} tokens/mo counted once per pool · {credits} credits-based · {unpublished} unpublished`,pool:`Pool`,models:`Models`,budget:`Monthly budget`,kind:`Kind`,kindDocumented:`Documented`,kindCredits:`Credits`,kindUnpublished:`Unpublished`,remaining:`Remaining`,resetAt:`Resets at`,disabledModels:`({count} off)`,metricTokens:`tokens`,metricRequests:`requests`,metricCredits:`credits`,metricNeurons:`neurons`,metricOther:`units`,empty:`No enabled models with free-tier budget data.`,poolLabel:`{platform} · shared {scope} pool`,poolLabelBare:`{platform} · shared pool`,poolModels:`{count} models`,poolBudget:`{budget}/mo`,poolBudgetTitle:`One monthly allowance for the whole pool, scaled by the {count} usable keys on this platform. Every model listed under it draws from the same budget.`,poolNoQuota:`no published quota`,poolResets:`resets {time}`,independentBudgets:`independent budgets`},chains:{title:`Fallback chains`,description:`Named chains, each callable as auto:<name> in /v1/models.`,count:`{count} chains`,active:`Active`,default:`Default`,activate:`Activate`,activateHint:`Make this the chain the table below edits and the one auto routes through`,deleteHint:`Delete this chain`,deleteConfirm:`Delete chain "{name}"?`,create:`Create`,createPlaceholder:`Chain name`,createFailed:`Could not create the chain.`,nameRules:`Up to 20 characters: letters, digits, hyphens and underscores.`,startEmpty:`Start empty`,startEmptyHint:`Create the chain with no models in it, and keep new catalog models out of it. Unchecked, it starts as a copy of the default chain.`,curated:`Curated`,curatedHint:`New catalog models are not added to this chain automatically.`,renameHint:`Byt namn på denna kedja`,renameConfirm:`Byt namn på kedjan "{oldName}" till "{name}"? Klients som anropar auto:{oldName} måste byta till auto:{name}.`,renamePlaceholder:`Nytt kedjenamn`,renameFailed:`Det gick inte att byta namn på kedjan.`},notifications:{catalogAdded:`{count} new models added from catalog`,catalogAddedFrom:`{count} new models added for {provider}`,catalogRemoved:`{count} models removed from catalog`,catalogRemovedFrom:`{count} models removed for {provider}`,catalogUpdated:`{count} models updated from latest catalog`,catalogUpdatedFrom:`{count} models updated for {provider}`,discoverAdded:`{count} new models from provider {provider}`,discoverRemoved:`{count} models removed from provider {provider}`,degraded:`Degraded mode active — only {healthy}/{total} providers healthy ({pct}%)`,updateAvailable:`Update available: v{version}`},routingStrip:{canceled:`Canceled`,title:`Live routing`,mode:`Mode`,processing:`Processing…`,idle:`Waiting for a request…`,failed:`Failed`,afterAttempts:`Success after {n} attempts`,activeCount:`{n} active`}};export{e as default};
@@ -0,0 +1 @@
1
+ var e={nav:{models:`Mifano`,playground:`Uwanja wa michezo`,keys:`Funguo`,analytics:`Uchanganuzi`,premium:`Premium`,upgrade:`Boresha`,settings:`Mipangilio`,signOut:`Ondoka`,openMenu:`Fungua menyu ya kusogeza`,switchLight:`Badili hadi mandhari mepesi`,switchDark:`Badili hadi mandhari meusi`,switchToChinese:`Badili hadi Kichina`,switchToEnglish:`Badili hadi Kiingereza`,modelsMenu:`Vinjari aina za mifano`,agents:`Mawakala`,logs:`Kumbukumbu`,analyticsMenu:`Kurasa za uchanganuzi`,notifications:`Notifications`,noNotifications:`No notifications yet`},auth:{createYourAccount:`Fungua akaunti yako`,signIn:`Ingia`,email:`Barua pepe`,password:`Nenosiri`,emailPlaceholder:`wewe@mfano.com`,passwordPlaceholderSetup:`angalau herufi 8`,passwordPlaceholderLogin:`nenosiri lako`,setupDescription:`Weka barua pepe na nenosiri ambalo litalinda dashibodi hii.`,loginDescription:`Ingia katika akaunti ili kudhibiti funguo zako, uelekezaji na uchanganuzi.`,createAccount:`Fungua akaunti`,creating:`Inaunda...`,signingIn:`Inaingia...`,loading:`Inapakia...`,newPasswordAutoComplete:`nenosiri mpya`,currentPasswordAutoComplete:`nenosiri la sasa`,serverUnreachableBefore:`Haiwezi kufikia seva. Hakikisha sehemu ya nyuma inaendeshwa (`,serverUnreachableAfter:`)`,setupCode:`Msimbo wa kuanzisha`,setupCodePlaceholder:`nambari kutoka kwa kumbukumbu za seva`,setupCodeHint:`Kuweka mipangilio kutoka kwa kifaa kingine kunahitaji msimbo wa mara moja uliochapishwa kwenye kumbukumbu za seva wakati wa kuanza.`,changePassword:`Badilisha nenosiri`,changeEmail:`Badilisha barua pepe`,forgotPassword:`Umesahau nenosiri?`,currentPassword:`Nenosiri la sasa`,newPassword:`Nenosiri jipya`,newEmail:`Barua pepe mpya`,resetCode:`Msimbo wa kuweka upya`,resetCodePlaceholder:`msimbo kutoka kwenye kumbukumbu za seva`,resetCodeHint:`Msimbo uko kwenye kumbukumbu ya seva. Hautumwi kamwe kwa barua pepe.`,forgotPasswordDescription:`Bofya kitufe hapa chini kutengeneza msimbo wa kuweka upya. Msimbo huandikwa kwenye kumbukumbu ya seva, hautumwi kamwe kwa barua pepe. Uweke hapa ili kuweka nenosiri jipya.`,requestResetCode:`Tuma msimbo`,requestingResetCode:`Inatuma…`,resetPassword:`Weka upya nenosiri`,resettingPassword:`Inaweka upya…`,changingPassword:`Inabadilisha…`,changingEmail:`Inabadilisha…`,backToLogin:`Rudi kuingia`,passwordChanged:`Nenosiri limebadilishwa.`,emailChanged:`Barua pepe imebadilishwa.`,passwordReset:`Nenosiri limewekwa upya. Tafadhali ingia.`,resetCodeDockerHint:`Unatumia Docker? Msimbo uko kwenye kumbukumbu ya kontena: docker logs <container>.`,desktopSessionFailed:`Dashibodi haikuweza kuingia kwenye seva ya ndani. Funga SRouter kisha uifungue tena.`},common:{save:`Hifadhi`,saving:`Inahifadhi...`,cancel:`Ghairi`,discard:`Tupa`,delete:`Futa`,confirm:`Thibitisha`,copy:`Nakili`,copied:`Imenakiliwa`,copyFailed:`Imeshindwa kunakili — chagua maandishi na unakili mwenyewe`,show:`Onyesha`,hide:`Ficha`,apply:`Omba`,applied:`Imetumika`,applying:`Inatuma...`,active:`Inayotumika`,inactive:`Isiyotumika`,never:`kamwe`,loading:`Inapakia...`,error:`Hitilafu`,noData:`Hakuna data bado`,unsavedChanges:`Mabadiliko ambayo hayajahifadhiwa`,saveChanges:`Hifadhi mabadiliko`,remove:`Ondoa`,unknownError:`Hitilafu isiyojulikana`,model:`Mfano`,provider:`Mtoa huduma`,success:`Mafanikio`,failures:`Kushindwa`,dismiss:`Ondoa`,status:`Hali`},settings:{title:`Mipangilio`,language:`Lugha`,theme:`Mandhari`,themeSystem:`Mfumo`,themeLight:`Angavu`,themeDark:`Giza`,searchLanguage:`Tafuta lugha...`,noLanguages:`Hakuna lugha zilizopatikana`,sections:`Sehemu za mipangilio`,sectionGeneral:`Jumla`,sectionCompression:`Ubanaji`,sectionAdvanced:`Kina`,sectionPreview:`Hakikisho`,generalDescription:`Lugha na mwonekano wa dashibodi hii.`,advancedDescription:`Vizingiti na swichi za usalama za mfumo wa ubanaji.`,compressionTitle:`Ubanaji wa agizo`,compressionDescription:`Punguza ukubwa wa ombi kabla ya uelekezaji huku ukihifadhi msimbo, hitilafu, njia, nambari, na ufafanuzi wa zana.`,compressionHelp:`Huandika upya kila ombi kabla halijatumwa kwa mtoa huduma ili litumie tokeni chache. Msimbo, hitilafu, njia za faili na nambari hulindwa, na uandishi wowote upya unaoziharibu hutupwa.`,compressionMode:`Hali`,compressionModeHelp:`Imezimwa hutuma maombi bila kuyagusa. Bila hasara huondoa tu maandishi yaliyojirudia na yasiyo na maana. Kawaida pia hufupisha matokeo ya zana. Kali huongeza kufupisha zamu za zamani.`,compressionOff:`Imezimwa`,compressionLossless:`Bila hasara`,compressionStandard:`Kawaida`,compressionAggressive:`Kali`,compressionLossy:`Yenye hasara`,compressionEngines:`Injini`,compressionEnginesHelp:`Kila injini ni hatua moja ya kuandika upya. Hali huamua injini zipi zifanye kazi; kuzima moja hapa huiondoa katika kila hali.`,engineDedup:`Vipande vinavyojirudia`,engineDedupHelp:`Hubadilisha kipande cha maandishi kilichotokea awali kwenye mazungumzo kwa marejeleo mafupi.`,engineLite:`Usafishaji wa nafasi`,engineLiteHelp:`Hukata nafasi za mwisho, huunganisha mistari mitupu inayojirudia na huondoa ujumbe wa mfumo uliojirudia.`,engineReadLifecycle:`Usomaji wa faili uliopitwa`,engineReadLifecycleHelp:`Hubadilisha usomaji wa faili wa awali kwa dokezo mara faili hiyo hiyo inaposomwa au kuhaririwa tena baadaye.`,engineToolfilter:`Kichujio cha matokeo ya zana`,engineToolfilterHelp:`Hufupisha matokeo ya amri na zana kama vile ujenzi, majaribio na usakinishaji. Mistari ya hitilafu na ya stack-trace hubaki daima.`,engineJsoncompact:`Majedwali ya JSON`,engineJsoncompactHelp:`Husimba upya safu ndefu za JSON zenye sehemu zinazofanana kama jedwali fupi. Inaweza kurudishwa, hivyo hakuna kinachopotea.`,engineRelevance:`Kichujio cha umuhimu`,engineRelevanceHelp:`Huondoa sentensi zisizohusiana sana na ujumbe wa hivi karibuni pale ujumbe unapozidi kikomo chake cha ukubwa.`,engineAging:`Zamu za zamani`,engineAgingHelp:`Hufupisha zamu zilizopita zaidi ya chache za hivi karibuni kuwa muhtasari mfupi unaohifadhi njia, hitilafu na maamuzi.`,engineHardBudget:`Kikomo cha tokeni`,engineHardBudgetHelp:`Huondoa mistari yenye thamani ndogo hadi ombi litoshee lengo la tokeni.`,compressionAutoTrigger:`Anzisha kiotomatiki juu ya tokeni zilizokadiriwa`,compressionAutoTriggerHelp:`Maombi yanayokadiriwa kuzidi idadi hii ya tokeni hubadilika kuwa Kali kiotomatiki. Acha wazi ili kuzima.`,compressionPrefixFreeze:`Gandisha viambishi vya maagizo vinavyojirudia`,compressionPrefixFreezeHelp:`Huacha agizo la mfumo bila kuguswa mara maandishi yale yale yanapoonekana mara tatu, ili uhifadhi wa maagizo upande wa mtoa huduma uendelee kufanya kazi.`,compressionTrustProjectFilters:`Amini faili za kichujio za mradi`,compressionTrustProjectFiltersHelp:`Hupakia pia vichujio vya matokeo ya zana kutoka saraka ya kazi. Imezimwa kwa chaguo-msingi, kwa sababu hazina inaweza kuitumia kuficha matokeo kwa modeli.`,compressionStats:`Ukubwa uliookolewa`,compressionEstimatedTokensSaved:`Tokeni zilizokadiriwa kuokolewa`,compressionPreview:`Hakikisho la moja kwa moja`,compressionPreviewDescription:`Pitisha mwili wa ombi kwenye mfumo ili uone kile ambacho mtoa huduma angepokea.`,compressionPreviewPlaceholder:`Bandika JSON ya ombi au maandishi wazi`,compressionRunPreview:`Endesha hakikisho`,updatesTitle:`Masasisho`,checkForUpdates:`Angalia masasisho`,lastChecked:`Mara ya mwisho kuangaliwa: {when}`,currentVersion:`Toleo la sasa:`,updateAvailable:`Sasisho linapatikana`,changelog:`Kilichobadilika`,upToDate:`Imesasishwa`,buildAhead:`Toleo hili liko mbele ya tawi rasmi la main.`,buildDiverged:`Toleo hili limejitenga na tawi rasmi la main.`,buildUnknown:`Toleo hili maalum haliwezi kulinganishwa na tawi rasmi la main.`,notGitInstall:`Usakinishaji huu hauna taarifa za commit.`,checkFailed:`Imeshindikana kuangalia masasisho.`,contactsGithub:`Ukaguzi hufanywa mwenyewe na huwasiliana na GitHub.`,autoUpdateCheck:`Ukaguzi wa masasisho otomatiki`,autoUpdateCheckHelp:`Hukagua GitHub mara moja kwa siku kwa toleo jipya na kuonyesha ukumbusho. Imezimwa kwa chaguo-msingi.`,openReleases:`Fungua Matoleo ya GitHub`,restartAfterUpdate:`Anzisha upya SRouter baada ya ujenzi kukamilika.`,syncSchedule:`Model Sync`,syncScheduleHint:`How often the model catalog is refreshed from the server`,syncIntervalOff:`Off`,syncInterval6h:`Every 6h`,syncInterval12h:`Every 12h`,syncInterval24h:`Every 24h`},models:{title:`Mifano`,chatModelsTab:`Miundo ya gumzo`,fusionTab:`Fusion`,embeddingsTab:`Upachikaji`,imageTab:`Picha`,videoTab:`Video`,audioTab:`Sauti`,imageDesc:`Miundo ya kutengeneza maandishi-hadi-picha.`,videoDesc:`Text-to-video generation models.`,audioDesc:`Miundo ya maandishi-hadi-hotuba na mifano ya hotuba-kwa-maandishi.`,mediaHint:`Tengeneza kupitia`,mediaEmpty:`Hakuna mifano bado. Wanasawazisha kutoka kwa katalogi.`,ttsHeading:`Maandishi kwa hotuba`,sttHeading:`Hotuba kwa maandishi`,sttHint:`Nakili kupitia`,sttEmpty:`Bado hakuna miundo ya hotuba-kwa-maandishi. Wanasawazisha kutoka kwa katalogi.`,newBadge:`Mpya`,monthlyTokenBudget:`Bajeti ya tokeni ya kila mwezi`,remaining:`iliyobaki`,used:`kutumika`,usedScopeHint:`Chat requests only, since the start of this calendar month, summed over every model in the active chain — custom endpoints included. Traffic you send to a provider outside SRouter is not counted.`,legendRemainingTitle:`Remaining / monthly budget for {name} ({platform})`,noPublishedQuota:`+{count} with no published quota`,noPublishedQuotaTitle:`These models have no documented monthly token budget, so there is no remaining figure to show.`,of:`ya`,showAllModels:`Onyesha miundo yote ya {count}`,showLess:`Onyesha kidogo`,vision:`Maono`,visionTitle:`Inakubali ingizo la picha`,tools:`Zana`,toolsTitle:`Hutoa simu za zana zilizopangwa, kwa hivyo inastahiki maombi yenye zana`,retired:`Imeondolewa`,penalty:`−{value} adhabu`,obs:`Sehemu za {count}`,tokPerMonth:`{count} tok/mo`,rpmLimit:`Mzunguko wa {count}`,rpdLimit:`Karatasi ya data ya {count}`,noKey:`hakuna ufunguo`,dragToReorder:`Buruta ili kupanga upya`,dragToReorderGroup:`Buruta ili kupanga upya muundo`,moveToRank:`Ruka hadi nafasi`,providerCount:`Mtoaji wa {count}`,servedBy:`Imetolewa na {providers}`,viewProviders:`Tazama watoa huduma`,backToModels:`Rudi kwa mifano`,providersHeading:`Watoa huduma wanaohudumia modeli hii`,codeSnippetHeading:`Tumia mtindo huu`,modelNotFound:`Muundo huu haupatikani, au hauna watoa huduma waliosanidiwa.`,providerIdsHeading:`Vitambulisho vya mfano wa mtoa huduma`,providerIdsHint:`Tuma kitambulisho cha muundo uliounganishwa kushindwa kwa kila mtoa huduma, au kitambulisho mahususi cha mtoa huduma kubandika mtoa huduma mmoja.`,copyModelName:`Nakili jina la mfano`,settingsHeading:`Mipangilio ya mtoaji`,settingsHint:`Uhariri wa ndani kwa miundo ya katalogi huwekwa katika usawazishaji wa katalogi. Miundo ya katalogi iliyofutwa husalia kufutwa hadi uiongeze tena kupitia usanidi.`,catalogModel:`katalogi`,customModel:`desturi`,discoveredModel:`imegunduliwa`,localOverride:`ubatilishaji wa ndani`,displayName:`Jina la kuonyesha`,sizeLabel:`Kiwango cha uwezo`,sizeLabelHint:`Frontier/Large/Medium/Small huamua mhimili wa akili: kiwango cha juu daima hushinda cha chini, na ndani ya kiwango kimoja nafasi ya akili bado husogeza alama. Mifano isiyo na kiwango kinachotambulika hupata alama ya chini kabisa kwenye mhimili huu, lakini akili ni mmoja tu kati ya mihimili mitatu — kuegemea na kasi nzuri bado vinaweza kuipatia njia.`,sizeLabelNone:`Hakuna (alama ya chini kabisa ya akili)`,contextWindow:`Muktadha`,inFallback:`Katika mnyororo`,saveModelSettings:`Hifadhi mipangilio ya mfano`,aggregateBudget:`{count}/mo`,aggregateBudgetTitle:`Jumla ya tokeni zisizolipishwa kwa mwezi kwa watoa huduma wa modeli hii`,rateRpm:`{count} RPM`,rateRpd:`{count} RPD`,rateTitle:`Viwango-vidogo - hakuna bajeti maalum ya kila mwezi ya tokeni`,rateLimitUsage:`{kind} {used}/{limit}`,rateLimitUsageTitle:`Matumizi ya kikomo cha kasi katika dirisha la muda (kilichotumika / kikomo) kwa mtoa huduma mwenye nafasi zaidi`,splitOut:`Usiunganishe nakala hii`,splitOutHint:`Ipe nakala ya mtoa huduma huyu ingizo lake tofauti badala ya kuiunganisha katika muundo uliounganishwa. Unaweza kuiunganisha kutoka kwa ukurasa wa nakala yenyewe.`,splitUndo:`Unganisha nyuma`,splitUndoHint:`Nakala hii huwekwa tofauti na muundo wake uliounganishwa. Iunganishe tena ili kushindwa kwa watoa huduma wake wote tena.`,splitBadge:`kuwekwa tofauti`,noData:`hakuna data`,noDataTitle:`Bado hakuna maombi yaliyorekodiwa - uaminifu na kasi hazijapimwa kwa mtoa huduma huyu.`,bestOfN:`bora kati ya {count}`,perProviderScores:`Alama kwa kila mtoaji: {list}`,columnModel:`Mfano`,columnOn:`Washa`,noModelsBefore:`Hakuna miundo inayopatikana. Ongeza vitufe vya API kwenye faili ya`,keysPageLink:`Ukurasa wa funguo`,noModelsAfter:`kwanza.`,hiddenNoKeys:`Imefichwa (hakuna funguo): {platforms}`,searchPlaceholder:`Tafuta miundo au watoa huduma...`,clearSearch:`Futa utafutaji`,ctxAny:`Muktadha wowote`,ctxBadge:`Sehemu ya {size}`,ctxTitle:`Dirisha la muktadha`,copyModelId:`Nakili kitambulisho cha mfano`,showingCount:`{shown} ya miundo ya {total}`,clearFilters:`Futa vichungi`,noMatches:`Hakuna miundo inayolingana na vichujio vyako.`,noModelsTitle:`Hakuna miundo iliyosanidiwa`,intelligenceRank:`Akili`,speedRank:`Kasi`,rankHint:`Nafasi katika katalogi — 1 ndiyo bora.`,limitRpm:`RPM`,limitRpd:`RPD`,limitTpm:`TPM`,limitTpd:`TPD`,limitRpmHint:`Maombi kwa dakika. Acha wazi ili kusiwe na kikomo.`,limitRpdHint:`Maombi kwa siku. Acha wazi ili kusiwe na kikomo.`,limitTpmHint:`Tokeni kwa dakika. Acha wazi ili kusiwe na kikomo.`,limitTpdHint:`Tokeni kwa siku. Acha wazi ili kusiwe na kikomo.`,usageThisMonth:`Matumizi ya kila mwezi`,usageEmpty:`Bado hakuna maombi mwezi huu.`,usageRequestsMonth:`maombi {count} mwezi huu`,aliasMergeHeading:`Merge model aliases`,aliasMergeHint:`Requests for the unified model id are also served through these custom-provider aliases (e.g. custom:my-alias).`,aliasMergeAdd:`Add`,aliasMergeRemove:`Remove`,bulkToggle:`Enable or disable every shown model`,enableAll:`Enable all`,disableAll:`Disable all`,enableAllHint:`Turn on every model shown, then Save`,disableAllHint:`Turn off every model shown, then Save`,enabledOfShown:`{enabled} of {shown} shown models are in the chain`},strategies:{explore:`Chunguza mifano isiyopimwa`,exploreHint:`Give models with no reliability or speed data a 10% chance to go first so they build a track record. Your real request is what gets sent, so it may be answered by an untested model. For a custom endpoint, use Probe endpoint on the Keys page to test it without live traffic.`,keySelection:`Uteuzi wa ufunguo`,keySelectionAuto:`Otomatiki`,keySelectionLeastRemaining:`Iliyobaki kidogo zaidi`,keySelectionHint:`Jinsi ya kuchagua kati ya funguo kadhaa za mtoa huduma mmoja. Otomatiki huhifadhi mzunguko wa sasa; Iliyobaki kidogo zaidi hupanga funguo kwa kiasi kilichoonekana na hujaribu kwanza ile yenye kiasi kikubwa zaidi kilichobaki.`,cooldownCeiling:`Kipindi kirefu zaidi cha kupoa kiotomatiki`,cooldownCeilingHint:`Huweka kikomo cha muda ambao makisio ya kipanga njia chenyewe yanaweza kuweka kando jozi ya ufunguo na modeli inayoshindwa. Ngazi kwa kawaida hupanda dakika 2, dakika 10, saa 1, saa 24, na makosa ya salio au daraja huweka kando kwa siku moja. Muda wa kujaribu tena uliotajwa na mtoa huduma haufupishwi kamwe.`,cooldownCeilingDefault:`Chaguo-msingi (hadi saa 24)`,cooldownCeiling10m:`Dakika 10`,cooldownCeiling1h:`Saa 1`,cooldownCeiling6h:`Saa 6`,moreOptions:`Chaguo zaidi`,peakActive:`(saa za msongamano)`,peakActiveHint:`Marekebisho ya saa za msongamano yanatumika sasa hivi, hivyo hizi si uzito wa kiolezo chenyewe: asilimia 60 ya uzito wa kasi umehamishiwa kwenye uaminifu.`,peakAdjust:`Marekebisho ya saa za msongamano`,peakAdjustHint:`Imezimwa kwa chaguo-msingi. Ndani ya kipindi kilicho hapa chini, huhamisha asilimia 60 ya uzito wa kasi kwenda kwenye uaminifu — relei za bure hujaa zaidi wakati huo, hivyo uaminifu hutabiri mafanikio vizuri kuliko kasi pekee. «Ya kasi zaidi» na «Inayoaminika zaidi» hazibadilishwi.`,peakFrom:`Kuanzia`,peakTo:`hadi`,peakTimezoneLabel:`Saa za eneo`,peakUseBrowserTimezone:`Tumia saa za eneo za kivinjari`,peakTimezoneInvalid:`Saa za eneo hazijulikani.`,peakExemptNote:`Kiolezo hiki hakibadilishwi — tayari kiko upande mmoja wa uwiano wa kasi na uaminifu.`,title:`Mkakati wa uelekezaji`,description:`Chagua mkakati wa uelekezaji. Katika hali ya Mwongozo, buruta ili kuweka mpangilio; mikakati mingine kupitia matokeo ya moja kwa moja katika kuegemea, kasi na akili.`,weightsSummary:`kuegemea {reliability}% · kasi {speed}% · akili {intelligence}%`,guardrails:`Walinzi`,guardrailsTooltip:`Misingi ya ulinzi inayowekwa kila wakati: chumba cha kichwa bila malipo × adhabu ya kikomo cha moja kwa moja. Chini ya 1.0 inamaanisha kuwa mtindo unazuiliwa.`,scoreTooltip:`Alama ya mwisho ya uelekezaji = wastani wa uzani wa shoka tatu, ikizidishwa na safu za ulinzi. Njia za juu kwanza.`,modeManualHint:`Hali ya Mwongozo: maombi hufuata mpangilio ulio hapa chini, kutoka juu hadi chini. Buruta ili kupanga upya.`,modeScoreHint:`Sasisho la alama kutoka kwa trafiki ya moja kwa moja. Agizo lililo hapa chini ni jinsi maombi yanavyoelekezwa sasa hivi.`,manual:`Mwongozo`,manualBlurb:`Njia kwa mpangilio kamili ulioweka hapa chini. Buruta vishikizo ili kupanga upya. Hakuna bao; mlolongo unafuatwa kutoka juu hadi chini.`,balanced:`Imesawazishwa`,balancedBlurb:`Kuegemea inaongoza (50%), kwa kasi na akili uzito sawa (25% kila moja). Chaguo-msingi la busara la pande zote.`,smartest:`Smartest`,smartestBlurb:`Pendelea muundo wa uwezo zaidi ambao bado unafanya kazi. Akili 55%, kuegemea 35%, kasi 10%.`,fastest:`Haraka zaidi`,fastestBlurb:`Pendelea muundo wa haraka zaidi ambao bado unafanya kazi. Kasi 55%, kuegemea 35%, akili 10%.`,reliable:`Ya kuaminika zaidi`,reliableBlurb:`Ongeza kiwango cha mafanikio zaidi ya yote. Kuegemea 70%, kasi na akili 15% kila moja.`,custom:`Desturi`,customBlurb:`Weka usawa wako mwenyewe wa kuegemea, kasi na akili na vitelezi. Injini sawa na usanidi, uzani wako tu.`,adjust:`Rekebisha`,customWeights:`Vipimo maalum`,customWeightsHelp:`Slider ni huru; inashiriki salio otomatiki hadi 100%.`,weightReliability:`Kuegemea`,weightSpeed:`Kasi`,weightIntelligence:`Akili`,weightRequired:`Angalau uzito mmoja lazima uwe juu ya sifuri.`,scoreColumn:`Alama`},penaltyInspector:{title:`Shinikizo la router`,subtitle:`Adhabu, nafuu, na kushindwa kutoka kwa dakika za mwisho za {minutes}`,rowCount:`{count} amilifu`,offChain:`nje ya mnyororo`,penaltyValue:`Adhabu {value}`,factor:`alama x{factor}`,noCooldown:`Hakuna baridi`,cooldownChip:`{key} - {time}`,resetCooldown:`Reset cooldown`,clearAll:`Futa zote`,clearAllHint:`Ondoa sasa kila kipindi cha kupoa, adhabu na mfululizo wa kushindwa. Shinikizo hujengwa upya kutoka matokeo halisi yanayofuata.`,errorsHeading:`{count} makosa ya hivi majuzi`,noRecentErrors:`Hakuna makosa ya hivi majuzi`,noKey:`hakuna ufunguo`,reasons:{penalty:`kuadhibiwa`,cooldown:`kutuliza`,recent_errors:`kushindwa`}},keys:JSON.parse(`{"pageTitle":"Funguo","pageDescription":"Vitambulisho vya mtoa huduma na ufunguo uliounganishwa wa API ambao programu zako huunganisha nazo.","tabProviders":"Watoa huduma","checklistSummary":"Watoa huduma {configured} kati ya {total} wamesanidiwa","checklistKeyless":"hakuna ufunguo unaohitajika","checklistNoKeyTip":"Bado hakuna ufunguo ulioongezwa. Bofya ili kuongeza.","checklistSignupLink":"Fungua {provider} kuunda akaunti na upate ufunguo","checklistKeylessTip":"Hufanya kazi bila ufunguo.","tabQuotaSignals":"Ishara za quota","tabApiKey":"Kitufe cha umoja cha API","tabAnthropic":"Anthropic","unifiedKey":"Ufunguo wako uliounganishwa wa API","regenerate":"Tengeneza upya","showKey":"Onyesha","hideKey":"Ficha","copyKey":"Nakili","copyFullKey":"Nakili ufunguo kamili","copiedKey":"Imenakiliwa","baseUrl":"Msingi wa URL","endpointChat":"Soga","endpointResponses":"Majibu","endpointEmbeddings":"Upachikaji","endpointEmbeddingsHint":"model: \\"auto\\" au familia kutoka kwa kichupo cha Upachikaji","endpointMessages":"Ujumbe","endpointMessagesHint":"Anthropic-sambamba (Claude)","quickStart":"Quick start","quickStartDesc":"Use auto for your active routing chain, or auto:fast to prioritize speed across enabled models. Replace $YOUR_KEY with your unified API key.","exampleAuto":"Auto mode (use the active chain)","exampleFast":"Fast mode (prioritize speed)","anthropicTitle":"Vyombo vya Claude (Anthropic).","anthropicDesc":"Elekeza mteja wa Claude au Anthropic SDK kwenye seva hii. Wateja wa Anthropic hutuma majina ya miundo ya Claude — ramani kila moja kwa Otomatiki (kipanga njia huchagua modeli isiyolipishwa) au bandika moja mahususi.","anthropicBaseUrl":"Msingi wa URL","anthropicAuth":"Kichwa cha maandishi","anthropicAuto":"Kipanga njia kiotomatiki huchagua muundo bora zaidi","anthropicSave":"Hifadhi ramani","anthropicSaved":"Imehifadhiwa","anthropicNote":"Wateja wa Anthropic huweka majina yao ya mifano ya Claude yaliyojengewa ndani; uchoraji wa ramani hapo juu huamua jinsi kila moja itakavyoingia kwenye bwawa lako.","familyDefault":"Chaguomsingi","familyOpus":"Opus","familySonnet":"Sonnet","familyHaiku":"Haiku","selectPlatform":"Chagua mtoaji","addKey":"Ongeza ufunguo","keyAdded":"Ufunguo umeongezwa","endpointKeysShareModels":"Vitufe vya mwisho huo huo hushiriki modeli zake.","export":"Hamisha","exportAll":"Vifunguo vyote","exportHealthy":"Afya tu","exportKeys":"Hamisha vitufe vya API","exportFormat":"Umbizo","exportHealthyOnly":"Funguo za afya pekee","exportHealthyOnlyDesc":"Usijumuishe funguo ambazo hazifanyiki ukaguzi wa afya kwa sasa","exportWillExport":"Itasafirisha nje","exportKey":"ufunguo","exportKeys plural":"funguo","exporting":"Inahamisha...","exportDownload":"Pakua","exportSuccess":"Vifunguo vya {count} vimehamishwa","adding":"Inaongeza...","selectProvider":"Chagua mtoa huduma...","accountId":"Kitambulisho cha Akaunti","label":"Lebo","noKeyNeeded":"(hakuna ufunguo unaohitajika)","outboundProxy":"Wakala wa nje","outboundProxyDescription":"Omba maombi ya LLM ya nje kupitia proksi. Inaauni SOCKS5, HTTP, na HTTPS.","proxyUrl":"Wakala URL","saveProxy":"Hifadhi","savingProxy":"Inahifadhi...","proxyLoadFailed":"Haikuweza kupakia mipangilio ya seva mbadala.","proxyMode":"Mode","proxyModeForward":"Forward proxy","proxyModeFetchRelay":"Fetch relay","relayToken":"Relay token","relayTokenConfigured":"Configured. Leave unchanged to keep.","relayTokenPlaceholder":"Relay bearer token (optional)","relayHeadersHint":"The relay reads the destination and its own credential from","addCustom":"Ongeza muundo maalum unaooana na OpenAI","addCustomDescription":"Elekeza gumzo, upachikaji, picha au miundo ya sauti katika sehemu yoyote ya mwisho inayooana na OpenAI. Kitufe cha API ni cha hiari kwa seva za ndani.","customType":"Aina","customTypeChat":"Soga","customTypeEmbedding":"Kupachika","customTypeImage":"Picha","customTypeAudio":"Sauti","customTypeTranscription":"Transcription","customBaseUrl":"Msingi wa URL","customModels":"Mifano","customModel":"Mfano","customDisplayName":"Jina la kuonyesha","customDisplayNamePerModel":"kwa kila mfano","customDisplayNameOptional":"hiari","customFamily":"Familia","customFamilyPlaceholder":"chaguo-msingi kwa kitambulisho cha mfano","customApiKey":"Kitufe cha API","customCapabilities":"Uwezo","addModel":"Ongeza mfano","modelAdded":"Mfano umeongezwa","addModels":"Ongeza miundo ya {count}","addEmbeddingModel":"Ongeza upachikaji","addImageModel":"Ongeza muundo wa picha","addAudioModel":"Ongeza muundo wa sauti","addTranscriptionModel":"Add transcription model","addingCustom":"Inaongeza...","discoverModels":"Leta modeli","probeNow":"Jaribu mwisho huu","probeConfirm":"Tuma hadi maombi 3 ya majaribio?","probeCapabilities":"hoja: {reasoning} · zana: {tools}","probeCapYes":"ndiyo","probeCapNo":"hapana","probeCapUnknown":"haijulikani","probeSuccess":"{model} imejaribiwa kwa {latency}ms","probeFailed":"Jaribio limeshindwa: {reason}","discoverTitle":"Modeli kwenye mwisho huu","discoverHint":"Chagua modeli za kusajili. Zilizoongezwa tayari zinabaki zimefungwa.","discoverEmpty":"Mwisho huu haukurudisha modeli yoyote.","discoverAlreadyAdded":"Imeongezwa","discoverSelectAll":"Chagua zote","modelsAdded":"Modeli {count} zimeongezwa","getApiKey":"Pata ufunguo wa API","deleteKeyConfirm":"Ungependa kufuta ufunguo huu? Hili haliwezi kutenduliwa.","checkAll":"Angalia zote","checking":"Inaangalia...","editLabel":"Badilisha lebo","saveLabel":"Hifadhi lebo","unifiedKeyDescBefore":"Tumia hii kama OpenAI yako","unifiedKeyDescAfter":"; inathibitisha maombi kwa seva mbadala hii.","serverUnreachableBefore":"Haiwezi kufikia seva imewashwa","serverUnreachableAfter":". Hakikisha kuwa sehemu ya nyuma inaendeshwa. npm run dev huanza zote mbili, na kumbukumbu za seva huchapisha chini ya kiambishi awali cha seva.","paneProviderKey":"Ufunguo wa mtoaji","paneImportFile":"Ingiza faili","paneCustomEndpoint":"Mwisho maalum","platform":"Jukwaa","hideAdded":"Ficha watoa huduma walioongezwa","apiToken":"Ishara ya API","keyOptionalPlaceholder":"Si lazima","bearerTokenPlaceholder":"Ishara ya mbebaji","pasteKeyPlaceholder":"bandika ufunguo hapa","pasteSeveral":"Bandika kadhaa","keyOptionalHint":"Si lazima: acha wazi kutumia kiwango cha bure bila kujitambulisha (kikomo kwa kila IP), au bandika ufunguo wako kutumia akaunti yako.","enable":"Wezesha","noProviderKeys":"Bado hakuna funguo za mtoa huduma. Ongeza moja hapo juu ili kuanza kuelekeza.","filterPlaceholder":"Chuja watoa huduma au funguo","filterAll":"Wote","filterHealthy":"Mwenye afya","filterIssues":"Masuala","filterDisabled":"Imezimwa","noFilterMatch":"Hakuna watoa huduma wanaolingana na vichujio vyako.","providerCountSummary":"Watoa huduma wa {providers} · funguo za {keys}","summaryHealthy":"{count} afya","summaryIssueOne":"Toleo la {count}","summaryIssueOther":"Maswala ya {count}","providerActions":"Vitendo vya mtoaji","routeViaProxy":"Njia kupitia seva mbadala","checkNow":"Angalia sasa","syncModels":"Sync models with upstream","syncModelsResult":"Model list synced: {added} added, {total} live","syncModelsFailed":"Model sync failed: {reason}","syncAllModels":"Sync all providers","syncAllPending":"Syncing…","syncAllResult":"Synced {count} provider(s): {registered} model(s) registered","syncAllFailed":"Sync all failed: {reason}","syncAllNoChanges":"All provider rosters are already up to date","syncAllDialogTitle":"Sync Results","syncAllDialogSummary":"Changes detected in {changed} of {total} providers","syncAllNew":"+{count} new","syncAllUpdated":"{count} updated","syncAllRetired":"{count} retired","syncAllNewModels":"New models","syncAllUpdatedModels":"Updated models","syncAllRetiredModels":"Retired models","syncAllDialogClose":"Done","proxyEnvHintBefore":"Pia inaweza kusanidiwa kupitia","proxyEnvHintAfter":"kutofautisha kwa mazingira (huchukua nafasi ya kwanza). Acha wazi ili kuzima. Mifano:","importKeys":"Ingiza funguo za mtoa huduma","importKeysDescription":"Pakia .env, JSON, JSONC, CSV, Markdown, au faili za maandishi.","importFiles":"Faili","importFileCount":"{count} imechaguliwa","previewFiles":"Hakiki","previewing":"Inakagua...","selected":"Imechaguliwa","provider":"Mtoa huduma","keyName":"Jina muhimu","keyValue":"Thamani muhimu","chooseProvider":"Chagua mtoaji","noPreviewKeys":"Hakuna funguo zilizopatikana katika faili hizo.","skippedItems":"Imeruka:","moreItems":"+{count} zaidi","importSelected":"Ingiza {count}","importing":"Inaleta...","noImportSelection":"Chagua angalau safu mlalo moja na mtoaji.","duplicate":"Nakala","duplicatesFound":"Nakala mbili za {count} zimetambuliwa - tayari zipo na zitarukwa.","importResult":"Zilizoingizwa {imported}; imeshindwa {failed}.","importModelCount":"+{count} miundo","importResultWithModels":"Zilizoingizwa {imported}; miundo {models} imesajiliwa; imeshindwa {failed}.","confirmRemove":"Thibitisha?","quotaSignalsTitle":"Ishara za quota","quotaSignalsEmptyTitle":"Bado hakuna uchunguzi wa kiasi","quotaSignalsEmptyDesc":"Hii hujazwa baada ya watoa huduma kurudisha vichwa vya viwango vya viwango, hitilafu za kiasi, au ishara za uthibitishaji.","quotaKeyRef":"ufunguo #{id}","quotaPoolRef":"bwawa {pool}","quotaLimit":"Kikomo","quotaRemaining":"Iliyosalia","quotaReset":"Weka upya","quotaObserved":"Imezingatiwa","tabAgents":"Mawakala","familyGeminiPro":"Gemini Pro","familyGeminiFlash":"Gemini Flash","familyGeminiFlashLite":"Gemini Flash-Lite","geminiTitle":"Ulinganishaji wa miundo ya Gemini","geminiDesc":"Linganisha majina ya Gemini Pro, Flash, na Flash-Lite na Auto au muundo maalum wa katalogi.","compatibilityTitle":"Ulinganifu wa mawakala","compatibilityDesc":"Dhibiti nyuso za ulinganifu za hiari na ugunduzi wa miundo wa Claude Code.","ollamaMode":"Uigaji wa Ollama","ollamaModeHint":"Loopback iliyo wazi haikubali kamwe trafiki ya LAN isiyothibitishwa.","ollamaOff":"Imezimwa","ollamaLoopback":"Wazi kwenye loopback","ollamaKeyRequired":"Ufunguo wa API unahitajika","claudeAliases":"Lakabu za ugunduzi za Claude Code","claudeAliasesHint":"Onyesha lakabu za claude/<model> ili kichaguzi cha miundo cha lango kiweze kuorodhesha katalogi.","mcpServer":"Seva ya MCP","mcpServerHint":"Hufungua kiungo /mcp kwa wateja wa mawakala. Usakinishaji mpya huanza ukiwa umezimwa.","urlTokensTitle":"Tokeni za URL zinazoweza kubatilishwa","urlTokensDesc":"Kwa wateja wasio na vichwa pekee. Tokeni za URL zinaweza kuvuja kwenye historia na kumbukumbu, kwa hivyo zibatilishe zisipohitajika tena.","urlTokenLabel":"Lebo ya tokeni","createUrlToken":"Unda tokeni","urlTokenOnce":"Nakili tokeni hii sasa. Haitaonyeshwa tena.","revoked":"Imebatilishwa","revoke":"Batilisha","modelScope":"Wigo wa modeli","modelScopeDesc":"Wekea ufunguo huu kikomo cha ID mahususi za modeli. Kipanga njia kinaruka ufunguo huu kwa modeli nyingine yoyote.","modelScopeAdd":"Andika ID ya modeli kisha ubonyeze Enter","modelScopeEmpty":"Hakuna wigo uliowekwa — ufunguo huu unahudumia modeli zote za mtoa huduma wake.","modelScopeClear":"Futa wigo","modelScopeBadgeOne":"imezuiliwa · modeli 1","modelScopeBadgeOther":"imezuiliwa · modeli {count}","modelPicker":{"title":"Ufunguo huu unapaswa kuhudumia modeli zipi?","hint":"Ufunguo wako wa {provider} umeongezwa na kwa sasa unahudumia kila modeli iliyo hapa chini. Ondoa alama kwenye modeli yoyote ambayo ufunguo huu hauruhusiwi kutumia — kipanga njia kitaruka ufunguo huu kwa modeli hizo.","count":"{selected} kati ya {total} zimechaguliwa","allNote":"Zote zimechaguliwa — hakuna kinachohifadhiwa, na modeli zitakazoongezwa kwenye katalogi baadaye pia zitatumia ufunguo huu.","subsetNote":"Ufunguo huu utawekewa kikomo cha modeli zilizochaguliwa. Unaweza kubadilisha hili baadaye kutoka safu ya ufunguo.","skip":"Si sasa","scopedOne":"Ufunguo umezuiliwa kwa modeli 1","scopedOther":"Ufunguo umezuiliwa kwa modeli {count}","allSaved":"Key serves every catalog model"},"cpTitle":"Wasifu wa wateja","cpDesc":"Funguo za API kwa kila mteja, kila mmoja na maelekezo ya mfumo ambayo seva hutumia kila wakati.","cpEmpty":"Bado hakuna wasifu wa wateja.","cpNameLabel":"Jina","cpNamePlaceholder":"k.m. Boti ya usaidizi","cpPromptLabel":"Maelekezo ya mfumo (hiari)","cpPromptPlaceholder":"Maelekezo ambayo seva huweka mwanzoni mwa kila ombi linalofanywa kwa ufunguo huu.","cpCreate":"Unda wasifu","cpRotate":"Badilisha ufunguo","cpKeyOnce":"Nakili ufunguo huu sasa — hautaonyeshwa tena.","cpEnabledAria":"Wasifu umewashwa","selectKey":"Chagua ufunguo huu","bulkSelected":"{count} zimechaguliwa","bulkEnable":"Wezesha zote","bulkDisable":"Zima zote","bulkDelete":"Futa zote","bulkDeleteConfirm":"Futa {count}?","bulkResult":"Zimesasishwa {done}; zimeshindwa {failed}.","bulkDeleteResult":"Zimefutwa {done}; zimeshindwa {failed}.","testProxy":"Test","testingProxy":"Testing…","proxyTestOk":"Proxy works — {ms}ms round trip","proxyTestFail":"Proxy failed: {reason}","editKey":"Hariri ufunguo","editPlatformLocked":"Muuzaji na endpoint haziwezi kubadilishwa baada ya kuumbwa.","editCredentialHint":"Iache wazi ili kupeteza ufunguo wa sasa.","editCredentialPartsRequired":"Weka ID ya akaunti na tokeni ya API.","editModels":"Hariri mifano","editModelsHint":"Choose which catalog models this key may serve. Select everything to clear the scope so future catalog models use it too.","editModelsCustomHint":"Choose which registered endpoint models this key may serve. Select everything to clear the scope.","editModelsSync":"Check catalog updates","editModelsSyncing":"Checking…","editModelsSynced":"Model catalog checked","outlookUnavailable":"Unavailable","outlookNoForecasts":"Forecast unavailable. More recent traffic or reliable quota readings are needed.","outlookCoverage":"Forecasts available for {count} of {total} pools.","outlookTraffic":"{count} successful requests through this instance in the last {minutes} minutes.","outlookMinimumTraffic":"An exhaustion forecast needs at least {count} successful requests within {minutes} minutes.","outlookNotReportedHint":"The provider has not reported a usable request balance and limit. Local usage is shown; remaining quota is unavailable.","outlookMissingResetHint":"The provider did not report a valid reset time. Remaining quota cannot support an exhaustion forecast.","outlookConfidenceHint":"This balance is not reliable enough for an exhaustion forecast.","outlookObserved":"Balance observed: {time}","outlookUnavailablePools":"Unavailable quota pools ({count})","outlookTitle":"Quota outlook","outlookInsufficient":"Not enough data","outlookLowBalance":"Low balance","outlookRunningLow":"Running low soon","outlookStale":"Needs fresh data","outlookUnknown":"Unknown","outlookWithinQuota":"Within quota","outlookResetsFirst":"Not before reset","outlookExhausted":"Already exhausted","outlookLastReported":"requests last reported","outlookRequestsLeft":"requests left","outlookNotReported":"Not reported","outlookRate":"Recent rate","outlookRateValue":"{count} req/min","outlookRunsOut":"May run out","outlookStaleHint":"This balance is old or its window has expired. A fresh provider reading is needed.","outlookError":"Could not load quota forecasts. Raw observations are still available below.","outlookRetry":"Retry","outlookAttention":"Quota pools needing attention: {count}","outlookNoWarnings":"No forecast warnings. Pools with insufficient data may still be limited.","outlookHint":"Rates count successful requests through this instance only, not usage elsewhere. Forecasts require recent provider balances and reported resets. Warnings appear below 20% remaining or when quota may run out within two hours, before reset.","outlookRaw":"Raw quota observations","addCustomModel":"Ongeza Muundo Maalum","modelId":"Kitambulisho cha Muundo","modelIdRequired":"Kitambulisho cha muundo kinahitajika","modelDisplayName":"Jina la Kuonyesha","modelContextWindow":"Dirisha la Muktadha (tokeni)","modelRateLimits":"Kikomo cha Viwango (hiari)","modelSupportsTools":"Inasaidia wito wa zana","modelSupportsToolsHint":"Washa ikiwa muundo huu unaweza kuita vitendaji au zana","modelSupportsVision":"Inasaidia picha","modelSupportsVisionHint":"Washa ikiwa muundo huu unakubali picha","createModel":"Unda Muundo","modelAddedSuccess":"Muundo maalum umeongezwa kwa mafanikio","modelAddFailed":"Imeshindwa kuongeza muundo maalum","testModel":"Jaribu","testingModel":"Inajaribu…","testPassedShort":"Imefaulu","testFailedShort":"Imeshindwa","testPassed":"Jaribio la muundo limefaulu kwa {latency}ms","testFailed":"Jaribio la muundo limeshindwa","testThrottled":"Tafadhali subiri sekunde {seconds} kabla ya kujaribu muundo huu tena.","noModelsForProvider":"Hakuna miundo iliyowekwa kwa mtoa huduma huyu.","testModels":"Jaribu miundo","syncAllCatalog":"Catalog: +{inserted} added, ~{updated} updated, -{removed} removed","requestCapLabel":"Request cap","tokenCapLabel":"Token cap","budgetPeriodLabel":"Budget period","budgetPeriodDaily":"Daily","budgetPeriodWeekly":"Weekly","budgetPeriodMonthly":"Monthly","budgetPeriodAuto":"Auto (follow provider)","autoResolvedDaily":"Detected provider cycle: daily","autoResolvedMonthly":"Detected provider cycle: monthly","autoResolvedFallback":"Provider cycle unknown, defaulting to monthly","capUnlimitedPlaceholder":"Bila kikomo","capEditHint":"Caps reset at the next period boundary, 00:00 UTC. Leave blank for unlimited.","monthlyUsageLine":"Maombi {requests}, tokeni {tokens} mwezi huu","monthlyUsageRequests":"{requests} requests","monthlyUsageTokens":"{tokens} tokens","monthlyUsageRequestsRelative":"{used} / {cap} ({remaining} left) requests","monthlyUsageTokensRelative":"{used} / {cap} ({remaining} left) tokens","monthlyUsageReset":"reset {date}"}`),backups:{title:`Backups`,description:`Save the routing data to a .sql file beside the database, and restore it later.`,excludedNote:`A backup carries your providers, models, routing settings and request history. Accounts, sessions and URL tokens are never included, so a dump holds no password hashes or login tokens and restoring one cannot log you out. Provider keys stay encrypted with this server's ENCRYPTION_KEY: a backup can only be restored on a server that still holds that key.`,selectHint:`Back up everything, or pick the tables you need.`,selectAll:`Select all`,deselectAll:`Clear`,fullBackup:`Full backup`,backupSelected:`Back up selected ({count})`,created:`Backup written to {filename}`,list:`Backups on disk`,empty:`No backups yet`,full:`All tables`,tablesCount:`{count} tables`,manual:`Manual`,scheduled:`Scheduled`,preRestore:`Pre-restore`,download:`Download`,restore:`Restore`,confirmRestore:`Replace data?`,restored:`Restored. The previous data was saved as {filename}.`,delete:`Delete backup`,prevPage:`Previous`,nextPage:`Next`,autoTitle:`Automatic backups`,autoHint:`The server writes a full backup on this cadence.`,time:`Time (HH:mm)`,intervalDays:`Every N days`,path:`Folder`,pathPlaceholder:`backups`,pathHint:`Relative to the database directory. Backups cannot be written outside it.`,save:`Save schedule`,saved:`Saved`},status:{healthy:`afya`,rateLimited:`kiwango-mdogo`,invalid:`batili`,error:`kosa`,unchecked:`haijadhibitiwa`},analytics:{title:`Uchanganuzi`,description:`Omba kiasi, muda wa kusubiri, matumizi ya tokeni na kushindwa.`,range24h:`24h`,range7d:`7d`,range30d:`30d`,range90d:`90d`,requests:`Maombi`,successRate:`Kiwango cha mafanikio`,inputTokens:`Ishara za kuingiza`,outputTokens:`Tokeni za pato`,avgLatency:`Muda wa wastani wa kusubiri`,p95Latency:`Muda wa kusubiri wa P95`,avgTtft:`Wastani TTFT`,estSavings:`Est. akiba`,requestsByProvider:`Maombi ya mtoaji`,avgLatencyByProvider:`Wastani wa kusubiri kwa mtoa huduma`,ttftByProvider:`Muda wa tokeni ya kwanza na mtoa huduma`,ttftEmpty:`Hakuna muda wa tokeni ya kwanza kurekodiwa bado.`,requestsOverTime:`Maombi kwa muda`,tokensOverTime:`Ishara kwa wakati`,byModel:`Kwa mfano`,byPlatform:`Kwa jukwaa`,errors:`Makosa`,errorDistribution:`Usambazaji wa hitilafu`,pinnedRequests:`Maombi yaliyobandikwa`,pinnedHonored:`Kuheshimiwa`,fallbackAttempts:`Majaribio ya kurudi nyuma`,savingsHint:"Umehifadhi ${actual} zaidi ya {range} iliyopita. Hiyo ndiyo tokeni zile zile zingegharimu API zinazolipiwa, bei kwa kila modeli. Nambari iliyoonyeshwa inakuza kasi yako kutoka {span} ya mwisho ya data hadi siku 30 kamili.",savingsHintExact:"Umehifadhi ${actual} zaidi ya {range} iliyopita. Hiyo ndiyo tokeni zile zile zingegharimu API zinazolipiwa, bei kwa kila modeli. Nambari iliyoonyeshwa ni jumla yako halisi ya siku 30.",requestsHintPinned:`{pinned} ya maombi haya yalibandikwa modeli maalum kwa jina. {honored} zilihudumiwa na kielelezo kilichobandikwa; {failed} imeshindwa hadi nyingine tofauti. Zingine zilielekezwa kiotomatiki.`,requestsHintAuto:`Maombi yote katika kipindi hiki yalielekezwa kiotomatiki; hakuna mteja aliyebandika mfano maalum kwa jina.`,requestsHintTypes:`{chat} chat na {embedding} maombi ya kupachika.`,rangeLabel24h:`Saa 24`,rangeLabel7d:`siku 7`,rangeLabel30d:`siku 30`,rangeLabel90d:`siku 90`,spanDays:`Siku za {count}`,spanHours:`Saa za {count}`,latencyMs:`Kuchelewa (ms)`,latency:`Kuchelewa`,pinned:`Imebandikwa`,inTokens:`Katika ishara`,outTokens:`Ishara za nje`,saved:`Imehifadhiwa`,message:`Ujumbe`,time:`Wakati`,perModelBreakdown:`Uchanganuzi wa kila mfano`,usageByKey:`Matumizi kwa ufunguo`,keyColumn:`Ufunguo`,keyLabelFallback:`Ufunguo #{id}`,errorsByProvider:`Makosa ya mtoa huduma`,recentErrors:`Makosa ya hivi majuzi`,noErrors:`Hakuna makosa`,recentCalls:`Simu za hivi majuzi`,clientIp:`IP ya mteja`,clientAgent:`Programu ya mteja`,requestedModelHint:`Umeomba {model}, ukitolewa kwa njia mbadala`,attempts:`Majaribio`,filterAll:`Wote`,filterCanceled:`Zilizoghairiwa`,providerBreakdown:`Uchanganuzi wa kila mtoaji`,tokensPerSec:`Tok/s`,allProviders:`Watoa huduma wote`,requestDetailTitle:`Ombi #{id}`,failoverLadder:`Ngazi ya kushindwa`,failoverLadderHint:`Kila ruka ombi hili lilipitia msururu wa kurudi nyuma, kwa mpangilio.`,noAttemptTrace:`Hakuna ufuatiliaji wa jaribio uliorekodiwa kwa ombi hili.`,keyOrdinal:`ufunguo #{n}`,keyBadge:`Ufunguo #{n}`,attemptTimingHint:`Anza kukabiliana na ombi kuanza · muda wa jaribio`,requestedModel:`Umeomba muundo`,ttft:`TTFT`,requestsByAgent:`Maombi kwa kila wakala`,sortBy:`Panga kwa {column}`,sortHint:`Upangaji unatumika kwa safu {count} zilizopakiwa`,cacheHitRate:`Kiwango cha mafanikio ya akiba`,cacheSavedTokens:`Tokeni {tokens} zimehifadhiwa`,cacheHitRateHint:`Mafanikio {hits} dhidi ya makosa {misses} tangu seva ianze · miito {requests} kwa mtoa huduma imeepukwa`},logs:{title:`Kumbukumbu`,description:`Kumbukumbu ya seva ya moja kwa moja. Maingizo mapya huingia wakati ukurasa umefunguliwa.`,pause:`Sitisha`,resume:`Endelea`,clear:`Futa kumbukumbu`,cleared:`Kumbukumbu ya seva imefutwa`,levelFilter:`Viwango vya kumbukumbu`,levels:{debug:`Utatuzi`,info:`Taarifa`,warn:`Onyo`,error:`Hitilafu`},countsHint:`Idadi ni jumla ya bafa nzima ya kumbukumbu kwenye seva, si maingizo yanayolingana na vichujio hivi pekee.`,searchPlaceholder:`Tafuta ujumbe wa kumbukumbu...`,jumpToLatest:`Nenda kwenye za hivi punde`,showMore:`Onyesha zaidi`,showLess:`Onyesha kidogo`,buffered:`Inaonyesha {count} kati ya maingizo {max} yaliyohifadhiwa kwenye bafa`,emptyTitle:`Bado hakuna maingizo ya kumbukumbu`,emptyDescription:`Maingizo huonekana hapa seva inapoyaandika. Panua vichujio vya kiwango, mtoa huduma au utafutaji ikiwa ulitarajia matokeo.`,noLevelsTitle:`Hakuna kiwango kilichochaguliwa`,noLevelsDescription:`Washa angalau kiwango kimoja ili kuona matokeo ya kumbukumbu.`,loadFailed:`Imeshindwa kupakia kumbukumbu ya seva.`},playground:{title:`Uwanja wa michezo`,description:`Tuma kukamilika kwa mazungumzo kupitia kipanga njia na uone ni mtoa huduma gani anayeihudumia.`,autoModel:`Otomatiki (msururu wa kurudi nyuma)`,fusionModel:`Fusion (muundo wa miundo mingi)`,selectModel:`Chagua mfano`,searchModels:`Tafuta miundo...`,noModelsFound:`Hakuna miundo iliyopatikana`,send:`Tuma`,sending:`Inatuma...`,clear:`Wazi`,inputPlaceholder:`Andika ujumbe… (⏎ kutuma, ⇧⏎ kwa laini mpya)`,emptyTitle:`Tuma ujumbe ili kuanza.`,emptyDescription:`Kwa kutumia {model}. Badili miundo katika kiteuzi hapo juu.`,noModels:`Hakuna mifano bado. Ongeza kitufe cha API kwenye ukurasa wa Vifunguo ili kujaza orodha hii.`,copyReply:`Nakili jibu`,fallback:`kurudi nyuma`,fallbacks:`makosa`,fusionPanel:`Paneli`,fusionJudge:`Hakimu`,fusionTrace:`Majibu ya muundo wa {count}`,fusionFailed:`hakuna majibu`,fusionJudgeSynth:`kuunganisha jibu la mwisho`,errorPrefix:`Hitilafu:`,systemPromptLabel:`Agizo la mfumo`,systemPromptPlaceholder:`Hiari. Imetumwa kama ujumbe wa mfumo kabla ya gumzo lako.`,showSettings:`Onyesha mipangilio`,hideSettings:`Ficha mipangilio`,samplingHeading:`Sampuli`,samplingHelp:`Ikizimwa, chaguomsingi la mtoa huduma mwenyewe hutumika. Ni vidhibiti unavyowasha pekee vinavyotumwa.`,samplingDefault:`Chaguomsingi`,temperature:`Halijoto`,topP:`Top P`,maxTokens:`Kiwango cha juu cha ishara`,errorTitle:`Ombi halijafaulu`,attach:`Ambatisha faili`,attachTooMany:`Unaweza kuambatisha hadi faili {count} kwa kila ujumbe.`,attachTooLarge:`{name} ni kubwa mno. Kikomo ni {max}.`,attachUnsupported:`{name} haitumiki. Ambatisha picha (PNG, JPEG, WebP, GIF) au faili za maandishi (TXT, MD, CSV, JSON, LOG).`,attachFailed:`Imeshindwa kusoma {name}.`,noVisionBadge:`Hakuna picha`,visionWarning:`{model} haikubali picha. Chagua muundo wa maono au Otomatiki.`,dictate:`Sema uandikishe`,dictationStop:`Simamisha kurekodi`,dictationTranscribing:`Inanukuu…`,dictationUnavailable:`Ongeza watoa huduma wa miundo ya sauti ili kutumia kusema uandikishe.`,dictationModel:`Muundo wa kusema uandikishe`,dictationFailed:`Unukuzi umeshindwa: {reason}`,artifactOpen:`Fungua onyesho la kukagua`,artifactPreview:`Onyesho la kukagua`,artifactCode:`Msimbo`,artifactClose:`Funga onyesho la kukagua`,artifactDownload:`Pakua`,artifactReload:`Pakia upya onyesho`,artifactHtml:`Ukurasa wa HTML`,artifactSvg:`Picha ya SVG`,artifactLines:`mistari`,artifactResize:`Badilisha ukubwa wa onyesho`},playgroundSessions:{heading:`Mazungumzo`,newConversation:`Mazungumzo mapya`,showSidebar:`Onyesha mazungumzo`,hideSidebar:`Ficha mazungumzo`,empty:`Bado hakuna mazungumzo yaliyohifadhiwa.`,untitled:`Mazungumzo yasiyo na jina`,rename:`Badilisha jina`,renamePlaceholder:`Jina la mazungumzo`,messageCount:`Ujumbe {count}`,justNow:`sasa hivi`,minutesAgo:`dk {count} zilizopita`,hoursAgo:`saa {count} zilizopita`,daysAgo:`siku {count} zilizopita`,loadFailed:`Imeshindwa kufungua mazungumzo hayo.`,renameFailed:`Imeshindwa kubadilisha jina la mazungumzo hayo.`,deleteFailed:`Imeshindwa kufuta mazungumzo hayo.`,actions:`Vitendo vya mazungumzo`,newChat:`Gumzo jipya`},embeddings:{title:`Mifano`,description:`Upachikaji hushindikana ndani ya familia pekee: muundo sawa unaotolewa na mtoa huduma mwingine. Vekta kutoka kwa mifano tofauti haziendani, kwa hivyo kipanga njia hakibadilishi mifano kwako.`,defaultBadge:`Chaguo-msingi · otomatiki`,makeDefault:`Fanya chaguomsingi`,moveUp:`Sogeza juu`,moveDown:`Sogeza chini`,usageToday:`{count} req leo`,usageMonth:`{count} mwezi huu`,autoDescription:`model: "auto" kwenye njia za POST /v1/embeddings hadi kwa familia chaguo-msingi. Kutaja familia (au kitambulisho cha mfano wa mtoa huduma) kunabandika familia hiyo; watoa huduma ndani yake wanajaribiwa kwa utaratibu.`,unsavedChanges:`Mabadiliko ambayo hayajahifadhiwa`,saveChanges:`Hifadhi mabadiliko`,savingChanges:`Inahifadhi...`,tokMax:`{tokens} tok max`,emptyTitle:`Bado hakuna miundo ya kupachika`,emptyDesc:`Familia zinazopachika huonekana hapa pindi tu unapoongeza ufunguo wa mtoa huduma unaoauni upachikaji.`,dragToReorder:`Buruta ili upange upya mtoa huduma`},fusion:{title:`Fusion`,description:`Jopo la mifano hujibu sambamba, kisha jaji huunganisha jibu moja lenye nguvu zaidi. Itumie kwa kuita API na mfano "fusion".`,panelSource:`Chanzo cha paneli`,panelSourceHelp:`Miundo ya kidirisha inatoka wapi wakati ombi halibainishi lake.`,mode:{auto:`Auto (Fallback Chain)`,autoHelp:`Chagua seti mbalimbali za miundo kutoka kwenye Fallback Chain yako, iliyoorodheshwa kulingana na mkakati wako amilifu wa uelekezaji.`,explicit:`Paneli iliyo wazi`,explicitHelp:`Daima tumia mifano maalum unayochagua hapa chini.`},panelModels:`Mifano ya paneli`,selectedCount:`{count} kati ya {max} imechaguliwa`,noModels:`Bado hakuna miundo iliyounganishwa. Ongeza kitufe cha API, kisha uwashe miundo katika Msururu wa Nyuma.`,panelSize:`Ukubwa wa paneli`,panelSizeHelp:`Ni miundo mingapi tofauti ya kuchagua kiotomatiki (1–{max}).`,judge:`Jaji mfano`,judgeHelp:`Muundo unaounganisha majibu ya paneli kuwa moja. Kiotomatiki hutumia muundo wako unaopatikana wa nafasi ya juu.`,judgeAuto:`Otomatiki (nafasi ya juu inapatikana)`,strategy:`Mkakati`,strategySynthesize:`Sanisi — changanya kidirisha kuwa jibu moja`,strategyBestOf:`Bora zaidi - rudisha jibu moja lenye nguvu zaidi (hakuna simu ya hakimu)`,strategySynthesizeShort:`Sanisi`,strategyBestOfShort:`Bora zaidi`,exposePanel:`Fichua maelezo ya kidirisha`,exposePanelHelp:`Ambatisha jibu la kila mfano na metadata ya jaji chini ya uwanja wa x_fusion kwenye majibu.`,howToUse:`Jinsi ya kutumia`,howToUseHelp:`Tuma ombi la kawaida la gumzo na muundo wa "fusion". Mipangilio hii ndiyo chaguo-msingi; ombi lolote linaweza kuzibatilisha kwa uga wa "fusion".`,unsavedChanges:`Mabadiliko ambayo hayajahifadhiwa`,save:`Hifadhi`,searchPlaceholder:`Search models…`,providerFilterLabel:`Filter by provider`,providerAll:`All providers`,noMatch:`No models match your search.`},premium:{title:`Premium`,description:`Katalogi ya muundo wa moja kwa moja, kwenye kila kifaa.`,loading:`Inapakia...`,checkForUpdates:`Angalia masasisho`,syncing:`Inasawazisha...`,catalogFeed:`Mlisho wa katalogi`,liveFeed:`Mlisho wa moja kwa moja`,monthlySnapshot:`Picha ya kila mwezi`,lastChecked:`Mara ya mwisho kuangaliwa: {when}`,liveDescription:`Miundo mipya isiyolipishwa, mabadiliko ya kiasi, na marekebisho ya hali ya juu hutua hapa ndani ya saa chache baada ya kusafirishwa. Programu hukagua kiotomatiki mara mbili kwa siku; hakuna cha kufanya.`,snapshotDescription:`Kiwango cha bure: katalogi huonyeshwa upya kutoka kwa muhtasari wa kila mwezi, iliyoangaliwa kiotomatiki mara mbili kwa siku. Premium hubadilisha hii hadi mipasho ya moja kwa moja, inayosasishwa kila baada ya siku 2-3.`,lastSyncProblem:`Tatizo la mwisho la kusawazisha: {error}`,license:`Leseni`,planAnnual:`Premium ya Mwaka`,planLifetime:`Premium Lifetime`,expired:`Muda wake umeisha`,inactive:`Isiyotumika`,lifetimeNote:`Leseni ya maisha yote: haiisha muda wake.`,renewsOn:`Inasasishwa kwenye {date}.`,willNotRenew:`Haitajifanya upya. Inalipishwa hadi {date}, basi usakinishaji huu utarejeshwa kwenye katalogi isiyolipishwa ya kila mwezi.`,keyInactive:`Ufunguo huu hautumiki tena. Programu inaendelea kufanya kazi kwenye katalogi isiyolipishwa ya kila mwezi.`,manageSubscription:`Dhibiti usajili`,openingPortal:`Inafungua...`,removeKey:`Ondoa ufunguo kwenye kifaa hiki`,manageHint:`Kudhibiti usajili hufungua tovuti ya malipo ya Stripe: ghairi, sasisha kadi yako, au pakua ankara. Kuondoa ufunguo kunazima kifaa hiki tu; ununuzi wako haujaguswa.`,licenseKey:`Kitufe cha leseni`,licenseKeyPlaceholder:`fla_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`,activate:`Washa`,activating:`Inawasha...`,keyHint:`Ufunguo wako upo kwenye barua pepe yako ya ununuzi na kwenye ukurasa wa baada ya kulipa. Umeipoteza?`,recoverKey:`Rejesha kwenye tovuti`,upsellTitle:`Nenda moja kwa moja kwa $19 kwa mwaka`,upsellDescription:`Aina mpya zisizolipishwa zinapokuwepo, badala ya siku 30 baadaye. Kitufe kimoja, kila kifaa. Ghairi wakati wowote; router inakaa bure milele.`,goPremium:`Nenda kwenye Premium`,bundled:`vifurushi`,planGeneric:`Premium`},languages:{en:`English`,"zh-CN":`中文 (简体)`,es:`Español`,fr:`Français`,"pt-BR":`Português (Brasil)`,it:`Italiano`,hi:`हिन्दी`,ar:`العربية`,bn:`বাংলা`,ru:`Русский`,ur:`اردو`,id:`Bahasa Indonesia`,de:`Deutsch`,ja:`日本語`,sw:`Kiswahili`,mr:`मराठी`,te:`తెలుగు`,tr:`Türkçe`,ta:`தமிழ்`,vi:`Tiếng Việt`,ko:`한국어`,fa:`فارسی`,th:`ไทย`,gu:`ગુજરાતી`,pl:`Polski`,uk:`Українська`,kn:`ಕನ್ನಡ`,ml:`മലയാളം`,or:`ଓଡ଼ିଆ`,my:`မြန်မာဘာသာ`,pa:`ਪੰਜਾਬੀ`,ro:`Română`,nl:`Nederlands`,ms:`Bahasa Melayu`,tl:`Filipino`,ha:`Hausa`,yo:`Yorùbá`,ig:`Igbo`,am:`አማርኛ`,uz:`Oʻzbekcha`,az:`Azərbaycanca`,si:`සිංහල`,ne:`नेपाली`,km:`ខ្មែរ`,el:`Ελληνικά`,cs:`Čeština`,hu:`Magyar`,sv:`Svenska`,he:`עברית`,da:`Dansk`,fi:`Suomi`,no:`Norsk`,sk:`Slovenčina`,bg:`Български`,hr:`Hrvatski`,sr:`Српски`,lt:`Lietuvių`,"zh-TW":`中文 (繁體)`,"pt-PT":`Português (Portugal)`,ka:`ქართული`},errors:{boundaryTitle:`Hitilafu fulani imetokea`,boundaryDescription:`Dashibodi iligonga hitilafu isiyotarajiwa. Data yako iko salama. Jaribu tena au urudi kwenye ukurasa wa mifano.`,tryAgain:`Jaribu tena`,goHome:`Rudi kwa mifano`},notFound:{title:`Ukurasa haujapatikana`,description:`Ukurasa huu haupo au huenda umehamishwa.`},setup:{title:`Kuanza`,subtitle:`Hatua tatu za kuelekeza ombi lako la kwanza.`,progress:`{done} ya {total}`,step1Title:`Ongeza ufunguo wa mtoa huduma`,step1Desc:`Unganisha angalau akaunti moja ya mtoa huduma. Vifunguo vya bure hufanya kazi.`,step1Cta:`Ongeza funguo`,step2Title:`Tuma ombi la jaribio`,step2Desc:`Chagua muundo wowote kwenye Uwanja wa Michezo na useme hujambo.`,step2Cta:`Fungua Uwanja wa Michezo`,step3Title:`Unganisha programu yako`,step3Desc:`Tumia ufunguo wako uliounganishwa wa API na kiteja chochote kinachooana na OpenAI.`,copyKey:`Nakili ufunguo wa API`,copyUrl:`Nakili msingi URL`,copiedKey:`Kitufe cha API kimenakiliwa kwenye ubao wa kunakili`,copiedUrl:`URL ya msingi imenakiliwa kwenye ubao wa kunakili`},palette:{title:`Palette ya amri`,placeholder:`Tafuta kurasa, miundo, vitendo...`,empty:`Hakuna matokeo`,groupPages:`Kurasa`,groupActions:`Vitendo`,groupModels:`Mifano`,toggleTheme:`Geuza hali ya giza`},validation:{required:`Inahitajika`,url:`Weka URL halali ukianza na http:// au https://`,email:`Weka barua pepe halali`,passwordMin:`Angalau vibambo {min}`},agents:{title:`Mawakala wa usimbaji`,description:`Unganisha zana za usimbaji na lango moja la miundo ya bure kwa usanidi ulioundwa na ulio salama kwa hifadhi rudufu.`,apiKey:`Ufunguo wa API`,quickstartTitle:`Anza haraka`,quickstart:`Njia ya haraka zaidi: sanidi Claude Code kutoka kwenye katalogi ya moja kwa moja.`,currentKey:`Ufunguo wa pamoja wa sasa:`,seenRecently:`Imeonekana hivi karibuni`,setupLabel:`Usanidi otomatiki`,setupHint:`Huandika faili ya usanidi ya zana hii kwa niaba yako, ikielekeza kwenye lango hili.`,setupGuideHint:`Huonyesha hatua za usanidi za zana hii; hakuna faili inayoandikwa.`,manualLabel:`Muunganisho wa mikono`,manualHint:`URL msingi na ufunguo wa kuweka katika mipangilio ya zana yenyewe.`,endpoint:`Kituo cha mwisho`,documentation:`Nyaraka`,descriptions:{claude:`Anthropic's terminal agent: it plans, edits files, and runs commands in your repo.`,codex:`OpenAI's terminal agent, which runs your task in a local sandbox first.`,cline:`A VS Code extension that asks you to approve every edit and command.`,continue:`A VS Code and JetBrains extension for inline autocomplete and chat while you type.`,aider:`A command-line pair programmer that turns each change into its own git commit.`,opencode:`A provider-agnostic terminal agent with a full-screen text interface.`,goose:`Block's local agent, extended with MCP servers to reach past your code.`,qwen:`A Gemini CLI fork tuned for Qwen models and large repositories.`,roo:`A VS Code extension with switchable modes: architect, coder, debugger.`,kilo:`A VS Code extension merging Roo and Cline, with an orchestrator that splits up work.`,crush:`Charm's terminal agent, written in Go, with one session per project.`,dsh:`DeepSeek's harness, which keeps every provider as a route you can switch between.`,mimo:`Xiaomi's terminal agent, an OpenCode fork that takes any OpenAI-compatible provider.`,cursor:`The AI-first editor; it calls through Cursor's cloud, so it needs a public URL.`,generic:`Anything else that speaks the OpenAI API, set up by hand from a base URL and key.`,atomcode:`AtomGit's terminal agent, written in Rust, that takes any OpenAI-compatible endpoint.`,openclaw:`Msaidizi binafsi anayefanya kazi muda wote na kujibu kwenye WhatsApp, Telegram, Discord na zaidi kutoka kwenye mashine yako mwenyewe.`,hermes:`Wakala wa Nous Research anayejiboresha mwenyewe, mwenye kumbukumbu ya kudumu na ujuzi, kwenye terminal au kwenye programu za gumzo.`,pi:`Wakala mdogo wa terminal unaomuunda kwa viendelezi, ujuzi na violezo vya maagizo vyako mwenyewe.`}},update:{available:`New version available`,whatsNew:`What's new in v{version}`,publishedOn:`Published {date}`,noNotes:`No release notes were published for this version.`,openRelease:`Open release page`,dismissVersion:`Dismiss this version`,dismiss:`Dismiss`},freeTier:{poolsToggle:`Free-tier pools ({count})`,poolsToggleBare:`Free-tier pools`,summary:`{pools} pools · {budget} tokens/mo counted once per pool · {credits} credits-based · {unpublished} unpublished`,pool:`Pool`,models:`Models`,budget:`Monthly budget`,kind:`Kind`,kindDocumented:`Documented`,kindCredits:`Credits`,kindUnpublished:`Unpublished`,remaining:`Remaining`,resetAt:`Resets at`,disabledModels:`({count} off)`,metricTokens:`tokens`,metricRequests:`requests`,metricCredits:`credits`,metricNeurons:`neurons`,metricOther:`units`,empty:`No enabled models with free-tier budget data.`,poolLabel:`{platform} · shared {scope} pool`,poolLabelBare:`{platform} · shared pool`,poolModels:`{count} models`,poolBudget:`{budget}/mo`,poolBudgetTitle:`One monthly allowance for the whole pool, scaled by the {count} usable keys on this platform. Every model listed under it draws from the same budget.`,poolNoQuota:`no published quota`,poolResets:`resets {time}`,independentBudgets:`independent budgets`},chains:{title:`Fallback chains`,description:`Named chains, each callable as auto:<name> in /v1/models.`,count:`{count} chains`,active:`Active`,default:`Default`,activate:`Activate`,activateHint:`Make this the chain the table below edits and the one auto routes through`,deleteHint:`Delete this chain`,deleteConfirm:`Delete chain "{name}"?`,create:`Create`,createPlaceholder:`Chain name`,createFailed:`Could not create the chain.`,nameRules:`Up to 20 characters: letters, digits, hyphens and underscores.`,startEmpty:`Start empty`,startEmptyHint:`Create the chain with no models in it, and keep new catalog models out of it. Unchecked, it starts as a copy of the default chain.`,curated:`Curated`,curatedHint:`New catalog models are not added to this chain automatically.`,renameHint:`Badilisha jina la mnyororo huu`,renameConfirm:`Badilisha jina la mnyororo "{oldName}" kuwa "{name}"? Wateja wanaoitia auto:{oldName} lazima wabadilike kwa auto:{name}.`,renamePlaceholder:`Jina jipya la mnyororo`,renameFailed:`Imeshindwa kubadilisha jina la mnyororo.`},notifications:{catalogAdded:`{count} new models added from catalog`,catalogAddedFrom:`{count} new models added for {provider}`,catalogRemoved:`{count} models removed from catalog`,catalogRemovedFrom:`{count} models removed for {provider}`,catalogUpdated:`{count} models updated from latest catalog`,catalogUpdatedFrom:`{count} models updated for {provider}`,discoverAdded:`{count} new models from provider {provider}`,discoverRemoved:`{count} models removed from provider {provider}`,degraded:`Degraded mode active — only {healthy}/{total} providers healthy ({pct}%)`,updateAvailable:`Update available: v{version}`},routingStrip:{canceled:`Canceled`,title:`Live routing`,mode:`Mode`,processing:`Processing…`,idle:`Waiting for a request…`,failed:`Failed`,afterAttempts:`Success after {n} attempts`,activeCount:`{n} active`}};export{e as default};