@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.
- package/LICENSE +21 -0
- package/client/dist/assets/am-TQ7Jmdqe.js +1 -0
- package/client/dist/assets/ar-Bf5a7yfC.js +1 -0
- package/client/dist/assets/az-CrosE1xH.js +1 -0
- package/client/dist/assets/bg-BvWnmcUz.js +1 -0
- package/client/dist/assets/bn-ams5TsJp.js +1 -0
- package/client/dist/assets/cs-Dh67CaJ_.js +1 -0
- package/client/dist/assets/da-9WlT8Iq7.js +1 -0
- package/client/dist/assets/de-lWhJJzz7.js +1 -0
- package/client/dist/assets/el-Cu7_GhNq.js +1 -0
- package/client/dist/assets/es-BZuzsBcP.js +1 -0
- package/client/dist/assets/fa-Dwdn-jKS.js +1 -0
- package/client/dist/assets/fi-BFrFyOTy.js +1 -0
- package/client/dist/assets/fr-XhbtmPpj.js +1 -0
- package/client/dist/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
- package/client/dist/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
- package/client/dist/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
- package/client/dist/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
- package/client/dist/assets/geist-mono-cyrillic-ext-wght-normal-I4S5GZfc.woff2 +0 -0
- package/client/dist/assets/geist-mono-cyrillic-wght-normal-BmXc_FBt.woff2 +0 -0
- package/client/dist/assets/geist-mono-latin-ext-wght-normal-DrnZ1wKl.woff2 +0 -0
- package/client/dist/assets/geist-mono-latin-wght-normal-B_7UjwxQ.woff2 +0 -0
- package/client/dist/assets/geist-mono-symbols2-wght-normal-GZpp1pK2.woff2 +0 -0
- package/client/dist/assets/geist-mono-vietnamese-wght-normal-D8KDMBhC.woff2 +0 -0
- package/client/dist/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
- package/client/dist/assets/gu-D0uhLUB8.js +1 -0
- package/client/dist/assets/ha-CVlm9pqp.js +1 -0
- package/client/dist/assets/he-CMIFeoWr.js +1 -0
- package/client/dist/assets/hi-ENTwhBpn.js +1 -0
- package/client/dist/assets/hr-fc03vMy_.js +1 -0
- package/client/dist/assets/hu-YBo2BIYt.js +1 -0
- package/client/dist/assets/id-BEWXYX69.js +1 -0
- package/client/dist/assets/ig-BKLZFKka.js +1 -0
- package/client/dist/assets/index-D9I4KtvR.js +145 -0
- package/client/dist/assets/index-txhEmCdb.css +2 -0
- package/client/dist/assets/it-Bzmei1Y2.js +1 -0
- package/client/dist/assets/ja-BfcpuqEl.js +1 -0
- package/client/dist/assets/ka-CnWjRgLo.js +1 -0
- package/client/dist/assets/km-BAjPR3Qj.js +1 -0
- package/client/dist/assets/kn-B15WKU5m.js +1 -0
- package/client/dist/assets/ko-C61fAB-w.js +1 -0
- package/client/dist/assets/lt-CYTr4_YW.js +1 -0
- package/client/dist/assets/ml-CtqxgyH3.js +1 -0
- package/client/dist/assets/mr-X5TMY7aR.js +1 -0
- package/client/dist/assets/ms-DSg8RqPS.js +1 -0
- package/client/dist/assets/my-D7RqR8uE.js +1 -0
- package/client/dist/assets/ne-DaflxkDj.js +1 -0
- package/client/dist/assets/nl-BOqqtsC8.js +1 -0
- package/client/dist/assets/no-BSHp_StB.js +1 -0
- package/client/dist/assets/or-BkLR9Vub.js +1 -0
- package/client/dist/assets/pa-CarJ2XgI.js +1 -0
- package/client/dist/assets/pl-C2n0V-0k.js +1 -0
- package/client/dist/assets/pt-BR-CqJdNhg2.js +1 -0
- package/client/dist/assets/pt-PT-C_HpMyKz.js +1 -0
- package/client/dist/assets/ro-DVRZqSAS.js +1 -0
- package/client/dist/assets/ru-DwAJG7VC.js +1 -0
- package/client/dist/assets/si-BxUezXm0.js +1 -0
- package/client/dist/assets/sk-eI1VcIfY.js +1 -0
- package/client/dist/assets/sr-CJF3auCr.js +1 -0
- package/client/dist/assets/srouter-logo-C6ZfjGIi.svg +14 -0
- package/client/dist/assets/sv-nqvwHAq_.js +1 -0
- package/client/dist/assets/sw-DWynE2pW.js +1 -0
- package/client/dist/assets/ta-BVM12knC.js +1 -0
- package/client/dist/assets/te-oyzEkF7_.js +1 -0
- package/client/dist/assets/th-COVeE0ZQ.js +1 -0
- package/client/dist/assets/tl-DsJANnQz.js +1 -0
- package/client/dist/assets/tr-B-Fl-urO.js +1 -0
- package/client/dist/assets/uk-C5qketAO.js +1 -0
- package/client/dist/assets/ur-QU9KugfV.js +1 -0
- package/client/dist/assets/uz-DL9cG_mY.js +1 -0
- package/client/dist/assets/vi-CQiVy3Pu.js +1 -0
- package/client/dist/assets/yo-DqazMdrZ.js +1 -0
- package/client/dist/assets/zh-CN-DnYL_Kio.js +1 -0
- package/client/dist/assets/zh-TW-5bdbosKj.js +1 -0
- package/client/dist/favicon.svg +14 -0
- package/client/dist/icons.svg +24 -0
- package/client/dist/index.html +37 -0
- package/dist/app.d.ts +4 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +372 -0
- package/dist/app.js.map +1 -0
- package/dist/db/index.d.ts +49 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +203 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/migrate/TEMPLATE.d.ts +4 -0
- package/dist/db/migrate/TEMPLATE.d.ts.map +1 -0
- package/dist/db/migrate/TEMPLATE.js +18 -0
- package/dist/db/migrate/TEMPLATE.js.map +1 -0
- package/dist/db/migrate/cli.d.ts +2 -0
- package/dist/db/migrate/cli.d.ts.map +1 -0
- package/dist/db/migrate/cli.js +177 -0
- package/dist/db/migrate/cli.js.map +1 -0
- package/dist/db/migrate/defaults.d.ts +52 -0
- package/dist/db/migrate/defaults.d.ts.map +1 -0
- package/dist/db/migrate/defaults.js +126 -0
- package/dist/db/migrate/defaults.js.map +1 -0
- package/dist/db/migrate/runner.d.ts +16 -0
- package/dist/db/migrate/runner.d.ts.map +1 -0
- package/dist/db/migrate/runner.js +178 -0
- package/dist/db/migrate/runner.js.map +1 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.d.ts +4 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.d.ts.map +1 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.js +2240 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.js.map +1 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.d.ts +4 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.d.ts.map +1 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.js +27 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.js.map +1 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.d.ts +4 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.d.ts.map +1 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.js +30 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.js.map +1 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.d.ts +6 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.d.ts.map +1 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.js +104 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.js.map +1 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.d.ts +9 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.d.ts.map +1 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.js +22 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.js.map +1 -0
- package/dist/db/migrations/20260706_000001_request_client_info.d.ts +4 -0
- package/dist/db/migrations/20260706_000001_request_client_info.d.ts.map +1 -0
- package/dist/db/migrations/20260706_000001_request_client_info.js +30 -0
- package/dist/db/migrations/20260706_000001_request_client_info.js.map +1 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.d.ts +17 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.d.ts.map +1 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.js +20 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.js.map +1 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.d.ts +12 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.d.ts.map +1 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.js +45 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.js.map +1 -0
- package/dist/db/migrations/20260720_000001_key_health_error.d.ts +5 -0
- package/dist/db/migrations/20260720_000001_key_health_error.d.ts.map +1 -0
- package/dist/db/migrations/20260720_000001_key_health_error.js +16 -0
- package/dist/db/migrations/20260720_000001_key_health_error.js.map +1 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.d.ts +4 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.js +38 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.js.map +1 -0
- package/dist/db/migrations/20260726_000002_request_attempts.d.ts +4 -0
- package/dist/db/migrations/20260726_000002_request_attempts.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000002_request_attempts.js +43 -0
- package/dist/db/migrations/20260726_000002_request_attempts.js.map +1 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.d.ts +4 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.js +80 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.js.map +1 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.d.ts +4 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.js +34 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.js.map +1 -0
- package/dist/db/migrations/20260726_000005_request_served_model.d.ts +4 -0
- package/dist/db/migrations/20260726_000005_request_served_model.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000005_request_served_model.js +31 -0
- package/dist/db/migrations/20260726_000005_request_served_model.js.map +1 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.d.ts +4 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.js +29 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.js.map +1 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.d.ts +4 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.d.ts.map +1 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.js +41 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.js.map +1 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.d.ts +12 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.d.ts.map +1 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.js +37 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.js.map +1 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.d.ts +4 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.d.ts.map +1 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.js +145 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.js.map +1 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.d.ts +6 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.d.ts.map +1 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.js +52 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.js.map +1 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.d.ts +6 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.d.ts.map +1 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.js +17 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.js.map +1 -0
- package/dist/db/migrations/20260805_000002_client_profiles.d.ts +4 -0
- package/dist/db/migrations/20260805_000002_client_profiles.d.ts.map +1 -0
- package/dist/db/migrations/20260805_000002_client_profiles.js +33 -0
- package/dist/db/migrations/20260805_000002_client_profiles.js.map +1 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.d.ts +4 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.d.ts.map +1 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.js +33 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.js.map +1 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.d.ts +4 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.d.ts.map +1 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.js +19 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.js.map +1 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.d.ts +4 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.d.ts.map +1 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.js +47 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.js.map +1 -0
- package/dist/db/migrations/20260823_000001_server_logs.d.ts +4 -0
- package/dist/db/migrations/20260823_000001_server_logs.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000001_server_logs.js +53 -0
- package/dist/db/migrations/20260823_000001_server_logs.js.map +1 -0
- package/dist/db/migrations/20260823_000002_backups_table.d.ts +8 -0
- package/dist/db/migrations/20260823_000002_backups_table.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000002_backups_table.js +22 -0
- package/dist/db/migrations/20260823_000002_backups_table.js.map +1 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.d.ts +19 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.js +28 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.js.map +1 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.d.ts +14 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.js +25 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.js.map +1 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.d.ts +4 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.d.ts.map +1 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.js +46 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.js.map +1 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.d.ts +4 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.d.ts.map +1 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.js +37 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.js.map +1 -0
- package/dist/db/migrations/20260901_000003_request_caller.d.ts +4 -0
- package/dist/db/migrations/20260901_000003_request_caller.d.ts.map +1 -0
- package/dist/db/migrations/20260901_000003_request_caller.js +27 -0
- package/dist/db/migrations/20260901_000003_request_caller.js.map +1 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.d.ts +4 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.d.ts.map +1 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.js +35 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.js.map +1 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.d.ts +4 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.d.ts.map +1 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.js +37 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.js.map +1 -0
- package/dist/db/migrations/20260903_000002_response_cache.d.ts +4 -0
- package/dist/db/migrations/20260903_000002_response_cache.d.ts.map +1 -0
- package/dist/db/migrations/20260903_000002_response_cache.js +53 -0
- package/dist/db/migrations/20260903_000002_response_cache.js.map +1 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.d.ts +13 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.d.ts.map +1 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.js +35 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.js.map +1 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.d.ts +4 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.d.ts.map +1 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.js +68 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.js.map +1 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.d.ts +5 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.d.ts.map +1 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.js +37 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.js.map +1 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.d.ts +4 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.d.ts.map +1 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.js +28 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.js.map +1 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.d.ts +4 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.d.ts.map +1 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.js +25 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.js.map +1 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.d.ts +10 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.d.ts.map +1 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.js +78 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.js.map +1 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.d.ts +21 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.d.ts.map +1 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.js +41 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.js.map +1 -0
- package/dist/db/model-pricing.d.ts +39 -0
- package/dist/db/model-pricing.d.ts.map +1 -0
- package/dist/db/model-pricing.js +274 -0
- package/dist/db/model-pricing.js.map +1 -0
- package/dist/db/node-sqlite.d.ts +9 -0
- package/dist/db/node-sqlite.d.ts.map +1 -0
- package/dist/db/node-sqlite.js +87 -0
- package/dist/db/node-sqlite.js.map +1 -0
- package/dist/db/types.d.ts +22 -0
- package/dist/db/types.d.ts.map +1 -0
- package/dist/db/types.js +2 -0
- package/dist/db/types.js.map +1 -0
- package/dist/docs/docs-page.d.ts +2 -0
- package/dist/docs/docs-page.d.ts.map +1 -0
- package/dist/docs/docs-page.js +319 -0
- package/dist/docs/docs-page.js.map +1 -0
- package/dist/docs/openapi.d.ts +1896 -0
- package/dist/docs/openapi.d.ts.map +1 -0
- package/dist/docs/openapi.js +1096 -0
- package/dist/docs/openapi.js.map +1 -0
- package/dist/env.d.ts +2 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +9 -0
- package/dist/env.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +144 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/anthropic-documents.d.ts +41 -0
- package/dist/lib/anthropic-documents.d.ts.map +1 -0
- package/dist/lib/anthropic-documents.js +132 -0
- package/dist/lib/anthropic-documents.js.map +1 -0
- package/dist/lib/app-version.d.ts +5 -0
- package/dist/lib/app-version.d.ts.map +1 -0
- package/dist/lib/app-version.js +61 -0
- package/dist/lib/app-version.js.map +1 -0
- package/dist/lib/attempt-trace.d.ts +23 -0
- package/dist/lib/attempt-trace.d.ts.map +1 -0
- package/dist/lib/attempt-trace.js +32 -0
- package/dist/lib/attempt-trace.js.map +1 -0
- package/dist/lib/budget.d.ts +6 -0
- package/dist/lib/budget.d.ts.map +1 -0
- package/dist/lib/budget.js +40 -0
- package/dist/lib/budget.js.map +1 -0
- package/dist/lib/client-classifier.d.ts +10 -0
- package/dist/lib/client-classifier.d.ts.map +1 -0
- package/dist/lib/client-classifier.js +126 -0
- package/dist/lib/client-classifier.js.map +1 -0
- package/dist/lib/client-context.d.ts +10 -0
- package/dist/lib/client-context.d.ts.map +1 -0
- package/dist/lib/client-context.js +39 -0
- package/dist/lib/client-context.js.map +1 -0
- package/dist/lib/config.d.ts +33 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +94 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/content.d.ts +33 -0
- package/dist/lib/content.d.ts.map +1 -0
- package/dist/lib/content.js +201 -0
- package/dist/lib/content.js.map +1 -0
- package/dist/lib/credential.d.ts +11 -0
- package/dist/lib/credential.d.ts.map +1 -0
- package/dist/lib/credential.js +18 -0
- package/dist/lib/credential.js.map +1 -0
- package/dist/lib/crypto.d.ts +31 -0
- package/dist/lib/crypto.d.ts.map +1 -0
- package/dist/lib/crypto.js +206 -0
- package/dist/lib/crypto.js.map +1 -0
- package/dist/lib/custom-provider-cleanup.d.ts +13 -0
- package/dist/lib/custom-provider-cleanup.d.ts.map +1 -0
- package/dist/lib/custom-provider-cleanup.js +43 -0
- package/dist/lib/custom-provider-cleanup.js.map +1 -0
- package/dist/lib/db-backup.d.ts +31 -0
- package/dist/lib/db-backup.d.ts.map +1 -0
- package/dist/lib/db-backup.js +255 -0
- package/dist/lib/db-backup.js.map +1 -0
- package/dist/lib/endpoint-scope.d.ts +42 -0
- package/dist/lib/endpoint-scope.d.ts.map +1 -0
- package/dist/lib/endpoint-scope.js +95 -0
- package/dist/lib/endpoint-scope.js.map +1 -0
- package/dist/lib/env-drift.d.ts +17 -0
- package/dist/lib/env-drift.d.ts.map +1 -0
- package/dist/lib/env-drift.js +108 -0
- package/dist/lib/env-drift.js.map +1 -0
- package/dist/lib/error-classify.d.ts +40 -0
- package/dist/lib/error-classify.d.ts.map +1 -0
- package/dist/lib/error-classify.js +687 -0
- package/dist/lib/error-classify.js.map +1 -0
- package/dist/lib/error-redaction.d.ts +8 -0
- package/dist/lib/error-redaction.d.ts.map +1 -0
- package/dist/lib/error-redaction.js +45 -0
- package/dist/lib/error-redaction.js.map +1 -0
- package/dist/lib/fallback-loop.d.ts +306 -0
- package/dist/lib/fallback-loop.d.ts.map +1 -0
- package/dist/lib/fallback-loop.js +1336 -0
- package/dist/lib/fallback-loop.js.map +1 -0
- package/dist/lib/file-permissions.d.ts +98 -0
- package/dist/lib/file-permissions.d.ts.map +1 -0
- package/dist/lib/file-permissions.js +159 -0
- package/dist/lib/file-permissions.js.map +1 -0
- package/dist/lib/gemini-wire.d.ts +76 -0
- package/dist/lib/gemini-wire.d.ts.map +1 -0
- package/dist/lib/gemini-wire.js +392 -0
- package/dist/lib/gemini-wire.js.map +1 -0
- package/dist/lib/guardrails.d.ts +37 -0
- package/dist/lib/guardrails.d.ts.map +1 -0
- package/dist/lib/guardrails.js +106 -0
- package/dist/lib/guardrails.js.map +1 -0
- package/dist/lib/header-value.d.ts +8 -0
- package/dist/lib/header-value.d.ts.map +1 -0
- package/dist/lib/header-value.js +55 -0
- package/dist/lib/header-value.js.map +1 -0
- package/dist/lib/image-normalize.d.ts +21 -0
- package/dist/lib/image-normalize.d.ts.map +1 -0
- package/dist/lib/image-normalize.js +218 -0
- package/dist/lib/image-normalize.js.map +1 -0
- package/dist/lib/inbound-chat.d.ts +48 -0
- package/dist/lib/inbound-chat.d.ts.map +1 -0
- package/dist/lib/inbound-chat.js +406 -0
- package/dist/lib/inbound-chat.js.map +1 -0
- package/dist/lib/key-parser.d.ts +79 -0
- package/dist/lib/key-parser.d.ts.map +1 -0
- package/dist/lib/key-parser.js +701 -0
- package/dist/lib/key-parser.js.map +1 -0
- package/dist/lib/key-proxy.d.ts +49 -0
- package/dist/lib/key-proxy.d.ts.map +1 -0
- package/dist/lib/key-proxy.js +92 -0
- package/dist/lib/key-proxy.js.map +1 -0
- package/dist/lib/log-redaction.d.ts +28 -0
- package/dist/lib/log-redaction.d.ts.map +1 -0
- package/dist/lib/log-redaction.js +166 -0
- package/dist/lib/log-redaction.js.map +1 -0
- package/dist/lib/model-scope.d.ts +9 -0
- package/dist/lib/model-scope.d.ts.map +1 -0
- package/dist/lib/model-scope.js +29 -0
- package/dist/lib/model-scope.js.map +1 -0
- package/dist/lib/one-time-code.d.ts +15 -0
- package/dist/lib/one-time-code.d.ts.map +1 -0
- package/dist/lib/one-time-code.js +41 -0
- package/dist/lib/one-time-code.js.map +1 -0
- package/dist/lib/output-cap.d.ts +24 -0
- package/dist/lib/output-cap.d.ts.map +1 -0
- package/dist/lib/output-cap.js +80 -0
- package/dist/lib/output-cap.js.map +1 -0
- package/dist/lib/password.d.ts +3 -0
- package/dist/lib/password.d.ts.map +1 -0
- package/dist/lib/password.js +27 -0
- package/dist/lib/password.js.map +1 -0
- package/dist/lib/process-safety-net.d.ts +32 -0
- package/dist/lib/process-safety-net.d.ts.map +1 -0
- package/dist/lib/process-safety-net.js +123 -0
- package/dist/lib/process-safety-net.js.map +1 -0
- package/dist/lib/provider-identity.d.ts +37 -0
- package/dist/lib/provider-identity.d.ts.map +1 -0
- package/dist/lib/provider-identity.js +110 -0
- package/dist/lib/provider-identity.js.map +1 -0
- package/dist/lib/provider-size-parser.d.ts +6 -0
- package/dist/lib/provider-size-parser.d.ts.map +1 -0
- package/dist/lib/provider-size-parser.js +72 -0
- package/dist/lib/provider-size-parser.js.map +1 -0
- package/dist/lib/provider-timeout.d.ts +17 -0
- package/dist/lib/provider-timeout.d.ts.map +1 -0
- package/dist/lib/provider-timeout.js +70 -0
- package/dist/lib/provider-timeout.js.map +1 -0
- package/dist/lib/proxy.d.ts +180 -0
- package/dist/lib/proxy.d.ts.map +1 -0
- package/dist/lib/proxy.js +1002 -0
- package/dist/lib/proxy.js.map +1 -0
- package/dist/lib/request-log.d.ts +4 -0
- package/dist/lib/request-log.d.ts.map +1 -0
- package/dist/lib/request-log.js +161 -0
- package/dist/lib/request-log.js.map +1 -0
- package/dist/lib/reset-code.d.ts +5 -0
- package/dist/lib/reset-code.d.ts.map +1 -0
- package/dist/lib/reset-code.js +39 -0
- package/dist/lib/reset-code.js.map +1 -0
- package/dist/lib/retry-hint.d.ts +14 -0
- package/dist/lib/retry-hint.d.ts.map +1 -0
- package/dist/lib/retry-hint.js +36 -0
- package/dist/lib/retry-hint.js.map +1 -0
- package/dist/lib/route-live.d.ts +29 -0
- package/dist/lib/route-live.d.ts.map +1 -0
- package/dist/lib/route-live.js +97 -0
- package/dist/lib/route-live.js.map +1 -0
- package/dist/lib/sampling-params.d.ts +183 -0
- package/dist/lib/sampling-params.d.ts.map +1 -0
- package/dist/lib/sampling-params.js +386 -0
- package/dist/lib/sampling-params.js.map +1 -0
- package/dist/lib/scheduler.d.ts +13 -0
- package/dist/lib/scheduler.d.ts.map +1 -0
- package/dist/lib/scheduler.js +11 -0
- package/dist/lib/scheduler.js.map +1 -0
- package/dist/lib/served-model.d.ts +16 -0
- package/dist/lib/served-model.d.ts.map +1 -0
- package/dist/lib/served-model.js +0 -0
- package/dist/lib/served-model.js.map +1 -0
- package/dist/lib/server-logs.d.ts +132 -0
- package/dist/lib/server-logs.d.ts.map +1 -0
- package/dist/lib/server-logs.js +473 -0
- package/dist/lib/server-logs.js.map +1 -0
- package/dist/lib/setup-code.d.ts +5 -0
- package/dist/lib/setup-code.d.ts.map +1 -0
- package/dist/lib/setup-code.js +35 -0
- package/dist/lib/setup-code.js.map +1 -0
- package/dist/lib/structured-output.d.ts +9 -0
- package/dist/lib/structured-output.d.ts.map +1 -0
- package/dist/lib/structured-output.js +72 -0
- package/dist/lib/structured-output.js.map +1 -0
- package/dist/lib/system-prompt.d.ts +30 -0
- package/dist/lib/system-prompt.d.ts.map +1 -0
- package/dist/lib/system-prompt.js +66 -0
- package/dist/lib/system-prompt.js.map +1 -0
- package/dist/lib/task-type.d.ts +18 -0
- package/dist/lib/task-type.d.ts.map +1 -0
- package/dist/lib/task-type.js +92 -0
- package/dist/lib/task-type.js.map +1 -0
- package/dist/lib/think-tags.d.ts +37 -0
- package/dist/lib/think-tags.d.ts.map +1 -0
- package/dist/lib/think-tags.js +203 -0
- package/dist/lib/think-tags.js.map +1 -0
- package/dist/lib/tool-args.d.ts +36 -0
- package/dist/lib/tool-args.d.ts.map +1 -0
- package/dist/lib/tool-args.js +190 -0
- package/dist/lib/tool-args.js.map +1 -0
- package/dist/lib/tool-call-rescue.d.ts +62 -0
- package/dist/lib/tool-call-rescue.d.ts.map +1 -0
- package/dist/lib/tool-call-rescue.js +258 -0
- package/dist/lib/tool-call-rescue.js.map +1 -0
- package/dist/lib/tool-capability.d.ts +13 -0
- package/dist/lib/tool-capability.d.ts.map +1 -0
- package/dist/lib/tool-capability.js +70 -0
- package/dist/lib/tool-capability.js.map +1 -0
- package/dist/lib/tool-validate.d.ts +44 -0
- package/dist/lib/tool-validate.d.ts.map +1 -0
- package/dist/lib/tool-validate.js +165 -0
- package/dist/lib/tool-validate.js.map +1 -0
- package/dist/lib/ttfb-budget.d.ts +13 -0
- package/dist/lib/ttfb-budget.d.ts.map +1 -0
- package/dist/lib/ttfb-budget.js +153 -0
- package/dist/lib/ttfb-budget.js.map +1 -0
- package/dist/lib/url-guard.d.ts +47 -0
- package/dist/lib/url-guard.d.ts.map +1 -0
- package/dist/lib/url-guard.js +229 -0
- package/dist/lib/url-guard.js.map +1 -0
- package/dist/lib/wake-detect.d.ts +12 -0
- package/dist/lib/wake-detect.d.ts.map +1 -0
- package/dist/lib/wake-detect.js +99 -0
- package/dist/lib/wake-detect.js.map +1 -0
- package/dist/middleware/errorHandler.d.ts +3 -0
- package/dist/middleware/errorHandler.d.ts.map +1 -0
- package/dist/middleware/errorHandler.js +45 -0
- package/dist/middleware/errorHandler.js.map +1 -0
- package/dist/middleware/rateLimit.d.ts +4 -0
- package/dist/middleware/rateLimit.d.ts.map +1 -0
- package/dist/middleware/rateLimit.js +125 -0
- package/dist/middleware/rateLimit.js.map +1 -0
- package/dist/middleware/requireAuth.d.ts +3 -0
- package/dist/middleware/requireAuth.d.ts.map +1 -0
- package/dist/middleware/requireAuth.js +17 -0
- package/dist/middleware/requireAuth.js.map +1 -0
- package/dist/providers/aclide.d.ts +18 -0
- package/dist/providers/aclide.d.ts.map +1 -0
- package/dist/providers/aclide.js +174 -0
- package/dist/providers/aclide.js.map +1 -0
- package/dist/providers/aihorde.d.ts +42 -0
- package/dist/providers/aihorde.d.ts.map +1 -0
- package/dist/providers/aihorde.js +192 -0
- package/dist/providers/aihorde.js.map +1 -0
- package/dist/providers/airforce.d.ts +11 -0
- package/dist/providers/airforce.d.ts.map +1 -0
- package/dist/providers/airforce.js +32 -0
- package/dist/providers/airforce.js.map +1 -0
- package/dist/providers/base.d.ts +177 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +354 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/blaze.d.ts +11 -0
- package/dist/providers/blaze.d.ts.map +1 -0
- package/dist/providers/blaze.js +33 -0
- package/dist/providers/blaze.js.map +1 -0
- package/dist/providers/blockrun.d.ts +14 -0
- package/dist/providers/blockrun.d.ts.map +1 -0
- package/dist/providers/blockrun.js +36 -0
- package/dist/providers/blockrun.js.map +1 -0
- package/dist/providers/clod.d.ts +11 -0
- package/dist/providers/clod.d.ts.map +1 -0
- package/dist/providers/clod.js +39 -0
- package/dist/providers/clod.js.map +1 -0
- package/dist/providers/cloudflare.d.ts +15 -0
- package/dist/providers/cloudflare.d.ts.map +1 -0
- package/dist/providers/cloudflare.js +175 -0
- package/dist/providers/cloudflare.js.map +1 -0
- package/dist/providers/cohere.d.ts +11 -0
- package/dist/providers/cohere.d.ts.map +1 -0
- package/dist/providers/cohere.js +117 -0
- package/dist/providers/cohere.js.map +1 -0
- package/dist/providers/dreamprompting.d.ts +11 -0
- package/dist/providers/dreamprompting.d.ts.map +1 -0
- package/dist/providers/dreamprompting.js +41 -0
- package/dist/providers/dreamprompting.js.map +1 -0
- package/dist/providers/electronhub.d.ts +10 -0
- package/dist/providers/electronhub.d.ts.map +1 -0
- package/dist/providers/electronhub.js +56 -0
- package/dist/providers/electronhub.js.map +1 -0
- package/dist/providers/experiential.d.ts +10 -0
- package/dist/providers/experiential.d.ts.map +1 -0
- package/dist/providers/experiential.js +33 -0
- package/dist/providers/experiential.js.map +1 -0
- package/dist/providers/gizmo.d.ts +15 -0
- package/dist/providers/gizmo.d.ts.map +1 -0
- package/dist/providers/gizmo.js +54 -0
- package/dist/providers/gizmo.js.map +1 -0
- package/dist/providers/google.d.ts +30 -0
- package/dist/providers/google.d.ts.map +1 -0
- package/dist/providers/google.js +766 -0
- package/dist/providers/google.js.map +1 -0
- package/dist/providers/index.d.ts +13 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +561 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/llmtr.d.ts +15 -0
- package/dist/providers/llmtr.d.ts.map +1 -0
- package/dist/providers/llmtr.js +51 -0
- package/dist/providers/llmtr.js.map +1 -0
- package/dist/providers/logfare.d.ts +11 -0
- package/dist/providers/logfare.d.ts.map +1 -0
- package/dist/providers/logfare.js +33 -0
- package/dist/providers/logfare.js.map +1 -0
- package/dist/providers/lucidity.d.ts +11 -0
- package/dist/providers/lucidity.d.ts.map +1 -0
- package/dist/providers/lucidity.js +37 -0
- package/dist/providers/lucidity.js.map +1 -0
- package/dist/providers/modelscope.d.ts +50 -0
- package/dist/providers/modelscope.d.ts.map +1 -0
- package/dist/providers/modelscope.js +143 -0
- package/dist/providers/modelscope.js.map +1 -0
- package/dist/providers/moondream.d.ts +17 -0
- package/dist/providers/moondream.d.ts.map +1 -0
- package/dist/providers/moondream.js +140 -0
- package/dist/providers/moondream.js.map +1 -0
- package/dist/providers/openai-compat.d.ts +140 -0
- package/dist/providers/openai-compat.d.ts.map +1 -0
- package/dist/providers/openai-compat.js +537 -0
- package/dist/providers/openai-compat.js.map +1 -0
- package/dist/providers/opencode-free.d.ts +24 -0
- package/dist/providers/opencode-free.d.ts.map +1 -0
- package/dist/providers/opencode-free.js +262 -0
- package/dist/providers/opencode-free.js.map +1 -0
- package/dist/providers/pollinations.d.ts +32 -0
- package/dist/providers/pollinations.d.ts.map +1 -0
- package/dist/providers/pollinations.js +65 -0
- package/dist/providers/pollinations.js.map +1 -0
- package/dist/providers/router9.d.ts +16 -0
- package/dist/providers/router9.d.ts.map +1 -0
- package/dist/providers/router9.js +42 -0
- package/dist/providers/router9.js.map +1 -0
- package/dist/providers/sail.d.ts +44 -0
- package/dist/providers/sail.d.ts.map +1 -0
- package/dist/providers/sail.js +302 -0
- package/dist/providers/sail.js.map +1 -0
- package/dist/providers/septor.d.ts +10 -0
- package/dist/providers/septor.d.ts.map +1 -0
- package/dist/providers/septor.js +36 -0
- package/dist/providers/septor.js.map +1 -0
- package/dist/providers/speechify.d.ts +14 -0
- package/dist/providers/speechify.d.ts.map +1 -0
- package/dist/providers/speechify.js +28 -0
- package/dist/providers/speechify.js.map +1 -0
- package/dist/providers/speka.d.ts +12 -0
- package/dist/providers/speka.d.ts.map +1 -0
- package/dist/providers/speka.js +37 -0
- package/dist/providers/speka.js.map +1 -0
- package/dist/providers/waterfall.d.ts +11 -0
- package/dist/providers/waterfall.d.ts.map +1 -0
- package/dist/providers/waterfall.js +33 -0
- package/dist/providers/waterfall.js.map +1 -0
- package/dist/providers/xkiro.d.ts +71 -0
- package/dist/providers/xkiro.d.ts.map +1 -0
- package/dist/providers/xkiro.js +119 -0
- package/dist/providers/xkiro.js.map +1 -0
- package/dist/providers/zhipu.d.ts +43 -0
- package/dist/providers/zhipu.d.ts.map +1 -0
- package/dist/providers/zhipu.js +95 -0
- package/dist/providers/zhipu.js.map +1 -0
- package/dist/routes/analytics.d.ts +2 -0
- package/dist/routes/analytics.d.ts.map +1 -0
- package/dist/routes/analytics.js +738 -0
- package/dist/routes/analytics.js.map +1 -0
- package/dist/routes/anthropic.d.ts +7 -0
- package/dist/routes/anthropic.d.ts.map +1 -0
- package/dist/routes/anthropic.js +1076 -0
- package/dist/routes/anthropic.js.map +1 -0
- package/dist/routes/auth.d.ts +2 -0
- package/dist/routes/auth.d.ts.map +1 -0
- package/dist/routes/auth.js +310 -0
- package/dist/routes/auth.js.map +1 -0
- package/dist/routes/backups.d.ts +2 -0
- package/dist/routes/backups.d.ts.map +1 -0
- package/dist/routes/backups.js +127 -0
- package/dist/routes/backups.js.map +1 -0
- package/dist/routes/cache.d.ts +2 -0
- package/dist/routes/cache.d.ts.map +1 -0
- package/dist/routes/cache.js +40 -0
- package/dist/routes/cache.js.map +1 -0
- package/dist/routes/client-profiles.d.ts +2 -0
- package/dist/routes/client-profiles.d.ts.map +1 -0
- package/dist/routes/client-profiles.js +128 -0
- package/dist/routes/client-profiles.js.map +1 -0
- package/dist/routes/compression.d.ts +2 -0
- package/dist/routes/compression.d.ts.map +1 -0
- package/dist/routes/compression.js +82 -0
- package/dist/routes/compression.js.map +1 -0
- package/dist/routes/conversations.d.ts +3 -0
- package/dist/routes/conversations.d.ts.map +1 -0
- package/dist/routes/conversations.js +215 -0
- package/dist/routes/conversations.js.map +1 -0
- package/dist/routes/docs.d.ts +2 -0
- package/dist/routes/docs.d.ts.map +1 -0
- package/dist/routes/docs.js +21 -0
- package/dist/routes/docs.js.map +1 -0
- package/dist/routes/embeddings.d.ts +2 -0
- package/dist/routes/embeddings.d.ts.map +1 -0
- package/dist/routes/embeddings.js +255 -0
- package/dist/routes/embeddings.js.map +1 -0
- package/dist/routes/fallback.d.ts +2 -0
- package/dist/routes/fallback.d.ts.map +1 -0
- package/dist/routes/fallback.js +631 -0
- package/dist/routes/fallback.js.map +1 -0
- package/dist/routes/free-tier.d.ts +22 -0
- package/dist/routes/free-tier.d.ts.map +1 -0
- package/dist/routes/free-tier.js +175 -0
- package/dist/routes/free-tier.js.map +1 -0
- package/dist/routes/gemini.d.ts +2 -0
- package/dist/routes/gemini.d.ts.map +1 -0
- package/dist/routes/gemini.js +218 -0
- package/dist/routes/gemini.js.map +1 -0
- package/dist/routes/health.d.ts +2 -0
- package/dist/routes/health.d.ts.map +1 -0
- package/dist/routes/health.js +72 -0
- package/dist/routes/health.js.map +1 -0
- package/dist/routes/keys.d.ts +17 -0
- package/dist/routes/keys.d.ts.map +1 -0
- package/dist/routes/keys.js +1787 -0
- package/dist/routes/keys.js.map +1 -0
- package/dist/routes/logs.d.ts +2 -0
- package/dist/routes/logs.d.ts.map +1 -0
- package/dist/routes/logs.js +88 -0
- package/dist/routes/logs.js.map +1 -0
- package/dist/routes/mcp.d.ts +4 -0
- package/dist/routes/mcp.d.ts.map +1 -0
- package/dist/routes/mcp.js +563 -0
- package/dist/routes/mcp.js.map +1 -0
- package/dist/routes/media.d.ts +2 -0
- package/dist/routes/media.d.ts.map +1 -0
- package/dist/routes/media.js +180 -0
- package/dist/routes/media.js.map +1 -0
- package/dist/routes/models.d.ts +2 -0
- package/dist/routes/models.d.ts.map +1 -0
- package/dist/routes/models.js +439 -0
- package/dist/routes/models.js.map +1 -0
- package/dist/routes/ollama.d.ts +7 -0
- package/dist/routes/ollama.d.ts.map +1 -0
- package/dist/routes/ollama.js +595 -0
- package/dist/routes/ollama.js.map +1 -0
- package/dist/routes/profiles.d.ts +3 -0
- package/dist/routes/profiles.d.ts.map +1 -0
- package/dist/routes/profiles.js +431 -0
- package/dist/routes/profiles.js.map +1 -0
- package/dist/routes/proxy.d.ts +32 -0
- package/dist/routes/proxy.d.ts.map +1 -0
- package/dist/routes/proxy.js +2793 -0
- package/dist/routes/proxy.js.map +1 -0
- package/dist/routes/responses.d.ts +1161 -0
- package/dist/routes/responses.d.ts.map +1 -0
- package/dist/routes/responses.js +1521 -0
- package/dist/routes/responses.js.map +1 -0
- package/dist/routes/settings.d.ts +2 -0
- package/dist/routes/settings.d.ts.map +1 -0
- package/dist/routes/settings.js +549 -0
- package/dist/routes/settings.js.map +1 -0
- package/dist/routes/status.d.ts +3 -0
- package/dist/routes/status.d.ts.map +1 -0
- package/dist/routes/status.js +214 -0
- package/dist/routes/status.js.map +1 -0
- package/dist/routes/update.d.ts +31 -0
- package/dist/routes/update.d.ts.map +1 -0
- package/dist/routes/update.js +536 -0
- package/dist/routes/update.js.map +1 -0
- package/dist/routes/url-tokens.d.ts +2 -0
- package/dist/routes/url-tokens.d.ts.map +1 -0
- package/dist/routes/url-tokens.js +31 -0
- package/dist/routes/url-tokens.js.map +1 -0
- package/dist/scripts/export-catalog.d.ts +2 -0
- package/dist/scripts/export-catalog.d.ts.map +1 -0
- package/dist/scripts/export-catalog.js +114 -0
- package/dist/scripts/export-catalog.js.map +1 -0
- package/dist/scripts/rotate-encryption-key.d.ts +81 -0
- package/dist/scripts/rotate-encryption-key.d.ts.map +1 -0
- package/dist/scripts/rotate-encryption-key.js +232 -0
- package/dist/scripts/rotate-encryption-key.js.map +1 -0
- package/dist/scripts/routing-sim.d.ts +2 -0
- package/dist/scripts/routing-sim.d.ts.map +1 -0
- package/dist/scripts/routing-sim.js +130 -0
- package/dist/scripts/routing-sim.js.map +1 -0
- package/dist/scripts/test-all-models.d.ts +2 -0
- package/dist/scripts/test-all-models.d.ts.map +1 -0
- package/dist/scripts/test-all-models.js +56 -0
- package/dist/scripts/test-all-models.js.map +1 -0
- package/dist/services/anthropic-map.d.ts +39 -0
- package/dist/services/anthropic-map.d.ts.map +1 -0
- package/dist/services/anthropic-map.js +138 -0
- package/dist/services/anthropic-map.js.map +1 -0
- package/dist/services/auth.d.ts +30 -0
- package/dist/services/auth.d.ts.map +1 -0
- package/dist/services/auth.js +124 -0
- package/dist/services/auth.js.map +1 -0
- package/dist/services/auto-discover.d.ts +77 -0
- package/dist/services/auto-discover.d.ts.map +1 -0
- package/dist/services/auto-discover.js +1047 -0
- package/dist/services/auto-discover.js.map +1 -0
- package/dist/services/backups.d.ts +67 -0
- package/dist/services/backups.d.ts.map +1 -0
- package/dist/services/backups.js +444 -0
- package/dist/services/backups.js.map +1 -0
- package/dist/services/builtin-model-discovery.d.ts +107 -0
- package/dist/services/builtin-model-discovery.d.ts.map +1 -0
- package/dist/services/builtin-model-discovery.js +296 -0
- package/dist/services/builtin-model-discovery.js.map +1 -0
- package/dist/services/cache.d.ts +190 -0
- package/dist/services/cache.d.ts.map +1 -0
- package/dist/services/cache.js +617 -0
- package/dist/services/cache.js.map +1 -0
- package/dist/services/catalog-sync.d.ts +257 -0
- package/dist/services/catalog-sync.d.ts.map +1 -0
- package/dist/services/catalog-sync.js +1041 -0
- package/dist/services/catalog-sync.js.map +1 -0
- package/dist/services/compression/config.d.ts +33 -0
- package/dist/services/compression/config.d.ts.map +1 -0
- package/dist/services/compression/config.js +158 -0
- package/dist/services/compression/config.js.map +1 -0
- package/dist/services/compression/engines/aging.d.ts +2 -0
- package/dist/services/compression/engines/aging.d.ts.map +1 -0
- package/dist/services/compression/engines/aging.js +53 -0
- package/dist/services/compression/engines/aging.js.map +1 -0
- package/dist/services/compression/engines/custom-filters.d.ts +4 -0
- package/dist/services/compression/engines/custom-filters.d.ts.map +1 -0
- package/dist/services/compression/engines/custom-filters.js +49 -0
- package/dist/services/compression/engines/custom-filters.js.map +1 -0
- package/dist/services/compression/engines/dedup.d.ts +2 -0
- package/dist/services/compression/engines/dedup.d.ts.map +1 -0
- package/dist/services/compression/engines/dedup.js +61 -0
- package/dist/services/compression/engines/dedup.js.map +1 -0
- package/dist/services/compression/engines/filter-definitions.d.ts +75 -0
- package/dist/services/compression/engines/filter-definitions.d.ts.map +1 -0
- package/dist/services/compression/engines/filter-definitions.js +45 -0
- package/dist/services/compression/engines/filter-definitions.js.map +1 -0
- package/dist/services/compression/engines/hard-budget.d.ts +2 -0
- package/dist/services/compression/engines/hard-budget.d.ts.map +1 -0
- package/dist/services/compression/engines/hard-budget.js +52 -0
- package/dist/services/compression/engines/hard-budget.js.map +1 -0
- package/dist/services/compression/engines/index.d.ts +9 -0
- package/dist/services/compression/engines/index.d.ts.map +1 -0
- package/dist/services/compression/engines/index.js +9 -0
- package/dist/services/compression/engines/index.js.map +1 -0
- package/dist/services/compression/engines/jsoncompact.d.ts +3 -0
- package/dist/services/compression/engines/jsoncompact.d.ts.map +1 -0
- package/dist/services/compression/engines/jsoncompact.js +145 -0
- package/dist/services/compression/engines/jsoncompact.js.map +1 -0
- package/dist/services/compression/engines/lite.d.ts +2 -0
- package/dist/services/compression/engines/lite.d.ts.map +1 -0
- package/dist/services/compression/engines/lite.js +34 -0
- package/dist/services/compression/engines/lite.js.map +1 -0
- package/dist/services/compression/engines/read-lifecycle.d.ts +2 -0
- package/dist/services/compression/engines/read-lifecycle.d.ts.map +1 -0
- package/dist/services/compression/engines/read-lifecycle.js +70 -0
- package/dist/services/compression/engines/read-lifecycle.js.map +1 -0
- package/dist/services/compression/engines/relevance.d.ts +2 -0
- package/dist/services/compression/engines/relevance.d.ts.map +1 -0
- package/dist/services/compression/engines/relevance.js +74 -0
- package/dist/services/compression/engines/relevance.js.map +1 -0
- package/dist/services/compression/engines/toolfilter.d.ts +2 -0
- package/dist/services/compression/engines/toolfilter.d.ts.map +1 -0
- package/dist/services/compression/engines/toolfilter.js +195 -0
- package/dist/services/compression/engines/toolfilter.js.map +1 -0
- package/dist/services/compression/fidelity-gate.d.ts +12 -0
- package/dist/services/compression/fidelity-gate.d.ts.map +1 -0
- package/dist/services/compression/fidelity-gate.js +90 -0
- package/dist/services/compression/fidelity-gate.js.map +1 -0
- package/dist/services/compression/helpers.d.ts +9 -0
- package/dist/services/compression/helpers.d.ts.map +1 -0
- package/dist/services/compression/helpers.js +52 -0
- package/dist/services/compression/helpers.js.map +1 -0
- package/dist/services/compression/pipeline.d.ts +7 -0
- package/dist/services/compression/pipeline.d.ts.map +1 -0
- package/dist/services/compression/pipeline.js +245 -0
- package/dist/services/compression/pipeline.js.map +1 -0
- package/dist/services/compression/preservation.d.ts +27 -0
- package/dist/services/compression/preservation.d.ts.map +1 -0
- package/dist/services/compression/preservation.js +109 -0
- package/dist/services/compression/preservation.js.map +1 -0
- package/dist/services/compression/registry.d.ts +6 -0
- package/dist/services/compression/registry.d.ts.map +1 -0
- package/dist/services/compression/registry.js +16 -0
- package/dist/services/compression/registry.js.map +1 -0
- package/dist/services/compression/stats.d.ts +29 -0
- package/dist/services/compression/stats.d.ts.map +1 -0
- package/dist/services/compression/stats.js +55 -0
- package/dist/services/compression/stats.js.map +1 -0
- package/dist/services/compression/types.d.ts +90 -0
- package/dist/services/compression/types.d.ts.map +1 -0
- package/dist/services/compression/types.js +2 -0
- package/dist/services/compression/types.js.map +1 -0
- package/dist/services/context-handoff.d.ts +22 -0
- package/dist/services/context-handoff.d.ts.map +1 -0
- package/dist/services/context-handoff.js +164 -0
- package/dist/services/context-handoff.js.map +1 -0
- package/dist/services/cooldown-probe.d.ts +24 -0
- package/dist/services/cooldown-probe.d.ts.map +1 -0
- package/dist/services/cooldown-probe.js +181 -0
- package/dist/services/cooldown-probe.js.map +1 -0
- package/dist/services/custom-endpoint.d.ts +58 -0
- package/dist/services/custom-endpoint.d.ts.map +1 -0
- package/dist/services/custom-endpoint.js +167 -0
- package/dist/services/custom-endpoint.js.map +1 -0
- package/dist/services/custom-media-register.d.ts +22 -0
- package/dist/services/custom-media-register.d.ts.map +1 -0
- package/dist/services/custom-media-register.js +45 -0
- package/dist/services/custom-media-register.js.map +1 -0
- package/dist/services/custom-model-register.d.ts +50 -0
- package/dist/services/custom-model-register.d.ts.map +1 -0
- package/dist/services/custom-model-register.js +103 -0
- package/dist/services/custom-model-register.js.map +1 -0
- package/dist/services/custom-model-seed.d.ts +18 -0
- package/dist/services/custom-model-seed.d.ts.map +1 -0
- package/dist/services/custom-model-seed.js +42 -0
- package/dist/services/custom-model-seed.js.map +1 -0
- package/dist/services/custom-model-sync.d.ts +37 -0
- package/dist/services/custom-model-sync.d.ts.map +1 -0
- package/dist/services/custom-model-sync.js +118 -0
- package/dist/services/custom-model-sync.js.map +1 -0
- package/dist/services/custom-model-tombstone.d.ts +5 -0
- package/dist/services/custom-model-tombstone.d.ts.map +1 -0
- package/dist/services/custom-model-tombstone.js +30 -0
- package/dist/services/custom-model-tombstone.js.map +1 -0
- package/dist/services/declarative-config.d.ts +356 -0
- package/dist/services/declarative-config.d.ts.map +1 -0
- package/dist/services/declarative-config.js +427 -0
- package/dist/services/declarative-config.js.map +1 -0
- package/dist/services/degradation.d.ts +40 -0
- package/dist/services/degradation.d.ts.map +1 -0
- package/dist/services/degradation.js +119 -0
- package/dist/services/degradation.js.map +1 -0
- package/dist/services/embeddings.d.ts +76 -0
- package/dist/services/embeddings.d.ts.map +1 -0
- package/dist/services/embeddings.js +319 -0
- package/dist/services/embeddings.js.map +1 -0
- package/dist/services/fusion.d.ts +162 -0
- package/dist/services/fusion.d.ts.map +1 -0
- package/dist/services/fusion.js +789 -0
- package/dist/services/fusion.js.map +1 -0
- package/dist/services/gemini-map.d.ts +14 -0
- package/dist/services/gemini-map.d.ts.map +1 -0
- package/dist/services/gemini-map.js +78 -0
- package/dist/services/gemini-map.js.map +1 -0
- package/dist/services/health.d.ts +52 -0
- package/dist/services/health.d.ts.map +1 -0
- package/dist/services/health.js +352 -0
- package/dist/services/health.js.map +1 -0
- package/dist/services/idempotency.d.ts +49 -0
- package/dist/services/idempotency.d.ts.map +1 -0
- package/dist/services/idempotency.js +140 -0
- package/dist/services/idempotency.js.map +1 -0
- package/dist/services/key-budget.d.ts +74 -0
- package/dist/services/key-budget.d.ts.map +1 -0
- package/dist/services/key-budget.js +200 -0
- package/dist/services/key-budget.js.map +1 -0
- package/dist/services/media.d.ts +123 -0
- package/dist/services/media.d.ts.map +1 -0
- package/dist/services/media.js +954 -0
- package/dist/services/media.js.map +1 -0
- package/dist/services/model-discovery.d.ts +126 -0
- package/dist/services/model-discovery.d.ts.map +1 -0
- package/dist/services/model-discovery.js +662 -0
- package/dist/services/model-discovery.js.map +1 -0
- package/dist/services/model-groups.d.ts +149 -0
- package/dist/services/model-groups.d.ts.map +1 -0
- package/dist/services/model-groups.js +314 -0
- package/dist/services/model-groups.js.map +1 -0
- package/dist/services/model-listing.d.ts +18 -0
- package/dist/services/model-listing.d.ts.map +1 -0
- package/dist/services/model-listing.js +94 -0
- package/dist/services/model-listing.js.map +1 -0
- package/dist/services/model-retirement.d.ts +29 -0
- package/dist/services/model-retirement.d.ts.map +1 -0
- package/dist/services/model-retirement.js +86 -0
- package/dist/services/model-retirement.js.map +1 -0
- package/dist/services/model-state.d.ts +90 -0
- package/dist/services/model-state.d.ts.map +1 -0
- package/dist/services/model-state.js +342 -0
- package/dist/services/model-state.js.map +1 -0
- package/dist/services/model-weight-overrides.d.ts +48 -0
- package/dist/services/model-weight-overrides.d.ts.map +1 -0
- package/dist/services/model-weight-overrides.js +127 -0
- package/dist/services/model-weight-overrides.js.map +1 -0
- package/dist/services/notification-emitter.d.ts +50 -0
- package/dist/services/notification-emitter.d.ts.map +1 -0
- package/dist/services/notification-emitter.js +177 -0
- package/dist/services/notification-emitter.js.map +1 -0
- package/dist/services/opencode-free-sync.d.ts +29 -0
- package/dist/services/opencode-free-sync.d.ts.map +1 -0
- package/dist/services/opencode-free-sync.js +206 -0
- package/dist/services/opencode-free-sync.js.map +1 -0
- package/dist/services/penalty-inspector.d.ts +56 -0
- package/dist/services/penalty-inspector.d.ts.map +1 -0
- package/dist/services/penalty-inspector.js +167 -0
- package/dist/services/penalty-inspector.js.map +1 -0
- package/dist/services/profile-models.d.ts +5 -0
- package/dist/services/profile-models.d.ts.map +1 -0
- package/dist/services/profile-models.js +62 -0
- package/dist/services/profile-models.js.map +1 -0
- package/dist/services/provider-credential.d.ts +19 -0
- package/dist/services/provider-credential.d.ts.map +1 -0
- package/dist/services/provider-credential.js +51 -0
- package/dist/services/provider-credential.js.map +1 -0
- package/dist/services/provider-quota.d.ts +64 -0
- package/dist/services/provider-quota.d.ts.map +1 -0
- package/dist/services/provider-quota.js +563 -0
- package/dist/services/provider-quota.js.map +1 -0
- package/dist/services/quirks.d.ts +0 -0
- package/dist/services/quirks.d.ts.map +1 -0
- package/dist/services/quirks.js +0 -0
- package/dist/services/quirks.js.map +1 -0
- package/dist/services/quota-forecast.d.ts +50 -0
- package/dist/services/quota-forecast.d.ts.map +1 -0
- package/dist/services/quota-forecast.js +150 -0
- package/dist/services/quota-forecast.js.map +1 -0
- package/dist/services/quota-outlook.d.ts +4 -0
- package/dist/services/quota-outlook.d.ts.map +1 -0
- package/dist/services/quota-outlook.js +92 -0
- package/dist/services/quota-outlook.js.map +1 -0
- package/dist/services/ratelimit.d.ts +249 -0
- package/dist/services/ratelimit.d.ts.map +1 -0
- package/dist/services/ratelimit.js +1182 -0
- package/dist/services/ratelimit.js.map +1 -0
- package/dist/services/request-retention.d.ts +60 -0
- package/dist/services/request-retention.d.ts.map +1 -0
- package/dist/services/request-retention.js +229 -0
- package/dist/services/request-retention.js.map +1 -0
- package/dist/services/router.d.ts +384 -0
- package/dist/services/router.d.ts.map +1 -0
- package/dist/services/router.js +1986 -0
- package/dist/services/router.js.map +1 -0
- package/dist/services/scoring.d.ts +156 -0
- package/dist/services/scoring.d.ts.map +1 -0
- package/dist/services/scoring.js +435 -0
- package/dist/services/scoring.js.map +1 -0
- package/dist/services/url-tokens.d.ts +15 -0
- package/dist/services/url-tokens.d.ts.map +1 -0
- package/dist/services/url-tokens.js +55 -0
- package/dist/services/url-tokens.js.map +1 -0
- package/package.json +77 -4
- 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:`Змінити e-mail`,forgotPassword:`Забули пароль?`,currentPassword:`Поточний пароль`,newPassword:`Новий пароль`,newEmail:`Новий e-mail`,resetCode:`Код скидання`,resetCodePlaceholder:`код із логів сервера`,resetCodeHint:`Код знаходиться в лозі сервера. Електронною поштою він ніколи не надсилається.`,forgotPasswordDescription:`Натисніть кнопку нижче, щоб створити код скидання. Код записується в лог сервера й ніколи не надсилається електронною поштою. Введіть його тут, щоб задати новий пароль.`,requestResetCode:`Надіслати код`,requestingResetCode:`Надсилання…`,resetPassword:`Скинути пароль`,resettingPassword:`Скидання…`,changingPassword:`Зміна…`,changingEmail:`Зміна…`,backToLogin:`Назад до входу`,passwordChanged:`Пароль успішно змінено.`,emailChanged:`E-mail успішно змінено.`,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`,restartAfterUpdate:`Перезапустіть SRouter після завершення збірки.`,syncSchedule:`Model Sync`,syncScheduleHint:`How often the model catalog is refreshed from the server`,syncIntervalOff:`Off`,syncInterval6h:`Every 6h`,syncInterval12h:`Every 12h`,syncInterval24h:`Every 24h`},models:{title:`Моделі`,chatModelsTab:`Моделі чату`,fusionTab:`Fusion`,embeddingsTab:`Вбудовування`,imageTab:`Зображення`,videoTab:`Video`,audioTab:`Аудіо`,imageDesc:`Моделі генерації тексту в зображення.`,videoDesc:`Text-to-video generation models.`,audioDesc:`Моделі синтезу мовлення та мовлення в текст.`,mediaHint:`Згенерувати через`,mediaEmpty:`Моделей ще немає. Вони синхронізуються з каталогу.`,ttsHeading:`Перетворення тексту на мовлення`,sttHeading:`Перетворення мови в текст`,sttHint:`Транскрибувати через`,sttEmpty:`Моделей перетворення мови в текст ще немає. Вони синхронізуються з каталогу.`,newBadge:`новий`,monthlyTokenBudget:`Місячний бюджет токенів`,remaining:`залишилося`,used:`використовується`,usedScopeHint:`Chat requests only, since the start of this calendar month, summed over every model in the active chain — custom endpoints included. Traffic you send to a provider outside SRouter is not counted.`,legendRemainingTitle:`Remaining / monthly budget for {name} ({platform})`,noPublishedQuota:`+{count} with no published quota`,noPublishedQuotaTitle:`These models have no documented monthly token budget, so there is no remaining figure to show.`,of:`з`,showAllModels:`Показати всі моделі {count}`,showLess:`Показувати менше`,vision:`Бачення`,visionTitle:`Приймає введення зображення`,tools:`Інструменти`,toolsTitle:`Видає структуровані виклики інструментів, тому він підходить для запитів, що містять інструменти`,retired:`Знято`,penalty:`−{value} пенальті`,obs:`{count} обс`,tokPerMonth:`{count} ток/міс`,rpmLimit:`{count} об/хв`,rpdLimit:`{count} rpd`,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} ctx`,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:`Увімкнути або вимкнути всі показані моделі`,enableAll:`Увімкнути всі`,disableAll:`Вимкнути всі`,enableAllHint:`Увімкніть усі показані моделі, потім збережіть`,disableAllHint:`Вимкніть усі показані моделі, потім збережіть`,enabledOfShown:`У ланцюжку {enabled} із {shown} показаних моделей`},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:`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":"Направте на цей сервер клієнт Claude або Anthropic SDK. Клієнти Anthropic надсилають назви моделей Claude — зіставляйте кожну з Auto (маршрутизатор вибирає вільну модель) або закріплюйте певну.","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":"ID облікового запису","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} мс","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-ключі для кожного клієнта, кожен зі своїм системним промптом, який сервер застосовує завжди.","cpEmpty":"Профілів клієнтів поки немає.","cpNameLabel":"Назва","cpNamePlaceholder":"напр., Бот підтримки","cpPromptLabel":"Системний промпт (необов'язково)","cpPromptPlaceholder":"Інструкції, які сервер додає перед кожним запитом із цим ключем.","cpCreate":"Створити профіль","cpRotate":"Змінити ключ","cpKeyOnce":"Скопіюйте цей ключ зараз — він більше не показуватиметься.","cpEnabledAria":"Профіль увімкнено","selectKey":"Вибрати цей ключ","bulkSelected":"Вибрано {count}","bulkEnable":"Увімкнути всі","bulkDisable":"Вимкнути всі","bulkDelete":"Видалити всі","bulkDeleteConfirm":"Видалити {count}?","bulkResult":"Оновлено {done}; не вдалося {failed}.","bulkDeleteResult":"Видалено {done}; не вдалося {failed}.","testProxy":"Test","testingProxy":"Testing…","proxyTestOk":"Proxy works — {ms}ms round trip","proxyTestFail":"Proxy failed: {reason}","editKey":"Редагувати ключ","editPlatformLocked":"Постачальника та кінцеву точку не можна змінити після створення.","editCredentialHint":"Залиште порожнім, щоб зберегти поточний ключ.","editCredentialPartsRequired":"Введіть і ID облікового запису, і API-токен.","editModels":"Редагувати моделі","editModelsHint":"Choose which catalog models this key may serve. Select everything to clear the scope so future catalog models use it too.","editModelsCustomHint":"Choose which registered endpoint models this key may serve. Select everything to clear the scope.","editModelsSync":"Check catalog updates","editModelsSyncing":"Checking…","editModelsSynced":"Model catalog checked","outlookUnavailable":"Unavailable","outlookNoForecasts":"Forecast unavailable. More recent traffic or reliable quota readings are needed.","outlookCoverage":"Forecasts available for {count} of {total} pools.","outlookTraffic":"{count} successful requests through this instance in the last {minutes} minutes.","outlookMinimumTraffic":"An exhaustion forecast needs at least {count} successful requests within {minutes} minutes.","outlookNotReportedHint":"The provider has not reported a usable request balance and limit. Local usage is shown; remaining quota is unavailable.","outlookMissingResetHint":"The provider did not report a valid reset time. Remaining quota cannot support an exhaustion forecast.","outlookConfidenceHint":"This balance is not reliable enough for an exhaustion forecast.","outlookObserved":"Balance observed: {time}","outlookUnavailablePools":"Unavailable quota pools ({count})","outlookTitle":"Quota outlook","outlookInsufficient":"Not enough data","outlookLowBalance":"Low balance","outlookRunningLow":"Running low soon","outlookStale":"Needs fresh data","outlookUnknown":"Unknown","outlookWithinQuota":"Within quota","outlookResetsFirst":"Not before reset","outlookExhausted":"Already exhausted","outlookLastReported":"requests last reported","outlookRequestsLeft":"requests left","outlookNotReported":"Not reported","outlookRate":"Recent rate","outlookRateValue":"{count} req/min","outlookRunsOut":"May run out","outlookStaleHint":"This balance is old or its window has expired. A fresh provider reading is needed.","outlookError":"Could not load quota forecasts. Raw observations are still available below.","outlookRetry":"Retry","outlookAttention":"Quota pools needing attention: {count}","outlookNoWarnings":"No forecast warnings. Pools with insufficient data may still be limited.","outlookHint":"Rates count successful requests through this instance only, not usage elsewhere. Forecasts require recent provider balances and reported resets. Warnings appear below 20% remaining or when quota may run out within two hours, before reset.","outlookRaw":"Raw quota observations","addCustomModel":"Додати власну модель","modelId":"ID моделі","modelIdRequired":"ID моделі є обов’язковим","modelDisplayName":"Відображуване ім’я","modelContextWindow":"Вікно контексту (токени)","modelRateLimits":"Ліміти запитів (необов’язково)","modelSupportsTools":"Підтримує виклики інструментів","modelSupportsToolsHint":"Увімкніть, якщо ця модель здатна викликати функції або інструменти","modelSupportsVision":"Підтримує аналіз зображень","modelSupportsVisionHint":"Увімкніть, якщо ця модель приймає зображення на вхід","createModel":"Створити модель","modelAddedSuccess":"Власну модель успішно додано","modelAddFailed":"Не вдалося додати власну модель","testModel":"Тестувати","testingModel":"Тестування…","testPassedShort":"Успіх","testFailedShort":"Помилка","testPassed":"Тест моделі пройдено за {latency}мс","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:`90d`,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:`IP клієнта`,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:`Fusion (мультимодельний синтез)`,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:`Fusion`,description:`Група моделей відповідає паралельно, потім суддя синтезує одну сильнішу відповідь. Використовуйте його, називаючи API з моделлю "fusion".`,panelSource:`Джерело панелі`,panelSourceHelp:`Звідки беруться моделі панелей, якщо запит не вказує власний.`,mode:{auto:`Авто (запасний ланцюг)`,autoHelp:`Виберіть різноманітний набір моделей зі свого резервного ланцюга, упорядкованих за вашою активною стратегією маршрутизації.`,explicit:`Явна панель`,explicitHelp:`Завжди використовуйте конкретні моделі, які ви виберете нижче.`},panelModels:`Панельні моделі`,selectedCount:`Вибрано {count} з {max}`,noModels:`Жодна модель ще не підключена. Додайте ключ API, а потім увімкніть моделі в резервному ланцюжку.`,panelSize:`Розмір панелі`,panelSizeHelp:`Скільки різноманітних моделей вибрати автоматично (1–{max}).`,judge:`Модель судді`,judgeHelp:`Модель, яка синтезує відповіді панелі в одну. Auto використовує доступну модель з найвищим рейтингом.`,judgeAuto:`Автоматично (найвищий рейтинг доступний)`,strategy:`Стратегія`,strategySynthesize:`Синтезувати — об’єднати панель в одну відповідь`,strategyBestOf:`Best of — поверніть єдину найсильнішу відповідь (без виклику судді)`,strategySynthesizeShort:`Синтезувати`,strategyBestOfShort:`Кращий з`,exposePanel:`Викрити деталі панелі`,exposePanelHelp:`Додайте відповідь кожної моделі та метадані судді в поле x_fusion у відповіді.`,howToUse:`Як використовувати`,howToUseHelp:`Надішліть звичайний запит у чат із моделлю "fusion". Ці налаштування є типовими; будь-який запит може замінити їх за допомогою поля "fusion".`,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:`Безкоштовний рівень: каталог оновлюється зі щомісячного знімка, який автоматично перевіряється двічі на день. Premium перемикає це на пряму трансляцію, яка оновлюється кожні 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:`Перейти на Premium`,bundled:`в комплекті`,planGeneric:`Преміум`},languages:{en:`English`,"zh-CN":`中文 (简体)`,es:`Español`,fr:`Français`,"pt-BR":`Português (Brasil)`,it:`Italiano`,hi:`हिन्दी`,ar:`العربية`,bn:`বাংলা`,ru:`Русский`,ur:`اردو`,id:`Bahasa Indonesia`,de:`Deutsch`,ja:`日本語`,sw:`Kiswahili`,mr:`मराठी`,te:`తెలుగు`,tr:`Türkçe`,ta:`தமிழ்`,vi:`Tiếng Việt`,ko:`한국어`,fa:`فارسی`,th:`ไทย`,gu:`ગુજરાતી`,pl:`Polski`,uk:`Українська`,kn:`ಕನ್ನಡ`,ml:`മലയാളം`,or:`ଓଡ଼ିଆ`,my:`မြန်မာဘာသာ`,pa:`ਪੰਜਾਬੀ`,ro:`Română`,nl:`Nederlands`,ms:`Bahasa Melayu`,tl:`Filipino`,ha:`Hausa`,yo:`Yorùbá`,ig:`Igbo`,am:`አማርኛ`,uz:`Oʻzbekcha`,az:`Azərbaycanca`,si:`සිංහල`,ne:`नेपाली`,km:`ខ្មែរ`,el:`Ελληνικά`,cs:`Čeština`,hu:`Magyar`,sv:`Svenska`,he:`עברית`,da:`Dansk`,fi:`Suomi`,no:`Norsk`,sk:`Slovenčina`,bg:`Български`,hr:`Hrvatski`,sr:`Српски`,lt:`Lietuvių`,"zh-TW":`中文 (繁體)`,"pt-PT":`Português (Portugal)`,ka:`ქართული`},errors:{boundaryTitle:`Щось пішло не так`,boundaryDescription:`На інформаційній панелі сталася несподівана помилка. Ваші дані в безпеці. Спробуйте ще раз або поверніться на сторінку моделей.`,tryAgain:`Спробуйте знову`,goHome:`Назад до моделей`},notFound:{title:`Сторінка не знайдена`,description:`Ця сторінка не існує або, можливо, була переміщена.`},setup:{title:`Початок роботи`,subtitle:`Три кроки для маршрутизації вашого першого запиту.`,progress:`{done} з {total}`,step1Title:`Додайте ключ провайдера`,step1Desc:`Підключіть хоча б один обліковий запис постачальника. Безкоштовні ключі працюють.`,step1Cta:`Додайте ключі`,step2Title:`Надіслати тестовий запит`,step2Desc:`Виберіть будь-яку модель на ігровому майданчику та привітайтеся.`,step2Cta:`Відкритий ігровий майданчик`,step3Title:`Підключіть свою програму`,step3Desc:`Використовуйте свій уніфікований ключ API з будь-яким клієнтом, сумісним із OpenAI.`,copyKey:`Скопіюйте ключ API`,copyUrl:`База копії URL`,copiedKey:`Ключ API скопійовано в буфер обміну`,copiedUrl:`Базу URL скопійовано в буфер обміну`},palette:{title:`Палітра команд`,placeholder:`Пошук сторінок, моделей, дій…`,empty:`Результатів немає`,groupPages:`сторінки`,groupActions:`Дії`,groupModels:`Моделі`,toggleTheme:`Увімкнути темний режим`},validation:{required:`Обов'язковий`,url:`Введіть дійсний URL, починаючи з http:// або https://`,email:`Введіть дійсну адресу електронної пошти`,passwordMin:`Принаймні {min} символів`},agents:{title:`Агенти для кодування`,description:`Підключіть інструменти кодування до єдиного шлюзу безкоштовних моделей зі згенерованою конфігурацією, безпечною для резервного копіювання.`,apiKey:`Ключ API`,quickstartTitle:`Швидкий старт`,quickstart:`Найшвидший шлях: налаштуйте Claude Code з живого каталогу.`,currentKey:`Поточний єдиний ключ:`,seenRecently:`Нещодавно помічено`,setupLabel:`Автоматичне налаштування`,setupHint:`Сам записує файл конфігурації цього інструмента з посиланням на цей шлюз.`,setupGuideHint:`Виводить кроки налаштування цього інструмента; жодного файлу не записується.`,manualLabel:`Ручне підключення`,manualHint:`Базовий URL і ключ для введення в налаштуваннях самого інструмента.`,endpoint:`Кінцева точка`,documentation:`Документація`,descriptions:{claude:`Anthropic's terminal agent: it plans, edits files, and runs commands in your repo.`,codex:`OpenAI's terminal agent, which runs your task in a local sandbox first.`,cline:`A VS Code extension that asks you to approve every edit and command.`,continue:`A VS Code and JetBrains extension for inline autocomplete and chat while you type.`,aider:`A command-line pair programmer that turns each change into its own git commit.`,opencode:`A provider-agnostic terminal agent with a full-screen text interface.`,goose:`Block's local agent, extended with MCP servers to reach past your code.`,qwen:`A Gemini CLI fork tuned for Qwen models and large repositories.`,roo:`A VS Code extension with switchable modes: architect, coder, debugger.`,kilo:`A VS Code extension merging Roo and Cline, with an orchestrator that splits up work.`,crush:`Charm's terminal agent, written in Go, with one session per project.`,dsh:`DeepSeek's harness, which keeps every provider as a route you can switch between.`,mimo:`Xiaomi's terminal agent, an OpenCode fork that takes any OpenAI-compatible provider.`,cursor:`The AI-first editor; it calls through Cursor's cloud, so it needs a public URL.`,generic:`Anything else that speaks the OpenAI API, set up by hand from a base URL and key.`,atomcode:`AtomGit's terminal agent, written in Rust, that takes any OpenAI-compatible endpoint.`,openclaw:`Завжди доступний персональний асистент, який відповідає у WhatsApp, Telegram, Discord та інших месенджерах просто з вашого комп'ютера.`,hermes:`Агент від Nous Research, що самовдосконалюється, з постійною пам'яттю та навичками — у терміналі або в чат-застосунках.`,pi:`Мінімалістичний термінальний агент, який ви налаштовуєте власними розширеннями, навичками та шаблонами промптів.`}},update:{available:`New version available`,whatsNew:`What's new in v{version}`,publishedOn:`Published {date}`,noNotes:`No release notes were published for this version.`,openRelease:`Open release page`,dismissVersion:`Dismiss this version`,dismiss:`Dismiss`},freeTier:{poolsToggle:`Free-tier pools ({count})`,poolsToggleBare:`Free-tier pools`,summary:`{pools} pools · {budget} tokens/mo counted once per pool · {credits} credits-based · {unpublished} unpublished`,pool:`Pool`,models:`Models`,budget:`Monthly budget`,kind:`Kind`,kindDocumented:`Documented`,kindCredits:`Credits`,kindUnpublished:`Unpublished`,remaining:`Remaining`,resetAt:`Resets at`,disabledModels:`({count} off)`,metricTokens:`tokens`,metricRequests:`requests`,metricCredits:`credits`,metricNeurons:`neurons`,metricOther:`units`,empty:`No enabled models with free-tier budget data.`,poolLabel:`{platform} · shared {scope} pool`,poolLabelBare:`{platform} · shared pool`,poolModels:`{count} models`,poolBudget:`{budget}/mo`,poolBudgetTitle:`One monthly allowance for the whole pool, scaled by the {count} usable keys on this platform. Every model listed under it draws from the same budget.`,poolNoQuota:`no published quota`,poolResets:`resets {time}`,independentBudgets:`independent budgets`},chains:{title:`Ланцюжки резервування`,description:`Іменовані ланцюжки; кожен викликається як auto:<name> у /v1/models.`,count:`Ланцюжків: {count}`,active:`Активний`,default:`За замовчуванням`,activate:`Активувати`,activateHint:`Редагувати цей ланцюжок у таблиці нижче й маршрутизувати auto через нього`,deleteHint:`Видалити цей ланцюжок`,deleteConfirm:`Видалити ланцюжок «{name}»?`,create:`Створити`,createPlaceholder:`Назва ланцюжка`,createFailed:`Не вдалося створити ланцюжок.`,nameRules:`До 20 символів: літери, цифри, дефіси й підкреслення.`,startEmpty:`Почати з порожнього`,startEmptyHint:`Створює ланцюжок без моделей і не додає до нього нові моделі каталогу. Без позначки він починається як копія типового ланцюжка.`,curated:`Ручний`,curatedHint:`Нові моделі каталогу не додаються до цього ланцюжка автоматично.`,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:`ماڈلز`,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 ریلیزز کھولیں`,restartAfterUpdate:`بلڈ مکمل ہونے کے بعد SRouter کو دوبارہ شروع کریں۔`,syncSchedule:`Model Sync`,syncScheduleHint:`How often the model catalog is refreshed from the server`,syncIntervalOff:`Off`,syncInterval6h:`Every 6h`,syncInterval12h:`Every 12h`,syncInterval24h:`Every 24h`},models:{title:`ماڈلز`,chatModelsTab:`چیٹ ماڈلز`,fusionTab:`فیوژن`,embeddingsTab:`ایمبیڈنگز`,imageTab:`تصویر`,videoTab:`Video`,audioTab:`آڈیو`,imageDesc:`ٹیکسٹ ٹو امیج جنریشن ماڈلز۔`,videoDesc:`Text-to-video generation models.`,audioDesc:`متن سے تقریر اور تقریر سے متن کے ماڈل۔`,mediaHint:`کے ذریعے پیدا کریں۔`,mediaEmpty:`ابھی تک کوئی ماڈل نہیں۔ وہ کیٹلاگ سے مطابقت پذیر ہوتے ہیں۔`,ttsHeading:`متن سے تقریر`,sttHeading:`متن سے تقریر`,sttHint:`کے ذریعے نقل کریں۔`,sttEmpty:`ابھی تک کوئی اسپیچ ٹو ٹیکسٹ ماڈل نہیں ہے۔ وہ کیٹلاگ سے مطابقت پذیر ہوتے ہیں۔`,newBadge:`نیا`,monthlyTokenBudget:`ماہانہ ٹوکن بجٹ`,remaining:`باقی`,used:`استعمال کیا جاتا ہے`,usedScopeHint:`Chat requests only, since the start of this calendar month, summed over every model in the active chain — custom endpoints included. Traffic you send to a provider outside SRouter is not counted.`,legendRemainingTitle:`Remaining / monthly budget for {name} ({platform})`,noPublishedQuota:`+{count} with no published quota`,noPublishedQuotaTitle:`These models have no documented monthly token budget, so there is no remaining figure to show.`,of:`کی`,showAllModels:`تمام {count} ماڈلز دکھائیں۔`,showLess:`کم دکھائیں۔`,vision:`وژن`,visionTitle:`امیج ان پٹ کو قبول کرتا ہے۔`,tools:`اوزار`,toolsTitle:`سٹرکچرڈ ٹول کالز کو خارج کرتا ہے، اس لیے یہ ٹول بیئرنگ کی درخواستوں کے لیے اہل ہے۔`,retired:`بند`,penalty:`−{value} جرمانہ`,obs:`{count} obs`,tokPerMonth:`{count} tok/mo`,rpmLimit:`{count} rpm`,rpdLimit:`{count} rpd`,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}/mo`,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} ctx`,ctxTitle:`سیاق و سباق کی کھڑکی`,copyModelId:`ماڈل آئی ڈی کاپی کریں۔`,showingCount:`{total} ماڈلز کے {shown}`,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":"{total} میں سے {configured} فراہم کنندگان ترتیب دیے گئے","checklistKeyless":"کلید کی ضرورت نہیں","checklistNoKeyTip":"ابھی تک کوئی کلید شامل نہیں کی گئی۔ شامل کرنے کے لیے کلک کریں۔","checklistSignupLink":"اکاؤنٹ بنانے اور کلید حاصل کرنے کے لیے {provider} کھولیں","checklistKeylessTip":"کلید کے بغیر کام کرتا ہے۔","tabQuotaSignals":"کوٹہ سگنلز","tabApiKey":"متحد API کلید","tabAnthropic":"Anthropic","unifiedKey":"آپ کی متحد API کلید","regenerate":"دوبارہ پیدا کرنا","showKey":"دکھائیں۔","hideKey":"چھپائیں","copyKey":"کاپی","copyFullKey":"مکمل کلید کاپی کریں","copiedKey":"کاپی","baseUrl":"بیس URL","endpointChat":"گپ شپ","endpointResponses":"جوابات","endpointEmbeddings":"ایمبیڈنگز","endpointEmbeddingsHint":"model: \\"auto\\" یا ایمبیڈنگز ٹیب سے ایک فیملی","endpointMessages":"پیغامات","endpointMessagesHint":"Anthropic- موافق (Claude)","quickStart":"Quick start","quickStartDesc":"Use auto for your active routing chain, or auto:fast to prioritize speed across enabled models. Replace $YOUR_KEY with your unified API key.","exampleAuto":"Auto mode (use the active chain)","exampleFast":"Fast mode (prioritize speed)","anthropicTitle":"Claude (Anthropic) ماڈلز","anthropicDesc":"اس سرور پر Claude یا Anthropic SDK کلائنٹ کی نشاندہی کریں۔ Anthropic کلائنٹس Claude ماڈل کے نام بھیجتے ہیں — ہر ایک کو آٹو پر نقشہ بنائیں (روٹر ایک مفت ماڈل چنتا ہے) یا کسی مخصوص کو پن کریں۔","anthropicBaseUrl":"بیس URL","anthropicAuth":"تصنیف ہیڈر","anthropicAuto":"آٹو - راؤٹر بہترین ماڈل چنتا ہے۔","anthropicSave":"نقشہ سازی کو محفوظ کریں۔","anthropicSaved":"محفوظ کیا گیا۔","anthropicNote":"Anthropic کلائنٹ اپنے بلٹ ان Claude ماڈل کے نام رکھتے ہیں۔ اوپر کی نقشہ سازی یہ فیصلہ کرتی ہے کہ ہر ایک آپ کے تالاب میں کیسے جاتا ہے۔","familyDefault":"طے شدہ","familyOpus":"اوپس","familySonnet":"سانیٹ","familyHaiku":"ہائیکو","selectPlatform":"ایک فراہم کنندہ کو منتخب کریں۔","addKey":"کلید شامل کریں۔","keyAdded":"کلید شامل کی گئی۔","endpointKeysShareModels":"ایک ہی اینڈ پوائنٹ کی کلیدیں اس کے ماڈلز میں شریک ہوتی ہیں۔","export":"برآمد کریں۔","exportAll":"تمام چابیاں","exportHealthy":"صرف صحت مند","exportKeys":"API کیز برآمد کریں۔","exportFormat":"فارمیٹ","exportHealthyOnly":"صرف صحت مند چابیاں","exportHealthyOnlyDesc":"ان کلیدوں کو خارج کریں جو فی الحال صحت کی جانچ میں ناکام ہو رہی ہیں۔","exportWillExport":"برآمد کریں گے۔","exportKey":"کلید","exportKeys plural":"چابیاں","exporting":"برآمد ہو رہا ہے…","exportDownload":"ڈاؤن لوڈ کریں۔","exportSuccess":"برآمد شدہ {count} چابیاں","adding":"شامل کیا جا رہا ہے…","selectProvider":"ایک فراہم کنندہ کو منتخب کریں…","accountId":"اکاؤنٹ کی شناخت","label":"لیبل","noKeyNeeded":"(کوئی چابی کی ضرورت نہیں)","outboundProxy":"آؤٹ باؤنڈ پراکسی","outboundProxyDescription":"باہر جانے والی ایل ایل ایم کی درخواستوں کو پراکسی کے ذریعے روٹ کریں۔ SOCKS5، HTTP، اور HTTPS کو سپورٹ کرتا ہے۔","proxyUrl":"پراکسی URL","saveProxy":"محفوظ کریں۔","savingProxy":"محفوظ ہو رہا ہے…","proxyLoadFailed":"پراکسی ترتیبات کو لوڈ نہیں کیا جا سکا۔","proxyMode":"Mode","proxyModeForward":"Forward proxy","proxyModeFetchRelay":"Fetch relay","relayToken":"Relay token","relayTokenConfigured":"Configured. Leave unchanged to keep.","relayTokenPlaceholder":"Relay bearer token (optional)","relayHeadersHint":"The relay reads the destination and its own credential from","addCustom":"اپنی مرضی کے مطابق OpenAI- موافق ماڈل شامل کریں۔","addCustomDescription":"کسی بھی OpenAI سے ہم آہنگ اینڈ پوائنٹ پر چیٹ، ایمبیڈنگ، امیج، یا آڈیو ماڈلز کو پوائنٹ کریں۔ API کلید مقامی سرورز کے لیے اختیاری ہے۔","customType":"قسم","customTypeChat":"گپ شپ","customTypeEmbedding":"سرایت کرنا","customTypeImage":"تصویر","customTypeAudio":"آڈیو","customTypeTranscription":"Transcription","customBaseUrl":"بیس URL","customModels":"ماڈلز","customModel":"ماڈل","customDisplayName":"ڈسپلے کا نام","customDisplayNamePerModel":"فی ماڈل","customDisplayNameOptional":"اختیاری","customFamily":"خاندان","customFamilyPlaceholder":"ماڈل آئی ڈی کے لیے ڈیفالٹس","customApiKey":"API کلید","customCapabilities":"صلاحیتیں","addModel":"ماڈل شامل کریں۔","modelAdded":"ماڈل شامل کیا گیا۔","addModels":"{count} ماڈلز شامل کریں۔","addEmbeddingModel":"سرایت شامل کریں۔","addImageModel":"تصویری ماڈل شامل کریں۔","addAudioModel":"آڈیو ماڈل شامل کریں۔","addTranscriptionModel":"Add transcription model","addingCustom":"شامل کیا جا رہا ہے…","discoverModels":"ماڈلز حاصل کریں","probeNow":"اینڈ پوائنٹ کی جانچ کریں","probeConfirm":"زیادہ سے زیادہ 3 ٹیسٹ درخواستیں بھیجیں؟","probeCapabilities":"استدلال: {reasoning} · ٹولز: {tools}","probeCapYes":"ہاں","probeCapNo":"نہیں","probeCapUnknown":"نامعلوم","probeSuccess":"{model} کی جانچ {latency}ms میں مکمل ہوئی","probeFailed":"جانچ ناکام ہوگئی: {reason}","discoverTitle":"اس اینڈ پوائنٹ کے ماڈلز","discoverHint":"رجسٹر کرنے کے لیے ماڈلز منتخب کریں۔ پہلے سے شامل ماڈلز مقفل رہتے ہیں۔","discoverEmpty":"اس اینڈ پوائنٹ نے کوئی ماڈل واپس نہیں کیا۔","discoverAlreadyAdded":"شامل","discoverSelectAll":"سب منتخب کریں","modelsAdded":"{count} ماڈلز شامل کیے گئے","getApiKey":"API کلید حاصل کریں۔","deleteKeyConfirm":"اس کلید کو حذف کریں؟ اسے کالعدم نہیں کیا جا سکتا۔","checkAll":"سب چیک کریں۔","checking":"چیک کیا جا رہا ہے…","editLabel":"لیبل میں ترمیم کریں۔","saveLabel":"لیبل محفوظ کریں۔","unifiedKeyDescBefore":"اسے اپنے OpenAI کے طور پر استعمال کریں۔","unifiedKeyDescAfter":"; یہ اس پراکسی کی درخواستوں کی تصدیق کرتا ہے۔","serverUnreachableBefore":"آن سرور تک نہیں پہنچ سکتا","serverUnreachableAfter":". یقینی بنائیں کہ بیک اینڈ چل رہا ہے۔ 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":"کھلا لوپ بیک کبھی بھی غیر تصدیق شدہ LAN ٹریفک قبول نہیں کرتا۔","ollamaOff":"بند","ollamaLoopback":"لوپ بیک پر کھلا","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":"{total} میں سے {selected} منتخب","allNote":"سب منتخب ہیں — کچھ محفوظ نہیں ہوگا، اور بعد میں کیٹلاگ میں شامل ہونے والے ماڈلز بھی یہی کلید استعمال کریں گے۔","subsetNote":"یہ کلید صرف منتخب ماڈلز تک محدود رہے گی۔ آپ بعد میں کلید کی سطر سے یہ تبدیل کر سکتے ہیں۔","skip":"ابھی نہیں","scopedOne":"کلید 1 ماڈل تک محدود","scopedOther":"کلید {count} ماڈلز تک محدود","allSaved":"Key serves every catalog model"},"cpTitle":"کلائنٹ پروفائلز","cpDesc":"ہر کلائنٹ کے لیے الگ API کلید، جس کا سسٹم پرامپٹ سرور ہمیشہ لاگو کرتا ہے۔","cpEmpty":"ابھی کوئی کلائنٹ پروفائل نہیں۔","cpNameLabel":"نام","cpNamePlaceholder":"مثلاً سپورٹ بوٹ","cpPromptLabel":"سسٹم پرامپٹ (اختیاری)","cpPromptPlaceholder":"ہدایات جو سرور اس کلید سے کی گئی ہر درخواست سے پہلے شامل کرتا ہے۔","cpCreate":"پروفائل بنائیں","cpRotate":"کلید تبدیل کریں","cpKeyOnce":"یہ کلید ابھی کاپی کریں — یہ دوبارہ نہیں دکھائی جائے گی۔","cpEnabledAria":"پروفائل فعال","selectKey":"یہ کلید منتخب کریں۔","bulkSelected":"{count} منتخب","bulkEnable":"سب فعال کریں۔","bulkDisable":"سب غیر فعال کریں۔","bulkDelete":"سب حذف کریں۔","bulkDeleteConfirm":"{count} حذف کریں؟","bulkResult":"{done} اپ ڈیٹ ہوئے؛ {failed} ناکام۔","bulkDeleteResult":"{done} حذف ہوئے؛ {failed} ناکام۔","testProxy":"Test","testingProxy":"Testing…","proxyTestOk":"Proxy works — {ms}ms round trip","proxyTestFail":"Proxy failed: {reason}","editKey":"کلید ترمیم کریں","editPlatformLocked":"بنانے کے بعد فراہم کنندہ اور اینڈ پوائنٹ تبدیل نہیں ہو سکتے۔","editCredentialHint":"موجودہ کلید رکھنے کے لیے خالی چھوڑیں۔","editCredentialPartsRequired":"اکاؤنٹ ID اور API ٹوکن دونوں درج کریں۔","editModels":"ماڈل ترمیم کریں","editModelsHint":"Choose which catalog models this key may serve. Select everything to clear the scope so future catalog models use it too.","editModelsCustomHint":"Choose which registered endpoint models this key may serve. Select everything to clear the scope.","editModelsSync":"Check catalog updates","editModelsSyncing":"Checking…","editModelsSynced":"Model catalog checked","outlookUnavailable":"Unavailable","outlookNoForecasts":"Forecast unavailable. More recent traffic or reliable quota readings are needed.","outlookCoverage":"Forecasts available for {count} of {total} pools.","outlookTraffic":"{count} successful requests through this instance in the last {minutes} minutes.","outlookMinimumTraffic":"An exhaustion forecast needs at least {count} successful requests within {minutes} minutes.","outlookNotReportedHint":"The provider has not reported a usable request balance and limit. Local usage is shown; remaining quota is unavailable.","outlookMissingResetHint":"The provider did not report a valid reset time. Remaining quota cannot support an exhaustion forecast.","outlookConfidenceHint":"This balance is not reliable enough for an exhaustion forecast.","outlookObserved":"Balance observed: {time}","outlookUnavailablePools":"Unavailable quota pools ({count})","outlookTitle":"Quota outlook","outlookInsufficient":"Not enough data","outlookLowBalance":"Low balance","outlookRunningLow":"Running low soon","outlookStale":"Needs fresh data","outlookUnknown":"Unknown","outlookWithinQuota":"Within quota","outlookResetsFirst":"Not before reset","outlookExhausted":"Already exhausted","outlookLastReported":"requests last reported","outlookRequestsLeft":"requests left","outlookNotReported":"Not reported","outlookRate":"Recent rate","outlookRateValue":"{count} req/min","outlookRunsOut":"May run out","outlookStaleHint":"This balance is old or its window has expired. A fresh provider reading is needed.","outlookError":"Could not load quota forecasts. Raw observations are still available below.","outlookRetry":"Retry","outlookAttention":"Quota pools needing attention: {count}","outlookNoWarnings":"No forecast warnings. Pools with insufficient data may still be limited.","outlookHint":"Rates count successful requests through this instance only, not usage elsewhere. Forecasts require recent provider balances and reported resets. Warnings appear below 20% remaining or when quota may run out within two hours, before reset.","outlookRaw":"Raw quota observations","addCustomModel":"کسٹم ماڈل شامل کریں","modelId":"ماڈل ID","modelIdRequired":"ماڈل ID درکار ہے","modelDisplayName":"ظاہری نام","modelContextWindow":"سیاق ونڈو (ٹوکنز)","modelRateLimits":"شرح کی حدود (اختیاری)","modelSupportsTools":"ٹولز کالنگ کی معاونت","modelSupportsToolsHint":"اگر یہ ماڈل فنکشنز یا ٹولز کال کر سکتا ہے تو فعال کریں","modelSupportsVision":"ویژن کی معاونت","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:"آپ نے اصل میں گزشتہ {range} میں ${actual} کی بچت کی۔ اسی ٹوکن کی قیمت ادا شدہ APIs پر ہوگی، فی ماڈل کی قیمت۔ دکھایا گیا نمبر آپ کی رفتار کو ڈیٹا کے آخری {span} سے لے کر پورے 30 دنوں تک پیش کرتا ہے۔",savingsHintExact:"آپ نے اصل میں گزشتہ {range} میں ${actual} کی بچت کی۔ اسی ٹوکن کی قیمت ادا شدہ APIs پر ہوگی، فی ماڈل کی قیمت۔ دکھایا گیا نمبر آپ کا حقیقی 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:`Tok/s`,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:`زیادہ سے زیادہ {max} بفر شدہ اندراجات میں سے {count} دکھائے جا رہے ہیں`,emptyTitle:`ابھی تک کوئی لاگ اندراج نہیں`,emptyDescription:`سرور جیسے جیسے لکھتا ہے، اندراجات یہاں ظاہر ہوتے جائیں گے۔ اگر آپ کو آؤٹ پٹ کی توقع تھی تو لیول، فراہم کنندہ یا تلاش کے فلٹرز کا دائرہ بڑھائیں۔`,noLevelsTitle:`کوئی لیول منتخب نہیں`,noLevelsDescription:`لاگ آؤٹ پٹ دیکھنے کے لیے کم از کم ایک لیول آن کریں۔`,loadFailed:`سرور لاگ لوڈ نہیں ہو سکا۔`},playground:{title:`کھیل کا میدان`,description:`روٹر کے ذریعے چیٹ کی تکمیل بھیجیں اور دیکھیں کہ کون سا فراہم کنندہ اسے پیش کرتا ہے۔`,autoModel:`آٹو (فال بیک چین)`,fusionModel:`فیوژن (ملٹی ماڈل ترکیب)`,selectModel:`ماڈل منتخب کریں۔`,searchModels:`ماڈلز تلاش کریں…`,noModelsFound:`کوئی ماڈل نہیں ملا`,send:`بھیجیں۔`,sending:`بھیج رہا ہے…`,clear:`صاف`,inputPlaceholder:`ایک پیغام ٹائپ کریں… (بھیجنے کے لیے ⏎، نئی لائن کے لیے ⇧⏎)`,emptyTitle:`شروع کرنے کے لیے ایک پیغام بھیجیں۔`,emptyDescription:`{model} استعمال کرنا۔ اوپر والے سلیکٹر میں ماڈلز کو سوئچ کریں۔`,noModels:`ابھی تک کوئی ماڈل نہیں۔ اس فہرست کو آباد کرنے کے لیے کیز کے صفحہ پر ایک API کلید شامل کریں۔`,copyReply:`جواب کاپی کریں۔`,fallback:`فال بیک`,fallbacks:`فال بیکس`,fusionPanel:`پینل`,fusionJudge:`جج`,fusionTrace:`{count} ماڈل کے جوابات`,fusionFailed:`کوئی جواب نہیں`,fusionJudgeSynth:`حتمی جواب کی ترکیب کی۔`,errorPrefix:`خرابی:`,systemPromptLabel:`سسٹم پرامپٹ`,systemPromptPlaceholder:`اختیاری آپ کی چیٹ سے پہلے سسٹم پیغام کے طور پر بھیجا گیا۔`,showSettings:`ترتیبات دکھائیں`,hideSettings:`ترتیبات چھپائیں`,samplingHeading:`سیمپلنگ`,samplingHelp:`بند ہونے پر فراہم کرنے والے کا اپنا طے شدہ اطلاق ہوتا ہے۔ صرف وہی کنٹرولز بھیجے جاتے ہیں جو آپ آن کرتے ہیں۔`,samplingDefault:`طے شدہ`,temperature:`درجہ حرارت`,topP:`Top P`,maxTokens:`زیادہ سے زیادہ ٹوکنز`,errorTitle:`درخواست ناکام ہوگئی`,attach:`فائلیں منسلک کریں۔`,attachTooMany:`آپ فی پیغام زیادہ سے زیادہ {count} فائلیں منسلک کر سکتے ہیں۔`,attachTooLarge:`{name} بہت بڑی ہے۔ حد {max} ہے۔`,attachUnsupported:`{name} سپورٹڈ نہیں ہے۔ تصاویر (PNG، JPEG، WebP، GIF) یا ٹیکسٹ فائلیں (TXT، MD، CSV، JSON، LOG) منسلک کریں۔`,attachFailed:`{name} کو پڑھا نہیں جا سکا۔`,noVisionBadge:`تصاویر نہیں`,visionWarning:`{model} تصاویر قبول نہیں کرتا۔ کوئی وژن ماڈل یا آٹو منتخب کریں۔`,dictate:`بول کر لکھیں`,dictationStop:`ریکارڈنگ روکیں`,dictationTranscribing:`تحریر ہو رہی ہے…`,dictationUnavailable:`بول کر لکھنے کے لیے آڈیو ماڈلز کے فراہم کنندگان شامل کریں۔`,dictationModel:`املا ماڈل`,dictationFailed:`تحریر ناکام: {reason}`,artifactOpen:`پیش منظر کھولیں`,artifactPreview:`پیش منظر`,artifactCode:`کوڈ`,artifactClose:`پیش منظر بند کریں`,artifactDownload:`ڈاؤن لوڈ`,artifactReload:`پیش منظر دوبارہ لوڈ کریں`,artifactHtml:`HTML صفحہ`,artifactSvg:`SVG تصویر`,artifactLines:`لائنیں`,artifactResize:`پیش منظر کا سائز بدلیں`},playgroundSessions:{heading:`گفتگوئیں`,newConversation:`نئی گفتگو`,showSidebar:`گفتگوئیں دکھائیں`,hideSidebar:`گفتگوئیں چھپائیں`,empty:`ابھی تک کوئی محفوظ گفتگو نہیں۔`,untitled:`بلا عنوان گفتگو`,rename:`نام تبدیل کریں`,renamePlaceholder:`گفتگو کا نام`,messageCount:`{count} پیغامات`,justNow:`ابھی ابھی`,minutesAgo:`{count} منٹ پہلے`,hoursAgo:`{count} گھنٹے پہلے`,daysAgo:`{count} دن پہلے`,loadFailed:`وہ گفتگو نہیں کھل سکی۔`,renameFailed:`اس گفتگو کا نام تبدیل نہیں ہو سکا۔`,deleteFailed:`وہ گفتگو حذف نہیں ہو سکی۔`,actions:`گفتگو کے اعمال`,newChat:`نئی چیٹ`},embeddings:{title:`ماڈلز`,description:`ایمبیڈنگز صرف ایک خاندان کے اندر ناکام ہو جاتی ہیں: وہی ماڈل جو کسی دوسرے فراہم کنندہ کے ذریعے پیش کیا جاتا ہے۔ مختلف ماڈلز کے ویکٹر غیر موافق ہوتے ہیں، اس لیے روٹر کبھی بھی آپ کے ماڈلز کو تبدیل نہیں کرتا ہے۔`,defaultBadge:`ڈیفالٹ · آٹو`,makeDefault:`پہلے سے طے شدہ بنائیں`,moveUp:`اوپر بڑھیں۔`,moveDown:`نیچے کی طرف بڑھیں۔`,usageToday:`{count} آج کی ضرورت ہے۔`,usageMonth:`اس مہینے {count} ٹوک`,autoDescription:`model: "auto" POST /v1/embeddings پر ڈیفالٹ فیملی کی طرف جاتا ہے۔ خاندان کا نام (یا فراہم کنندہ ماڈل آئی ڈی) اس خاندان کو پن کرتا ہے؛ اس کے اندر فراہم کرنے والوں کو ترتیب سے آزمایا جاتا ہے۔`,unsavedChanges:`غیر محفوظ شدہ تبدیلیاں`,saveChanges:`تبدیلیاں محفوظ کریں۔`,savingChanges:`محفوظ ہو رہا ہے…`,tokMax:`{tokens} ٹوک زیادہ سے زیادہ`,emptyTitle:`ابھی تک کوئی سرایت کرنے والا ماڈل نہیں ہے۔`,emptyDesc:`سرایت کرنے والے خاندان یہاں ظاہر ہوتے ہیں جب آپ ایک فراہم کنندہ کلید شامل کرتے ہیں جو سرایت کرنے کو سپورٹ کرتی ہے۔`,dragToReorder:`فراہم کنندہ کو دوبارہ ترتیب دینے کے لیے گھسیٹیں۔`},fusion:{title:`فیوژن`,description:`ماڈلز کا ایک پینل متوازی جواب دیتا ہے، پھر ایک جج ایک مضبوط جواب کی ترکیب کرتا ہے۔ ماڈل "فیوژن" کے ساتھ API کال کرکے اسے استعمال کریں۔`,panelSource:`پینل کا ذریعہ`,panelSourceHelp:`پینل ماڈل کہاں سے آتے ہیں جب کوئی درخواست اس کی اپنی وضاحت نہیں کرتی ہے۔`,mode:{auto:`آٹو (فال بیک چین)`,autoHelp:`اپنی فال بیک چین سے ماڈلز کا ایک متنوع سیٹ چنیں، جو آپ کی فعال روٹنگ حکمت عملی کے مطابق درجہ بندی کرتا ہے۔`,explicit:`واضح پینل`,explicitHelp:`ہمیشہ اپنے نیچے منتخب کردہ مخصوص ماڈلز کا استعمال کریں۔`},panelModels:`پینل ماڈلز`,selectedCount:`{max} کا {count} منتخب کیا گیا۔`,noModels:`ابھی تک کوئی ماڈل منسلک نہیں ہیں۔ ایک API کلید شامل کریں، پھر فال بیک چین میں ماڈلز کو فعال کریں۔`,panelSize:`پینل کا سائز`,panelSizeHelp:`کتنے متنوع ماڈلز کو خود بخود چننا ہے (1–{max})۔`,judge:`جج ماڈل`,judgeHelp:`وہ ماڈل جو پینل کے جوابات کو ایک میں ترکیب کرتا ہے۔ آٹو آپ کے اعلی درجے کا دستیاب ماڈل استعمال کرتا ہے۔`,judgeAuto:`آٹو (سب سے اوپر درجہ بندی دستیاب)`,strategy:`حکمت عملی`,strategySynthesize:`Synthesize — پینل کو ایک جواب میں ملا دیں۔`,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} of {total}`,step1Title:`فراہم کنندہ کلید شامل کریں۔`,step1Desc:`کم از کم ایک فراہم کنندہ اکاؤنٹ سے جڑیں۔ مفت چابیاں کام کرتی ہیں۔`,step1Cta:`چابیاں شامل کریں۔`,step2Title:`ٹیسٹ کی درخواست بھیجیں۔`,step2Desc:`کھیل کے میدان میں کوئی بھی ماڈل چنیں اور ہیلو کہیں۔`,step2Cta:`کھلے کھیل کا میدان`,step3Title:`اپنی ایپ کو مربوط کریں۔`,step3Desc:`اپنی متحد API کلید کو کسی بھی OpenAI سے ہم آہنگ کلائنٹ کے ساتھ استعمال کریں۔`,copyKey:`API کلید کاپی کریں۔`,copyUrl:`بیس URL کاپی کریں۔`,copiedKey:`API کلید کلپ بورڈ پر کاپی ہو گئی۔`,copiedUrl:`بیس URL کلپ بورڈ پر کاپی ہو گیا۔`},palette:{title:`کمانڈ پیلیٹ`,placeholder:`تلاش کے صفحات، ماڈل، اعمال…`,empty:`کوئی نتیجہ نہیں نکلا۔`,groupPages:`صفحات`,groupActions:`اعمال`,groupModels:`ماڈلز`,toggleTheme:`ڈارک موڈ کو ٹوگل کریں۔`},validation:{required:`درکار ہے۔`,url:`http:// یا https:// سے شروع ہونے والا ایک درست URL درج کریں`,email:`ایک درست ای میل ایڈریس درج کریں۔`,passwordMin:`کم از کم {min} حروف`},agents:{title:`کوڈنگ ایجنٹس`,description:`کوڈنگ ٹولز کو ایک ہی مفت ماڈل گیٹ وے سے جوڑیں، تیار کردہ اور بیک اپ محفوظ کنفیگریشن کے ساتھ۔`,apiKey:`API کلید`,quickstartTitle:`فوری آغاز`,quickstart:`تیز ترین راستہ: لائیو کیٹلاگ سے Claude Code کنفیگر کریں۔`,currentKey:`موجودہ متحد کلید:`,seenRecently:`حال ہی میں دیکھا گیا`,setupLabel:`خودکار سیٹ اپ`,setupHint:`اس ٹول کی کنفیگ فائل آپ کے لیے لکھتا ہے، جو اس گیٹ وے کی طرف اشارہ کرتی ہے۔`,setupGuideHint:`اس ٹول کے سیٹ اپ مراحل دکھاتا ہے؛ کوئی فائل نہیں لکھی جاتی۔`,manualLabel:`دستی کنکشن`,manualHint:`ٹول کی اپنی سیٹنگز میں درج کرنے کے لیے بیس URL اور کلید۔`,endpoint:`اینڈ پوائنٹ`,documentation:`دستاویزات`,descriptions:{claude:`Anthropic's terminal agent: it plans, edits files, and runs commands in your repo.`,codex:`OpenAI's terminal agent, which runs your task in a local sandbox first.`,cline:`A VS Code extension that asks you to approve every edit and command.`,continue:`A VS Code and JetBrains extension for inline autocomplete and chat while you type.`,aider:`A command-line pair programmer that turns each change into its own git commit.`,opencode:`A provider-agnostic terminal agent with a full-screen text interface.`,goose:`Block's local agent, extended with MCP servers to reach past your code.`,qwen:`A Gemini CLI fork tuned for Qwen models and large repositories.`,roo:`A VS Code extension with switchable modes: architect, coder, debugger.`,kilo:`A VS Code extension merging Roo and Cline, with an orchestrator that splits up work.`,crush:`Charm's terminal agent, written in Go, with one session per project.`,dsh:`DeepSeek's harness, which keeps every provider as a route you can switch between.`,mimo:`Xiaomi's terminal agent, an OpenCode fork that takes any OpenAI-compatible provider.`,cursor:`The AI-first editor; it calls through Cursor's cloud, so it needs a public URL.`,generic:`Anything else that speaks the OpenAI API, set up by hand from a base URL and key.`,atomcode:`AtomGit's terminal agent, written in Rust, that takes any OpenAI-compatible endpoint.`,openclaw:`ایک ہمیشہ فعال ذاتی معاون جو آپ کی اپنی مشین سے WhatsApp، Telegram، Discord اور دیگر پر جواب دیتا ہے۔`,hermes:`Nous Research کا خود کو بہتر بنانے والا ایجنٹ، مستقل میموری اور مہارتوں کے ساتھ، ٹرمینل میں یا چیٹ ایپس پر۔`,pi:`ایک سادہ ٹرمینل ایجنٹ، جسے آپ اپنی ایکسٹینشنز، مہارتوں اور پرامپٹ ٹیمپلیٹس سے ڈھالتے ہیں۔`}},update:{available:`New version available`,whatsNew:`What's new in v{version}`,publishedOn:`Published {date}`,noNotes:`No release notes were published for this version.`,openRelease:`Open release page`,dismissVersion:`Dismiss this version`,dismiss:`Dismiss`},freeTier:{poolsToggle:`Free-tier pools ({count})`,poolsToggleBare:`Free-tier pools`,summary:`{pools} pools · {budget} tokens/mo counted once per pool · {credits} credits-based · {unpublished} unpublished`,pool:`Pool`,models:`Models`,budget:`Monthly budget`,kind:`Kind`,kindDocumented:`Documented`,kindCredits:`Credits`,kindUnpublished:`Unpublished`,remaining:`Remaining`,resetAt:`Resets at`,disabledModels:`({count} off)`,metricTokens:`tokens`,metricRequests:`requests`,metricCredits:`credits`,metricNeurons:`neurons`,metricOther:`units`,empty:`No enabled models with free-tier budget data.`,poolLabel:`{platform} · shared {scope} pool`,poolLabelBare:`{platform} · shared pool`,poolModels:`{count} models`,poolBudget:`{budget}/mo`,poolBudgetTitle:`One monthly allowance for the whole pool, scaled by the {count} usable keys on this platform. Every model listed under it draws from the same budget.`,poolNoQuota:`no published quota`,poolResets:`resets {time}`,independentBudgets:`independent budgets`},chains:{title:`Fallback chains`,description:`Named chains, each callable as auto:<name> in /v1/models.`,count:`{count} chains`,active:`Active`,default:`Default`,activate:`Activate`,activateHint:`Make this the chain the table below edits and the one auto routes through`,deleteHint:`Delete this chain`,deleteConfirm:`Delete chain "{name}"?`,create:`Create`,createPlaceholder:`Chain name`,createFailed:`Could not create the chain.`,nameRules:`Up to 20 characters: letters, digits, hyphens and underscores.`,startEmpty:`Start empty`,startEmptyHint:`Create the chain with no models in it, and keep new catalog models out of it. Unchecked, it starts as a copy of the default chain.`,curated:`Curated`,curatedHint:`New catalog models are not added to this chain automatically.`,renameHint:`اس چین کا نام تبدیل کریں`,renameConfirm:`چین "{oldName}" کا نام "{name}" کریں؟ auto:{oldName} کال کرنے والے کلائنٹس کو auto:{name} پر جانا ہوگا۔`,renamePlaceholder:`نیا چین نام`,renameFailed:`چین کا نام تبدیل نہیں ہو سکا۔`},notifications:{catalogAdded:`{count} new models added from catalog`,catalogAddedFrom:`{count} new models added for {provider}`,catalogRemoved:`{count} models removed from catalog`,catalogRemovedFrom:`{count} models removed for {provider}`,catalogUpdated:`{count} models updated from latest catalog`,catalogUpdatedFrom:`{count} models updated for {provider}`,discoverAdded:`{count} new models from provider {provider}`,discoverRemoved:`{count} models removed from provider {provider}`,degraded:`Degraded mode active — only {healthy}/{total} providers healthy ({pct}%)`,updateAvailable:`Update available: v{version}`},routingStrip:{canceled:`Canceled`,title:`Live routing`,mode:`Mode`,processing:`Processing…`,idle:`Waiting for a request…`,failed:`Failed`,afterAttempts:`Success after {n} attempts`,activeCount:`{n} active`}};export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={nav:{models:`Modellar`,playground:`O'yin maydonchasi`,keys:`Kalitlar`,analytics:`Analitika`,premium:`Premium`,upgrade:`Yangilash`,settings:`Sozlamalar`,signOut:`Chiqish`,openMenu:`Navigatsiya menyusini oching`,switchLight:`Engil mavzuga oʻtish`,switchDark:`Qorongʻi mavzuga oʻtish`,switchToChinese:`Xitoy tiliga o'tish`,switchToEnglish:`Ingliz tiliga o'tish`,modelsMenu:`Model turlarini ko'rib chiqing`,agents:`Agentlar`,logs:`Jurnal`,analyticsMenu:`Analitika sahifalari`,notifications:`Notifications`,noNotifications:`No notifications yet`},auth:{createYourAccount:`Hisob qaydnomangizni yarating`,signIn:`Tizimga kiring`,email:`Elektron pochta`,password:`Parol`,emailPlaceholder:`you@example.com`,passwordPlaceholderSetup:`kamida 8 ta belgi`,passwordPlaceholderLogin:`parolingiz`,setupDescription:`Ushbu boshqaruv panelini himoya qiladigan elektron pochta va parolni o'rnating.`,loginDescription:`Kalitlar, marshrutlash va tahlillarni boshqarish uchun tizimga kiring.`,createAccount:`Hisob yaratish`,creating:`Yaratilmoqda…`,signingIn:`Kirish…`,loading:`Yuklanmoqda…`,newPasswordAutoComplete:`yangi parol`,currentPasswordAutoComplete:`joriy parol`,serverUnreachableBefore:`Serverga ulanib boʻlmadi. Backend ishlayotganligiga ishonch hosil qiling (`,serverUnreachableAfter:`).`,setupCode:`Sozlash kodi`,setupCodePlaceholder:`server jurnallaridan olingan kod`,setupCodeHint:`Boshqa qurilmadan sozlash uchun ishga tushirilganda server jurnallarida chop etilgan bir martalik kod kerak bo'ladi.`,changePassword:`Parolni o'zgartirish`,changeEmail:`E-pochtani o'zgartirish`,forgotPassword:`Parolni unutdingizmi?`,currentPassword:`Joriy parol`,newPassword:`Yangi parol`,newEmail:`Yangi e-pochta`,resetCode:`Tiklash kodi`,resetCodePlaceholder:`server jurnallaridagi kod`,resetCodeHint:`Kod server jurnalida. U hech qachon elektron pochta orqali yuborilmaydi.`,forgotPasswordDescription:`Tiklash kodini yaratish uchun quyidagi tugmani bosing. Kod server jurnaliga yoziladi, hech qachon elektron pochta orqali yuborilmaydi. Yangi parol o'rnatish uchun shu yerga kiriting.`,requestResetCode:`Kodni yuborish`,requestingResetCode:`Yuborilmoqda…`,resetPassword:`Parolni tiklash`,resettingPassword:`Tiklanmoqda…`,changingPassword:`O'zgartirilmoqda…`,changingEmail:`O'zgartirilmoqda…`,backToLogin:`Kirishga qaytish`,passwordChanged:`Parol muvaffaqiyatli o'zgartirildi.`,emailChanged:`E-pochta muvaffaqiyatli o'zgartirildi.`,passwordReset:`Parol tiklandi. Iltimos, kiring.`,resetCodeDockerHint:`Docker ichida ishlayaptimi? Kod konteyner jurnalida: docker logs <container>.`,desktopSessionFailed:`Boshqaruv paneli lokal serverga kira olmadi. SRouter dasturini yopib, qayta oching.`},common:{save:`Saqlash`,saving:`Saqlanmoqda…`,cancel:`Bekor qilish`,discard:`Bekor qilish`,delete:`Oʻchirish`,confirm:`Tasdiqlang`,copy:`Nusxalash`,copied:`Ko‘chirildi`,copyFailed:`Nusxalab bo‘lmadi — matnni tanlab, qo‘lda nusxalang`,show:`Ko'rsatish`,hide:`Yashirish`,apply:`Murojaat qiling`,applied:`Qo'llaniladi`,applying:`Murojaat qilinmoqda…`,active:`Faol`,inactive:`Faol emas`,never:`hech qachon`,loading:`Yuklanmoqda…`,error:`Xato`,noData:`Hozircha maʼlumot yoʻq`,unsavedChanges:`Saqlanmagan o'zgarishlar`,saveChanges:`O'zgarishlarni saqlang`,remove:`O'chirish`,unknownError:`Noma'lum xato`,model:`Model`,provider:`Provayder`,success:`Muvaffaqiyat`,failures:`Muvaffaqiyatsizliklar`,dismiss:`Rad etish`,status:`Status`},settings:{title:`Sozlamalar`,language:`Til`,theme:`Mavzu`,themeSystem:`Tizim`,themeLight:`Yorugʻ`,themeDark:`Qorong'i`,searchLanguage:`Tillarni qidirish…`,noLanguages:`Hech qanday til topilmadi`,sections:`Sozlamalar bo'limlari`,sectionGeneral:`Umumiy`,sectionCompression:`Siqish`,sectionAdvanced:`Kengaytirilgan`,sectionPreview:`Oldindan ko'rish`,generalDescription:`Ushbu boshqaruv panelining tili va ko'rinishi.`,advancedDescription:`Siqish jarayoni uchun chegaralar va xavfsizlik kalitlari.`,compressionTitle:`Promptni siqish`,compressionDescription:`Kod, xatolar, yo'llar, raqamlar va vosita ta'riflarini saqlagan holda marshrutlashdan oldin so'rov hajmini kamaytiring.`,compressionHelp:`Har bir so'rovni provayderga yuborishdan oldin kamroq token ishlatishi uchun qayta yozadi. Kod, xatolar, fayl yo'llari va raqamlar himoyalangan, ularga zarar yetkazadigan har qanday qayta yozish bekor qilinadi.`,compressionMode:`Rejim`,compressionModeHelp:`O'chirilganda so'rovlar o'zgarishsiz yuboriladi. Yo'qotishsiz faqat takrorlangan va ortiqcha matnni olib tashlaydi. Standart bundan tashqari vosita chiqishini qisqartiradi. Agressiv qo'shimcha ravishda eski navbatlarni siqadi.`,compressionOff:`O'chirilgan`,compressionLossless:`Yo'qotishsiz`,compressionStandard:`Standart`,compressionAggressive:`Agressiv`,compressionLossy:`Yo'qotishli`,compressionEngines:`Mexanizmlar`,compressionEnginesHelp:`Har bir mexanizm bitta qayta yozish bosqichi. Qaysi mexanizmlar ishlashini rejim belgilaydi; bu yerda birini o'chirish uni barcha rejimlardan chiqarib tashlaydi.`,engineDedup:`Takrorlanuvchi bloklar`,engineDedupHelp:`Suhbatda avval uchragan matn blokini unga qisqa havola bilan almashtiradi.`,engineLite:`Bo'shliqlarni tozalash`,engineLiteHelp:`Satr oxiridagi bo'shliqlarni qirqadi, takrorlanuvchi bo'sh satrlarni birlashtiradi va takrorlangan tizim xabarlarini olib tashlaydi.`,engineReadLifecycle:`Eskirgan fayl o'qishlari`,engineReadLifecycleHelp:`Xuddi shu fayl keyinroq qayta o'qilgach yoki tahrirlangach, oldingi fayl o'qishini qisqa izoh bilan almashtiradi.`,engineToolfilter:`Vosita chiqishi filtri`,engineToolfilterHelp:`Qurish, test va o'rnatish kabi buyruq va vosita chiqishlarini qisqartiradi. Xato va stek izi satrlari doim saqlanadi.`,engineJsoncompact:`JSON jadvallari`,engineJsoncompactHelp:`Bir xil maydonlarga ega uzun JSON massivlarini ixcham jadval sifatida qayta kodlaydi. Qaytarib bo'ladi, shuning uchun hech narsa yo'qolmaydi.`,engineRelevance:`Bog'liqlik filtri`,engineRelevanceHelp:`Xabar o'z hajm chegarasidan oshganda, oxirgi xabarga eng kam aloqador gaplarni olib tashlaydi.`,engineAging:`Eski navbatlar`,engineAgingHelp:`So'nggi bir nechtasidan oldingi navbatlarni yo'llar, xatolar va qarorlarni saqlaydigan qisqa xulosaga siqadi.`,engineHardBudget:`Token chegarasi`,engineHardBudgetHelp:`So'rov token maqsadiga sig'guncha eng kam qimmatli satrlarni olib tashlaydi.`,compressionAutoTrigger:`Taxminiy tokenlardan oshganda avtomatik ishga tushirish`,compressionAutoTriggerHelp:`Taxminan shu tokenlar sonidan oshgan so'rovlar avtomatik ravishda Agressiv rejimga o'tadi. O'chirish uchun bo'sh qoldiring.`,compressionPrefixFreeze:`Takrorlanuvchi prompt prefikslarini muzlatish`,compressionPrefixFreezeHelp:`Bir xil matn uch marta uchraganidan so'ng tizim promptini o'zgarishsiz qoldiradi, shunda provayder tomonidagi prompt keshlash ishlashda davom etadi.`,compressionTrustProjectFilters:`Loyiha filtri fayllariga ishonish`,compressionTrustProjectFiltersHelp:`Vosita chiqishi filtrlarini ish katalogidan ham yuklaydi. Sukut bo'yicha o'chirilgan, chunki repozitoriy undan modeldan chiqishni yashirish uchun foydalanishi mumkin.`,compressionStats:`Tejalgan hajm`,compressionEstimatedTokensSaved:`Taxminiy tejalgan tokenlar`,compressionPreview:`Jonli oldindan ko'rish`,compressionPreviewDescription:`So'rov tanasini jarayondan o'tkazing va provayder nimani olishini ko'ring.`,compressionPreviewPlaceholder:`So'rov JSON yoki oddiy matnni joylashtiring`,compressionRunPreview:`Oldindan ko'rishni ishga tushirish`,updatesTitle:`Yangilanishlar`,checkForUpdates:`Yangilanishlarni tekshiring`,lastChecked:`Oxirgi tekshirilgan: {when}`,currentVersion:`Joriy build:`,updateAvailable:`Yangilanish mavjud`,changelog:`Nimalar o'zgardi`,upToDate:`Eng so'nggi versiya`,buildAhead:`Bu build rasmiy main tarmog'idan oldinda.`,buildDiverged:`Bu build rasmiy main tarmog'idan ajralib ketgan.`,buildUnknown:`Bu maxsus buildni rasmiy main tarmog'i bilan taqqoslab bo'lmaydi.`,notGitInstall:`Bu o'rnatishda commit ma'lumoti mavjud emas.`,checkFailed:`Yangilanishlarni tekshirib bo'lmadi.`,contactsGithub:`Tekshiruvlar qo'lda bajariladi va GitHub bilan bog'lanadi.`,autoUpdateCheck:`Avtomatik yangilanish tekshiruvi`,autoUpdateCheckHelp:`Kuniga bir marta yangi nashr uchun GitHub'ni tekshiradi va eslatma ko'rsatadi. Sukut bo'yicha o'chirilgan.`,openReleases:`GitHub relizlarini ochish`,restartAfterUpdate:`Build tugagach, SRouter'ni qayta ishga tushiring.`,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:`Modellar`,chatModelsTab:`Chat modellari`,fusionTab:`Fusion`,embeddingsTab:`O'rnatishlar`,imageTab:`Rasm`,videoTab:`Video`,audioTab:`Audio`,imageDesc:`Matnni tasvirga yaratish modellari.`,videoDesc:`Text-to-video generation models.`,audioDesc:`Matndan nutqqa va nutqdan matnga modellar.`,mediaHint:`orqali yaratish`,mediaEmpty:`Hozircha modellar yoʻq. Ular katalogdan sinxronlashtiriladi.`,ttsHeading:`Matnni nutqqa`,sttHeading:`Nutqdan matnga`,sttHint:`orqali transkripsiya qilish`,sttEmpty:`Nutqdan matnga o‘tish modellari hali yo‘q. Ular katalogdan sinxronlashtiriladi.`,newBadge:`Yangi`,monthlyTokenBudget:`Oylik token byudjeti`,remaining:`qolgan`,used:`ishlatilgan`,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:`ning`,showAllModels:`Barcha {count} modellarini ko'rsatish`,showLess:`Kamroq ko'rsatish`,vision:`Vizyon`,visionTitle:`Rasm kiritishni qabul qiladi`,tools:`Asboblar`,toolsTitle:`Strukturaviy asboblar qo'ng'iroqlarini chiqaradi, shuning uchun u asboblar so'rovlari uchun javob beradi`,retired:`To'xtatilgan`,penalty:`−{value} jarima`,obs:`{count} obs`,tokPerMonth:`{count} tok/oy`,rpmLimit:`{count} aylanish tezligi`,rpdLimit:`{count} rpd`,noKey:`kalit yo'q`,dragToReorder:`Qayta tartiblash uchun torting`,dragToReorderGroup:`Modelni qayta tartiblash uchun torting`,moveToRank:`Rangga o‘tish`,providerCount:`{count} provayderlari`,servedBy:`{providers} tomonidan xizmat qiladi`,viewProviders:`Provayderlarni ko'rish`,backToModels:`Modellarga qaytish`,providersHeading:`Ushbu modelga xizmat ko'rsatuvchi provayderlar`,codeSnippetHeading:`Ushbu modeldan foydalaning`,modelNotFound:`Ushbu model mavjud emas yoki uning sozlangan provayderlari yo'q.`,providerIdsHeading:`Provayder modeli identifikatorlari`,providerIdsHint:`Har bir provayderda uzilish uchun birlashtirilgan model identifikatorini yoki bitta provayderni mahkamlash uchun provayderga xos identifikatorni yuboring.`,copyModelName:`Model nomini nusxalash`,settingsHeading:`Provayder sozlamalari`,settingsHint:`Katalog modellariga mahalliy tahrirlar katalog sinxronlashlarida saqlanadi. O'chirilgan katalog modellari konfiguratsiya orqali ularni qayta qo'shmaguningizcha o'chiriladi.`,catalogModel:`katalog`,customModel:`odatiy`,discoveredModel:`aniqlangan`,localOverride:`mahalliy bekor qilish`,displayName:`Ko'rsatilgan nom`,sizeLabel:`Qobiliyat darajasi`,sizeLabelHint:`Frontier/Large/Medium/Small intellekt o'qini belgilaydi: yuqoriroq daraja doimo pastrog'idan ustun turadi, bir daraja ichida esa intellekt reytingi ballni o'zgartirishda davom etadi. Tanilgan darajasi bo'lmagan model bu o'qda eng past ballni oladi, ammo intellekt uchta o'qdan faqat bittasi — ishonchliligi va tezligi yaxshi bo'lsa, u baribir tanlanishi mumkin.`,sizeLabelNone:`Yo'q (eng past intellekt bali)`,contextWindow:`Kontekst`,inFallback:`Zanjirda`,saveModelSettings:`Model sozlamalarini saqlang`,aggregateBudget:`{count}/oy`,aggregateBudgetTitle:`Ushbu model provayderlarida oyiga jami bepul tokenlar`,rateRpm:`{count} RPM`,rateRpd:`{count} RPD`,rateTitle:`Cheklangan tarif - oylik token byudjeti yo'q`,rateLimitUsage:`{kind} {used}/{limit}`,rateLimitUsageTitle:`Vaqt oynasidagi tezlik cheklovi sarfi (ishlatilgan / chek), eng ko‘p zaxirasi bor provayder bo‘yicha`,splitOut:`Bu nusxani birlashtirmang`,splitOutHint:`Ushbu provayderning nusxasini birlashtirilgan modelga birlashtirish o'rniga o'zining alohida yozuvini bering. Siz uni nusxaning shaxsiy sahifasidan birlashtira olasiz.`,splitUndo:`Orqaga birlashing`,splitUndoHint:`Bu nusxa uning yagona modelidan alohida saqlanadi. Barcha provayderlarda qayta ishlamay qolishi uchun uni qayta birlashtiring.`,splitBadge:`alohida saqlanadi`,noData:`ma'lumotlar yo'q`,noDataTitle:`Hozircha hech qanday so‘rov qayd etilmagan — bu provayder uchun ishonchlilik va tezlik o‘lchanmagan.`,bestOfN:`eng yaxshi {count}`,perProviderScores:`Har bir provayder ballari: {list}`,columnModel:`Model`,columnOn:`Yoniq`,noModelsBefore:`Hech qanday model mavjud emas. ustiga API tugmachalarini qo'shing`,keysPageLink:`Kalitlar sahifasi`,noModelsAfter:`birinchi.`,hiddenNoKeys:`Yashirin (kalitlarsiz): {platforms}`,searchPlaceholder:`Modellar yoki provayderlarni qidiring…`,clearSearch:`Qidiruvni tozalash`,ctxAny:`Har qanday kontekst`,ctxBadge:`{size} ctx`,ctxTitle:`Kontekst oynasi`,copyModelId:`Model identifikatoridan nusxa oling`,showingCount:`{total} modellarining {shown}`,clearFilters:`Filtrlarni tozalash`,noMatches:`Filtrlaringizga mos modellar topilmadi.`,noModelsTitle:`Hech qanday model sozlanmagan`,intelligenceRank:`Intellekt`,speedRank:`Tezlik`,rankHint:`Katalogdagi reyting — 1 eng yaxshisi.`,limitRpm:`RPM`,limitRpd:`RPD`,limitTpm:`TPM`,limitTpd:`TPD`,limitRpmHint:`Daqiqasiga soʻrovlar. Cheklov boʻlmasligi uchun boʻsh qoldiring.`,limitRpdHint:`Kuniga soʻrovlar. Cheklov boʻlmasligi uchun boʻsh qoldiring.`,limitTpmHint:`Daqiqasiga tokenlar. Cheklov boʻlmasligi uchun boʻsh qoldiring.`,limitTpdHint:`Kuniga tokenlar. Cheklov boʻlmasligi uchun boʻsh qoldiring.`,usageThisMonth:`Oylik foydalanish`,usageEmpty:`Bu oyda hali so'rovlar yo'q.`,usageRequestsMonth:`bu oyda {count} ta so'rov`,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:`O'lchanmagan modellarni o'rganish`,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:`Kalit tanlash`,keySelectionAuto:`Avtomatik`,keySelectionLeastRemaining:`Eng kam qolgan`,keySelectionHint:`Bitta provayderning bir nechta kaliti orasidan qanday tanlanadi. Avtomatik joriy navbatni saqlaydi; Eng kam qolgan kalitlarni kuzatilgan kvota bo‘yicha tartiblaydi va eng ko‘p qolgan kalitni birinchi sinaydi.`,cooldownCeiling:`Eng uzun avtomatik sovish`,cooldownCeilingHint:`Marshrutizatorning o‘z taxminlari ishlamayotgan kalit va model juftligini qancha vaqt chetlatishi mumkinligini cheklaydi. Zina odatda 2 daq, 10 daq, 1 soat, 24 soat ko‘tariladi, kredit yoki daraja xatolari esa bir kun chetlatadi. Provayder ko‘rsatgan qayta urinish vaqtlari hech qachon qisqartirilmaydi.`,cooldownCeilingDefault:`Standart (24 soatgacha)`,cooldownCeiling10m:`10 daqiqa`,cooldownCeiling1h:`1 soat`,cooldownCeiling6h:`6 soat`,moreOptions:`Qo'shimcha sozlamalar`,peakActive:`(eng band soatlar)`,peakActiveHint:`Eng band soatlar moslashuvi hozir yoqilgan, shuning uchun bular andozaning oʻz vaznlari emas: tezlik vaznining 60% ishonchlilikka koʻchirilgan.`,peakAdjust:`Eng band soatlar moslashuvi`,peakAdjustHint:`Standart holatda oʻchiq. Quyidagi oraliqda tezlik vaznining 60% ishonchlilikka koʻchadi — bepul relelar oʻsha paytda eng band boʻladi, shuning uchun ishonchlilik muvaffaqiyatni sof oʻtkazuvchanlikdan koʻra yaxshiroq bashorat qiladi. «Eng tez» va «Eng ishonchli» oʻzgarmaydi.`,peakFrom:`Dan`,peakTo:`gacha`,peakTimezoneLabel:`Vaqt mintaqasi`,peakUseBrowserTimezone:`Brauzer vaqt mintaqasidan foydalanish`,peakTimezoneInvalid:`Nomaʼlum vaqt mintaqasi.`,peakExemptNote:`Bu andoza oʻzgarmaydi — u allaqachon tezlik/ishonchlilik muvozanatining bir chetida turibdi.`,title:`Marshrut strategiyasi`,description:`Marshrutlash strategiyasini tanlang. Qo'l rejimida tartibni o'rnatish uchun sudrang; Boshqa strategiyalar ishonchlilik, tezlik va aql bo'yicha jonli hisob bilan yo'naltiriladi.`,weightsSummary:`ishonchlilik {reliability}% · tezlik {speed}% · razvedka {intelligence}%`,guardrails:`Qo'riqchilar`,guardrailsTooltip:`Har doim to'siqlar: bepul kvota bo'sh joy × jonli tarif chegarasi uchun jarima. 1.0 dan past bo'lsa, bu model ushlab turilishini anglatadi.`,scoreTooltip:`Yakuniy marshrutlash balli = uchta o'qning o'rtacha og'irligi, to'siqlar bilan ko'paytiriladi. Avval yuqori marshrutlar.`,modeManualHint:`Qo'l rejimi: so'rovlar quyidagi tartibda, yuqoridan pastgacha. Qayta tartiblash uchun torting.`,modeScoreHint:`Jonli trafikdan olingan ballar yangilanadi. Quyida so'rovlar qanday yo'naltirilganligi ko'rsatilgan.`,manual:`Qo'llanma`,manualBlurb:`Marshrutni quyida o'rnatgan aniq tartibda belgilang. Qayta tartiblash uchun tutqichlarni torting. ball yo'q; zanjir yuqoridan pastgacha kuzatiladi.`,balanced:`Balanslangan`,balancedBlurb:`Ishonchlilik yetakchilik qiladi (50%), tezlik va aql bir xilda (har biri 25%). Oqilona har tomonlama sukut.`,smartest:`Eng aqlli`,smartestBlurb:`Hali ham ishlaydigan eng qobiliyatli modelga ustunlik bering. Intellekt 55%, ishonchlilik 35%, tezlik 10%.`,fastest:`Eng tez`,fastestBlurb:`Hali ham ishlaydigan eng tezkor modelga ustunlik bering. Tezlik 55%, ishonchlilik 35%, aql 10%.`,reliable:`Eng ishonchli`,reliableBlurb:`Muvaffaqiyat darajasini eng yuqori darajaga ko'taring. Ishonchlilik 70%, tezlik va aql 15%.`,custom:`Maxsus`,customBlurb:`Slayderlar yordamida ishonchlilik, tezlik va aqlning o'z balansini o'rnating. Oldindan o'rnatilgan dvigatel bilan bir xil, faqat sizning og'irliklaringiz.`,adjust:`Sozlang`,customWeights:`Maxsus og'irliklar`,customWeightsHelp:`Slayderlar mustaqil; 100% gacha avto-balansni ulushlar.`,weightReliability:`Ishonchlilik`,weightSpeed:`Tezlik`,weightIntelligence:`Intellekt`,weightRequired:`Kamida bitta vazn noldan yuqori bo'lishi kerak.`,scoreColumn:`Gol`},penaltyInspector:{title:`Router bosimi`,subtitle:`Oxirgi {minutes} daqiqadan boshlab jarimalar, sovutish va muvaffaqiyatsizliklar`,rowCount:`{count} faol`,offChain:`zanjirdan tashqari`,penaltyValue:`Penalti {value}`,factor:`ball x{factor}`,noCooldown:`Sovutish yo'q`,cooldownChip:`{key} - {time}`,resetCooldown:`Reset cooldown`,clearAll:`Hammasini tozalash`,clearAllHint:`Barcha sovish davrlari, jarimalar va nosozlik ketma-ketliklarini hoziroq olib tashlaydi. Bosim keyingi haqiqiy natijalardan qayta yig‘iladi.`,errorsHeading:`{count} oxirgi xatolar`,noRecentErrors:`Oxirgi xatolar yo'q`,noKey:`kalit yo'q`,reasons:{penalty:`jazolangan`,cooldown:`sovutish`,recent_errors:`muvaffaqiyatsiz`}},keys:JSON.parse(`{"pageTitle":"Kalitlar","pageDescription":"Provayder hisob ma'lumotlari va ilovalaringiz ulanadigan yagona API kaliti.","tabProviders":"Provayderlar","checklistSummary":"{total} ta provayderdan {configured} tasi sozlangan","checklistKeyless":"kalit kerak emas","checklistNoKeyTip":"Hali kalit qo'shilmagan. Qo'shish uchun bosing.","checklistSignupLink":"Hisob yaratish va kalit olish uchun {provider} ni oching","checklistKeylessTip":"Kalitsiz ishlaydi.","tabQuotaSignals":"Kvota signallari","tabApiKey":"Birlashtirilgan API kaliti","tabAnthropic":"Anthropic","unifiedKey":"Sizning yagona API kalitingiz","regenerate":"Qayta tiklash","showKey":"Ko'rsatish","hideKey":"Yashirish","copyKey":"Nusxalash","copyFullKey":"To'liq kalitni nusxalash","copiedKey":"Ko‘chirildi","baseUrl":"Baza URL","endpointChat":"Chat","endpointResponses":"Javoblar","endpointEmbeddings":"O'rnatishlar","endpointEmbeddingsHint":"model: \\"auto\\" yoki O'rnatishlar sahifasidan oila","endpointMessages":"Xabarlar","endpointMessagesHint":"Anthropic-mos (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) modellari","anthropicDesc":"Claude yoki Anthropic SDK mijozini ushbu serverga qarating. Anthropic mijozlari Claude model nomlarini yuborishadi - har birini Avtomatikga xaritalash (yo'riqnoma bepul modelni tanlaydi) yoki ma'lum birini qo'yish.","anthropicBaseUrl":"Baza URL","anthropicAuth":"Auth sarlavhasi","anthropicAuto":"Avtomatik — router eng yaxshi modelni tanlaydi","anthropicSave":"Xaritani saqlash","anthropicSaved":"Saqlangan","anthropicNote":"Anthropic mijozlari o'zlarining o'rnatilgan Claude model nomlarini saqlaydilar; Yuqoridagi xaritalash ularning har biri sizning hovuzingizga qanday kirishini hal qiladi.","familyDefault":"Standart","familyOpus":"Opus","familySonnet":"Sonnet","familyHaiku":"Xayku","selectPlatform":"Provayderni tanlang","addKey":"Kalit qo'shing","keyAdded":"Kalit qo'shildi","endpointKeysShareModels":"Bir xil endpoint kalitlari uning modellarini baham ko'radi.","export":"Eksport","exportAll":"Barcha kalitlar","exportHealthy":"Faqat sog'lom","exportKeys":"API kalitlarini eksport qiling","exportFormat":"Format","exportHealthyOnly":"Faqat sog'lom kalitlar","exportHealthyOnlyDesc":"Hozirda sog‘liq tekshiruvidan o‘tmagan kalitlarni chiqarib tashlang","exportWillExport":"Eksport qiladi","exportKey":"kalit","exportKeys plural":"kalitlari","exporting":"Eksport qilinmoqda…","exportDownload":"Yuklab oling","exportSuccess":"Eksport qilingan {count} kalitlari","adding":"Qo‘shilmoqda…","selectProvider":"Provayderni tanlang…","accountId":"Hisob identifikatori","label":"Yorliq","noKeyNeeded":"(kalit kerak emas)","outboundProxy":"Chiquvchi proksi","outboundProxyDescription":"Chiquvchi LLM soʻrovlarini proksi-server orqali yoʻnaltiring. SOCKS5, HTTP va HTTPS-ni qo'llab-quvvatlaydi.","proxyUrl":"Proksi URL","saveProxy":"Saqlash","savingProxy":"Saqlanmoqda…","proxyLoadFailed":"Proksi-server sozlamalarini yuklab bo‘lmadi.","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":"Maxsus OpenAI-mos modelni qo'shing","addCustomDescription":"Har qanday OpenAI-mos keladigan so'nggi nuqtada suhbat, o'rnatish, tasvir yoki audio modellarni ko'rsating. API kaliti mahalliy serverlar uchun ixtiyoriy.","customType":"Turi","customTypeChat":"Chat","customTypeEmbedding":"Oʻrnatish","customTypeImage":"Rasm","customTypeAudio":"Audio","customTypeTranscription":"Transcription","customBaseUrl":"Baza URL","customModels":"Modellar","customModel":"Model","customDisplayName":"Ko'rsatilgan nom","customDisplayNamePerModel":"har bir model uchun","customDisplayNameOptional":"ixtiyoriy","customFamily":"Oila","customFamilyPlaceholder":"standart identifikatori uchun","customApiKey":"API kaliti","customCapabilities":"Imkoniyatlar","addModel":"Model qo'shing","modelAdded":"Model qo'shildi","addModels":"{count} modellarini qo'shing","addEmbeddingModel":"O'rnatishni qo'shing","addImageModel":"Rasm modelini qo'shing","addAudioModel":"Audio modelini qo'shing","addTranscriptionModel":"Add transcription model","addingCustom":"Qo‘shilmoqda…","discoverModels":"Modellarni olish","probeNow":"Endpointni sinab ko‘rish","probeConfirm":"3 tagacha sinov so‘rovi yuborilsinmi?","probeCapabilities":"mulohaza: {reasoning} · vositalar: {tools}","probeCapYes":"ha","probeCapNo":"yo‘q","probeCapUnknown":"noma’lum","probeSuccess":"{model} {latency}ms ichida sinovdan o‘tdi","probeFailed":"Sinov muvaffaqiyatsiz tugadi: {reason}","discoverTitle":"Ushbu endpointdagi modellar","discoverHint":"Ro'yxatga olinadigan modellarni tanlang. Allaqachon qo'shilganlari qulflangan qoladi.","discoverEmpty":"Ushbu endpoint hech qanday model qaytarmadi.","discoverAlreadyAdded":"Qo'shildi","discoverSelectAll":"Hammasini tanlash","modelsAdded":"{count} ta model qo'shildi","getApiKey":"API kalitini oling","deleteKeyConfirm":"Bu kalit oʻchirilsinmi? Buni ortga qaytarib bo‘lmaydi.","checkAll":"Hammasini tekshiring","checking":"Tekshirilmoqda…","editLabel":"Yorliqni tahrirlash","saveLabel":"Yorliqni saqlash","unifiedKeyDescBefore":"Buni OpenAI sifatida ishlating","unifiedKeyDescAfter":"; bu proksi-serverga so'rovlarni autentifikatsiya qiladi.","serverUnreachableBefore":"Serverga ulanib boʻlmadi","serverUnreachableAfter":". Backend ishlayotganligiga ishonch hosil qiling. npm run dev ikkalasini ham ishga tushiradi va server jurnallari server prefiksi ostida chop etadi.","paneProviderKey":"Provayder kaliti","paneImportFile":"Faylni import qilish","paneCustomEndpoint":"Maxsus yakuniy nuqta","platform":"Platforma","hideAdded":"Qo'shilgan provayderlarni yashirish","apiToken":"API tokeni","keyOptionalPlaceholder":"Ixtiyoriy","bearerTokenPlaceholder":"Tashuvchi belgisi","pasteKeyPlaceholder":"kalitni shu yerga qo'ying","pasteSeveral":"Bir nechtasini joylang","keyOptionalHint":"Ixtiyoriy: anonim bepul daraja uchun bo'sh qoldiring (har bir IP uchun cheklangan) yoki hisobingizdan foydalanish uchun o'z kalitingizni joylang.","enable":"Yoqish","noProviderKeys":"Hozircha provayder kalitlari yo'q. Marshrutlashni boshlash uchun yuqoridagi birini qo'shing.","filterPlaceholder":"Provayderlar yoki kalitlarni filtrlang","filterAll":"Hammasi","filterHealthy":"Sog'lom","filterIssues":"Muammolar","filterDisabled":"O‘chirilgan","noFilterMatch":"Hech qanday provayder filtringizga mos kelmaydi.","providerCountSummary":"{providers} provayderlari · {keys} kalitlari","summaryHealthy":"{count} sog'lom","summaryIssueOne":"{count} muammosi","summaryIssueOther":"{count} muammolari","providerActions":"Provayderning harakatlari","routeViaProxy":"Proksi orqali marshrut","checkNow":"Hozir tekshiring","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":"orqali ham sozlanishi mumkin","proxyEnvHintAfter":"muhit o'zgaruvchisi (ustunlikka ega). O'chirish uchun bo'sh qoldiring. Misollar:","importKeys":"Provayder kalitlarini import qilish","importKeysDescription":".env, JSON, JSONC, CSV, Markdown yoki matnli fayllarni yuklang.","importFiles":"Fayllar","importFileCount":"{count} tanlandi","previewFiles":"Ko‘rib chiqish","previewing":"Ko‘rib chiqilmoqda…","selected":"Tanlangan","provider":"Provayder","keyName":"Kalit nomi","keyValue":"Asosiy qiymat","chooseProvider":"Provayderni tanlang","noPreviewKeys":"Ushbu fayllarda kalit topilmadi.","skippedItems":"Oʻtkazib yuborildi:","moreItems":"+{count} ko'proq","importSelected":"{count} import qiling","importing":"Import qilinmoqda…","noImportSelection":"Provayder bilan kamida bitta qatorni tanlang.","duplicate":"Dublikat","duplicatesFound":"{count} dublikat(lar)i aniqlandi — allaqachon mavjud va oʻtkazib yuboriladi.","importResult":"Import qilingan {imported}; muvaffaqiyatsiz {failed}.","importModelCount":"+{count} model","importResultWithModels":"Import qilingan {imported}; {models} model ro'yxatga olindi; muvaffaqiyatsiz {failed}.","confirmRemove":"Tasdiqlansinmi?","quotaSignalsTitle":"Kvota signallari","quotaSignalsEmptyTitle":"Hozircha kvotalar kuzatilmagan","quotaSignalsEmptyDesc":"Bu provayderlar tarif chegarasi sarlavhalari, kvota xatolari yoki tekshirish signallarini qaytargandan so'ng to'ldiriladi.","quotaKeyRef":"kalit #{id}","quotaPoolRef":"hovuz {pool}","quotaLimit":"Cheklash","quotaRemaining":"Qolgan","quotaReset":"Qayta tiklash","quotaObserved":"Kuzatilgan","tabAgents":"Agentlar","familyGeminiPro":"Gemini Pro","familyGeminiFlash":"Gemini Flash","familyGeminiFlashLite":"Gemini Flash-Lite","geminiTitle":"Gemini modellarini moslashtirish","geminiDesc":"Gemini Pro, Flash va Flash-Lite nomlarini Auto yoki muayyan katalog modeliga moslang.","compatibilityTitle":"Agent mosligi","compatibilityDesc":"Ixtiyoriy moslik yuzalarini va Claude Code model aniqlashini boshqaring.","ollamaMode":"Ollama emulyatsiyasi","ollamaModeHint":"Ochiq loopback hech qachon autentifikatsiyasiz LAN trafigini qabul qilmaydi.","ollamaOff":"O'chirilgan","ollamaLoopback":"Loopbackda ochiq","ollamaKeyRequired":"API kaliti talab qilinadi","claudeAliases":"Claude Code aniqlash taxalluslari","claudeAliasesHint":"Shlyuz model tanlagichi katalogni ro'yxatlashi uchun claude/<model> taxalluslarini oching.","mcpServer":"MCP serveri","mcpServerHint":"Agent mijozlari uchun /mcp yakuniy nuqtasini ochadi. Yangi o‘rnatishlarda u o‘chiq bo‘ladi.","urlTokensTitle":"Bekor qilinadigan URL tokenlari","urlTokensDesc":"Faqat sarlavhasiz mijozlar uchun. URL tokenlari tarix va jurnallarga sizib chiqishi mumkin, shuning uchun kerak bo'lmaganda ularni bekor qiling.","urlTokenLabel":"Token yorlig'i","createUrlToken":"Token yaratish","urlTokenOnce":"Bu tokenni hozir nusxalang. U boshqa ko'rsatilmaydi.","revoked":"Bekor qilingan","revoke":"Bekor qilish","modelScope":"Model doirasi","modelScopeDesc":"Bu kalitni muayyan model ID lari bilan cheklang. Boshqa har qanday model uchun router bu kalitni o‘tkazib yuboradi.","modelScopeAdd":"Model ID sini kiriting va Enter bosing","modelScopeEmpty":"Doira belgilanmagan — bu kalit o‘z provayderining barcha modellariga xizmat qiladi.","modelScopeClear":"Doirani tozalash","modelScopeBadgeOne":"cheklangan · 1 model","modelScopeBadgeOther":"cheklangan · {count} model","modelPicker":{"title":"Bu kalit qaysi modellarga xizmat qilsin?","hint":"{provider} kalitingiz qo‘shildi va hozirda quyidagi barcha modellarga xizmat qilmoqda. Bu kalitdan foydalanishga ruxsat berilmagan modellardan belgini olib tashlang — router ular uchun bu kalitni o‘tkazib yuboradi.","count":"{total} tadan {selected} tasi tanlandi","allNote":"Hammasi tanlangan — hech narsa saqlanmaydi va keyinchalik katalogga qo‘shiladigan modellar ham shu kalitdan foydalanadi.","subsetNote":"Bu kalit faqat tanlangan modellar bilan cheklanadi. Buni keyinroq kalit qatoridan o‘zgartirishingiz mumkin.","skip":"Hozir emas","scopedOne":"Kalit 1 ta model bilan cheklandi","scopedOther":"Kalit {count} ta model bilan cheklandi","allSaved":"Key serves every catalog model"},"cpTitle":"Mijoz profillari","cpDesc":"Har bir mijoz uchun alohida API kaliti; uning tizim promptini server doim qo'llaydi.","cpEmpty":"Hozircha mijoz profillari yo'q.","cpNameLabel":"Nomi","cpNamePlaceholder":"masalan: Qo'llab-quvvatlash boti","cpPromptLabel":"Tizim prompti (ixtiyoriy)","cpPromptPlaceholder":"Server ushbu kalit bilan qilingan har bir so'rov oldiga qo'shadigan ko'rsatmalar.","cpCreate":"Profil yaratish","cpRotate":"Kalitni almashtirish","cpKeyOnce":"Bu kalitni hozir nusxalang — u boshqa ko'rsatilmaydi.","cpEnabledAria":"Profil yoqilgan","selectKey":"Bu kalitni tanlang","bulkSelected":"{count} tanlandi","bulkEnable":"Hammasini yoqish","bulkDisable":"Hammasini faolsizlantirish","bulkDelete":"Hammasini oʻchirish","bulkDeleteConfirm":"{count} ta oʻchirilsinmi?","bulkResult":"Yangilandi {done}; muvaffaqiyatsiz {failed}.","bulkDeleteResult":"Oʻchirildi {done}; muvaffaqiyatsiz {failed}.","testProxy":"Test","testingProxy":"Testing…","proxyTestOk":"Proxy works — {ms}ms round trip","proxyTestFail":"Proxy failed: {reason}","editKey":"Kalitni tahrirlash","editPlatformLocked":"Yaratilgandan keyin provayder va endpointni o‘zgartirib bo‘lmaydi.","editCredentialHint":"Joriy kalitni saqlash uchun bo‘sh qoldiring.","editCredentialPartsRequired":"Ham hisob ID sini, ham API tokenini kiriting.","editModels":"Modellarni tahrirlash","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":"Maxsus model qo‘shish","modelId":"Model ID","modelIdRequired":"Model ID kiritilishi shart","modelDisplayName":"Ko‘rinadigan nom","modelContextWindow":"Kontekst oynasi (tokenlar)","modelRateLimits":"Tezlik cheklovlari (ixtiyoriy)","modelSupportsTools":"Asboblarni chaqirishni qo‘llab-quvvatlaydi","modelSupportsToolsHint":"Ushbu model funksiya yoki asboblarni chaqira olsa yoqing","modelSupportsVision":"Tasvirni qabul qilishni qo‘llab-quvvatlaydi","modelSupportsVisionHint":"Ushbu model tasvirlarni qabul qilsa yoqing","createModel":"Model yaratish","modelAddedSuccess":"Maxsus model muvaffaqiyatli qo‘shildi","modelAddFailed":"Maxsus modelni qo‘shib bo‘lmadi","testModel":"Sinash","testingModel":"Sinovdan o‘tkazilmoqda…","testPassedShort":"O‘tdi","testFailedShort":"O‘tmadi","testPassed":"Model sinovi {latency}ms ichida muvaffaqiyatli o‘tdi","testFailed":"Model sinovi muvaffaqiyatsiz tugadi","testThrottled":"Ushbu modelni qayta sinashdan oldin {seconds} soniya kuting.","noModelsForProvider":"Ushbu taʼminotchi uchun modellar sozlanmagan.","testModels":"Modellarni sinab ko‘rish","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":"Cheksiz","capEditHint":"Caps reset at the next period boundary, 00:00 UTC. Leave blank for unlimited.","monthlyUsageLine":"Bu oy {requests} so‘rov, {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:`sog'lom`,rateLimited:`stavka bilan cheklangan`,invalid:`yaroqsiz`,error:`xato`,unchecked:`belgilanmagan`},analytics:{title:`Analitika`,description:`Soʻrov hajmi, kechikish, tokendan foydalanish va nosozliklar.`,range24h:`24 soat`,range7d:`7d`,range30d:`30d`,range90d:`90d`,requests:`So'rovlar`,successRate:`Muvaffaqiyat darajasi`,inputTokens:`Kirish belgilari`,outputTokens:`Chiqish belgilari`,avgLatency:`Oʻrtacha kechikish`,p95Latency:`P95 kechikishi`,avgTtft:`Oʻrtacha TTFT`,estSavings:`Tahminiy. tejash`,requestsByProvider:`Provayder tomonidan so'rovlar`,avgLatencyByProvider:`Provayder bo'yicha o'rtacha kechikish`,ttftByProvider:`Provayder tomonidan birinchi token vaqti`,ttftEmpty:`Hali birinchi tokenga vaqt yozilmagan.`,requestsOverTime:`Vaqt o'tishi bilan so'rovlar`,tokensOverTime:`Vaqt o'tishi bilan tokenlar`,byModel:`Model bo'yicha`,byPlatform:`Platforma bo'yicha`,errors:`Xatolar`,errorDistribution:`Xatolarni taqsimlash`,pinnedRequests:`Belgilangan so'rovlar`,pinnedHonored:`hurmatli`,fallbackAttempts:`Qayta urinishlar`,savingsHint:"Oxirgi {range} davomida siz aslida ${actual} saqladingiz. Xuddi shu tokenlar har bir model uchun narxlangan pulli API-larda shunday turadi. Ko'rsatilgan raqam oxirgi {span} ma'lumotlardan to'liq 30 kungacha bo'lgan tezlikni prognoz qiladi.",savingsHintExact:"Oxirgi {range} davomida siz aslida ${actual} saqladingiz. Xuddi shu tokenlar har bir model uchun narxlangan pulli API-larda shunday turadi. Ko'rsatilgan raqam sizning haqiqiy 30 kunlik jami hisoblanadi.",requestsHintPinned:`Ushbu soʻrovlarning {pinned} qismi maʼlum bir modelni nomi bilan bogʻlab qoʻygan. {honored} mahkamlangan model tomonidan xizmat ko'rsatildi; {failed} boshqasiga o‘tib bo‘lmadi. Qolganlari avtomatik yo'naltirildi.`,requestsHintAuto:`Bu davrdagi barcha soʻrovlar avtomatik yoʻnaltirildi; Hech bir mijoz ma'lum bir modelni nomi bilan bog'lamagan.`,requestsHintTypes:`{chat} chat va {embedding} o‘rnatish so‘rovlari.`,rangeLabel24h:`24 soat`,rangeLabel7d:`7 kun`,rangeLabel30d:`30 kun`,rangeLabel90d:`90 kun`,spanDays:`{count} kunlar`,spanHours:`{count} soat`,latencyMs:`Kechikish (ms)`,latency:`Kechikish`,pinned:`Qadalgan`,inTokens:`Tokenlarda`,outTokens:`Chiqarilgan tokenlar`,saved:`Saqlangan`,message:`Xabar`,time:`Vaqt`,perModelBreakdown:`Har bir model bo'yicha taqsimot`,usageByKey:`Kalit bo'yicha foydalanish`,keyColumn:`Kalit`,keyLabelFallback:`Kalit #{id}`,errorsByProvider:`Provayder tomonidan xatolar`,recentErrors:`Oxirgi xatolar`,noErrors:`Xatolar yoʻq`,recentCalls:`So'nggi qo'ng'iroqlar`,clientIp:`Mijoz IP`,clientAgent:`Mijoz ilovasi`,requestedModelHint:`Soʻralgan {model}, zaxira orqali xizmat koʻrsatadi`,attempts:`Urinishlar`,filterAll:`Hammasi`,filterCanceled:`Bekor qilingan`,providerBreakdown:`Har bir provayder bo'yicha taqsimot`,tokensPerSec:`Tok/s`,allProviders:`Barcha provayderlar`,requestDetailTitle:`#{id} soʻrovi`,failoverLadder:`O'chirish zinapoyasi`,failoverLadderHint:`Bu so'rovning har bir sakrashi ketma-ket ravishda zaxira zanjiri orqali o'tdi.`,noAttemptTrace:`Bu soʻrov uchun hech qanday urinish kuzatilmadi.`,keyOrdinal:`kalit #{n}`,keyBadge:`Kalit #{n}`,attemptTimingHint:`So'rov boshlanishidan boshlab ofsetni boshlash · urinish davomiyligi`,requestedModel:`So'ralgan model`,ttft:`TTFT`,requestsByAgent:`Agent bo'yicha so'rovlar`,sortBy:`{column} bo‘yicha saralash`,sortHint:`Saralash faqat yuklangan {count} ta qatorga qo‘llanadi`,cacheHitRate:`Kesh muvaffaqiyat darajasi`,cacheSavedTokens:`{tokens} token tejaldi`,cacheHitRateHint:`Server ishga tushganidan beri {hits} muvaffaqiyat, {misses} o‘tkazib yuborish · {requests} ta provayder so‘rovi tejaldi`},logs:{title:`Jurnal`,description:`Serverning jonli jurnali. Sahifa ochiq turganda yangi yozuvlar kelib turadi.`,pause:`Pauza`,resume:`Davom ettirish`,clear:`Jurnalni tozalash`,cleared:`Server jurnali tozalandi`,levelFilter:`Jurnal darajalari`,levels:{debug:`Debug`,info:`Info`,warn:`Ogohlantirish`,error:`Xato`},countsHint:`Sanoqlar serverdagi butun jurnal buferi boʻyicha umumiy hisoblanadi, faqat ushbu filtrlarga mos yozuvlar boʻyicha emas.`,searchPlaceholder:`Jurnal xabarlarini qidirish…`,jumpToLatest:`Eng soʻnggilariga oʻtish`,showMore:`Koʻproq koʻrsatish`,showLess:`Kamroq koʻrsatish`,buffered:`Buferdagi koʻpi bilan {max} yozuvdan {count} tasi koʻrsatilmoqda`,emptyTitle:`Hozircha jurnal yozuvlari yoʻq`,emptyDescription:`Server yozuvlarni yozgani sari ular shu yerda paydo boʻladi. Natija kutgan boʻlsangiz, daraja, provayder yoki qidiruv filtrlarini kengaytiring.`,noLevelsTitle:`Daraja tanlanmagan`,noLevelsDescription:`Jurnal chiqishini koʻrish uchun kamida bitta darajani yoqing.`,loadFailed:`Server jurnalini yuklab boʻlmadi.`},playground:{title:`O'yin maydonchasi`,description:`Router orqali suhbatni yakunlang va qaysi provayder unga xizmat ko'rsatishini ko'ring.`,autoModel:`Avtomatik (qayta zanjir)`,fusionModel:`Fusion (ko'p modelli sintez)`,selectModel:`Modelni tanlang`,searchModels:`Modellarni qidirish…`,noModelsFound:`Hech qanday model topilmadi`,send:`Yuborish`,sending:`Yuborilmoqda…`,clear:`Tozalash`,inputPlaceholder:`Xabar yozing… (⏎ yuborish uchun, ⇧⏎ yangi qator uchun)`,emptyTitle:`Boshlash uchun xabar yuboring.`,emptyDescription:`{model} dan foydalanish. Yuqoridagi selektorda modellarni almashtiring.`,noModels:`Hozircha modellar yoʻq. Ushbu roʻyxatni toʻldirish uchun kalitlar sahifasiga API kalitini qoʻshing.`,copyReply:`Javobni nusxalash`,fallback:`qaytish`,fallbacks:`orqaga qaytishlar`,fusionPanel:`Panel`,fusionJudge:`Hakam`,fusionTrace:`{count} modeli javoblari`,fusionFailed:`javob yo'q`,fusionJudgeSynth:`yakuniy javobni sintez qildi`,errorPrefix:`Xato:`,systemPromptLabel:`Tizim so'rovi`,systemPromptPlaceholder:`Ixtiyoriy. Suhbatingizdan oldin tizim xabari sifatida yuborilgan.`,showSettings:`Sozlamalarni ko‘rsatish`,hideSettings:`Sozlamalarni yashirish`,samplingHeading:`Namuna olish`,samplingHelp:`O‘chirilganda provayderning o‘z standart qiymati qo‘llanadi. Faqat siz yoqqan boshqaruvlar yuboriladi.`,samplingDefault:`Standart`,temperature:`Harorat`,topP:`Top P`,maxTokens:`Maksimal belgilar`,errorTitle:`So‘rov bajarilmadi`,attach:`Fayllarni biriktirish`,attachTooMany:`Har bir xabarga koʻpi bilan {count} ta fayl biriktirishingiz mumkin.`,attachTooLarge:`{name} juda katta. Cheklov: {max}.`,attachUnsupported:`{name} qoʻllab-quvvatlanmaydi. Rasm (PNG, JPEG, WebP, GIF) yoki matnli fayl (TXT, MD, CSV, JSON, LOG) biriktiring.`,attachFailed:`{name} oʻqib boʻlmadi.`,noVisionBadge:`Rasmsiz`,visionWarning:`{model} rasmlarni qabul qilmaydi. Rasmni qoʻllaydigan model yoki Avtomatik variantini tanlang.`,dictate:`Diktovka`,dictationStop:`Yozib olishni to‘xtatish`,dictationTranscribing:`Matnga o‘girilmoqda…`,dictationUnavailable:`Diktovkadan foydalanish uchun audio modellar provayderlarini qo‘shing.`,dictationModel:`Diktovka modeli`,dictationFailed:`Matnga o‘girish amalga oshmadi: {reason}`,artifactOpen:`Ko‘rishni ochish`,artifactPreview:`Ko‘rish`,artifactCode:`Kod`,artifactClose:`Ko‘rishni yopish`,artifactDownload:`Yuklab olish`,artifactReload:`Ko‘rishni qayta yuklash`,artifactHtml:`HTML sahifa`,artifactSvg:`SVG rasm`,artifactLines:`qator`,artifactResize:`Ko‘rish o‘lchamini o‘zgartirish`},playgroundSessions:{heading:`Suhbatlar`,newConversation:`Yangi suhbat`,showSidebar:`Suhbatlarni ko‘rsatish`,hideSidebar:`Suhbatlarni yashirish`,empty:`Hozircha saqlangan suhbatlar yo‘q.`,untitled:`Nomsiz suhbat`,rename:`Nomini o‘zgartirish`,renamePlaceholder:`Suhbat nomi`,messageCount:`{count} ta xabar`,justNow:`hozirgina`,minutesAgo:`{count} daq oldin`,hoursAgo:`{count} soat oldin`,daysAgo:`{count} kun oldin`,loadFailed:`Bu suhbatni ochib bo‘lmadi.`,renameFailed:`Bu suhbat nomini o‘zgartirib bo‘lmadi.`,deleteFailed:`Bu suhbatni o‘chirib bo‘lmadi.`,actions:`Suhbat amallari`,newChat:`Yangi chat`},embeddings:{title:`Modellar`,description:`O'rnatishlar faqat oilada ishlamay qoladi: xuddi shu model boshqa provayder tomonidan taqdim etiladi. Turli modellardagi vektorlar mos kelmaydi, shuning uchun marshrutizator hech qachon sizdagi modellarni almashtirmaydi.`,defaultBadge:`Standart · avtomatik`,makeDefault:`Standart qilib qo'ying`,moveUp:`Yuqoriga siljiting`,moveDown:`Pastga siljiting`,usageToday:`{count} talab bugun`,usageMonth:`{count} tok bu oy`,autoDescription:`Standart oilaga POST /v1/embeddings marshrutlarida model: "auto". Oilani nomlash (yoki provayder modeli identifikatori) bu oilani belgilaydi; uning ichidagi provayderlar tartibda sinab ko'riladi.`,unsavedChanges:`Saqlanmagan o'zgarishlar`,saveChanges:`O'zgarishlarni saqlang`,savingChanges:`Saqlanmoqda…`,tokMax:`{tokens} tok maks`,emptyTitle:`Hozircha oʻrnatish modellari yoʻq`,emptyDesc:`Oʻrnatishlarni qoʻllab-quvvatlaydigan provayder kalitini qoʻshganingizdan soʻng, oʻrnatish oilalari shu yerda paydo boʻladi.`,dragToReorder:`Provayderni qayta tartiblash uchun torting`},fusion:{title:`Fusion`,description:`Modellar guruhi parallel ravishda javob beradi, keyin hakam bitta kuchliroq javobni sintez qiladi. Uni "fusion" modeliga ega API ga qo'ng'iroq qilish orqali foydalaning.`,panelSource:`Panel manbai`,panelSourceHelp:`So'rov o'zinikini ko'rsatmasa, panel modellari qaerdan keladi.`,mode:{auto:`Avtomatik (qayta zanjir)`,autoHelp:`Fallback zanjiringizdan faol marshrutlash strategiyangiz boʻyicha tartiblangan turli xil modellarni tanlang.`,explicit:`Aniq panel`,explicitHelp:`Har doim quyida tanlagan maxsus modellardan foydalaning.`},panelModels:`Panel modellari`,selectedCount:`{count} / {max} tanlandi`,noModels:`Hozircha hech qanday model ulanmagan. API kalitini qo'shing, so'ngra "Fallback" zanjiridagi modellarni yoqing.`,panelSize:`Panelning o'lchami`,panelSizeHelp:`Qancha xil modellarni avtomatik tanlash kerak (1–{max}).`,judge:`Sudya modeli`,judgeHelp:`Panelning javoblarini bittaga sintezlovchi model. Avtomatik sizning yuqori darajali mavjud modelingizdan foydalanadi.`,judgeAuto:`Avtomatik (yuqori o'rinlar mavjud)`,strategy:`Strategiya`,strategySynthesize:`Sintezlash - panelni bitta javobga aralashtiring`,strategyBestOf:`Eng yaxshisi - bitta eng kuchli javobni qaytaring (sudya chaqirilmaydi)`,strategySynthesizeShort:`Sintezlash`,strategyBestOfShort:`Eng yaxshisi`,exposePanel:`Panel tafsilotlarini ochish`,exposePanelHelp:`Har bir modelning javobini va sudya metamaʼlumotlarini javobdagi x_fusion maydoniga ilova qiling.`,howToUse:`Qanday foydalanish kerak`,howToUseHelp:`"Fusion" modeli bilan oddiy suhbat so'rovini yuboring. Bu sozlamalar sukut bo'yicha; har qanday so'rov ularni "fusion" maydoni bilan bekor qilishi mumkin.`,unsavedChanges:`Saqlanmagan o'zgarishlar`,save:`Saqlash`,searchPlaceholder:`Search models…`,providerFilterLabel:`Filter by provider`,providerAll:`All providers`,noMatch:`No models match your search.`},premium:{title:`Premium`,description:`Har bir qurilmada jonli modellar katalogi.`,loading:`Yuklanmoqda…`,checkForUpdates:`Yangilanishlarni tekshiring`,syncing:`Sinxronlanmoqda…`,catalogFeed:`Katalog tasmasi`,liveFeed:`Jonli tasma`,monthlySnapshot:`Oylik surat`,lastChecked:`Oxirgi tekshirilgan: {when}`,liveDescription:`Yangi bepul modellar, kvotani o'zgartirish va g'alati tuzatishlar yuborilganidan keyin bir necha soat ichida bu erga tushadi. Ilova avtomatik ravishda kuniga ikki marta tekshiradi; qiladigan hech narsa.`,snapshotDescription:`Bepul daraja: katalog oylik suratdan yangilanadi, kuniga ikki marta avtomatik tekshiriladi. Premium buni har 2-3 kunda yangilanadigan jonli tasmaga oʻtkazadi.`,lastSyncProblem:`Oxirgi sinxronlash muammosi: {error}`,license:`Litsenziya`,planAnnual:`Premium yillik`,planLifetime:`Premium umr`,expired:`Muddati tugagan`,inactive:`Faol emas`,lifetimeNote:`Bir umrlik litsenziya: muddati tugamaydi.`,renewsOn:`{date} da yangilanadi.`,willNotRenew:`Yangilanmaydi. {date} gacha Premium, keyin bu o'rnatish oylik bepul katalogga qaytadi.`,keyInactive:`Bu kalit endi faol emas. Ilova oylik bepul katalog ustida ishlashda davom etadi.`,manageSubscription:`Obunani boshqarish`,openingPortal:`Ochilyapti…`,removeKey:`Ushbu qurilmadan kalitni olib tashlang`,manageHint:`Obunani boshqarish Stripe billing portalini ochadi: bekor qiling, kartangizni yangilang yoki hisob-fakturalarni yuklab oling. Kalitni olib tashlash faqat ushbu qurilmani o'chiradi; xaridingiz daxlsiz.`,licenseKey:`Litsenziya kaliti`,licenseKeyPlaceholder:`fla_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`,activate:`Faollashtirish`,activating:`Faollashtirilmoqda…`,keyHint:`Sizning kalitingiz xaridingiz elektron pochtasida va to'lovdan keyingi sahifada. Yo'qotdingizmi?`,recoverKey:`Uni veb-saytda tiklang`,upsellTitle:`Yiliga 19 dollarga jonli efirga chiqing`,upsellDescription:`Yangi bepul modellar 30 kundan keyin emas, balki mavjud bo'lgan paytda paydo bo'ladi. Bitta kalit, har bir qurilma. Istalgan vaqtda bekor qilish; router abadiy bepul qoladi.`,goPremium:`Premiumga o'ting`,bundled:`to'plangan`,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:`Nimadir xato ketdi`,boundaryDescription:`Boshqaruv panelida kutilmagan xatolik yuz berdi. Maʼlumotlaringiz xavfsiz. Qayta urinib ko'ring yoki modellar sahifasiga qayting.`,tryAgain:`Qayta urinib ko‘ring`,goHome:`Modellarga qaytish`},notFound:{title:`Sahifa topilmadi`,description:`Bu sahifa mavjud emas yoki koʻchirilgan boʻlishi mumkin.`},setup:{title:`Boshlanmoqda`,subtitle:`Birinchi so'rovingizni yo'naltirish uchun uchta qadam.`,progress:`{done} ning {total}`,step1Title:`Provayder kalitini qo'shing`,step1Desc:`Kamida bitta provayder hisobini ulang. Bepul kalitlar ishlaydi.`,step1Cta:`Kalitlarni qo'shing`,step2Title:`Sinov so'rovini yuboring`,step2Desc:`O'yin maydonchasida istalgan modelni tanlang va salom ayting.`,step2Cta:`O'yin maydonchasini oching`,step3Title:`Ilovangizni ulang`,step3Desc:`OpenAI-mos keluvchi har qanday mijoz bilan birlashtirilgan API kalitidan foydalaning.`,copyKey:`API kalitini nusxalash`,copyUrl:`URL bazasini nusxalash`,copiedKey:`API kaliti vaqtinchalik xotiraga nusxalandi`,copiedUrl:`URL bazasi vaqtinchalik xotiraga nusxalandi`},palette:{title:`Buyruqlar palitrasi`,placeholder:`Qidiruv sahifalari, modellar, amallar…`,empty:`Natija yoʻq`,groupPages:`Sahifalar`,groupActions:`Harakatlar`,groupModels:`Modellar`,toggleTheme:`Qorong'i rejimga o'tish`},validation:{required:`Majburiy`,url:`http:// yoki https:// bilan boshlanadigan yaroqli URL kiriting`,email:`Yaroqli elektron pochta manzilini kiriting`,passwordMin:`Kamida {min} belgilar`},agents:{title:`Kodlash agentlari`,description:`Kodlash vositalarini yaratilgan, zaxira nusxa uchun xavfsiz konfiguratsiya bilan yagona bepul model shlyuziga ulang.`,apiKey:`API kaliti`,quickstartTitle:`Tez boshlash`,quickstart:`Eng tezkor yo'l: Claude Code'ni jonli katalogdan sozlang.`,currentKey:`Joriy yagona kalit:`,seenRecently:`Yaqinda ko'rilgan`,setupLabel:`Avtomatik sozlash`,setupHint:`Ushbu vositaning konfiguratsiya faylini siz uchun yozadi va shu shlyuzga yo'naltiradi.`,setupGuideHint:`Ushbu vositaning sozlash bosqichlarini ko'rsatadi; hech qanday fayl yozilmaydi.`,manualLabel:`Qo'lda ulanish`,manualHint:`Vositaning o'z sozlamalariga kiritish uchun asosiy URL va kalit.`,endpoint:`So'nggi nuqta`,documentation:`Hujjatlar`,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:`O'z kompyuteringizdan WhatsApp, Telegram, Discord va boshqalarda javob beradigan, doim ishlab turadigan shaxsiy yordamchi.`,hermes:`Nous Research'ning o'zini takomillashtiradigan agenti; doimiy xotira va ko'nikmalar bilan, terminalda yoki chat ilovalarida.`,pi:`O'z kengaytmalaringiz, ko'nikmalaringiz va so'rov shablonlaringiz bilan shakllantiradigan minimal terminal agenti.`}},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:`Ushbu zanjir nomini o'zgartirish`,renameConfirm:`"{oldName}" zanjir nomini "{name}" ga o'zgartirilsinmi? auto:{oldName} ga murojaat qiladigan mijozlar auto:{name} ga o'tishi kerak.`,renamePlaceholder:`Yangi zanjir nomi`,renameFailed:`Zanjir nomini o'zgartirib bo'lmadi.`},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};
|