@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
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Tashfeen Ahmed
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -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} ቶክ / ሞ`,rpmLimit:`{count} በደቂቃ`,rpdLimit:`{count} RPG`,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:`{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\\" ወይም ቤተሰብ ከ Embeddings ትር","endpointMessages":"መልዕክቶች","endpointMessagesHint":"Anthropic-ተኳሃኝ (Claude)","quickStart":"Quick start","quickStartDesc":"Use auto for your active routing chain, or auto:fast to prioritize speed across enabled models. Replace $YOUR_KEY with your unified API key.","exampleAuto":"Auto mode (use the active chain)","exampleFast":"Fast mode (prioritize speed)","anthropicTitle":"Claude (Anthropic) ሞዴሎች","anthropicDesc":"በዚህ አገልጋይ ላይ Claude ወይም Anthropic ኤስዲኬ ደንበኛን ያመልክቱ። Anthropic ደንበኞች Claude የሞዴል ስሞችን ይልካሉ - እያንዳንዳቸውን ወደ አውቶሞቢል ካርታ ያድርጉ (ራውተር ነፃ ሞዴል ይመርጣል) ወይም አንድ የተወሰነ ይሰኩ.","anthropicBaseUrl":"የመሠረት URL","anthropicAuth":"የማረጋገጫ ራስጌ","anthropicAuto":"ራስ-ሰር - ራውተር ምርጡን ሞዴል ይመርጣል","anthropicSave":"ካርታ ማስቀመጫ","anthropicSaved":"ተቀምጧል","anthropicNote":"Anthropic ደንበኞች አብሮገነብ Claude ሞዴል ስሞቻቸውን ይይዛሉ; ከላይ ያለው ካርታ እያንዳንዳቸው ወደ ገንዳዎ እንዴት እንደሚገቡ ይወስናል።","familyDefault":"ነባር","familyOpus":"Opus","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":"በ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":"ይህን ቁልፍ ለተወሰኑ የሞዴል መታወቂያዎች ብቻ ገድብ። ለሌላ ማንኛውም ሞዴል ራውተሩ ይህን ቁልፍ ያልፋል።","modelScopeAdd":"የሞዴል መታወቂያ ያስገቡና 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":"የመለያ ቁጥሩንና የ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":"የሞዴል መለያ ያስፈልጋል","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:`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}ን አስቀምጠዋል። በአንድ ሞዴል ዋጋ በሚከፈልባቸው ኤፒአይዎች ላይ ተመሳሳይ ቶከኖች ያስከፍላሉ። የሚታየው ቁጥር ከመጨረሻው የውሂብ {span} እስከ 30 ቀናት ድረስ ፍጥነትዎን ያዘጋጃል።",savingsHintExact:"ባለፉት {range} ${actual}ን አስቀምጠዋል። በአንድ ሞዴል ዋጋ በሚከፈልባቸው ኤፒአይዎች ላይ ተመሳሳይ ቶከኖች ያስከፍላሉ። የሚታየው ቁጥር የእርስዎ ትክክለኛ የ30-ቀን ድምር ነው።",requestsHintPinned:`ከእነዚህ ጥያቄዎች ውስጥ {pinned} አንድን የተወሰነ ሞዴል በስም ሰካ። {honored} በተሰካው ሞዴል አገልግለዋል; {failed} ወደ ሌላ አልተሳካም። የተቀሩት በራስ-ሰር ተዘዋውረዋል።`,requestsHintAuto:`በዚህ ጊዜ ውስጥ ያሉት ሁሉም ጥያቄዎች በራስ-ሰር ተዘዋውረዋል; አንድም ደንበኛ አንድን የተወሰነ ሞዴል በስም አልሰካም።`,requestsHintTypes:`{chat} ይወያዩ እና {embedding} የመክተት ጥያቄዎች።`,rangeLabel24h:`24 ሰዓታት`,rangeLabel7d:`7 ቀኖች`,rangeLabel30d:`30 ቀናት`,rangeLabel90d:`90 ቀናት`,spanDays:`{count} ቀናት`,spanHours:`{count} ሰዓታት`,latencyMs:`መዘግየት (ኤም.ኤስ.)`,latency:`መዘግየት`,pinned:`ተሰክቷል`,inTokens:`በቶከኖች ውስጥ`,outTokens:`የውጪ ምልክቶች`,saved:`ተቀምጧል`,message:`አስተያየትዎ / መልእክት`,time:`ሰዓት`,perModelBreakdown:`በእያንዳንዱ ሞዴል ብልሽት`,usageByKey:`አጠቃቀም በቁልፍ`,keyColumn:`ቁልፍ`,keyLabelFallback:`ቁልፍ #{id}`,errorsByProvider:`በአቅራቢው ስህተቶች`,recentErrors:`የቅርብ ጊዜ ስህተቶች`,noErrors:`ምንም ስህተቶች የሉም`,recentCalls:`የቅርብ ጊዜ ጥሪዎች`,clientIp:`የደንበኛ አይፒ`,clientAgent:`የደንበኛ መተግበሪያ`,requestedModelHint:`የተጠየቀ {model}፣ በመውደቅ አገልግሏል`,attempts:`ሙከራዎች`,filterAll:`ሁሉም`,filterCanceled:`የተሰረዙ`,providerBreakdown:`በእያንዳንዱ አቅራቢ መከፋፈል`,tokensPerSec:`ቶክ / ዎች`,allProviders:`ሁሉም አቅራቢዎች`,requestDetailTitle:`የጥያቄ #{id}`,failoverLadder:`አለመሳካት መሰላል`,failoverLadderHint:`እያንዳንዱ ሆፕ ይህ ጥያቄ በቅደም ተከተል በመውደቅ ሰንሰለት ውስጥ ወስዷል።`,noAttemptTrace:`ለዚህ ጥያቄ ምንም አይነት ሙከራ አልተመዘገበም።`,keyOrdinal:`ቁልፍ #{n}`,keyBadge:`ቁልፍ #{n}`,attemptTimingHint:`ከጥያቄ ጅምር ማካካሻ ጀምር · የሙከራ ጊዜ`,requestedModel:`የተጠየቀው ሞዴል`,ttft:`TTFT`,requestsByAgent:`ጥያቄዎች በወኪል`,sortBy:`በ{column} ደርድር`,sortHint:`መደርደሩ የሚሠራው በተጫኑት {count} ረድፎች ላይ ብቻ ነው`,cacheHitRate:`የመሸጎጫ ግኝት መጠን`,cacheSavedTokens:`{tokens} ቶከን ተቆጥቧል`,cacheHitRateHint:`አገልጋዩ ከተጀመረ ወዲህ {hits} ግኝት እና {misses} ስህተት · {requests} የአቅራቢ ጥሪዎች ተስወግደዋል`},logs:{title:`መዝገቦች`,description:`የቀጥታ የአገልጋይ መዝገብ። ገጹ ክፍት ሆኖ ሳለ አዲስ ግቤቶች እየገቡ ይሄዳሉ።`,pause:`አቁም`,resume:`ቀጥል`,clear:`መዝገቦችን አጽዳ`,cleared:`የአገልጋይ መዝገብ ጸድቷል`,levelFilter:`የመዝገብ ደረጃዎች`,levels:{debug:`ማረሚያ`,info:`መረጃ`,warn:`ማስጠንቀቂያ`,error:`ስህተት`},countsHint:`ቁጥሮቹ በአገልጋዩ ላይ ላለው ሙሉ የመዝገብ ማጠራቀሚያ ጠቅላላ ናቸው፣ ከእነዚህ ማጣሪያዎች ጋር የሚዛመዱ ግቤቶች ብቻ አይደሉም።`,searchPlaceholder:`የመዝገብ መልዕክቶችን ይፈልጉ...`,jumpToLatest:`ወደ የቅርብ ጊዜው ዝለል`,showMore:`ተጨማሪ አሳይ`,showLess:`ያነሰ አሳይ`,buffered:`ከተከማቹ እስከ {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} req`,usageMonth:`በዚህ ወር {count} ቶክ`,autoDescription:`model: "auto" ወደ ነባሪው ቤተሰብ በሚወስዱ POST /v1/embeddings መንገዶች። ቤተሰብን መሰየም (ወይም የአቅራቢ ሞዴል መታወቂያ) ያንን ቤተሰብ ያካሂዳል; በውስጡ ያሉ አቅራቢዎች በቅደም ተከተል ይሞከራሉ.`,unsavedChanges:`ያልተቀመጡ ለውጦች`,saveChanges:`ለውጦችን ያስቀምጡ`,savingChanges:`በማስቀመጥ ላይ...`,tokMax:`{tokens} ቶክ ማክስ`,emptyTitle:`እስካሁን ምንም የመክተት ሞዴሎች የሉም`,emptyDesc:`መክተትን የሚደግፍ የአቅራቢ ቁልፍ ካከሉ በኋላ ቤተሰቦችን መክተት እዚህ ይታያል።`,dragToReorder:`አቅራቢውን እንደገና ለማዘዝ ይጎትቱ`},fusion:{title:`ቅልጥፍና`,description:`የሞዴሎች ፓነል በትይዩ መልስ ይሰጣል, ከዚያም ዳኛ አንድ ጠንካራ መልስ ያዋህዳል. በሞዴል "ውህደት" API በመጥራት ይጠቀሙበት.`,panelSource:`የፓነል ምንጭ`,panelSourceHelp:`ጥያቄው የራሱን ካልገለጸ የፓነል ሞዴሎች ከየት ይመጣሉ።`,mode:{auto:`ራስ-ሰር (የውድቀት ሰንሰለት)`,autoHelp:`በንቃት የማዞሪያ ስትራቴጂዎ ደረጃ የተሰጣቸውን ከ Fallback Chainዎ የተለያዩ ሞዴሎችን ይምረጡ።`,explicit:`ግልጽ ፓነል`,explicitHelp:`ሁልጊዜ ከዚህ በታች የመረጡትን ልዩ ሞዴሎች ይጠቀሙ.`},panelModels:`የፓነል ሞዴሎች`,selectedCount:`የተመረጡ {max} {count}`,noModels:`እስካሁን ምንም ሞዴሎች አልተገናኙም. API ቁልፍ ያክሉ እና ከዚያ በ Fallback Chain ውስጥ ያሉ ሞዴሎችን ያንቁ።`,panelSize:`የፓነል መጠን`,panelSizeHelp:`ምን ያህል የተለያዩ ሞዴሎችን በራስ-ሰር መምረጥ (1-{max})።`,judge:`ዳኛ ሞዴል`,judgeHelp:`የፓነሉን መልሶች ወደ አንድ የሚያዋህደው ሞዴል። ራስ-ሰር የእርስዎን ከፍተኛ ደረጃ ያለው ሞዴል ይጠቀማል።`,judgeAuto:`ራስ-ሰር (ከፍተኛ ደረጃ ያለው ይገኛል)`,strategy:`ስትራቴጂ`,strategySynthesize:`ማዋሃድ - ፓነሉን ወደ አንድ መልስ ያዋህዱ`,strategyBestOf:`ምርጥ - ነጠላውን ጠንካራ መልስ ይመልሱ (የዳኛ ጥሪ የለም)`,strategySynthesizeShort:`ማዋሃድ`,strategyBestOfShort:`ከሁሉም ምርጥ`,exposePanel:`የፓነል ዝርዝሮችን ያጋልጡ`,exposePanelHelp:`የእያንዳንዱን ሞዴል መልስ እና የዳኛውን ሜታዳታ በምላሹ x_fusion መስክ ስር ያያይዙ።`,howToUse:`እንዴት መጠቀም እንደሚቻል`,howToUseHelp:`መደበኛ የውይይት ጥያቄ ከሞዴል "ውህደት" ጋር ይላኩ. እነዚህ ቅንብሮች ነባሪ ናቸው; ማንኛውም ጥያቄ በ"ውህደት" መስክ ሊሽራቸው ይችላል።`,unsavedChanges:`ያልተቀመጡ ለውጦች`,save:`አስቀምጥ`,searchPlaceholder:`Search models…`,providerFilterLabel:`Filter by provider`,providerAll:`All providers`,noMatch:`No models match your search.`},premium:{title:`ከፍተኛ`,description:`የቀጥታ ሞዴል ካታሎግ፣ በእያንዳንዱ መሳሪያ ላይ።`,loading:`በመጫን ላይ...`,checkForUpdates:`ዝማኔዎችን ያረጋግጡ`,syncing:`በማመሳሰል ላይ...`,catalogFeed:`ካታሎግ ምግብ`,liveFeed:`የቀጥታ ምግብ`,monthlySnapshot:`ወርሃዊ ቅጽበታዊ ገጽ እይታ`,lastChecked:`ለመጨረሻ ጊዜ የተፈተሸው {when}`,liveDescription:`አዲስ ነፃ ሞዴሎች፣ የኮታ ለውጦች እና ግርዶሽ ከተላኩ በሰዓታት ውስጥ እዚህ መሬት ያስተካክላሉ። መተግበሪያው በቀን ሁለት ጊዜ በራስ-ሰር ይፈትሻል; ምንም የሚሠራ ነገር የለም.`,snapshotDescription:`ነፃ ደረጃ ካታሎግ ከወርሃዊ ቅጽበታዊ ገጽ እይታ ያድሳል፣ በቀን ሁለት ጊዜ በራስ-ሰር ይፈተሻል። ፕሪሚየም ይህንን ወደ የቀጥታ ምግብ ይቀይረዋል፣ በየ2-3 ቀኑ ይሻሻላል።`,lastSyncProblem:`የመጨረሻው የማመሳሰል ችግር {error}`,license:`ፈቃድ`,planAnnual:`ፕሪሚየም ዓመታዊ`,planLifetime:`ፕሪሚየም የህይወት ዘመን`,expired:`ጊዜው ያለፈበት`,inactive:`እንቅስቃሴ-አልባ`,lifetimeNote:`የዕድሜ ልክ ፈቃድ መቼም አያልቅም።`,renewsOn:`በ {date} ላይ ያድሱ.`,willNotRenew:`አይታደስም። ፕሪሚየም እስከ {date}፣ ከዚያ ይህ ጭነት ወደ ነፃው ወርሃዊ ካታሎግ ይመለሳል።`,keyInactive:`ይህ ቁልፍ ከአሁን በኋላ ንቁ አይደለም. መተግበሪያው በነጻ ወርሃዊ ካታሎግ ላይ መስራቱን ይቀጥላል።`,manageSubscription:`የደንበኝነት ምዝገባን አስተዳድር`,openingPortal:`በመክፈት ላይ...`,removeKey:`ቁልፉን ከዚህ መሣሪያ ያስወግዱ`,manageHint:`የደንበኝነት ምዝገባን አስተዳድር Stripe የሂሳብ አከፋፈል ፖርታል ይከፍታል ካርድዎን ይሰርዙ፣ ያዘምኑ ወይም ደረሰኞችን ያውርዱ። ቁልፉን ማስወገድ ይህንን መሳሪያ ብቻ ያቦዝነዋል; ግዢዎ ያልተነካ ነው።`,licenseKey:`የፍቃድ ቁልፍ`,licenseKeyPlaceholder:`fla_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`,activate:`አግብር`,activating:`በማንቃት ላይ...`,keyHint:`ቁልፍዎ በግዢ ኢሜልዎ እና በድህረ-ተመዝግቦ መውጫ ገጽ ላይ ነው። አጣው?`,recoverKey:`በድር ጣቢያው ላይ መልሰው ያግኙት`,upsellTitle:`በዓመት በ 19 ዶላር በቀጥታ ይሂዱ`,upsellDescription:`ከ 30 ቀናት በኋላ ሳይሆን አዲስ ነፃ ሞዴሎች ባሉበት ቅጽበት። አንድ ቁልፍ, እያንዳንዱ መሣሪያ. በማንኛውም ጊዜ ሰርዝ; ራውተር ለዘላለም ነፃ ሆኖ ይቆያል።`,goPremium:`ፕሪሚየም ሂድ`,bundled:`የተጠቀለለ`,planGeneric:`ከፍተኛ`},languages:{en:`English`,"zh-CN":`中文 (简体)`,es:`Español`,fr:`Français`,"pt-BR":`Português (Brasil)`,it:`Italiano`,hi:`हिन्दी`,ar:`العربية`,bn:`বাংলা`,ru:`Русский`,ur:`اردو`,id:`Bahasa Indonesia`,de:`Deutsch`,ja:`日本語`,sw:`Kiswahili`,mr:`मराठी`,te:`తెలుగు`,tr:`Türkçe`,ta:`தமிழ்`,vi:`Tiếng Việt`,ko:`한국어`,fa:`فارسی`,th:`ไทย`,gu:`ગુજરાતી`,pl:`Polski`,uk:`Українська`,kn:`ಕನ್ನಡ`,ml:`മലയാളം`,or:`ଓଡ଼ିଆ`,my:`မြန်မာဘာသာ`,pa:`ਪੰਜਾਬੀ`,ro:`Română`,nl:`Nederlands`,ms:`Bahasa Melayu`,tl:`Filipino`,ha:`Hausa`,yo:`Yorùbá`,ig:`Igbo`,am:`አማርኛ`,uz:`Oʻzbekcha`,az:`Azərbaycanca`,si:`සිංහල`,ne:`नेपाली`,km:`ខ្មែរ`,el:`Ελληνικά`,cs:`Čeština`,hu:`Magyar`,sv:`Svenska`,he:`עברית`,da:`Dansk`,fi:`Suomi`,no:`Norsk`,sk:`Slovenčina`,bg:`Български`,hr:`Hrvatski`,sr:`Српски`,lt:`Lietuvių`,"zh-TW":`中文 (繁體)`,"pt-PT":`Português (Portugal)`,ka:`ქართული`},errors:{boundaryTitle:`የሆነ ችግር ተፈጥሯል`,boundaryDescription:`ዳሽቦርዱ ያልተጠበቀ ስህተት ገጥሟል። የእርስዎ ውሂብ ደህንነቱ የተጠበቀ ነው። እንደገና ይሞክሩ ወይም ወደ ሞዴሎች ገጽ ይመለሱ።`,tryAgain:`ድጋሚ ሞክር`,goHome:`ወደ ሞዴሎች ተመለስ`},notFound:{title:`ገጽ አልተገኘም`,description:`ይህ ገጽ የለም ወይም ተንቀሳቅሷል ።`},setup:{title:`መጀመር`,subtitle:`የመጀመሪያ ጥያቄዎን ለማስተላለፍ ሶስት ደረጃዎች።`,progress:`{done} 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:`የሚሰራ 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:`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:`نماذج`,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:`لا يتضمن هذا التثبيت معلومات الالتزام.`,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:`طلبات المحادثة فقط، منذ بداية هذا الشهر الميلادي، مجمَّعة عبر كل النماذج في السلسلة النشطة — بما في ذلك النقاط المخصّصة. لا تُحتسب حركة المرور التي ترسلها إلى مزوّد خارج SRouter.`,legendRemainingTitle:`المتبقي / الميزانية الشهرية لـ {name} ({platform})`,noPublishedQuota:`+{count} بلا حصة منشورة`,noPublishedQuotaTitle:`هذه النماذج ليس لها ميزانية رموز شهرية موثّقة، لذا لا يوجد متبقٍ لعرضه.`,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} سي تي إكس`,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:`يمنح النماذج التي لا توجد لها بيانات موثوقية أو سرعة فرصة بنسبة 10% لتُجرَّب أولاً حتى تراكم سجلاً. ما يُرسَل هو طلبك الحقيقي، لذا قد يجيب عنه نموذج لم يُختبر بعد. أما نقطة النهاية المخصّصة فاختبرها من صفحة المفاتيح عبر «اختبار نقطة النهاية» دون استهلاك حركة حقيقية.`,keySelection:`اختيار المفتاح`,keySelectionAuto:`تلقائي`,keySelectionLeastRemaining:`الأقل تبقياً`,keySelectionHint:`كيفية الاختيار بين عدة مفاتيح لنفس المزوّد. "تلقائي" يبقي التناوب الحالي؛ و"الأقل تبقياً" يرتّب المفاتيح حسب الحصة المرصودة ويجرّب أولاً المفتاح الذي تبقّى له أكثر.`,cooldownCeiling:`أطول تهدئة تلقائية`,cooldownCeilingHint:`يحدّ من المدة التي يمكن فيها لتخمينات الموجّه نفسه إيقاف زوج مفتاح ونموذج فاشل. يرتفع السلّم عادةً إلى 2 د، 10 د، ساعة، 24 ساعة، وتوقف أخطاء الرصيد أو المستوى ليوم كامل. لا تُقصَّر أبدًا أوقات إعادة المحاولة التي يحددها المزوّد.`,cooldownCeilingDefault:`افتراضي (حتى 24 ساعة)`,cooldownCeiling10m:`10 دقائق`,cooldownCeiling1h:`ساعة واحدة`,cooldownCeiling6h:`6 ساعات`,moreOptions:`المزيد من الخيارات`,peakActive:`(ساعات الذروة)`,peakActiveHint:`تعديل ساعات الذروة مفعّل الآن، لذا هذه ليست أوزان الإعداد المسبق نفسه: نُقل 60% من وزن السرعة إلى الموثوقية.`,peakAdjust:`تعديل ساعات الذروة`,peakAdjustHint:`معطّل افتراضيًا. ضمن النافذة أدناه يُنقل 60% من وزن السرعة إلى الموثوقية — إذ تكون المرحّلات المجانية أكثر ازدحامًا حينها، فتتنبأ الموثوقية بالنجاح أفضل من الإنتاجية الخام. لا يتأثر «الأسرع» ولا «الأكثر موثوقية».`,peakFrom:`من`,peakTo:`إلى`,peakTimezoneLabel:`المنطقة الزمنية`,peakUseBrowserTimezone:`استخدام المنطقة الزمنية للمتصفح`,peakTimezoneInvalid:`منطقة زمنية غير معروفة.`,peakExemptNote:`هذا الإعداد المسبق لا يتأثر — فهو أصلًا عند أحد طرفي المفاضلة بين السرعة والموثوقية.`,title:`استراتيجية التوجيه`,description:`اختر استراتيجية التوجيه. في الوضع اليدوي، يمكنك السحب لتعيين الترتيب؛ يتم توجيه الاستراتيجيات الأخرى من خلال النتيجة المباشرة عبر الموثوقية والسرعة والذكاء.`,weightsSummary:`الموثوقية {reliability}% · السرعة {speed}% · الذكاء {intelligence}%`,guardrails:`الدرابزين`,guardrailsTooltip:`حواجز حماية دائمة: مساحة رأسية مجانية × عقوبة حد السعر المباشر. أقل من 1.0 يعني أن النموذج متوقف.`,scoreTooltip:`نتيجة التوجيه النهائية = المتوسط المرجح للمحاور الثلاثة، مضروبًا في الدرابزين. الطرق العليا أولا.`,modeManualHint:`الوضع اليدوي: تتبع الطلبات الترتيب أدناه، من الأعلى إلى الأسفل. اسحب لإعادة الترتيب.`,modeScoreHint:`تحديث النتائج من حركة المرور الحية. الترتيب أدناه هو كيفية توجيه الطلبات الآن.`,manual:`دليل`,manualBlurb:`قم بالتوجيه بالترتيب الدقيق الذي حددته أدناه. اسحب المقابض لإعادة الترتيب. لا يوجد تسجيل. يتم اتباع السلسلة من الأعلى إلى الأسفل.`,balanced:`متوازن`,balancedBlurb:`الموثوقية (50%)، مع تساوي السرعة والذكاء (25% لكل منهما). افتراضي معقول من جميع النواحي.`,smartest:`أذكى`,smartestBlurb:`تفضل النموذج الأكثر قدرة الذي لا يزال يعمل. الذكاء 55%، الموثوقية 35%، السرعة 10%.`,fastest:`الأسرع`,fastestBlurb:`تفضل النموذج الأسرع الذي لا يزال يعمل. السرعة 55%، الموثوقية 35%، الذكاء 10%.`,reliable:`الأكثر موثوقية`,reliableBlurb:`تعظيم معدل النجاح قبل كل شيء. الموثوقية 70% والسرعة والذكاء 15% لكل منهما.`,custom:`مخصص`,customBlurb:`اضبط التوازن الخاص بك بين الموثوقية والسرعة والذكاء باستخدام أشرطة التمرير. نفس المحرك مثل الإعدادات المسبقة، فقط أوزانك.`,adjust:`ضبط`,customWeights:`الأوزان المخصصة`,customWeightsHelp:`المتزلجون مستقلون. أسهم التوازن التلقائي إلى 100٪.`,weightReliability:`الموثوقية`,weightSpeed:`السرعة`,weightIntelligence:`الذكاء`,weightRequired:`يجب أن يكون وزن واحد على الأقل أعلى من الصفر.`,scoreColumn:`النتيجة`},penaltyInspector:{title:`ضغط جهاز التوجيه`,subtitle:`العقوبات وفترات التهدئة والإخفاقات من آخر دقيقة {minutes}`,rowCount:`{count} نشط`,offChain:`خارج السلسلة`,penaltyValue:`ضربة جزاء {value}`,factor:`النتيجة x{factor}`,noCooldown:`لا يوجد تهدئة`,cooldownChip:`{key} - {time}`,resetCooldown:`Reset cooldown`,clearAll:`مسح الكل`,clearAllHint:`يرفع فورًا كل فترات التهدئة والعقوبات وسلاسل الفشل. يُعاد بناء الضغط من النتائج الفعلية التالية.`,errorsHeading:`الأخطاء الأخيرة {count}`,noRecentErrors:`لا توجد أخطاء الأخيرة`,noKey:`لا يوجد مفتاح`,reasons:{penalty:`يعاقب`,cooldown:`فترة التهدئة`,recent_errors:`فاشل`}},keys:JSON.parse(`{"pageTitle":"مفاتيح","pageDescription":"بيانات اعتماد الموفر ومفتاح API الموحد الذي تتصل به تطبيقاتك.","tabProviders":"مقدمي الخدمات","checklistSummary":"تم إعداد {configured} من {total} من مقدمي الخدمات","checklistKeyless":"لا حاجة لمفتاح","checklistNoKeyTip":"لم تتم إضافة أي مفتاح بعد. انقر لإضافة مفتاح.","checklistSignupLink":"افتح {provider} لإنشاء حساب والحصول على مفتاح","checklistKeylessTip":"يعمل بدون مفتاح.","tabQuotaSignals":"إشارات الحصص","tabApiKey":"مفتاح API الموحد","tabAnthropic":"Anthropic","unifiedKey":"مفتاح API الموحد الخاص بك","regenerate":"تجديد","showKey":"عرض","hideKey":"إخفاء","copyKey":"نسخ","copyFullKey":"نسخ المفتاح الكامل","copiedKey":"منقول","baseUrl":"قاعدة URL","endpointChat":"الدردشة","endpointResponses":"الردود","endpointEmbeddings":"التضمين","endpointEmbeddingsHint":"model: \\"auto\\" أو عائلة من علامة التبويب Embeddings","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":"توجيه طلبات 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":"قصر هذا المفتاح على معرّفات نماذج محددة. يتخطى الموجّه هذا المفتاح لأي نموذج آخر.","modelScopeAdd":"أدخل معرّف نموذج ثم اضغط Enter","modelScopeEmpty":"لا يوجد نطاق محدد — يخدم هذا المفتاح جميع نماذج مزوّده.","modelScopeClear":"مسح النطاق","modelScopeBadgeOne":"مقيّد · نموذج واحد","modelScopeBadgeOther":"مقيّد · {count} نماذج","modelPicker":{"title":"ما النماذج التي ينبغي أن يخدمها هذا المفتاح؟","hint":"تمت إضافة مفتاح {provider} الخاص بك، وهو يخدم حاليًا كل نموذج أدناه. ألغِ تحديد أي نموذج لا يُسمح لهذا المفتاح باستخدامه — سيتخطاه الموجّه لتلك النماذج.","count":"تم تحديد {selected} من {total}","allNote":"كل النماذج محددة — لا يُحفظ أي نطاق، وستستخدم النماذج التي تُضاف إلى الكتالوج لاحقًا هذا المفتاح أيضًا.","subsetNote":"سيقتصر هذا المفتاح على النماذج المحددة. يمكنك تغيير ذلك لاحقًا من صف المفتاح.","skip":"ليس الآن","scopedOne":"المفتاح مقيّد بنموذج واحد","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":"أدخل معرّف الحساب ورمز API معاً.","editModels":"تحرير النماذج","editModelsHint":"Choose which catalog models this key may serve. Select everything to clear the scope so future catalog models use it too.","editModelsCustomHint":"Choose which registered endpoint models this key may serve. Select everything to clear the scope.","editModelsSync":"Check catalog updates","editModelsSyncing":"Checking…","editModelsSynced":"Model catalog checked","outlookUnavailable":"Unavailable","outlookNoForecasts":"Forecast unavailable. More recent traffic or reliable quota readings are needed.","outlookCoverage":"Forecasts available for {count} of {total} pools.","outlookTraffic":"{count} successful requests through this instance in the last {minutes} minutes.","outlookMinimumTraffic":"An exhaustion forecast needs at least {count} successful requests within {minutes} minutes.","outlookNotReportedHint":"The provider has not reported a usable request balance and limit. Local usage is shown; remaining quota is unavailable.","outlookMissingResetHint":"The provider did not report a valid reset time. Remaining quota cannot support an exhaustion forecast.","outlookConfidenceHint":"This balance is not reliable enough for an exhaustion forecast.","outlookObserved":"Balance observed: {time}","outlookUnavailablePools":"Unavailable quota pools ({count})","outlookTitle":"Quota outlook","outlookInsufficient":"Not enough data","outlookLowBalance":"Low balance","outlookRunningLow":"Running low soon","outlookStale":"Needs fresh data","outlookUnknown":"Unknown","outlookWithinQuota":"Within quota","outlookResetsFirst":"Not before reset","outlookExhausted":"Already exhausted","outlookLastReported":"requests last reported","outlookRequestsLeft":"requests left","outlookNotReported":"Not reported","outlookRate":"Recent rate","outlookRateValue":"{count} req/min","outlookRunsOut":"May run out","outlookStaleHint":"This balance is old or its window has expired. A fresh provider reading is needed.","outlookError":"Could not load quota forecasts. Raw observations are still available below.","outlookRetry":"Retry","outlookAttention":"Quota pools needing attention: {count}","outlookNoWarnings":"No forecast warnings. Pools with insufficient data may still be limited.","outlookHint":"Rates count successful requests through this instance only, not usage elsewhere. Forecasts require recent provider balances and reported resets. Warnings appear below 20% remaining or when quota may run out within two hours, before reset.","outlookRaw":"Raw quota observations","addCustomModel":"إضافة نموذج مخصص","modelId":"معرّف النموذج","modelIdRequired":"معرّف النموذج مطلوب","modelDisplayName":"اسم العرض","modelContextWindow":"نافذة السياق (رموز)","modelRateLimits":"حدود المعدل (اختياري)","modelSupportsTools":"يدعم استدعاء الأدوات","modelSupportsToolsHint":"فعّل هذا الخيار إذا كان النموذج قادراً على استدعاء الدوال والأدوات","modelSupportsVision":"يدعم الرؤية والصور","modelSupportsVisionHint":"فعّل هذا الخيار إذا كان النموذج يقبل إدخال الصور","createModel":"إنشاء النموذج","modelAddedSuccess":"تمت إضافة النموذج المخصص بنجاح","modelAddFailed":"فشل في إضافة النموذج المخصص","testModel":"اختبار","testingModel":"جارٍ الاختبار…","testPassedShort":"ناجح","testFailedShort":"فاشل","testPassed":"اجتاز النموذج الاختبار في {latency} مللي ثانية","testFailed":"فشل اختبار النموذج","testThrottled":"يرجى الانتظار {seconds} ثانية قبل اختبار هذا النموذج مرة أخرى.","noModelsForProvider":"لا توجد نماذج مهيأة لهذا المزود.","testModels":"اختبار النماذج","syncAllCatalog":"Catalog: +{inserted} added, ~{updated} updated, -{removed} removed","requestCapLabel":"Request cap","tokenCapLabel":"Token cap","budgetPeriodLabel":"Budget period","budgetPeriodDaily":"Daily","budgetPeriodWeekly":"Weekly","budgetPeriodMonthly":"Monthly","budgetPeriodAuto":"Auto (follow provider)","autoResolvedDaily":"Detected provider cycle: daily","autoResolvedMonthly":"Detected provider cycle: monthly","autoResolvedFallback":"Provider cycle unknown, defaulting to monthly","capUnlimitedPlaceholder":"غير محدود","capEditHint":"Caps reset at the next period boundary, 00:00 UTC. Leave blank for unlimited.","monthlyUsageLine":"{requests} طلبًا، {tokens} رمز هذا الشهر","monthlyUsageRequests":"{requests} requests","monthlyUsageTokens":"{tokens} tokens","monthlyUsageRequestsRelative":"{used} / {cap} ({remaining} left) requests","monthlyUsageTokensRelative":"{used} / {cap} ({remaining} left) tokens","monthlyUsageReset":"reset {date}"}`),backups:{title:`Backups`,description:`Save the routing data to a .sql file beside the database, and restore it later.`,excludedNote:`A backup carries your providers, models, routing settings and request history. Accounts, sessions and URL tokens are never included, so a dump holds no password hashes or login tokens and restoring one cannot log you out. Provider keys stay encrypted with this server's ENCRYPTION_KEY: a backup can only be restored on a server that still holds that key.`,selectHint:`Back up everything, or pick the tables you need.`,selectAll:`Select all`,deselectAll:`Clear`,fullBackup:`Full backup`,backupSelected:`Back up selected ({count})`,created:`Backup written to {filename}`,list:`Backups on disk`,empty:`No backups yet`,full:`All tables`,tablesCount:`{count} tables`,manual:`Manual`,scheduled:`Scheduled`,preRestore:`Pre-restore`,download:`Download`,restore:`Restore`,confirmRestore:`Replace data?`,restored:`Restored. The previous data was saved as {filename}.`,delete:`Delete backup`,prevPage:`Previous`,nextPage:`Next`,autoTitle:`Automatic backups`,autoHint:`The server writes a full backup on this cadence.`,time:`Time (HH:mm)`,intervalDays:`Every N days`,path:`Folder`,pathPlaceholder:`backups`,pathHint:`Relative to the database directory. Backups cannot be written outside it.`,save:`Save schedule`,saved:`Saved`},status:{healthy:`صحي`,rateLimited:`معدل محدود`,invalid:`غير صالح`,error:`خطأ`,unchecked:`غير محدد`},analytics:{title:`التحليلات`,description:`حجم الطلب وزمن الوصول واستخدام الرمز المميز والفشل.`,range24h:`24 ساعة`,range7d:`7 د`,range30d:`30 د`,range90d:`90 د`,requests:`الطلبات`,successRate:`معدل النجاح`,inputTokens:`رموز الإدخال`,outputTokens:`رموز الإخراج`,avgLatency:`متوسط زمن الوصول`,p95Latency:`الكمون P95`,avgTtft:`متوسط TTFT`,estSavings:`مؤسسة. المدخرات`,requestsByProvider:`الطلبات من قبل المزود`,avgLatencyByProvider:`متوسط زمن الوصول حسب الموفر`,ttftByProvider:`الوقت لأول رمز مميز من قبل الموفر`,ttftEmpty:`لا يوجد وقت لتسجيل الرمز المميز الأول حتى الآن.`,requestsOverTime:`الطلبات مع مرور الوقت`,tokensOverTime:`الرموز مع مرور الوقت`,byModel:`حسب النموذج`,byPlatform:`بواسطة منصة`,errors:`أخطاء`,errorDistribution:`توزيع الخطأ`,pinnedRequests:`الطلبات المثبتة`,pinnedHonored:`تكريم`,fallbackAttempts:`محاولات تراجعية`,savingsHint:`لقد قمت بالفعل بتوفير {actual} دولارًا خلال {range} الأخير. هذا هو ما ستكلفه نفس الرموز المميزة على واجهات برمجة التطبيقات المدفوعة، بسعر كل نموذج. يعرض الرقم الموضح سرعتك من آخر {span} من البيانات إلى 30 يومًا كاملة.`,savingsHintExact:`لقد قمت بالفعل بتوفير {actual} دولارًا خلال {range} الأخير. هذا هو ما ستكلفه نفس الرموز المميزة على واجهات برمجة التطبيقات المدفوعة، بسعر كل نموذج. الرقم الموضح هو الإجمالي الحقيقي لمدة 30 يومًا.`,requestsHintPinned:`قامت {pinned} من هذه الطلبات بتثبيت نموذج محدد بالاسم. تم تقديم {honored} بواسطة النموذج المثبت. فشل {failed} في الانتقال إلى آخر. تم توجيه الباقي تلقائيًا.`,requestsHintAuto:`تم توجيه جميع الطلبات في هذه الفترة تلقائيًا؛ لم يقم أي عميل بتثبيت نموذج محدد بالاسم.`,requestsHintTypes:`طلبات الدردشة والتضمين {chat} {embedding}.`,rangeLabel24h:`24 ساعة`,rangeLabel7d:`7 أيام`,rangeLabel30d:`30 يوما`,rangeLabel90d:`90 يوما`,spanDays:`أيام {count}`,spanHours:`ساعات {count}`,latencyMs:`الكمون (ملي ثانية)`,latency:`الكمون`,pinned:`مثبت`,inTokens:`في الرموز`,outTokens:`الرموز الخارجية`,saved:`تم الحفظ`,message:`رسالة`,time:`الوقت`,perModelBreakdown:`انهيار لكل نموذج`,usageByKey:`الاستخدام عن طريق المفتاح`,keyColumn:`مفتاح`,keyLabelFallback:`المفتاح #{id}`,errorsByProvider:`أخطاء من قبل المزود`,recentErrors:`الأخطاء الأخيرة`,noErrors:`لا توجد أخطاء`,recentCalls:`المكالمات الأخيرة`,clientIp:`عنوان 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:`الانصهار (توليف متعدد النماذج)`,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 بالنموذج "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:`الأفضل - عرض أقوى إجابة منفردة (بدون استدعاء القاضي)`,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:`الطبقة المجانية: يتم تحديث الكتالوج من خلال لقطة شهرية، ويتم فحصه تلقائيًا مرتين يوميًا. يقوم Premium بتحويل هذا إلى البث المباشر، الذي يتم تحديثه كل 2-3 أيام.`,lastSyncProblem:`مشكلة المزامنة الأخيرة: {error}`,license:`الترخيص`,planAnnual:`قسط سنوي`,planLifetime:`قسط مدى الحياة`,expired:`انتهت صلاحيتها`,inactive:`غير نشط`,lifetimeNote:`ترخيص مدى الحياة: لا تنتهي صلاحيته أبدًا.`,renewsOn:`يتم التجديد على {date}.`,willNotRenew:`لن تجدد. Premium حتى {date}، ثم يعود هذا التثبيت إلى الكتالوج الشهري المجاني.`,keyInactive:`هذا المفتاح لم يعد نشطا. يستمر التطبيق في العمل على الكتالوج الشهري المجاني.`,manageSubscription:`إدارة الاشتراك`,openingPortal:`الافتتاح…`,removeKey:`قم بإزالة المفتاح من هذا الجهاز`,manageHint:`إدارة الاشتراك تفتح بوابة الفوترة الخاصة بـ Stripe: قم بإلغاء بطاقتك أو تحديثها أو تنزيل الفواتير. تؤدي إزالة المفتاح إلى إلغاء تنشيط هذا الجهاز فقط؛ عملية الشراء الخاصة بك لم تمس.`,licenseKey:`مفتاح الترخيص`,licenseKeyPlaceholder:`fla_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`,activate:`تفعيل`,activating:`جارٍ التنشيط…`,keyHint:`مفتاحك موجود في البريد الإلكتروني الخاص بالشراء وفي صفحة ما بعد الخروج. فقدت ذلك؟`,recoverKey:`استعادتها على الموقع`,upsellTitle:`ابدأ البث المباشر مقابل 19 دولارًا سنويًا`,upsellDescription:`نماذج مجانية جديدة فور وجودها، بدلاً من مرور 30 يومًا. مفتاح واحد لكل جهاز. إلغاء في أي وقت؛ يبقى جهاز التوجيه مجانيًا إلى الأبد.`,goPremium:`اذهب إلى الإصدار المميز`,bundled:`المجمعة`,planGeneric:`قسط`},languages:{en:`English`,"zh-CN":`中文 (简体)`,es:`Español`,fr:`Français`,"pt-BR":`Português (Brasil)`,it:`Italiano`,hi:`हिन्दी`,ar:`العربية`,bn:`বাংলা`,ru:`Русский`,ur:`اردو`,id:`Bahasa Indonesia`,de:`Deutsch`,ja:`日本語`,sw:`Kiswahili`,mr:`मराठी`,te:`తెలుగు`,tr:`Türkçe`,ta:`தமிழ்`,vi:`Tiếng Việt`,ko:`한국어`,fa:`فارسی`,th:`ไทย`,gu:`ગુજરાતી`,pl:`Polski`,uk:`Українська`,kn:`ಕನ್ನಡ`,ml:`മലയാളം`,or:`ଓଡ଼ିଆ`,my:`မြန်မာဘာသာ`,pa:`ਪੰਜਾਬੀ`,ro:`Română`,nl:`Nederlands`,ms:`Bahasa Melayu`,tl:`Filipino`,ha:`Hausa`,yo:`Yorùbá`,ig:`Igbo`,am:`አማርኛ`,uz:`Oʻzbekcha`,az:`Azərbaycanca`,si:`සිංහල`,ne:`नेपाली`,km:`ខ្មែរ`,el:`Ελληνικά`,cs:`Čeština`,hu:`Magyar`,sv:`Svenska`,he:`עברית`,da:`Dansk`,fi:`Suomi`,no:`Norsk`,sk:`Slovenčina`,bg:`Български`,hr:`Hrvatski`,sr:`Српски`,lt:`Lietuvių`,"zh-TW":`中文 (繁體)`,"pt-PT":`Português (Portugal)`,ka:`ქართული`},errors:{boundaryTitle:`حدث خطأ ما`,boundaryDescription:`واجهت لوحة القيادة خطأ غير متوقع. بياناتك آمنة. حاول مرة أخرى أو ارجع إلى صفحة النماذج.`,tryAgain:`حاول مرة أخرى`,goHome:`العودة إلى النماذج`},notFound:{title:`لم يتم العثور على الصفحة`,description:`هذه الصفحة غير موجودة أو ربما تم نقلها.`},setup:{title:`البدء`,subtitle:`ثلاث خطوات لتوجيه طلبك الأول.`,progress:`{done} من {total}`,step1Title:`أضف مفتاح الموفر`,step1Desc:`قم بتوصيل حساب موفر واحد على الأقل. تعمل المفاتيح المجانية.`,step1Cta:`إضافة مفاتيح`,step2Title:`إرسال طلب اختبار`,step2Desc:`اختر أي نموذج في ساحة اللعب وألقِ التحية.`,step2Cta:`ملعب مفتوح`,step3Title:`قم بتوصيل التطبيق الخاص بك`,step3Desc:`استخدم مفتاح API الموحد الخاص بك مع أي عميل متوافق مع OpenAI.`,copyKey:`انسخ مفتاح API`,copyUrl:`انسخ قاعدة URL`,copiedKey:`تم نسخ مفتاح API إلى الحافظة`,copiedUrl:`تم نسخ قاعدة URL إلى الحافظة`},palette:{title:`لوحة الأوامر`,placeholder:`صفحات البحث والنماذج والإجراءات ...`,empty:`لا توجد نتائج`,groupPages:`الصفحات`,groupActions:`الإجراءات`,groupModels:`نماذج`,toggleTheme:`تبديل الوضع المظلم`},validation:{required:`مطلوب`,url:`أدخل URL صالحًا يبدأ بـ 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: يخطط ويعدّل الملفات وينفّذ الأوامر داخل مستودعك.`,codex:`وكيل الطرفية من OpenAI، ينفّذ مهمتك أولاً في بيئة معزولة محلية.`,cline:`امتداد لـ VS Code يطلب موافقتك على كل تعديل وكل أمر.`,continue:`امتداد لـ VS Code وJetBrains: إكمال تلقائي ومحادثة أثناء الكتابة.`,aider:`رفيق برمجة في سطر الأوامر يحوّل كل تغيير إلى التزام git مستقل.`,opencode:`وكيل طرفية لا يرتبط بمزوّد بعينه، بواجهة نصية بملء الشاشة.`,goose:`وكيل Block المحلي، يتوسّع بخوادم MCP إلى ما هو أبعد من الشيفرة.`,qwen:`اشتقاق من Gemini CLI مضبوط لنماذج Qwen وللمستودعات الكبيرة.`,roo:`امتداد لـ VS Code بأوضاع قابلة للتبديل: معماري ومبرمج ومنقّح.`,kilo:`امتداد لـ VS Code يدمج Roo وCline، ومعه منسّق يقسّم العمل.`,crush:`وكيل الطرفية من Charm، مكتوب بلغة Go، بجلسة واحدة لكل مشروع.`,dsh:`إطار DeepSeek، يحفظ كل مزوّد كمسار يمكنك التبديل بينه وبين غيره.`,mimo:`وكيل الطرفية من Xiaomi، اشتقاق من OpenCode يقبل أي مزوّد متوافق مع OpenAI.`,cursor:`المحرّر القائم على الذكاء الاصطناعي؛ يمرّ عبر سحابة Cursor، لذا يحتاج عنوان URL عامًا.`,generic:`أي أداة أخرى تتحدث واجهة OpenAI، تُضبط يدويًا بعنوان أساسي ومفتاح.`,atomcode:`وكيل الطرفية من AtomGit، مكتوب بلغة Rust، يقبل أي نقطة نهاية متوافقة مع OpenAI.`,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:`مجمّعات الطبقة المجانية ({count})`,poolsToggleBare:`مجمّعات الطبقة المجانية`,summary:`{pools} مجمّعات · {budget} رمز/شهر تُحتسب مرة واحدة لكل مجمّع · {credits} بالأرصدة · {unpublished} غير معلنة`,pool:`المجمّع`,models:`النماذج`,budget:`الميزانية الشهرية`,kind:`النوع`,kindDocumented:`موثّق`,kindCredits:`أرصدة`,kindUnpublished:`غير معلن`,remaining:`المتبقي`,resetAt:`يُعاد الضبط`,disabledModels:`({count} معطّل)`,metricTokens:`رمز`,metricRequests:`طلب`,metricCredits:`رصيد`,metricNeurons:`خلية عصبية`,metricOther:`وحدة`,empty:`لا توجد نماذج مفعّلة تحتوي على بيانات ميزانية الطبقة المجانية.`,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:`اجعل الجدول أدناه يحرّر هذه السلسلة واجعل التوجيه التلقائي يمرّ عبرها`,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:`Modellər`,playground:`Uşaq meydançası`,keys:`Açarlar`,analytics:`Analitika`,premium:`Premium`,upgrade:`Yeniləmə`,settings:`Parametrlər`,signOut:`Çıxış`,openMenu:`Naviqasiya menyusunu aç`,switchLight:`Yüngül mövzuya keçid`,switchDark:`Qaranlıq mövzuya keçid`,switchToChinese:`Çin dilinə keçid`,switchToEnglish:`İngiliscəyə keçid`,modelsMenu:`Model tiplərinə baxın`,agents:`Agentlər`,logs:`Loglar`,analyticsMenu:`Analitika səhifələri`,notifications:`Notifications`,noNotifications:`No notifications yet`},auth:{createYourAccount:`Hesabınızı yaradın`,signIn:`Daxil olmaq`,email:`Email`,password:`Şifrə`,emailPlaceholder:`you@example.com`,passwordPlaceholderSetup:`ən azı 8 personaj`,passwordPlaceholderLogin:`Şifrəniz`,setupDescription:`Bu paneli qoruyacaq e-poçt və şifrəni təyin edin.`,loginDescription:`Açarlarınızı, marşrutlaşdırmanı və analitikanızı idarə etmək üçün daxil olun.`,createAccount:`Hesab yarat`,creating:`Yaratmaq...`,signingIn:`Giriş edirəm...`,loading:`Yüklənir...`,newPasswordAutoComplete:`yeni-şifrə`,currentPasswordAutoComplete:`current-password`,serverUnreachableBefore:`Serverə çatmaq olmur. Arxa planın işlədiyinə əmin olun (`,serverUnreachableAfter:`).`,setupCode:`Quraşdırma kodu`,setupCodePlaceholder:`Server loglarından kod`,setupCodeHint:`Başqa cihazdan quraşdırmaq üçün server loglarında bir dəfəlik kodun çap olunması lazımdır.`,changePassword:`Parolu dəyiş`,changeEmail:`E-poçtu dəyiş`,forgotPassword:`Parolu unutmusunuz?`,currentPassword:`Cari parol`,newPassword:`Yeni parol`,newEmail:`Yeni e-poçt`,resetCode:`Sıfırlama kodu`,resetCodePlaceholder:`server jurnallarındakı kod`,resetCodeHint:`Kod server jurnalındadır. E-poçtla heç vaxt göndərilmir.`,forgotPasswordDescription:`Sıfırlama kodu yaratmaq üçün aşağıdakı düyməyə klikləyin. Kod server jurnalına yazılır, e-poçtla heç vaxt göndərilmir. Yeni parol təyin etmək üçün onu buraya daxil edin.`,requestResetCode:`Kodu göndər`,requestingResetCode:`Göndərilir…`,resetPassword:`Parolu sıfırla`,resettingPassword:`Sıfırlanır…`,changingPassword:`Dəyişdirilir…`,changingEmail:`Dəyişdirilir…`,backToLogin:`Girişə qayıt`,passwordChanged:`Parol uğurla dəyişdirildi.`,emailChanged:`E-poçt uğurla dəyişdirildi.`,passwordReset:`Parol sıfırlandı. Zəhmət olmasa daxil olun.`,resetCodeDockerHint:`Docker-də işləyirsiniz? Kod konteyner jurnalındadır: docker logs <container>.`,desktopSessionFailed:`İdarə paneli lokal serverə daxil ola bilmədi. SRouter-dən çıxın və yenidən açın.`},common:{save:`Xilas et`,saving:`Qurtarmaq...`,cancel:`Ləğv etmək`,discard:`Atmaq`,delete:`Sil`,confirm:`Təsdiqlə`,copy:`Alındı`,copied:`Kopyalandı`,copyFailed:`Kopyalamaq alınmadı — mətni seçib əl ilə kopyalayın`,show:`Şou`,hide:`Gizlən`,apply:`Müraciət et`,applied:`Tətbiqlər`,applying:`Müraciət edirəm...`,active:`Aktiv`,inactive:`Qeyri-aktiv`,never:`Heç vaxt`,loading:`Yüklənir...`,error:`Səhv`,noData:`Hələ məlumat yoxdur`,unsavedChanges:`Yadda saxlanmamış dəyişikliklər`,saveChanges:`Yaddaş dəyişiklikləri`,remove:`Çıxar`,unknownError:`Naməlum səhv`,model:`Model`,provider:`Təchizatçı`,success:`Uğur`,failures:`Uğursuzluqlar`,dismiss:`Rədd et`,status:`Status`},settings:{title:`Parametrlər`,language:`Dil`,theme:`Mövzu`,themeSystem:`Sistem`,themeLight:`İşıqlı`,themeDark:`Tünd`,searchLanguage:`Dilləri axtar...`,noLanguages:`Heç bir dil tapılmadı`,sections:`Parametr bölmələri`,sectionGeneral:`Ümumi`,sectionCompression:`Sıxılma`,sectionAdvanced:`Ətraflı`,sectionPreview:`Ön baxış`,generalDescription:`Bu panelin dili və görünüşü.`,advancedDescription:`Sıxılma prosesi üçün hədlər və təhlükəsizlik açarları.`,compressionTitle:`Prompt sıxılması`,compressionDescription:`Kodu, səhvləri, yolları, rəqəmləri və alət təriflərini qoruyaraq marşrutlaşdırmadan əvvəl sorğu ölçüsünü azaldın.`,compressionHelp:`Hər sorğunu təchizatçıya göndərilməzdən əvvəl daha az token istifadə etməsi üçün yenidən yazır. Kod, səhvlər, fayl yolları və rəqəmlər qorunur, onlara zərər verən istənilən yenidən yazma ləğv edilir.`,compressionMode:`Rejim`,compressionModeHelp:`Söndürülüb rejimində sorğular olduğu kimi göndərilir. İtkisiz yalnız təkrarlanan və artıq mətni silir. Standart əlavə olaraq alət çıxışını qısaldır. Aqressiv bundan başqa köhnə növbələri sıxır.`,compressionOff:`Söndürülüb`,compressionLossless:`İtkisiz`,compressionStandard:`Standart`,compressionAggressive:`Aqressiv`,compressionLossy:`İtkili`,compressionEngines:`Mühərriklər`,compressionEnginesHelp:`Hər mühərrik bir yenidən yazma addımıdır. Hansı mühərriklərin işləyəcəyini rejim müəyyən edir; burada birini söndürmək onu bütün rejimlərdən kənarda saxlayır.`,engineDedup:`Təkrarlanan bloklar`,engineDedupHelp:`Söhbətdə əvvəllər görünmüş mətn blokunu ona qısa istinadla əvəz edir.`,engineLite:`Boşluqların təmizlənməsi`,engineLiteHelp:`Sətir sonundakı boşluqları kəsir, təkrarlanan boş sətirləri birləşdirir və təkrarlanan sistem mesajlarını silir.`,engineReadLifecycle:`Köhnəlmiş fayl oxumaları`,engineReadLifecycleHelp:`Eyni fayl sonradan yenidən oxunduqda və ya redaktə edildikdə, əvvəlki fayl oxumasını qısa qeydlə əvəz edir.`,engineToolfilter:`Alət çıxışı filtri`,engineToolfilterHelp:`Qurma, test və quraşdırma kimi əmr və alət çıxışlarını qısaldır. Səhv və stek izi sətirləri həmişə saxlanılır.`,engineJsoncompact:`JSON cədvəlləri`,engineJsoncompactHelp:`Eyni sahələrə malik uzun JSON massivlərini yığcam cədvəl kimi yenidən kodlaşdırır. Geri qaytarıla bilər, ona görə heç nə itmir.`,engineRelevance:`Uyğunluq filtri`,engineRelevanceHelp:`Mesaj ölçü büdcəsini aşdıqda, son mesajla ən az əlaqəli cümlələri silir.`,engineAging:`Köhnə növbələr`,engineAgingHelp:`Son bir neçə növbədən əvvəlkiləri yolları, səhvləri və qərarları saxlayan qısa xülasəyə yığır.`,engineHardBudget:`Token həddi`,engineHardBudgetHelp:`Sorğu token hədəfinə sığana qədər ən az dəyərli sətirləri silir.`,compressionAutoTrigger:`Təxmini token həddi aşıldıqda avtomatik başlat`,compressionAutoTriggerHelp:`Təxminən bu token sayından çox olan sorğular avtomatik olaraq Aqressiv rejimə keçir. Söndürmək üçün boş buraxın.`,compressionPrefixFreeze:`Təkrarlanan prompt prefikslərini dondur`,compressionPrefixFreezeHelp:`Eyni mətn üç dəfə göründükdən sonra sistem promptuna toxunmur ki, təchizatçı tərəfindəki prompt keşi işləməyə davam etsin.`,compressionTrustProjectFilters:`Layihə filtr fayllarına etibar et`,compressionTrustProjectFiltersHelp:`Alət çıxışı filtrlərini iş qovluğundan da yükləyir. Standart olaraq söndürülüb, çünki repozitoriya bundan modeldən çıxışı gizlətmək üçün istifadə edə bilər.`,compressionStats:`Qənaət edilən ölçü`,compressionEstimatedTokensSaved:`Qənaət edilən təxmini tokenlər`,compressionPreview:`Canlı önbaxış`,compressionPreviewDescription:`Sorğu gövdəsini prosesdən keçirin və təchizatçının nə alacağını görün.`,compressionPreviewPlaceholder:`Sorğu JSON və ya sadə mətn yapışdırın`,compressionRunPreview:`Önbaxışı işə sal`,updatesTitle:`Yeniləmələr`,checkForUpdates:`Yeniləmələri yoxlayın`,lastChecked:`Son yoxlama: {when}`,currentVersion:`Cari quruluş:`,updateAvailable:`Yeniləmə mövcuddur`,changelog:`Nələr dəyişib`,upToDate:`Ən son versiyadır`,buildAhead:`Bu quruluş rəsmi main budağından irəlidədir.`,buildDiverged:`Bu quruluş rəsmi main budağından ayrılıb.`,buildUnknown:`Bu xüsusi quruluşu rəsmi main budağı ilə müqayisə etmək mümkün deyil.`,notGitInstall:`Bu quraşdırmada commit məlumatı yoxdur.`,checkFailed:`Yeniləmələri yoxlamaq mümkün olmadı.`,contactsGithub:`Yoxlamalar əl ilə başladılır və GitHub-a qoşulur.`,autoUpdateCheck:`Avtomatik yeniləmə yoxlaması`,autoUpdateCheckHelp:`Gündə bir dəfə yeni buraxılış üçün GitHub-u yoxlayır və xatırlatma göstərir. Standart olaraq sönülüdür.`,openReleases:`GitHub buraxılışlarını aç`,restartAfterUpdate:`Quruluş tamamlandıqdan sonra SRouter-ni yenidən başladın.`,syncSchedule:`Model Sync`,syncScheduleHint:`How often the model catalog is refreshed from the server`,syncIntervalOff:`Off`,syncInterval6h:`Every 6h`,syncInterval12h:`Every 12h`,syncInterval24h:`Every 24h`},models:{title:`Modellər`,chatModelsTab:`Chat modelləri`,fusionTab:`Birləşmə`,embeddingsTab:`Yerləşdirmələr`,imageTab:`Şəkil`,videoTab:`Video`,audioTab:`Audio`,imageDesc:`Mətn-şəkildən görüntüyə generasiya modelləri.`,videoDesc:`Text-to-video generation models.`,audioDesc:`Mətn-çıxış və nitq-mətn modelləri.`,mediaHint:`Generasiya vasitəsilə`,mediaEmpty:`Hələ model yoxdur. Onlar kataloqdan sinxronlaşır.`,ttsHeading:`Mətndən nitqə çevirmə`,sttHeading:`Nitqdən mətnə çevirmə`,sttHint:`Transkripsiya vasitəsilə`,sttEmpty:`Hələ nitqdən mətnə çevirmə modelləri yoxdur. Onlar kataloqdan sinxronlaşır.`,newBadge:`Yeni`,monthlyTokenBudget:`Aylıq token büdcəsi`,remaining:`Qalan`,used:`İstifadə olunmuş`,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:`of`,showAllModels:`Bütün {count} modellərini göstər`,showLess:`Daha az göstər`,vision:`Vizyon`,visionTitle:`Şəkil girişini qəbul edir`,tools:`Alətlər`,toolsTitle:`Strukturlaşdırılmış alət çağırışları yayır, buna görə də alət daşıma sorğuları üçün uyğundur`,retired:`Dayandırılıb`,penalty:`−{value} penalti`,obs:`{count}`,tokPerMonth:`{count} tok/mo`,rpmLimit:`{count} rpm-də`,rpdLimit:`{count} RPD`,noKey:`Açar yoxdur`,dragToReorder:`Yenidən sıralamaq üçün sürükləmə`,dragToReorderGroup:`Modeli yenidən sıralamaq üçün sürükləmə`,moveToRank:`Reytinqə keçid`,providerCount:`{count} təminatçıları`,servedBy:`Xidmət {providers}`,viewProviders:`Bax təminatçıları`,backToModels:`Modellərə qayıdış`,providersHeading:`Bu modelə xidmət göstərən provayderlər`,codeSnippetHeading:`Bu modeldən istifadə edin`,modelNotFound:`Bu model mövcud deyil və ya konfiqurasiya olunmuş provayderləri yoxdur.`,providerIdsHeading:`Təminatçı model ids`,providerIdsHint:`Hər bir provayder arasında failover üçün vahid model id-ni göndərin, ya da provayderə xas bir id-ni bir provayderə pin etmək üçün.`,copyModelName:`Model adını kopyalayın`,settingsHeading:`Təminatçı ayarları`,settingsHint:`Kataloq modellərinə lokal redaktələr kataloq sinxronizasiyaları arasında saxlanılır. Silinmiş kataloq modelləri yenidən konfiqurasiya vasitəsilə əlavə edənə qədər silinmiş qalır.`,catalogModel:`Kataloq`,customModel:`Adət`,discoveredModel:`aşkarlanmış`,localOverride:`Lokal Üstünlüklər`,displayName:`Göstərilmə adı`,sizeLabel:`Qabiliyyət səviyyəsi`,sizeLabelHint:`Frontier/Large/Medium/Small kəşfiyyat oxunu müəyyən edir: yüksək səviyyə həmişə aşağı səviyyəni üstələyir, eyni səviyyə daxilində isə kəşfiyyat reytinqi balı dəyişməyə davam edir. Tanınmış səviyyəsi olmayan model bu oxda ən aşağı balı alır, lakin kəşfiyyat üç oxdan yalnız biridir — güclü etibarlılıq və sürət yenə də ona marşrut qazandıra bilər.`,sizeLabelNone:`Heç biri (ən aşağı kəşfiyyat balı)`,contextWindow:`Kontekst`,inFallback:`Zəncirdə`,saveModelSettings:`Model parametrlərini saxla`,aggregateBudget:`{count}/ay`,aggregateBudgetTitle:`Bu modelin təminatçıları üzrə ayda ümumi pulsuz tokenlər`,rateRpm:`{count} RPM`,rateRpd:`{count} RPD`,rateTitle:`Tarif məhdudiyyəti — sabit aylıq token büdcəsi yoxdur`,rateLimitUsage:`{kind} {used}/{limit}`,rateLimitUsageTitle:`Zaman pəncərəsində sürət limiti istifadəsi (istifadə olunan / limit), ən çox ehtiyatı olan provayder üzrə`,splitOut:`Bu nüsxəni birləşdirməyin`,splitOutHint:`Bu provayderin nüsxəsini vahid modeldə birləşdirmək əvəzinə onun ayrıca girişini verin. Siz onu nüsxənin öz səhifəsindən birləşdirə bilərsiniz.`,splitUndo:`Geri birləşdirin`,splitUndoHint:`Bu nüsxə vahid modelindən ayrı saxlanılır. Bütün provayderləri arasında yenidən uğursuz olmaq üçün onu yenidən birləşdirin.`,splitBadge:`ayrı saxlanılır`,noData:`məlumat yoxdur`,noDataTitle:`Hələ heç bir sorğu qeydə alınmayıb — bu provayder üçün etibarlılıq və sürət ölçülməyib.`,bestOfN:`{count}-nin ən yaxşısı`,perProviderScores:`Hər provayder balları: {list}`,columnModel:`Model`,columnOn:`Açıq`,noModelsBefore:`Heç bir model mövcud deyil. Üzərinə API açar əlavə et`,keysPageLink:`Açarlar səhifəsi`,noModelsAfter:`birinci.`,hiddenNoKeys:`Gizli (açarsız): {platforms}`,searchPlaceholder:`Axtarış modelləri və ya təminatçılar...`,clearSearch:`Təmiz axtarış`,ctxAny:`Hər hansı kontekst`,ctxBadge:`{size} ctx`,ctxTitle:`Kontekst pəncərəsi`,copyModelId:`Model id-ni kopyalayın`,showingCount:`{shown} {total} modelləri`,clearFilters:`Təmiz filtrlər`,noMatches:`Heç bir model filtrlərinizlə uyğun gəlmir.`,noModelsTitle:`Heç bir model konfiqurasiya olunmur`,intelligenceRank:`Kəşfiyyat`,speedRank:`Sürət`,rankHint:`Kataloqdakı reytinq — 1 ən yaxşısıdır.`,limitRpm:`RPM`,limitRpd:`RPD`,limitTpm:`TPM`,limitTpd:`TPD`,limitRpmHint:`Dəqiqədə sorğu sayı. Limit olmaması üçün boş buraxın.`,limitRpdHint:`Gündə sorğu sayı. Limit olmaması üçün boş buraxın.`,limitTpmHint:`Dəqiqədə token sayı. Limit olmaması üçün boş buraxın.`,limitTpdHint:`Gündə token sayı. Limit olmaması üçün boş buraxın.`,usageThisMonth:`Aylıq istifadə`,usageEmpty:`Bu ay hələ sorğu yoxdur.`,usageRequestsMonth:`bu ay {count} sorğu`,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:`Ölçülməmiş modelləri araşdır`,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:`Açar seçimi`,keySelectionAuto:`Avtomatik`,keySelectionLeastRemaining:`Ən az qalan`,keySelectionHint:`Eyni provayderin bir neçə açarı arasında necə seçim ediləcəyi. Avtomatik cari növbəni saxlayır; Ən az qalan açarları müşahidə olunan kvotaya görə sıralayır və ən çox qalanı ilk sınayır.`,cooldownCeiling:`Ən uzun avtomatik soyuma`,cooldownCeilingHint:`Marşrutlaşdırıcının öz təxminlərinin uğursuz açar və model cütünü nə qədər müddətə kənarlaşdıra biləcəyini məhdudlaşdırır. Pilləkən adətən 2 dəq, 10 dəq, 1 saat, 24 saat qalxır, kredit və ya səviyyə xətaları isə bir gün kənarlaşdırır. Provayderin bildirdiyi təkrar cəhd vaxtları heç vaxt qısaldılmır.`,cooldownCeilingDefault:`Standart (24 saata qədər)`,cooldownCeiling10m:`10 dəqiqə`,cooldownCeiling1h:`1 saat`,cooldownCeiling6h:`6 saat`,moreOptions:`Daha çox seçim`,peakActive:`(pik saatlar)`,peakActiveHint:`Pik saat tənzimləməsi hazırda aktivdir, ona görə bunlar hazır dəstin öz çəkiləri deyil: sürət çəkisinin 60%-i etibarlılığa keçirilib.`,peakAdjust:`Pik saat tənzimləməsi`,peakAdjustHint:`Standart olaraq söndürülüb. Aşağıdakı aralıqda sürət çəkisinin 60%-ini etibarlılığa keçirir — pulsuz ötürücülər o vaxt ən sıx yüklənir, ona görə etibarlılıq uğuru xam ötürmə qabiliyyətindən daha yaxşı proqnozlaşdırır. «Ən sürətli» və «Ən etibarlı» dəyişmir.`,peakFrom:`Başlanğıc`,peakTo:`son`,peakTimezoneLabel:`Saat qurşağı`,peakUseBrowserTimezone:`Brauzerin saat qurşağını istifadə et`,peakTimezoneInvalid:`Naməlum saat qurşağı.`,peakExemptNote:`Bu hazır dəst dəyişmir — o, artıq sürət/etibarlılıq tarazlığının bir ucundadır.`,title:`Marşrut strategiyası`,description:`Bir marşrut strategiyası seçin. Əl rejimində isə ardıcıllığı təyin etmək üçün sürükləyirsən; Digər strategiyalar isə etibarlılıq, sürət və zəka üzrə canlı skora əsaslanır.`,weightsSummary:`etibarlılıq {reliability}% · sürət {speed}% · Zəka {intelligence}%`,guardrails:`Qoruyucu barmaqlıqlar`,guardrailsTooltip:`Həmişə aktiv olan qoruyucu tədbirlər: sərbəst kvota × canlı sürət limiti cəzası. 1.0-dan aşağı olmaq modelin geri çəkildiyini göstərir.`,scoreTooltip:`Son marşrut balı = üç oxun çəkili ortalaması, qoruyucu baryerlərlə vurulması. Əvvəlcə daha yüksək marşrutlar.`,modeManualHint:`Əl rejimi: sorğular aşağıdakı ardıcıllıqla, yuxarıdan aşağıya uyğun gəlir. Yenidən sifariş vermək üçün sürüklə.`,modeScoreHint:`Canlı trafikdən xallar yenilənir. Aşağıdakı ardıcıllıq hazırda sorğuların necə yönləndirildiyini göstərir.`,manual:`Təlimat`,manualBlurb:`Aşağıda təyin etdiyiniz dəqiq ardıcıllıqla marşrut edin. Yenidən sıralamaq üçün tutacaqları sürükləyin. Xal qazanmaq olmaz; zəncir yuxarıdan aşağıya izlənilir.`,balanced:`Balanslı`,balancedBlurb:`Etibarlılıq liderləri (50%), sürət və zəka isə bərabər (hər biri 25%) ilə qiymətləndirilir. Məntiqli ümumi defolt.`,smartest:`Ən ağıllı`,smartestBlurb:`Hələ də işləyən ən bacarıqlı modeli üstün tuturam. Zəka 55%, etibarlılıq 35%, sürət 10%.`,fastest:`Ən sürətli`,fastestBlurb:`Hələ də işləyən ən sürətli modeli üstün tuturam. Sürət 55%, etibarlılıq 35%, zəka 10%.`,reliable:`Ən etibarlı`,reliableBlurb:`Hər şeydən əvvəl uğur nisbətini maksimuma çatdırmaq. Etibarlılıq 70%, sürət və zəka hər biri 15%.`,custom:`Adət`,customBlurb:`Sürüşdürücülərlə etibarlılıq, sürət və zəka arasında öz balansınızı qurun. Eyni mühərrik presetlərdəki kimi, sadəcə çəkiləriniz.`,adjust:`Tənzimləmə`,customWeights:`Xüsusi çəkilər`,customWeightsHelp:`Sliderlər müstəqildir; Səhmlər avtomatik balansı 100%-ə çatdı.`,weightReliability:`Etibarlılıq`,weightSpeed:`Sürət`,weightIntelligence:`Kəşfiyyat`,weightRequired:`Ən azı bir ağırlıq sıfırdan yuxarı olmalıdır.`,scoreColumn:`Musiqi`},penaltyInspector:{title:`Router təzyiqi`,subtitle:`Son {minutes} dəqiqədəki cərimələr, gözləmə müddətləri və uğursuzluqlar`,rowCount:`{count} aktivdir`,offChain:`zəncirdən kənar`,penaltyValue:`Cərimə {value}`,factor:`xal x{factor}`,noCooldown:`Soyuma vaxtı yoxdur`,cooldownChip:`{key} - {time}`,resetCooldown:`Reset cooldown`,clearAll:`Hamısını təmizlə`,clearAllHint:`Bütün soyumaları, cərimələri və uğursuzluq seriyalarını dərhal aradan qaldırır. Təzyiq növbəti real nəticələrdən yenidən yığılır.`,errorsHeading:`{count} son səhvlər`,noRecentErrors:`Son vaxtlar heç bir səhv yoxdur`,noKey:`Açar yoxdur`,reasons:{penalty:`cəzalandırıldı`,cooldown:`Soyuma müddəti`,recent_errors:`Uğursuzluq`}},keys:JSON.parse(`{"pageTitle":"Açarlar","pageDescription":"Təminatçı etimadnamələri və tətbiqlərinizin birləşdiyi API açarı ilə əlaqə qurun.","tabProviders":"Təchizatçılar","checklistSummary":"{total} təchizatçıdan {configured} qurulub","checklistKeyless":"açar tələb olunmur","checklistNoKeyTip":"Hələ açar əlavə edilməyib. Əlavə etmək üçün klikləyin.","checklistSignupLink":"Hesab yaratmaq və açar almaq üçün {provider} səhifəsini açın","checklistKeylessTip":"Açarsız işləyir.","tabQuotaSignals":"Kvota siqnalları","tabApiKey":"Birləşmiş API açarı","tabAnthropic":"Anthropic","unifiedKey":"Sizin birləşmiş API açarınız","regenerate":"Regenerasiya","showKey":"Şou","hideKey":"Gizlən","copyKey":"Alındı","copyFullKey":"Tam açarı kopyala","copiedKey":"Kopyalandı","baseUrl":"Baza URL","endpointChat":"Söhbət","endpointResponses":"Cavablar","endpointEmbeddings":"Yerləşdirmələr","endpointEmbeddingsHint":"model: \\"auto\\" və ya Embeddings sekməsindən bir ailə","endpointMessages":"Mesajlar","endpointMessagesHint":"Anthropic uyğun (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) modelləri","anthropicDesc":"Bu serverə Claude və ya Anthropic SDK müştərisini yönəldin. Anthropic müştərilər Claude model adları göndərirlər — hər birini Auto-ya xəritələyin (router boş modeli seçir) və ya konkret birini pinləyirsiniz.","anthropicBaseUrl":"Baza URL","anthropicAuth":"Auth baş zərbəsi","anthropicAuto":"Avtomatik — router ən yaxşı modeli seçir","anthropicSave":"Xəritələşdirməni saxla","anthropicSaved":"Xilas edildi","anthropicNote":"Anthropic müştərilər daxili Claude model adlarını saxlayırlar; Yuxarıdakı xəritə hər birinin hovuzunuza necə daxil olacağını müəyyən edir.","familyDefault":"Default","familyOpus":"Opus","familySonnet":"Sonet","familyHaiku":"Haiku","selectPlatform":"Təminatçı seçin","addKey":"Açar əlavə et","keyAdded":"Açar əlavə edildi","endpointKeysShareModels":"Eyni son nöqtənin açarları onun modellərini paylaşır.","export":"İxrac","exportAll":"Bütün açarlar","exportHealthy":"Yalnız sağlam","exportKeys":"API açarlarını ixrac et","exportFormat":"Format","exportHealthyOnly":"Yalnız sağlam açarlar","exportHealthyOnlyDesc":"Hazırda sağlamlıq yoxlamalarından keçməyən açarları istisna et","exportWillExport":"İxrac olunacaq","exportKey":"Açar","exportKeys plural":"Açarlar","exporting":"İxrac edirəm...","exportDownload":"Yüklə","exportSuccess":"İxrac olunan {count} açarları","adding":"Əlavə edirəm...","selectProvider":"Bir təminatçı seç...","accountId":"Hesab ID-si","label":"Etiket","noKeyNeeded":"(açar lazım deyil)","outboundProxy":"Outbound proxy","outboundProxyDescription":"Çıxan LLM sorğularını proxy vasitəsilə yönləndirin. SOCKS5, HTTP və HTTPS dəstək verir.","proxyUrl":"Proxy URL","saveProxy":"Xilas et","savingProxy":"Qurtarmaq...","proxyLoadFailed":"Proxy parametrlərini yükləmək mümkün olmadı.","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":"Xüsusi OpenAI uyğun model əlavə edin","addCustomDescription":"Hər hansı OpenAI uyğun son nöqtədə nöqtə çat, yerləşdirmə, şəkil və ya audio modelləri qura bilərsiniz. API düyməsi yerli serverlər üçün seçimlidir.","customType":"Tip","customTypeChat":"Söhbət","customTypeEmbedding":"Yerləşdirmə","customTypeImage":"Şəkil","customTypeAudio":"Audio","customTypeTranscription":"Transcription","customBaseUrl":"Baza URL","customModels":"Modellər","customModel":"Model","customDisplayName":"Göstərilmə adı","customDisplayNamePerModel":"Modelə görə","customDisplayNameOptional":"İstəyə bağlı","customFamily":"Ailə","customFamilyPlaceholder":"Standart olaraq model ID-yə keçid","customApiKey":"API açarı","customCapabilities":"İmkanlar","addModel":"Model əlavə et","modelAdded":"Model əlavə olundu","addModels":"{count} modellər əlavə et","addEmbeddingModel":"Yerləşdirmə əlavə edin","addImageModel":"Şəkil modeli əlavə et","addAudioModel":"Audio model əlavə et","addTranscriptionModel":"Add transcription model","addingCustom":"Əlavə edirəm...","discoverModels":"Modelləri gətir","probeNow":"Son nöqtəni test et","probeConfirm":"Ən çox 3 sınaq sorğusu göndərilsin?","probeCapabilities":"mühakimə: {reasoning} · alətlər: {tools}","probeCapYes":"bəli","probeCapNo":"xeyr","probeCapUnknown":"naməlum","probeSuccess":"{model} {latency}ms ərzində test edildi","probeFailed":"Test alınmadı: {reason}","discoverTitle":"Bu son nöqtədəki modellər","discoverHint":"Qeyd ediləcək modelləri seçin. Artıq əlavə edilənlər kilidli qalır.","discoverEmpty":"Bu son nöqtə heç bir model qaytarmadı.","discoverAlreadyAdded":"Əlavə edildi","discoverSelectAll":"Hamısını seç","modelsAdded":"{count} model əlavə edildi","getApiKey":"Açarı API","deleteKeyConfirm":"Bu açarı silmək? Bunu geri qaytarmaq mümkün deyil.","checkAll":"Hamısını yoxla","checking":"Yoxlayıram...","editLabel":"Etiketi redaktə et","saveLabel":"Yadda saxla etiketi","unifiedKeyDescBefore":"Bunu öz OpenAI kimi istifadə et","unifiedKeyDescAfter":"; Bu proxy-yə sorğuları autentifikasiya edir.","serverUnreachableBefore":"Serverə qoşula bilmirəm","serverUnreachableAfter":". Arxa planın işlədiyinə əmin ol. NPM run dev hər ikisini işə salır və server logları server prefiksi altında çap olunur.","paneProviderKey":"Təchizatçı açarı","paneImportFile":"Faylın idxalı","paneCustomEndpoint":"Xüsusi son nöqtə","platform":"Platforma","hideAdded":"Əlavə edilmiş provayderləri gizlət","apiToken":"API tokeni","keyOptionalPlaceholder":"İstəyə bağlı","bearerTokenPlaceholder":"Daşıyıcı token","pasteKeyPlaceholder":"Burada açarı yapışdır","pasteSeveral":"Bir neçəsini yapışdır","keyOptionalHint":"İstəyə bağlı: anonim pulsuz səviyyə üçün boş buraxın (hər IP üzrə məhdud) və ya hesabınızdan istifadə etmək üçün öz açarınızı yapışdırın.","enable":"Aktiv et","noProviderKeys":"Hələ provayder açarları yoxdur. Marşrutlaşdırmaya başlamaq üçün yuxarıda birini əlavə edin.","filterPlaceholder":"Filtr təminatçıları və ya açarlar","filterAll":"Hamı","filterHealthy":"Sağlam","filterIssues":"Məsələlər","filterDisabled":"Əlil","noFilterMatch":"Heç bir provayder sizin filtrlərinizə uyğun gəlmir.","providerCountSummary":"{providers} təminatçıları · {keys} açarları","summaryHealthy":"{count} sağlam","summaryIssueOne":"{count} məsələsi","summaryIssueOther":"{count} məsələlər","providerActions":"Təchizatçı tədbirləri","routeViaProxy":"Proxy vasitəsilə marşrut","checkNow":"İndi yoxla","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":"Həmçinin konfiqurasiya etmək üçün","proxyEnvHintAfter":"mühit dəyişəni (üstünlük təşkil edir). Deaktiv etmək üçün boş qoy. Nümunələr:","importKeys":"İdxal təminatçı açarları","importKeysDescription":".env, JSON, JSONC, CSV, Markdown və ya mətn faylları yükləyin.","importFiles":"Fayllar","importFileCount":"{count} seçildi","previewFiles":"Ön baxış","previewing":"Önizləmə...","selected":"Seçilmiş","provider":"Təchizatçı","keyName":"Əsas ad","keyValue":"Əsas dəyər","chooseProvider":"Təminatçı seçin","noPreviewKeys":"O fayllarda heç bir açar tapılmadı.","skippedItems":"Atlandı:","moreItems":"+{count} daha çox","importSelected":"İdxal {count}","importing":"İdxal...","noImportSelection":"Ən azı bir təminatçı ilə bir sətir seçin.","duplicate":"Təkrarlanan","duplicatesFound":"{count} təkrar(lar) aşkar edilib — artıq mövcuddur və atlanacaq.","importResult":"İdxal {imported}; uğursuz {failed}.","importModelCount":"+{count} model","importResultWithModels":"İdxal {imported}; {models} model qeydə alındı; uğursuz {failed}.","confirmRemove":"Təsdiqləyək?","quotaSignalsTitle":"Kvota siqnalları","quotaSignalsEmptyTitle":"Hələ kvota müşahidəsi yoxdur","quotaSignalsEmptyDesc":"Bu, provayderlər sürət limiti başlıqlarını, kvota səhvlərini və ya təsdiq siqnallarını qaytardıqdan sonra doldurulur.","quotaKeyRef":"Əsas #{id}","quotaPoolRef":"hovuz {pool}","quotaLimit":"Limit","quotaRemaining":"Qalanlar","quotaReset":"Reset","quotaObserved":"Müşahidə olunanlar","tabAgents":"Agentlər","familyGeminiPro":"Gemini Pro","familyGeminiFlash":"Gemini Flash","familyGeminiFlashLite":"Gemini Flash-Lite","geminiTitle":"Gemini model uyğunlaşdırması","geminiDesc":"Gemini Pro, Flash və Flash-Lite adlarını Auto-ya və ya konkret kataloq modelinə uyğunlaşdırın.","compatibilityTitle":"Agent uyğunluğu","compatibilityDesc":"Könüllü uyğunluq interfeyslərini və Claude Code model aşkarlamasını idarə edin.","ollamaMode":"Ollama emulyasiyası","ollamaModeHint":"Açıq loopback heç vaxt autentifikasiya olunmamış LAN trafikini qəbul etmir.","ollamaOff":"Söndürülüb","ollamaLoopback":"Loopback-də açıq","ollamaKeyRequired":"API açarı tələb olunur","claudeAliases":"Claude Code aşkarlama aliasları","claudeAliasesHint":"Şlüzün model seçicisi kataloqu göstərə bilsin deyə claude/<model> aliaslarını açın.","mcpServer":"MCP serveri","mcpServerHint":"/mcp son nöqtəsini agent klientlərinə açır. Yeni quraşdırmalar sönülü başlayır.","urlTokensTitle":"Ləğv edilə bilən URL tokenləri","urlTokensDesc":"Yalnız başlıqsız müştərilər üçün. URL tokenləri tarixçəyə və loqlara sıza bilər, ona görə də artıq lazım olmadıqda onları ləğv edin.","urlTokenLabel":"Token etiketi","createUrlToken":"Token yarat","urlTokenOnce":"Bu tokeni indi kopyalayın. O, bir daha göstərilməyəcək.","revoked":"Ləğv edilib","revoke":"Ləğv et","modelScope":"Model əhatəsi","modelScopeDesc":"Bu açarı müəyyən model ID-ləri ilə məhdudlaşdırın. Digər modellər üçün router bu açarı ötürür.","modelScopeAdd":"Model ID-sini daxil edin və Enter basın","modelScopeEmpty":"Əhatə təyin edilməyib — bu açar provayderinin bütün modellərinə xidmət edir.","modelScopeClear":"Əhatəni təmizlə","modelScopeBadgeOne":"məhdud · 1 model","modelScopeBadgeOther":"məhdud · {count} model","modelPicker":{"title":"Bu açar hansı modellərə xidmət etsin?","hint":"{provider} açarınız əlavə edildi və hazırda aşağıdakı bütün modellərə xidmət edir. Bu açarın istifadəsinə icazə verilməyən modellərin işarəsini götürün — router həmin modellər üçün bu açarı ötürəcək.","count":"{total} modeldən {selected} seçilib","allNote":"Hamısı seçilib — heç nə yadda saxlanmır və sonradan kataloqa əlavə olunan modellər də bu açardan istifadə edəcək.","subsetNote":"Bu açar yalnız seçilmiş modellərlə məhdudlaşacaq. Bunu sonra açarın sətrindən dəyişə bilərsiniz.","skip":"İndi yox","scopedOne":"Açar 1 modellə məhdudlaşdırıldı","scopedOther":"Açar {count} modellə məhdudlaşdırıldı","allSaved":"Key serves every catalog model"},"cpTitle":"Müştəri profilləri","cpDesc":"Hər müştəri üçün ayrıca API açarı; onun sistem promptunu server həmişə tətbiq edir.","cpEmpty":"Hələ müştəri profili yoxdur.","cpNameLabel":"Ad","cpNamePlaceholder":"məs. Dəstək botu","cpPromptLabel":"Sistem promptu (istəyə bağlı)","cpPromptPlaceholder":"Bu açarla edilən hər sorğunun əvvəlinə serverin əlavə etdiyi təlimatlar.","cpCreate":"Profil yarat","cpRotate":"Açarı dəyiş","cpKeyOnce":"Bu açarı indi kopyalayın — bir daha göstərilməyəcək.","cpEnabledAria":"Profil aktivdir","selectKey":"Bu açarı seçin","bulkSelected":"{count} seçildi","bulkEnable":"Hamısını aktiv et","bulkDisable":"Hamısını deaktiv et","bulkDelete":"Hamısını sil","bulkDeleteConfirm":"{count} silinsin?","bulkResult":"Yeniləndi {done}; uğursuz {failed}.","bulkDeleteResult":"Silindi {done}; uğursuz {failed}.","testProxy":"Test","testingProxy":"Testing…","proxyTestOk":"Proxy works — {ms}ms round trip","proxyTestFail":"Proxy failed: {reason}","editKey":"Açarı redaktə et","editPlatformLocked":"Yaratmadan sonra provayderi və son nöqtəni dəyişmək olmaz.","editCredentialHint":"Cari açarı saxlamaq üçün boş buraxın.","editCredentialPartsRequired":"Həm hesab ID-sini, həm API tokenini daxil edin.","editModels":"Modelləri redaktə et","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":"Fərdi model əlavə et","modelId":"Model ID","modelIdRequired":"Model ID tələb olunur","modelDisplayName":"Görünən ad","modelContextWindow":"Məzmun pəncərəsi (tokenlər)","modelRateLimits":"Hədd məhdudiyyətləri (istəyə bağlı)","modelSupportsTools":"Alət çağırışlarını dəstəkləyir","modelSupportsToolsHint":"Bu model funksiya və alət çağırışlarını icra edə bilirsə aktivləşdirin","modelSupportsVision":"Görüntünü dəstəkləyir","modelSupportsVisionHint":"Bu model şəkil qəbul edə bilirsə aktivləşdirin","createModel":"Model yarat","modelAddedSuccess":"Fərdi model uğurla əlavə edildi","modelAddFailed":"Fərdi model əlavə edilə bilmədi","testModel":"Sınaqdan keçir","testingModel":"Yoxlanılır…","testPassedShort":"Uğurlu","testFailedShort":"Xəta","testPassed":"Model sınağı {latency}ms ərzində uğurla keçdi","testFailed":"Model sınağı uğursuz oldu","testThrottled":"Bu modeli yenidən sınaqdan keçirməzdən əvvəl {seconds} san gözləyin.","noModelsForProvider":"Bu təminatçı üçün heç bir model tənzimlənməyib.","testModels":"Modelləri test et","syncAllCatalog":"Catalog: +{inserted} added, ~{updated} updated, -{removed} removed","requestCapLabel":"Request cap","tokenCapLabel":"Token cap","budgetPeriodLabel":"Budget period","budgetPeriodDaily":"Daily","budgetPeriodWeekly":"Weekly","budgetPeriodMonthly":"Monthly","budgetPeriodAuto":"Auto (follow provider)","autoResolvedDaily":"Detected provider cycle: daily","autoResolvedMonthly":"Detected provider cycle: monthly","autoResolvedFallback":"Provider cycle unknown, defaulting to monthly","capUnlimitedPlaceholder":"Limitsiz","capEditHint":"Caps reset at the next period boundary, 00:00 UTC. Leave blank for unlimited.","monthlyUsageLine":"Bu ay {requests} sorğu, {tokens} token","monthlyUsageRequests":"{requests} requests","monthlyUsageTokens":"{tokens} tokens","monthlyUsageRequestsRelative":"{used} / {cap} ({remaining} left) requests","monthlyUsageTokensRelative":"{used} / {cap} ({remaining} left) tokens","monthlyUsageReset":"reset {date}"}`),backups:{title:`Backups`,description:`Save the routing data to a .sql file beside the database, and restore it later.`,excludedNote:`A backup carries your providers, models, routing settings and request history. Accounts, sessions and URL tokens are never included, so a dump holds no password hashes or login tokens and restoring one cannot log you out. Provider keys stay encrypted with this server's ENCRYPTION_KEY: a backup can only be restored on a server that still holds that key.`,selectHint:`Back up everything, or pick the tables you need.`,selectAll:`Select all`,deselectAll:`Clear`,fullBackup:`Full backup`,backupSelected:`Back up selected ({count})`,created:`Backup written to {filename}`,list:`Backups on disk`,empty:`No backups yet`,full:`All tables`,tablesCount:`{count} tables`,manual:`Manual`,scheduled:`Scheduled`,preRestore:`Pre-restore`,download:`Download`,restore:`Restore`,confirmRestore:`Replace data?`,restored:`Restored. The previous data was saved as {filename}.`,delete:`Delete backup`,prevPage:`Previous`,nextPage:`Next`,autoTitle:`Automatic backups`,autoHint:`The server writes a full backup on this cadence.`,time:`Time (HH:mm)`,intervalDays:`Every N days`,path:`Folder`,pathPlaceholder:`backups`,pathHint:`Relative to the database directory. Backups cannot be written outside it.`,save:`Save schedule`,saved:`Saved`},status:{healthy:`sağlam`,rateLimited:`sürət məhdudiyyəti`,invalid:`etibarsız`,error:`səhv`,unchecked:`Nəzarətsiz`},analytics:{title:`Analitika`,description:`Həcm, gecikmə, token istifadəsi və uğursuzluqlar sorğusu.`,range24h:`24 saat`,range7d:`7d`,range30d:`30d`,range90d:`90d`,requests:`İstifadələr`,successRate:`Uğur nisbəti`,inputTokens:`Giriş tokenləri`,outputTokens:`Çıxış tokenləri`,avgLatency:`Orta gecikmə`,p95Latency:`P95 gecikməsi`,avgTtft:`Orta TTFT`,estSavings:`Əmanət`,requestsByProvider:`Təminatçılar üzrə sorğular`,avgLatencyByProvider:`Provayder üzrə orta gecikmə`,ttftByProvider:`Təminatçı üzrə ilk tokenin vaxtı`,ttftEmpty:`Hələ ilk token qeydiyyatına vaxt yoxdur.`,requestsOverTime:`Zamanla sorğular`,tokensOverTime:`Zamanla jetonlar`,byModel:`Modelə görə`,byPlatform:`Platforma üzrə`,errors:`Səhvlər`,errorDistribution:`Səhv paylanması`,pinnedRequests:`Sabitlənmiş sorğular`,pinnedHonored:`Şərəfləndirildi`,fallbackAttempts:`Ehtiyat cəhdlər`,savingsHint:"Əslində, son {range} ərzində ${actual}-ni xilas etdiniz. Bu, eyni tokenlərin ödənişli API-lərdə, modelə görə qiymət baxımından dəyəri olardı. Göstərilən rəqəm son {span} məlumatdan tam 30 günə qədər sürətinizi proqnozlaşdırır.",savingsHintExact:"Əslində, son {range} ərzində ${actual}-ni xilas etdiniz. Bu, eyni tokenlərin ödənişli API-lərdə, modelə görə qiymət baxımından dəyəri olardı. Göstərilən rəqəm sizin real 30 günlük ümumi nəticənizdir.",requestsHintPinned:`Bu sorğulardan {pinned} konkret modeli adı ilə pinlədi. {honored} pinli model ilə xidmət olunurdu; {failed} başqa birinə keçə bilmədim. Qalanları avtomatik yönləndirildi.`,requestsHintAuto:`Bu dövrdə bütün sorğular avtomatik yönləndirilirdi; Heç bir müştəri konkret modeli adı ilə pinləməyib.`,requestsHintTypes:`{chat} chat və {embedding} embedding sorğuları.`,rangeLabel24h:`24 saat`,rangeLabel7d:`7 gün`,rangeLabel30d:`30 gün`,rangeLabel90d:`90 gün`,spanDays:`{count} gün`,spanHours:`{count} saat`,latencyMs:`Gecikmə (ms)`,latency:`Gecikmə`,pinned:`Pinned`,inTokens:`Jetonlarla`,outTokens:`Çıxış tokenləri`,saved:`Xilas edildi`,message:`Mesaj`,time:`Zaman`,perModelBreakdown:`Model üzrə bölgü`,usageByKey:`Açar üzrə istifadə`,keyColumn:`Açar`,keyLabelFallback:`Əsas #{id}`,errorsByProvider:`Təchizatçılar üzrə səhvlər`,recentErrors:`Son səhvlər`,noErrors:`Heç bir səhv yoxdur`,recentCalls:`Son çağırışlar`,clientIp:`Müştəri IP`,clientAgent:`Müştəri tətbiqi`,requestedModelHint:`{model} tələb olundu, ehtiyat qüvvə ilə təqdim edildi`,attempts:`Cəhdlər`,filterAll:`Hamı`,filterCanceled:`Ləğv edilmiş`,providerBreakdown:`Təminatçı üzrə bölgü`,tokensPerSec:`Tok/s`,allProviders:`Bütün təminatçılar`,requestDetailTitle:`Xahiş #{id}`,failoverLadder:`Failover pilləsi`,failoverLadderHint:`Bu sorğu ehtiyat zəncirindən keçən hər sıçrayış, ardıcıllıqla.`,noAttemptTrace:`Bu sorğu üçün heç bir cəhd izi qeydə alınmadı.`,keyOrdinal:`Əsas #{n}`,keyBadge:`Açar #{n}`,attemptTimingHint:`Sorğu başlanğıcından ofset · Cəhd müddəti`,requestedModel:`Tələb olunan model`,ttft:`TTFT`,requestsByAgent:`Agent üzrə sorğular`,sortBy:`{column} üzrə sırala`,sortHint:`Sıralama yalnız yüklənmiş {count} sətrə tətbiq olunur`,cacheHitRate:`Keş uğur nisbəti`,cacheSavedTokens:`{tokens} token qənaət edildi`,cacheHitRateHint:`Server başladığından bəri {hits} uğur, {misses} uğursuzluq · {requests} provayder sorğusundan qaçınıldı`},logs:{title:`Loglar`,description:`Serverin canlı logu. Səhifə açıq olduqca yeni qeydlər gəlməkdə davam edir.`,pause:`Dayandır`,resume:`Davam et`,clear:`Logları təmizlə`,cleared:`Server logu təmizləndi`,levelFilter:`Log səviyyələri`,levels:{debug:`Debug`,info:`İnfo`,warn:`Xəbərdarlıq`,error:`Xəta`},countsHint:`Saylar bu filtrlərə uyğun qeydlərə deyil, serverdəki bütün log buferinə aid ümumi göstəricilərdir.`,searchPlaceholder:`Log mesajlarında axtar…`,jumpToLatest:`Ən sonunculara keç`,showMore:`Daha çox göstər`,showLess:`Daha az göstər`,buffered:`Buferdəki ən çoxu {max} qeyddən {count} göstərilir`,emptyTitle:`Hələ log qeydi yoxdur`,emptyDescription:`Server qeydləri yazdıqca onlar burada görünəcək. Nəticə gözləyirdinizsə, səviyyə, təchizatçı və ya axtarış filtrlərini genişləndirin.`,noLevelsTitle:`Səviyyə seçilməyib`,noLevelsDescription:`Log çıxışını görmək üçün ən azı bir səviyyəni aktivləşdirin.`,loadFailed:`Server logu yüklənə bilmədi.`},playground:{title:`Uşaq meydançası`,description:`Router vasitəsilə çat tamamlama mesajı göndərin və hansı provayderin xidmət etdiyini görün.`,autoModel:`Avtomatik (ehtiyat zəncir)`,fusionModel:`Birləşmə (çoxmodelli sintez)`,selectModel:`Seçilmiş model`,searchModels:`Axtarış modelləri...`,noModelsFound:`Heç bir model tapılmadı`,send:`Göndər`,sending:`Göndərirəm...`,clear:`Təmiz`,inputPlaceholder:`Mesaj yaz... (⏎ göndərmək üçün, ⇧⏎ yeni xətt üçün)`,emptyTitle:`Başlamaq üçün mesaj göndərin.`,emptyDescription:`Using {model}. Yuxarıdakı seçicidə modelləri dəyişin.`,noModels:`Hələ model yoxdur. Bu siyahını doldurmaq üçün Keys səhifəsində API açarı əlavə edin.`,copyReply:`Cavab alın`,fallback:`Ehtiyat qüvvə`,fallbacks:`Ehtiyat planlar`,fusionPanel:`Panel`,fusionJudge:`Hakim`,fusionTrace:`{count} model cavabları`,fusionFailed:`Heç bir cavab yoxdur`,fusionJudgeSynth:`son cavabı sintez etdi`,errorPrefix:`Səhv:`,systemPromptLabel:`Sistem sorğusu`,systemPromptPlaceholder:`İstəyə bağlıdır. Çatdan əvvəl sistem mesajı kimi göndərildi.`,showSettings:`Parametrləri göstər`,hideSettings:`Parametrləri gizlət`,samplingHeading:`Nümunələmə`,samplingHelp:`Söndürüldükdə təchizatçının öz defolt dəyəri tətbiq olunur. Yalnız yandırdığınız tənzimləyicilər göndərilir.`,samplingDefault:`Default`,temperature:`Temperatur`,topP:`Top P`,maxTokens:`Maksimum token`,errorTitle:`Tələb uğursuz oldu`,attach:`Fayl əlavə et`,attachTooMany:`Hər mesaja ən çox {count} fayl əlavə edə bilərsiniz.`,attachTooLarge:`{name} çox böyükdür. Maksimum həcm: {max}.`,attachUnsupported:`{name} dəstəklənmir. Şəkil (PNG, JPEG, WebP, GIF) və ya mətn faylları (TXT, MD, CSV, JSON, LOG) əlavə edin.`,attachFailed:`{name} oxunmadı.`,noVisionBadge:`Şəkilsiz`,visionWarning:`{model} şəkilləri qəbul etmir. Şəkil dəstəkləyən model və ya Avtomatik seçin.`,dictate:`Diktə et`,dictationStop:`Yazmağı dayandır`,dictationTranscribing:`Transkripsiya edilir…`,dictationUnavailable:`Diktədən istifadə etmək üçün audio model təminatçıları əlavə edin.`,dictationModel:`Diktə modeli`,dictationFailed:`Transkripsiya alınmadı: {reason}`,artifactOpen:`Önizləməni aç`,artifactPreview:`Önizləmə`,artifactCode:`Kod`,artifactClose:`Önizləməni bağla`,artifactDownload:`Yüklə`,artifactReload:`Önizləməni yenilə`,artifactHtml:`HTML səhifəsi`,artifactSvg:`SVG şəkli`,artifactLines:`sətir`,artifactResize:`Önizləmənin ölçüsünü dəyiş`},playgroundSessions:{heading:`Söhbətlər`,newConversation:`Yeni söhbət`,showSidebar:`Söhbətləri göstər`,hideSidebar:`Söhbətləri gizlət`,empty:`Hələ yadda saxlanmış söhbət yoxdur.`,untitled:`Adsız söhbət`,rename:`Adını dəyiş`,renamePlaceholder:`Söhbətin adı`,messageCount:`{count} mesaj`,justNow:`indicə`,minutesAgo:`{count} dəq əvvəl`,hoursAgo:`{count} saat əvvəl`,daysAgo:`{count} gün əvvəl`,loadFailed:`Həmin söhbəti açmaq alınmadı.`,renameFailed:`Həmin söhbətin adını dəyişmək alınmadı.`,deleteFailed:`Həmin söhbəti silmək alınmadı.`,actions:`Söhbət əməliyyatları`,newChat:`Yeni söhbət`},embeddings:{title:`Modellər`,description:`Embeddinglər yalnız bir ailə daxilində failover edir: başqa bir provayder tərəfindən xidmət göstərilən eyni model. Fərqli modellərin vektorları uyğun deyil, ona görə router heç vaxt modelləri dəyişmir.`,defaultBadge:`Default · Avtomobil`,makeDefault:`Default et`,moveUp:`İrəliləyin`,moveDown:`Aşağı çəkil`,usageToday:`{count} bu gün tələb olunur`,usageMonth:`{count} bu ay Tok`,autoDescription:`model: "auto" POST /v1/embeddings marşrutlarda standart ailəyə keçin. Bir ailənin (və ya təminatçı model id) adlandırılması həmin ailəni pinləyir; Daxilindəki provayderlər ardıcıllıqla yoxlanılır.`,unsavedChanges:`Yadda saxlanmamış dəyişikliklər`,saveChanges:`Yaddaş dəyişiklikləri`,savingChanges:`Qurtarmaq...`,tokMax:`{tokens} Tok Max`,emptyTitle:`Hələ embedding modelləri yoxdur`,emptyDesc:`Embedding ailələri burada embeddingləri dəstəkləyən provayder açarı əlavə etdikdən sonra görünür.`,dragToReorder:`Yenidən sifariş təminatçısına sürüklə`},fusion:{title:`Birləşmə`,description:`Modellər paneli paralel cavab verir, sonra hakim daha güclü bir cavabı sintez edir. Bunu model olan API "fusion" adlandıraraq istifadə edin.`,panelSource:`Panel mənbəyi`,panelSourceHelp:`Panel modelləri sorğu göstərilmədikdə haradan gəlir.`,mode:{auto:`Avtomatik (Ehtiyat Zəncir)`,autoHelp:`Fallback Chain-dən aktiv marşrutlaşdırma strategiyanıza görə müxtəlif modellər seçin.`,explicit:`Açıq panel`,explicitHelp:`Həmişə aşağıda seçdiyiniz konkret modellərdən istifadə edin.`},panelModels:`Panel modelləri`,selectedCount:`{count} {max} seçilib`,noModels:`Hələ heç bir model qoşulmayıb. Bir API açarı əlavə edin, sonra Fallback Chain-də modelləri aktiv edin.`,panelSize:`Panel ölçüsü`,panelSizeHelp:`Avtomatik olaraq neçə müxtəlif model seçmək lazımdır (1–{max}).`,judge:`Hakim modeli`,judgeHelp:`Panelin cavablarını birləşdirən model. Auto sizin ən yüksək reytinqli mövcud modelinizdən istifadə edir.`,judgeAuto:`Avtomatik (mövcud ən yüksək reytinqli)`,strategy:`Strategiya`,strategySynthesize:`Sintez etmək — paneli bir cavaba qarışdırmaq`,strategyBestOf:`Ən yaxşısı — ən güclü cavabı qaytar (hakim qərarı yoxdur)`,strategySynthesizeShort:`Sintez`,strategyBestOfShort:`Ən Yaxşılar`,exposePanel:`Panel detalları`,exposePanelHelp:`Hər modelin cavabını və hakim metadatasını cavabda x_fusion sahəsinin altına əlavə edin.`,howToUse:`İstifadə`,howToUseHelp:`Model "fusion" ilə normal çat sorğusu göndərin. Bu parametrlər standartdır; istənilən istənilən sorğu onları "birləşmə" sahəsi ilə üstələyə bilər.`,unsavedChanges:`Yadda saxlanmamış dəyişikliklər`,save:`Xilas et`,searchPlaceholder:`Search models…`,providerFilterLabel:`Filter by provider`,providerAll:`All providers`,noMatch:`No models match your search.`},premium:{title:`Premium`,description:`Hər cihazda canlı model kataloqu.`,loading:`Yüklənir...`,checkForUpdates:`Yeniləmələri yoxlayın`,syncing:`Sinxronizasiya...`,catalogFeed:`Kataloq lenti`,liveFeed:`Canlı yayım`,monthlySnapshot:`Aylıq anlıq görüntü`,lastChecked:`Son yoxlama: {when}`,liveDescription:`Yeni pulsuz modellər, kvota dəyişiklikləri və quirk düzəlişləri göndərildikdən bir neçə saat sonra buraya gəlir. Tətbiq gündə iki dəfə avtomatik yoxlayır; Heç bir iş yoxdur.`,snapshotDescription:`Pulsuz səviyyə: kataloq aylıq snapshotdan yenilənir, gündə iki dəfə avtomatik yoxlanılır. Premium bunu canlı yayıma keçirir, hər 2-3 gündə bir yenilənir.`,lastSyncProblem:`Son sinxronizasiya problemi: {error}`,license:`Lisenziya`,planAnnual:`Premium İllik`,planLifetime:`Premium Ömür Boyu`,expired:`Müddəti bitib`,inactive:`Qeyri-aktiv`,lifetimeNote:`Ömürlük lisenziya: heç vaxt bitmir.`,renewsOn:`{date} yeniləyir.`,willNotRenew:`Yenilənməyəcək. Premium {date}-cı ilə qədər, sonra bu quraşdırma yenidən pulsuz aylıq kataloqa qayıdır.`,keyInactive:`Bu açar artıq aktiv deyil. Tətbiq pulsuz aylıq kataloq üzərində işləməyə davam edir.`,manageSubscription:`Abunəliyi idarə et`,openingPortal:`Açılır...`,removeKey:`Bu cihazdan açarı çıxar`,manageHint:`Abunəliyi idarə etmək Stripe-nin ödəniş portalını açır: kartınızı ləğv edin, yeniləyin və ya fakturaları yükləyin. Açarı çıxarmaq yalnız bu cihazı deaktiv edir; Sizin alışınız toxunulmazdır.`,licenseKey:`Lisenziya açarı`,licenseKeyPlaceholder:`fla_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`,activate:`Aktivləşdir`,activating:`Aktivləşdirirəm...`,keyHint:`Açarınız alış e-poçtunda və ödənişdən sonrakı səhifədədir. İtirdin?`,recoverKey:`Saytda bərpa edin`,upsellTitle:`İldə 19 dollara yaşa`,upsellDescription:`Yeni pulsuz modellər mövcud olduğu anda, 30 gün sonra yox. Bir açar, hər cihaz. İstənilən vaxt ləğv edə bilərsiniz; Router həmişə boş qalır.`,goPremium:`Go Premium`,bundled:`paketlənmiş`,planGeneric:`Premium`},languages:{en:`English`,"zh-CN":`中文 (简体)`,es:`Español`,fr:`Français`,"pt-BR":`Português (Brasil)`,it:`Italiano`,hi:`हिन्दी`,ar:`العربية`,bn:`বাংলা`,ru:`Русский`,ur:`اردو`,id:`Bahasa Indonesia`,de:`Deutsch`,ja:`日本語`,sw:`Kiswahili`,mr:`मराठी`,te:`తెలుగు`,tr:`Türkçe`,ta:`தமிழ்`,vi:`Tiếng Việt`,ko:`한국어`,fa:`فارسی`,th:`ไทย`,gu:`ગુજરાતી`,pl:`Polski`,uk:`Українська`,kn:`ಕನ್ನಡ`,ml:`മലയാളം`,or:`ଓଡ଼ିଆ`,my:`မြန်မာဘာသာ`,pa:`ਪੰਜਾਬੀ`,ro:`Română`,nl:`Nederlands`,ms:`Bahasa Melayu`,tl:`Filipino`,ha:`Hausa`,yo:`Yorùbá`,ig:`Igbo`,am:`አማርኛ`,uz:`Oʻzbekcha`,az:`Azərbaycanca`,si:`සිංහල`,ne:`नेपाली`,km:`ខ្មែរ`,el:`Ελληνικά`,cs:`Čeština`,hu:`Magyar`,sv:`Svenska`,he:`עברית`,da:`Dansk`,fi:`Suomi`,no:`Norsk`,sk:`Slovenčina`,bg:`Български`,hr:`Hrvatski`,sr:`Српски`,lt:`Lietuvių`,"zh-TW":`中文 (繁體)`,"pt-PT":`Português (Portugal)`,ka:`ქართული`},errors:{boundaryTitle:`Nəsə səhv getdi`,boundaryDescription:`Paneldə gözlənilməz bir xəta çıxdı. Məlumatların təhlükəsizdir. Yenidən cəhd edin və ya modellər səhifəsinə qayıdın.`,tryAgain:`Bir də cəhd edin`,goHome:`Modellərə qayıdış`},notFound:{title:`Səhifə tapılmadı`,description:`Bu səhifə mövcud deyil və ya köçmüş ola bilər.`},setup:{title:`Başlamaq`,subtitle:`İlk sorğunuzu yönləndirmək üçün üç addım.`,progress:`{done} of {total}`,step1Title:`Təchizatçı açarı əlavə edin`,step1Desc:`Ən azı bir provayder hesabı qoşun. Pulsuz açarlar işləyir.`,step1Cta:`Açarları əlavə et`,step2Title:`Test sorğusu göndərin`,step2Desc:`Playground-da istənilən modeli seçin və salam verin.`,step2Cta:`Açıq Oyun Sahəsi`,step3Title:`Tətbiqinizi birləşdirin`,step3Desc:`Birləşmiş API açarınızı istənilən OpenAI uyğun müştəri ilə istifadə edin.`,copyKey:`Kopya API`,copyUrl:`Kopya bazası URL`,copiedKey:`API açar lövhəyə köçürülüb`,copiedUrl:`Baza URL lövhəyə köçürülüb`},palette:{title:`Komanda palitrası`,placeholder:`Axtarış səhifələri, modellər, fəaliyyətlər...`,empty:`Nəticə yoxdur`,groupPages:`Səhifələr`,groupActions:`Əməliyyatlar`,groupModels:`Modellər`,toggleTheme:`Qaranlıq rejimi dəyiş`},validation:{required:`Tələb olunur`,url:`http:// və ya https:// ilə başlayan etibarlı URL daxil edin`,email:`Etibarlı e-poçt ünvanı daxil edin`,passwordMin:`Ən azı {min} personaj`},agents:{title:`Kodlaşdırma agentləri`,description:`Kodlaşdırma alətlərini generasiya olunmuş, ehtiyat nüsxə üçün təhlükəsiz konfiqurasiya ilə vahid pulsuz model şlüzünə qoşun.`,apiKey:`API açarı`,quickstartTitle:`Sürətli başlanğıc`,quickstart:`Ən sürətli yol: Claude Code-u canlı kataloqdan konfiqurasiya edin.`,currentKey:`Cari vahid açar:`,seenRecently:`Bu yaxınlarda görülüb`,setupLabel:`Avtomatik quraşdırma`,setupHint:`Bu alətin konfiqurasiya faylını sizin üçün yazır və bu şlüzə yönəldir.`,setupGuideHint:`Bu alətin quraşdırma addımlarını göstərir; heç bir fayl yazılmır.`,manualLabel:`Əl ilə qoşulma`,manualHint:`Alətin öz parametrlərinə daxil ediləcək əsas URL və açar.`,endpoint:`Endpoint`,documentation:`Sənədlər`,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:`Öz maşınınızdan WhatsApp, Telegram, Discord və digərlərində cavab verən, həmişə aktiv şəxsi köməkçi.`,hermes:`Nous Research-in özünü təkmilləşdirən agenti; daimi yaddaş və bacarıqlarla, terminalda və ya söhbət tətbiqlərində.`,pi:`Öz genişləndirmələriniz, bacarıqlarınız və sorğu şablonlarınızla formalaşdırdığınız 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:`Bu zəncirin adını dəyiş`,renameConfirm:`"{oldName}" zəncirinin adı "{name}" ilə dəyişilsin? auto:{oldName} səsləyən müştərilər auto:{name} keçməlidir.`,renamePlaceholder:`Yeni zəncir adı`,renameFailed:`Zəncirin adını dəyişmək alınmadı.`},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};
|