@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:`you@example.com`,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:`การติดตั้งนี้ไม่มีข้อมูล commit`,checkFailed:`ไม่สามารถตรวจสอบการอัปเดตได้`,contactsGithub:`การตรวจสอบเป็นแบบดำเนินการเองและมีการติดต่อ GitHub`,autoUpdateCheck:`ตรวจสอบการอัปเดตอัตโนมัติ`,autoUpdateCheckHelp:`ตรวจสอบ GitHub วันละครั้งว่ามีเวอร์ชันใหม่หรือไม่ และแสดงการแจ้งเตือน ปิดไว้ตามค่าเริ่มต้น`,openReleases:`เปิด GitHub Releases`,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:JSON.parse(`{"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} obs","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:`คะแนน x{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":"ชี้ไคลเอ็นต์ SDK 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":"กำหนดเส้นทางคำขอ LLM ขาออกผ่านพร็อกซี รองรับ 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":". ตรวจสอบให้แน่ใจว่าแบ็กเอนด์กำลังทำงานอยู่ npm run dev เริ่มต้นทั้งสองอย่าง และบันทึกของเซิร์ฟเวอร์จะพิมพ์ภายใต้คำนำหน้าเซิร์ฟเวอร์","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 แยกตามไคลเอนต์ แต่ละคีย์มี system prompt ที่เซิร์ฟเวอร์ใช้เสมอ","cpEmpty":"ยังไม่มีโปรไฟล์ไคลเอนต์","cpNameLabel":"ชื่อ","cpNamePlaceholder":"เช่น บอตฝ่ายสนับสนุน","cpPromptLabel":"System prompt (ไม่บังคับ)","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":"ไม่สามารถเปลี่ยนผู้ให้บริการและ endpoint หลังจากสร้างแล้ว","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":"รหัสโมเดล (Model ID)","modelIdRequired":"ต้องระบุรหัสโมเดล","modelDisplayName":"ชื่อที่แสดง","modelContextWindow":"หน้าต่างบริบท (Tokens)","modelRateLimits":"ขีดจำกัดอัตราคำขอ (ไม่บังคับ)","modelSupportsTools":"รองรับการเรียกใช้เครื่องมือ","modelSupportsToolsHint":"เปิดใช้งานหากโมเดลนี้สามารถเรียกใช้ฟังก์ชันหรือเครื่องมือได้","modelSupportsVision":"รองรับรูปภาพ (Vision)","modelSupportsVisionHint":"เปิดใช้งานหากโมเดลนี้ยอมรับการป้อนข้อมูลด้วยรูปภาพ","createModel":"สร้างโมเดล","modelAddedSuccess":"เพิ่มโมเดลที่กำหนดเองสำเร็จแล้ว","modelAddFailed":"ไม่สามารถเพิ่มโมเดลที่กำหนดเองได้","testModel":"ทดสอบ","testingModel":"กำลังทดสอบ…","testPassedShort":"ผ่าน","testFailedShort":"ล้มเหลว","testPassed":"การทดสอบโมเดลผ่านในเวลา {latency}ms","testFailed":"การทดสอบโมเดลล้มเหลว","testThrottled":"โปรดรอ {seconds} วินาทีก่อนที่จะทดสอบโมเดลนี้อีกครั้ง","noModelsForProvider":"ไม่มีการกำหนดค่าโมเดลสำหรับผู้ให้บริการนี้","testModels":"ทดสอบโมเดล","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:`เวลาแฝง P95`,avgTtft:`เฉลี่ย TTFT`,estSavings:`ประมาณ ออมทรัพย์`,requestsByProvider:`คำขอโดยผู้ให้บริการ`,avgLatencyByProvider:`เวลาแฝงเฉลี่ยตามผู้ให้บริการ`,ttftByProvider:`เวลาในการโทเค็นแรกโดยผู้ให้บริการ`,ttftEmpty:`ยังไม่มีเวลาบันทึกโทเค็นแรก`,requestsOverTime:`คำขอเมื่อเวลาผ่านไป`,tokensOverTime:`โทเค็นเมื่อเวลาผ่านไป`,byModel:`ตามรุ่น`,byPlatform:`ตามแพลตฟอร์ม`,errors:`ข้อผิดพลาด`,errorDistribution:`การกระจายข้อผิดพลาด`,pinnedRequests:`คำขอที่ปักหมุดไว้`,pinnedHonored:`ได้รับเกียรติ`,fallbackAttempts:`ความพยายามสำรอง`,savingsHint:"จริงๆ แล้วคุณประหยัดเงินได้ ${actual} จาก {range} ล่าสุด นั่นคือสิ่งที่โทเค็นเดียวกันจะมีราคาสำหรับ API แบบชำระเงินซึ่งมีราคาต่อรุ่น ตัวเลขที่แสดงจะคาดการณ์อัตราการก้าวของคุณจากข้อมูล {span} ล่าสุดไปจนถึง 30 วันเต็ม",savingsHintExact:"จริงๆ แล้วคุณประหยัดเงินได้ ${actual} จาก {range} ล่าสุด นั่นคือสิ่งที่โทเค็นเดียวกันจะมีราคาสำหรับ API แบบชำระเงินซึ่งมีราคาต่อรุ่น ตัวเลขที่แสดงคือยอดรวมจริงใน 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:`เลือกชุดโมเดลที่หลากหลายจาก Fallback Chain ของคุณ โดยจัดอันดับตามกลยุทธ์การกำหนดเส้นทางที่ใช้งานอยู่`,explicit:`แผงที่ชัดเจน`,explicitHelp:`ใช้รุ่นเฉพาะที่คุณเลือกด้านล่างเสมอ`},panelModels:`รุ่นแผง`,selectedCount:`เลือก {count} ของ {max} แล้ว`,noModels:`ยังไม่มีรุ่นที่เชื่อมต่ออยู่ เพิ่มคีย์ API จากนั้นเปิดใช้งานโมเดลใน Fallback Chain`,panelSize:`ขนาดแผง`,panelSizeHelp:`มีกี่รุ่นให้เลือกอัตโนมัติ (1–{max})`,judge:`ผู้พิพากษารุ่น`,judgeHelp:`โมเดลที่รวบรวมคำตอบของแผงให้เป็นหนึ่งเดียว Auto ใช้โมเดลที่มีอันดับสูงสุดของคุณ`,judgeAuto:`อัตโนมัติ (มีอันดับสูงสุด)`,strategy:`กลยุทธ์`,strategySynthesize:`สังเคราะห์ — ผสมผสานแผงเป็นคำตอบเดียว`,strategyBestOf:`ดีที่สุด — ส่งคืนคำตอบที่ตรงประเด็นที่สุด (ไม่มีการเรียกผู้ตัดสิน)`,strategySynthesizeShort:`สังเคราะห์`,strategyBestOfShort:`ดีที่สุดของ`,exposePanel:`เปิดเผยรายละเอียดแผง`,exposePanelHelp:`แนบคำตอบของแต่ละโมเดลและข้อมูลเมตาของผู้ตัดสินใต้ฟิลด์ x_fusion ในการตอบกลับ`,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:`เลือกโมเดลใดก็ได้ใน Playground แล้วทักทาย`,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 ที่ถูกต้องโดยขึ้นต้นด้วย http:// หรือ https://`,email:`ป้อนที่อยู่อีเมลที่ถูกต้อง`,passwordMin:`อย่างน้อยอักขระ {min}`},agents:{title:`เอเจนต์เขียนโค้ด`,description:`เชื่อมต่อเครื่องมือเขียนโค้ดกับเกตเวย์โมเดลฟรีเดียวด้วยการกำหนดค่าที่สร้างให้และปลอดภัยต่อการสำรองข้อมูล`,apiKey:`กุญแจ API`,quickstartTitle:`เริ่มต้นอย่างรวดเร็ว`,quickstart:`เส้นทางที่เร็วที่สุด: กำหนดค่า Claude Code จากแค็ตตาล็อกสด`,currentKey:`กุญแจรวมปัจจุบัน:`,seenRecently:`พบเห็นเมื่อเร็วๆ นี้`,setupLabel:`ตั้งค่าอัตโนมัติ`,setupHint:`เขียนไฟล์การตั้งค่าของเครื่องมือนี้ให้คุณ โดยชี้ไปยังเกตเวย์นี้`,setupGuideHint:`แสดงขั้นตอนการตั้งค่าของเครื่องมือนี้ ไม่มีการเขียนไฟล์ใด ๆ`,manualLabel:`เชื่อมต่อด้วยตนเอง`,manualHint:`Base 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 @@
1
+ var e={nav:{models:`Mga Modelo`,playground:`Palaruan`,keys:`Mga Susi`,analytics:`Analitika`,premium:`Premium`,upgrade:`I-upgrade`,settings:`Mga Setting`,signOut:`Mag-sign out`,openMenu:`Buksan ang navigation menu`,switchLight:`Lumipat sa tema ng ilaw`,switchDark:`Lumipat sa madilim na tema`,switchToChinese:`Lumipat sa Chinese`,switchToEnglish:`Lumipat sa Ingles`,modelsMenu:`Mag-browse ng mga uri ng modelo`,agents:`Mga Agent`,logs:`Mga Log`,analyticsMenu:`Mga pahina ng analitika`,notifications:`Notifications`,noNotifications:`No notifications yet`},auth:{createYourAccount:`Gumawa ng iyong account`,signIn:`Mag-sign in`,email:`Email`,password:`Password`,emailPlaceholder:`you@example.com`,passwordPlaceholderSetup:`hindi bababa sa 8 karakter`,passwordPlaceholderLogin:`ang iyong password`,setupDescription:`Itakda ang email at password na magpoprotekta sa dashboard na ito.`,loginDescription:`Mag-sign in upang pamahalaan ang iyong mga key, routing, at analytics.`,createAccount:`Gumawa ng account`,creating:`Paglikha...`,signingIn:`Nag-sign in...`,loading:`Naglo-load...`,newPasswordAutoComplete:`bagong password`,currentPasswordAutoComplete:`kasalukuyang password`,serverUnreachableBefore:`Hindi maabot ang server. Siguraduhing tumatakbo ang backend (`,serverUnreachableAfter:`).`,setupCode:`Setup code`,setupCodePlaceholder:`code mula sa server logs`,setupCodeHint:`Ang pag-set up mula sa ibang device ay nangangailangan ng one-time code na naka-print sa server logs sa pagsisimula.`,changePassword:`Palitan ang password`,changeEmail:`Palitan ang e-mail`,forgotPassword:`Nakalimutan ang password?`,currentPassword:`Kasalukuyang password`,newPassword:`Bagong password`,newEmail:`Bagong e-mail`,resetCode:`Reset code`,resetCodePlaceholder:`code mula sa server logs`,resetCodeHint:`Nasa server log ang code. Hindi ito kailanman ipinapadala sa email.`,forgotPasswordDescription:`I-click ang button sa ibaba para bumuo ng reset code. Isinusulat ang code sa server log, hindi kailanman ipinapadala sa email. Ilagay ito rito para magtakda ng bagong password.`,requestResetCode:`Ipadala ang code`,requestingResetCode:`Ipinapadala…`,resetPassword:`I-reset ang password`,resettingPassword:`Nire-reset…`,changingPassword:`Pinapalitan…`,changingEmail:`Pinapalitan…`,backToLogin:`Bumalik sa pag-sign in`,passwordChanged:`Matagumpay na napalitan ang password.`,emailChanged:`Matagumpay na napalitan ang e-mail.`,passwordReset:`Na-reset ang password. Mag-sign in po.`,resetCodeDockerHint:`Tumatakbo sa Docker? Nasa container log ang code: docker logs <container>.`,desktopSessionFailed:`Hindi nakapag-sign in ang dashboard sa lokal na server. Isara ang SRouter at buksan itong muli.`},common:{save:`I-save`,saving:`Pag-iipon...`,cancel:`Kanselahin`,discard:`itapon`,delete:`Tanggalin`,confirm:`Kumpirmahin`,copy:`Kopyahin`,copied:`kinopya`,copyFailed:`Hindi makopya — piliin ang teksto at kopyahin nang manu-mano`,show:`Ipakita`,hide:`itago`,apply:`Mag-apply`,applied:`Inilapat`,applying:`Nag-aapply...`,active:`Aktibo`,inactive:`Hindi Aktibo`,never:`hindi kailanman`,loading:`Naglo-load...`,error:`Error`,noData:`Wala pang data`,unsavedChanges:`Mga hindi na-save na pagbabago`,saveChanges:`I-save ang mga pagbabago`,remove:`Alisin`,unknownError:`Hindi kilalang error`,model:`Modelo`,provider:`Tagapagbigay`,success:`Tagumpay`,failures:`Mga Kabiguan`,dismiss:`I-dismiss`,status:`Kalagayan`},settings:{title:`Mga Setting`,language:`Wika`,theme:`Tema`,themeSystem:`Sistema`,themeLight:`Maliwanag`,themeDark:`Madilim`,searchLanguage:`Maghanap ng mga wika...`,noLanguages:`Walang natagpuang wika`,sections:`Mga seksyon ng setting`,sectionGeneral:`Pangkalahatan`,sectionCompression:`Compression`,sectionAdvanced:`Advanced`,sectionPreview:`Preview`,generalDescription:`Wika at hitsura ng dashboard na ito.`,advancedDescription:`Mga threshold at safety switch para sa compression pipeline.`,compressionTitle:`Compression ng prompt`,compressionDescription:`Bawasan ang laki ng request bago ang routing habang pinapanatili ang code, mga error, path, numero, at tool definition.`,compressionHelp:`Isinusulat muli ang bawat request bago ipadala sa provider para mas kaunti ang token na nagagamit. Protektado ang code, mga error, file path at numero, at itinatapon ang anumang muling pagsusulat na sumisira sa mga ito.`,compressionMode:`Mode`,compressionModeHelp:`Kapag naka-off, ipinapadala ang mga request nang walang binabago. Ang Lossless ay nag-aalis lang ng dobleng at sayang na teksto. Ang Standard ay pinapaikli rin ang tool output. Ang Agresibo ay pinapaikli pa ang mga lumang turn.`,compressionOff:`Naka-off`,compressionLossless:`Lossless`,compressionStandard:`Standard`,compressionAggressive:`Agresibo`,compressionLossy:`Lossy`,compressionEngines:`Mga engine`,compressionEnginesHelp:`Ang bawat engine ay isang hakbang ng muling pagsusulat. Ang mode ang nagpapasya kung aling mga engine ang tatakbo; kapag ino-off mo ang isa rito, hindi na ito gagamitin sa kahit anong mode.`,engineDedup:`Mga paulit-ulit na block`,engineDedupHelp:`Pinapalitan ng maikling reference ang block ng tekstong lumabas na nang mas maaga sa usapan.`,engineLite:`Paglilinis ng whitespace`,engineLiteHelp:`Inaalis ang mga espasyo sa dulo ng linya, pinagsasama ang paulit-ulit na blangkong linya at tinatanggal ang dobleng system message.`,engineReadLifecycle:`Mga napalitang file read`,engineReadLifecycleHelp:`Pinapalitan ng maikling tala ang naunang file read kapag muling binasa o na-edit ang parehong file.`,engineToolfilter:`Filter ng tool output`,engineToolfilterHelp:`Pinapaikli ang output ng command at tool tulad ng build, test at install. Laging nananatili ang mga linya ng error at stack trace.`,engineJsoncompact:`Mga JSON table`,engineJsoncompactHelp:`Ini-encode muli ang mahahabang JSON array na pareho ng field bilang isang siksik na table. Maibabalik ito, kaya walang nawawala.`,engineRelevance:`Filter ng kaugnayan`,engineRelevanceHelp:`Tinatanggal ang mga pangungusap na pinakawalang kaugnayan sa pinakabagong mensahe kapag lumagpas ang mensahe sa budget nitong laki.`,engineAging:`Mga lumang turn`,engineAgingHelp:`Pinapaikli ang mga turn maliban sa pinakabago tungo sa maikling buod na pinapanatili ang mga path, error at desisyon.`,engineHardBudget:`Limitasyon ng token`,engineHardBudgetHelp:`Inaalis ang mga linyang pinakakaunti ang halaga hanggang kasya ang request sa target na token.`,compressionAutoTrigger:`Awtomatikong i-trigger kapag lumagpas sa tinatayang token`,compressionAutoTriggerHelp:`Ang mga request na tinatayang lumagpas sa bilang ng token na ito ay awtomatikong lumilipat sa Agresibo. Iwanang blangko para i-disable.`,compressionPrefixFreeze:`I-freeze ang paulit-ulit na prompt prefix`,compressionPrefixFreezeHelp:`Hindi ginagalaw ang system prompt kapag tatlong beses nang nakita ang parehong teksto, para patuloy na gumana ang prompt caching sa panig ng provider.`,compressionTrustProjectFilters:`Pagkatiwalaan ang mga filter file ng proyekto`,compressionTrustProjectFiltersHelp:`Naglo-load din ng mga tool-output filter mula sa working directory. Naka-off bilang default, dahil maaari itong gamitin ng isang repository para itago ang output sa modelo.`,compressionStats:`Laki na natipid`,compressionEstimatedTokensSaved:`Tinatayang token na natipid`,compressionPreview:`Live preview`,compressionPreviewDescription:`Ipadala ang request body sa pipeline para makita kung ano ang matatanggap ng provider.`,compressionPreviewPlaceholder:`I-paste ang request JSON o plain text`,compressionRunPreview:`Patakbuhin ang preview`,updatesTitle:`Mga Update`,checkForUpdates:`Suriin ang mga update`,lastChecked:`Huling na-check: {when}`,currentVersion:`Kasalukuyang build:`,updateAvailable:`May available na update`,changelog:`Ano ang nagbago`,upToDate:`Napapanahon`,buildAhead:`Nauuna ang build na ito sa opisyal na main.`,buildDiverged:`Lumihis ang build na ito sa opisyal na main.`,buildUnknown:`Hindi maihahambing ang custom build na ito sa opisyal na main.`,notGitInstall:`Walang impormasyon ng commit ang installation na ito.`,checkFailed:`Hindi masuri kung may mga update.`,contactsGithub:`Manu-mano ang mga pagsusuri at kumokonekta ang mga ito sa GitHub.`,autoUpdateCheck:`Awtomatikong pagsusuri ng update`,autoUpdateCheckHelp:`Sinusuri ang GitHub minsan sa isang araw para sa bagong release at nagpapakita ng paalala. Naka-off bilang default.`,openReleases:`Buksan ang GitHub Releases`,restartAfterUpdate:`I-restart ang SRouter kapag natapos ang build.`,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:`Mga Modelo`,chatModelsTab:`Mga modelo ng chat`,fusionTab:`Pagsasanib`,embeddingsTab:`Mga Embedding`,imageTab:`Larawan`,videoTab:`Video`,audioTab:`Audio`,imageDesc:`Mga modelo ng pagbuo ng teksto-sa-larawan.`,videoDesc:`Text-to-video generation models.`,audioDesc:`Mga modelo ng text-to-speech at speech-to-text.`,mediaHint:`Mag-generate sa pamamagitan ng`,mediaEmpty:`Wala pang modelo. Nagse-sync sila mula sa katalogo.`,ttsHeading:`Teksto patungong pananalita`,sttHeading:`Pagsasalita sa teksto`,sttHint:`I-transcribe sa pamamagitan ng`,sttEmpty:`Wala pang speech-to-text models. Nagse-sync sila mula sa katalogo.`,newBadge:`Bago`,monthlyTokenBudget:`Buwanang badyet ng token`,remaining:`natitirang`,used:`ginamit`,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:`ng`,showAllModels:`Ipakita ang lahat ng {count} models`,showLess:`Ipakita ang mas kaunti`,vision:`Bisyon`,visionTitle:`Tumatanggap ng image input`,tools:`Mga Kasangkapan`,toolsTitle:`Naglalabas ng structured tool calls, kaya ito ay kwalipikado para sa mga tool-bearing request`,retired:`Itinigil`,penalty:`−{value} penalty`,obs:`{count} obs`,tokPerMonth:`{count} tok/buwan`,rpmLimit:`{count} rpm`,rpdLimit:`{count} RPD`,noKey:`walang susi`,dragToReorder:`I-drag para mag-ayos muli`,dragToReorderGroup:`I-drag upang ayusin muli ang modelo`,moveToRank:`Tumalon sa ranggo`,providerCount:`{count} mga tagapagbigay`,servedBy:`Pinagsilbihan ni {providers}`,viewProviders:`Tingnan ang mga provider`,backToModels:`Bumalik sa mga modelo`,providersHeading:`Mga provider na nagseserbisyo sa modelong ito`,codeSnippetHeading:`Gamitin ang modelong ito`,modelNotFound:`Hindi available ang modelong ito, o wala itong naka-configure na provider.`,providerIdsHeading:`Provider model ids`,providerIdsHint:`Ipadala ang unified model id para mag-fail over sa bawat provider, o isang provider-specific id para i-pin ang isang provider.`,copyModelName:`Kopyahin ang pangalan ng modelo`,settingsHeading:`Mga setting ng provider`,settingsHint:`Ang mga lokal na edit sa mga modelo ng katalogo ay pinananatili sa mga sync ng katalogo. Ang mga tinanggal na catalog model ay mananatiling nabubura hanggang sa idagdag mo ito muli sa pamamagitan ng config.`,catalogModel:`katalogo`,customModel:`kaugalian`,discoveredModel:`natuklasan`,localOverride:`lokal na pag-override`,displayName:`Display name`,sizeLabel:`Antas ng kakayahan`,sizeLabelHint:`Tinutukoy ng Frontier/Large/Medium/Small ang axis ng intelihensiya: laging nangunguna ang mas mataas na antas kaysa sa mas mababa, at sa loob ng isang antas ay patuloy pa ring iginagalaw ng ranggo ng intelihensiya ang iskor. Ang modelong walang kilalang antas ay nakakakuha ng pinakamababang iskor sa axis na ito, ngunit isa lamang sa tatlong axis ang intelihensiya — kung maganda ang pagiging maaasahan at bilis, maaari pa rin itong mapili para sa ruta.`,sizeLabelNone:`Wala (pinakamababang iskor ng intelihensiya)`,contextWindow:`Konteksto`,inFallback:`Naka-chain`,saveModelSettings:`I-save ang mga setting ng modelo`,aggregateBudget:`{count}/buwan`,aggregateBudgetTitle:`Kabuuang libreng token kada buwan mula sa mga provider ng modelong ito`,rateRpm:`{count} RPM`,rateRpd:`{count} RPD`,rateTitle:`Rate-limited — walang fixed na buwanang token budget`,rateLimitUsage:`{kind} {used}/{limit}`,rateLimitUsageTitle:`Paggamit ng rate limit sa loob ng time window (nagamit / limit) para sa provider na may pinakamalaking natitirang puwang`,splitOut:`Huwag pagsamahin ang kopyang ito`,splitOutHint:`Bigyan ang kopya ng provider na ito ng sarili nitong hiwalay na entry sa halip na isama ito sa pinag-isang modelo. Maaari mo itong muling isama mula sa sariling pahina ng kopya.`,splitUndo:`Pagsamahin muli`,splitUndoHint:`Ang kopyang ito ay pinananatiling hiwalay sa pinag-isang modelo nito. Pagsamahin itong muli upang muling mag-fail over sa lahat ng provider nito.`,splitBadge:`pinanatiling hiwalay`,noData:`walang data`,noDataTitle:`Wala pang naitalang request — hindi pa nasusukat ang reliability at bilis para sa provider na ito.`,bestOfN:`pinakamahusay sa {count}`,perProviderScores:`Mga score bawat provider: {list}`,columnModel:`Modelo`,columnOn:`On`,noModelsBefore:`Walang available na mga modelo. Magdagdag ng API keys sa`,keysPageLink:`Pahina ng Keys`,noModelsAfter:`Una.`,hiddenNoKeys:`Nakatago (walang susi): {platforms}`,searchPlaceholder:`Mga search model o provider...`,clearSearch:`Linisin ang paghahanap`,ctxAny:`Anumang konteksto`,ctxBadge:`{size} ctx`,ctxTitle:`Context window`,copyModelId:`Kopyahin ang model id`,showingCount:`{shown} ng mga modelo ng {total}`,clearFilters:`Linisin ang mga filter`,noMatches:`Walang modelo na tumutugma sa iyong mga filter.`,noModelsTitle:`Walang mga modelong naka-configure`,intelligenceRank:`Intelihensiya`,speedRank:`Bilis`,rankHint:`Ranggo sa katalogo — 1 ang pinakamahusay.`,limitRpm:`RPM`,limitRpd:`RPD`,limitTpm:`TPM`,limitTpd:`TPD`,limitRpmHint:`Mga kahilingan kada minuto. Iwanang blangko para walang limitasyon.`,limitRpdHint:`Mga kahilingan kada araw. Iwanang blangko para walang limitasyon.`,limitTpmHint:`Mga token kada minuto. Iwanang blangko para walang limitasyon.`,limitTpdHint:`Mga token kada araw. Iwanang blangko para walang limitasyon.`,usageThisMonth:`Buwanang paggamit`,usageEmpty:`Wala pang mga kahilingan ngayong buwan.`,usageRequestsMonth:`{count} kahilingan ngayong buwan`,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:`I-explore ang mga hindi pa nasusukat na modelo`,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:`Pagpili ng key`,keySelectionAuto:`Awto`,keySelectionLeastRemaining:`Pinakakaunti ang natitira`,keySelectionHint:`Kung paano pumili sa ilang key ng iisang provider. Pinapanatili ng Awto ang kasalukuyang rotasyon; ini-ranggo ng Pinakakaunti ang natitira ang mga key ayon sa naobserbahang quota at sinusubukan muna ang may pinakamaraming natitira.`,cooldownCeiling:`Pinakamahabang awtomatikong cooldown`,cooldownCeilingHint:`Nililimitahan kung gaano katagal maaaring itabi ng sariling hula ng router ang isang pares ng key at model na nabibigo. Karaniwang tumataas ang hagdan sa 2 min, 10 min, 1 oras, 24 oras, at ang mga error sa credit o tier ay nagtatabi nang isang araw. Hindi kailanman pinaiikli ang oras ng muling pagsubok na sinabi ng provider.`,cooldownCeilingDefault:`Default (hanggang 24 oras)`,cooldownCeiling10m:`10 minuto`,cooldownCeiling1h:`1 oras`,cooldownCeiling6h:`6 oras`,moreOptions:`Higit pang mga opsyon`,peakActive:`(oras ng rurok)`,peakActiveHint:`Aktibo ngayon ang pag-aayos para sa oras ng rurok, kaya hindi ito ang mismong timbang ng preset: 60% ng timbang ng bilis ay inilipat sa pagiging maaasahan.`,peakAdjust:`Pag-aayos sa oras ng rurok`,peakAdjustHint:`Naka-off bilang default. Sa loob ng saklaw sa ibaba, inililipat ang 60% ng timbang ng bilis sa pagiging maaasahan — pinaka-siksikan ang mga libreng relay sa oras na iyon, kaya mas mahusay hulaan ng pagiging maaasahan ang tagumpay kaysa sa hilaw na bilis. Hindi ginagalaw ang «Pinakamabilis» at «Pinakamaaasahan».`,peakFrom:`Mula`,peakTo:`hanggang`,peakTimezoneLabel:`Time zone`,peakUseBrowserTimezone:`Gamitin ang time zone ng browser`,peakTimezoneInvalid:`Hindi kilalang time zone.`,peakExemptNote:`Hindi ginagalaw ang preset na ito — nasa isang dulo na ito ng balanse ng bilis at pagiging maaasahan.`,title:`Estratehiya sa Pag-ruta`,description:`Pumili ng routing strategy. Sa Manual mode, i-drag mo para itakda ang order; Ang iba pang mga estratehiya ay nakabase sa live score sa reliability, bilis, at intelligence.`,weightsSummary:`pagiging maaasahan {reliability}% · bilis {speed}% · intelihensiya {intelligence}%`,guardrails:`Mga Guardrail`,guardrailsTooltip:`Laging naka-guardrails: libreng quota headroom × live rate-limit penalty. Ang mas mababa sa 1.0 ay nangangahulugang pinipigilan ang modelo.`,scoreTooltip:`Panghuling routing score = weighted average ng tatlong axis, minumultiply sa mga guardrail. Mas mataas na ruta muna.`,modeManualHint:`Manual mode: ang mga request ay sumusunod sa pagkakasunod-sunod sa ibaba, mula taas hanggang baba. I-drag para ayusin muli.`,modeScoreHint:`Ina-update ang mga score mula sa live traffic. Ang order sa ibaba ay kung paano niro-route ang mga request ngayon.`,manual:`Manwal`,manualBlurb:`Ruta sa eksaktong pagkakasunod-sunod na itinakda mo sa ibaba. I-drag ang mga handle para ayusin muli. Walang scoring; sinusundan ang kadena mula itaas hanggang ibaba.`,balanced:`balanse`,balancedBlurb:`Ang reliability leads (50%), na may pantay na timbang sa bilis at talino (25% bawat isa). Isang makatwirang pangkalahatang default.`,smartest:`pinakamatalino`,smartestBlurb:`Mas gusto ko ang pinaka-mahusay na modelo na gumagana pa rin. Intelihensiya 55%, pagiging maaasahan 35%, bilis 10%.`,fastest:`Pinakamabilis`,fastestBlurb:`Mas gusto ko ang pinakamabilis na modelo na gumagana pa rin. Bilis 55%, pagiging maaasahan 35%, katalinuhan 10%.`,reliable:`Pinaka-maaasahan`,reliableBlurb:`I-maximize ang success rate higit sa lahat. Reliability 70%, bilis at talino 15% bawat isa.`,custom:`Kaugalian`,customBlurb:`Itakda ang sarili mong balanse ng pagiging maaasahan, bilis, at talino gamit ang mga slider. Parehong engine ng presets, weights lang.`,adjust:`I-adjust`,customWeights:`Pasadyang timbang`,customWeightsHelp:`Ang mga slider ay independyente; ang mga shares ay awtomatikong balanse sa 100%.`,weightReliability:`Pagiging maaasahan`,weightSpeed:`Bilis`,weightIntelligence:`Intelihensiya`,weightRequired:`Dapat may isang timbang na higit sa zero.`,scoreColumn:`Iskor`},penaltyInspector:{title:`Presyon ng router`,subtitle:`Mga penalty, cooldown, at pagkabigo mula sa huling {minutes} minuto`,rowCount:`{count} aktibo`,offChain:`off chain`,penaltyValue:`Penalty {value}`,factor:`score x{factor}`,noCooldown:`Walang cooldown`,cooldownChip:`{key} - {time}`,resetCooldown:`Reset cooldown`,clearAll:`Burahin lahat`,clearAllHint:`Alisin ngayon ang bawat cooldown, penalty at sunod-sunod na pagkabigo. Muling nabubuo ang presyon mula sa susunod na tunay na resulta.`,errorsHeading:`{count} mga kamakailang error`,noRecentErrors:`Walang kamakailang error`,noKey:`walang susi`,reasons:{penalty:`pinarusahan`,cooldown:`pagpapalamig`,recent_errors:`pagkabigo`}},keys:JSON.parse(`{"pageTitle":"Mga Susi","pageDescription":"Mga kredensyal ng provider at ang pinag-isang API key na konektado sa iyong mga app.","tabProviders":"Mga Tagapagbigay","checklistSummary":"{configured} sa {total} tagapagbigay ang naka-configure","checklistKeyless":"hindi kailangan ng key","checklistNoKeyTip":"Wala pang key na naidagdag. I-click para magdagdag.","checklistSignupLink":"Buksan ang {provider} upang gumawa ng account at kumuha ng key","checklistKeylessTip":"Gumagana nang walang key.","tabQuotaSignals":"Mga senyales ng quota","tabApiKey":"Pinag-isang API key","tabAnthropic":"Anthropic","unifiedKey":"Ang iyong pinag-isang API key","regenerate":"mag-regenerate","showKey":"Ipakita","hideKey":"itago","copyKey":"Kopyahin","copyFullKey":"Kopyahin ang buong susi","copiedKey":"kinopya","baseUrl":"Base URL","endpointChat":"Chat","endpointResponses":"Mga Tugon","endpointEmbeddings":"Mga Embedding","endpointEmbeddingsHint":"model: \\"auto\\" o pamilya mula sa Embeddings tab","endpointMessages":"Mga Mensahe","endpointMessagesHint":"Anthropic-compatible (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) na mga modelo","anthropicDesc":"I-point ang Claude o Anthropic SDK client sa server na ito. Anthropic mga kliyente ang nagpapadala ng Claude pangalan ng modelo — i-map ang bawat isa sa Auto (pipili ang router ng libreng modelo) o i-pin ang isang partikular na modelo.","anthropicBaseUrl":"Base URL","anthropicAuth":"Auth header","anthropicAuto":"Auto — pinipili ng router ang pinakamahusay na modelo","anthropicSave":"I-save ang mapping","anthropicSaved":"Naka-save","anthropicNote":"Anthropic mga kliyente ay pinananatili ang kanilang mga built-in na pangalan ng Claude model; Ang mapping sa itaas ang nagdedesisyon kung paano bawat isa ay papasok sa iyong pool.","familyDefault":"Default","familyOpus":"Opus","familySonnet":"Soneto","familyHaiku":"Haiku","selectPlatform":"Pumili ng provider","addKey":"Add key","keyAdded":"Idinagdag ang susi","endpointKeysShareModels":"Ang mga susi ng parehong endpoint ay nagbabahagi ng mga modelo nito.","export":"Pag-export","exportAll":"Lahat ng susi","exportHealthy":"Malusog lamang","exportKeys":"I-export ang API keys","exportFormat":"Format","exportHealthyOnly":"Healthy keys lamang","exportHealthyOnlyDesc":"I-exclude ang mga key na kasalukuyang bumabagsak sa health check","exportWillExport":"Mag-e-export","exportKey":"susi","exportKeys plural":"mga susi","exporting":"Pag-export...","exportDownload":"I-download","exportSuccess":"Na-export na {count} keys","adding":"Dagdag pa...","selectProvider":"Pumili ng provider...","accountId":"Account ID","label":"Label","noKeyNeeded":"(hindi kailangan ng susi)","outboundProxy":"Outbound proxy","outboundProxyDescription":"I-route ang mga outbound LLM request sa pamamagitan ng proxy. Sumusuporta sa SOCKS5, HTTP, at HTTPS.","proxyUrl":"Proxy URL","saveProxy":"I-save","savingProxy":"Pag-iipon...","proxyLoadFailed":"Hindi ma-load ang proxy settings.","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":"Magdagdag ng custom na modelong compatible sa OpenAI","addCustomDescription":"I-point ang chat, embedding, image, o audio models sa anumang endpoint na compatible sa OpenAI. Opsyonal ang API key para sa mga lokal na server.","customType":"Uri","customTypeChat":"Chat","customTypeEmbedding":"paglalagay","customTypeImage":"Larawan","customTypeAudio":"Audio","customTypeTranscription":"Transcription","customBaseUrl":"Base URL","customModels":"Mga Modelo","customModel":"Modelo","customDisplayName":"Display name","customDisplayNamePerModel":"bawat modelo","customDisplayNameOptional":"opsyonal","customFamily":"Pamilya","customFamilyPlaceholder":"default sa model id","customApiKey":"susi API","customCapabilities":"Mga Kakayahan","addModel":"Magdagdag ng modelo","modelAdded":"Idinagdag ang modelo","addModels":"Magdagdag ng {count} models","addEmbeddingModel":"Magdagdag ng embedding","addImageModel":"Magdagdag ng modelo ng imahe","addAudioModel":"Magdagdag ng audio model","addTranscriptionModel":"Add transcription model","addingCustom":"Dagdag pa...","discoverModels":"Kunin ang mga modelo","probeNow":"Subukan ang endpoint","probeConfirm":"Magpadala ng hanggang 3 test request?","probeCapabilities":"pangangatwiran: {reasoning} · mga tool: {tools}","probeCapYes":"oo","probeCapNo":"hindi","probeCapUnknown":"hindi alam","probeSuccess":"Nasubukan ang {model} sa loob ng {latency}ms","probeFailed":"Nabigo ang pagsubok: {reason}","discoverTitle":"Mga modelo sa endpoint na ito","discoverHint":"Piliin ang mga modelong irerehistro. Ang mga naidagdag na ay naka-lock.","discoverEmpty":"Walang ibinalik na modelo ang endpoint na ito.","discoverAlreadyAdded":"Naidagdag","discoverSelectAll":"Piliin lahat","modelsAdded":"{count} na modelo ang naidagdag","getApiKey":"Kunin API susi","deleteKeyConfirm":"Tanggalin ang susi na ito? Hindi na ito mababawi.","checkAll":"Suriin lahat","checking":"Tinitingnan...","editLabel":"I-edit ang label","saveLabel":"I-save ang label","unifiedKeyDescBefore":"Gamitin mo ito bilang iyong OpenAI","unifiedKeyDescAfter":"; Ina-authenticate nito ang mga request sa proxy na ito.","serverUnreachableBefore":"Hindi maabot ang server sa","serverUnreachableAfter":". Siguraduhing tumatakbo ang backend. Sinisimulan ng NPM run dev ang pareho, at ang server ay nag-log ng print sa ilalim ng server prefix.","paneProviderKey":"Provider key","paneImportFile":"Mag-import ng file","paneCustomEndpoint":"Pasadyang endpoint","platform":"Platform","hideAdded":"Itago ang mga naidagdag na provider","apiToken":"token ng API","keyOptionalPlaceholder":"Opsyonal","bearerTokenPlaceholder":"Token ng tagapagdala","pasteKeyPlaceholder":"I-paste ang key dito","pasteSeveral":"I-paste ang marami","keyOptionalHint":"Opsyonal: iwanang blangko para sa anonymous na libreng tier (may rate limit bawat IP), o i-paste ang sarili mong key para gamitin ang iyong account.","enable":"paganahin","noProviderKeys":"Wala pang provider keys. Magdagdag ng isa sa itaas para simulan ang routing.","filterPlaceholder":"I-filter ang mga provider o key","filterAll":"Lahat","filterHealthy":"Malusog","filterIssues":"Mga Isyu","filterDisabled":"May kapansanan","noFilterMatch":"Walang provider na tumutugma sa iyong mga filter.","providerCountSummary":"{providers} mga tagapagbigay · {keys} keys","summaryHealthy":"{count} malusog","summaryIssueOne":"{count} isyu","summaryIssueOther":"{count} mga isyu","providerActions":"Mga aksyon ng provider","routeViaProxy":"Ruta sa pamamagitan ng proxy","checkNow":"Suriin ngayon","syncModels":"I-sync ang mga modelo sa upstream","syncModelsResult":"Na-sync ang listahan ng modelo: {added} idinagdag, {total} aktibo","syncModelsFailed":"Nabigo ang sync ng modelo: {reason}","syncAllModels":"I-sync ang lahat ng provider","syncAllPending":"Sini-sync…","syncAllResult":"Na-sync ang {count} provider: {registered} modelo ang naka-registered","syncAllFailed":"Nabigo ang sync lahat: {reason}","syncAllNoChanges":"Naka-sync na ang lahat ng provider","syncAllDialogTitle":"Mga Resulta ng Sync","syncAllDialogSummary":"May pagbabago sa {changed} sa {total} provider","syncAllNew":"+{count} bago","syncAllUpdated":"{count} na-update","syncAllRetired":"{count} na-retire","syncAllNewModels":"Mga bagong modelo","syncAllUpdatedModels":"Mga na-update na modelo","syncAllRetiredModels":"Mga na-retire na modelo","syncAllDialogClose":"Tapos na","proxyEnvHintBefore":"Maaari ring i-configure gamit ang","proxyEnvHintAfter":"variable ng kapaligiran (may prayoridad). Iwanang blangko para i-disable. Mga halimbawa:","importKeys":"I-import ang mga provider key","importKeysDescription":"Mag-upload ng mga file ng .env, JSON, JSONC, CSV, Markdown, o teksto.","importFiles":"Mga File","importFileCount":"{count} napili","previewFiles":"Preview","previewing":"Preview na...","selected":"Pinili","provider":"Tagapagbigay","keyName":"Pangalan ng susi","keyValue":"Halaga ng susi","chooseProvider":"Pumili ng provider","noPreviewKeys":"Walang mga susi na nahanap sa mga file na iyon.","skippedItems":"Nalaktawan:","moreItems":"+{count} pa","importSelected":"Import {count}","importing":"Nag-iimport...","noImportSelection":"Pumili ng hindi bababa sa isang hilera kasama ang provider.","duplicate":"kopyahin","duplicatesFound":"{count} duplicate(s) na natukoy — umiiral na at malalaktawan na.","importResult":"Imported {imported}; nabigong {failed}.","importModelCount":"+{count} na modelo","importResultWithModels":"Imported {imported}; nairehistro ang {models} na modelo; nabigong {failed}.","confirmRemove":"Kumpirmahin?","quotaSignalsTitle":"Mga senyales ng quota","quotaSignalsEmptyTitle":"Wala pang obserbasyon sa quota","quotaSignalsEmptyDesc":"Pinupunan ito pagkatapos magbalik ang mga provider ng mga header ng rate-limit, mga error sa quota, o mga signal ng validasyon.","quotaKeyRef":"pangunahing #{id}","quotaPoolRef":"pool {pool}","quotaLimit":"Limitasyon","quotaRemaining":"Natitira","quotaReset":"I-reset","quotaObserved":"naobserbahan","tabAgents":"Mga Agent","familyGeminiPro":"Gemini Pro","familyGeminiFlash":"Gemini Flash","familyGeminiFlashLite":"Gemini Flash-Lite","geminiTitle":"Pagmamapa ng modelo ng Gemini","geminiDesc":"I-map ang mga pangalan ng Gemini Pro, Flash, at Flash-Lite sa Auto o sa isang partikular na modelo ng catalog.","compatibilityTitle":"Compatibility ng agent","compatibilityDesc":"Kontrolin ang mga opt-in na compatibility surface at ang pagtuklas ng modelo ng Claude Code.","ollamaMode":"Emulasyon ng Ollama","ollamaModeHint":"Ang bukas na loopback ay hindi kailanman tumatanggap ng unauthenticated na LAN traffic.","ollamaOff":"Naka-off","ollamaLoopback":"Bukas sa loopback","ollamaKeyRequired":"Kailangan ng API key","claudeAliases":"Mga discovery alias ng Claude Code","claudeAliasesHint":"Ilantad ang mga claude/<model> na alias para mailista ng model picker ng gateway ang catalog.","mcpServer":"MCP server","mcpServerHint":"Ilalantad ang /mcp endpoint para sa mga agent client. Naka-off ito sa mga bagong install.","urlTokensTitle":"Mga nare-revoke na URL token","urlTokensDesc":"Para lamang sa mga client na walang header. Maaaring tumagas ang mga URL token sa history at mga log, kaya i-revoke ang mga ito kapag hindi na kailangan.","urlTokenLabel":"Label ng token","createUrlToken":"Gumawa ng token","urlTokenOnce":"Kopyahin ang token na ito ngayon. Hindi na ito ipapakita muli.","revoked":"Na-revoke","revoke":"I-revoke","modelScope":"Saklaw ng modelo","modelScopeDesc":"Limitahan ang key na ito sa mga partikular na model ID. Nilalaktawan ng router ang key na ito para sa ibang modelo.","modelScopeAdd":"Maglagay ng model ID at pindutin ang Enter","modelScopeEmpty":"Walang nakatakdang saklaw — ginagamit ang key na ito para sa lahat ng modelo ng provider nito.","modelScopeClear":"Burahin ang saklaw","modelScopeBadgeOne":"limitado · 1 modelo","modelScopeBadgeOther":"limitado · {count} na modelo","modelPicker":{"title":"Aling mga modelo ang dapat pagsilbihan ng key na ito?","hint":"Naidagdag na ang iyong {provider} key at kasalukuyan nitong pinagsisilbihan ang lahat ng modelo sa ibaba. Alisan ng tsek ang alinmang hindi pinapayagang gamitin ng key na ito — laktawan ito ng router para sa mga iyon.","count":"{selected} sa {total} ang napili","allNote":"Lahat ay napili — walang ise-save, at gagamitin din ang key na ito ng mga modelong idaragdag sa katalogo mamaya.","subsetNote":"Malilimitahan ang key na ito sa mga napiling modelo. Mababago mo ito mamaya mula sa row ng key.","skip":"Hindi ngayon","scopedOne":"Limitado ang key sa 1 modelo","scopedOther":"Limitado ang key sa {count} na modelo","allSaved":"Key serves every catalog model"},"cpTitle":"Mga profile ng client","cpDesc":"Hiwalay na API key para sa bawat client, bawat isa may system prompt na palaging inilalapat ng server.","cpEmpty":"Wala pang mga profile ng client.","cpNameLabel":"Pangalan","cpNamePlaceholder":"hal. Support bot","cpPromptLabel":"System prompt (opsyonal)","cpPromptPlaceholder":"Mga tagubiling idinaragdag ng server bago ang bawat kahilingang ginawa gamit ang key na ito.","cpCreate":"Gumawa ng profile","cpRotate":"I-rotate ang key","cpKeyOnce":"Kopyahin ang key na ito ngayon — hindi na ito ipapakita muli.","cpEnabledAria":"Naka-enable ang profile","selectKey":"Piliin ang key na ito","bulkSelected":"{count} napili","bulkEnable":"Paganahin lahat","bulkDisable":"I-disable lahat","bulkDelete":"Tanggalin lahat","bulkDeleteConfirm":"Tanggalin ang {count}?","bulkResult":"Na-update {done}; nabigo {failed}.","bulkDeleteResult":"Natanggal {done}; nabigo {failed}.","testProxy":"Test","testingProxy":"Testing…","proxyTestOk":"Proxy works — {ms}ms round trip","proxyTestFail":"Proxy failed: {reason}","editKey":"I-edit ang key","editPlatformLocked":"Hindi mababago ang provider at endpoint pagkatapos gawin.","editCredentialHint":"Iwanang blangko para panatilihin ang kasalukuyang key.","editCredentialPartsRequired":"Ilagay pareho ang account ID at API token.","editModels":"I-edit ang mga model","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":"Magdagdag ng Custom Model","modelId":"ID ng Modelo","modelIdRequired":"Kailangan ang ID ng modelo","modelDisplayName":"Pangalan sa Display","modelContextWindow":"Context Window (tokens)","modelRateLimits":"Mga Limitasyon sa Bilis (opsyonal)","modelSupportsTools":"Sumusuporta sa Pagtawag ng Tool","modelSupportsToolsHint":"I-enable kung kaya ng modelong ito na magpatakbo ng function o tool calling","modelSupportsVision":"Sumusuporta sa Vision","modelSupportsVisionHint":"I-enable kung tumatanggap ang modelong ito ng mga imahe","createModel":"Lumikha ng Modelo","modelAddedSuccess":"Matagumpay na naidagdag ang custom model","modelAddFailed":"Hindi naidagdag ang custom model","testModel":"Subukan","testingModel":"Sinusubukan…","testPassedShort":"Pumasa","testFailedShort":"Bumagsak","testPassed":"Pumasa ang pagsusuri ng modelo sa loob ng {latency}ms","testFailed":"Bumagsak ang pagsusuri ng modelo","testThrottled":"Mangyaring maghintay ng {seconds}s bago subukang muli ang modelong ito.","noModelsForProvider":"Walang naka-configure na modelo para sa provider na ito.","testModels":"Subukan ang mga modelo","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":"Walang limit","capEditHint":"Caps reset at the next period boundary, 00:00 UTC. Leave blank for unlimited.","monthlyUsageLine":"{requests} kahilingan, {tokens} token ngayong buwan","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:`malusog`,rateLimited:`limitado sa rate`,invalid:`hindi wasto`,error:`pagkakamali`,unchecked:`hindi napigilan`},analytics:{title:`Analitika`,description:`Volume ng kahilingan, latency, paggamit ng token, at mga pagkabigo.`,range24h:`24h`,range7d:`7d`,range30d:`30d`,range90d:`90d`,requests:`Mga kahilingan`,successRate:`Antas ng tagumpay`,inputTokens:`Mga input token`,outputTokens:`Mga output token`,avgLatency:`Karaniwang latency`,p95Latency:`P95 latency`,avgTtft:`Karaniwang TTFT`,estSavings:`Tinatayang pagtitipid`,requestsByProvider:`Mga kahilingan ng provider`,avgLatencyByProvider:`Karaniwang latency ayon sa provider`,ttftByProvider:`Oras para sa unang token ayon sa provider`,ttftEmpty:`Wala pang oras para sa unang token na naitala.`,requestsOverTime:`Mga kahilingan sa paglipas ng panahon`,tokensOverTime:`Mga token sa paglipas ng panahon`,byModel:`Ayon sa modelo`,byPlatform:`Ayon sa platform`,errors:`Mga Error`,errorDistribution:`Pamamahagi ng error`,pinnedRequests:`Mga naka-pin na kahilingan`,pinnedHonored:`pinarangalan`,fallbackAttempts:`Mga Pagtatangka sa Fallback`,savingsHint:"Talagang nakasave ka ng ${actual} nitong nakaraang {range}. Iyan ang presyo ng parehong tokens sa mga bayad na API, na may presyo kada modelo. Ang bilang na ipinapakita ay nagpapakita ng iyong bilis mula sa huling {span} ng datos hanggang sa buong 30 araw.",savingsHintExact:"Talagang nakasave ka ng ${actual} nitong nakaraang {range}. Iyan ang presyo ng parehong tokens sa mga bayad na API, na may presyo kada modelo. Ang ipinakitang numero ay ang iyong tunay na kabuuan sa loob ng 30 araw.",requestsHintPinned:`{pinned} sa mga kahilingang ito ay nag-pin ng isang partikular na modelo sa pangalan. {honored} ay pinagsilbihan ng pinned model; Nabigo {failed} sa iba. Ang iba pa ay auto-routed.`,requestsHintAuto:`Lahat ng kahilingan sa panahong ito ay auto-routed; Walang kliyente na nag-pin ng partikular na modelo sa pangalan.`,requestsHintTypes:`{chat} chat at {embedding} embedding requests.`,rangeLabel24h:`24 oras`,rangeLabel7d:`7 araw`,rangeLabel30d:`30 araw`,rangeLabel90d:`90 araw`,spanDays:`{count} araw`,spanHours:`{count} oras`,latencyMs:`Latency (ms)`,latency:`Latency`,pinned:`nakapin`,inTokens:`Sa mga token`,outTokens:`Mga token ng Out`,saved:`Naka-save`,message:`Mensahe`,time:`Oras`,perModelBreakdown:`Pagkakahati-hati kada modelo`,usageByKey:`Paggamit ayon sa susi`,keyColumn:`Susi`,keyLabelFallback:`Pangunahing #{id}`,errorsByProvider:`Mga error ayon sa provider`,recentErrors:`Mga kamakailang pagkakamali`,noErrors:`Walang error`,recentCalls:`Mga kamakailang tawag`,clientIp:`IP ng Kliyente`,clientAgent:`Client app`,requestedModelHint:`Hiniling na {model}, pinagsilbihan bilang fallback`,attempts:`Mga Pagtatangka`,filterAll:`Lahat`,filterCanceled:`Kanselado`,providerBreakdown:`Pagkakahati-hati ng bawat provider`,tokensPerSec:`Tok/s`,allProviders:`Lahat ng provider`,requestDetailTitle:`Humiling ng #{id}`,failoverLadder:`Failover ladder`,failoverLadderHint:`Bawat talon-talon na ito ay dumaan sa fallback chain, sunod-sunod.`,noAttemptTrace:`Walang naitala na pagsubok para sa kahilingang ito.`,keyOrdinal:`pangunahing #{n}`,keyBadge:`Susi #{n}`,attemptTimingHint:`Start offset mula sa request start · tagal ng pagtatangka`,requestedModel:`Hinihiling na modelo`,ttft:`TTFT`,requestsByAgent:`Mga kahilingan ayon sa agent`,sortBy:`Ayusin ayon sa {column}`,sortHint:`Ang pag-aayos ay para lamang sa {count} na-load na row`,cacheHitRate:`Cache hit rate`,cacheSavedTokens:`{tokens} token ang natipid`,cacheHitRateHint:`{hits} hit laban sa {misses} miss mula nang magsimula ang server · {requests} tawag sa provider ang naiwasan`},logs:{title:`Mga Log`,description:`Live na server log. Dumarating ang mga bagong entry habang bukas ang pahina.`,pause:`I-pause`,resume:`Ipagpatuloy`,clear:`I-clear ang mga log`,cleared:`Na-clear ang server log`,levelFilter:`Mga antas ng log`,levels:{debug:`Debug`,info:`Info`,warn:`Warn`,error:`Error`},countsHint:`Ang mga bilang ay kabuuan para sa buong log buffer sa server, hindi lang sa mga entry na tumutugma sa mga filter na ito.`,searchPlaceholder:`Maghanap ng mga mensahe sa log...`,jumpToLatest:`Pumunta sa pinakabago`,showMore:`Ipakita ang higit pa`,showLess:`Ipakita ang mas kaunti`,buffered:`Ipinapakita ang {count} sa hanggang {max} na naka-buffer na entry`,emptyTitle:`Wala pang log entry`,emptyDescription:`Lumilitaw dito ang mga entry habang isinusulat ang mga ito ng server. Palawakin ang mga filter ng antas, provider o paghahanap kung umaasa ka ng output.`,noLevelsTitle:`Walang napiling antas`,noLevelsDescription:`Mag-on ng kahit isang antas para makita ang output ng log.`,loadFailed:`Hindi ma-load ang server log.`},playground:{title:`Palaruan`,description:`Magpadala ng chat completion sa router at tingnan kung aling provider ang nagseserbisyo nito.`,autoModel:`Auto (fallback chain)`,fusionModel:`Fusion (multi-model synthesis)`,selectModel:`Piliin ang modelo`,searchModels:`Maghanap ng mga modelo...`,noModelsFound:`Walang natagpuang modelo`,send:`Ipadala`,sending:`Nagpapadala...`,clear:`Clear`,inputPlaceholder:`Mag-type ng mensahe... (⏎ para ipadala, ⇧⏎ para sa newline)`,emptyTitle:`Magpadala ng mensahe upang makapagsimula.`,emptyDescription:`Gamit ang {model}. Magpalit ng modelo sa selector sa itaas.`,noModels:`Wala pang modelo. Magdagdag ng API key sa pahina ng Keys upang punan ang listahang ito.`,copyReply:`Kopyahin ang sagot`,fallback:`takbuhan`,fallbacks:`mga fallback`,fusionPanel:`Panel`,fusionJudge:`Hukom`,fusionTrace:`{count} mga tugon ng modelo`,fusionFailed:`walang tugon`,fusionJudgeSynth:`sintetiko ang huling sagot`,errorPrefix:`Error:`,systemPromptLabel:`System prompt`,systemPromptPlaceholder:`Opsyonal. Ipinadala bilang system message bago ang iyong chat.`,showSettings:`Ipakita ang mga setting`,hideSettings:`Itago ang mga setting`,samplingHeading:`Sampling`,samplingHelp:`Kapag naka-off, ang sariling default ng tagapagbigay ang ginagamit. Ang mga kontrol lang na i-on mo ang ipapadala.`,samplingDefault:`Default`,temperature:`Temperatura`,topP:`Top P`,maxTokens:`Max na token`,errorTitle:`Nabigo ang kahilingan`,attach:`Maglakip ng mga file`,attachTooMany:`Puwede kang maglakip ng hanggang {count} file kada mensahe.`,attachTooLarge:`Masyadong malaki ang {name}. Ang limitasyon ay {max}.`,attachUnsupported:`Hindi suportado ang {name}. Maglakip ng mga larawan (PNG, JPEG, WebP, GIF) o mga text file (TXT, MD, CSV, JSON, LOG).`,attachFailed:`Hindi mabasa ang {name}.`,noVisionBadge:`Walang larawan`,visionWarning:`Hindi tumatanggap ng larawan ang {model}. Pumili ng modelong tumatanggap ng larawan o Auto.`,dictate:`Idikta`,dictationStop:`Ihinto ang pag-record`,dictationTranscribing:`Isinasalin sa teksto…`,dictationUnavailable:`Magdagdag ng mga provider ng audio model para magamit ang pagdidikta.`,dictationModel:`Modelo ng pagdidikta`,dictationFailed:`Nabigo ang transkripsyon: {reason}`,artifactOpen:`Buksan ang preview`,artifactPreview:`Preview`,artifactCode:`Code`,artifactClose:`Isara ang preview`,artifactDownload:`I-download`,artifactReload:`I-reload ang preview`,artifactHtml:`HTML page`,artifactSvg:`SVG image`,artifactLines:`linya`,artifactResize:`Baguhin ang laki ng preview`},playgroundSessions:{heading:`Mga usapan`,newConversation:`Bagong usapan`,showSidebar:`Ipakita ang mga usapan`,hideSidebar:`Itago ang mga usapan`,empty:`Wala pang naka-save na usapan.`,untitled:`Usapang walang pamagat`,rename:`Palitan ang pangalan`,renamePlaceholder:`Pangalan ng usapan`,messageCount:`{count} mensahe`,justNow:`ngayon lang`,minutesAgo:`{count} min nakalipas`,hoursAgo:`{count} oras nakalipas`,daysAgo:`{count} araw nakalipas`,loadFailed:`Hindi mabuksan ang usapang iyon.`,renameFailed:`Hindi mapalitan ang pangalan ng usapang iyon.`,deleteFailed:`Hindi matanggal ang usapang iyon.`,actions:`Mga aksyon sa usapan`,newChat:`Bagong chat`},embeddings:{title:`Mga Modelo`,description:`Ang mga embedding ay failover lamang sa loob ng isang pamilya: parehong modelo na pinaglilingkuran ng ibang provider. Hindi compatible ang mga vector mula sa iba't ibang modelo, kaya hindi kailanman nagpapalit ng modelo ang router sa iyo.`,defaultBadge:`Default · auto`,makeDefault:`Gawing default`,moveUp:`Umakyat`,moveDown:`Bumaba`,usageToday:`{count} req ngayon`,usageMonth:`{count} Tok ngayong buwan`,autoDescription:`model: "auto" sa POST /v1/embeddings ruta papunta sa default na pamilya. Ang pagbibigay ng pangalan sa isang pamilya (o provider model id) ay nag-pin sa pamilyang iyon; Ang mga provider sa loob nito ay sinusubukan ayon sa pagkakasunod-sunod.`,unsavedChanges:`Mga hindi na-save na pagbabago`,saveChanges:`I-save ang mga pagbabago`,savingChanges:`Pag-iipon...`,tokMax:`{tokens} tok max`,emptyTitle:`Wala pang mga embedding na modelo`,emptyDesc:`Lumilitaw dito ang mga embedding family kapag nagdagdag ka ng provider key na sumusuporta sa embeddings.`,dragToReorder:`I-drag para i-reorder ang provider`},fusion:{title:`Pagsasanib`,description:`Isang panel ng mga modelo ang sumasagot nang sabay-sabay, pagkatapos ay isang hurado ang gumagawa ng mas matibay na sagot. Gamitin ito sa pamamagitan ng pagtawag sa API na may modelong "fusion".`,panelSource:`Pinagmulan ng panel`,panelSourceHelp:`Kung saan nanggagaling ang mga panel model kapag ang isang request ay hindi nakasaad sa sarili nitong request.`,mode:{auto:`Auto (Fallback Chain)`,autoHelp:`Pumili ng iba't ibang set ng mga modelo mula sa iyong Fallback Chain, na niranggo ayon sa iyong aktibong routing strategy.`,explicit:`Tahasang panel`,explicitHelp:`Laging gamitin ang mga partikular na modelong pipiliin mo sa ibaba.`},panelModels:`Mga modelo ng panel`,selectedCount:`{count} ng {max} napiling`,noModels:`Wala pang mga modelong nakakonekta. Magdagdag ng API key, pagkatapos ay i-enable ang mga modelo sa Fallback Chain.`,panelSize:`Laki ng panel`,panelSizeHelp:`Ilan ang iba't ibang modelo na awtomatikong pipiliin (1–{max}).`,judge:`Modelo ng Judge`,judgeHelp:`Ang modelo na nagsasama-sama ng mga sagot ng panel sa isa. Awtomatikong ginagamit ang iyong nangungunang available na modelo.`,judgeAuto:`Auto (nangungunang ranggo na available)`,strategy:`Estratehiya`,strategySynthesize:`I-synthesize — pagsamahin ang panel sa isang sagot`,strategyBestOf:`Pinakamaganda — ibalik ang pinakamalakas na sagot (walang judge call)`,strategySynthesizeShort:`magsintesis`,strategyBestOfShort:`Pinakamahusay sa`,exposePanel:`I-expose ang mga detalye ng panel`,exposePanelHelp:`I-attach ang sagot ng bawat modelo at metadata ng judge sa ilalim ng x_fusion field sa sagot.`,howToUse:`Paano gamitin`,howToUseHelp:`Magpadala ng normal na chat request gamit ang modelong "fusion". Ang mga setting na ito ang default; Anumang request ay maaaring mag-override gamit ang "fusion" field.`,unsavedChanges:`Mga hindi na-save na pagbabago`,save:`I-save`,searchPlaceholder:`Search models…`,providerFilterLabel:`Filter by provider`,providerAll:`All providers`,noMatch:`No models match your search.`},premium:{title:`Premium`,description:`Ang live model catalog, sa bawat device.`,loading:`Naglo-load...`,checkForUpdates:`Suriin ang mga update`,syncing:`Syncing...`,catalogFeed:`Catalog feed`,liveFeed:`Live feed`,monthlySnapshot:`Buwanang snapshot`,lastChecked:`Huling na-check: {when}`,liveDescription:`May mga bagong libreng modelo, pagbabago sa quota, at quirk fixes na dumarating dito ilang oras lang matapos ipadala. Awtomatikong tinitingnan ng app dalawang beses sa isang araw; Walang magagawa.`,snapshotDescription:`Libreng antas: ang katalogo ay nagre-refresh mula sa buwanang snapshot, na awtomatikong sinusuri dalawang beses sa isang araw. Inilipat ito ng Premium sa live feed, na ina-update tuwing 2-3 araw.`,lastSyncProblem:`Huling problema sa sync: {error}`,license:`Lisensya`,planAnnual:`Premium Taunang Taon`,planLifetime:`Premium na Haba ng Buhay`,expired:`nag-expire`,inactive:`Hindi Aktibo`,lifetimeNote:`Lifetime license: hindi kailanman nag-e-expire.`,renewsOn:`Ire-renew sa {date}.`,willNotRenew:`Hindi magre-renew. Premium hanggang {date}, saka babalik ang install na ito sa libreng buwanang katalogo.`,keyInactive:`Hindi na aktibo ang susi na ito. Patuloy na gumagana ang app sa libreng buwanang katalogo.`,manageSubscription:`Pamahalaan ang subscription`,openingPortal:`Pagbubukas...`,removeKey:`Alisin ang key mula sa device na ito`,manageHint:`Pamahalaan ang subscription para buksan ang billing portal ng Stripe: kanselahin, i-update ang iyong card, o mag-download ng mga invoice. Ang pagtanggal ng key ay nagde-deactivate lamang ng device na ito; Hindi naapektuhan ang iyong binili.`,licenseKey:`Susi ng lisensya`,licenseKeyPlaceholder:`fla_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`,activate:`I-activate`,activating:`Ina-activate...`,keyHint:`Ang iyong susi ay nasa iyong purchase email at nasa post-checkout page. Nawala?`,recoverKey:`I-recover ito sa website`,upsellTitle:`Mag-live sa halagang $19 kada taon`,upsellDescription:`Bagong libreng modelo agad sa sandaling umiiral, imbes na 30 araw pagkatapos. Isang susi, bawat device. Kanselahin kahit kailan; Mananatiling libre ang router magpakailanman.`,goPremium:`Mag-Premium`,bundled:`nakabundle`,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:`May nangyaring mali`,boundaryDescription:`Nagkaroon ng hindi inaasahang error ang dashboard. Ligtas ang iyong data. Subukan muli o bumalik sa pahina ng mga modelo.`,tryAgain:`Subukan muli`,goHome:`Bumalik sa mga modelo`},notFound:{title:`Hindi natagpuan ang pahina`,description:`Ang pahinang ito ay hindi umiiral o maaaring lumipat na.`},setup:{title:`Pagsisimula`,subtitle:`Tatlong hakbang para i-route ang iyong unang request.`,progress:`{done} ng {total}`,step1Title:`Magdagdag ng provider key`,step1Desc:`Ikonekta ang kahit isang provider account. Gumagana ang mga libreng susi.`,step1Cta:`Magdagdag ng mga key`,step2Title:`Magpadala ng test request`,step2Desc:`Pumili ka ng kahit anong modelo sa Playground at bumati.`,step2Cta:`Bukas na Palaruan`,step3Title:`Ikonekta ang iyong app`,step3Desc:`Gamitin ang iyong unified API key sa anumang OpenAI-compatible na client.`,copyKey:`Kopyahin API key`,copyUrl:`Kopyahin ang base URL`,copiedKey:`API key na kinopya sa clipboard`,copiedUrl:`Base URL kinopya sa clipboard`},palette:{title:`Command palette`,placeholder:`Mga pahina ng paghahanap, mga modelo, mga aksyon...`,empty:`Walang resulta`,groupPages:`Mga Pahina`,groupActions:`Mga Aksyon`,groupModels:`Mga Modelo`,toggleTheme:`I-toggle ang dark mode`},validation:{required:`Kinakailangan`,url:`Maglagay ng valid na URL na nagsisimula sa http:// o https://`,email:`Maglagay ng wastong email address`,passwordMin:`Hindi bababa sa {min} mga karakter`},agents:{title:`Mga coding agent`,description:`Ikonekta ang mga coding tool sa iisang free-model gateway gamit ang nabuong, backup-safe na configuration.`,apiKey:`API key`,quickstartTitle:`Mabilisang simula`,quickstart:`Pinakamabilis na paraan: i-configure ang Claude Code mula sa live na catalog.`,currentKey:`Kasalukuyang pinag-isang key:`,seenRecently:`Nakita kamakailan`,setupLabel:`Awtomatikong setup`,setupHint:`Isinusulat para sa iyo ang config file ng tool na ito, nakaturo sa gateway na ito.`,setupGuideHint:`Ipinapakita ang mga hakbang sa setup ng tool na ito; walang file na isinusulat.`,manualLabel:`Manwal na koneksyon`,manualHint:`Base URL at key na ilalagay sa sariling settings ng tool.`,endpoint:`Endpoint`,documentation:`Dokumentasyon`,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:`Isang personal assistant na laging naka-on at sumasagot sa WhatsApp, Telegram, Discord at iba pa mula sa sarili mong makina.`,hermes:`Ang self-improving na agent ng Nous Research na may persistent na memorya at mga skill, sa terminal o sa mga chat app.`,pi:`Isang minimal na terminal agent na hinuhubog mo gamit ang sarili mong mga extension, skill at prompt template.`}},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:`Palitan ang pangalan ng chain na ito`,renameConfirm:`Palitan ang pangalan ng chain "{oldName}" sa "{name}"? Ang mga client na tumatawag ng auto:{oldName} ay dapat lumipat sa auto:{name}.`,renamePlaceholder:`Bagong pangalan ng chain`,renameFailed:`Hindi mapalitan ang pangalan ng chain.`},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:`Modeller`,playground:`Bahçesi`,keys:`Anahtarlar`,analytics:`Analitik`,premium:`prim`,upgrade:`Yükseltme`,settings:`Ayarlar`,signOut:`Oturumu kapat`,openMenu:`Gezinme menüsünü aç`,switchLight:`Açık temaya geç`,switchDark:`Koyu temaya geç`,switchToChinese:`Çinceye geç`,switchToEnglish:`İngilizceye geç`,modelsMenu:`Model türlerine göz atın`,agents:`Ajanlar`,logs:`Günlükler`,analyticsMenu:`Analitik sayfaları`,notifications:`Notifications`,noNotifications:`No notifications yet`},auth:{createYourAccount:`Hesabınızı oluşturun`,signIn:`Oturum aç`,email:`E-posta`,password:`Şifre`,emailPlaceholder:`sen@example.com`,passwordPlaceholderSetup:`en az 8 karakter`,passwordPlaceholderLogin:`şifreniz`,setupDescription:`Bu kontrol panelini koruyacak e-postayı ve şifreyi ayarlayın.`,loginDescription:`Anahtarlarınızı, yönlendirmenizi ve analizlerinizi yönetmek için oturum açın.`,createAccount:`Hesap oluştur`,creating:`Oluşturuluyor…`,signingIn:`Oturum açılıyor…`,loading:`Yükleniyor…`,newPasswordAutoComplete:`yeni şifre`,currentPasswordAutoComplete:`geçerli şifre`,serverUnreachableBefore:`Sunucuya ulaşılamıyor. Arka ucun çalıştığından emin olun (`,serverUnreachableAfter:`).`,setupCode:`Kurulum kodu`,setupCodePlaceholder:`sunucu günlüklerinden kod`,setupCodeHint:`Başka bir cihazdan kurulum, başlangıçta sunucu günlüklerine yazdırılan tek seferlik kodu gerektirir.`,changePassword:`Şifre değiştir`,changeEmail:`E-posta değiştir`,forgotPassword:`Şifrenizi mi unuttunuz?`,currentPassword:`Mevcut şifre`,newPassword:`Yeni şifre`,newEmail:`Yeni e-posta`,resetCode:`Sıfırlama kodu`,resetCodePlaceholder:`sunucu günlüklerindeki kod`,resetCodeHint:`Kod sunucu günlüğündedir. Asla e-postayla gönderilmez.`,forgotPasswordDescription:`Sıfırlama kodu oluşturmak için aşağıdaki düğmeye tıklayın. Kod sunucu günlüğüne yazılır, asla e-postayla gönderilmez. Yeni şifre belirlemek için buraya girin.`,requestResetCode:`Kod gönder`,requestingResetCode:`Gönderiliyor…`,resetPassword:`Şifreyi sıfırla`,resettingPassword:`Sıfırlanıyor…`,changingPassword:`Değiştiriliyor…`,changingEmail:`Değiştiriliyor…`,backToLogin:`Girişe dön`,passwordChanged:`Şifre değiştirildi.`,emailChanged:`E-posta değiştirildi.`,passwordReset:`Şifre sıfırlandı. Lütfen giriş yapın.`,resetCodeDockerHint:`Docker içinde mi çalışıyor? Kod konteyner günlüğündedir: docker logs <container>.`,desktopSessionFailed:`Kontrol paneli yerel sunucuya giriş yapamadı. SRouter uygulamasını kapatıp yeniden açın.`},common:{save:`Kaydet`,saving:`Kaydediliyor…`,cancel:`İptal`,discard:`At`,delete:`Sil`,confirm:`Onayla`,copy:`Kopyala`,copied:`Kopyalandı`,copyFailed:`Kopyalanamadı — metni seçip elle kopyalayın`,show:`Göster`,hide:`Gizle`,apply:`Uygula`,applied:`Uygulandı`,applying:`Başvuruluyor…`,active:`Aktif`,inactive:`Etkin değil`,never:`asla`,loading:`Yükleniyor…`,error:`Hata`,noData:`Henüz veri yok`,unsavedChanges:`Kaydedilmemiş değişiklikler`,saveChanges:`Değişiklikleri kaydet`,remove:`Kaldır`,unknownError:`Bilinmeyen hata`,model:`Modeli`,provider:`sağlayıcı`,success:`Başarı`,failures:`Başarısızlıklar`,dismiss:`Reddet`,status:`Durum`},settings:{title:`Ayarlar`,language:`Dil`,theme:`Tema`,themeSystem:`Sistem`,themeLight:`Açık`,themeDark:`Koyu`,searchLanguage:`Dilleri ara…`,noLanguages:`Dil bulunamadı`,sections:`Ayar bölümleri`,sectionGeneral:`Genel`,sectionCompression:`Sıkıştırma`,sectionAdvanced:`Gelişmiş`,sectionPreview:`Önizleme`,generalDescription:`Bu panonun dili ve görünümü.`,advancedDescription:`Sıkıştırma hattı için eşikler ve güvenlik anahtarları.`,compressionTitle:`İstem sıkıştırma`,compressionDescription:`Kod, hatalar, yollar, sayılar ve araç tanımlarını koruyarak yönlendirmeden önce istek boyutunu azaltın.`,compressionHelp:`Her isteği, bir sağlayıcıya gönderilmeden önce daha az jeton kullanacak şekilde yeniden yazar. Kod, hatalar, dosya yolları ve sayılar korunur; bunlara zarar veren her yeniden yazma atılır.`,compressionMode:`Mod`,compressionModeHelp:`Kapalı, istekleri olduğu gibi gönderir. Kayıpsız yalnızca yinelenen ve gereksiz metni kaldırır. Standart ayrıca araç çıktısını kısaltır. Agresif buna ek olarak eski turları yoğunlaştırır.`,compressionOff:`Kapalı`,compressionLossless:`Kayıpsız`,compressionStandard:`Standart`,compressionAggressive:`Agresif`,compressionLossy:`Kayıplı`,compressionEngines:`Motorlar`,compressionEnginesHelp:`Her motor bir yeniden yazma adımıdır. Hangi motorların çalışacağına mod karar verir; burada birini kapatmak onu her moddan çıkarır.`,engineDedup:`Yinelenen bloklar`,engineDedupHelp:`Konuşmada daha önce geçmiş bir metin bloğunu, ona yapılan kısa bir referansla değiştirir.`,engineLite:`Boşluk temizliği`,engineLiteHelp:`Satır sonu boşluklarını kırpar, art arda gelen boş satırları birleştirir ve yinelenen sistem mesajlarını atar.`,engineReadLifecycle:`Geçersiz kalan dosya okumaları`,engineReadLifecycleHelp:`Aynı dosya sonradan yeniden okunduğunda veya düzenlendiğinde, önceki okumayı kısa bir notla değiştirir.`,engineToolfilter:`Araç çıktısı filtresi`,engineToolfilterHelp:`Derleme, test ve kurulum gibi komut ve araç çıktılarını kısaltır. Hata ve yığın izi satırları her zaman korunur.`,engineJsoncompact:`JSON tabloları`,engineJsoncompactHelp:`Aynı alanları paylaşan uzun JSON dizilerini derli toplu bir tablo olarak yeniden kodlar. Geri döndürülebilir, bu yüzden hiçbir şey kaybolmaz.`,engineRelevance:`İlgi filtresi`,engineRelevanceHelp:`Bir mesaj boyut bütçesini aştığında, son mesajla en az ilgili cümleleri atar.`,engineAging:`Eski turlar`,engineAgingHelp:`Son birkaç turun ötesindeki turları; yolları, hataları ve kararları koruyan kısa bir özete indirger.`,engineHardBudget:`Jeton tavanı`,engineHardBudgetHelp:`İstek jeton hedefine sığana kadar en az değerli satırları kaldırır.`,compressionAutoTrigger:`Tahmini jeton sayısının üzerinde otomatik tetikle`,compressionAutoTriggerHelp:`Tahmini olarak bu jeton sayısının üzerindeki istekler otomatik olarak Agresif moda geçer. Devre dışı bırakmak için boş bırakın.`,compressionPrefixFreeze:`Yinelenen istem öneklerini dondur`,compressionPrefixFreezeHelp:`Aynı metin üç kez görüldükten sonra sistem istemini olduğu gibi bırakır, böylece sağlayıcı tarafındaki istem önbelleği çalışmayı sürdürür.`,compressionTrustProjectFilters:`Proje filtre dosyalarına güven`,compressionTrustProjectFiltersHelp:`Araç çıktısı filtrelerini çalışma dizininden de yükler. Varsayılan olarak kapalıdır, çünkü bir depo bunu modelden çıktı gizlemek için kullanabilir.`,compressionStats:`Boyut tasarrufu`,compressionEstimatedTokensSaved:`Tahmini jeton tasarrufu`,compressionPreview:`Canlı önizleme`,compressionPreviewDescription:`Bir istek gövdesini hattan geçirerek sağlayıcının ne alacağını görün.`,compressionPreviewPlaceholder:`İstek JSON'u veya düz metin yapıştırın`,compressionRunPreview:`Önizlemeyi çalıştır`,updatesTitle:`Güncellemeler`,checkForUpdates:`Güncellemeleri kontrol edin`,lastChecked:`Son kontrol: {when}`,currentVersion:`Mevcut derleme:`,updateAvailable:`Güncelleme mevcut`,changelog:`Neler değişti`,upToDate:`Güncel`,buildAhead:`Bu derleme resmi main dalının ilerisinde.`,buildDiverged:`Bu derleme resmi main dalından ayrışmış.`,buildUnknown:`Bu özel derleme resmi main dalıyla karşılaştırılamıyor.`,notGitInstall:`Bu kurulum commit bilgisi içermiyor.`,checkFailed:`Güncellemeler denetlenemedi.`,contactsGithub:`Denetimler elle yapılır ve GitHub ile iletişim kurar.`,autoUpdateCheck:`Otomatik güncelleme denetimi`,autoUpdateCheckHelp:`Yeni bir sürüm için günde bir kez GitHub'ı denetler ve bir hatırlatma gösterir. Varsayılan olarak kapalıdır.`,openReleases:`GitHub Sürümlerini Aç`,restartAfterUpdate:`Derleme tamamlandıktan sonra SRouter'yi yeniden başlatın.`,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:`Sohbet modelleri`,fusionTab:`Füzyon`,embeddingsTab:`Gömmeler`,imageTab:`Resim`,videoTab:`Video`,audioTab:`Ses`,imageDesc:`Metinden görüntüye üretim modelleri.`,videoDesc:`Text-to-video generation models.`,audioDesc:`Metinden konuşmaya ve konuşmayı metne dönüştürme modelleri.`,mediaHint:`Şununla oluştur:`,mediaEmpty:`Henüz model yok. Katalogdan senkronize edilirler.`,ttsHeading:`Metinden konuşmaya`,sttHeading:`Metne konuşma`,sttHint:`Şununla metne dönüştür:`,sttEmpty:`Henüz konuşmayı metne dönüştürme modeli yok. Katalogdan senkronize edilirler.`,newBadge:`Yeni`,monthlyTokenBudget:`Aylık jeton bütçesi`,remaining:`kalan`,used:`kullanılmış`,usedScopeHint:`Yalnızca bu takvim ayının başından bu yana yapılan sohbet istekleri; etkin zincirdeki tüm modeller (özel uç noktalar dâhil) toplanır. SRouter dışından sağlayıcıya gönderdiğiniz trafik sayılmaz.`,legendRemainingTitle:`{name} ({platform}) için kalan / aylık bütçe`,noPublishedQuota:`+{count} yayımlanmış kotası olmayan`,noPublishedQuotaTitle:`Bu modellerin belgelenmiş aylık jeton bütçesi yok, bu yüzden gösterilecek kalan miktar da yok.`,of:`arasında`,showAllModels:`Tüm {count} modellerini göster`,showLess:`Daha az göster`,vision:`Vizyon`,visionTitle:`Görüntü girişini kabul eder`,tools:`Araçlar`,toolsTitle:`Yapılandırılmış araç çağrıları yayınlayarak araç taşıma isteklerine uygun hale gelir`,retired:`Kaldırıldı`,penalty:`−{value} cezası`,obs:`{count} gözlem`,tokPerMonth:`{count} tok/ay`,rpmLimit:`{count} rpm`,rpdLimit:`{count} rpd`,noKey:`anahtar yok`,dragToReorder:`Yeniden sıralamak için sürükleyin`,dragToReorderGroup:`Modeli yeniden sıralamak için sürükleyin`,moveToRank:`Rütbeye git`,providerCount:`{count} sağlayıcıları`,servedBy:`{providers} tarafından sunulmaktadır`,viewProviders:`Sağlayıcıları görüntüle`,backToModels:`Modellere geri dön`,providersHeading:`Bu modele hizmet veren sağlayıcılar`,codeSnippetHeading:`Bu modeli kullan`,modelNotFound:`Bu model mevcut değil veya yapılandırılmış sağlayıcısı yok.`,providerIdsHeading:`Sağlayıcı model kimlikleri`,providerIdsHint:`Her sağlayıcıya yük devretmek için birleşik model kimliğini veya bir sağlayıcıyı sabitlemek için sağlayıcıya özel kimliği gönderin.`,copyModelName:`Model adını kopyala`,settingsHeading:`Sağlayıcı ayarları`,settingsHint:`Katalog modellerinde yapılan yerel düzenlemeler, katalog senkronizasyonlarında korunur. Silinen katalog modelleri, siz onları config aracılığıyla tekrar ekleyene kadar silinmiş olarak kalır.`,catalogModel:`katalog`,customModel:`özel`,discoveredModel:`keşfedildi`,localOverride:`yerel geçersiz kılma`,displayName:`Görünen ad`,sizeLabel:`Yetenek kademesi`,sizeLabelHint:`Frontier/Large/Medium/Small istihbarat eksenini belirler: üst kademe her zaman alt kademeyi geçer ve aynı kademe içinde istihbarat sıralaması puanı hâlâ değiştirir. Tanınan kademesi olmayan bir model bu eksende en düşük puanı alır, ancak istihbarat üç eksenden yalnızca biridir — güvenilirliği ve hızı iyiyse yine de yönlendirmeyi kazanabilir.`,sizeLabelNone:`Yok (en düşük istihbarat puanı)`,contextWindow:`Bağlam`,inFallback:`Zincirli`,saveModelSettings:`Model ayarlarını kaydet`,aggregateBudget:`{count}/ay`,aggregateBudgetTitle:`Bu modelin sağlayıcıları genelinde aylık toplam ücretsiz jeton sayısı`,rateRpm:`{count} RPM`,rateRpd:`{count} RPD`,rateTitle:`Oran sınırlı — sabit aylık token bütçesi yok`,rateLimitUsage:`{kind} {used}/{limit}`,rateLimitUsageTitle:`Zaman penceresi hız sınırı kullanımı (kullanılan / sınır), en fazla boşluğu olan sağlayıcı`,splitOut:`Bu kopyayı birleştirme`,splitOutHint:`Bu sağlayıcının kopyasına, birleşik modelle birleştirmek yerine kendi ayrı girişini verin. Kopyanın kendi sayfasından tekrar birleştirebilirsiniz.`,splitUndo:`Geri birleştir`,splitUndoHint:`Bu kopya, birleştirilmiş modelinden ayrı tutulur. Tüm sağlayıcılarında yeniden yük devretmek için onu tekrar birleştirin.`,splitBadge:`ayrı tutuldu`,noData:`veri yok`,noDataTitle:`Henüz hiçbir talep kaydedilmedi; bu sağlayıcı için güvenilirlik ve hız ölçülemez.`,bestOfN:`{count}'nin en iyisi`,perProviderScores:`Sağlayıcı başına puanlar: {list}`,columnModel:`Modeli`,columnOn:`Açık`,noModelsBefore:`Hiçbir model mevcut değil. API anahtarlarını ekleyin`,keysPageLink:`Anahtarlar sayfası`,noModelsAfter:`ilk.`,hiddenNoKeys:`Gizli (anahtar yok): {platforms}`,searchPlaceholder:`Modelleri veya sağlayıcıları arayın…`,clearSearch:`Aramayı temizle`,ctxAny:`Herhangi bir bağlam`,ctxBadge:`{size} ctx`,ctxTitle:`Bağlam penceresi`,copyModelId:`Model kimliğini kopyala`,showingCount:`{total} modellerinin {shown}'si`,clearFilters:`Filtreleri temizle`,noMatches:`Filtrelerinizle eşleşen model yok.`,noModelsTitle:`Yapılandırılmış model yok`,intelligenceRank:`İstihbarat`,speedRank:`Hız`,rankHint:`Katalogdaki sıra — 1 en iyisidir.`,limitRpm:`RPM`,limitRpd:`RPD`,limitTpm:`TPM`,limitTpd:`TPD`,limitRpmHint:`Dakika başına istek. Sınır olmaması için boş bırakın.`,limitRpdHint:`Gün başına istek. Sınır olmaması için boş bırakın.`,limitTpmHint:`Dakika başına jeton. Sınır olmaması için boş bırakın.`,limitTpdHint:`Gün başına jeton. Sınır olmaması için boş bırakın.`,usageThisMonth:`Aylık kullanım`,usageEmpty:`Bu ay henüz istek yok.`,usageRequestsMonth:`bu ay {count} istek`,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:`Gösterilen tüm modelleri aç veya kapat`,enableAll:`Tümünü aç`,disableAll:`Tümünü kapat`,enableAllHint:`Gösterilen tüm modelleri açın, sonra kaydedin`,disableAllHint:`Gösterilen tüm modelleri kapatın, sonra kaydedin`,enabledOfShown:`Gösterilen {shown} modelden {enabled} tanesi zincirde`},strategies:{explore:`Ölçülmemiş modelleri keşfet`,exploreHint:`Güvenilirlik veya hız verisi olmayan modellere sicil oluşturabilmeleri için %10 oranında ilk sırada denenme şansı verir. Giden şey gerçek isteğinizdir, dolayısıyla test edilmemiş bir model yanıtlayabilir. Özel bir uç nokta için Anahtarlar sayfasındaki «Uç noktayı test et» ile gerçek trafik harcamadan deneyin.`,keySelection:`Anahtar seçimi`,keySelectionAuto:`Otomatik`,keySelectionLeastRemaining:`En az kalan`,keySelectionHint:`Aynı sağlayıcıdaki birden çok anahtar arasında nasıl seçim yapılacağı. Otomatik mevcut sırayı korur; En az kalan, anahtarları gözlenen kotaya göre sıralar ve en çok kotası kalanı önce dener.`,cooldownCeiling:`En uzun otomatik soğuma`,cooldownCeilingHint:`Yönlendiricinin kendi tahminlerinin başarısız bir anahtar ve model çiftini ne kadar süre devre dışı bırakabileceğini sınırlar. Merdiven normalde 2 dk, 10 dk, 1 sa, 24 sa şeklinde yükselir; kredi veya kademe hataları bir gün devre dışı bırakır. Sağlayıcının belirttiği yeniden deneme süreleri asla kısaltılmaz.`,cooldownCeilingDefault:`Varsayılan (en fazla 24 sa)`,cooldownCeiling10m:`10 dakika`,cooldownCeiling1h:`1 saat`,cooldownCeiling6h:`6 saat`,moreOptions:`Diğer seçenekler`,peakActive:`(yoğun saatler)`,peakActiveHint:`Yoğun saat ayarı şu anda etkin, dolayısıyla bunlar hazır ayarın kendi ağırlıkları değil: hız ağırlığının %60'ı güvenilirliğe aktarıldı.`,peakAdjust:`Yoğun saat ayarı`,peakAdjustHint:`Varsayılan olarak kapalı. Aşağıdaki aralıkta hız ağırlığının %60'ını güvenilirliğe aktarır — ücretsiz aktarıcılar o saatlerde en yoğun haldedir, bu yüzden güvenilirlik başarıyı ham hızdan daha iyi öngörür. En hızlı ve En güvenilir etkilenmez.`,peakFrom:`Başlangıç`,peakTo:`bitiş`,peakTimezoneLabel:`Saat dilimi`,peakUseBrowserTimezone:`Tarayıcının saat dilimini kullan`,peakTimezoneInvalid:`Bilinmeyen saat dilimi.`,peakExemptNote:`Bu hazır ayar etkilenmez — zaten hız/güvenilirlik dengesinin bir ucunda duruyor.`,title:`Yönlendirme stratejisi`,description:`Bir yönlendirme stratejisi seçin. Manuel modda sırayı ayarlamak için sürüklersiniz; diğer stratejiler ise güvenilirlik, hız ve zeka üzerinden canlı skora göre yönlendirilir.`,weightsSummary:`güvenilirlik {reliability}% · hız {speed}% · zeka {intelligence}%`,guardrails:`Korkuluklar`,guardrailsTooltip:`Her zaman açık korkuluklar: ücretsiz kota payı × canlı oran sınırı cezası. 1,0'ın altında model geri planda kalıyor demektir.`,scoreTooltip:`Nihai yönlendirme puanı = üç eksenin ağırlıklı ortalamasının korkuluklarla çarpımı. Önce daha yüksek rotalar.`,modeManualHint:`Manuel mod: istekler yukarıdan aşağıya doğru aşağıdaki sırayı takip eder. Yeniden sıralamak için sürükleyin.`,modeScoreHint:`Skorlar canlı trafikten güncellenir. Aşağıdaki sıra, isteklerin şu anda nasıl yönlendirildiğini göstermektedir.`,manual:`Manuel`,manualBlurb:`Tam olarak aşağıda belirlediğiniz sırayla rota çizin. Yeniden sıralamak için tutamaçları sürükleyin. Puanlama yok; Zincir yukarıdan aşağıya doğru takip edilir.`,balanced:`Dengeli`,balancedBlurb:`Güvenilirlik (%50) önde gelirken, hız ve zeka eşit ağırlıktadır (her biri %25). Her yönüyle mantıklı bir varsayılan.`,smartest:`En akıllı`,smartestBlurb:`Hala çalışan en yetenekli modeli tercih edin. Zeka %55, güvenilirlik %35, hız %10.`,fastest:`En hızlı`,fastestBlurb:`Hala çalışan en hızlı modeli tercih edin. Hız %55, güvenilirlik %35, zeka %10.`,reliable:`En güvenilir`,reliableBlurb:`Her şeyden önce başarı oranını en üst düzeye çıkarın. Güvenilirlik %70, hız ve zeka her biri %15.`,custom:`Özel`,customBlurb:`Kaydırıcılarla kendi güvenilirlik, hız ve zeka dengenizi ayarlayın. Ön ayarlarla aynı motor, yalnızca ağırlıklarınız.`,adjust:`Ayarla`,customWeights:`Özel ağırlıklar`,customWeightsHelp:`Kaydırıcılar bağımsızdır; Otomatik dengelemeyi %100'e kadar paylaşır.`,weightReliability:`Güvenilirlik`,weightSpeed:`Hız`,weightIntelligence:`İstihbarat`,weightRequired:`En az bir ağırlık sıfırın üzerinde olmalıdır.`,scoreColumn:`Puan`},penaltyInspector:{title:`Yönlendirici basıncı`,subtitle:`Son {minutes} dakikadaki cezalar, bekleme süreleri ve başarısızlıklar`,rowCount:`{count} aktif`,offChain:`zincir dışı`,penaltyValue:`Ceza {value}`,factor:`puan x{factor}`,noCooldown:`Bekleme süresi yok`,cooldownChip:`{key} - {time}`,resetCooldown:`Reset cooldown`,clearAll:`Tümünü temizle`,clearAllHint:`Tüm soğumaları, cezaları ve hata serilerini hemen kaldırır. Baskı, sonraki gerçek sonuçlardan yeniden oluşur.`,errorsHeading:`{count} son hatalar`,noRecentErrors:`Yakın zamanda hata yok`,noKey:`anahtar yok`,reasons:{penalty:`cezalandırıldı`,cooldown:`bekleme süresi`,recent_errors:`başarısız`}},keys:JSON.parse(`{"pageTitle":"Anahtarlar","pageDescription":"Sağlayıcı kimlik bilgileri ve uygulamalarınızın bağlandığı birleşik API anahtarı.","tabProviders":"Sağlayıcılar","checklistSummary":"{total} sağlayıcıdan {configured} tanesi yapılandırıldı","checklistKeyless":"anahtar gerekmez","checklistNoKeyTip":"Henüz anahtar eklenmedi. Eklemek için tıklayın.","checklistSignupLink":"Hesap oluşturmak ve anahtar almak için {provider} adresini açın","checklistKeylessTip":"Anahtarsız çalışır.","tabQuotaSignals":"Kota sinyalleri","tabApiKey":"Birleşik API anahtarı","tabAnthropic":"Anthropic","unifiedKey":"Birleşik API anahtarınız","regenerate":"Yenile","showKey":"Göster","hideKey":"Gizle","copyKey":"Kopyala","copyFullKey":"Anahtarın tamamını kopyala","copiedKey":"Kopyalandı","baseUrl":"Temel URL","endpointChat":"Sohbet","endpointResponses":"Yanıtlar","endpointEmbeddings":"Gömmeler","endpointEmbeddingsHint":"Yerleştirmeler sekmesinden model: \\"auto\\" veya bir aile","endpointMessages":"Mesajlar","endpointMessagesHint":"Anthropic uyumlu (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) modelleri","anthropicDesc":"Bu sunucuya bir Claude veya Anthropic SDK istemcisini yönlendirin. Anthropic istemcileri Claude model adlarını gönderir; her birini Otomatik olarak eşler (yönlendirici ücretsiz bir model seçer) veya belirli bir modeli sabitler.","anthropicBaseUrl":"Temel URL","anthropicAuth":"Kimlik doğrulama başlığı","anthropicAuto":"Otomatik — yönlendirici en iyi modeli seçer","anthropicSave":"Eşlemeyi kaydet","anthropicSaved":"Kaydedildi","anthropicNote":"Anthropic istemcileri yerleşik Claude model adlarını korur; yukarıdaki haritalama her birinin havuzunuza nasıl yönlendirileceğini belirler.","familyDefault":"Varsayılan","familyOpus":"Eser","familySonnet":"Sone","familyHaiku":"Haiku","selectPlatform":"Bir sağlayıcı seçin","addKey":"Anahtar ekle","keyAdded":"Anahtar eklendi","endpointKeysShareModels":"Aynı uç noktanın anahtarları onun modellerini paylaşır.","export":"İhracat","exportAll":"Tüm tuşlar","exportHealthy":"Yalnızca sağlıklı","exportKeys":"API anahtarlarını dışa aktar","exportFormat":"Biçim","exportHealthyOnly":"Yalnızca sağlıklı anahtarlar","exportHealthyOnlyDesc":"Şu anda durum denetimlerinde başarısız olan anahtarları hariç tutun","exportWillExport":"İhracat yapacak","exportKey":"anahtar","exportKeys plural":"anahtarlar","exporting":"Dışa aktarılıyor…","exportDownload":"İndir","exportSuccess":"Dışa aktarılan {count} anahtarları","adding":"Ekleniyor…","selectProvider":"Bir sağlayıcı seçin…","accountId":"Hesap Kimliği","label":"Etiket","noKeyNeeded":"(anahtara gerek yok)","outboundProxy":"Giden proxy","outboundProxyDescription":"Giden LLM isteklerini bir proxy aracılığıyla yönlendirin. SOCKS5, HTTP ve HTTPS'yi destekler.","proxyUrl":"Vekil URL","saveProxy":"Kaydet","savingProxy":"Kaydediliyor…","proxyLoadFailed":"Proxy ayarları yüklenemedi.","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":"Özel bir OpenAI uyumlu model ekleyin","addCustomDescription":"Sohbet, yerleştirme, görüntü veya ses modellerini OpenAI uyumlu herhangi bir uç noktaya yönlendirin. API anahtarı yerel sunucular için isteğe bağlıdır.","customType":"Tür","customTypeChat":"Sohbet","customTypeEmbedding":"Gömme","customTypeImage":"Resim","customTypeAudio":"Ses","customTypeTranscription":"Transcription","customBaseUrl":"Temel URL","customModels":"Modeller","customModel":"Modeli","customDisplayName":"Görünen ad","customDisplayNamePerModel":"model başına","customDisplayNameOptional":"isteğe bağlı","customFamily":"Aile","customFamilyPlaceholder":"varsayılan olarak model kimliği kullanılır","customApiKey":"API anahtarı","customCapabilities":"Yetenekler","addModel":"Model ekle","modelAdded":"Model eklendi","addModels":"{count} modellerini ekle","addEmbeddingModel":"Gömme ekle","addImageModel":"Resim modeli ekle","addAudioModel":"Ses modeli ekle","addTranscriptionModel":"Add transcription model","addingCustom":"Ekleniyor…","discoverModels":"Modelleri getir","probeNow":"Uç noktayı test et","probeConfirm":"En fazla 3 test isteği gönderilsin mi?","probeCapabilities":"akıl yürütme: {reasoning} · araçlar: {tools}","probeCapYes":"evet","probeCapNo":"hayır","probeCapUnknown":"bilinmiyor","probeSuccess":"{model} {latency} ms içinde test edildi","probeFailed":"Test başarısız oldu: {reason}","discoverTitle":"Bu uç noktadaki modeller","discoverHint":"Kaydedilecek modelleri seç. Zaten eklenenler kilitli kalır.","discoverEmpty":"Bu uç nokta hiç model döndürmedi.","discoverAlreadyAdded":"Eklendi","discoverSelectAll":"Tümünü seç","modelsAdded":"{count} model eklendi","getApiKey":"API anahtarını alın","deleteKeyConfirm":"Bu anahtar silinsin mi? Bu geri alınamaz.","checkAll":"Tümünü kontrol et","checking":"Kontrol ediliyor…","editLabel":"Etiketi düzenle","saveLabel":"Etiketi kaydet","unifiedKeyDescBefore":"Bunu OpenAI'niz olarak kullanın","unifiedKeyDescAfter":"; bu proxy'ye gelen isteklerin kimliğini doğrular.","serverUnreachableBefore":"Sunucuya ulaşılamıyor","serverUnreachableAfter":". Arka ucun çalıştığından emin olun. npm run dev her ikisini de başlatır ve sunucu günlükleri sunucu öneki altında yazdırılır.","paneProviderKey":"Sağlayıcı anahtarı","paneImportFile":"Dosyayı içe aktar","paneCustomEndpoint":"Özel uç nokta","platform":"platformu","hideAdded":"Eklenen sağlayıcıları gizle","apiToken":"API jetonu","keyOptionalPlaceholder":"İsteğe bağlı","bearerTokenPlaceholder":"Hamiline ait jeton","pasteKeyPlaceholder":"anahtarı buraya yapıştırın","pasteSeveral":"Birkaçını yapıştır","keyOptionalHint":"İsteğe bağlı: anonim ücretsiz katman için boş bırakın (IP başına hız sınırlı) veya hesabınızı kullanmak için kendi anahtarınızı yapıştırın.","enable":"Etkinleştir","noProviderKeys":"Henüz sağlayıcı anahtarı yok. Yönlendirmeyi başlatmak için yukarıya bir tane ekleyin.","filterPlaceholder":"Sağlayıcıları veya anahtarları filtreleyin","filterAll":"Hepsi","filterHealthy":"Sağlıklı","filterIssues":"Sorunlar","filterDisabled":"Devre dışı","noFilterMatch":"Filtrelerinizle eşleşen sağlayıcı yok.","providerCountSummary":"{providers} sağlayıcıları · {keys} anahtarları","summaryHealthy":"{count} sağlıklı","summaryIssueOne":"{count} sorunu","summaryIssueOther":"{count} sorunları","providerActions":"Sağlayıcı eylemleri","routeViaProxy":"Proxy aracılığıyla yönlendirme","checkNow":"Şimdi kontrol et","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":"Ayrıca aracılığıyla yapılandırılabilir","proxyEnvHintAfter":"ortam değişkeni (öncelik alır). Devre dışı bırakmak için boş bırakın. Örnekler:","importKeys":"Sağlayıcı anahtarlarını içe aktar","importKeysDescription":".env, JSON, JSONC, CSV, Markdown veya metin dosyalarını yükleyin.","importFiles":"Dosyalar","importFileCount":"{count} seçildi","previewFiles":"Önizleme","previewing":"Önizleniyor…","selected":"Seçildi","provider":"sağlayıcı","keyName":"Anahtar adı","keyValue":"Anahtar değer","chooseProvider":"Sağlayıcı seçin","noPreviewKeys":"Bu dosyalarda anahtar bulunamadı.","skippedItems":"Atlandı:","moreItems":"+{count} daha fazla","importSelected":"{count}'yi içe aktar","importing":"İçe aktarılıyor…","noImportSelection":"Sağlayıcı içeren en az bir satır seçin.","duplicate":"Çoğalt","duplicatesFound":"{count} kopya(lar) algılandı — zaten mevcut ve atlanacak.","importResult":"İçe aktarılan {imported}; başarısız oldu {failed}.","importModelCount":"+{count} model","importResultWithModels":"İçe aktarılan {imported}; {models} model kaydedildi; başarısız oldu {failed}.","confirmRemove":"Onaylıyor musun?","quotaSignalsTitle":"Kota sinyalleri","quotaSignalsEmptyTitle":"Henüz kota gözlemi yok","quotaSignalsEmptyDesc":"Bu, sağlayıcılar hız sınırı başlıklarını, kota hatalarını veya doğrulama sinyallerini döndürdükten sonra doldurulur.","quotaKeyRef":"anahtar #{id}","quotaPoolRef":"havuz {pool}","quotaLimit":"Sınır","quotaRemaining":"Kalan","quotaReset":"Sıfırla","quotaObserved":"Gözlemlendi","tabAgents":"Ajanlar","familyGeminiPro":"Gemini Pro","familyGeminiFlash":"Gemini Flash","familyGeminiFlashLite":"Gemini Flash-Lite","geminiTitle":"Gemini model eşleme","geminiDesc":"Gemini Pro, Flash ve Flash-Lite adlarını Auto'ya veya belirli bir katalog modeline eşleyin.","compatibilityTitle":"Ajan uyumluluğu","compatibilityDesc":"İsteğe bağlı uyumluluk yüzeylerini ve Claude Code model keşfini kontrol edin.","ollamaMode":"Ollama emülasyonu","ollamaModeHint":"Açık loopback, kimliği doğrulanmamış LAN trafiğini asla kabul etmez.","ollamaOff":"Kapalı","ollamaLoopback":"Loopback'te açık","ollamaKeyRequired":"API anahtarı gerekli","claudeAliases":"Claude Code keşif takma adları","claudeAliasesHint":"Ağ geçidi model seçicisinin kataloğu listeleyebilmesi için claude/<model> takma adlarını açığa çıkarın.","mcpServer":"MCP sunucusu","mcpServerHint":"/mcp uç noktasını aracı istemcilere açar. Yeni kurulumlarda kapalı başlar.","urlTokensTitle":"İptal edilebilir URL belirteçleri","urlTokensDesc":"Yalnızca başlık gönderemeyen istemciler için. URL belirteçleri geçmişe ve günlüklere sızabilir; bu yüzden artık gerekmediğinde iptal edin.","urlTokenLabel":"Belirteç etiketi","createUrlToken":"Belirteç oluştur","urlTokenOnce":"Bu belirteci şimdi kopyalayın. Bir daha gösterilmeyecek.","revoked":"İptal edildi","revoke":"İptal et","modelScope":"Model kapsamı","modelScopeDesc":"Bu anahtarı belirli model kimlikleriyle sınırlandırın. Yönlendirici diğer tüm modeller için bu anahtarı atlar.","modelScopeAdd":"Bir model kimliği yazıp Enter'a basın","modelScopeEmpty":"Kapsam ayarlanmadı — bu anahtar sağlayıcısının tüm modellerine hizmet eder.","modelScopeClear":"Kapsamı temizle","modelScopeBadgeOne":"sınırlı · 1 model","modelScopeBadgeOther":"sınırlı · {count} model","modelPicker":{"title":"Bu anahtar hangi modellere hizmet versin?","hint":"{provider} anahtarınız eklendi ve şu anda aşağıdaki tüm modellere hizmet veriyor. Bu anahtarın kullanmasına izin verilmeyen modellerin işaretini kaldırın — yönlendirici o modeller için bu anahtarı atlar.","count":"{total} modelden {selected} tanesi seçildi","allNote":"Her şey seçili — hiçbir şey kaydedilmez ve kataloğa sonradan eklenen modeller de bu anahtarı kullanır.","subsetNote":"Bu anahtar seçili modellerle sınırlı olacak. Bunu daha sonra anahtarın satırından değiştirebilirsiniz.","skip":"Şimdi değil","scopedOne":"Anahtar 1 modelle sınırlandırıldı","scopedOther":"Anahtar {count} modelle sınırlandırıldı","allSaved":"Key serves every catalog model"},"cpTitle":"İstemci profilleri","cpDesc":"İstemci başına API anahtarları; her birinin sistem istemini sunucu her zaman uygular.","cpEmpty":"Henüz istemci profili yok.","cpNameLabel":"Ad","cpNamePlaceholder":"örn. Destek botu","cpPromptLabel":"Sistem istemi (isteğe bağlı)","cpPromptPlaceholder":"Sunucunun bu anahtarla yapılan her isteğin başına eklediği talimatlar.","cpCreate":"Profil oluştur","cpRotate":"Anahtarı yenile","cpKeyOnce":"Bu anahtarı şimdi kopyalayın — bir daha gösterilmeyecek.","cpEnabledAria":"Profil etkin","selectKey":"Bu anahtarı seç","bulkSelected":"{count} seçildi","bulkEnable":"Tümünü etkinleştir","bulkDisable":"Tümünü devre dışı bırak","bulkDelete":"Tümünü sil","bulkDeleteConfirm":"{count} silinsin mi?","bulkResult":"Güncellenen {done}; başarısız {failed}.","bulkDeleteResult":"Silinen {done}; başarısız {failed}.","testProxy":"Test","testingProxy":"Testing…","proxyTestOk":"Proxy works — {ms}ms round trip","proxyTestFail":"Proxy failed: {reason}","editKey":"Anahtarı düzenle","editPlatformLocked":"Oluşturmadan sonra sağlayıcı ve uç nokta değiştirilemez.","editCredentialHint":"Geçerli anahtarı korumak için boş bırakın.","editCredentialPartsRequired":"Hem hesap kimliğini hem de API belirtecini girin.","editModels":"Modelleri düzenle","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":"Özel Model Ekle","modelId":"Model Kimliği (ID)","modelIdRequired":"Model Kimliği zorunludur","modelDisplayName":"Görünen Ad","modelContextWindow":"Bağlam Penceresi (token)","modelRateLimits":"İstek Limitleri (isteğe bağlı)","modelSupportsTools":"Araç Çağrısını Destekler","modelSupportsToolsHint":"Bu model işlev/araç çağrıları yürütebiliyorsa etkinleştirin","modelSupportsVision":"Görsel Girişi Destekler","modelSupportsVisionHint":"Bu model görsel girdileri kabul ediyorsa etkinleştirin","createModel":"Model Oluştur","modelAddedSuccess":"Özel model başarıyla eklendi","modelAddFailed":"Özel model eklenemedi","testModel":"Test Et","testingModel":"Test ediliyor…","testPassedShort":"Geçti","testFailedShort":"Başarısız","testPassed":"Model testi {latency}ms içinde başarılı oldu","testFailed":"Model testi başarısız oldu","testThrottled":"Bu modeli yeniden test etmeden önce lütfen {seconds} saniye bekleyin.","noModelsForProvider":"Bu sağlayıcı için yapılandırılmış model yok.","testModels":"Modelleri test et","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":"Sınırsız","capEditHint":"Caps reset at the next period boundary, 00:00 UTC. Leave blank for unlimited.","monthlyUsageLine":"Bu ay {requests} istek, {tokens} token","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:`sağlıklı`,rateLimited:`hız sınırlı`,invalid:`geçersiz`,error:`hata`,unchecked:`işaretlenmemiş`},analytics:{title:`Analitik`,description:`Talep hacmi, gecikme, belirteç kullanımı ve hatalar.`,range24h:`24 saat`,range7d:`7 gün`,range30d:`30 gün`,range90d:`90 gün`,requests:`İstekler`,successRate:`Başarı oranı`,inputTokens:`Giriş jetonları`,outputTokens:`Çıkış jetonları`,avgLatency:`Ortalama gecikme`,p95Latency:`P95 gecikmesi`,avgTtft:`Ortalama TTFT`,estSavings:`Tahmini tasarruf`,requestsByProvider:`Sağlayıcıya göre talepler`,avgLatencyByProvider:`Sağlayıcıya göre ortalama gecikme`,ttftByProvider:`Sağlayıcıya göre ilk jetona ulaşma süresi`,ttftEmpty:`Henüz ilk jetonun kaydedilme zamanı yok.`,requestsOverTime:`Zaman içindeki istekler`,tokensOverTime:`Zamanla jetonlar`,byModel:`Modele göre`,byPlatform:`Platforma göre`,errors:`Hatalar`,errorDistribution:`Hata dağılımı`,pinnedRequests:`Sabitlenen istekler`,pinnedHonored:`Onurlandırıldı`,fallbackAttempts:`Geri çekilme girişimleri`,savingsHint:"Aslında son {range} üzerinden ${actual} tasarruf ettiniz. Aynı tokenlerin ücretli API'lerde model başına fiyatlandırıldığı maliyet de budur. Gösterilen sayı, son {span} verisinden tam 30 güne kadar olan hızınızı yansıtır.",savingsHintExact:"Aslında son {range} üzerinden ${actual} tasarruf ettiniz. Aynı tokenlerin ücretli API'lerde model başına fiyatlandırıldığı maliyet de budur. Gösterilen sayı gerçek 30 günlük toplamınızdır.",requestsHintPinned:`Bu isteklerin {pinned}'si belirli bir modeli ada göre sabitledi. {honored} sabitlenmiş model tarafından sunuldu; {failed} farklı bir tanesine yük devretti. Geri kalanı otomatik olarak yönlendirildi.`,requestsHintAuto:`Bu dönemdeki tüm istekler otomatik olarak yönlendirildi; hiçbir müşteri belirli bir modeli ismine göre sabitlemedi.`,requestsHintTypes:`{chat} sohbet ve {embedding} yerleştirme istekleri.`,rangeLabel24h:`24 saat`,rangeLabel7d:`7 gün`,rangeLabel30d:`30 gün`,rangeLabel90d:`90 gün`,spanDays:`{count} gün`,spanHours:`{count} saat`,latencyMs:`Gecikme (ms)`,latency:`Gecikme`,pinned:`Sabitlendi`,inTokens:`Jetonlarda`,outTokens:`Çıkış jetonları`,saved:`Kaydedildi`,message:`Mesaj`,time:`Zaman`,perModelBreakdown:`Model başına döküm`,usageByKey:`Anahtara göre kullanım`,keyColumn:`Anahtar`,keyLabelFallback:`Anahtar #{id}`,errorsByProvider:`Sağlayıcıya göre hatalar`,recentErrors:`Son hatalar`,noErrors:`Hata yok`,recentCalls:`Son aramalar`,clientIp:`İstemci IP'si`,clientAgent:`İstemci uygulaması`,requestedModelHint:`İstenen {model}, yedek tarafından sunuldu`,attempts:`denemeler`,filterAll:`Hepsi`,filterCanceled:`İptal edilenler`,providerBreakdown:`Sağlayıcı başına döküm`,tokensPerSec:`Tok/s`,allProviders:`Tüm sağlayıcılar`,requestDetailTitle:`Talep #{id}`,failoverLadder:`Yük devretme merdiveni`,failoverLadderHint:`Bu isteğin her atlama sırası, geri dönüş zincirinden geçti.`,noAttemptTrace:`Bu istek için herhangi bir girişim izi kaydedilmedi.`,keyOrdinal:`anahtar #{n}`,keyBadge:`Anahtar #{n}`,attemptTimingHint:`İstek başlangıcından itibaren başlangıç dengelemesi · deneme süresi`,requestedModel:`İstenilen model`,ttft:`TTFT`,requestsByAgent:`Ajan başına istekler`,sortBy:`{column} ölçütüne göre sırala`,sortHint:`Sıralama yalnızca yüklenen {count} satıra uygulanır`,cacheHitRate:`Önbellek isabet oranı`,cacheSavedTokens:`{tokens} jeton tasarruf edildi`,cacheHitRateHint:`Sunucu başlatıldığından beri {hits} isabet, {misses} ıskalama · {requests} sağlayıcı çağrısından kaçınıldı`},logs:{title:`Günlükler`,description:`Canlı sunucu günlüğü. Sayfa açıkken yeni kayıtlar akmaya devam eder.`,pause:`Duraklat`,resume:`Sürdür`,clear:`Günlükleri temizle`,cleared:`Sunucu günlüğü temizlendi`,levelFilter:`Günlük düzeyleri`,levels:{debug:`Hata ayıklama`,info:`Bilgi`,warn:`Uyarı`,error:`Hata`},countsHint:`Sayılar yalnızca bu filtrelere uyan kayıtları değil, sunucudaki günlük arabelleğinin tamamını kapsar.`,searchPlaceholder:`Günlük mesajlarında ara…`,jumpToLatest:`En sona git`,showMore:`Daha fazla göster`,showLess:`Daha az göster`,buffered:`Arabellekteki en fazla {max} kayıttan {count} tanesi gösteriliyor`,emptyTitle:`Henüz günlük kaydı yok`,emptyDescription:`Sunucu kayıtları yazdıkça burada görünür. Çıktı bekliyorsanız düzey, sağlayıcı veya arama filtrelerini genişletin.`,noLevelsTitle:`Düzey seçilmedi`,noLevelsDescription:`Günlük çıktısını görmek için en az bir düzeyi açın.`,loadFailed:`Sunucu günlüğü yüklenemedi.`},playground:{title:`Bahçesi`,description:`Yönlendirici aracılığıyla bir sohbet tamamlama gönderin ve bunu hangi sağlayıcının sunduğunu görün.`,autoModel:`Otomatik (geri dönüş zinciri)`,fusionModel:`Füzyon (çoklu model sentezi)`,selectModel:`Modeli seçin`,searchModels:`Modelleri ara…`,noModelsFound:`Hiçbir model bulunamadı`,send:`Gönder`,sending:`Gönderiliyor…`,clear:`Temizle`,inputPlaceholder:`Bir mesaj yazın… (⏎ göndermek için, ⇧⏎ yeni satır için)`,emptyTitle:`Başlamak için bir mesaj gönderin.`,emptyDescription:`{model}'yi kullanma. Yukarıdaki seçicide modelleri değiştirin.`,noModels:`Henüz model yok. Bu listeyi doldurmak için Anahtarlar sayfasına bir API anahtarı ekleyin.`,copyReply:`Yanıtı kopyala`,fallback:`geri dönüş`,fallbacks:`geri dönüşler`,fusionPanel:`Paneli`,fusionJudge:`Yargıç`,fusionTrace:`{count} modeli yanıtları`,fusionFailed:`yanıt yok`,fusionJudgeSynth:`son cevabı sentezledi`,errorPrefix:`Hata:`,systemPromptLabel:`Sistem istemi`,systemPromptPlaceholder:`İsteğe bağlı. Sohbetinizden önce sistem mesajı olarak gönderilir.`,showSettings:`Ayarları göster`,hideSettings:`Ayarları gizle`,samplingHeading:`Örnekleme`,samplingHelp:`Kapalıyken sağlayıcının kendi varsayılanı geçerli olur. Yalnızca açtığınız denetimler gönderilir.`,samplingDefault:`Varsayılan`,temperature:`Sıcaklık`,topP:`Top P`,maxTokens:`Maks. jeton`,errorTitle:`İstek başarısız oldu`,attach:`Dosya ekle`,attachTooMany:`Her mesajda en fazla {count} dosya ekleyebilirsiniz.`,attachTooLarge:`{name} çok büyük. Sınır {max}.`,attachUnsupported:`{name} desteklenmiyor. Görüntü (PNG, JPEG, WebP, GIF) veya metin dosyaları (TXT, MD, CSV, JSON, LOG) ekleyin.`,attachFailed:`{name} okunamadı.`,noVisionBadge:`Görüntü yok`,visionWarning:`{model} görüntü kabul etmiyor. Görüntü destekleyen bir model veya Otomatik seçin.`,dictate:`Dikte et`,dictationStop:`Kaydı durdur`,dictationTranscribing:`Yazıya dökülüyor…`,dictationUnavailable:`Dikteyi kullanabilmek için ses modelleri sağlayıcıları ekleyin.`,dictationModel:`Dikte modeli`,dictationFailed:`Yazıya dökme başarısız: {reason}`,artifactOpen:`Önizlemeyi aç`,artifactPreview:`Önizleme`,artifactCode:`Kod`,artifactClose:`Önizlemeyi kapat`,artifactDownload:`İndir`,artifactReload:`Önizlemeyi yenile`,artifactHtml:`HTML sayfası`,artifactSvg:`SVG görseli`,artifactLines:`satır`,artifactResize:`Önizlemeyi yeniden boyutlandır`},playgroundSessions:{heading:`Sohbetler`,newConversation:`Yeni sohbet`,showSidebar:`Sohbetleri göster`,hideSidebar:`Sohbetleri gizle`,empty:`Henüz kaydedilmiş sohbet yok.`,untitled:`Adsız sohbet`,rename:`Yeniden adlandır`,renamePlaceholder:`Sohbet adı`,messageCount:`{count} mesaj`,justNow:`az önce`,minutesAgo:`{count} dk önce`,hoursAgo:`{count} sa önce`,daysAgo:`{count} gün önce`,loadFailed:`Bu sohbet açılamadı.`,renameFailed:`Bu sohbet yeniden adlandırılamadı.`,deleteFailed:`Bu sohbet silinemedi.`,actions:`Sohbet işlemleri`,newChat:`Yeni sohbet`},embeddings:{title:`Modeller`,description:`Yerleştirmeler yalnızca bir aile içinde devredilir: başka bir sağlayıcı tarafından sunulan aynı model. Farklı modellerin vektörleri uyumsuz olduğundan yönlendirici asla sizin üzerinizdeki modelleri değiştirmez.`,defaultBadge:`Varsayılan · otomatik`,makeDefault:`Varsayılan yap`,moveUp:`Yukarı taşı`,moveDown:`Aşağı taşı`,usageToday:`{count} bugünkü talep`,usageMonth:`{count} bu ay tok`,autoDescription:`POST /v1/embeddings üzerindeki model: "auto", varsayılan aileye yönlendirir. Bir aileye (veya sağlayıcı model kimliğine) isim vermek o aileyi sabitler; içindeki sağlayıcılar sırayla denenir.`,unsavedChanges:`Kaydedilmemiş değişiklikler`,saveChanges:`Değişiklikleri kaydet`,savingChanges:`Kaydediliyor…`,tokMax:`{tokens} maksimum tok`,emptyTitle:`Henüz yerleştirme modeli yok`,emptyDesc:`Yerleştirme aileleri, yerleştirmeleri destekleyen bir sağlayıcı anahtarı eklediğinizde burada görünür.`,dragToReorder:`Sağlayıcıyı yeniden sıralamak için sürükleyin`},fusion:{title:`Füzyon`,description:`Modellerden oluşan bir panel paralel olarak yanıt verir, ardından jüri üyesi daha güçlü bir yanıtı sentezler. API'yi "füzyon" modeliyle çağırarak kullanın.`,panelSource:`Panel kaynağı`,panelSourceHelp:`Bir istek kendi isteğini belirtmediğinde panel modellerinin nereden geldiği.`,mode:{auto:`Otomatik (Geri Dönüş Zinciri)`,autoHelp:`Etkin yönlendirme stratejinize göre sıralanan, Geri Dönüş Zincirinizden çeşitli modeller seçin.`,explicit:`Açık panel`,explicitHelp:`Her zaman aşağıda seçtiğiniz belirli modelleri kullanın.`},panelModels:`Panel modelleri`,selectedCount:`{max}'den {count} seçildi`,noModels:`Henüz hiçbir model bağlı değil. Bir API anahtarı ekleyin, ardından Geri Dönüş Zincirindeki modelleri etkinleştirin.`,panelSize:`Panel boyutu`,panelSizeHelp:`Kaç farklı modelin otomatik olarak seçileceği (1–{max}).`,judge:`Yargıç modeli`,judgeHelp:`Panelin cevaplarını tek bir cevapta sentezleyen model. Otomatik, en üst sıradaki mevcut modelinizi kullanır.`,judgeAuto:`Otomatik (en üst sıralarda mevcut)`,strategy:`Strateji`,strategySynthesize:`Sentezle — paneli tek bir yanıtta birleştirin`,strategyBestOf:`En iyisi — en güçlü tek yanıtı verin (yargıç çağrısı yok)`,strategySynthesizeShort:`Sentezle`,strategyBestOfShort:`En iyisi`,exposePanel:`Panel ayrıntılarını gösterin`,exposePanelHelp:`Her modelin cevabını ve yargıç meta verilerini yanıttaki bir x_fusion alanının altına ekleyin.`,howToUse:`Nasıl kullanılır`,howToUseHelp:`"Fusion" modeliyle normal bir sohbet isteği gönderin. Bu ayarlar varsayılandır; herhangi bir istek bunları bir "füzyon" alanıyla geçersiz kılabilir.`,unsavedChanges:`Kaydedilmemiş değişiklikler`,save:`Kaydet`,searchPlaceholder:`Search models…`,providerFilterLabel:`Filter by provider`,providerAll:`All providers`,noMatch:`No models match your search.`},premium:{title:`prim`,description:`Her cihazda canlı model kataloğu.`,loading:`Yükleniyor…`,checkForUpdates:`Güncellemeleri kontrol edin`,syncing:`Senkronize ediliyor…`,catalogFeed:`Katalog akışı`,liveFeed:`Canlı yayın`,monthlySnapshot:`Aylık anlık görüntü`,lastChecked:`Son kontrol: {when}`,liveDescription:`Yeni ücretsiz modeller, kota değişiklikleri ve tuhaf düzeltmeler, gönderildikten birkaç saat sonra buraya ulaşır. Uygulama günde iki kez otomatik olarak kontrol eder; yapacak bir şey yok.`,snapshotDescription:`Ücretsiz katman: Katalog, günde iki kez otomatik olarak kontrol edilen aylık bir anlık görüntüden yenilenir. Premium bunu 2-3 günde bir güncellenen canlı yayına geçirir.`,lastSyncProblem:`Son senkronizasyon sorunu: {error}`,license:`Lisans`,planAnnual:`Prim Yıllık`,planLifetime:`Premium Ömür Boyu`,expired:`Süresi dolmuş`,inactive:`Etkin değil`,lifetimeNote:`Ömür boyu lisans: hiçbir zaman sona ermez.`,renewsOn:`{date} tarihinde yenilenir.`,willNotRenew:`Yenilenmeyecek. {date}'ye kadar premium, ardından bu yükleme ücretsiz aylık kataloğa geri döner.`,keyInactive:`Bu anahtar artık etkin değil. Uygulama ücretsiz aylık katalog üzerinde çalışmaya devam ediyor.`,manageSubscription:`Aboneliği yönet`,openingPortal:`Açılıyor…`,removeKey:`Anahtarı bu cihazdan kaldır`,manageHint:`Aboneliği yönet Stripe'nin faturalandırma portalını açar: iptal edin, kartınızı güncelleyin veya faturaları indirin. Anahtarın çıkarılması yalnızca bu cihazı devre dışı bırakır; satın alma işleminize dokunulmaz.`,licenseKey:`Lisans anahtarı`,licenseKeyPlaceholder:`fla_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`,activate:`Etkinleştir`,activating:`Etkinleştiriliyor…`,keyHint:`Anahtarınız satın alma e-postanızda ve ödeme sonrası sayfasındadır. Kaybettin mi?`,recoverKey:`Web sitesinde kurtarın`,upsellTitle:`Yılda 19 dolara canlı yayına geçin`,upsellDescription:`Yeni ücretsiz modeller, 30 gün sonra değil, ortaya çıktıkları anda. Her cihazda tek anahtar. İstediğiniz zaman iptal edin; yönlendirici sonsuza kadar ücretsiz kalır.`,goPremium:`Premium'a Geçin`,bundled:`paketlenmiş`,planGeneric:`prim`},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:`Bir şeyler ters gitti`,boundaryDescription:`Kontrol paneli beklenmedik bir hatayla karşılaştı. Verileriniz güvende. Tekrar deneyin veya modeller sayfasına geri dönün.`,tryAgain:`Tekrar dene`,goHome:`Modellere geri dön`},notFound:{title:`Sayfa bulunamadı`,description:`Bu sayfa mevcut değil veya taşınmış olabilir.`},setup:{title:`Başlarken`,subtitle:`İlk isteğinizi yönlendirmek için üç adım.`,progress:`{total}'nin {done}'si`,step1Title:`Sağlayıcı anahtarı ekleyin`,step1Desc:`En az bir sağlayıcı hesabını bağlayın. Ücretsiz anahtarlar çalışır.`,step1Cta:`Anahtar ekle`,step2Title:`Test isteği gönder`,step2Desc:`Oyun Alanında herhangi bir modeli seçin ve merhaba deyin.`,step2Cta:`Açık Oyun Alanı`,step3Title:`Uygulamanızı bağlayın`,step3Desc:`Birleşik API anahtarınızı herhangi bir OpenAI uyumlu istemciyle kullanın.`,copyKey:`API anahtarını kopyala`,copyUrl:`Tabanı kopyala URL`,copiedKey:`API anahtarı panoya kopyalandı`,copiedUrl:`Temel URL panoya kopyalandı`},palette:{title:`Komut paleti`,placeholder:`Sayfaları, modelleri, eylemleri arayın…`,empty:`Sonuç yok`,groupPages:`Sayfalar`,groupActions:`Eylemler`,groupModels:`Modeller`,toggleTheme:`Karanlık modu değiştir`},validation:{required:`Gerekli`,url:`http:// veya https:// ile başlayan geçerli bir URL girin`,email:`Geçerli bir e-posta adresi girin`,passwordMin:`En az {min} karakter`},agents:{title:`Kodlama ajanları`,description:`Kodlama araçlarını, oluşturulmuş ve yedeklemeye uygun yapılandırmayla tek bir ücretsiz model ağ geçidine bağlayın.`,apiKey:`API anahtarı`,quickstartTitle:`Hızlı başlangıç`,quickstart:`En hızlı yol: Claude Code'u canlı katalogdan yapılandırın.`,currentKey:`Geçerli birleşik anahtar:`,seenRecently:`Son zamanlarda görüldü`,setupLabel:`Otomatik kurulum`,setupHint:`Bu aracın yapılandırma dosyasını sizin için bu ağ geçidine yönlendirerek yazar.`,setupGuideHint:`Bu aracın kurulum adımlarını yazdırır; hiçbir dosya yazılmaz.`,manualLabel:`Manuel bağlantı`,manualHint:`Aracın kendi ayarlarına girilecek temel URL ve anahtar.`,endpoint:`Uç nokta`,documentation:`Dokümantasyon`,descriptions:{claude:`Anthropic'in terminal ajanı: planlar, dosyaları düzenler ve deponuzda komut çalıştırır.`,codex:`OpenAI'nin terminal ajanı; görevi önce yerel bir kum havuzunda çalıştırır.`,cline:`Her düzenlemeyi ve komutu size onaylatan bir VS Code eklentisi.`,continue:`VS Code ve JetBrains eklentisi: yazarken satır içi tamamlama ve sohbet.`,aider:`Komut satırında eş programlama; her değişikliği ayrı bir git commit'ine dönüştürür.`,opencode:`Sağlayıcıdan bağımsız, tam ekran metin arayüzlü bir terminal ajanı.`,goose:`Block'un yerel ajanı; MCP sunucularıyla kodun ötesine genişler.`,qwen:`Qwen modelleri ve büyük depolar için ayarlanmış bir Gemini CLI çatallaması.`,roo:`Mimar, kodlayıcı, hata ayıklayıcı gibi modlar arasında geçilen bir VS Code eklentisi.`,kilo:`Roo ile Cline'ı birleştiren, işi bölen bir orkestratörü olan VS Code eklentisi.`,crush:`Charm'ın Go ile yazdığı terminal ajanı; her proje için bir oturum.`,dsh:`DeepSeek'in koşum takımı; her sağlayıcıyı geçiş yapılabilir bir rota olarak tutar.`,mimo:`Xiaomi'nin terminal ajanı; OpenAI uyumlu her sağlayıcıyı kabul eden bir OpenCode çatallaması.`,cursor:`Yapay zekâ odaklı düzenleyici; Cursor bulutundan geçtiği için herkese açık bir URL ister.`,generic:`OpenAI API'sini konuşan diğer her araç; temel URL ve anahtarla elle kurulur.`,atomcode:`AtomGit'in terminal ajanı; Rust ile yazılmış, OpenAI uyumlu her uç noktayı kabul eder.`,openclaw:`Kendi makinenizden WhatsApp, Telegram, Discord ve daha fazlasında yanıt veren, her zaman açık bir kişisel asistan.`,hermes:`Nous Research'ün kendini geliştiren ajanı; kalıcı bellek ve becerilerle, terminalde ya da sohbet uygulamalarında.`,pi:`Kendi uzantılarınız, becerileriniz ve istem şablonlarınızla şekillendirdiğiniz minimal bir terminal ajanı.`}},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:`Ücretsiz katman havuzları ({count})`,poolsToggleBare:`Ücretsiz katman havuzları`,summary:`{pools} havuz · {budget} jeton/ay, her havuz bir kez sayılır · {credits} kredi tabanlı · {unpublished} yayımlanmamış`,pool:`Havuz`,models:`Modeller`,budget:`Aylık bütçe`,kind:`Tür`,kindDocumented:`Belgelenmiş`,kindCredits:`Kredi`,kindUnpublished:`Yayımlanmamış`,remaining:`Kalan`,resetAt:`Sıfırlanma`,disabledModels:`({count} kapalı)`,metricTokens:`jeton`,metricRequests:`istek`,metricCredits:`kredi`,metricNeurons:`nöron`,metricOther:`birim`,empty:`Ücretsiz katman bütçe verisi olan etkin model yok.`,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:`Yedek zincirleri`,description:`Adlandırılmış zincirler; her biri /v1/models içinde auto:<name> olarak çağrılabilir.`,count:`{count} zincir`,active:`Etkin`,default:`Varsayılan`,activate:`Etkinleştir`,activateHint:`Aşağıdaki tablo bu zinciri düzenlesin ve auto yönlendirmesi bunu kullansın`,deleteHint:`Bu zinciri sil`,deleteConfirm:`"{name}" zinciri silinsin mi?`,create:`Oluştur`,createPlaceholder:`Zincir adı`,createFailed:`Zincir oluşturulamadı.`,nameRules:`En fazla 20 karakter: harf, rakam, tire ve alt çizgi.`,startEmpty:`Boş başlat`,startEmptyHint:`Zinciri hiç model olmadan oluşturur ve yeni katalog modellerini dışarıda tutar. İşaretlenmezse varsayılan zincirin kopyası olarak başlar.`,curated:`Elle düzenli`,curatedHint:`Yeni katalog modelleri bu zincire otomatik eklenmez.`,renameHint:`Bu zinciri yeniden adlandır`,renameConfirm:`"{oldName}" zincirinin adı "{name}" olarak değiştirilsin mi? auto:{oldName} çağıran istemciler auto:{name} kullanmalı.`,renamePlaceholder:`Yeni zincir adı`,renameFailed:`Zincir yeniden adlandırılamadı.`},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};