@srouterhq/server 0.0.0-stage → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/client/dist/assets/am-TQ7Jmdqe.js +1 -0
- package/client/dist/assets/ar-Bf5a7yfC.js +1 -0
- package/client/dist/assets/az-CrosE1xH.js +1 -0
- package/client/dist/assets/bg-BvWnmcUz.js +1 -0
- package/client/dist/assets/bn-ams5TsJp.js +1 -0
- package/client/dist/assets/cs-Dh67CaJ_.js +1 -0
- package/client/dist/assets/da-9WlT8Iq7.js +1 -0
- package/client/dist/assets/de-lWhJJzz7.js +1 -0
- package/client/dist/assets/el-Cu7_GhNq.js +1 -0
- package/client/dist/assets/es-BZuzsBcP.js +1 -0
- package/client/dist/assets/fa-Dwdn-jKS.js +1 -0
- package/client/dist/assets/fi-BFrFyOTy.js +1 -0
- package/client/dist/assets/fr-XhbtmPpj.js +1 -0
- package/client/dist/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
- package/client/dist/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
- package/client/dist/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
- package/client/dist/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
- package/client/dist/assets/geist-mono-cyrillic-ext-wght-normal-I4S5GZfc.woff2 +0 -0
- package/client/dist/assets/geist-mono-cyrillic-wght-normal-BmXc_FBt.woff2 +0 -0
- package/client/dist/assets/geist-mono-latin-ext-wght-normal-DrnZ1wKl.woff2 +0 -0
- package/client/dist/assets/geist-mono-latin-wght-normal-B_7UjwxQ.woff2 +0 -0
- package/client/dist/assets/geist-mono-symbols2-wght-normal-GZpp1pK2.woff2 +0 -0
- package/client/dist/assets/geist-mono-vietnamese-wght-normal-D8KDMBhC.woff2 +0 -0
- package/client/dist/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
- package/client/dist/assets/gu-D0uhLUB8.js +1 -0
- package/client/dist/assets/ha-CVlm9pqp.js +1 -0
- package/client/dist/assets/he-CMIFeoWr.js +1 -0
- package/client/dist/assets/hi-ENTwhBpn.js +1 -0
- package/client/dist/assets/hr-fc03vMy_.js +1 -0
- package/client/dist/assets/hu-YBo2BIYt.js +1 -0
- package/client/dist/assets/id-BEWXYX69.js +1 -0
- package/client/dist/assets/ig-BKLZFKka.js +1 -0
- package/client/dist/assets/index-D9I4KtvR.js +145 -0
- package/client/dist/assets/index-txhEmCdb.css +2 -0
- package/client/dist/assets/it-Bzmei1Y2.js +1 -0
- package/client/dist/assets/ja-BfcpuqEl.js +1 -0
- package/client/dist/assets/ka-CnWjRgLo.js +1 -0
- package/client/dist/assets/km-BAjPR3Qj.js +1 -0
- package/client/dist/assets/kn-B15WKU5m.js +1 -0
- package/client/dist/assets/ko-C61fAB-w.js +1 -0
- package/client/dist/assets/lt-CYTr4_YW.js +1 -0
- package/client/dist/assets/ml-CtqxgyH3.js +1 -0
- package/client/dist/assets/mr-X5TMY7aR.js +1 -0
- package/client/dist/assets/ms-DSg8RqPS.js +1 -0
- package/client/dist/assets/my-D7RqR8uE.js +1 -0
- package/client/dist/assets/ne-DaflxkDj.js +1 -0
- package/client/dist/assets/nl-BOqqtsC8.js +1 -0
- package/client/dist/assets/no-BSHp_StB.js +1 -0
- package/client/dist/assets/or-BkLR9Vub.js +1 -0
- package/client/dist/assets/pa-CarJ2XgI.js +1 -0
- package/client/dist/assets/pl-C2n0V-0k.js +1 -0
- package/client/dist/assets/pt-BR-CqJdNhg2.js +1 -0
- package/client/dist/assets/pt-PT-C_HpMyKz.js +1 -0
- package/client/dist/assets/ro-DVRZqSAS.js +1 -0
- package/client/dist/assets/ru-DwAJG7VC.js +1 -0
- package/client/dist/assets/si-BxUezXm0.js +1 -0
- package/client/dist/assets/sk-eI1VcIfY.js +1 -0
- package/client/dist/assets/sr-CJF3auCr.js +1 -0
- package/client/dist/assets/srouter-logo-C6ZfjGIi.svg +14 -0
- package/client/dist/assets/sv-nqvwHAq_.js +1 -0
- package/client/dist/assets/sw-DWynE2pW.js +1 -0
- package/client/dist/assets/ta-BVM12knC.js +1 -0
- package/client/dist/assets/te-oyzEkF7_.js +1 -0
- package/client/dist/assets/th-COVeE0ZQ.js +1 -0
- package/client/dist/assets/tl-DsJANnQz.js +1 -0
- package/client/dist/assets/tr-B-Fl-urO.js +1 -0
- package/client/dist/assets/uk-C5qketAO.js +1 -0
- package/client/dist/assets/ur-QU9KugfV.js +1 -0
- package/client/dist/assets/uz-DL9cG_mY.js +1 -0
- package/client/dist/assets/vi-CQiVy3Pu.js +1 -0
- package/client/dist/assets/yo-DqazMdrZ.js +1 -0
- package/client/dist/assets/zh-CN-DnYL_Kio.js +1 -0
- package/client/dist/assets/zh-TW-5bdbosKj.js +1 -0
- package/client/dist/favicon.svg +14 -0
- package/client/dist/icons.svg +24 -0
- package/client/dist/index.html +37 -0
- package/dist/app.d.ts +4 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +372 -0
- package/dist/app.js.map +1 -0
- package/dist/db/index.d.ts +49 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +203 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/migrate/TEMPLATE.d.ts +4 -0
- package/dist/db/migrate/TEMPLATE.d.ts.map +1 -0
- package/dist/db/migrate/TEMPLATE.js +18 -0
- package/dist/db/migrate/TEMPLATE.js.map +1 -0
- package/dist/db/migrate/cli.d.ts +2 -0
- package/dist/db/migrate/cli.d.ts.map +1 -0
- package/dist/db/migrate/cli.js +177 -0
- package/dist/db/migrate/cli.js.map +1 -0
- package/dist/db/migrate/defaults.d.ts +52 -0
- package/dist/db/migrate/defaults.d.ts.map +1 -0
- package/dist/db/migrate/defaults.js +126 -0
- package/dist/db/migrate/defaults.js.map +1 -0
- package/dist/db/migrate/runner.d.ts +16 -0
- package/dist/db/migrate/runner.d.ts.map +1 -0
- package/dist/db/migrate/runner.js +178 -0
- package/dist/db/migrate/runner.js.map +1 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.d.ts +4 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.d.ts.map +1 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.js +2240 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.js.map +1 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.d.ts +4 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.d.ts.map +1 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.js +27 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.js.map +1 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.d.ts +4 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.d.ts.map +1 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.js +30 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.js.map +1 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.d.ts +6 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.d.ts.map +1 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.js +104 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.js.map +1 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.d.ts +9 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.d.ts.map +1 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.js +22 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.js.map +1 -0
- package/dist/db/migrations/20260706_000001_request_client_info.d.ts +4 -0
- package/dist/db/migrations/20260706_000001_request_client_info.d.ts.map +1 -0
- package/dist/db/migrations/20260706_000001_request_client_info.js +30 -0
- package/dist/db/migrations/20260706_000001_request_client_info.js.map +1 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.d.ts +17 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.d.ts.map +1 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.js +20 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.js.map +1 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.d.ts +12 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.d.ts.map +1 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.js +45 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.js.map +1 -0
- package/dist/db/migrations/20260720_000001_key_health_error.d.ts +5 -0
- package/dist/db/migrations/20260720_000001_key_health_error.d.ts.map +1 -0
- package/dist/db/migrations/20260720_000001_key_health_error.js +16 -0
- package/dist/db/migrations/20260720_000001_key_health_error.js.map +1 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.d.ts +4 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.js +38 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.js.map +1 -0
- package/dist/db/migrations/20260726_000002_request_attempts.d.ts +4 -0
- package/dist/db/migrations/20260726_000002_request_attempts.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000002_request_attempts.js +43 -0
- package/dist/db/migrations/20260726_000002_request_attempts.js.map +1 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.d.ts +4 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.js +80 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.js.map +1 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.d.ts +4 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.js +34 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.js.map +1 -0
- package/dist/db/migrations/20260726_000005_request_served_model.d.ts +4 -0
- package/dist/db/migrations/20260726_000005_request_served_model.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000005_request_served_model.js +31 -0
- package/dist/db/migrations/20260726_000005_request_served_model.js.map +1 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.d.ts +4 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.js +29 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.js.map +1 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.d.ts +4 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.d.ts.map +1 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.js +41 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.js.map +1 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.d.ts +12 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.d.ts.map +1 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.js +37 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.js.map +1 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.d.ts +4 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.d.ts.map +1 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.js +145 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.js.map +1 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.d.ts +6 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.d.ts.map +1 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.js +52 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.js.map +1 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.d.ts +6 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.d.ts.map +1 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.js +17 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.js.map +1 -0
- package/dist/db/migrations/20260805_000002_client_profiles.d.ts +4 -0
- package/dist/db/migrations/20260805_000002_client_profiles.d.ts.map +1 -0
- package/dist/db/migrations/20260805_000002_client_profiles.js +33 -0
- package/dist/db/migrations/20260805_000002_client_profiles.js.map +1 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.d.ts +4 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.d.ts.map +1 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.js +33 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.js.map +1 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.d.ts +4 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.d.ts.map +1 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.js +19 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.js.map +1 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.d.ts +4 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.d.ts.map +1 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.js +47 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.js.map +1 -0
- package/dist/db/migrations/20260823_000001_server_logs.d.ts +4 -0
- package/dist/db/migrations/20260823_000001_server_logs.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000001_server_logs.js +53 -0
- package/dist/db/migrations/20260823_000001_server_logs.js.map +1 -0
- package/dist/db/migrations/20260823_000002_backups_table.d.ts +8 -0
- package/dist/db/migrations/20260823_000002_backups_table.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000002_backups_table.js +22 -0
- package/dist/db/migrations/20260823_000002_backups_table.js.map +1 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.d.ts +19 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.js +28 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.js.map +1 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.d.ts +14 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.js +25 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.js.map +1 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.d.ts +4 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.d.ts.map +1 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.js +46 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.js.map +1 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.d.ts +4 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.d.ts.map +1 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.js +37 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.js.map +1 -0
- package/dist/db/migrations/20260901_000003_request_caller.d.ts +4 -0
- package/dist/db/migrations/20260901_000003_request_caller.d.ts.map +1 -0
- package/dist/db/migrations/20260901_000003_request_caller.js +27 -0
- package/dist/db/migrations/20260901_000003_request_caller.js.map +1 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.d.ts +4 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.d.ts.map +1 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.js +35 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.js.map +1 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.d.ts +4 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.d.ts.map +1 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.js +37 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.js.map +1 -0
- package/dist/db/migrations/20260903_000002_response_cache.d.ts +4 -0
- package/dist/db/migrations/20260903_000002_response_cache.d.ts.map +1 -0
- package/dist/db/migrations/20260903_000002_response_cache.js +53 -0
- package/dist/db/migrations/20260903_000002_response_cache.js.map +1 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.d.ts +13 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.d.ts.map +1 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.js +35 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.js.map +1 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.d.ts +4 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.d.ts.map +1 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.js +68 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.js.map +1 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.d.ts +5 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.d.ts.map +1 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.js +37 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.js.map +1 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.d.ts +4 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.d.ts.map +1 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.js +28 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.js.map +1 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.d.ts +4 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.d.ts.map +1 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.js +25 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.js.map +1 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.d.ts +10 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.d.ts.map +1 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.js +78 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.js.map +1 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.d.ts +21 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.d.ts.map +1 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.js +41 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.js.map +1 -0
- package/dist/db/model-pricing.d.ts +39 -0
- package/dist/db/model-pricing.d.ts.map +1 -0
- package/dist/db/model-pricing.js +274 -0
- package/dist/db/model-pricing.js.map +1 -0
- package/dist/db/node-sqlite.d.ts +9 -0
- package/dist/db/node-sqlite.d.ts.map +1 -0
- package/dist/db/node-sqlite.js +87 -0
- package/dist/db/node-sqlite.js.map +1 -0
- package/dist/db/types.d.ts +22 -0
- package/dist/db/types.d.ts.map +1 -0
- package/dist/db/types.js +2 -0
- package/dist/db/types.js.map +1 -0
- package/dist/docs/docs-page.d.ts +2 -0
- package/dist/docs/docs-page.d.ts.map +1 -0
- package/dist/docs/docs-page.js +319 -0
- package/dist/docs/docs-page.js.map +1 -0
- package/dist/docs/openapi.d.ts +1896 -0
- package/dist/docs/openapi.d.ts.map +1 -0
- package/dist/docs/openapi.js +1096 -0
- package/dist/docs/openapi.js.map +1 -0
- package/dist/env.d.ts +2 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +9 -0
- package/dist/env.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +144 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/anthropic-documents.d.ts +41 -0
- package/dist/lib/anthropic-documents.d.ts.map +1 -0
- package/dist/lib/anthropic-documents.js +132 -0
- package/dist/lib/anthropic-documents.js.map +1 -0
- package/dist/lib/app-version.d.ts +5 -0
- package/dist/lib/app-version.d.ts.map +1 -0
- package/dist/lib/app-version.js +61 -0
- package/dist/lib/app-version.js.map +1 -0
- package/dist/lib/attempt-trace.d.ts +23 -0
- package/dist/lib/attempt-trace.d.ts.map +1 -0
- package/dist/lib/attempt-trace.js +32 -0
- package/dist/lib/attempt-trace.js.map +1 -0
- package/dist/lib/budget.d.ts +6 -0
- package/dist/lib/budget.d.ts.map +1 -0
- package/dist/lib/budget.js +40 -0
- package/dist/lib/budget.js.map +1 -0
- package/dist/lib/client-classifier.d.ts +10 -0
- package/dist/lib/client-classifier.d.ts.map +1 -0
- package/dist/lib/client-classifier.js +126 -0
- package/dist/lib/client-classifier.js.map +1 -0
- package/dist/lib/client-context.d.ts +10 -0
- package/dist/lib/client-context.d.ts.map +1 -0
- package/dist/lib/client-context.js +39 -0
- package/dist/lib/client-context.js.map +1 -0
- package/dist/lib/config.d.ts +33 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +94 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/content.d.ts +33 -0
- package/dist/lib/content.d.ts.map +1 -0
- package/dist/lib/content.js +201 -0
- package/dist/lib/content.js.map +1 -0
- package/dist/lib/credential.d.ts +11 -0
- package/dist/lib/credential.d.ts.map +1 -0
- package/dist/lib/credential.js +18 -0
- package/dist/lib/credential.js.map +1 -0
- package/dist/lib/crypto.d.ts +31 -0
- package/dist/lib/crypto.d.ts.map +1 -0
- package/dist/lib/crypto.js +206 -0
- package/dist/lib/crypto.js.map +1 -0
- package/dist/lib/custom-provider-cleanup.d.ts +13 -0
- package/dist/lib/custom-provider-cleanup.d.ts.map +1 -0
- package/dist/lib/custom-provider-cleanup.js +43 -0
- package/dist/lib/custom-provider-cleanup.js.map +1 -0
- package/dist/lib/db-backup.d.ts +31 -0
- package/dist/lib/db-backup.d.ts.map +1 -0
- package/dist/lib/db-backup.js +255 -0
- package/dist/lib/db-backup.js.map +1 -0
- package/dist/lib/endpoint-scope.d.ts +42 -0
- package/dist/lib/endpoint-scope.d.ts.map +1 -0
- package/dist/lib/endpoint-scope.js +95 -0
- package/dist/lib/endpoint-scope.js.map +1 -0
- package/dist/lib/env-drift.d.ts +17 -0
- package/dist/lib/env-drift.d.ts.map +1 -0
- package/dist/lib/env-drift.js +108 -0
- package/dist/lib/env-drift.js.map +1 -0
- package/dist/lib/error-classify.d.ts +40 -0
- package/dist/lib/error-classify.d.ts.map +1 -0
- package/dist/lib/error-classify.js +687 -0
- package/dist/lib/error-classify.js.map +1 -0
- package/dist/lib/error-redaction.d.ts +8 -0
- package/dist/lib/error-redaction.d.ts.map +1 -0
- package/dist/lib/error-redaction.js +45 -0
- package/dist/lib/error-redaction.js.map +1 -0
- package/dist/lib/fallback-loop.d.ts +306 -0
- package/dist/lib/fallback-loop.d.ts.map +1 -0
- package/dist/lib/fallback-loop.js +1336 -0
- package/dist/lib/fallback-loop.js.map +1 -0
- package/dist/lib/file-permissions.d.ts +98 -0
- package/dist/lib/file-permissions.d.ts.map +1 -0
- package/dist/lib/file-permissions.js +159 -0
- package/dist/lib/file-permissions.js.map +1 -0
- package/dist/lib/gemini-wire.d.ts +76 -0
- package/dist/lib/gemini-wire.d.ts.map +1 -0
- package/dist/lib/gemini-wire.js +392 -0
- package/dist/lib/gemini-wire.js.map +1 -0
- package/dist/lib/guardrails.d.ts +37 -0
- package/dist/lib/guardrails.d.ts.map +1 -0
- package/dist/lib/guardrails.js +106 -0
- package/dist/lib/guardrails.js.map +1 -0
- package/dist/lib/header-value.d.ts +8 -0
- package/dist/lib/header-value.d.ts.map +1 -0
- package/dist/lib/header-value.js +55 -0
- package/dist/lib/header-value.js.map +1 -0
- package/dist/lib/image-normalize.d.ts +21 -0
- package/dist/lib/image-normalize.d.ts.map +1 -0
- package/dist/lib/image-normalize.js +218 -0
- package/dist/lib/image-normalize.js.map +1 -0
- package/dist/lib/inbound-chat.d.ts +48 -0
- package/dist/lib/inbound-chat.d.ts.map +1 -0
- package/dist/lib/inbound-chat.js +406 -0
- package/dist/lib/inbound-chat.js.map +1 -0
- package/dist/lib/key-parser.d.ts +79 -0
- package/dist/lib/key-parser.d.ts.map +1 -0
- package/dist/lib/key-parser.js +701 -0
- package/dist/lib/key-parser.js.map +1 -0
- package/dist/lib/key-proxy.d.ts +49 -0
- package/dist/lib/key-proxy.d.ts.map +1 -0
- package/dist/lib/key-proxy.js +92 -0
- package/dist/lib/key-proxy.js.map +1 -0
- package/dist/lib/log-redaction.d.ts +28 -0
- package/dist/lib/log-redaction.d.ts.map +1 -0
- package/dist/lib/log-redaction.js +166 -0
- package/dist/lib/log-redaction.js.map +1 -0
- package/dist/lib/model-scope.d.ts +9 -0
- package/dist/lib/model-scope.d.ts.map +1 -0
- package/dist/lib/model-scope.js +29 -0
- package/dist/lib/model-scope.js.map +1 -0
- package/dist/lib/one-time-code.d.ts +15 -0
- package/dist/lib/one-time-code.d.ts.map +1 -0
- package/dist/lib/one-time-code.js +41 -0
- package/dist/lib/one-time-code.js.map +1 -0
- package/dist/lib/output-cap.d.ts +24 -0
- package/dist/lib/output-cap.d.ts.map +1 -0
- package/dist/lib/output-cap.js +80 -0
- package/dist/lib/output-cap.js.map +1 -0
- package/dist/lib/password.d.ts +3 -0
- package/dist/lib/password.d.ts.map +1 -0
- package/dist/lib/password.js +27 -0
- package/dist/lib/password.js.map +1 -0
- package/dist/lib/process-safety-net.d.ts +32 -0
- package/dist/lib/process-safety-net.d.ts.map +1 -0
- package/dist/lib/process-safety-net.js +123 -0
- package/dist/lib/process-safety-net.js.map +1 -0
- package/dist/lib/provider-identity.d.ts +37 -0
- package/dist/lib/provider-identity.d.ts.map +1 -0
- package/dist/lib/provider-identity.js +110 -0
- package/dist/lib/provider-identity.js.map +1 -0
- package/dist/lib/provider-size-parser.d.ts +6 -0
- package/dist/lib/provider-size-parser.d.ts.map +1 -0
- package/dist/lib/provider-size-parser.js +72 -0
- package/dist/lib/provider-size-parser.js.map +1 -0
- package/dist/lib/provider-timeout.d.ts +17 -0
- package/dist/lib/provider-timeout.d.ts.map +1 -0
- package/dist/lib/provider-timeout.js +70 -0
- package/dist/lib/provider-timeout.js.map +1 -0
- package/dist/lib/proxy.d.ts +180 -0
- package/dist/lib/proxy.d.ts.map +1 -0
- package/dist/lib/proxy.js +1002 -0
- package/dist/lib/proxy.js.map +1 -0
- package/dist/lib/request-log.d.ts +4 -0
- package/dist/lib/request-log.d.ts.map +1 -0
- package/dist/lib/request-log.js +161 -0
- package/dist/lib/request-log.js.map +1 -0
- package/dist/lib/reset-code.d.ts +5 -0
- package/dist/lib/reset-code.d.ts.map +1 -0
- package/dist/lib/reset-code.js +39 -0
- package/dist/lib/reset-code.js.map +1 -0
- package/dist/lib/retry-hint.d.ts +14 -0
- package/dist/lib/retry-hint.d.ts.map +1 -0
- package/dist/lib/retry-hint.js +36 -0
- package/dist/lib/retry-hint.js.map +1 -0
- package/dist/lib/route-live.d.ts +29 -0
- package/dist/lib/route-live.d.ts.map +1 -0
- package/dist/lib/route-live.js +97 -0
- package/dist/lib/route-live.js.map +1 -0
- package/dist/lib/sampling-params.d.ts +183 -0
- package/dist/lib/sampling-params.d.ts.map +1 -0
- package/dist/lib/sampling-params.js +386 -0
- package/dist/lib/sampling-params.js.map +1 -0
- package/dist/lib/scheduler.d.ts +13 -0
- package/dist/lib/scheduler.d.ts.map +1 -0
- package/dist/lib/scheduler.js +11 -0
- package/dist/lib/scheduler.js.map +1 -0
- package/dist/lib/served-model.d.ts +16 -0
- package/dist/lib/served-model.d.ts.map +1 -0
- package/dist/lib/served-model.js +0 -0
- package/dist/lib/served-model.js.map +1 -0
- package/dist/lib/server-logs.d.ts +132 -0
- package/dist/lib/server-logs.d.ts.map +1 -0
- package/dist/lib/server-logs.js +473 -0
- package/dist/lib/server-logs.js.map +1 -0
- package/dist/lib/setup-code.d.ts +5 -0
- package/dist/lib/setup-code.d.ts.map +1 -0
- package/dist/lib/setup-code.js +35 -0
- package/dist/lib/setup-code.js.map +1 -0
- package/dist/lib/structured-output.d.ts +9 -0
- package/dist/lib/structured-output.d.ts.map +1 -0
- package/dist/lib/structured-output.js +72 -0
- package/dist/lib/structured-output.js.map +1 -0
- package/dist/lib/system-prompt.d.ts +30 -0
- package/dist/lib/system-prompt.d.ts.map +1 -0
- package/dist/lib/system-prompt.js +66 -0
- package/dist/lib/system-prompt.js.map +1 -0
- package/dist/lib/task-type.d.ts +18 -0
- package/dist/lib/task-type.d.ts.map +1 -0
- package/dist/lib/task-type.js +92 -0
- package/dist/lib/task-type.js.map +1 -0
- package/dist/lib/think-tags.d.ts +37 -0
- package/dist/lib/think-tags.d.ts.map +1 -0
- package/dist/lib/think-tags.js +203 -0
- package/dist/lib/think-tags.js.map +1 -0
- package/dist/lib/tool-args.d.ts +36 -0
- package/dist/lib/tool-args.d.ts.map +1 -0
- package/dist/lib/tool-args.js +190 -0
- package/dist/lib/tool-args.js.map +1 -0
- package/dist/lib/tool-call-rescue.d.ts +62 -0
- package/dist/lib/tool-call-rescue.d.ts.map +1 -0
- package/dist/lib/tool-call-rescue.js +258 -0
- package/dist/lib/tool-call-rescue.js.map +1 -0
- package/dist/lib/tool-capability.d.ts +13 -0
- package/dist/lib/tool-capability.d.ts.map +1 -0
- package/dist/lib/tool-capability.js +70 -0
- package/dist/lib/tool-capability.js.map +1 -0
- package/dist/lib/tool-validate.d.ts +44 -0
- package/dist/lib/tool-validate.d.ts.map +1 -0
- package/dist/lib/tool-validate.js +165 -0
- package/dist/lib/tool-validate.js.map +1 -0
- package/dist/lib/ttfb-budget.d.ts +13 -0
- package/dist/lib/ttfb-budget.d.ts.map +1 -0
- package/dist/lib/ttfb-budget.js +153 -0
- package/dist/lib/ttfb-budget.js.map +1 -0
- package/dist/lib/url-guard.d.ts +47 -0
- package/dist/lib/url-guard.d.ts.map +1 -0
- package/dist/lib/url-guard.js +229 -0
- package/dist/lib/url-guard.js.map +1 -0
- package/dist/lib/wake-detect.d.ts +12 -0
- package/dist/lib/wake-detect.d.ts.map +1 -0
- package/dist/lib/wake-detect.js +99 -0
- package/dist/lib/wake-detect.js.map +1 -0
- package/dist/middleware/errorHandler.d.ts +3 -0
- package/dist/middleware/errorHandler.d.ts.map +1 -0
- package/dist/middleware/errorHandler.js +45 -0
- package/dist/middleware/errorHandler.js.map +1 -0
- package/dist/middleware/rateLimit.d.ts +4 -0
- package/dist/middleware/rateLimit.d.ts.map +1 -0
- package/dist/middleware/rateLimit.js +125 -0
- package/dist/middleware/rateLimit.js.map +1 -0
- package/dist/middleware/requireAuth.d.ts +3 -0
- package/dist/middleware/requireAuth.d.ts.map +1 -0
- package/dist/middleware/requireAuth.js +17 -0
- package/dist/middleware/requireAuth.js.map +1 -0
- package/dist/providers/aclide.d.ts +18 -0
- package/dist/providers/aclide.d.ts.map +1 -0
- package/dist/providers/aclide.js +174 -0
- package/dist/providers/aclide.js.map +1 -0
- package/dist/providers/aihorde.d.ts +42 -0
- package/dist/providers/aihorde.d.ts.map +1 -0
- package/dist/providers/aihorde.js +192 -0
- package/dist/providers/aihorde.js.map +1 -0
- package/dist/providers/airforce.d.ts +11 -0
- package/dist/providers/airforce.d.ts.map +1 -0
- package/dist/providers/airforce.js +32 -0
- package/dist/providers/airforce.js.map +1 -0
- package/dist/providers/base.d.ts +177 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +354 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/blaze.d.ts +11 -0
- package/dist/providers/blaze.d.ts.map +1 -0
- package/dist/providers/blaze.js +33 -0
- package/dist/providers/blaze.js.map +1 -0
- package/dist/providers/blockrun.d.ts +14 -0
- package/dist/providers/blockrun.d.ts.map +1 -0
- package/dist/providers/blockrun.js +36 -0
- package/dist/providers/blockrun.js.map +1 -0
- package/dist/providers/clod.d.ts +11 -0
- package/dist/providers/clod.d.ts.map +1 -0
- package/dist/providers/clod.js +39 -0
- package/dist/providers/clod.js.map +1 -0
- package/dist/providers/cloudflare.d.ts +15 -0
- package/dist/providers/cloudflare.d.ts.map +1 -0
- package/dist/providers/cloudflare.js +175 -0
- package/dist/providers/cloudflare.js.map +1 -0
- package/dist/providers/cohere.d.ts +11 -0
- package/dist/providers/cohere.d.ts.map +1 -0
- package/dist/providers/cohere.js +117 -0
- package/dist/providers/cohere.js.map +1 -0
- package/dist/providers/dreamprompting.d.ts +11 -0
- package/dist/providers/dreamprompting.d.ts.map +1 -0
- package/dist/providers/dreamprompting.js +41 -0
- package/dist/providers/dreamprompting.js.map +1 -0
- package/dist/providers/electronhub.d.ts +10 -0
- package/dist/providers/electronhub.d.ts.map +1 -0
- package/dist/providers/electronhub.js +56 -0
- package/dist/providers/electronhub.js.map +1 -0
- package/dist/providers/experiential.d.ts +10 -0
- package/dist/providers/experiential.d.ts.map +1 -0
- package/dist/providers/experiential.js +33 -0
- package/dist/providers/experiential.js.map +1 -0
- package/dist/providers/gizmo.d.ts +15 -0
- package/dist/providers/gizmo.d.ts.map +1 -0
- package/dist/providers/gizmo.js +54 -0
- package/dist/providers/gizmo.js.map +1 -0
- package/dist/providers/google.d.ts +30 -0
- package/dist/providers/google.d.ts.map +1 -0
- package/dist/providers/google.js +766 -0
- package/dist/providers/google.js.map +1 -0
- package/dist/providers/index.d.ts +13 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +561 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/llmtr.d.ts +15 -0
- package/dist/providers/llmtr.d.ts.map +1 -0
- package/dist/providers/llmtr.js +51 -0
- package/dist/providers/llmtr.js.map +1 -0
- package/dist/providers/logfare.d.ts +11 -0
- package/dist/providers/logfare.d.ts.map +1 -0
- package/dist/providers/logfare.js +33 -0
- package/dist/providers/logfare.js.map +1 -0
- package/dist/providers/lucidity.d.ts +11 -0
- package/dist/providers/lucidity.d.ts.map +1 -0
- package/dist/providers/lucidity.js +37 -0
- package/dist/providers/lucidity.js.map +1 -0
- package/dist/providers/modelscope.d.ts +50 -0
- package/dist/providers/modelscope.d.ts.map +1 -0
- package/dist/providers/modelscope.js +143 -0
- package/dist/providers/modelscope.js.map +1 -0
- package/dist/providers/moondream.d.ts +17 -0
- package/dist/providers/moondream.d.ts.map +1 -0
- package/dist/providers/moondream.js +140 -0
- package/dist/providers/moondream.js.map +1 -0
- package/dist/providers/openai-compat.d.ts +140 -0
- package/dist/providers/openai-compat.d.ts.map +1 -0
- package/dist/providers/openai-compat.js +537 -0
- package/dist/providers/openai-compat.js.map +1 -0
- package/dist/providers/opencode-free.d.ts +24 -0
- package/dist/providers/opencode-free.d.ts.map +1 -0
- package/dist/providers/opencode-free.js +262 -0
- package/dist/providers/opencode-free.js.map +1 -0
- package/dist/providers/pollinations.d.ts +32 -0
- package/dist/providers/pollinations.d.ts.map +1 -0
- package/dist/providers/pollinations.js +65 -0
- package/dist/providers/pollinations.js.map +1 -0
- package/dist/providers/router9.d.ts +16 -0
- package/dist/providers/router9.d.ts.map +1 -0
- package/dist/providers/router9.js +42 -0
- package/dist/providers/router9.js.map +1 -0
- package/dist/providers/sail.d.ts +44 -0
- package/dist/providers/sail.d.ts.map +1 -0
- package/dist/providers/sail.js +302 -0
- package/dist/providers/sail.js.map +1 -0
- package/dist/providers/septor.d.ts +10 -0
- package/dist/providers/septor.d.ts.map +1 -0
- package/dist/providers/septor.js +36 -0
- package/dist/providers/septor.js.map +1 -0
- package/dist/providers/speechify.d.ts +14 -0
- package/dist/providers/speechify.d.ts.map +1 -0
- package/dist/providers/speechify.js +28 -0
- package/dist/providers/speechify.js.map +1 -0
- package/dist/providers/speka.d.ts +12 -0
- package/dist/providers/speka.d.ts.map +1 -0
- package/dist/providers/speka.js +37 -0
- package/dist/providers/speka.js.map +1 -0
- package/dist/providers/waterfall.d.ts +11 -0
- package/dist/providers/waterfall.d.ts.map +1 -0
- package/dist/providers/waterfall.js +33 -0
- package/dist/providers/waterfall.js.map +1 -0
- package/dist/providers/xkiro.d.ts +71 -0
- package/dist/providers/xkiro.d.ts.map +1 -0
- package/dist/providers/xkiro.js +119 -0
- package/dist/providers/xkiro.js.map +1 -0
- package/dist/providers/zhipu.d.ts +43 -0
- package/dist/providers/zhipu.d.ts.map +1 -0
- package/dist/providers/zhipu.js +95 -0
- package/dist/providers/zhipu.js.map +1 -0
- package/dist/routes/analytics.d.ts +2 -0
- package/dist/routes/analytics.d.ts.map +1 -0
- package/dist/routes/analytics.js +738 -0
- package/dist/routes/analytics.js.map +1 -0
- package/dist/routes/anthropic.d.ts +7 -0
- package/dist/routes/anthropic.d.ts.map +1 -0
- package/dist/routes/anthropic.js +1076 -0
- package/dist/routes/anthropic.js.map +1 -0
- package/dist/routes/auth.d.ts +2 -0
- package/dist/routes/auth.d.ts.map +1 -0
- package/dist/routes/auth.js +310 -0
- package/dist/routes/auth.js.map +1 -0
- package/dist/routes/backups.d.ts +2 -0
- package/dist/routes/backups.d.ts.map +1 -0
- package/dist/routes/backups.js +127 -0
- package/dist/routes/backups.js.map +1 -0
- package/dist/routes/cache.d.ts +2 -0
- package/dist/routes/cache.d.ts.map +1 -0
- package/dist/routes/cache.js +40 -0
- package/dist/routes/cache.js.map +1 -0
- package/dist/routes/client-profiles.d.ts +2 -0
- package/dist/routes/client-profiles.d.ts.map +1 -0
- package/dist/routes/client-profiles.js +128 -0
- package/dist/routes/client-profiles.js.map +1 -0
- package/dist/routes/compression.d.ts +2 -0
- package/dist/routes/compression.d.ts.map +1 -0
- package/dist/routes/compression.js +82 -0
- package/dist/routes/compression.js.map +1 -0
- package/dist/routes/conversations.d.ts +3 -0
- package/dist/routes/conversations.d.ts.map +1 -0
- package/dist/routes/conversations.js +215 -0
- package/dist/routes/conversations.js.map +1 -0
- package/dist/routes/docs.d.ts +2 -0
- package/dist/routes/docs.d.ts.map +1 -0
- package/dist/routes/docs.js +21 -0
- package/dist/routes/docs.js.map +1 -0
- package/dist/routes/embeddings.d.ts +2 -0
- package/dist/routes/embeddings.d.ts.map +1 -0
- package/dist/routes/embeddings.js +255 -0
- package/dist/routes/embeddings.js.map +1 -0
- package/dist/routes/fallback.d.ts +2 -0
- package/dist/routes/fallback.d.ts.map +1 -0
- package/dist/routes/fallback.js +631 -0
- package/dist/routes/fallback.js.map +1 -0
- package/dist/routes/free-tier.d.ts +22 -0
- package/dist/routes/free-tier.d.ts.map +1 -0
- package/dist/routes/free-tier.js +175 -0
- package/dist/routes/free-tier.js.map +1 -0
- package/dist/routes/gemini.d.ts +2 -0
- package/dist/routes/gemini.d.ts.map +1 -0
- package/dist/routes/gemini.js +218 -0
- package/dist/routes/gemini.js.map +1 -0
- package/dist/routes/health.d.ts +2 -0
- package/dist/routes/health.d.ts.map +1 -0
- package/dist/routes/health.js +72 -0
- package/dist/routes/health.js.map +1 -0
- package/dist/routes/keys.d.ts +17 -0
- package/dist/routes/keys.d.ts.map +1 -0
- package/dist/routes/keys.js +1787 -0
- package/dist/routes/keys.js.map +1 -0
- package/dist/routes/logs.d.ts +2 -0
- package/dist/routes/logs.d.ts.map +1 -0
- package/dist/routes/logs.js +88 -0
- package/dist/routes/logs.js.map +1 -0
- package/dist/routes/mcp.d.ts +4 -0
- package/dist/routes/mcp.d.ts.map +1 -0
- package/dist/routes/mcp.js +563 -0
- package/dist/routes/mcp.js.map +1 -0
- package/dist/routes/media.d.ts +2 -0
- package/dist/routes/media.d.ts.map +1 -0
- package/dist/routes/media.js +180 -0
- package/dist/routes/media.js.map +1 -0
- package/dist/routes/models.d.ts +2 -0
- package/dist/routes/models.d.ts.map +1 -0
- package/dist/routes/models.js +439 -0
- package/dist/routes/models.js.map +1 -0
- package/dist/routes/ollama.d.ts +7 -0
- package/dist/routes/ollama.d.ts.map +1 -0
- package/dist/routes/ollama.js +595 -0
- package/dist/routes/ollama.js.map +1 -0
- package/dist/routes/profiles.d.ts +3 -0
- package/dist/routes/profiles.d.ts.map +1 -0
- package/dist/routes/profiles.js +431 -0
- package/dist/routes/profiles.js.map +1 -0
- package/dist/routes/proxy.d.ts +32 -0
- package/dist/routes/proxy.d.ts.map +1 -0
- package/dist/routes/proxy.js +2793 -0
- package/dist/routes/proxy.js.map +1 -0
- package/dist/routes/responses.d.ts +1161 -0
- package/dist/routes/responses.d.ts.map +1 -0
- package/dist/routes/responses.js +1521 -0
- package/dist/routes/responses.js.map +1 -0
- package/dist/routes/settings.d.ts +2 -0
- package/dist/routes/settings.d.ts.map +1 -0
- package/dist/routes/settings.js +549 -0
- package/dist/routes/settings.js.map +1 -0
- package/dist/routes/status.d.ts +3 -0
- package/dist/routes/status.d.ts.map +1 -0
- package/dist/routes/status.js +214 -0
- package/dist/routes/status.js.map +1 -0
- package/dist/routes/update.d.ts +31 -0
- package/dist/routes/update.d.ts.map +1 -0
- package/dist/routes/update.js +536 -0
- package/dist/routes/update.js.map +1 -0
- package/dist/routes/url-tokens.d.ts +2 -0
- package/dist/routes/url-tokens.d.ts.map +1 -0
- package/dist/routes/url-tokens.js +31 -0
- package/dist/routes/url-tokens.js.map +1 -0
- package/dist/scripts/export-catalog.d.ts +2 -0
- package/dist/scripts/export-catalog.d.ts.map +1 -0
- package/dist/scripts/export-catalog.js +114 -0
- package/dist/scripts/export-catalog.js.map +1 -0
- package/dist/scripts/rotate-encryption-key.d.ts +81 -0
- package/dist/scripts/rotate-encryption-key.d.ts.map +1 -0
- package/dist/scripts/rotate-encryption-key.js +232 -0
- package/dist/scripts/rotate-encryption-key.js.map +1 -0
- package/dist/scripts/routing-sim.d.ts +2 -0
- package/dist/scripts/routing-sim.d.ts.map +1 -0
- package/dist/scripts/routing-sim.js +130 -0
- package/dist/scripts/routing-sim.js.map +1 -0
- package/dist/scripts/test-all-models.d.ts +2 -0
- package/dist/scripts/test-all-models.d.ts.map +1 -0
- package/dist/scripts/test-all-models.js +56 -0
- package/dist/scripts/test-all-models.js.map +1 -0
- package/dist/services/anthropic-map.d.ts +39 -0
- package/dist/services/anthropic-map.d.ts.map +1 -0
- package/dist/services/anthropic-map.js +138 -0
- package/dist/services/anthropic-map.js.map +1 -0
- package/dist/services/auth.d.ts +30 -0
- package/dist/services/auth.d.ts.map +1 -0
- package/dist/services/auth.js +124 -0
- package/dist/services/auth.js.map +1 -0
- package/dist/services/auto-discover.d.ts +77 -0
- package/dist/services/auto-discover.d.ts.map +1 -0
- package/dist/services/auto-discover.js +1047 -0
- package/dist/services/auto-discover.js.map +1 -0
- package/dist/services/backups.d.ts +67 -0
- package/dist/services/backups.d.ts.map +1 -0
- package/dist/services/backups.js +444 -0
- package/dist/services/backups.js.map +1 -0
- package/dist/services/builtin-model-discovery.d.ts +107 -0
- package/dist/services/builtin-model-discovery.d.ts.map +1 -0
- package/dist/services/builtin-model-discovery.js +296 -0
- package/dist/services/builtin-model-discovery.js.map +1 -0
- package/dist/services/cache.d.ts +190 -0
- package/dist/services/cache.d.ts.map +1 -0
- package/dist/services/cache.js +617 -0
- package/dist/services/cache.js.map +1 -0
- package/dist/services/catalog-sync.d.ts +257 -0
- package/dist/services/catalog-sync.d.ts.map +1 -0
- package/dist/services/catalog-sync.js +1041 -0
- package/dist/services/catalog-sync.js.map +1 -0
- package/dist/services/compression/config.d.ts +33 -0
- package/dist/services/compression/config.d.ts.map +1 -0
- package/dist/services/compression/config.js +158 -0
- package/dist/services/compression/config.js.map +1 -0
- package/dist/services/compression/engines/aging.d.ts +2 -0
- package/dist/services/compression/engines/aging.d.ts.map +1 -0
- package/dist/services/compression/engines/aging.js +53 -0
- package/dist/services/compression/engines/aging.js.map +1 -0
- package/dist/services/compression/engines/custom-filters.d.ts +4 -0
- package/dist/services/compression/engines/custom-filters.d.ts.map +1 -0
- package/dist/services/compression/engines/custom-filters.js +49 -0
- package/dist/services/compression/engines/custom-filters.js.map +1 -0
- package/dist/services/compression/engines/dedup.d.ts +2 -0
- package/dist/services/compression/engines/dedup.d.ts.map +1 -0
- package/dist/services/compression/engines/dedup.js +61 -0
- package/dist/services/compression/engines/dedup.js.map +1 -0
- package/dist/services/compression/engines/filter-definitions.d.ts +75 -0
- package/dist/services/compression/engines/filter-definitions.d.ts.map +1 -0
- package/dist/services/compression/engines/filter-definitions.js +45 -0
- package/dist/services/compression/engines/filter-definitions.js.map +1 -0
- package/dist/services/compression/engines/hard-budget.d.ts +2 -0
- package/dist/services/compression/engines/hard-budget.d.ts.map +1 -0
- package/dist/services/compression/engines/hard-budget.js +52 -0
- package/dist/services/compression/engines/hard-budget.js.map +1 -0
- package/dist/services/compression/engines/index.d.ts +9 -0
- package/dist/services/compression/engines/index.d.ts.map +1 -0
- package/dist/services/compression/engines/index.js +9 -0
- package/dist/services/compression/engines/index.js.map +1 -0
- package/dist/services/compression/engines/jsoncompact.d.ts +3 -0
- package/dist/services/compression/engines/jsoncompact.d.ts.map +1 -0
- package/dist/services/compression/engines/jsoncompact.js +145 -0
- package/dist/services/compression/engines/jsoncompact.js.map +1 -0
- package/dist/services/compression/engines/lite.d.ts +2 -0
- package/dist/services/compression/engines/lite.d.ts.map +1 -0
- package/dist/services/compression/engines/lite.js +34 -0
- package/dist/services/compression/engines/lite.js.map +1 -0
- package/dist/services/compression/engines/read-lifecycle.d.ts +2 -0
- package/dist/services/compression/engines/read-lifecycle.d.ts.map +1 -0
- package/dist/services/compression/engines/read-lifecycle.js +70 -0
- package/dist/services/compression/engines/read-lifecycle.js.map +1 -0
- package/dist/services/compression/engines/relevance.d.ts +2 -0
- package/dist/services/compression/engines/relevance.d.ts.map +1 -0
- package/dist/services/compression/engines/relevance.js +74 -0
- package/dist/services/compression/engines/relevance.js.map +1 -0
- package/dist/services/compression/engines/toolfilter.d.ts +2 -0
- package/dist/services/compression/engines/toolfilter.d.ts.map +1 -0
- package/dist/services/compression/engines/toolfilter.js +195 -0
- package/dist/services/compression/engines/toolfilter.js.map +1 -0
- package/dist/services/compression/fidelity-gate.d.ts +12 -0
- package/dist/services/compression/fidelity-gate.d.ts.map +1 -0
- package/dist/services/compression/fidelity-gate.js +90 -0
- package/dist/services/compression/fidelity-gate.js.map +1 -0
- package/dist/services/compression/helpers.d.ts +9 -0
- package/dist/services/compression/helpers.d.ts.map +1 -0
- package/dist/services/compression/helpers.js +52 -0
- package/dist/services/compression/helpers.js.map +1 -0
- package/dist/services/compression/pipeline.d.ts +7 -0
- package/dist/services/compression/pipeline.d.ts.map +1 -0
- package/dist/services/compression/pipeline.js +245 -0
- package/dist/services/compression/pipeline.js.map +1 -0
- package/dist/services/compression/preservation.d.ts +27 -0
- package/dist/services/compression/preservation.d.ts.map +1 -0
- package/dist/services/compression/preservation.js +109 -0
- package/dist/services/compression/preservation.js.map +1 -0
- package/dist/services/compression/registry.d.ts +6 -0
- package/dist/services/compression/registry.d.ts.map +1 -0
- package/dist/services/compression/registry.js +16 -0
- package/dist/services/compression/registry.js.map +1 -0
- package/dist/services/compression/stats.d.ts +29 -0
- package/dist/services/compression/stats.d.ts.map +1 -0
- package/dist/services/compression/stats.js +55 -0
- package/dist/services/compression/stats.js.map +1 -0
- package/dist/services/compression/types.d.ts +90 -0
- package/dist/services/compression/types.d.ts.map +1 -0
- package/dist/services/compression/types.js +2 -0
- package/dist/services/compression/types.js.map +1 -0
- package/dist/services/context-handoff.d.ts +22 -0
- package/dist/services/context-handoff.d.ts.map +1 -0
- package/dist/services/context-handoff.js +164 -0
- package/dist/services/context-handoff.js.map +1 -0
- package/dist/services/cooldown-probe.d.ts +24 -0
- package/dist/services/cooldown-probe.d.ts.map +1 -0
- package/dist/services/cooldown-probe.js +181 -0
- package/dist/services/cooldown-probe.js.map +1 -0
- package/dist/services/custom-endpoint.d.ts +58 -0
- package/dist/services/custom-endpoint.d.ts.map +1 -0
- package/dist/services/custom-endpoint.js +167 -0
- package/dist/services/custom-endpoint.js.map +1 -0
- package/dist/services/custom-media-register.d.ts +22 -0
- package/dist/services/custom-media-register.d.ts.map +1 -0
- package/dist/services/custom-media-register.js +45 -0
- package/dist/services/custom-media-register.js.map +1 -0
- package/dist/services/custom-model-register.d.ts +50 -0
- package/dist/services/custom-model-register.d.ts.map +1 -0
- package/dist/services/custom-model-register.js +103 -0
- package/dist/services/custom-model-register.js.map +1 -0
- package/dist/services/custom-model-seed.d.ts +18 -0
- package/dist/services/custom-model-seed.d.ts.map +1 -0
- package/dist/services/custom-model-seed.js +42 -0
- package/dist/services/custom-model-seed.js.map +1 -0
- package/dist/services/custom-model-sync.d.ts +37 -0
- package/dist/services/custom-model-sync.d.ts.map +1 -0
- package/dist/services/custom-model-sync.js +118 -0
- package/dist/services/custom-model-sync.js.map +1 -0
- package/dist/services/custom-model-tombstone.d.ts +5 -0
- package/dist/services/custom-model-tombstone.d.ts.map +1 -0
- package/dist/services/custom-model-tombstone.js +30 -0
- package/dist/services/custom-model-tombstone.js.map +1 -0
- package/dist/services/declarative-config.d.ts +356 -0
- package/dist/services/declarative-config.d.ts.map +1 -0
- package/dist/services/declarative-config.js +427 -0
- package/dist/services/declarative-config.js.map +1 -0
- package/dist/services/degradation.d.ts +40 -0
- package/dist/services/degradation.d.ts.map +1 -0
- package/dist/services/degradation.js +119 -0
- package/dist/services/degradation.js.map +1 -0
- package/dist/services/embeddings.d.ts +76 -0
- package/dist/services/embeddings.d.ts.map +1 -0
- package/dist/services/embeddings.js +319 -0
- package/dist/services/embeddings.js.map +1 -0
- package/dist/services/fusion.d.ts +162 -0
- package/dist/services/fusion.d.ts.map +1 -0
- package/dist/services/fusion.js +789 -0
- package/dist/services/fusion.js.map +1 -0
- package/dist/services/gemini-map.d.ts +14 -0
- package/dist/services/gemini-map.d.ts.map +1 -0
- package/dist/services/gemini-map.js +78 -0
- package/dist/services/gemini-map.js.map +1 -0
- package/dist/services/health.d.ts +52 -0
- package/dist/services/health.d.ts.map +1 -0
- package/dist/services/health.js +352 -0
- package/dist/services/health.js.map +1 -0
- package/dist/services/idempotency.d.ts +49 -0
- package/dist/services/idempotency.d.ts.map +1 -0
- package/dist/services/idempotency.js +140 -0
- package/dist/services/idempotency.js.map +1 -0
- package/dist/services/key-budget.d.ts +74 -0
- package/dist/services/key-budget.d.ts.map +1 -0
- package/dist/services/key-budget.js +200 -0
- package/dist/services/key-budget.js.map +1 -0
- package/dist/services/media.d.ts +123 -0
- package/dist/services/media.d.ts.map +1 -0
- package/dist/services/media.js +954 -0
- package/dist/services/media.js.map +1 -0
- package/dist/services/model-discovery.d.ts +126 -0
- package/dist/services/model-discovery.d.ts.map +1 -0
- package/dist/services/model-discovery.js +662 -0
- package/dist/services/model-discovery.js.map +1 -0
- package/dist/services/model-groups.d.ts +149 -0
- package/dist/services/model-groups.d.ts.map +1 -0
- package/dist/services/model-groups.js +314 -0
- package/dist/services/model-groups.js.map +1 -0
- package/dist/services/model-listing.d.ts +18 -0
- package/dist/services/model-listing.d.ts.map +1 -0
- package/dist/services/model-listing.js +94 -0
- package/dist/services/model-listing.js.map +1 -0
- package/dist/services/model-retirement.d.ts +29 -0
- package/dist/services/model-retirement.d.ts.map +1 -0
- package/dist/services/model-retirement.js +86 -0
- package/dist/services/model-retirement.js.map +1 -0
- package/dist/services/model-state.d.ts +90 -0
- package/dist/services/model-state.d.ts.map +1 -0
- package/dist/services/model-state.js +342 -0
- package/dist/services/model-state.js.map +1 -0
- package/dist/services/model-weight-overrides.d.ts +48 -0
- package/dist/services/model-weight-overrides.d.ts.map +1 -0
- package/dist/services/model-weight-overrides.js +127 -0
- package/dist/services/model-weight-overrides.js.map +1 -0
- package/dist/services/notification-emitter.d.ts +50 -0
- package/dist/services/notification-emitter.d.ts.map +1 -0
- package/dist/services/notification-emitter.js +177 -0
- package/dist/services/notification-emitter.js.map +1 -0
- package/dist/services/opencode-free-sync.d.ts +29 -0
- package/dist/services/opencode-free-sync.d.ts.map +1 -0
- package/dist/services/opencode-free-sync.js +206 -0
- package/dist/services/opencode-free-sync.js.map +1 -0
- package/dist/services/penalty-inspector.d.ts +56 -0
- package/dist/services/penalty-inspector.d.ts.map +1 -0
- package/dist/services/penalty-inspector.js +167 -0
- package/dist/services/penalty-inspector.js.map +1 -0
- package/dist/services/profile-models.d.ts +5 -0
- package/dist/services/profile-models.d.ts.map +1 -0
- package/dist/services/profile-models.js +62 -0
- package/dist/services/profile-models.js.map +1 -0
- package/dist/services/provider-credential.d.ts +19 -0
- package/dist/services/provider-credential.d.ts.map +1 -0
- package/dist/services/provider-credential.js +51 -0
- package/dist/services/provider-credential.js.map +1 -0
- package/dist/services/provider-quota.d.ts +64 -0
- package/dist/services/provider-quota.d.ts.map +1 -0
- package/dist/services/provider-quota.js +563 -0
- package/dist/services/provider-quota.js.map +1 -0
- package/dist/services/quirks.d.ts +0 -0
- package/dist/services/quirks.d.ts.map +1 -0
- package/dist/services/quirks.js +0 -0
- package/dist/services/quirks.js.map +1 -0
- package/dist/services/quota-forecast.d.ts +50 -0
- package/dist/services/quota-forecast.d.ts.map +1 -0
- package/dist/services/quota-forecast.js +150 -0
- package/dist/services/quota-forecast.js.map +1 -0
- package/dist/services/quota-outlook.d.ts +4 -0
- package/dist/services/quota-outlook.d.ts.map +1 -0
- package/dist/services/quota-outlook.js +92 -0
- package/dist/services/quota-outlook.js.map +1 -0
- package/dist/services/ratelimit.d.ts +249 -0
- package/dist/services/ratelimit.d.ts.map +1 -0
- package/dist/services/ratelimit.js +1182 -0
- package/dist/services/ratelimit.js.map +1 -0
- package/dist/services/request-retention.d.ts +60 -0
- package/dist/services/request-retention.d.ts.map +1 -0
- package/dist/services/request-retention.js +229 -0
- package/dist/services/request-retention.js.map +1 -0
- package/dist/services/router.d.ts +384 -0
- package/dist/services/router.d.ts.map +1 -0
- package/dist/services/router.js +1986 -0
- package/dist/services/router.js.map +1 -0
- package/dist/services/scoring.d.ts +156 -0
- package/dist/services/scoring.d.ts.map +1 -0
- package/dist/services/scoring.js +435 -0
- package/dist/services/scoring.js.map +1 -0
- package/dist/services/url-tokens.d.ts +15 -0
- package/dist/services/url-tokens.d.ts.map +1 -0
- package/dist/services/url-tokens.js +55 -0
- package/dist/services/url-tokens.js.map +1 -0
- package/package.json +77 -4
- package/README.md +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={nav:{models:`Modeli`,playground:`Igralište`,keys:`Ključevi`,analytics:`Analitika`,premium:`Premija`,upgrade:`Nadogradnja`,settings:`Postavke`,signOut:`Odjavite se`,openMenu:`Otvorite izbornik za navigaciju`,switchLight:`Prebacite na laganu temu`,switchDark:`Prebaci na tamnu temu`,switchToChinese:`Prijelaz na kineski`,switchToEnglish:`Prijelaz na engleski`,modelsMenu:`Pregledajte vrste modela`,agents:`Agenti`,logs:`Logovi`,analyticsMenu:`Stranice analitike`,notifications:`Notifications`,noNotifications:`No notifications yet`},auth:{createYourAccount:`Kreirajte svoj račun`,signIn:`Prijava`,email:`E-mail`,password:`Lozinka`,emailPlaceholder:`you@example.com`,passwordPlaceholderSetup:`najmanje 8 znakova`,passwordPlaceholderLogin:`tvoja lozinka`,setupDescription:`Postavite e-mail i lozinku koji će štititi ovu nadzornu ploču.`,loginDescription:`Prijavite se kako biste upravljali svojim ključevima, rutiranjem i analitikom.`,createAccount:`Kreiraj račun`,creating:`Stvarajući...`,signingIn:`Prijavljujem se...`,loading:`Učitavanje...`,newPasswordAutoComplete:`new-password`,currentPasswordAutoComplete:`current-password`,serverUnreachableBefore:`Ne mogu doći do servera. Provjerite radi li backend (`,serverUnreachableAfter:`).`,setupCode:`Kod za postavljanje`,setupCodePlaceholder:`Kod iz serverskih logova`,setupCodeHint:`Postavljanje s drugog uređaja zahtijeva jednokratni kod ispisan u serverskim logovima pri pokretanju.`,changePassword:`Promijeni lozinku`,changeEmail:`Promijeni e-poštu`,forgotPassword:`Zaboravili ste lozinku?`,currentPassword:`Trenutna lozinka`,newPassword:`Nova lozinka`,newEmail:`Nova e-pošta`,resetCode:`Kod za poništavanje`,resetCodePlaceholder:`kod iz zapisa poslužitelja`,resetCodeHint:`Kod se nalazi u zapisu poslužitelja. Nikada se ne šalje e-poštom.`,forgotPasswordDescription:`Kliknite gumb u nastavku za generiranje koda za poništavanje. Kod se zapisuje u zapis poslužitelja i nikada se ne šalje e-poštom. Unesite ga ovdje da postavite novu lozinku.`,requestResetCode:`Pošalji kod`,requestingResetCode:`Slanje…`,resetPassword:`Poništi lozinku`,resettingPassword:`Poništavanje…`,changingPassword:`Mijenjanje…`,changingEmail:`Mijenjanje…`,backToLogin:`Natrag na prijavu`,passwordChanged:`Lozinka je promijenjena.`,emailChanged:`E-pošta je promijenjena.`,passwordReset:`Lozinka je poništena. Prijavite se.`,resetCodeDockerHint:`Koristite Docker? Kod se nalazi u zapisu kontejnera: docker logs <container>.`,desktopSessionFailed:`Nadzorna ploča nije se uspjela prijaviti na lokalni poslužitelj. Zatvorite SRouter i ponovno ga otvorite.`},common:{save:`Spasi`,saving:`Spašavanje...`,cancel:`Otkaži`,discard:`Odbacivanje`,delete:`Obriši`,confirm:`Potvrdi`,copy:`Primljeno`,copied:`Kopirano`,copyFailed:`Kopiranje nije uspjelo — označite tekst i kopirajte ga ručno`,show:`Emisija`,hide:`Sakrij se`,apply:`Prijavite se`,applied:`Primjena`,applying:`Prijavljivanje...`,active:`Aktivno`,inactive:`Neaktivan`,never:`nikad`,loading:`Učitavanje...`,error:`Pogreška`,noData:`Još nema podataka`,unsavedChanges:`Nespremljene promjene`,saveChanges:`Promjene u spremanju`,remove:`Uklonite`,unknownError:`Nepoznata pogreška`,model:`Model`,provider:`Pružatelj`,success:`Uspjeh`,failures:`Neuspjesi`,dismiss:`Raspustiti`,status:`Status`},settings:{title:`Postavke`,language:`Jezik`,theme:`Tema`,themeSystem:`Sustav`,themeLight:`Svijetla`,themeDark:`Tamna`,searchLanguage:`Pretraži jezike...`,noLanguages:`Nema pronađenih jezika`,sections:`Odjeljci postavki`,sectionGeneral:`Općenito`,sectionCompression:`Kompresija`,sectionAdvanced:`Napredno`,sectionPreview:`Pregled`,generalDescription:`Jezik i izgled ove nadzorne ploče.`,advancedDescription:`Pragovi i sigurnosne sklopke kompresijskog lanca.`,compressionTitle:`Kompresija promptova`,compressionDescription:`Smanjite veličinu zahtjeva prije usmjeravanja uz očuvanje koda, grešaka, putanja, brojeva i definicija alata.`,compressionHelp:`Prepisuje svaki zahtjev prije slanja pružatelju kako bi trošio manje tokena. Kod, greške, putanje datoteka i brojevi zaštićeni su, a svako prepisivanje koje ih ošteti odbacuje se.`,compressionMode:`Način`,compressionModeHelp:`„Isključeno“ šalje zahtjeve nepromijenjene. „Bez gubitaka“ uklanja samo udvostručen i suvišan tekst. „Standardno“ dodatno skraćuje izlaz alata. „Agresivno“ uz to sažima starije replike.`,compressionOff:`Isključeno`,compressionLossless:`Bez gubitaka`,compressionStandard:`Standardno`,compressionAggressive:`Agresivno`,compressionLossy:`S gubicima`,compressionEngines:`Mehanizmi`,compressionEnginesHelp:`Svaki mehanizam jedan je korak prepisivanja. Način rada određuje koji se mehanizmi izvode; ovdje isključen mehanizam neće raditi ni u jednom načinu.`,engineDedup:`Ponovljeni blokovi`,engineDedupHelp:`Zamjenjuje blok teksta koji se već ranije pojavio u razgovoru kratkom referencom na njega.`,engineLite:`Čišćenje praznina`,engineLiteHelp:`Uklanja razmake na krajevima redaka, sažima ponovljene prazne retke i odbacuje udvostručene sistemske poruke.`,engineReadLifecycle:`Zastarjela čitanja datoteka`,engineReadLifecycleHelp:`Zamjenjuje ranije čitanje datoteke bilješkom čim se ista datoteka kasnije ponovno pročita ili uredi.`,engineToolfilter:`Filtar izlaza alata`,engineToolfilterHelp:`Skraćuje izlaz naredbi i alata poput izgradnji, testova i instalacija. Retci s greškama i tragovima stoga uvijek ostaju.`,engineJsoncompact:`JSON tablice`,engineJsoncompactHelp:`Ponovno kodira duge JSON nizove s istim poljima kao kompaktnu tablicu. Postupak je povratan pa se ništa ne gubi.`,engineRelevance:`Filtar relevantnosti`,engineRelevanceHelp:`Kad poruka premaši svoj proračun veličine, odbacuje rečenice najmanje povezane s posljednjom porukom.`,engineAging:`Starije replike`,engineAgingHelp:`Sažima replike starije od nekoliko posljednjih u kratak sažetak koji čuva putanje, greške i odluke.`,engineHardBudget:`Gornja granica tokena`,engineHardBudgetHelp:`Uklanja najmanje vrijedne retke dok zahtjev ne stane u ciljani broj tokena.`,compressionAutoTrigger:`Automatski pokreni iznad procijenjenih tokena`,compressionAutoTriggerHelp:`Zahtjevi procijenjeni iznad ovog broja tokena automatski prelaze na agresivno. Ostavite prazno za isključivanje.`,compressionPrefixFreeze:`Zamrzni ponavljajuće prefikse promptova`,compressionPrefixFreezeHelp:`Ostavlja sistemski prompt nepromijenjenim čim se isti tekst pojavi treći put, kako bi predmemoriranje promptova na strani pružatelja i dalje radilo.`,compressionTrustProjectFilters:`Vjeruj datotekama filtara projekta`,compressionTrustProjectFiltersHelp:`Učitava filtre izlaza alata i iz radnog direktorija. Prema zadanom isključeno jer bi repozitorij time mogao sakriti izlaz od modela.`,compressionStats:`Ušteda veličine`,compressionEstimatedTokensSaved:`Procijenjena ušteda tokena`,compressionPreview:`Pregled uživo`,compressionPreviewDescription:`Pošaljite tijelo zahtjeva kroz lanac obrade da vidite što bi pružatelj primio.`,compressionPreviewPlaceholder:`Zalijepite JSON zahtjeva ili običan tekst`,compressionRunPreview:`Pokreni pregled`,updatesTitle:`Ažuriranja`,checkForUpdates:`Provjerite ima li novosti`,lastChecked:`Zadnja provjera: {when}`,currentVersion:`Trenutačna verzija:`,updateAvailable:`Dostupno je ažuriranje`,changelog:`Što se promijenilo`,upToDate:`Ažurno`,buildAhead:`Ova je verzija ispred službene grane main.`,buildDiverged:`Ova se verzija odvojila od službene grane main.`,buildUnknown:`Ovu prilagođenu verziju nije moguće usporediti sa službenom granom main.`,notGitInstall:`Ova instalacija ne sadrži informacije o commitovima.`,checkFailed:`Nije moguće provjeriti ažuriranja.`,contactsGithub:`Provjere se pokreću ručno i kontaktiraju GitHub.`,autoUpdateCheck:`Automatska provjera ažuriranja`,autoUpdateCheckHelp:`Jednom dnevno provjerava GitHub za novo izdanje i prikazuje podsjetnik. Prema zadanome isključeno.`,openReleases:`Otvori izdanja na GitHubu`,restartAfterUpdate:`Ponovno pokrenite SRouter nakon dovršetka izgradnje.`,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:`Modeli`,chatModelsTab:`Chat modeli`,fusionTab:`Fuzija`,embeddingsTab:`Ugradnja`,imageTab:`Slika`,videoTab:`Video`,audioTab:`Audio`,imageDesc:`Modeli generiranja teksta u sliku.`,videoDesc:`Text-to-video generation models.`,audioDesc:`Modeli pretvaranja teksta u govor i govora u tekst.`,mediaHint:`Generirajte putem`,mediaEmpty:`Još nema modela. Sinkroniziraju se iz kataloga.`,ttsHeading:`Pretvaranje teksta u govor`,sttHeading:`Pretvaranje govora u tekst`,sttHint:`Transkribirajte preko`,sttEmpty:`Još nema modela pretvaranja govora u tekst. Sinkroniziraju se iz kataloga.`,newBadge:`Novi`,monthlyTokenBudget:`Mjesečni budžet tokena`,remaining:`Preostali`,used:`Korišteno`,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:`od`,showAllModels:`Pokažite sve {count} modele`,showLess:`Prikaži manje`,vision:`Vizija`,visionTitle:`Prihvaća ulaz slike`,tools:`Alati`,toolsTitle:`Emitira strukturirane pozive alata, pa je prihvatljiv za zahtjeve s nosačem alata`,retired:`Povučen`,penalty:`−{value} kazna`,obs:`{count} OBS`,tokPerMonth:`{count} tok/mo`,rpmLimit:`{count} okretaja u minuti`,rpdLimit:`{count} rpd`,noKey:`Nema ključa`,dragToReorder:`Povlačenje radi ponovnog redoslijeda`,dragToReorderGroup:`Povlačenje za promjenu redoslijeda modela`,moveToRank:`Skoči na plasman`,providerCount:`{count} pružatelji usluga`,servedBy:`Služio {providers}`,viewProviders:`Pogledajte pružatelje usluga`,backToModels:`Povratak na modele`,providersHeading:`Pružatelji usluga koji pružaju ovaj model`,codeSnippetHeading:`Koristite ovaj model`,modelNotFound:`Ovaj model nije dostupan ili nema konfigurirane pružatelje usluga.`,providerIdsHeading:`ID-jevi modela pružatelja`,providerIdsHint:`Pošaljite jedinstveni model ID za failover kod svakog pružatelja usluga, ili specifičan ID pružatelja za pinanje jednog pružatelja.`,copyModelName:`Kopiraj ime modela`,settingsHeading:`Postavke pružatelja usluga`,settingsHint:`Lokalne izmjene katalogskih modela čuvaju se kroz kataloške sinkronizacije. Izbrisani kataloški modeli ostaju izbrisani dok ih ponovno ne dodate kroz konfiguraciju.`,catalogModel:`Katalog`,customModel:`običaj`,discoveredModel:`otkriven`,localOverride:`Lokalno nadjačavanje`,displayName:`Prikazni naziv`,sizeLabel:`Razina sposobnosti`,sizeLabelHint:`Frontier/Large/Medium/Small određuju os inteligencije: viša razina uvijek nadmašuje nižu, a unutar iste razine rang inteligencije i dalje pomiče rezultat. Model bez prepoznate razine dobiva najniži rezultat na toj osi, no inteligencija je samo jedna od tri osi — uz dobru pouzdanost i brzinu i dalje može biti odabran.`,sizeLabelNone:`Nijedna (najniži rezultat inteligencije)`,contextWindow:`Kontekst`,inFallback:`U lancu`,saveModelSettings:`Spremi postavke modela`,aggregateBudget:`{count} mjesečno`,aggregateBudgetTitle:`Ukupni besplatni tokeni mjesečno kod pružatelja ovog modela`,rateRpm:`{count} RPM`,rateRpd:`{count} RPD`,rateTitle:`Ograničenje cijene — nema fiksnog mjesečnog budžeta tokena`,rateLimitUsage:`{kind} {used}/{limit}`,rateLimitUsageTitle:`Iskorištenost ograničenja brzine u vremenskom prozoru (iskorišteno / ograničenje) kod pružatelja s najviše prostora`,splitOut:`Nemojte spajati ovu kopiju`,splitOutHint:`Dajte kopiji ovog davatelja vlastiti zasebni unos umjesto da je spojite u objedinjeni model. Možete ga spojiti natrag s vlastite stranice kopije.`,splitUndo:`Spajanje natrag`,splitUndoHint:`Ova se kopija čuva odvojeno od svog jedinstvenog modela. Spojite ga natrag kako biste ponovno prešli preko svih njegovih pružatelja usluga.`,splitBadge:`držao odvojeno`,noData:`nema podataka`,noDataTitle:`Još nema zabilježenih zahtjeva — pouzdanost i brzina su nemjerljive za ovog pružatelja usluga.`,bestOfN:`najbolje od {count}`,perProviderScores:`Rezultati po pružatelju: {list}`,columnModel:`Model`,columnOn:`Na`,noModelsBefore:`Nema dostupnih modela. Dodajte API tipke na`,keysPageLink:`Stranica s ključevima`,noModelsAfter:`Prvo.`,hiddenNoKeys:`Skriveno (bez ključeva): {platforms}`,searchPlaceholder:`Modeli pretraživanja ili pružatelji usluga...`,clearSearch:`Čista pretraga`,ctxAny:`Bilo kakav kontekst`,ctxBadge:`{size} CTX`,ctxTitle:`Kontekstni prozor`,copyModelId:`Kopiraj ID modela`,showingCount:`{shown} {total} modela`,clearFilters:`Prozirni filteri`,noMatches:`Nijedan model ne odgovara vašim filterima.`,noModelsTitle:`Nema konfiguriranih modela`,intelligenceRank:`Obavještajna služba`,speedRank:`Brzina`,rankHint:`Rang u katalogu — 1 je najbolji.`,limitRpm:`RPM`,limitRpd:`RPD`,limitTpm:`TPM`,limitTpd:`TPD`,limitRpmHint:`Zahtjeva po minuti. Ostavite prazno za bez ograničenja.`,limitRpdHint:`Zahtjeva po danu. Ostavite prazno za bez ograničenja.`,limitTpmHint:`Tokena po minuti. Ostavite prazno za bez ograničenja.`,limitTpdHint:`Tokena po danu. Ostavite prazno za bez ograničenja.`,usageThisMonth:`Mjesečna potrošnja`,usageEmpty:`Ovog mjeseca još nema zahtjeva.`,usageRequestsMonth:`{count} zaht. ovog mjeseca`,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:`Istraži nemjerene modele`,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:`Odabir ključa`,keySelectionAuto:`Automatski`,keySelectionLeastRemaining:`Najmanje preostalo`,keySelectionHint:`Kako se bira između više ključeva istog pružatelja. Automatski zadržava trenutačnu rotaciju; Najmanje preostalo rangira ključeve prema opaženoj kvoti i prvo isprobava onaj kojemu je najviše preostalo.`,cooldownCeiling:`Najdulje automatsko hlađenje`,cooldownCeilingHint:`Ograničava koliko dugo vlastite procjene usmjerivača smiju isključiti neuspješan par ključa i modela. Ljestvica obično raste 2 min, 10 min, 1 h, 24 h, a pogreške kredita ili razine isključuju na jedan dan. Vremena ponovnog pokušaja koja navede pružatelj nikad se ne skraćuju.`,cooldownCeilingDefault:`Zadano (do 24 h)`,cooldownCeiling10m:`10 minuta`,cooldownCeiling1h:`1 sat`,cooldownCeiling6h:`6 sati`,moreOptions:`Više opcija`,peakActive:`(vršni sati)`,peakActiveHint:`Prilagodba za vršne sate trenutno je aktivna, pa ovo nisu težine same postavke: 60 % težine brzine prebačeno je na pouzdanost.`,peakAdjust:`Prilagodba za vršne sate`,peakAdjustHint:`Prema zadanome isključeno. Unutar prozora ispod premješta 60 % težine brzine na pouzdanost — besplatni releji tada su najopterećeniji, pa pouzdanost bolje predviđa uspjeh od sirove propusnosti. „Najbrže“ i „Najpouzdanije“ ostaju netaknuti.`,peakFrom:`Od`,peakTo:`do`,peakTimezoneLabel:`Vremenska zona`,peakUseBrowserTimezone:`Koristi vremensku zonu preglednika`,peakTimezoneInvalid:`Nepoznata vremenska zona.`,peakExemptNote:`Ova postavka ostaje netaknuta — već je na jednom kraju kompromisa brzina/pouzdanost.`,title:`Strategija usmjeravanja`,description:`Odaberite strategiju usmjeravanja. U ručnom načinu povlačite da postavite redoslijed; Ostale strategije usmjeravaju rezultat uživo kroz pouzdanost, brzinu i inteligenciju.`,weightsSummary:`pouzdanost {reliability}% · brzina {speed}% · Inteligencija {intelligence}%`,guardrails:`Zaštitne ograde`,guardrailsTooltip:`Uvijek na oprezu: slobodna kvota × kazna za ograničenje cijene. Ispod 1.0 znači da se model koči.`,scoreTooltip:`Konačni rezultat usmjeravanja = ponderirani prosjek triju osi, pomnožen sa zaštitnim ogradama. Prvo viši putevi.`,modeManualHint:`Ručni način: zahtjevi slijede redoslijed ispod, od vrha do dna. Povucite za ponovno naručivanje.`,modeScoreHint:`Rezultati se ažuriraju prema stvarnom prometu. Redoslijed u nastavku prikazuje kako se zahtjevi trenutno usmjeravaju.`,manual:`Ručni mjenjač`,manualBlurb:`Rutirajte točno redoslijedom koji ste naveli dolje. Povucite ručke za ponovno uređenje. Nema bodovanja; lanac se prati odozgo prema dolje.`,balanced:`Uravnoteženo`,balancedBlurb:`Pouzdanost vodi (50%), pri čemu se brzina i inteligencija jednako vrednuju (po 25%). Razuman sveobuhvatni default.`,smartest:`Najpametniji`,smartestBlurb:`Preferiram najsposobniji model koji još uvijek radi. Inteligencija 55%, pouzdanost 35%, brzina 10%.`,fastest:`Najbrži`,fastestBlurb:`Preferiram najbrži model koji još uvijek radi. Brzina 55%, pouzdanost 35%, inteligencija 10%.`,reliable:`Najpouzdaniji`,reliableBlurb:`Maksimizirajte stopu uspjeha iznad svega. Pouzdanost 70%, brzina i inteligencija po 15%.`,custom:`Običaj`,customBlurb:`Postavite vlastitu ravnotežu pouzdanosti, brzine i inteligencije pomoću klizača. Isti motor kao i predlošci, samo tvoje težine.`,adjust:`Prilagodi`,customWeights:`Prilagođene težine`,customWeightsHelp:`Klizači su neovisni; Dionice se automatski balansiraju na 100%.`,weightReliability:`Pouzdanost`,weightSpeed:`Brzina`,weightIntelligence:`Obavještajna služba`,weightRequired:`Najmanje jedna težina mora biti iznad nule.`,scoreColumn:`Glazba`},penaltyInspector:{title:`Tlak glodalice`,subtitle:`Kazne, cooldowni i neuspjesi iz zadnjih {minutes} minuta`,rowCount:`{count} aktivan`,offChain:`Izvan lanca`,penaltyValue:`Kazneni {value}`,factor:`score x{factor}`,noCooldown:`Nema cooldowna`,cooldownChip:`{key} - {time}`,resetCooldown:`Reset cooldown`,clearAll:`Očisti sve`,clearAllHint:`Odmah uklanja sva hlađenja, kazne i nizove neuspjeha. Pritisak se ponovno gradi iz sljedećih stvarnih rezultata.`,errorsHeading:`{count} nedavne pogreške`,noRecentErrors:`Nema nedavnih pogrešaka`,noKey:`Nema ključa`,reasons:{penalty:`kažnjen`,cooldown:`Vrijeme hlađenja`,recent_errors:`Neuspjeh`}},keys:JSON.parse(`{"pageTitle":"Ključevi","pageDescription":"Vjerodajnice pružatelja i objedinjeni API ključ s kojim se vaše aplikacije povezuju.","tabProviders":"Pružatelji usluga","checklistSummary":"Konfigurirano {configured} od {total} pružatelja usluga","checklistKeyless":"ključ nije potreban","checklistNoKeyTip":"Ključ još nije dodan. Kliknite za dodavanje.","checklistSignupLink":"Otvorite {provider} za izradu računa i dobivanje ključa","checklistKeylessTip":"Radi bez ključa.","tabQuotaSignals":"Kvotni signali","tabApiKey":"Ujedinjeni API ključ","tabAnthropic":"Anthropic","unifiedKey":"Vaš jedinstveni API ključ","regenerate":"Regeneracija","showKey":"Emisija","hideKey":"Sakrij se","copyKey":"Primljeno","copyFullKey":"Kopiraj cijeli ključ","copiedKey":"Kopirano","baseUrl":"Baza URL","endpointChat":"Chat","endpointResponses":"Odgovori","endpointEmbeddings":"Ugradnja","endpointEmbeddingsHint":"model: \\"auto\\" ili obitelj iz kartice Embeddings","endpointMessages":"Poruke","endpointMessagesHint":"Anthropic-kompatibilan (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) modeli","anthropicDesc":"Usmjerite Claude ili Anthropic SDK klijent na ovaj server. Anthropic klijenti šalju Claude imena modela — mapirajte svaki na Auto (router bira besplatni model) ili pričvrstite određeni model.","anthropicBaseUrl":"Baza URL","anthropicAuth":"Auth zaglavlje","anthropicAuto":"Auto — router bira najbolji model","anthropicSave":"Mapiranje spremanja","anthropicSaved":"Spašen","anthropicNote":"Anthropic klijenti zadržavaju svoja ugrađena imena Claude modela; Gornje mapiranje određuje kako se svaki od njih usmjerava u vaš pool.","familyDefault":"Zadano stanje","familyOpus":"Opus","familySonnet":"Sonet","familyHaiku":"Haiku","selectPlatform":"Odaberite pružatelja usluga","addKey":"Dodaj ključ","keyAdded":"Ključ dodan","endpointKeysShareModels":"Ključevi iste krajnje točke dijele njezine modele.","export":"Izvoz","exportAll":"Sve tipke","exportHealthy":"Samo za zdravlje","exportKeys":"Ključevi za izvoz API","exportFormat":"Format","exportHealthyOnly":"Samo zdrave tipke","exportHealthyOnlyDesc":"Isključite ključeve koji trenutno ne prolaze zdravstvene provjere","exportWillExport":"Izvoz","exportKey":"Ključ","exportKeys plural":"Ključevi","exporting":"Izvoz...","exportDownload":"Preuzmi","exportSuccess":"Izvezeni ključevi {count}","adding":"Dodajem...","selectProvider":"Odaberite pružatelja usluga...","accountId":"ID računa","label":"Izdavačka kuća","noKeyNeeded":"(nije potreban ključ)","outboundProxy":"Odlazni proxy","outboundProxyDescription":"Usmjeravanje odlaznih LLM zahtjeva kroz proxy. Podržava SOCKS5, HTTP i HTTPS.","proxyUrl":"Proxy URL","saveProxy":"Spasi","savingProxy":"Spašavanje...","proxyLoadFailed":"Nisam mogao učitati postavke proxyja.","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":"Dodajte prilagođeni model kompatibilan s OpenAI","addCustomDescription":"Point chat, ugradnje, slike ili audio modele na bilo kojoj OpenAI-kompatibilnoj točki. Ključ API je opcionalan za lokalne servere.","customType":"Vrsta","customTypeChat":"Chat","customTypeEmbedding":"Ugradnja","customTypeImage":"Slika","customTypeAudio":"Audio","customTypeTranscription":"Transcription","customBaseUrl":"Baza URL","customModels":"Modeli","customModel":"Model","customDisplayName":"Prikazni naziv","customDisplayNamePerModel":"po modelu","customDisplayNameOptional":"opcionalno","customFamily":"Obitelj","customFamilyPlaceholder":"Zadano na ID modela","customApiKey":"API ključ","customCapabilities":"Mogućnosti","addModel":"Dodaj model","modelAdded":"Dodani model","addModels":"Dodaj {count} modele","addEmbeddingModel":"Dodavanje ugradnje","addImageModel":"Dodajte model slike","addAudioModel":"Dodaj audio model","addTranscriptionModel":"Add transcription model","addingCustom":"Dodajem...","discoverModels":"Dohvati modele","probeNow":"Testiraj krajnju točku","probeConfirm":"Poslati do 3 testna zahtjeva?","probeCapabilities":"zaključivanje: {reasoning} · alati: {tools}","probeCapYes":"da","probeCapNo":"ne","probeCapUnknown":"nepoznato","probeSuccess":"{model} testiran za {latency} ms","probeFailed":"Test nije uspio: {reason}","discoverTitle":"Modeli na ovoj krajnjoj točki","discoverHint":"Odaberi modele za registraciju. Već dodani ostaju zaključani.","discoverEmpty":"Ova krajnja točka nije vratila nijedan model.","discoverAlreadyAdded":"Dodano","discoverSelectAll":"Odaberi sve","modelsAdded":"Dodano modela: {count}","getApiKey":"Uzmi API ključ","deleteKeyConfirm":"Izbrisati ovaj ključ? To se ne može poništiti.","checkAll":"Provjeri sve","checking":"Provjeravam...","editLabel":"Uredi etiketu","saveLabel":"Spremi oznaku","unifiedKeyDescBefore":"Iskoristi ovo kao svoj OpenAI","unifiedKeyDescAfter":"; autentificira zahtjeve prema tom proxyju.","serverUnreachableBefore":"Ne mogu doći do servera uključenog","serverUnreachableAfter":". Provjerite radi li backend. NPM pokrenuti developer pokreće oba, a serverski zapisi se ispisuju pod prefiksom servera.","paneProviderKey":"Ključ pružatelja","paneImportFile":"Uvozna datoteka","paneCustomEndpoint":"Prilagođena krajnja točka","platform":"Peron","hideAdded":"Sakrij dodane pružatelje usluga","apiToken":"API žeton","keyOptionalPlaceholder":"Neobavezno","bearerTokenPlaceholder":"Token nositelja","pasteKeyPlaceholder":"Ovdje zalijepi ključ","pasteSeveral":"Zalijepi više","keyOptionalHint":"Neobavezno: ostavite prazno za anonimnu besplatnu razinu (ograničenje po IP-u) ili zalijepite vlastiti ključ za korištenje svog računa.","enable":"Omogući","noProviderKeys":"Još nema ključeva pružatelja usluga. Dodaj jedan gore da počneš s rutiranjem.","filterPlaceholder":"Pružatelji filtera ili ključevi","filterAll":"Svi","filterHealthy":"Zdravo","filterIssues":"Problemi","filterDisabled":"Onemogućeno","noFilterMatch":"Nijedan pružatelj ne odgovara vašim filterima.","providerCountSummary":"{providers} pružatelji · {keys} ključevi","summaryHealthy":"{count} zdrav","summaryIssueOne":"{count} izdanje","summaryIssueOther":"{count} pitanja","providerActions":"Akcije pružatelja","routeViaProxy":"Ruta putem posrednika","checkNow":"Provjeri sada","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":"Također se može konfigurirati putem","proxyEnvHintAfter":"varijable okoline (ima prednost). Ostavi prazno za isključivanje. Primjeri:","importKeys":"Uvoz ključeva pružatelja usluga","importKeysDescription":"Učitajte .env, JSON, JSONC, CSV, Markdown ili tekstualne datoteke.","importFiles":"Datoteke","importFileCount":"{count} odabrani","previewFiles":"Najava","previewing":"Najava...","selected":"Odabrani","provider":"Pružatelj","keyName":"Naziv ključa","keyValue":"Ključna vrijednost","chooseProvider":"Odaberite pružatelja usluga","noPreviewKeys":"Nema pronađenih ključeva u tim dosjeima.","skippedItems":"Preskočeno:","moreItems":"+{count} više","importSelected":"Uvoz {count}","importing":"Uvoz...","noImportSelection":"Odaberite barem jedan redak s pružateljem usluga.","duplicate":"Duplikat","duplicatesFound":"{count} otkriveni duplikati — već postoje i bit će preskočeni.","importResult":"Uvezena {imported}; nije {failed}.","importModelCount":"+{count} modela","importResultWithModels":"Uvezena {imported}; registrirano {models} modela; nije {failed}.","confirmRemove":"Potvrditi?","quotaSignalsTitle":"Kvotni signali","quotaSignalsEmptyTitle":"Još nema opažanja o kvotama","quotaSignalsEmptyDesc":"To se popunjava nakon što pružatelji vrate zaglavlja ograničenja brzine, pogreške kvota ili signale validacije.","quotaKeyRef":"Ključne #{id}","quotaPoolRef":"bazen {pool}","quotaLimit":"Ograničenje","quotaRemaining":"Preostali","quotaReset":"Reset","quotaObserved":"Opaženo","tabAgents":"Agenti","familyGeminiPro":"Gemini Pro","familyGeminiFlash":"Gemini Flash","familyGeminiFlashLite":"Gemini Flash-Lite","geminiTitle":"Mapiranje Gemini modela","geminiDesc":"Mapirajte nazive Gemini Pro, Flash i Flash-Lite na Auto ili određeni model iz kataloga.","compatibilityTitle":"Kompatibilnost agenata","compatibilityDesc":"Upravljajte opcionalnim sučeljima kompatibilnosti i otkrivanjem modela za Claude Code.","ollamaMode":"Ollama emulacija","ollamaModeHint":"Otvoreni loopback nikada ne prihvaća neautentificirani LAN promet.","ollamaOff":"Isključeno","ollamaLoopback":"Otvoreno na loopbacku","ollamaKeyRequired":"Potreban API ključ","claudeAliases":"Aliasi za otkrivanje Claude Codea","claudeAliasesHint":"Izložite claude/<model> aliase kako bi birač modela gatewaya mogao izlistati katalog.","mcpServer":"MCP poslužitelj","mcpServerHint":"Izlaže krajnju točku /mcp agentskim klijentima. Nove instalacije počinju isključene.","urlTokensTitle":"Opozivi URL tokeni","urlTokensDesc":"Samo za klijente bez zaglavlja. URL tokeni mogu procuriti u povijest i logove, pa ih opozovite kad više nisu potrebni.","urlTokenLabel":"Oznaka tokena","createUrlToken":"Stvori token","urlTokenOnce":"Kopirajte ovaj token sada. Neće se ponovno prikazati.","revoked":"Opozvano","revoke":"Opozovi","modelScope":"Opseg modela","modelScopeDesc":"Ograničite ovaj ključ na određene ID-ove modela. Za svaki drugi model router preskače ovaj ključ.","modelScopeAdd":"Unesite ID modela i pritisnite Enter","modelScopeEmpty":"Opseg nije postavljen — ovaj ključ služi sve modele svog pružatelja.","modelScopeClear":"Očisti opseg","modelScopeBadgeOne":"ograničen · 1 model","modelScopeBadgeOther":"ograničen · {count} modela","modelPicker":{"title":"Za koje se modele koristi ovaj ključ?","hint":"Vaš {provider} ključ je dodan i trenutačno poslužuje sve modele u nastavku. Odznačite one koje ovaj ključ ne smije koristiti — router će ga za njih preskočiti.","count":"Odabrano {selected} od {total}","allNote":"Odabrano je sve — ništa se ne sprema, a modeli koji se kasnije dodaju u katalog također će koristiti ovaj ključ.","subsetNote":"Ovaj će ključ biti ograničen na odabrane modele. To možete promijeniti kasnije u retku ključa.","skip":"Ne sada","scopedOne":"Ključ je ograničen na 1 model","scopedOther":"Ključ je ograničen na {count} modela","allSaved":"Key serves every catalog model"},"cpTitle":"Profili klijenata","cpDesc":"API ključevi po klijentu, svaki sa sistemskim promptom koji poslužitelj uvijek primjenjuje.","cpEmpty":"Još nema profila klijenata.","cpNameLabel":"Naziv","cpNamePlaceholder":"npr. Bot za podršku","cpPromptLabel":"Sistemski prompt (neobavezno)","cpPromptPlaceholder":"Upute koje poslužitelj dodaje prije svakog zahtjeva ovim ključem.","cpCreate":"Stvori profil","cpRotate":"Rotiraj ključ","cpKeyOnce":"Kopirajte ovaj ključ sada — neće se ponovno prikazati.","cpEnabledAria":"Profil omogućen","selectKey":"Odaberi ovaj ključ","bulkSelected":"{count} odabrano","bulkEnable":"Omogući sve","bulkDisable":"Onemogući sve","bulkDelete":"Obriši sve","bulkDeleteConfirm":"Obrisati {count}?","bulkResult":"Ažurirano {done}; neuspješno {failed}.","bulkDeleteResult":"Obrisano {done}; neuspješno {failed}.","testProxy":"Test","testingProxy":"Testing…","proxyTestOk":"Proxy works — {ms}ms round trip","proxyTestFail":"Proxy failed: {reason}","editKey":"Uredi ključ","editPlatformLocked":"Davatelj usluga i krajnja točka ne mogu se promijeniti nakon stvaranja.","editCredentialHint":"Ostavite prazno da biste zadržali trenutačni ključ.","editCredentialPartsRequired":"Unesite i ID računa i API token.","editModels":"Uredi modele","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":"Dodaj prilagođeni model","modelId":"ID modela","modelIdRequired":"ID modela je obavezan","modelDisplayName":"Prikazano ime","modelContextWindow":"Prozor konteksta (tokeni)","modelRateLimits":"Ograničenja brzine (opcionalno)","modelSupportsTools":"Podržava pozivanje alata","modelSupportsToolsHint":"Omogućite ako ovaj model može pozivati funkcije i alate","modelSupportsVision":"Podržava vizualne unose","modelSupportsVisionHint":"Omogućite ako ovaj model prihvaća slike kao unos","createModel":"Stvori model","modelAddedSuccess":"Prilagođeni model uspješno dodan","modelAddFailed":"Dodavanje prilagođenog modela nije uspjelo","testModel":"Testiraj","testingModel":"Testiranje…","testPassedShort":"Prošao","testFailedShort":"Pao","testPassed":"Test modela prošao u {latency}ms","testFailed":"Test modela nije uspio","testThrottled":"Pričekajte {seconds}s prije ponovnog testiranja ovog modela.","noModelsForProvider":"Nema konfiguriranih modela za ovog pružatelja.","testModels":"Testiraj modele","syncAllCatalog":"Catalog: +{inserted} added, ~{updated} updated, -{removed} removed","requestCapLabel":"Request cap","tokenCapLabel":"Token cap","budgetPeriodLabel":"Budget period","budgetPeriodDaily":"Daily","budgetPeriodWeekly":"Weekly","budgetPeriodMonthly":"Monthly","budgetPeriodAuto":"Auto (follow provider)","autoResolvedDaily":"Detected provider cycle: daily","autoResolvedMonthly":"Detected provider cycle: monthly","autoResolvedFallback":"Provider cycle unknown, defaulting to monthly","capUnlimitedPlaceholder":"Neograničeno","capEditHint":"Caps reset at the next period boundary, 00:00 UTC. Leave blank for unlimited.","monthlyUsageLine":"{requests} zahtjeva, {tokens} tokena ovaj mjesec","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:`Zdravo`,rateLimited:`Ograničenje brzine`,invalid:`nevažeći`,error:`pogreška`,unchecked:`neoznačeno`},analytics:{title:`Analitika`,description:`Količina zahtjeva, latencija, korištenje tokena i kvarovi.`,range24h:`24h`,range7d:`7d`,range30d:`30d`,range90d:`90d`,requests:`Zahtjevi`,successRate:`Stopa uspješnosti`,inputTokens:`Ulazni tokeni`,outputTokens:`Izlazni tokeni`,avgLatency:`Prosječna latencija`,p95Latency:`Latencija P95`,avgTtft:`Prosječna TTFT`,estSavings:`Procijenjene uštede`,requestsByProvider:`Zahtjevi po pružatelju usluga`,avgLatencyByProvider:`Prosječna latencija po pružatelju`,ttftByProvider:`Vrijeme do prvog tokena po pružatelju`,ttftEmpty:`Još nema vremena za prvi zabilježeni token.`,requestsOverTime:`Zahtjevi tijekom vremena`,tokensOverTime:`Tokeni kroz vrijeme`,byModel:`Po modelu`,byPlatform:`Po platformama`,errors:`Pogreške`,errorDistribution:`Distribucija pogrešaka`,pinnedRequests:`Prikačeni zahtjevi`,pinnedHonored:`Počasni`,fallbackAttempts:`Pokušaji povlačenja`,savingsHint:"Zapravo si uštedio ${actual} u zadnjih {range}. To je cijena iste cijene za iste tokene na plaćenim API-jima, po modelu. Prikazani broj projicira vaš tempo od posljednjih {span} podataka do punih 30 dana.",savingsHintExact:"Zapravo si uštedio ${actual} u zadnjih {range}. To je cijena iste cijene za iste tokene na plaćenim API-jima, po modelu. Prikazani broj je vaš stvarni ukupni iznos za 30 dana.",requestsHintPinned:`{pinned} od tih zahtjeva označilo je određeni model po imenu. {honored} su služili modeli s pričvršćivačima; {failed} je prešla na drugu. Ostali su automatski usmjereni.`,requestsHintAuto:`Svi zahtjevi u tom razdoblju bili su automatski usmjereni; nijedan klijent nije zakačio određeni model po imenu.`,requestsHintTypes:`{chat} chat i {embedding} zahtjeve za ugrađivanje.`,rangeLabel24h:`24 sata`,rangeLabel7d:`7 dana`,rangeLabel30d:`30 dana`,rangeLabel90d:`90 dana`,spanDays:`{count} dana`,spanHours:`{count} sati`,latencyMs:`Latencija (ms)`,latency:`Latencija`,pinned:`Pined`,inTokens:`U žetonima`,outTokens:`Tokeni za izlazak`,saved:`Spašen`,message:`Poruka`,time:`Vrijeme`,perModelBreakdown:`Razrada po modelu`,usageByKey:`Upotreba po ključu`,keyColumn:`Ključ`,keyLabelFallback:`Ključni #{id}`,errorsByProvider:`Pogreške po pružatelju`,recentErrors:`Nedavne pogreške`,noErrors:`Nema pogrešaka`,recentCalls:`Nedavni pozivi`,clientIp:`Klijentska IP adresa`,clientAgent:`Klijentska aplikacija`,requestedModelHint:`Zatraženo {model}, posluženo kao rezerva`,attempts:`Pokušaji`,filterAll:`Svi`,filterCanceled:`Otkazani`,providerBreakdown:`Raspodjela po pružatelju usluga`,tokensPerSec:`Tok/s`,allProviders:`Svi pružatelji`,requestDetailTitle:`Zatražite #{id}`,failoverLadder:`Failover ljestvica`,failoverLadderHint:`Svaki hop ovog zahtjeva prolazio je kroz lanac rezervnih opcija, redom.`,noAttemptTrace:`Za ovaj zahtjev nije zabilježen nikakav pokušaj praćenja.`,keyOrdinal:`Ključne #{n}`,keyBadge:`Ključ #{n}`,attemptTimingHint:`Početak offseta od početka zahtjeva · Trajanje pokušaja`,requestedModel:`Traženi model`,ttft:`TTFT`,requestsByAgent:`Zahtjevi po agentu`,sortBy:`Sortiraj po: {column}`,sortHint:`Sortiranje vrijedi za {count} učitanih redaka`,cacheHitRate:`Stopa pogodaka predmemorije`,cacheSavedTokens:`Ušteđeno {tokens} tokena`,cacheHitRateHint:`{hits} pogodaka naspram {misses} promašaja od pokretanja poslužitelja · izbjegnuto {requests} poziva pružatelju`},logs:{title:`Logovi`,description:`Log servera uživo. Novi unosi pristižu dok je stranica otvorena.`,pause:`Pauziraj`,resume:`Nastavi`,clear:`Očisti logove`,cleared:`Log servera očišćen`,levelFilter:`Razine logiranja`,levels:{debug:`Debug`,info:`Info`,warn:`Upozorenje`,error:`Pogreška`},countsHint:`Brojevi se odnose na cijeli međuspremnik loga na serveru, a ne samo na unose koji odgovaraju ovim filtrima.`,searchPlaceholder:`Pretraži poruke loga…`,jumpToLatest:`Skoči na najnovije`,showMore:`Prikaži više`,showLess:`Prikaži manje`,buffered:`Prikazano {count} od najviše {max} spremljenih unosa`,emptyTitle:`Još nema unosa u logu`,emptyDescription:`Unosi se pojavljuju ovdje čim ih server zapiše. Proširite filtre razine, pružatelja ili pretrage ako ste očekivali izlaz.`,noLevelsTitle:`Nije odabrana nijedna razina`,noLevelsDescription:`Uključite barem jednu razinu da biste vidjeli sadržaj loga.`,loadFailed:`Nije moguće učitati log servera.`},playground:{title:`Igralište`,description:`Pošalji poruku o završetku chata preko rutera i vidi koji pružatelj to servisira.`,autoModel:`Auto (rezervni lanac)`,fusionModel:`Fuzija (sinteza više modela)`,selectModel:`Odaberite model`,searchModels:`Pretražite modele...`,noModelsFound:`Nema pronađenih modela`,send:`Pošalji`,sending:`Šaljem...`,clear:`Čisto`,inputPlaceholder:`Napiši poruku... (⏎ za slanje, ⇧⏎ za novu liniju)`,emptyTitle:`Pošaljite poruku da započnete.`,emptyDescription:`Koristeći {model}. Modeli prekidača u selektoru iznad.`,noModels:`Još nema modela. Dodajte API ključ na stranicu Ključevi kako biste popunili ovaj popis.`,copyReply:`Kopiraj odgovor`,fallback:`Rezervni plan`,fallbacks:`Rezervne opcije`,fusionPanel:`Panel`,fusionJudge:`Sudac`,fusionTrace:`{count} model odgovora`,fusionFailed:`Nema odgovora`,fusionJudgeSynth:`sintetizirao konačni odgovor`,errorPrefix:`Pogreška:`,systemPromptLabel:`Sistemski upit`,systemPromptPlaceholder:`Opcionalno. Poslana kao sistemska poruka prije vašeg chata.`,showSettings:`Prikaži postavke`,hideSettings:`Sakrij postavke`,samplingHeading:`Uzorkovanje`,samplingHelp:`Kada je isključeno, primjenjuje se zadana vrijednost samog pružatelja. Šalju se samo kontrole koje uključite.`,samplingDefault:`Zadano`,temperature:`Temperatura`,topP:`Top P`,maxTokens:`Maks. tokena`,errorTitle:`Zahtjev nije uspio`,attach:`Priloži datoteke`,attachTooMany:`Po poruci možete priložiti najviše {count} datoteka.`,attachTooLarge:`Datoteka {name} je prevelika. Ograničenje je {max}.`,attachUnsupported:`Datoteka {name} nije podržana. Priložite slike (PNG, JPEG, WebP, GIF) ili tekstualne datoteke (TXT, MD, CSV, JSON, LOG).`,attachFailed:`Nije moguće pročitati datoteku {name}.`,noVisionBadge:`Bez slika`,visionWarning:`Model {model} ne prihvaća slike. Odaberite model s vizijom ili Auto.`,dictate:`Diktiraj`,dictationStop:`Zaustavi snimanje`,dictationTranscribing:`Transkribiranje…`,dictationUnavailable:`Dodajte pružatelje audio modela da biste mogli diktirati.`,dictationModel:`Model diktiranja`,dictationFailed:`Transkripcija nije uspjela: {reason}`,artifactOpen:`Otvori pretpregled`,artifactPreview:`Pretpregled`,artifactCode:`Kod`,artifactClose:`Zatvori pretpregled`,artifactDownload:`Preuzmi`,artifactReload:`Ponovno učitaj pretpregled`,artifactHtml:`HTML stranica`,artifactSvg:`SVG slika`,artifactLines:`redaka`,artifactResize:`Promijeni veličinu pretpregleda`},playgroundSessions:{heading:`Razgovori`,newConversation:`Novi razgovor`,showSidebar:`Prikaži razgovore`,hideSidebar:`Sakrij razgovore`,empty:`Još nema spremljenih razgovora.`,untitled:`Razgovor bez naziva`,rename:`Preimenuj`,renamePlaceholder:`Naziv razgovora`,messageCount:`{count} poruka`,justNow:`upravo sada`,minutesAgo:`prije {count} min`,hoursAgo:`prije {count} h`,daysAgo:`prije {count} d`,loadFailed:`Nije moguće otvoriti taj razgovor.`,renameFailed:`Nije moguće preimenovati taj razgovor.`,deleteFailed:`Nije moguće izbrisati taj razgovor.`,actions:`Radnje razgovora`,newChat:`Novi razgovor`},embeddings:{title:`Modeli`,description:`Ugrađeni sustavi se failover mogu prebaciti samo unutar obitelji: isti model koji pruža drugi pružatelj. Vektori iz različitih modela su nekompatibilni, pa router nikada ne mijenja modele na vama.`,defaultBadge:`Zadani · Auto`,makeDefault:`Postavite zadani zadatak`,moveUp:`Pomakni se naprijed`,moveDown:`Pomakni se dolje`,usageToday:`{count} zahtjev danas`,usageMonth:`{count} tok ovaj mjesec`,autoDescription:`model: "auto" na POST /v1/embeddings rutama do zadane obitelji. Imenovanje obitelji (ili ID-a modela pružatelja) pripina tu obitelj; Pružatelji usluga unutar njega isprobavaju se redom.`,unsavedChanges:`Nespremljene promjene`,saveChanges:`Promjene u spremanju`,savingChanges:`Spašavanje...`,tokMax:`{tokens} tok max`,emptyTitle:`Još nema modela ugradnje`,emptyDesc:`Ugrađene obitelji pojavljuju se ovdje nakon što dodate ključ pružatelja usluga koji podržava ugrađivanja.`,dragToReorder:`Povuci za ponovno naručivanje pružatelja`},fusion:{title:`Fuzija`,description:`Panel modela odgovara paralelno, a sudac sintetizira jedan jači odgovor. Koristi ga tako da API s modelom pozoveš "fusion".`,panelSource:`Izvor panela`,panelSourceHelp:`Odakle dolaze modeli panela kada zahtjev ne specificira vlastiti.`,mode:{auto:`Auto (rezervni lanac)`,autoHelp:`Odaberite raznolik skup modela iz svog Fallback Chaina, rangirane prema vašoj aktivnoj strategiji rutiranja.`,explicit:`Eksplicitni panel`,explicitHelp:`Uvijek koristite određene modele koje odaberete u nastavku.`},panelModels:`Panelni modeli`,selectedCount:`{count} {max} odabrani`,noModels:`Još nijedan model nije povezan. Dodajte API tipku, zatim omogućite modele u Fallback Chainu.`,panelSize:`Veličina panela`,panelSizeHelp:`Koliko različitih modela automatski odabrati (1–{max}).`,judge:`Model suca`,judgeHelp:`Model koji sintetizira odgovore panela u jedan. Auto koristi vaš najbolje rangirani dostupni model.`,judgeAuto:`Auto (dostupni najviši rang)`,strategy:`Strategija`,strategySynthesize:`Sinteza — spajanje panela u jedan odgovor`,strategyBestOf:`Najbolje od — vratite najjači odgovor (bez suca)`,strategySynthesizeShort:`Sinteza`,strategyBestOfShort:`Najbolje od`,exposePanel:`Detalji panela za ekspoziciju`,exposePanelHelp:`Priložite odgovor svakog modela i metapodatke suca pod polje x_fusion u odgovoru.`,howToUse:`Kako koristiti`,howToUseHelp:`Pošalji običan chat zahtjev s modelom "fusion". Ove postavke su zadane; bilo koji zahtjev može ih nadjačati poljem "fuzija".`,unsavedChanges:`Nespremljene promjene`,save:`Spasi`,searchPlaceholder:`Search models…`,providerFilterLabel:`Filter by provider`,providerAll:`All providers`,noMatch:`No models match your search.`},premium:{title:`Premija`,description:`Katalog živih modela, na svakom uređaju.`,loading:`Učitavanje...`,checkForUpdates:`Provjerite ima li novosti`,syncing:`Sinkronizacija...`,catalogFeed:`Kataloški feed`,liveFeed:`Prijenos uživo`,monthlySnapshot:`Mjesečni pregled`,lastChecked:`Zadnja provjera: {when}`,liveDescription:`Novi besplatni modeli, promjene kvota i popravci neobičnosti stižu ovdje unutar nekoliko sati od isporuke. Aplikacija automatski provjerava dva puta dnevno; Nema što raditi.`,snapshotDescription:`Free tier: katalog se osvježava iz mjesečnog snimka, koji se automatski provjerava dva puta dnevno. Premium to prebacuje na live feed, koji se ažurira svaka 2-3 dana.`,lastSyncProblem:`Problem s posljednjom sinkronizacijom: {error}`,license:`Licenca`,planAnnual:`Godišnja premija`,planLifetime:`Premium životni vijek`,expired:`Istekao`,inactive:`Neaktivan`,lifetimeNote:`Doživotna licenca: nikad ne istječe.`,renewsOn:`Obnavlja se {date}.`,willNotRenew:`Neću obnoviti. Premium do {date}, a zatim se ova instalacija vraća na besplatni mjesečni katalog.`,keyInactive:`Ovaj ključ više nije aktivan. Aplikacija i dalje radi na besplatnom mjesečnom katalogu.`,manageSubscription:`Upravljanje pretplatom`,openingPortal:`Otvaranje...`,removeKey:`Uklonite ključ s ovog uređaja`,manageHint:`Upravljanje pretplatom otvara Stripe-ov portal za naplatu: otkažite, ažurirajte karticu ili preuzmite račune. Vađenje ključa samo deaktivira ovaj uređaj; Vaša kupnja ostaje netaknuta.`,licenseKey:`Licencni ključ`,licenseKeyPlaceholder:`fla_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`,activate:`Aktiviraj`,activating:`Aktiviram...`,keyHint:`Vaš ključ nalazi se u e-mailu za kupnju i na stranici nakon plaćanja. Izgubio kontrolu?`,recoverKey:`Pronađite ga na web stranici`,upsellTitle:`Idite uživo za 19 dolara godišnje`,upsellDescription:`Novi besplatni modeli čim se pojave, umjesto 30 dana kasnije. Jedan ključ, svaki uređaj. Otkažite u bilo koje vrijeme; Ruter ostaje slobodan zauvijek.`,goPremium:`Go Premium`,bundled:`Bundled`,planGeneric:`Premija`},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:`Nešto je pošlo po zlu`,boundaryDescription:`Nadzorna ploča je naišla na neočekivanu grešku. Vaši podaci su sigurni. Pokušajte ponovno ili se vratite na stranicu s modelima.`,tryAgain:`Pokušaj ponovno`,goHome:`Povratak na modele`},notFound:{title:`Stranica nije pronađena`,description:`Ova stranica ne postoji ili je možda premještena.`},setup:{title:`Početak`,subtitle:`Tri koraka za usmjeravanje vašeg prvog zahtjeva.`,progress:`{done} of {total}`,step1Title:`Dodajte ključ pružatelja usluga`,step1Desc:`Povežite barem jedan račun pružatelja usluga. Besplatni ključevi rade.`,step1Cta:`Dodaj ključeve`,step2Title:`Pošaljite zahtjev za testiranje`,step2Desc:`Odaberite bilo koji model na Playgroundu i pozdravite ga.`,step2Cta:`Otvoreno igralište`,step3Title:`Povežite svoju aplikaciju`,step3Desc:`Koristite svoj jedinstveni API ključ s bilo kojim klijentom kompatibilnim s OpenAI.`,copyKey:`Kopiraj API ključ`,copyUrl:`Kopiraj bazu URL`,copiedKey:`API ključ kopiran u međuspremnik`,copiedUrl:`Baza URL kopirana u međuspremnik`},palette:{title:`Komandna paleta`,placeholder:`Pretraži stranice, modele, akcije...`,empty:`Nema rezultata`,groupPages:`Stranice`,groupActions:`Radnje`,groupModels:`Modeli`,toggleTheme:`Uključi tamni način rada`},validation:{required:`Obavezno`,url:`Unesite valjani URL koji počinje s http:// ili https://`,email:`Unesite valjanu e-mail adresu`,passwordMin:`Barem {min} likova`},agents:{title:`Agenti za kodiranje`,description:`Povežite alate za kodiranje s jednim gatewayem besplatnih modela uz generiranu konfiguraciju sigurnu za backup.`,apiKey:`API ključ`,quickstartTitle:`Brzi početak`,quickstart:`Najbrži put: konfigurirajte Claude Code iz live kataloga.`,currentKey:`Trenutni objedinjeni ključ:`,seenRecently:`Nedavno viđeno`,setupLabel:`Automatsko postavljanje`,setupHint:`Umjesto vas zapisuje konfiguracijsku datoteku ovog alata, usmjerenu na ovaj pristupnik.`,setupGuideHint:`Ispisuje korake postavljanja ovog alata; nijedna datoteka se ne zapisuje.`,manualLabel:`Ručno povezivanje`,manualHint:`Osnovni URL i ključ za unos u postavke samog alata.`,endpoint:`Krajnja točka`,documentation:`Dokumentacija`,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:`Uvijek dostupan osobni asistent koji s vašeg računala odgovara u aplikacijama WhatsApp, Telegram, Discord i drugima.`,hermes:`Samopoboljšavajući agent tvrtke Nous Research s trajnom memorijom i vještinama, u terminalu ili u chat aplikacijama.`,pi:`Minimalistički terminalski agent koji oblikujete vlastitim proširenjima, vještinama i predlošcima upita.`}},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:`Preimenuj ovaj lanac`,renameConfirm:`Preimenovati lanac "{oldName}" u "{name}"? Klijenti koji zovu auto:{oldName} moraju prijeći na auto:{name}.`,renamePlaceholder:`Novi naziv lanca`,renameFailed:`Nije moguće preimenovati lanac.`},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:`Modellek`,playground:`Játszótér`,keys:`Kulcsok`,analytics:`Elemzés`,premium:`Prémium`,upgrade:`Fejlesztés`,settings:`Beállítások`,signOut:`Kijelentkezz`,openMenu:`Nyisd meg a navigációs menüt`,switchLight:`Váltás könnyed témára`,switchDark:`Áttérés sötét témára`,switchToChinese:`Átállás kínaira`,switchToEnglish:`Átállás angolra`,modelsMenu:`Böngészés modelltípusok`,agents:`Ügynökök`,logs:`Napló`,analyticsMenu:`Elemzési oldalak`,notifications:`Notifications`,noNotifications:`No notifications yet`},auth:{createYourAccount:`Hozza létre a fiókot`,signIn:`Bejelentkezés`,email:`E-mail`,password:`Jelszó`,emailPlaceholder:`you@example.com`,passwordPlaceholderSetup:`legalább 8 karakter`,passwordPlaceholderLogin:`A jelszavát`,setupDescription:`Állítsd be az e-mail címet és jelszót, amely megvédi ezt a panelt.`,loginDescription:`Jelentkezz be, hogy kezeld a kulcsaidat, az útválasztásodat és az elemzéseidet.`,createAccount:`Fiók létrehozása`,creating:`Létrehozni...`,signingIn:`Bejelentkezés...`,loading:`Betöltés...`,newPasswordAutoComplete:`új jelszó`,currentPasswordAutoComplete:`current-password`,serverUnreachableBefore:`Nem tudom elérni a szervert. Győződj meg róla, hogy a backend fut (`,serverUnreachableAfter:`).`,setupCode:`Beállítási kód`,setupCodePlaceholder:`Kód a szervernaplókból`,setupCodeHint:`Egy másik eszközről való beállításhoz az egyszeri kód a szervernaplókban megjelent a kezdetekor szükséges.`,changePassword:`Jelszó módosítása`,changeEmail:`E-mail módosítása`,forgotPassword:`Elfelejtette a jelszavát?`,currentPassword:`Jelenlegi jelszó`,newPassword:`Új jelszó`,newEmail:`Új e-mail`,resetCode:`Visszaállítási kód`,resetCodePlaceholder:`kód a szerver naplójából`,resetCodeHint:`A kód a szerver naplójában található. E-mailben soha nem küldjük el.`,forgotPasswordDescription:`Kattintson az alábbi gombra a visszaállítási kód létrehozásához. A kód a szerver naplójába kerül, e-mailben soha nem küldjük el. Írja be ide az új jelszó beállításához.`,requestResetCode:`Kód küldése`,requestingResetCode:`Küldés…`,resetPassword:`Jelszó visszaállítása`,resettingPassword:`Visszaállítás…`,changingPassword:`Módosítás…`,changingEmail:`Módosítás…`,backToLogin:`Vissza a bejelentkezéshez`,passwordChanged:`A jelszó módosult.`,emailChanged:`Az e-mail-cím módosult.`,passwordReset:`A jelszó visszaállt. Jelentkezzen be.`,resetCodeDockerHint:`Docker alatt fut? A kód a konténer naplójában található: docker logs <container>.`,desktopSessionFailed:`Az irányítópult nem tudott bejelentkezni a helyi szerverre. Lépjen ki a SRouter alkalmazásból, és nyissa meg újra.`},common:{save:`Mentés`,saving:`Megmentem...`,cancel:`Törlés`,discard:`Dobás`,delete:`Törlés`,confirm:`Megerősítse`,copy:`Értettem`,copied:`Másolva`,copyFailed:`Nem sikerült a másolás — jelölje ki a szöveget, és másolja kézzel`,show:`Műsor`,hide:`Bújj el`,apply:`Jelentkezz`,applied:`Alkalmazott`,applying:`Jelentkezik...`,active:`Aktív`,inactive:`Inaktív`,never:`Soha`,loading:`Betöltés...`,error:`Hiba`,noData:`Még nincs adat`,unsavedChanges:`Mentetlen változtatások`,saveChanges:`Mentési változtatások`,remove:`Távolítsd el`,unknownError:`Ismeretlen hiba`,model:`Modell`,provider:`Szolgáltató`,success:`Siker`,failures:`Kudarák`,dismiss:`Feladás`,status:`Státusz`},settings:{title:`Beállítások`,language:`Nyelv`,theme:`Téma`,themeSystem:`Rendszer`,themeLight:`Világos`,themeDark:`Sötét`,searchLanguage:`Nyelvek keresése…`,noLanguages:`Nem található nyelv`,sections:`Beállítási szakaszok`,sectionGeneral:`Általános`,sectionCompression:`Tömörítés`,sectionAdvanced:`Speciális`,sectionPreview:`Előnézet`,generalDescription:`A vezérlőpult nyelve és megjelenése.`,advancedDescription:`A tömörítési folyamat küszöbértékei és biztonsági kapcsolói.`,compressionTitle:`Prompt-tömörítés`,compressionDescription:`Csökkenti a kérés méretét az útválasztás előtt, megőrizve a kódot, a hibákat, az elérési utakat, a számokat és az eszközdefiníciókat.`,compressionHelp:`Minden kérést átír, mielőtt elküldi egy szolgáltatónak, hogy kevesebb tokent használjon. A kód, a hibák, a fájlútvonalak és a számok védettek, és minden olyan átírás elvetésre kerül, amely kárt tesz bennük.`,compressionMode:`Mód`,compressionModeHelp:`A „Ki” érintetlenül küldi a kéréseket. A „Veszteségmentes” csak az ismétlődő és felesleges szöveget távolítja el. A „Normál” az eszközkimenetet is lerövidíti. Az „Agresszív” ezen felül a régebbi köröket is összesűríti.`,compressionOff:`Ki`,compressionLossless:`Veszteségmentes`,compressionStandard:`Normál`,compressionAggressive:`Agresszív`,compressionLossy:`Veszteséges`,compressionEngines:`Motorok`,compressionEnginesHelp:`Minden motor egy átírási lépés. A mód dönti el, mely motorok futnak; ha itt kikapcsol egyet, az minden módból kimarad.`,engineDedup:`Ismétlődő blokkok`,engineDedupHelp:`A beszélgetésben korábban már megjelent szövegblokkot rövid hivatkozással helyettesíti.`,engineLite:`Szóköztisztítás`,engineLiteHelp:`Levágja a sorvégi szóközöket, összevonja az ismétlődő üres sorokat és eldobja a duplikált rendszerüzeneteket.`,engineReadLifecycle:`Elavult fájlolvasások`,engineReadLifecycleHelp:`Egy korábbi fájlolvasást megjegyzéssel helyettesít, amint ugyanazt a fájlt később újra beolvassák vagy szerkesztik.`,engineToolfilter:`Eszközkimenet-szűrő`,engineToolfilterHelp:`Lerövidíti a parancsok és eszközök kimenetét, például a buildekét, teszteket és telepítéseket. A hiba- és veremkövetési sorok mindig megmaradnak.`,engineJsoncompact:`JSON táblák`,engineJsoncompactHelp:`Az azonos mezőket használó hosszú JSON tömböket tömör táblává kódolja át. Visszafordítható, így semmi sem vész el.`,engineRelevance:`Relevanciaszűrő`,engineRelevanceHelp:`Eldobja a legutóbbi üzenethez legkevésbé kapcsolódó mondatokat, ha egy üzenet túllépi a méretkeretét.`,engineAging:`Régebbi körök`,engineAgingHelp:`A legutóbbi néhányon túli köröket rövid összefoglalóvá sűríti, amely megőrzi az útvonalakat, a hibákat és a döntéseket.`,engineHardBudget:`Tokenplafon`,engineHardBudgetHelp:`Eltávolítja a legkevésbé értékes sorokat, amíg a kérés bele nem fér a tokencélba.`,compressionAutoTrigger:`Automatikus indítás a becsült tokenszám felett`,compressionAutoTriggerHelp:`Az ennél több tokenre becsült kérések automatikusan Agresszív módba váltanak. Hagyja üresen a kikapcsoláshoz.`,compressionPrefixFreeze:`Ismétlődő prompt-előtagok rögzítése`,compressionPrefixFreezeHelp:`Érintetlenül hagyja a rendszerpromptot, ha ugyanaz a szöveg már háromszor előfordult, így a szolgáltatói oldali prompt-gyorsítótárazás továbbra is működik.`,compressionTrustProjectFilters:`Bízzon a projekt szűrőfájljaiban`,compressionTrustProjectFiltersHelp:`Eszközkimenet-szűrőket a munkakönyvtárból is betölt. Alapértelmezés szerint ki van kapcsolva, mert egy tároló ezzel elrejthetne kimenetet a modell elől.`,compressionStats:`Megtakarított méret`,compressionEstimatedTokensSaved:`Becsült megtakarított tokenek`,compressionPreview:`Élő előnézet`,compressionPreviewDescription:`Küldjön át egy kéréstörzset a folyamaton, hogy lássa, mit kapna egy szolgáltató.`,compressionPreviewPlaceholder:`Illessze be a kérés JSON-jét vagy egyszerű szöveget`,compressionRunPreview:`Előnézet futtatása`,updatesTitle:`Frissítések`,checkForUpdates:`Ellenőrizd a frissítéseket`,lastChecked:`Utoljára ellenőrizve: {when}`,currentVersion:`Jelenlegi build:`,updateAvailable:`Frissítés érhető el`,changelog:`Mi változott`,upToDate:`Naprakész`,buildAhead:`Ez a build megelőzi a hivatalos main ágat.`,buildDiverged:`Ez a build eltért a hivatalos main ágtól.`,buildUnknown:`Ez az egyéni build nem hasonlítható össze a hivatalos main ággal.`,notGitInstall:`Ez a telepítés nem tartalmaz commitinformációkat.`,checkFailed:`Nem sikerült ellenőrizni a frissítéseket.`,contactsGithub:`Az ellenőrzések manuálisak, és kapcsolatba lépnek a GitHubbal.`,autoUpdateCheck:`Automatikus frissítésellenőrzés`,autoUpdateCheckHelp:`Naponta egyszer ellenőrzi a GitHubon az új kiadást, és emlékeztetőt jelenít meg. Alapértelmezés szerint kikapcsolva.`,openReleases:`GitHub-kiadások megnyitása`,restartAfterUpdate:`A build befejezése után indítsa újra a SRouter-t.`,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:`Modellek`,chatModelsTab:`Chat modellek`,fusionTab:`Fúzió`,embeddingsTab:`Beágyazások`,imageTab:`Kép`,videoTab:`Video`,audioTab:`Hang`,imageDesc:`Szövegből képre generáló modellek.`,videoDesc:`Text-to-video generation models.`,audioDesc:`Szöveg-beszéd és beszéd-szöveg modellek.`,mediaHint:`Generálj`,mediaEmpty:`Még nincsenek modellek. Szinkronizálódnak a katalógusból.`,ttsHeading:`Szövegből beszédre`,sttHeading:`Beszédből szövegre`,sttHint:`Átírás:`,sttEmpty:`Még nincs beszédből szöveg formátumú modell. Szinkronizálódnak a katalógusból.`,newBadge:`Új`,monthlyTokenBudget:`Havi token költségvetés`,remaining:`Maradék`,used:`Használt`,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:`Mutasd meg az összes {count} modellt`,showLess:`Mutasd kevesebbet`,vision:`Vízió`,visionTitle:`Képbemenetet fogad`,tools:`Eszközök`,toolsTitle:`Strukturált eszközhívásokat bocsát ki, így jogosult szerszámtartó kérésekre`,retired:`Kivonva`,penalty:`−{value} büntető`,obs:`{count} obs`,tokPerMonth:`{count} tok/mo`,rpmLimit:`{count} fordulatszám`,rpdLimit:`{count} RPD`,noKey:`Nincs kulcs`,dragToReorder:`Drag újrarendezéshez`,dragToReorderGroup:`Drag a modell újrarendezéséhez`,moveToRank:`Ugrás rangszámra`,providerCount:`{count} szolgáltatók`,servedBy:`A {providers} által szolgálva`,viewProviders:`Szolgáltatók megtekintése`,backToModels:`Vissza a modellekhez`,providersHeading:`Ezt a modellt kiszolgáló szolgáltatók`,codeSnippetHeading:`Használd ezt a modellt`,modelNotFound:`Ez a modell nem elérhető, vagy nincs konfigurált szolgáltatója.`,providerIdsHeading:`Provider model ids`,providerIdsHint:`Küldd el az egységes modellazonosítót a rendszerváltáshoz minden szolgáltató között, vagy egy szolgáltató-specifikus azonosítót egy szolgáltató rögzítésére.`,copyModelName:`Másolj modell név`,settingsHeading:`Szolgáltató beállítások`,settingsHint:`A helyi szerkesztések a katalógusmodelleken a katalógus szinkronizációin keresztül maradnak fenn. A törölt katalógusmodellek törölve maradnak, amíg újra hozzá nem adod őket a konfiguráción keresztül.`,catalogModel:`Katalógus`,customModel:`Egyedi`,discoveredModel:`felfedezett`,localOverride:`Helyi felülbírálás`,displayName:`Bemutató név`,sizeLabel:`Képességi szint`,sizeLabelHint:`A Frontier/Large/Medium/Small határozza meg az intelligencia-tengelyt: a magasabb szint mindig megelőzi az alacsonyabbat, egy szinten belül pedig az intelligencia-rangsor továbbra is mozgatja a pontszámot. A felismert szint nélküli modell ezen a tengelyen kapja a legalacsonyabb pontszámot, de az intelligencia csak egy a három tengelyből — erős megbízhatósággal és sebességgel így is elnyerheti az útválasztást.`,sizeLabelNone:`Nincs (legalacsonyabb intelligencia-pontszám)`,contextWindow:`A háttér`,inFallback:`Láncban`,saveModelSettings:`Mentési modell beállítások`,aggregateBudget:`{count}/hónap`,aggregateBudgetTitle:`Teljes ingyenes tokenek havi minden szolgáltatóján ezen a modell szolgáltatóján`,rateRpm:`{count} RPM`,rateRpd:`{count} RPD`,rateTitle:`Díjkorlátos — nincs fix havi token költségvetés`,rateLimitUsage:`{kind} {used}/{limit}`,rateLimitUsageTitle:`Időablakos sebességkorlát-használat (felhasznált / korlát) a legtöbb tartalékkal rendelkező szolgáltatónál`,splitOut:`Ne egyesítse ezt a példányt`,splitOutHint:`Adjon külön bejegyzést ennek a szolgáltatónak a másolatának ahelyett, hogy az egyesített modellbe egyesítené. A másolat saját oldaláról visszaolvaszthatja.`,splitUndo:`Egyesítse vissza`,splitUndoHint:`Ezt a példányt az egységes modelltől elkülönítve tartják. Egyesítse vissza, hogy ismét az összes szolgáltatónál átvegye.`,splitBadge:`elkülönítve tartották`,noData:`nincs adat`,noDataTitle:`Még nem rögzítettek kéréseket – a megbízhatóság és a sebesség nem mérhető ennél a szolgáltatónál.`,bestOfN:`{count} legjobbja`,perProviderScores:`Szolgáltatónkénti pontszámok: {list}`,columnModel:`Modell`,columnOn:`Onnan`,noModelsBefore:`Nincsenek modellek. Hozzáadj API billentyűket a`,keysPageLink:`Kulcsoldalak`,noModelsAfter:`Először.`,hiddenNoKeys:`Rejtett (nincs kulcs): {platforms}`,searchPlaceholder:`Keresőmodelleket vagy szolgáltatókat...`,clearSearch:`Tiszta keresés`,ctxAny:`Bármilyen kontextus`,ctxBadge:`{size} ctx`,ctxTitle:`Kontextus ablak`,copyModelId:`Copy model id`,showingCount:`{shown} {total} modell`,clearFilters:`Tiszta szűrők`,noMatches:`Egyetlen modell sem egyezik a szűrőiddel.`,noModelsTitle:`Nincsenek konfigurált modellek`,intelligenceRank:`Intelligencia`,speedRank:`Sebesség`,rankHint:`Rangsor a katalógusban — az 1 a legjobb.`,limitRpm:`RPM`,limitRpd:`RPD`,limitTpm:`TPM`,limitTpd:`TPD`,limitRpmHint:`Kérés percenként. Hagyja üresen, ha nincs korlát.`,limitRpdHint:`Kérés naponta. Hagyja üresen, ha nincs korlát.`,limitTpmHint:`Token percenként. Hagyja üresen, ha nincs korlát.`,limitTpdHint:`Token naponta. Hagyja üresen, ha nincs korlát.`,usageThisMonth:`Havi felhasználás`,usageEmpty:`Ebben a hónapban még nincs kérés.`,usageRequestsMonth:`{count} kérés e hónapban`,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:`Nem mért modellek felfedezése`,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:`Kulcsválasztás`,keySelectionAuto:`Automatikus`,keySelectionLeastRemaining:`Legkevesebb maradt`,keySelectionHint:`Hogyan válasszon a rendszer ugyanazon szolgáltató több kulcsa közül. Az Automatikus megtartja a jelenlegi váltogatást; a Legkevesebb maradt a megfigyelt kvóta szerint rendezi a kulcsokat, és először azt próbálja, amelyiknek a legtöbb maradt.`,cooldownCeiling:`Leghosszabb automatikus lehűlés`,cooldownCeilingHint:`Korlátozza, meddig tilthatja ki a router saját becslése a hibázó kulcs és modell párt. A létra általában 2 perc, 10 perc, 1 óra, 24 óra, a kredit- vagy szinthibák pedig egy napra tiltanak. A szolgáltató által megadott újrapróbálási időket sosem rövidíti.`,cooldownCeilingDefault:`Alapértelmezett (legfeljebb 24 óra)`,cooldownCeiling10m:`10 perc`,cooldownCeiling1h:`1 óra`,cooldownCeiling6h:`6 óra`,moreOptions:`További beállítások`,peakActive:`(csúcsidő)`,peakActiveHint:`A csúcsidei kiigazítás éppen aktív, tehát ezek nem az előbeállítás saját súlyai: a sebességsúly 60%-a a megbízhatóságra került át.`,peakAdjust:`Csúcsidei kiigazítás`,peakAdjustHint:`Alapértelmezés szerint kikapcsolva. Az alábbi időablakban a sebességsúly 60%-át a megbízhatóságra tolja — az ingyenes továbbítók ilyenkor a legterheltebbek, így a megbízhatóság jobban jelzi előre a sikert, mint a nyers átbocsátás. A „Leggyorsabb” és a „Legmegbízhatóbb” érintetlen marad.`,peakFrom:`Ettől`,peakTo:`eddig`,peakTimezoneLabel:`Időzóna`,peakUseBrowserTimezone:`A böngésző időzónája`,peakTimezoneInvalid:`Ismeretlen időzóna.`,peakExemptNote:`Ez az előbeállítás érintetlen marad — már a sebesség/megbízhatóság mérleg egyik végén áll.`,title:`Útvonaltervezési stratégia`,description:`Válassz egy útvonaltervezési stratégiát. Manuális módban húzni kell a sorrend beállításához; A többi stratégia élő eredmény alapján vezet a megbízhatóság, sebesség és intelligencia terén.`,weightsSummary:`megbízhatóság {reliability}% · sebesség {speed}% · Intelligencia {intelligence}%`,guardrails:`Korlátok`,guardrailsTooltip:`Mindig bekapcsolt korlátok: ingyenes kvóta-fejtér × élő díjkorlátos büntetés. Az 1.0 alatti verzió azt jelenti, hogy a modellt visszatartják.`,scoreTooltip:`Végső útvonali pontszám = a három tengely súlyozott átlaga, szorozva a korlátokkal. Először magasabb útvonalak.`,modeManualHint:`Manuális mód: a kérések az alábbi sorrend szerint haladnak, felülről lefelé. Húzd el a sorrend újrarendezéséhez.`,modeScoreHint:`Pontszámok frissülnek élő forgalomból. Az alábbi sorrend mutatja, hogyan irányítják a kéréseket most.`,manual:`Kézikönyv`,manualBlurb:`Pontosan az alábbi sorrendben haladj meg. Húzd a fogantyúkat az újrarendeléshez. Nem szerzett pontot; a láncot felülről lefelé követik.`,balanced:`Kiegyensúlyozott`,balancedBlurb:`A megbízhatóság vezet (50%), a sebesség és az intelligencia egyenlő súlyt kap (25% mindketen). Ez egy ésszerű, mindenre ható alapértelmezett alapértelmezés.`,smartest:`Legokosabb`,smartestBlurb:`A legalkalmasabb modellt részesíted előnyben, ami még működik. Intelligencia 55%, megbízhatóság 35%, sebesség 10%.`,fastest:`A leggyorsabb`,fastestBlurb:`A leggyorsabb modellt részesítem előnyben, ami még működik. Sebesség 55%, megbízhatóság 35%, intelligencia 10%.`,reliable:`Legmegbízhatóbb`,reliableBlurb:`Mindenekelőtt a sikerességi arány maximalizálása. Megbízhatóság 70%, sebesség és intelligencia 15% egyaránt.`,custom:`Egyedi`,customBlurb:`Állítsd be a megbízhatóság, sebesség és intelligencia egyensúlyát csúszkákkal. Ugyanaz a motor, mint az előbeállítások, csak a súlyok.`,adjust:`Igazítsd`,customWeights:`Egyedi súlyok`,customWeightsHelp:`A csúszkák függetlenek; Részvények automatikus egyenlege 100%-ra emelkedik.`,weightReliability:`Megbízhatóság`,weightSpeed:`Sebesség`,weightIntelligence:`Intelligencia`,weightRequired:`Legalább egy súlynak nulla felett kell lennie.`,scoreColumn:`Zene`},penaltyInspector:{title:`Router nyomás`,subtitle:`Büntetések, töltési idők és kudarcok az utolsó {minutes} percben`,rowCount:`{count} aktív`,offChain:`Off chain`,penaltyValue:`Büntető {value}`,factor:`pontszám x{factor}`,noCooldown:`Nincs újratöltési idő`,cooldownChip:`{key} - {time}`,resetCooldown:`Reset cooldown`,clearAll:`Összes törlése`,clearAllHint:`Azonnal feloldja az összes lehűlést, büntetést és hibasorozatot. A nyomás a következő valós eredményekből épül újra.`,errorsHeading:`{count} legutóbbi hibák`,noRecentErrors:`Nincs friss hiba`,noKey:`Nincs kulcs`,reasons:{penalty:`büntetés`,cooldown:`Újratöltési idő`,recent_errors:`kudarc`}},keys:JSON.parse(`{"pageTitle":"Kulcsok","pageDescription":"A szolgáltatói hitelesítő adatok és az egységes API kulcsa az alkalmazásokhoz kapcsolód.","tabProviders":"Szolgáltatók","checklistSummary":"{total} szolgáltatóból {configured} beállítva","checklistKeyless":"nem kell kulcs","checklistNoKeyTip":"Még nincs hozzáadva kulcs. Kattintson a hozzáadáshoz.","checklistSignupLink":"Nyissa meg a {provider} oldalt fiók létrehozásához és kulcs szerzéséhez","checklistKeylessTip":"Kulcs nélkül működik.","tabQuotaSignals":"Kvótajelzések","tabApiKey":"Egységes API kulcs","tabAnthropic":"Anthropic","unifiedKey":"Az egységes API kulcsod","regenerate":"Regenerálás","showKey":"Műsor","hideKey":"Bújj el","copyKey":"Értettem","copyFullKey":"Teljes kulcs másolása","copiedKey":"Másolva","baseUrl":"Alap URL","endpointChat":"Chat","endpointResponses":"Válaszok","endpointEmbeddings":"Beágyazások","endpointEmbeddingsHint":"model: \\"auto\\" vagy egy család a Beágyazások fülről","endpointMessages":"Üzenetek","endpointMessagesHint":"Anthropic-kompatibilis (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) modellek","anthropicDesc":"Irányíts egy Claude vagy Anthropic SDK klienst erre a szerverre. Anthropic kliensek küldenek Claude modellnevet — mindegyiket az Auto-hoz rendelik (a router egy ingyenes modellt választ), vagy rögzítik egy adott példányt.","anthropicBaseUrl":"Alap URL","anthropicAuth":"Hitelesítés fejléc","anthropicAuto":"Auto — a router választja a legjobb modellt","anthropicSave":"Mentés térképezés","anthropicSaved":"Megmentetve","anthropicNote":"Anthropic ügyfelek megtartják beépített Claude modellneveiket; A fenti térkép határozza meg, hogyan vezet mindegyik a medencébe.","familyDefault":"Alapértelmezés","familyOpus":"Opus","familySonnet":"Szonett","familyHaiku":"Haiku","selectPlatform":"Válassz szolgáltatót","addKey":"Add hozzá kulcsot","keyAdded":"Kulcs hozzáadva","endpointKeysShareModels":"Ugyanazon végpont kulcsai közösen használják annak modelljeit.","export":"Export","exportAll":"Minden kulcs","exportHealthy":"Csak egészségesnek","exportKeys":"Kulcsok exportálása API","exportFormat":"Formátum","exportHealthyOnly":"Csak egészséges billentyűk","exportHealthyOnlyDesc":"Zárd ki azokat a kulcsokat, amelyek jelenleg nem teljesítenek egészségügyi ellenőrzést","exportWillExport":"Exportálni fog","exportKey":"Kulcs","exportKeys plural":"Kulcsok","exporting":"Export...","exportDownload":"Letöltés","exportSuccess":"Exportált {count} kulcsok","adding":"Hozzátéve...","selectProvider":"Válassz szolgáltatót...","accountId":"Számlaazonosító","label":"Kiadó","noKeyNeeded":"(kulcs nincs szükséges)","outboundProxy":"Kimenő proxy","outboundProxyDescription":"Irányítsd a kimenő LLM kéréseket egy proxyn keresztül. Támogatja a SOCKS5, HTTP és HTTPS.","proxyUrl":"Proxy URL","saveProxy":"Mentés","savingProxy":"Megmentem...","proxyLoadFailed":"Nem tudtam betölteni a proxy beállításokat.","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":"Hozzáadj egy egyedi OpenAI-kompatibilis modellt","addCustomDescription":"Pontcsevegés, beágyazás, kép vagy audio modellek bármely OpenAI-kompatibilis végponton. A API kulcs helyi szervereknél opcionális.","customType":"Típus","customTypeChat":"Chat","customTypeEmbedding":"Beágyazás","customTypeImage":"Kép","customTypeAudio":"Hang","customTypeTranscription":"Transcription","customBaseUrl":"Alap URL","customModels":"Modellek","customModel":"Modell","customDisplayName":"Bemutató név","customDisplayNamePerModel":"Modellenként","customDisplayNameOptional":"Opcionális","customFamily":"Család","customFamilyPlaceholder":"Alapértelmezett modellazonosító","customApiKey":"API kulcs","customCapabilities":"Képességek","addModel":"Modell hozzáadása","modelAdded":"Hozzáadott modell","addModels":"Hozzáadj {count} modelleket","addEmbeddingModel":"Beágyazás hozzáadása","addImageModel":"Képmodell hozzáadása","addAudioModel":"Hangmodell hozzáadása","addTranscriptionModel":"Add transcription model","addingCustom":"Hozzátéve...","discoverModels":"Modellek lekérése","probeNow":"Végpont tesztelése","probeConfirm":"Küldjön legfeljebb 3 tesztkérést?","probeCapabilities":"következtetés: {reasoning} · eszközök: {tools}","probeCapYes":"igen","probeCapNo":"nem","probeCapUnknown":"ismeretlen","probeSuccess":"{model} tesztelve {latency} ms alatt","probeFailed":"A teszt nem sikerült: {reason}","discoverTitle":"Modellek ezen a végponton","discoverHint":"Válaszd ki a regisztrálandó modelleket. A már hozzáadottak zárolva maradnak.","discoverEmpty":"Ez a végpont nem adott vissza modellt.","discoverAlreadyAdded":"Hozzáadva","discoverSelectAll":"Összes kijelölése","modelsAdded":"{count} modell hozzáadva","getApiKey":"Szerezd API kulcsot","deleteKeyConfirm":"Törölni ezt a kulcsot? Ezt nem lehet visszafordítani.","checkAll":"Nézd meg mindet","checking":"Ellenőrizem...","editLabel":"Szerkesztés címke","saveLabel":"Mentési címke","unifiedKeyDescBefore":"Használd ezt OpenAI","unifiedKeyDescAfter":"; hitelesíti a kéréseket erre a proxyre.","serverUnreachableBefore":"Nem tudom elérni a szervert","serverUnreachableAfter":". Győződj meg róla, hogy a háttérrendszer fut. Az NPM futtatása a fejlesztő mindkettőt indítja, és a szerver naplói nyomtatást a szerver előtag alatt.","paneProviderKey":"Szolgáltatókulcs","paneImportFile":"Fájl importálása","paneCustomEndpoint":"Egyedi végpont","platform":"Platform","hideAdded":"Hozzáadott szolgáltatók elrejtése","apiToken":"API token","keyOptionalPlaceholder":"Opcionális","bearerTokenPlaceholder":"Viselő zsetont","pasteKeyPlaceholder":"Itt illesztő kulcs","pasteSeveral":"Több beillesztése","keyOptionalHint":"Opcionális: hagyja üresen az anonim ingyenes szinthez (IP-nként korlátozott), vagy illessze be saját kulcsát a fiókja használatához.","enable":"Engedélyezd","noProviderKeys":"Még nincs szolgáltató kulcs. Teszünk hozzá egyet fentebb, hogy elkezdd az útvonaltervezést.","filterPlaceholder":"Szűrőszolgáltatók vagy kulcsok","filterAll":"Mind","filterHealthy":"Egészséges","filterIssues":"Kérdések","filterDisabled":"Mozgáskorlátozott","noFilterMatch":"Egyetlen szolgáltató sem egyezik a szűrőiddel.","providerCountSummary":"{providers} szolgáltatók · {keys} kulcsok","summaryHealthy":"{count} egészséges","summaryIssueOne":"{count} probléma","summaryIssueOther":"{count} problémák","providerActions":"Szolgáltatói intézkedések","routeViaProxy":"Útvonal proxyn keresztül","checkNow":"Ellenőrizd most","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":"Konfigurálható a","proxyEnvHintAfter":"környezeti változó (elsőbbséget élvez). Hagyj üres gombot a letiltáshoz. Példák:","importKeys":"Szolgáltató kulcsok importálása","importKeysDescription":"Tölts fel .env, JSON, JSONC, CSV, Markdown vagy szöveges fájlokat.","importFiles":"Fájlok","importFileCount":"{count} kiválasztva","previewFiles":"Előzetes","previewing":"Előzetes...","selected":"Válogatott","provider":"Szolgáltató","keyName":"Kulcsnév","keyValue":"Kulcsérték","chooseProvider":"Válassz szolgáltatót","noPreviewKeys":"Azokban a fájlokban nem találtak kulcsot.","skippedItems":"Kihagyva:","moreItems":"+{count} még","importSelected":"Import {count}","importing":"Import...","noImportSelection":"Válassz legalább egy sort szolgáltatóval.","duplicate":"Duplikátum","duplicatesFound":"{count} duplikát(ok) észleltek — már léteznek, és kihagyják őket.","importResult":"Importált {imported}; {failed} sikertelen.","importModelCount":"+{count} modell","importResultWithModels":"Importált {imported}; {models} modell regisztrálva; {failed} sikertelen.","confirmRemove":"Megerősíteni?","quotaSignalsTitle":"Kvótajelzések","quotaSignalsEmptyTitle":"Még nincs kvótamegfigyelés","quotaSignalsEmptyDesc":"Ez kitölti a szolgáltatók visszajelzési díjkorlátokat, kvótahibákat vagy validációs jeleket.","quotaKeyRef":"Kulcsfontosságú #{id}","quotaPoolRef":"Medence {pool}","quotaLimit":"Határ","quotaRemaining":"Maradék","quotaReset":"Reset","quotaObserved":"Megfigyelve","tabAgents":"Ügynökök","familyGeminiPro":"Gemini Pro","familyGeminiFlash":"Gemini Flash","familyGeminiFlashLite":"Gemini Flash-Lite","geminiTitle":"Gemini modellek leképezése","geminiDesc":"Rendeld a Gemini Pro, Flash és Flash-Lite neveket az Auto-hoz vagy egy adott katalógusmodellhez.","compatibilityTitle":"Ügynök-kompatibilitás","compatibilityDesc":"Szabályozd az opcionális kompatibilitási felületeket és a Claude Code modellfelderítést.","ollamaMode":"Ollama emuláció","ollamaModeHint":"A nyitott loopback soha nem fogad hitelesítetlen LAN forgalmat.","ollamaOff":"Ki","ollamaLoopback":"Nyitva a loopbacken","ollamaKeyRequired":"API kulcs szükséges","claudeAliases":"Claude Code felderítési aliasok","claudeAliasesHint":"Tedd elérhetővé a claude/<model> aliasokat, hogy az átjáró modellválasztója listázhassa a katalógust.","mcpServer":"MCP-kiszolgáló","mcpServerHint":"Elérhetővé teszi a /mcp végpontot az ügynökklienseknek. Új telepítéseknél alapból ki van kapcsolva.","urlTokensTitle":"Visszavonható URL tokenek","urlTokensDesc":"Csak fejléc nélküli kliensekhez. Az URL tokenek kiszivároghatnak az előzményekbe és a naplókba, ezért vond vissza őket, ha már nincs rájuk szükség.","urlTokenLabel":"Token címke","createUrlToken":"Token létrehozása","urlTokenOnce":"Másold ki ezt a tokent most. Többé nem jelenik meg.","revoked":"Visszavonva","revoke":"Visszavonás","modelScope":"Modellek köre","modelScopeDesc":"Korlátozza ezt a kulcsot adott modellazonosítókra. Minden más modellnél a router kihagyja ezt a kulcsot.","modelScopeAdd":"Írjon be egy modellazonosítót, majd nyomjon Entert","modelScopeEmpty":"Nincs beállított kör — ez a kulcs a szolgáltató összes modelljét kiszolgálja.","modelScopeClear":"Kör törlése","modelScopeBadgeOne":"korlátozva · 1 modell","modelScopeBadgeOther":"korlátozva · {count} modell","modelPicker":{"title":"Mely modelleket szolgálja ki ez a kulcs?","hint":"A(z) {provider} kulcs hozzáadva, és jelenleg az alábbi összes modellt kiszolgálja. Vegye ki a pipát azoknál, amelyeket ez a kulcs nem használhat — ezeknél a router kihagyja.","count":"{selected} / {total} kijelölve","allNote":"Minden ki van jelölve — semmi sem kerül mentésre, és a katalógusba később felvett modellek is használni fogják ezt a kulcsot.","subsetNote":"Ez a kulcs a kijelölt modellekre lesz korlátozva. Ezt később a kulcs sorában módosíthatja.","skip":"Most nem","scopedOne":"A kulcs 1 modellre korlátozva","scopedOther":"A kulcs {count} modellre korlátozva","allSaved":"Key serves every catalog model"},"cpTitle":"Kliensprofilok","cpDesc":"Kliensenkénti API-kulcsok, mindegyikhez saját rendszerprompt, amelyet a szerver mindig alkalmaz.","cpEmpty":"Még nincsenek kliensprofilok.","cpNameLabel":"Név","cpNamePlaceholder":"pl. Támogatási bot","cpPromptLabel":"Rendszerprompt (opcionális)","cpPromptPlaceholder":"Utasítások, amelyeket a szerver minden, ezzel a kulccsal indított kérés elé illeszt.","cpCreate":"Profil létrehozása","cpRotate":"Kulcs cseréje","cpKeyOnce":"Másolja ki most ezt a kulcsot — többé nem jelenik meg.","cpEnabledAria":"Profil engedélyezve","selectKey":"Válaszd ki ezt a kulcsot","bulkSelected":"{count} kiválasztva","bulkEnable":"Összes engedélyezése","bulkDisable":"Összes letiltása","bulkDelete":"Összes törlése","bulkDeleteConfirm":"{count} törlése?","bulkResult":"Frissítve {done}; {failed} sikertelen.","bulkDeleteResult":"Törölve {done}; {failed} sikertelen.","testProxy":"Test","testingProxy":"Testing…","proxyTestOk":"Proxy works — {ms}ms round trip","proxyTestFail":"Proxy failed: {reason}","editKey":"Kulcs szerkesztése","editPlatformLocked":"A szolgáltató és a végpont a létrehozás után nem módosítható.","editCredentialHint":"A jelenlegi kulcs megtartásához hagyja üresen.","editCredentialPartsRequired":"Adja meg a fiókazonosítót és az API-jogkivonatot is.","editModels":"Modellek szerkesztése","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":"Egyéni modell hozzáadása","modelId":"Modell azonosító","modelIdRequired":"A modell azonosítója kötelező","modelDisplayName":"Megjelenítendő név","modelContextWindow":"Kontextus ablak (token)","modelRateLimits":"Sebességkorlátok (opcionális)","modelSupportsTools":"Eszközhívások támogatása","modelSupportsToolsHint":"Engedélyezze, ha a modell képes függvények és eszközök hívására","modelSupportsVision":"Képfelismerés támogatása","modelSupportsVisionHint":"Engedélyezze, ha a modell elfogad képi bemenetet","createModel":"Modell létrehozása","modelAddedSuccess":"Egyéni modell sikeresen hozzáadva","modelAddFailed":"Nem sikerült hozzáadni az egyéni modellt","testModel":"Tesztelés","testingModel":"Tesztelés…","testPassedShort":"Sikeres","testFailedShort":"Sikertelen","testPassed":"A modellteszt sikeres volt {latency}ms alatt","testFailed":"A modellteszt sikertelen","testThrottled":"Kérjük, várjon {seconds} másodpercet a modell újratesztelése előtt.","noModelsForProvider":"Nincsenek konfigurált modellek ennél a szolgáltatónál.","testModels":"Modellek tesztelése","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":"Korlátlan","capEditHint":"Caps reset at the next period boundary, 00:00 UTC. Leave blank for unlimited.","monthlyUsageLine":"{requests} kérés, {tokens} token ebben a hónapban","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:`egészséges`,rateLimited:`Korlátozott díj`,invalid:`érvénytelen`,error:`hiba`,unchecked:`ellenőrizetlenül`},analytics:{title:`Elemzés`,description:`Kérjen mennyiséget, késleltetést, token használatát és hibákat.`,range24h:`24 óra`,range7d:`7d`,range30d:`30d`,range90d:`90d`,requests:`Kérések`,successRate:`Sikerességi arány`,inputTokens:`Bemeneti tokenek`,outputTokens:`Kimeneti tokenek`,avgLatency:`Átlagos késleltetés`,p95Latency:`P95 késleltetés`,avgTtft:`Átlag TTFT`,estSavings:`Becsült megtakarítás`,requestsByProvider:`Szolgáltatók által kérvények`,avgLatencyByProvider:`Átlagos késleltetés szolgáltató szerint`,ttftByProvider:`Az első token időpontja szolgáltató szerint`,ttftEmpty:`Még nincs idő az első jel felvételére.`,requestsOverTime:`Kérések az idővel`,tokensOverTime:`Tokenek az idővel`,byModel:`Modell szerint`,byPlatform:`Platformon keresztül`,errors:`Hibák`,errorDistribution:`Hibaeloszlás`,pinnedRequests:`Kitűzött kérések`,pinnedHonored:`Tisztelet`,fallbackAttempts:`Tartalék kísérletek`,savingsHint:"Valójában az elmúlt {range} alatt ${actual}-t mentettél. Ez az, amennyibe kerültek volna ugyanazok a tokenek fizetős API-kon, modellenkénti árakon. A megjelenített szám az utolsó {span} adat ütemét mutatja elő, hogy teljes 30 napig tart.",savingsHintExact:"Valójában az elmúlt {range} alatt ${actual}-t mentettél. Ez az, amennyibe kerültek volna ugyanazok a tokenek fizetős API-kon, modellenkénti árakon. A megjelenített szám a valós 30 napos összértéked.",requestsHintPinned:`{pinned} kérések közül egy adott modellt név szerint rögzítettek. {honored} a tűzött modell szolgálta ki; {failed} átcsúszott egy másik helyre. A többieket automatikusan irányították.`,requestsHintAuto:`Ebben az időszakban minden kérést automatikusan irányítottak; egyetlen ügyfél sem rögzített egy adott modellt név szerint.`,requestsHintTypes:`{chat} csevegés és {embedding} beágyazási kérések.`,rangeLabel24h:`24 óra`,rangeLabel7d:`7 nap`,rangeLabel30d:`30 nap`,rangeLabel90d:`90 nap`,spanDays:`{count} napok`,spanHours:`{count} óra`,latencyMs:`Késleltetés (ms)`,latency:`Késleltetés`,pinned:`Letűzve`,inTokens:`Tokenekben`,outTokens:`Kieső tokenek`,saved:`Megmentetve`,message:`Üzenet`,time:`Idő`,perModelBreakdown:`Modellenkénti bontás`,usageByKey:`Használat kulcsok szerint`,keyColumn:`Kulcs`,keyLabelFallback:`Kulcsfontosságú #{id}`,errorsByProvider:`Hiba szolgáltatónként`,recentErrors:`Legutóbbi hibák`,noErrors:`Nincs hiba`,recentCalls:`Legutóbbi hívások`,clientIp:`Kliens IP`,clientAgent:`Kliens alkalmazás`,requestedModelHint:`Kértem {model}, tartalék kézbe szállítva`,attempts:`Próbálkozások`,filterAll:`Mind`,filterCanceled:`Megszakítva`,providerBreakdown:`Szolgáltatónkénti bontás`,tokensPerSec:`Tok/s`,allProviders:`Minden szolgáltató`,requestDetailTitle:`Kérés #{id}`,failoverLadder:`Failover létra`,failoverLadderHint:`Minden ugrásnál ez a kérés sorrendben haladt a tartalék láncon.`,noAttemptTrace:`Ehhez a kéréshez nem figyeltek kísérleti nyomot.`,keyOrdinal:`Kulcsfontosságú #{n}`,keyBadge:`Kulcs #{n}`,attemptTimingHint:`A kérelmű elejétől kezdj el · Próbálkozás időtartama`,requestedModel:`Kért modell`,ttft:`TTFT`,requestsByAgent:`Kérések ügynökönként`,sortBy:`Rendezés: {column}`,sortHint:`A rendezés a betöltött {count} sorra vonatkozik`,cacheHitRate:`Gyorsítótár-találati arány`,cacheSavedTokens:`{tokens} token megtakarítva`,cacheHitRateHint:`{hits} találat és {misses} tévesztés a szerver indítása óta · {requests} szolgáltatóhívás megspórolva`},logs:{title:`Napló`,description:`A szerver élő naplója. Az új bejegyzések folyamatosan érkeznek, amíg az oldal nyitva van.`,pause:`Szünet`,resume:`Folytatás`,clear:`Napló törlése`,cleared:`A szerver naplója törölve`,levelFilter:`Naplószintek`,levels:{debug:`Debug`,info:`Infó`,warn:`Figyelmeztetés`,error:`Hiba`},countsHint:`A számok a szerver teljes naplópufferére vonatkoznak, nem csak a szűrőknek megfelelő bejegyzésekre.`,searchPlaceholder:`Keresés a naplóüzenetekben…`,jumpToLatest:`Ugrás a legújabbra`,showMore:`Több megjelenítése`,showLess:`Kevesebb megjelenítése`,buffered:`{count} bejegyzés látható a legfeljebb {max} pufferelt bejegyzésből`,emptyTitle:`Még nincs naplóbejegyzés`,emptyDescription:`A bejegyzések itt jelennek meg, ahogy a szerver írja őket. Ha kimenetre számított, bővítse a szint-, szolgáltató- vagy keresési szűrőket.`,noLevelsTitle:`Nincs kiválasztott szint`,noLevelsDescription:`A naplókimenet megtekintéséhez kapcsoljon be legalább egy szintet.`,loadFailed:`Nem sikerült betölteni a szerver naplóját.`},playground:{title:`Játszótér`,description:`Küldj egy beszélgetés befejezést a routeren keresztül, és nézd meg, melyik szolgáltató szolgálja ki.`,autoModel:`Automatikus (tartalék lánc)`,fusionModel:`Fúzió (többmodelles szintézis)`,selectModel:`Kiválasztott modell`,searchModels:`Keress modelleket...`,noModelsFound:`Modellek nem találtak`,send:`Elküldöm`,sending:`Küldve...`,clear:`Tiszta`,inputPlaceholder:`Írj egy üzenetet... (⏎ küldéshez, ⇧⏎ az új vonalhoz)`,emptyTitle:`Küldj üzenetet, hogy elkezdjék.`,emptyDescription:`Használva {model}. A fenti választóban cserélj modelleket.`,noModels:`Még nincsenek modellek. Adj hozzá egy API kulcsot a Kulcsok oldalra, hogy feltöltsd ezt a listát.`,copyReply:`Válasz másolása`,fallback:`Tartalék`,fallbacks:`Tartalék`,fusionPanel:`Panel`,fusionJudge:`Bíró`,fusionTrace:`{count} modellválaszok`,fusionFailed:`Nincs válasz`,fusionJudgeSynth:`szintetizálták a végső választ`,errorPrefix:`Hiba:`,systemPromptLabel:`Rendszerprompt`,systemPromptPlaceholder:`Opcionális. Rendszerüzenetként küldték el a csevegés előtt.`,showSettings:`Beállítások megjelenítése`,hideSettings:`Beállítások elrejtése`,samplingHeading:`Mintavételezés`,samplingHelp:`Kikapcsolt állapotban a szolgáltató saját alapértelmezése érvényes. Csak a bekapcsolt vezérlők kerülnek elküldésre.`,samplingDefault:`Alapértelmezés`,temperature:`Hőmérséklet`,topP:`Top P`,maxTokens:`Max. tokenszám`,errorTitle:`Kérés meghiúsult`,attach:`Fájlok csatolása`,attachTooMany:`Üzenetenként legfeljebb {count} fájlt csatolhatsz.`,attachTooLarge:`A(z) {name} túl nagy. A korlát {max}.`,attachUnsupported:`A(z) {name} nem támogatott. Csatolj képeket (PNG, JPEG, WebP, GIF) vagy szövegfájlokat (TXT, MD, CSV, JSON, LOG).`,attachFailed:`A(z) {name} nem olvasható.`,noVisionBadge:`Nincs kép`,visionWarning:`A(z) {model} nem fogad képeket. Válassz képfeldolgozó modellt vagy az Automatikus lehetőséget.`,dictate:`Diktálás`,dictationStop:`Felvétel leállítása`,dictationTranscribing:`Átírás…`,dictationUnavailable:`Adjon hozzá hangmodell-szolgáltatókat a diktálás használatához.`,dictationModel:`Diktálási modell`,dictationFailed:`Az átírás nem sikerült: {reason}`,artifactOpen:`Előnézet megnyitása`,artifactPreview:`Előnézet`,artifactCode:`Kód`,artifactClose:`Előnézet bezárása`,artifactDownload:`Letöltés`,artifactReload:`Előnézet újratöltése`,artifactHtml:`HTML-oldal`,artifactSvg:`SVG-kép`,artifactLines:`sor`,artifactResize:`Előnézet átméretezése`},playgroundSessions:{heading:`Beszélgetések`,newConversation:`Új beszélgetés`,showSidebar:`Beszélgetések megjelenítése`,hideSidebar:`Beszélgetések elrejtése`,empty:`Még nincsenek mentett beszélgetések.`,untitled:`Névtelen beszélgetés`,rename:`Átnevezés`,renamePlaceholder:`Beszélgetés neve`,messageCount:`{count} üzenet`,justNow:`az imént`,minutesAgo:`{count} perce`,hoursAgo:`{count} órája`,daysAgo:`{count} napja`,loadFailed:`Nem sikerült megnyitni ezt a beszélgetést.`,renameFailed:`Nem sikerült átnevezni ezt a beszélgetést.`,deleteFailed:`Nem sikerült törölni ezt a beszélgetést.`,actions:`Beszélgetés műveletei`,newChat:`Új csevegés`},embeddings:{title:`Modellek`,description:`Az embeddingek csak egy családon belül failover-olnak: ugyanazt a modellt, amelyet egy másik szolgáltató szolgál. A különböző modellek vektorai nem kompatibilisek, így a router soha nem cserél modelleket veled.`,defaultBadge:`Alapértelmezett · Autó`,makeDefault:`Alapértelmezett alapértelmezést`,moveUp:`Lépj előre`,moveDown:`Mozgás lejjebb`,usageToday:`{count} ma a követelmény`,usageMonth:`{count} tok ebben a hónapban`,autoDescription:`model: "auto" POST /v1/embeddings útvonalakon az alapértelmezett családhoz. Egy család (vagy szolgáltató modellazonosító) elnevezése kitűzi azt a családot; A benne lévő szolgáltatók sorrendben vannak.`,unsavedChanges:`Mentetlen változtatások`,saveChanges:`Mentési változtatások`,savingChanges:`Megmentem...`,tokMax:`{tokens} tok max`,emptyTitle:`Még nincsenek beágyazási modellek`,emptyDesc:`A beágyazási családok itt akkor jelennek meg, amikor hozzáadsz egy szolgáltatókulcsot, amely támogatja a beágyazásokat.`,dragToReorder:`Húzás az újrarendelési szolgáltatóhoz`},fusion:{title:`Fúzió`,description:`Egy modelljés párhuzamosan válaszol, majd egy bíró szintetizál egy erősebb választ. Használd úgy, hogy a modell API-t "fúziónak" hívod.`,panelSource:`Panel forrás`,panelSourceHelp:`Honnan jönnek a panel modellek, ha egy kérés nem határozza meg a sajátját.`,mode:{auto:`Automatikus (Tartalék lánc)`,autoHelp:`Válassz változatos modelleket a Fallback Chain-ből, amelyeket az aktív útvonaltervezési stratégiád alapján rangsorolsz.`,explicit:`Explicit panel`,explicitHelp:`Mindig használd az alábbi konkrét modelleket.`},panelModels:`Panel modellek`,selectedCount:`{count} {max} kiválasztott`,noModels:`Még egyetlen modell sem csatlakozott. Adj hozzá egy API kulcsot, majd engedélyezd a modelleket a Tartalék Láncban.`,panelSize:`Panel mérete`,panelSizeHelp:`Hány különböző modellt kell automatikusan választani (1–{max}).`,judge:`Bírói modell`,judgeHelp:`Az a modell, amely a panel válaszait egy szintetizálja. Az autó a legmagasabb rangú elérhető modelledet használja.`,judgeAuto:`Autó (elérhető legjobb hely)`,strategy:`Stratégia`,strategySynthesize:`Szintetizálj — egyesítsd a panelt egyetlen válaszba`,strategyBestOf:`Legjobb — adja vissza az egyetlen legerősebb választ (nincs bírói döntés)`,strategySynthesizeShort:`Szintetizálni`,strategyBestOfShort:`Legjobb`,exposePanel:`Expose panel részletei`,exposePanelHelp:`Csatold minden modell válaszát és a bírói metaadatokat egy x_fusion mező alá a válaszban.`,howToUse:`Hogyan kell használni`,howToUseHelp:`Küldj egy normál chatkérést a modell "fusion"-val. Ezek az alapbeállítások; bármilyen kérés felülírhatja őket egy "fúziós" mezővel.`,unsavedChanges:`Mentetlen változtatások`,save:`Mentés`,searchPlaceholder:`Search models…`,providerFilterLabel:`Filter by provider`,providerAll:`All providers`,noMatch:`No models match your search.`},premium:{title:`Prémium`,description:`Az élő modellkatalógus minden eszközön.`,loading:`Betöltés...`,checkForUpdates:`Ellenőrizd a frissítéseket`,syncing:`Szinkronizálok...`,catalogFeed:`Katalógus hírfolyam`,liveFeed:`Élő közvetítés`,monthlySnapshot:`Havi pillanatkép`,lastChecked:`Utoljára ellenőrizve: {when}`,liveDescription:`Új ingyenes modellek, kvótaváltozások és képességjavítások érkeznek itt néhány órán belül a szállítás után. Az alkalmazás naponta kétszer automatikusan ellenőrződik; Semmi dolgom.`,snapshotDescription:`Ingyenes szint: a katalógus havonta frissül, naponta kétszer automatikusan ellenőrizve. A Premium átvált az élő hírfolyamra, amit 2-3 naponta frissítenek.`,lastSyncProblem:`Utolsó szinkronizációs probléma: {error}`,license:`Engedély`,planAnnual:`Premium Annual`,planLifetime:`Prémium élettartam`,expired:`Lejárt`,inactive:`Inaktív`,lifetimeNote:`Életre szóló jogosítvány: soha nem jár le.`,renewsOn:`Megújítsa {date}.`,willNotRenew:`Nem fogja megújítani. Premium {date}-ig, majd ez a telepítés visszatér az ingyenes havi katalógusba.`,keyInactive:`Ez a kulcs már nem aktív. Az alkalmazás folyamatosan dolgozik az ingyenes havi katalóguson.`,manageSubscription:`Előfizetés kezelése`,openingPortal:`Nyitás...`,removeKey:`Távolítsa el a kulcsot erről az eszközről`,manageHint:`Előfizetés kezelése megnyitja Stripe számlázási portálját: töröld, frissítsd a kártyádat, vagy töltsd le a számlákat. A kulcs eltávolítása csak ezt az eszközt deaktiválja; A vásárlásod érintetlen.`,licenseKey:`Licenckulcs`,licenseKeyPlaceholder:`fla_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`,activate:`Aktiválás`,activating:`Aktiválva...`,keyHint:`A kulcsod a vásárlási e-mailben és a fizetés utáni oldalon található. Elvesztetted?`,recoverKey:`Szerezd vissza a weboldalon`,upsellTitle:`Élj évi 19 dollárért`,upsellDescription:`Új ingyenes modellek már abban a pillanatban, amikor megvannak, nem pedig 30 nappal később. Egy kulcs, minden eszköz. Bármikor lemondhatod; A router örökre szabad marad.`,goPremium:`Go Premium`,bundled:`csomagolt`,planGeneric:`Prémium`},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:`Valami rosszul ment`,boundaryDescription:`A műfal váratlan hibát talált. Az adataid biztonságban vannak. Próbáld meg újra, vagy menj vissza a modellek oldalára.`,tryAgain:`Próbáld meg újra`,goHome:`Vissza a modellekhez`},notFound:{title:`Oldal nem talált meg`,description:`Ez az oldal nem létezik, vagy áthelyezett.`},setup:{title:`Kezdés`,subtitle:`Három lépés az első kérés továbbításához.`,progress:`{done} of {total}`,step1Title:`Szolgáltatókulcs hozzáadása`,step1Desc:`Legalább egy szolgáltatói fiókot kapcsolj össze. Ingyenes kulcsok működnek.`,step1Cta:`Kulcsok hozzáadása`,step2Title:`Küldj tesztkérést`,step2Desc:`Válassz ki bármelyik modellt a Játszótérben, és köszönj neki.`,step2Cta:`Nyílt Játszótér`,step3Title:`Kapcsold be az alkalmazásodat`,step3Desc:`Használd az egységes API kulcsodat bármely OpenAI-kompatibilis klienshez.`,copyKey:`Átmásolom API kulcsot`,copyUrl:`Másolat URL`,copiedKey:`API kulcsot másoltak a clipboardra`,copiedUrl:`Az alap URL lemásolva a clipboardra`},palette:{title:`Parancs paletta`,placeholder:`Keresőoldalak, modellek, akciók...`,empty:`Nincs eredmény`,groupPages:`Oldalak`,groupActions:`Akciók`,groupModels:`Modellek`,toggleTheme:`Sötét mód kapcsolása`},validation:{required:`Kötelező`,url:`Írj be egy érvényes URL http://-vel vagy https://`,email:`Írj meg érvényes e-mail címet`,passwordMin:`Legalább {min} karakter`},agents:{title:`Kódoló ügynökök`,description:`Kösd össze a kódolóeszközöket egyetlen ingyenes modellátjáróval, generált, mentésbiztos konfigurációval.`,apiKey:`API kulcs`,quickstartTitle:`Gyors kezdés`,quickstart:`A leggyorsabb út: állítsd be a Claude Code-ot az élő katalógusból.`,currentKey:`Jelenlegi egységes kulcs:`,seenRecently:`Nemrég látott`,setupLabel:`Automatikus beállítás`,setupHint:`Megírja helyetted az eszköz konfigurációs fájlját, erre az átjáróra állítva.`,setupGuideHint:`Kiírja az eszköz beállítási lépéseit; nem ír fájlt.`,manualLabel:`Kézi csatlakozás`,manualHint:`Alap-URL és kulcs az eszköz saját beállításaihoz.`,endpoint:`Végpont`,documentation:`Dokumentáció`,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:`Egy mindig elérhető személyes asszisztens, amely a saját gépedről válaszol a WhatsApp, a Telegram, a Discord és más alkalmazások üzeneteire.`,hermes:`A Nous Research önfejlesztő ügynöke tartós memóriával és készségekkel, terminálban vagy csevegőalkalmazásokban.`,pi:`Minimalista terminálügynök, amelyet saját bővítményekkel, készségekkel és promptsablonokkal alakíthat.`}},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:`Lánc átnevezése`,renameConfirm:`Lánc "{oldName}" átnevezése "{name}"-re? A(z) auto:{oldName}-t hívó ügyfeleknek át kell térniük auto:{name}-re.`,renamePlaceholder:`Új láncnév`,renameFailed:`Nem sikerült átnevezni a láncot.`},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:`Model`,playground:`Taman bermain`,keys:`Kunci`,analytics:`Analisis`,premium:`Premi`,upgrade:`Tingkatkan`,settings:`Pengaturan`,signOut:`Keluar`,openMenu:`Buka menu navigasi`,switchLight:`Beralih ke tema terang`,switchDark:`Beralih ke tema gelap`,switchToChinese:`Beralih ke bahasa Cina`,switchToEnglish:`Beralih ke bahasa Inggris`,modelsMenu:`Telusuri jenis model`,agents:`Agen`,logs:`Log`,analyticsMenu:`Halaman analisis`,notifications:`Notifikasi`,noNotifications:`Belum ada notifikasi`},auth:{createYourAccount:`Buat akun Anda`,signIn:`Masuk`,email:`Surel`,password:`Kata sandi`,emailPlaceholder:`kamu@example.com`,passwordPlaceholderSetup:`minimal 8 karakter`,passwordPlaceholderLogin:`kata sandi Anda`,setupDescription:`Tetapkan email dan kata sandi yang akan melindungi dasbor ini.`,loginDescription:`Masuk untuk mengelola kunci, perutean, dan analitik Anda.`,createAccount:`Buat akun`,creating:`Membuat…`,signingIn:`Masuk…`,loading:`Memuat…`,newPasswordAutoComplete:`kata sandi baru`,currentPasswordAutoComplete:`kata sandi saat ini`,serverUnreachableBefore:`Tidak dapat menjangkau server. Pastikan backend berjalan (`,serverUnreachableAfter:`).`,setupCode:`Kode pengaturan`,setupCodePlaceholder:`kode dari log server`,setupCodeHint:`Menyiapkan dari perangkat lain memerlukan kode satu kali yang dicetak di log server saat startup.`,changePassword:`Ubah kata sandi`,changeEmail:`Ubah e-mail`,forgotPassword:`Lupa kata sandi?`,currentPassword:`Kata sandi saat ini`,newPassword:`Kata sandi baru`,newEmail:`E-mail baru`,resetCode:`Kode reset`,resetCodePlaceholder:`kode dari log server`,resetCodeHint:`Kode ada di log server. Kode tidak pernah dikirim lewat email.`,forgotPasswordDescription:`Klik tombol di bawah untuk membuat kode reset. Kode ditulis ke log server, tidak pernah dikirim lewat email. Masukkan di sini untuk menyetel kata sandi baru.`,requestResetCode:`Kirim kode reset`,requestingResetCode:`Mengirim…`,resetPassword:`Reset kata sandi`,resettingPassword:`Mereset…`,changingPassword:`Mengubah…`,changingEmail:`Mengubah…`,backToLogin:`Kembali ke masuk`,passwordChanged:`Kata sandi berhasil diubah.`,emailChanged:`E-mail berhasil diubah.`,passwordReset:`Kata sandi telah direset. Silakan masuk.`,resetCodeDockerHint:`Menjalankan di Docker? Kode ada di log container: docker logs <container>.`,desktopSessionFailed:`Dasbor tidak dapat masuk ke server lokal. Tutup SRouter lalu buka lagi.`},common:{save:`Simpan`,saving:`Menyimpan…`,cancel:`Batalkan`,discard:`Buang`,delete:`Hapus`,confirm:`Konfirmasikan`,copy:`Salin`,copied:`Disalin`,copyFailed:`Gagal menyalin — pilih teksnya dan salin secara manual`,show:`Tunjukkan`,hide:`Sembunyikan`,apply:`Terapkan`,applied:`Diterapkan`,applying:`Melamar…`,active:`Aktif`,inactive:`Tidak aktif`,never:`tidak pernah`,loading:`Memuat…`,error:`Kesalahan`,noData:`Belum ada datanya`,unsavedChanges:`Perubahan yang belum disimpan`,saveChanges:`Simpan perubahan`,remove:`Hapus`,unknownError:`Kesalahan tidak diketahui`,model:`Model`,provider:`Penyedia`,success:`Sukses`,failures:`Kegagalan`,dismiss:`Singkirkan`,status:`Status`},settings:{title:`Pengaturan`,language:`Bahasa`,theme:`Tema`,themeSystem:`Sistem`,themeLight:`Terang`,themeDark:`Gelap`,searchLanguage:`Cari bahasa…`,noLanguages:`Tidak ada bahasa yang ditemukan`,sections:`Bagian pengaturan`,sectionGeneral:`Umum`,sectionCompression:`Kompresi`,sectionAdvanced:`Lanjutan`,sectionPreview:`Pratinjau`,generalDescription:`Bahasa dan tampilan dasbor ini.`,advancedDescription:`Ambang batas dan sakelar pengaman untuk alur kompresi.`,compressionTitle:`Kompresi prompt`,compressionDescription:`Kurangi ukuran permintaan sebelum perutean sambil mempertahankan kode, error, path, angka, dan definisi alat.`,compressionHelp:`Menulis ulang setiap permintaan sebelum dikirim ke penyedia agar memakai lebih sedikit token. Kode, error, path file, dan angka dilindungi, dan setiap penulisan ulang yang merusaknya akan dibuang.`,compressionMode:`Mode`,compressionModeHelp:`Nonaktif mengirim permintaan apa adanya. Tanpa kehilangan hanya menghapus teks yang terduplikasi dan mubazir. Standar juga memperpendek output alat. Agresif turut memadatkan giliran percakapan lama.`,compressionOff:`Nonaktif`,compressionLossless:`Tanpa kehilangan`,compressionStandard:`Standar`,compressionAggressive:`Agresif`,syncSchedule:`Sinkron Model`,syncScheduleHint:`Seberapa sering katalog model diperbarui dari server`,syncIntervalOff:`Mati`,syncInterval6h:`Setiap 6 jam`,syncInterval12h:`Setiap 12 jam`,syncInterval24h:`Setiap 24 jam`,compressionLossy:`Dengan kehilangan`,compressionEngines:`Mesin`,compressionEnginesHelp:`Setiap mesin adalah satu langkah penulisan ulang. Mode menentukan mesin mana yang berjalan; mematikan salah satunya di sini membuatnya tidak dipakai pada mode mana pun.`,engineDedup:`Blok berulang`,engineDedupHelp:`Mengganti blok teks yang sudah muncul sebelumnya dalam percakapan dengan rujukan singkat ke blok itu.`,engineLite:`Pembersihan spasi`,engineLiteHelp:`Memangkas spasi di akhir baris, menggabungkan baris kosong berulang, dan membuang pesan sistem yang terduplikasi.`,engineReadLifecycle:`Pembacaan file yang tergantikan`,engineReadLifecycleHelp:`Mengganti hasil pembacaan file sebelumnya dengan sebuah catatan setelah file yang sama dibaca atau diedit lagi.`,engineToolfilter:`Filter output alat`,engineToolfilterHelp:`Memperpendek output perintah dan alat seperti build, pengujian, dan instalasi. Baris error dan stack trace selalu dipertahankan.`,engineJsoncompact:`Tabel JSON`,engineJsoncompactHelp:`Menyandikan ulang array JSON panjang yang berbagi field sama menjadi tabel ringkas. Dapat dibalik, jadi tidak ada yang hilang.`,engineRelevance:`Filter relevansi`,engineRelevanceHelp:`Membuang kalimat yang paling tidak terkait dengan pesan terbaru saat sebuah pesan melebihi batas ukurannya.`,engineAging:`Giliran lama`,engineAgingHelp:`Memadatkan giliran percakapan di luar beberapa yang terbaru menjadi ringkasan singkat yang mempertahankan path, error, dan keputusan.`,engineHardBudget:`Batas atas token`,engineHardBudgetHelp:`Membuang baris yang paling tidak bernilai sampai permintaan sesuai target token.`,compressionAutoTrigger:`Picu otomatis di atas estimasi token`,compressionAutoTriggerHelp:`Permintaan yang diperkirakan melebihi jumlah token ini otomatis beralih ke Agresif. Kosongkan untuk menonaktifkan.`,compressionPrefixFreeze:`Bekukan prefiks prompt yang berulang`,compressionPrefixFreezeHelp:`Membiarkan prompt sistem apa adanya setelah teks yang sama terlihat tiga kali, agar caching prompt di sisi penyedia tetap bekerja.`,compressionTrustProjectFilters:`Percayai file filter proyek`,compressionTrustProjectFiltersHelp:`Juga memuat filter output alat dari direktori kerja. Nonaktif secara bawaan, karena sebuah repositori bisa memakainya untuk menyembunyikan output dari model.`,compressionStats:`Ukuran dihemat`,compressionEstimatedTokensSaved:`Estimasi token dihemat`,compressionPreview:`Pratinjau langsung`,compressionPreviewDescription:`Kirim body permintaan melalui alur kompresi untuk melihat apa yang akan diterima penyedia.`,compressionPreviewPlaceholder:`Tempel JSON permintaan atau teks biasa`,compressionRunPreview:`Jalankan pratinjau`,updatesTitle:`Pembaruan`,checkForUpdates:`Periksa pembaruan`,lastChecked:`Terakhir diperiksa: {when}`,currentVersion:`Build saat ini:`,updateAvailable:`Pembaruan tersedia`,changelog:`Yang berubah`,upToDate:`Sudah terbaru`,buildAhead:`Build ini lebih maju dari cabang main resmi.`,buildDiverged:`Build ini telah menyimpang dari cabang main resmi.`,buildUnknown:`Build khusus ini tidak dapat dibandingkan dengan cabang main resmi.`,notGitInstall:`Instalasi ini tidak menyertakan informasi commit.`,checkFailed:`Tidak dapat memeriksa pembaruan.`,contactsGithub:`Pemeriksaan dilakukan secara manual dan menghubungi GitHub.`,autoUpdateCheck:`Pemeriksaan pembaruan otomatis`,autoUpdateCheckHelp:`Memeriksa GitHub sekali sehari untuk rilis baru dan menampilkan pengingat. Nonaktif secara bawaan.`,openReleases:`Buka Rilis GitHub`,restartAfterUpdate:`Mulai ulang SRouter setelah proses build selesai.`},models:{title:`Model`,chatModelsTab:`Model obrolan`,fusionTab:`Fusi`,embeddingsTab:`Penyematan`,imageTab:`Gambar`,videoTab:`Video`,audioTab:`Audio`,imageDesc:`Model pembuatan teks-ke-gambar.`,videoDesc:`Text-to-video generation models.`,audioDesc:`Model teks-ke-ucapan dan ucapan-ke-teks.`,mediaHint:`Hasilkan melalui`,mediaEmpty:`Belum ada model. Mereka menyinkronkan dari katalog.`,ttsHeading:`Teks ke ucapan`,sttHeading:`Pidato ke teks`,sttHint:`Transkripsikan melalui`,sttEmpty:`Belum ada model ucapan-ke-teks. Mereka menyinkronkan dari katalog.`,newBadge:`Baru`,monthlyTokenBudget:`Anggaran token bulanan`,remaining:`tersisa`,used:`digunakan`,usedScopeHint:`Hanya permintaan chat, sejak awal bulan kalender ini, dijumlahkan atas semua model dalam rantai aktif — termasuk endpoint kustom. Lalu lintas yang Anda kirim ke penyedia di luar SRouter tidak dihitung.`,legendRemainingTitle:`Sisa / anggaran bulanan untuk {name} ({platform})`,noPublishedQuota:`+{count} tanpa kuota yang dipublikasikan`,noPublishedQuotaTitle:`Model-model ini tidak memiliki anggaran token bulanan yang terdokumentasi, jadi tidak ada sisa yang bisa ditampilkan.`,of:`dari`,showAllModels:`Tampilkan semua model {count}`,showLess:`Tampilkan lebih sedikit`,vision:`Visi`,visionTitle:`Menerima masukan gambar`,tools:`Alat`,toolsTitle:`Memancarkan panggilan alat terstruktur, sehingga memenuhi syarat untuk permintaan bantalan alat`,retired:`Dihentikan`,penalty:`−Penalti {value}`,obs:`{count} obs`,tokPerMonth:`{count} tok/bln`,rpmLimit:`putaran {count}`,rpdLimit:`{count} rpd`,noKey:`tidak ada kunci`,dragToReorder:`Tarik untuk menyusun ulang`,dragToReorderGroup:`Seret untuk menyusun ulang model`,moveToRank:`Lompat ke peringkat`,providerCount:`Penyedia {count}`,servedBy:`Dilayani oleh {providers}`,viewProviders:`Lihat penyedia`,backToModels:`Kembali ke model`,providersHeading:`Penyedia melayani model ini`,codeSnippetHeading:`Gunakan model ini`,modelNotFound:`Model ini tidak tersedia, atau tidak memiliki penyedia yang dikonfigurasi.`,providerIdsHeading:`Id model penyedia`,providerIdsHint:`Kirim id model terpadu untuk melakukan failover di setiap penyedia, atau id khusus penyedia untuk menyematkan satu penyedia.`,copyModelName:`Salin nama model`,settingsHeading:`Pengaturan penyedia`,settingsHint:`Pengeditan lokal pada model katalog disimpan di seluruh sinkronisasi katalog. Model katalog yang dihapus tetap terhapus sampai Anda menambahkannya lagi melalui konfigurasi.`,catalogModel:`katalog`,customModel:`adat`,discoveredModel:`ditemukan`,localOverride:`penggantian lokal`,displayName:`Nama tampilan`,sizeLabel:`Tingkat kemampuan`,sizeLabelHint:`Frontier/Large/Medium/Small menentukan sumbu intelijen: tingkat yang lebih tinggi selalu mengungguli yang lebih rendah, dan di dalam satu tingkat peringkat intelijen tetap menggeser skor. Model tanpa tingkat yang dikenali mendapat skor terendah pada sumbu ini, tetapi intelijen hanyalah satu dari tiga sumbu — keandalan dan kecepatan yang baik tetap bisa memenangkan rute untuknya.`,sizeLabelNone:`Tidak ada (skor intelijen terendah)`,contextWindow:`Konteks`,inFallback:`Dalam rantai`,saveModelSettings:`Simpan pengaturan model`,aggregateBudget:`{count}/bln`,aggregateBudgetTitle:`Total token gratis per bulan di seluruh penyedia model ini`,rateRpm:`{count} RPM`,rateRpd:`{count} RPD`,rateTitle:`Tarif terbatas — tidak ada anggaran token bulanan tetap`,rateLimitUsage:`{kind} {used}/{limit}`,rateLimitUsageTitle:`Penggunaan batas laju dalam jendela waktu (terpakai / batas) untuk penyedia dengan sisa kapasitas terbanyak`,splitOut:`Jangan gabungkan salinan ini`,splitOutHint:`Berikan salinan penyedia ini entri terpisah daripada menggabungkannya ke dalam model terpadu. Anda dapat menggabungkannya kembali dari halaman salinannya sendiri.`,splitUndo:`Gabungkan kembali`,splitUndoHint:`Salinan ini disimpan terpisah dari model terpadunya. Gabungkan kembali untuk melakukan failover di semua penyedianya lagi.`,splitBadge:`tetap terpisah`,noData:`tidak ada data`,noDataTitle:`Belum ada permintaan yang dicatat — keandalan dan kecepatan tidak diukur untuk penyedia ini.`,bestOfN:`terbaik dari {count}`,perProviderScores:`Skor per penyedia: {list}`,columnModel:`Model`,columnOn:`Aktif`,noModelsBefore:`Tidak ada model yang tersedia. Tambahkan kunci API di`,keysPageLink:`Halaman kunci`,noModelsAfter:`pertama.`,hiddenNoKeys:`Tersembunyi (tanpa kunci): {platforms}`,searchPlaceholder:`Cari model atau penyedia…`,clearSearch:`Hapus pencarian`,ctxAny:`Konteks apa pun`,ctxBadge:`{size} ctx`,ctxTitle:`Jendela konteks`,copyModelId:`Salin id model`,showingCount:`{shown} dari model {total}`,clearFilters:`Hapus filter`,noMatches:`Tidak ada model yang cocok dengan filter Anda.`,noModelsTitle:`Tidak ada model yang dikonfigurasi`,intelligenceRank:`Intelijen`,speedRank:`Kecepatan`,rankHint:`Peringkat dalam katalog — 1 adalah yang terbaik.`,limitRpm:`RPM`,limitRpd:`RPD`,limitTpm:`TPM`,limitTpd:`TPD`,limitRpmHint:`Permintaan per menit. Kosongkan untuk tanpa batas.`,limitRpdHint:`Permintaan per hari. Kosongkan untuk tanpa batas.`,limitTpmHint:`Token per menit. Kosongkan untuk tanpa batas.`,limitTpdHint:`Token per hari. Kosongkan untuk tanpa batas.`,usageThisMonth:`Penggunaan bulanan`,usageEmpty:`Belum ada permintaan bulan ini.`,usageRequestsMonth:`{count} permintaan bulan ini`,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:`Aktifkan atau nonaktifkan semua model yang tampil`,enableAll:`Aktifkan semua`,disableAll:`Nonaktifkan semua`,enableAllHint:`Aktifkan semua model yang tampil, lalu simpan`,disableAllHint:`Nonaktifkan semua model yang tampil, lalu simpan`,enabledOfShown:`{enabled} dari {shown} model yang tampil ada di rantai`},strategies:{explore:`Jelajahi model yang belum terukur (aktif secara bawaan)`,exploreHint:`Secara bawaan: model tanpa data keandalan atau kecepatan mendapat peluang 10% untuk dicoba lebih dulu agar mengumpulkan rekam jejak. Yang dikirim adalah permintaan Anda yang sebenarnya, jadi bisa dijawab oleh model yang belum teruji. Untuk endpoint kustom, pakai «Uji endpoint» di halaman Kunci tanpa memakai lalu lintas nyata.`,keySelection:`Pemilihan kunci`,keySelectionAuto:`Otomatis`,keySelectionLeastRemaining:`Sisa paling sedikit`,keySelectionHint:`Cara memilih di antara beberapa kunci pada penyedia yang sama. Otomatis mempertahankan rotasi saat ini; Sisa paling sedikit mengurutkan kunci berdasarkan kuota yang teramati dan mencoba yang sisanya paling banyak lebih dulu.`,cooldownCeiling:`Cooldown otomatis terlama`,cooldownCeilingHint:`Membatasi berapa lama tebakan router sendiri boleh menyingkirkan pasangan kunci dan model yang gagal. Tangganya biasanya naik 2 mnt, 10 mnt, 1 jam, 24 jam, dan kesalahan kredit atau tingkat menyingkirkan selama sehari. Waktu coba ulang yang disebutkan penyedia tidak pernah dipersingkat.`,cooldownCeilingDefault:`Bawaan (hingga 24 jam)`,cooldownCeiling10m:`10 menit`,cooldownCeiling1h:`1 jam`,cooldownCeiling6h:`6 jam`,moreOptions:`Opsi lainnya`,peakActive:`(jam sibuk)`,peakActiveHint:`Penyesuaian jam sibuk sedang aktif, jadi ini bukan bobot preset itu sendiri: 60% bobot kecepatan telah dipindahkan ke keandalan.`,peakAdjust:`Penyesuaian jam sibuk`,peakAdjustHint:`Mati secara bawaan. Dalam rentang di bawah, memindahkan 60% bobot kecepatan ke keandalan — relai gratis paling padat pada jam itu, sehingga keandalan memprediksi keberhasilan lebih baik daripada throughput mentah. «Tercepat» dan «Paling andal» tidak diubah.`,peakFrom:`Dari`,peakTo:`sampai`,peakTimezoneLabel:`Zona waktu`,peakUseBrowserTimezone:`Pakai zona waktu peramban`,peakTimezoneInvalid:`Zona waktu tidak dikenal.`,peakExemptNote:`Preset ini tidak diubah — ia sudah berada di salah satu ujung pertukaran kecepatan/keandalan.`,title:`Strategi perutean`,description:`Pilih strategi perutean. Dalam mode Manual Anda menyeret untuk mengatur urutan; strategi lainnya dirutekan berdasarkan skor langsung dalam hal keandalan, kecepatan, dan kecerdasan.`,weightsSummary:`keandalan {reliability}% · kecepatan {speed}% · kecerdasan {intelligence}%`,guardrails:`Pagar pembatas`,guardrailsTooltip:`Pagar pembatas yang selalu aktif: ruang kepala bebas kuota × penalti batas tarif langsung. Di bawah 1,0 berarti model ditahan.`,scoreTooltip:`Skor perutean akhir = rata-rata tertimbang ketiga sumbu, dikalikan dengan pagar pembatas. Rute yang lebih tinggi terlebih dahulu.`,modeManualHint:`Mode manual: permintaan mengikuti urutan di bawah ini, dari atas ke bawah. Tarik untuk menyusun ulang.`,modeScoreHint:`Skor diperbarui dari lalu lintas langsung. Urutan di bawah ini adalah bagaimana permintaan dirutekan saat ini.`,manual:`petunjuk`,manualBlurb:`Rutekan sesuai urutan yang Anda tetapkan di bawah. Seret pegangan untuk menyusun ulang. Tidak ada skor; rantai diikuti dari atas ke bawah.`,balanced:`Seimbang`,balancedBlurb:`Keandalan memimpin (50%), dengan kecepatan dan kecerdasan memiliki bobot yang sama (masing-masing 25%). Standar serba masuk akal.`,smartest:`Paling cerdas`,smartestBlurb:`Lebih suka model paling mumpuni yang masih berfungsi. Kecerdasan 55%, keandalan 35%, kecepatan 10%.`,fastest:`Tercepat`,fastestBlurb:`Lebih suka model tercepat yang masih berfungsi. Kecepatan 55%, keandalan 35%, kecerdasan 10%.`,reliable:`Paling dapat diandalkan`,reliableBlurb:`Maksimalkan tingkat keberhasilan di atas segalanya. Keandalan 70%, kecepatan dan kecerdasan masing-masing 15%.`,custom:`Adat`,customBlurb:`Atur keseimbangan keandalan, kecepatan, dan kecerdasan Anda dengan penggeser. Mesin yang sama dengan preset, hanya bobot Anda.`,adjust:`Sesuaikan`,customWeights:`Bobot khusus`,customWeightsHelp:`Penggeser bersifat independen; membagikan saldo otomatis hingga 100%.`,weightReliability:`Keandalan`,weightSpeed:`Kecepatan`,weightIntelligence:`Intelijen`,weightRequired:`Setidaknya satu bobot harus di atas nol.`,scoreColumn:`Skor`},penaltyInspector:{title:`Tekanan router`,subtitle:`Penalti, cooldown, dan kegagalan dari {minutes} menit terakhir`,rowCount:`{count} aktif`,offChain:`lepas rantai`,penaltyValue:`Penalti {value}`,factor:`skor x{factor}`,noCooldown:`Tidak ada cooldown`,cooldownChip:`{key} - {time}`,resetCooldown:`Reset cooldown`,clearAll:`Hapus semua`,clearAllHint:`Cabut semua cooldown, penalti, dan rangkaian kegagalan sekarang. Tekanan dibangun ulang dari hasil nyata berikutnya.`,errorsHeading:`{count} kesalahan terbaru`,noRecentErrors:`Tidak ada kesalahan terbaru`,noKey:`tidak ada kunci`,reasons:{penalty:`dihukum`,cooldown:`waktu pendinginan`,recent_errors:`gagal`}},keys:JSON.parse(`{"pageTitle":"Kunci","pageDescription":"Kredensial penyedia dan kunci API terpadu yang terhubung dengan aplikasi Anda.","tabProviders":"Penyedia","checklistSummary":"{configured} dari {total} penyedia telah dikonfigurasi","checklistKeyless":"tidak perlu kunci","checklistNoKeyTip":"Belum ada kunci yang ditambahkan. Klik untuk menambahkan.","checklistSignupLink":"Buka {provider} untuk membuat akun dan mendapatkan kunci","checklistKeylessTip":"Berfungsi tanpa kunci.","tabQuotaSignals":"Sinyal kuota","tabApiKey":"Kunci API terpadu","tabAnthropic":"Anthropic","unifiedKey":"Kunci API terpadu Anda","regenerate":"Regenerasi","showKey":"Tunjukkan","hideKey":"Sembunyikan","copyKey":"Salin","copyFullKey":"Salin kunci lengkap","copiedKey":"Disalin","baseUrl":"Basis URL","endpointChat":"Obrolan","endpointResponses":"Tanggapan","endpointEmbeddings":"Penyematan","endpointEmbeddingsHint":"model: \\"auto\\" atau keluarga dari tab Embeddings","endpointMessages":"Pesan","endpointMessagesHint":"Kompatibel dengan 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":"Model Claude (Anthropic).","anthropicDesc":"Arahkan klien SDK Claude atau Anthropic ke server ini. Klien Anthropic mengirimkan nama model Claude — memetakan masing-masing ke Otomatis (router memilih model gratis) atau menyematkan model tertentu.","anthropicBaseUrl":"Basis URL","anthropicAuth":"Tajuk autentikasi","anthropicAuto":"Otomatis — router memilih model terbaik","anthropicSave":"Simpan pemetaan","anthropicSaved":"Disimpan","anthropicNote":"Klien Anthropic tetap menggunakan nama model Claude bawaannya; pemetaan di atas menentukan bagaimana masing-masing rute masuk ke kumpulan Anda.","familyDefault":"Bawaan","familyOpus":"Karya","familySonnet":"Soneta","familyHaiku":"Haiku","selectPlatform":"Pilih penyedia","addKey":"Tambahkan kunci","keyAdded":"Kunci ditambahkan","endpointKeysShareModels":"Kunci untuk endpoint yang sama berbagi model-modelnya.","export":"Ekspor","exportAll":"Semua kunci","exportHealthy":"Hanya sehat","exportKeys":"Ekspor kunci API","exportFormat":"Format","exportHealthyOnly":"Kunci sehat saja","exportHealthyOnlyDesc":"Kecualikan kunci yang saat ini gagal dalam pemeriksaan kondisi","exportWillExport":"Akan mengekspor","exportKey":"kunci","exportKeys plural":"kunci","exporting":"Mengekspor…","exportDownload":"Unduh","exportSuccess":"Kunci {count} yang diekspor","adding":"Menambahkan…","selectProvider":"Pilih penyedia…","accountId":"ID Akun","label":"Label","noKeyNeeded":"(tidak perlu kunci)","outboundProxy":"Proksi keluar","outboundProxyDescription":"Rutekan permintaan LLM keluar melalui proksi. Mendukung SOCKS5, HTTP, dan HTTPS.","proxyUrl":"Proksi URL","saveProxy":"Simpan","savingProxy":"Menyimpan…","proxyLoadFailed":"Tidak dapat memuat setelan proxy.","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":"Tambahkan model khusus yang kompatibel dengan OpenAI","addCustomDescription":"Arahkan model obrolan, penyematan, gambar, atau audio ke titik akhir mana pun yang kompatibel dengan OpenAI. Kunci API bersifat opsional untuk server lokal.","customType":"Ketik","customTypeChat":"Obrolan","customTypeEmbedding":"Penyematan","customTypeImage":"Gambar","customTypeAudio":"Audio","customTypeTranscription":"Transcription","customBaseUrl":"Basis URL","customModels":"Model","customModel":"Model","customDisplayName":"Nama tampilan","customDisplayNamePerModel":"per model","customDisplayNameOptional":"opsional","customFamily":"Keluarga","customFamilyPlaceholder":"default untuk id model","customApiKey":"Kunci API","customCapabilities":"Kemampuan","addModel":"Tambahkan model","modelAdded":"Model ditambahkan","addModels":"Tambahkan model {count}","addEmbeddingModel":"Tambahkan penyematan","addImageModel":"Tambahkan model gambar","addAudioModel":"Tambahkan model audio","addTranscriptionModel":"Add transcription model","addingCustom":"Menambahkan…","discoverModels":"Ambil model","probeNow":"Uji endpoint","probeConfirm":"Kirim hingga 3 permintaan uji?","probeCapabilities":"penalaran: {reasoning} · alat: {tools}","probeCapYes":"ya","probeCapNo":"tidak","probeCapUnknown":"tidak diketahui","probeSuccess":"{model} diuji dalam {latency}ms","probeFailed":"Pengujian gagal: {reason}","discoverTitle":"Model di endpoint ini","discoverHint":"Pilih model yang akan didaftarkan. Yang sudah ditambahkan tetap terkunci.","discoverEmpty":"Endpoint ini tidak mengembalikan model apa pun.","discoverAlreadyAdded":"Ditambahkan","discoverSelectAll":"Pilih semua","modelsAdded":"{count} model ditambahkan","getApiKey":"Dapatkan kunci API","deleteKeyConfirm":"Hapus kunci ini? Hal ini tidak dapat dibatalkan.","checkAll":"Periksa semuanya","checking":"Memeriksa…","editLabel":"Sunting label","saveLabel":"Simpan labelnya","unifiedKeyDescBefore":"Gunakan ini sebagai OpenAI Anda","unifiedKeyDescAfter":"; itu mengautentikasi permintaan ke proxy ini.","serverUnreachableBefore":"Tidak dapat menjangkau server aktif","serverUnreachableAfter":". Pastikan backend berjalan. npm run dev memulai keduanya, dan log server mencetak di bawah awalan server.","paneProviderKey":"Kunci penyedia","paneImportFile":"Impor berkas","paneCustomEndpoint":"Titik akhir khusus","platform":"Peron","hideAdded":"Sembunyikan penyedia yang sudah ditambahkan","apiToken":"Token API","keyOptionalPlaceholder":"Opsional","bearerTokenPlaceholder":"Token pembawa","pasteKeyPlaceholder":"tempelkan kunci di sini","pasteSeveral":"Tempel beberapa","keyOptionalHint":"Opsional: biarkan kosong untuk tingkat gratis anonim (dibatasi per IP), atau tempel kunci Anda sendiri untuk menggunakan akun Anda.","enable":"Aktifkan","noProviderKeys":"Belum ada kunci penyedia. Tambahkan satu di atas untuk memulai perutean.","filterPlaceholder":"Filter penyedia atau kunci","filterAll":"Semua","filterHealthy":"Sehat","filterIssues":"Masalah","filterDisabled":"Dengan disabilitas","noFilterMatch":"Tidak ada penyedia yang cocok dengan filter Anda.","providerCountSummary":"Penyedia {providers} · Kunci {keys}","summaryHealthy":"{count} sehat","summaryIssueOne":"Masalah {count}","summaryIssueOther":"Masalah {count}","providerActions":"Tindakan penyedia","routeViaProxy":"Rute melalui proxy","checkNow":"Periksa sekarang","syncModels":"Sinkronkan model dengan upstream","syncModelsResult":"Daftar model disinkronkan: {added} ditambahkan, {total} aktif","syncModelsFailed":"Sinkronisasi model gagal: {reason}","syncAllModels":"Sinkronkan semua provider","syncAllPending":"Menyinkronkan…","syncAllResult":"Sinkron {count} provider: {registered} model terdaftar","syncAllFailed":"Sinkron semua gagal: {reason}","syncAllNoChanges":"Semua daftar model sudah terbaru","syncAllCatalog":"Katalog: +{inserted} ditambahkan, ~{updated} diperbarui, -{removed} dihapus","syncAllDialogTitle":"Hasil Sinkronisasi","syncAllDialogSummary":"Perubahan terdeteksi di {changed} dari {total} provider","syncAllNew":"+{count} baru","syncAllUpdated":"{count} diperbarui","syncAllRetired":"{count} dinonaktifkan","syncAllNewModels":"Model baru","syncAllUpdatedModels":"Model diperbarui","syncAllRetiredModels":"Model dinonaktifkan","syncAllDialogClose":"Selesai","proxyEnvHintBefore":"Juga dapat dikonfigurasi melalui","proxyEnvHintAfter":"variabel lingkungan (diutamakan). Biarkan kosong untuk menonaktifkan. Contoh:","importKeys":"Impor kunci penyedia","importKeysDescription":"Unggah .env, JSON, JSONC, CSV, Markdown, atau file teks.","importFiles":"File","importFileCount":"{count} dipilih","previewFiles":"Pratinjau","previewing":"Pratinjau…","selected":"Dipilih","provider":"Penyedia","keyName":"Nama kunci","keyValue":"Nilai kunci","chooseProvider":"Pilih penyedia","noPreviewKeys":"Tidak ada kunci yang ditemukan di file tersebut.","skippedItems":"Dilewati:","moreItems":"+{count} lagi","importSelected":"Impor {count}","importing":"Mengimpor…","noImportSelection":"Pilih setidaknya satu baris dengan penyedia.","duplicate":"Duplikat","duplicatesFound":"{count} duplikat terdeteksi — sudah ada dan akan dilewati.","importResult":"{imported} yang diimpor; gagal {failed}.","importModelCount":"+{count} model","importResultWithModels":"{imported} yang diimpor; {models} model terdaftar; gagal {failed}.","confirmRemove":"Konfirmasi?","quotaSignalsTitle":"Sinyal kuota","quotaSignalsEmptyTitle":"Belum ada observasi kuota","quotaSignalsEmptyDesc":"Ini terisi setelah penyedia mengembalikan header batas tarif, kesalahan kuota, atau sinyal validasi.","quotaKeyRef":"kunci #{id}","quotaPoolRef":"kolam {pool}","quotaLimit":"Batasi","quotaRemaining":"Tersisa","quotaReset":"Setel ulang","quotaObserved":"Diamati","tabAgents":"Agen","familyGeminiPro":"Gemini Pro","familyGeminiFlash":"Gemini Flash","familyGeminiFlashLite":"Gemini Flash-Lite","geminiTitle":"Pemetaan model Gemini","geminiDesc":"Petakan nama Gemini Pro, Flash, dan Flash-Lite ke Otomatis atau model katalog tertentu.","compatibilityTitle":"Kompatibilitas agen","compatibilityDesc":"Kontrol permukaan kompatibilitas opt-in dan penemuan model Claude Code.","ollamaMode":"Emulasi Ollama","ollamaModeHint":"Loopback terbuka tidak pernah menerima lalu lintas LAN tanpa autentikasi.","ollamaOff":"Mati","ollamaLoopback":"Terbuka di loopback","ollamaKeyRequired":"Perlu kunci API","claudeAliases":"Alias penemuan Claude Code","claudeAliasesHint":"Ekspos alias claude/<model> agar pemilih model gateway dapat menampilkan daftar katalog.","mcpServer":"Server MCP","mcpServerHint":"Membuka endpoint /mcp untuk klien agen. Instalasi baru dimulai dalam keadaan nonaktif.","urlTokensTitle":"Token URL yang dapat dicabut","urlTokensDesc":"Hanya untuk klien tanpa header. Token URL bisa bocor ke riwayat dan log, jadi cabut jika sudah tidak diperlukan.","urlTokenLabel":"Label token","createUrlToken":"Buat token","urlTokenOnce":"Salin token ini sekarang. Token tidak akan ditampilkan lagi.","revoked":"Dicabut","revoke":"Cabut","modelScope":"Cakupan model","modelScopeDesc":"Batasi kunci ini ke ID model tertentu. Router melewati kunci ini untuk model lain.","modelScopeAdd":"Masukkan ID model lalu tekan Enter","modelScopeEmpty":"Cakupan belum diatur — kunci ini melayani semua model penyedianya.","modelScopeClear":"Hapus cakupan","modelScopeBadgeOne":"dibatasi · 1 model","modelScopeBadgeOther":"dibatasi · {count} model","modelPicker":{"title":"Model mana saja yang boleh dilayani kunci ini?","hint":"Kunci {provider} Anda telah ditambahkan dan saat ini melayani semua model di bawah. Hapus centang pada model yang tidak boleh dipakai kunci ini — router akan melewatinya untuk model tersebut.","count":"{selected} dari {total} dipilih","allNote":"Semua dipilih — tidak ada yang disimpan, dan model yang ditambahkan ke katalog nanti juga akan memakai kunci ini.","subsetNote":"Kunci ini akan dibatasi pada model yang dipilih. Anda dapat mengubahnya nanti dari baris kunci tersebut.","skip":"Nanti saja","scopedOne":"Kunci dibatasi ke 1 model","scopedOther":"Kunci dibatasi ke {count} model","allSaved":"Key serves every catalog model"},"cpTitle":"Profil klien","cpDesc":"Kunci API per klien, masing-masing dengan prompt sistem yang selalu diterapkan server.","cpEmpty":"Belum ada profil klien.","cpNameLabel":"Nama","cpNamePlaceholder":"mis. Bot dukungan","cpPromptLabel":"Prompt sistem (opsional)","cpPromptPlaceholder":"Instruksi yang ditambahkan server di awal setiap permintaan dengan kunci ini.","cpCreate":"Buat profil","cpRotate":"Rotasi kunci","cpKeyOnce":"Salin kunci ini sekarang — tidak akan ditampilkan lagi.","cpEnabledAria":"Profil aktif","selectKey":"Pilih kunci ini","bulkSelected":"{count} dipilih","bulkEnable":"Aktifkan semua","bulkDisable":"Nonaktifkan semua","bulkDelete":"Hapus semua","bulkDeleteConfirm":"Hapus {count}?","bulkResult":"Diperbarui {done}; gagal {failed}.","bulkDeleteResult":"Dihapus {done}; gagal {failed}.","testProxy":"Test","testingProxy":"Testing…","proxyTestOk":"Proxy works — {ms}ms round trip","proxyTestFail":"Proxy failed: {reason}","editKey":"Edit kunci","editPlatformLocked":"Penyedia dan endpoint tidak dapat diubah setelah dibuat.","editCredentialHint":"Biarkan kosong untuk mempertahankan kunci saat ini.","editCredentialPartsRequired":"Masukkan ID akun dan token API.","editModels":"Edit model","editModelsHint":"Choose which catalog models this key may serve. Select everything to clear the scope so future catalog models use it too.","editModelsCustomHint":"Choose which registered endpoint models this key may serve. Select everything to clear the scope.","editModelsSync":"Check catalog updates","editModelsSyncing":"Checking…","editModelsSynced":"Model catalog checked","outlookUnavailable":"Unavailable","outlookNoForecasts":"Forecast unavailable. More recent traffic or reliable quota readings are needed.","outlookCoverage":"Forecasts available for {count} of {total} pools.","outlookTraffic":"{count} successful requests through this instance in the last {minutes} minutes.","outlookMinimumTraffic":"An exhaustion forecast needs at least {count} successful requests within {minutes} minutes.","outlookNotReportedHint":"The provider has not reported a usable request balance and limit. Local usage is shown; remaining quota is unavailable.","outlookMissingResetHint":"The provider did not report a valid reset time. Remaining quota cannot support an exhaustion forecast.","outlookConfidenceHint":"This balance is not reliable enough for an exhaustion forecast.","outlookObserved":"Balance observed: {time}","outlookUnavailablePools":"Unavailable quota pools ({count})","outlookTitle":"Quota outlook","outlookInsufficient":"Not enough data","outlookLowBalance":"Low balance","outlookRunningLow":"Running low soon","outlookStale":"Needs fresh data","outlookUnknown":"Unknown","outlookWithinQuota":"Within quota","outlookResetsFirst":"Not before reset","outlookExhausted":"Already exhausted","outlookLastReported":"requests last reported","outlookRequestsLeft":"requests left","outlookNotReported":"Not reported","outlookRate":"Recent rate","outlookRateValue":"{count} req/min","outlookRunsOut":"May run out","outlookStaleHint":"This balance is old or its window has expired. A fresh provider reading is needed.","outlookError":"Could not load quota forecasts. Raw observations are still available below.","outlookRetry":"Retry","outlookAttention":"Quota pools needing attention: {count}","outlookNoWarnings":"No forecast warnings. Pools with insufficient data may still be limited.","outlookHint":"Rates count successful requests through this instance only, not usage elsewhere. Forecasts require recent provider balances and reported resets. Warnings appear below 20% remaining or when quota may run out within two hours, before reset.","outlookRaw":"Raw quota observations","addCustomModel":"Tambah Model Khusus","modelId":"ID Model","modelIdRequired":"ID Model diperlukan","modelDisplayName":"Nama Tampilan","modelContextWindow":"Jendela Konteks (token)","modelRateLimits":"Batas Kecepatan (opsional)","modelSupportsTools":"Mendukung Pemanggilan Alat","modelSupportsToolsHint":"Aktifkan jika model ini dapat menjalankan pemanggilan fungsi atau alat","modelSupportsVision":"Mendukung Gambar/Visi","modelSupportsVisionHint":"Aktifkan jika model ini menerima input gambar","createModel":"Buat Model","modelAddedSuccess":"Model khusus berhasil ditambahkan","modelAddFailed":"Gagal menambahkan model khusus","testModel":"Uji","testingModel":"Menguji…","testPassedShort":"Lolos","testFailedShort":"Gagal","testPassed":"Pengujian model berhasil dalam {latency}ms","testFailed":"Pengujian model gagal","testThrottled":"Harap tunggu {seconds} detik sebelum menguji model ini lagi.","noModelsForProvider":"Tidak ada model yang dikonfigurasi untuk penyedia ini.","testModels":"Uji model","requestCapLabel":"Batas request","tokenCapLabel":"Batas token","budgetPeriodLabel":"Periode budget","budgetPeriodDaily":"Harian","budgetPeriodWeekly":"Mingguan","budgetPeriodMonthly":"Bulanan","budgetPeriodAuto":"Otomatis (ikut provider)","autoResolvedDaily":"Siklus provider terdeteksi: harian","autoResolvedMonthly":"Siklus provider terdeteksi: bulanan","autoResolvedFallback":"Siklus provider tidak diketahui, pakai bulanan","capUnlimitedPlaceholder":"Tanpa batas","capEditHint":"Batas disetel ulang pada batas periode berikutnya, pukul 00:00 UTC. Kosongkan untuk tanpa batas.","monthlyUsageLine":"{requests} permintaan, {tokens} token bulan ini","monthlyUsageRequests":"{requests} permintaan","monthlyUsageTokens":"{tokens} token","monthlyUsageRequestsRelative":"{used} / {cap} (sisa {remaining}) permintaan","monthlyUsageTokensRelative":"{used} / {cap} (sisa {remaining}) token","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:`sehat`,rateLimited:`terbatas tarif`,invalid:`tidak valid`,error:`kesalahan`,unchecked:`tidak dicentang`},analytics:{title:`Analisis`,description:`Volume permintaan, latensi, penggunaan token, dan kegagalan.`,range24h:`24 jam`,range7d:`7d`,range30d:`30d`,range90d:`90d`,requests:`Permintaan`,successRate:`Tingkat keberhasilan`,inputTokens:`Token masukan`,outputTokens:`Token keluaran`,avgLatency:`Latensi rata-rata`,p95Latency:`latensi P95`,avgTtft:`Rata-rata TTFT`,estSavings:`Perkiraan. tabungan`,requestsByProvider:`Permintaan oleh penyedia`,avgLatencyByProvider:`Latensi rata-rata menurut penyedia`,ttftByProvider:`Saatnya pemberian token pertama oleh penyedia`,ttftEmpty:`Belum ada waktu untuk mencatat token pertama.`,requestsOverTime:`Permintaan seiring waktu`,tokensOverTime:`Token seiring waktu`,byModel:`Berdasarkan model`,byPlatform:`Berdasarkan platform`,errors:`Kesalahan`,errorDistribution:`Distribusi kesalahan`,pinnedRequests:`Permintaan yang disematkan`,pinnedHonored:`Terhormat`,fallbackAttempts:`Upaya mundur`,savingsHint:"Anda sebenarnya menghemat ${actual} selama {range} terakhir. Itulah harga token yang sama pada API berbayar, dengan harga per model. Angka yang ditampilkan memproyeksikan kecepatan Anda dari data {span} terakhir hingga 30 hari penuh.",savingsHintExact:"Anda sebenarnya menghemat ${actual} selama {range} terakhir. Itulah harga token yang sama pada API berbayar, dengan harga per model. Angka yang ditampilkan adalah total 30 hari Anda yang sebenarnya.",requestsHintPinned:`{pinned} dari permintaan ini menyematkan model tertentu berdasarkan nama. {honored} dilayani oleh model yang disematkan; {failed} melakukan failover ke yang lain. Sisanya dialihkan secara otomatis.`,requestsHintAuto:`Semua permintaan dalam periode ini dirutekan secara otomatis; tidak ada klien yang menyematkan model tertentu berdasarkan nama.`,requestsHintTypes:`Obrolan {chat} dan permintaan penyematan {embedding}.`,rangeLabel24h:`24 jam`,rangeLabel7d:`7 hari`,rangeLabel30d:`30 hari`,rangeLabel90d:`90 hari`,spanDays:`{count} hari`,spanHours:`{count} jam`,latencyMs:`Latensi (ms)`,latency:`Latensi`,pinned:`Disematkan`,inTokens:`Dalam bentuk token`,outTokens:`Token keluar`,saved:`Disimpan`,message:`Pesan`,time:`Waktu`,perModelBreakdown:`Perincian per model`,usageByKey:`Penggunaan berdasarkan kunci`,keyColumn:`Kunci`,keyLabelFallback:`Kunci #{id}`,errorsByProvider:`Kesalahan oleh penyedia`,recentErrors:`Kesalahan terbaru`,noErrors:`Tidak ada kesalahan`,recentCalls:`Panggilan terakhir`,clientIp:`IP klien`,clientAgent:`Aplikasi klien`,requestedModelHint:`{model} yang diminta, dilayani oleh fallback`,attempts:`Upaya`,filterAll:`Semua`,filterCanceled:`Dibatalkan`,providerBreakdown:`Perincian per penyedia`,tokensPerSec:`Tok/dtk`,allProviders:`Semua penyedia`,requestDetailTitle:`Permintaan #{id}`,failoverLadder:`Tangga kegagalan`,failoverLadderHint:`Setiap hop yang diambil permintaan ini melalui rantai fallback, secara berurutan.`,noAttemptTrace:`Tidak ada jejak upaya yang dicatat untuk permintaan ini.`,keyOrdinal:`kunci #{n}`,keyBadge:`Kunci #{n}`,attemptTimingHint:`Mulai offset dari awal permintaan · durasi upaya`,requestedModel:`Model yang diminta`,ttft:`TTFT`,requestsByAgent:`Permintaan per agen`,sortBy:`Urutkan berdasarkan {column}`,sortHint:`Pengurutan berlaku untuk {count} baris yang dimuat`,cacheHitRate:`Rasio hit cache`,cacheSavedTokens:`{tokens} token dihemat`,cacheHitRateHint:`{hits} hit vs {misses} miss sejak server dijalankan · {requests} panggilan penyedia dihindari`},logs:{title:`Log`,description:`Log server langsung. Entri baru terus masuk selama halaman ini terbuka.`,pause:`Jeda`,resume:`Lanjutkan`,clear:`Bersihkan log`,cleared:`Log server dibersihkan`,levelFilter:`Level log`,levels:{debug:`Debug`,info:`Info`,warn:`Peringatan`,error:`Kesalahan`},countsHint:`Jumlah ini adalah total untuk seluruh buffer log di server, bukan hanya entri yang cocok dengan filter ini.`,searchPlaceholder:`Cari pesan log…`,jumpToLatest:`Ke entri terbaru`,showMore:`Tampilkan lebih banyak`,showLess:`Tampilkan lebih sedikit`,buffered:`Menampilkan {count} dari maksimal {max} entri di buffer`,emptyTitle:`Belum ada entri log`,emptyDescription:`Entri muncul di sini saat server menuliskannya. Perlebar filter level, penyedia, atau pencarian jika Anda mengharapkan ada keluaran.`,noLevelsTitle:`Tidak ada level yang dipilih`,noLevelsDescription:`Aktifkan setidaknya satu level untuk melihat keluaran log.`,loadFailed:`Tidak dapat memuat log server.`},playground:{title:`Taman bermain`,description:`Kirim penyelesaian obrolan melalui router dan lihat penyedia mana yang melayaninya.`,autoModel:`Otomatis (rantai cadangan)`,fusionModel:`Fusion (sintesis multi-model)`,selectModel:`Pilih modelnya`,searchModels:`Model pencarian…`,noModelsFound:`Tidak ada model yang ditemukan`,send:`Kirim`,sending:`Mengirim…`,clear:`Jelas`,inputPlaceholder:`Ketik pesan… (⏎ untuk mengirim, ⇧⏎ untuk baris baru)`,emptyTitle:`Kirim pesan untuk memulai.`,emptyDescription:`Menggunakan {model}. Ganti model di pemilih di atas.`,noModels:`Belum ada model. Tambahkan kunci API pada halaman Kunci untuk mengisi daftar ini.`,copyReply:`Salin balasan`,fallback:`mundur`,fallbacks:`mundur`,fusionPanel:`Panel`,fusionJudge:`Hakim`,fusionTrace:`Respons model {count}`,fusionFailed:`tidak ada tanggapan`,fusionJudgeSynth:`mensintesis jawaban akhir`,errorPrefix:`Kesalahan:`,systemPromptLabel:`Perintah sistem`,systemPromptPlaceholder:`Opsional. Dikirim sebagai pesan sistem sebelum obrolan Anda.`,showSettings:`Tampilkan pengaturan`,hideSettings:`Sembunyikan pengaturan`,samplingHeading:`Sampling`,samplingHelp:`Saat dimatikan, nilai bawaan penyedia sendiri yang berlaku. Hanya kontrol yang Anda aktifkan yang dikirim.`,samplingDefault:`Bawaan`,temperature:`Temperatur`,topP:`Top P`,maxTokens:`Token maksimum`,errorTitle:`Permintaan gagal`,attach:`Lampirkan file`,attachTooMany:`Anda dapat melampirkan hingga {count} file per pesan.`,attachTooLarge:`{name} terlalu besar. Batasnya adalah {max}.`,attachUnsupported:`{name} tidak didukung. Lampirkan gambar (PNG, JPEG, WebP, GIF) atau file teks (TXT, MD, CSV, JSON, LOG).`,attachFailed:`Tidak dapat membaca {name}.`,noVisionBadge:`Tanpa gambar`,visionWarning:`{model} tidak menerima gambar. Pilih model visi atau Otomatis.`,dictate:`Dikte`,dictationStop:`Hentikan perekaman`,dictationTranscribing:`Menranskripsi…`,dictationUnavailable:`Tambahkan penyedia model audio untuk menggunakan dikte.`,dictationModel:`Model dikte`,dictationFailed:`Transkripsi gagal: {reason}`,artifactOpen:`Buka pratinjau`,artifactPreview:`Pratinjau`,artifactCode:`Kode`,artifactClose:`Tutup pratinjau`,artifactDownload:`Unduh`,artifactReload:`Muat ulang pratinjau`,artifactHtml:`Halaman HTML`,artifactSvg:`Gambar SVG`,artifactLines:`baris`,artifactResize:`Ubah ukuran pratinjau`},playgroundSessions:{heading:`Percakapan`,newConversation:`Percakapan baru`,showSidebar:`Tampilkan percakapan`,hideSidebar:`Sembunyikan percakapan`,empty:`Belum ada percakapan yang tersimpan.`,untitled:`Percakapan tanpa judul`,rename:`Ganti nama`,renamePlaceholder:`Nama percakapan`,messageCount:`{count} pesan`,justNow:`baru saja`,minutesAgo:`{count} mnt lalu`,hoursAgo:`{count} jam lalu`,daysAgo:`{count} hari lalu`,loadFailed:`Tidak dapat membuka percakapan itu.`,renameFailed:`Tidak dapat mengganti nama percakapan itu.`,deleteFailed:`Tidak dapat menghapus percakapan itu.`,actions:`Tindakan percakapan`,newChat:`Obrolan baru`},embeddings:{title:`Model`,description:`Penyematan gagal hanya dalam satu kelompok: model yang sama dilayani oleh penyedia lain. Vektor dari model yang berbeda tidak kompatibel, sehingga router tidak pernah menukar model Anda.`,defaultBadge:`Bawaan · otomatis`,makeDefault:`Jadikan default`,moveUp:`Naik`,moveDown:`Pindah ke bawah`,usageToday:`Permintaan {count} hari ini`,usageMonth:`{count} diterima bulan ini`,autoDescription:`model: "auto" pada POST /v1/embeddings merutekan ke keluarga default. Memberi nama keluarga (atau id model penyedia) menyematkan keluarga itu; penyedia di dalamnya dicoba secara berurutan.`,unsavedChanges:`Perubahan yang belum disimpan`,saveChanges:`Simpan perubahan`,savingChanges:`Menyimpan…`,tokMax:`{tokens} hingga maks`,emptyTitle:`Belum ada model penyematan`,emptyDesc:`Keluarga penyematan muncul di sini setelah Anda menambahkan kunci penyedia yang mendukung penyematan.`,dragToReorder:`Tarik untuk menyusun ulang penyedia`},fusion:{title:`Fusi`,description:`Sekelompok model menjawab secara paralel, kemudian juri menyintesis satu jawaban yang lebih kuat. Gunakan dengan memanggil API dengan model "fusion".`,panelSource:`Sumber panel`,panelSourceHelp:`Dari mana model panel berasal ketika permintaan tidak menentukannya sendiri.`,mode:{auto:`Otomatis (Rantai Pengganti)`,autoHelp:`Pilih beragam model dari Fallback Chain Anda, yang diberi peringkat berdasarkan strategi perutean aktif Anda.`,explicit:`Panel eksplisit`,explicitHelp:`Selalu gunakan model spesifik yang Anda pilih di bawah.`},panelModels:`Model panel`,selectedCount:`{count} dari {max} dipilih`,noModels:`Belum ada model yang terhubung. Tambahkan kunci API, lalu aktifkan model di Fallback Chain.`,panelSize:`Ukuran panel`,panelSizeHelp:`Berapa banyak model berbeda yang dapat dipilih secara otomatis (1–{max}).`,judge:`Model hakim`,judgeHelp:`Model yang menyatukan jawaban panel menjadi satu. Otomatis menggunakan model peringkat teratas yang tersedia.`,judgeAuto:`Otomatis (tersedia peringkat teratas)`,strategy:`Strategi`,strategySynthesize:`Sintesis — gabungkan panel menjadi satu jawaban`,strategyBestOf:`Yang terbaik - kembalikan satu jawaban terkuat (tidak ada panggilan juri)`,strategySynthesizeShort:`Sintesis`,strategyBestOfShort:`Yang terbaik dari`,exposePanel:`Paparkan detail panel`,exposePanelHelp:`Lampirkan jawaban masing-masing model dan metadata juri di bawah kolom x_fusion dalam respons.`,howToUse:`Cara menggunakan`,howToUseHelp:`Kirim request chat biasa dengan model "fusion". Pengaturan ini adalah default; permintaan apa pun dapat menimpanya dengan bidang "fusi".`,unsavedChanges:`Perubahan yang belum disimpan`,save:`Simpan`,searchPlaceholder:`Search models…`,providerFilterLabel:`Filter by provider`,providerAll:`All providers`,noMatch:`No models match your search.`},premium:{title:`Premi`,description:`Katalog model langsung, di setiap perangkat.`,loading:`Memuat…`,checkForUpdates:`Periksa pembaruan`,syncing:`Menyinkronkan…`,catalogFeed:`Umpan katalog`,liveFeed:`Umpan langsung`,monthlySnapshot:`Cuplikan bulanan`,lastChecked:`Terakhir diperiksa: {when}`,liveDescription:`Model gratis baru, perubahan kuota, dan perbaikan kekhasan hadir dalam beberapa jam setelah dikirimkan. Aplikasi ini memeriksa secara otomatis dua kali sehari; tidak ada hubungannya.`,snapshotDescription:`Tingkat gratis: katalog disegarkan dari cuplikan bulanan, diperiksa secara otomatis dua kali sehari. Premium mengalihkannya ke umpan langsung, diperbarui setiap 2-3 hari.`,lastSyncProblem:`Masalah sinkronisasi terakhir: {error}`,license:`Lisensi`,planAnnual:`Premium Tahunan`,planLifetime:`Seumur Hidup Premium`,expired:`Kedaluwarsa`,inactive:`Tidak aktif`,lifetimeNote:`Lisensi seumur hidup: tidak pernah kedaluwarsa.`,renewsOn:`Diperbarui pada {date}.`,willNotRenew:`Tidak akan memperbarui. Premium hingga {date}, lalu pemasangan ini kembali ke katalog bulanan gratis.`,keyInactive:`Kunci ini sudah tidak aktif. Aplikasi ini terus mengerjakan katalog bulanan gratis.`,manageSubscription:`Kelola langganan`,openingPortal:`Pembukaan…`,removeKey:`Hapus kunci dari perangkat ini`,manageHint:`Kelola langganan membuka portal penagihan Stripe: batalkan, perbarui kartu Anda, atau unduh faktur. Menghapus kunci hanya akan menonaktifkan perangkat ini; pembelian Anda tidak tersentuh.`,licenseKey:`Kunci lisensi`,licenseKeyPlaceholder:`fla_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`,activate:`Aktifkan`,activating:`Mengaktifkan…`,keyHint:`Kunci Anda ada di email pembelian dan di halaman pasca-checkout. Kehilangannya?`,recoverKey:`Pulihkan di situs web`,upsellTitle:`Tayangkan seharga $19 setahun`,upsellDescription:`Model gratis baru saat tersedia, bukan 30 hari kemudian. Satu kunci, setiap perangkat. Batalkan kapan saja; router tetap gratis selamanya.`,goPremium:`Gunakan Premium`,bundled:`dibundel`,planGeneric:`Premi`},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:`Ada yang tidak beres`,boundaryDescription:`Dasbor mengalami kesalahan yang tidak terduga. Data Anda aman. Coba lagi atau kembali ke halaman model.`,tryAgain:`Coba lagi`,goHome:`Kembali ke model`},notFound:{title:`Halaman tidak ditemukan`,description:`Halaman ini tidak ada atau mungkin telah dipindahkan.`},setup:{title:`Memulai`,subtitle:`Tiga langkah untuk merutekan permintaan pertama Anda.`,progress:`{done} dari {total}`,step1Title:`Tambahkan kunci penyedia`,step1Desc:`Hubungkan setidaknya satu akun penyedia. Kunci gratis berfungsi.`,step1Cta:`Tambahkan kunci`,step2Title:`Kirim permintaan tes`,step2Desc:`Pilih model apa pun di Taman Bermain dan ucapkan halo.`,step2Cta:`Buka Taman Bermain`,step3Title:`Hubungkan aplikasi Anda`,step3Desc:`Gunakan kunci API terpadu Anda dengan klien apa pun yang kompatibel dengan OpenAI.`,copyKey:`Salin kunci API`,copyUrl:`Salin basis URL`,copiedKey:`Kunci API disalin ke clipboard`,copiedUrl:`Basis URL disalin ke clipboard`},palette:{title:`Palet perintah`,placeholder:`Cari halaman, model, tindakan…`,empty:`Tidak ada hasil`,groupPages:`Halaman`,groupActions:`Tindakan`,groupModels:`Model`,toggleTheme:`Alihkan mode gelap`},validation:{required:`Diperlukan`,url:`Masukkan URL yang valid dimulai dengan http:// atau https://`,email:`Masukkan alamat email yang valid`,passwordMin:`Setidaknya karakter {min}`},agents:{title:`Agen coding`,description:`Hubungkan alat coding ke satu gateway model gratis dengan konfigurasi yang dihasilkan otomatis dan aman untuk dicadangkan.`,apiKey:`Kunci API`,quickstartTitle:`Mulai cepat`,quickstart:`Jalur tercepat: konfigurasikan Claude Code dari katalog langsung.`,currentKey:`Kunci terpadu saat ini:`,seenRecently:`Terlihat baru-baru ini`,setupLabel:`Penyiapan otomatis`,setupHint:`Menulis berkas konfigurasi alat ini untuk Anda, diarahkan ke gerbang ini.`,setupGuideHint:`Menampilkan langkah penyiapan alat ini; tidak ada berkas yang ditulis.`,manualLabel:`Koneksi manual`,manualHint:`URL dasar dan kunci untuk dimasukkan ke pengaturan alat itu sendiri.`,endpoint:`Titik akhir`,documentation:`Dokumentasi`,descriptions:{claude:`Agen terminal dari Anthropic: merencanakan, menyunting berkas, dan menjalankan perintah di repositori Anda.`,codex:`Agen terminal dari OpenAI, yang menjalankan tugas Anda di kotak pasir lokal lebih dulu.`,cline:`Ekstensi VS Code yang meminta persetujuan Anda untuk setiap suntingan dan perintah.`,continue:`Ekstensi VS Code dan JetBrains: pelengkapan otomatis dan obrolan sambil mengetik.`,aider:`Rekan pemrograman di baris perintah yang menjadikan tiap perubahan satu commit git.`,opencode:`Agen terminal yang tidak terikat penyedia, dengan antarmuka teks layar penuh.`,goose:`Agen lokal dari Block, diperluas dengan server MCP untuk menjangkau di luar kode.`,qwen:`Cabang Gemini CLI yang disetel untuk model Qwen dan repositori besar.`,roo:`Ekstensi VS Code dengan mode yang bisa ditukar: arsitek, pemrogram, penelusur galat.`,kilo:`Ekstensi VS Code yang menyatukan Roo dan Cline, dengan orkestrator yang memecah pekerjaan.`,crush:`Agen terminal dari Charm, ditulis dengan Go, satu sesi per proyek.`,dsh:`Kerangka DeepSeek, yang menyimpan tiap penyedia sebagai rute yang bisa Anda ganti.`,mimo:`Agen terminal dari Xiaomi, cabang OpenCode yang menerima penyedia apa pun yang kompatibel dengan OpenAI.`,cursor:`Penyunting yang mengutamakan AI; lewat awan Cursor, jadi perlu URL publik.`,generic:`Perkakas lain mana pun yang berbicara API OpenAI, disiapkan manual dengan URL dasar dan kunci.`,atomcode:`Agen terminal dari AtomGit, ditulis dalam Rust, yang menerima endpoint apa pun yang kompatibel dengan OpenAI.`,openclaw:`Asisten pribadi yang selalu aktif dan menjawab di WhatsApp, Telegram, Discord, dan lainnya dari mesin Anda sendiri.`,hermes:`Agen dari Nous Research yang terus memperbaiki diri, dengan memori persisten dan keterampilan, di terminal atau di aplikasi chat.`,pi:`Agen terminal minimalis yang Anda bentuk dengan ekstensi, keterampilan, dan templat prompt Anda sendiri.`}},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:`Kumpulan tingkat gratis ({count})`,poolsToggleBare:`Kumpulan tingkat gratis`,summary:`{pools} kumpulan · {budget} token/bln dihitung sekali per kumpulan · {credits} berbasis kredit · {unpublished} tidak dipublikasikan`,pool:`Kumpulan`,models:`Model`,budget:`Anggaran bulanan`,kind:`Jenis`,kindDocumented:`Terdokumentasi`,kindCredits:`Kredit`,kindUnpublished:`Tidak dipublikasikan`,remaining:`Sisa`,resetAt:`Reset pada`,disabledModels:`({count} nonaktif)`,metricTokens:`token`,metricRequests:`permintaan`,metricCredits:`kredit`,metricNeurons:`neuron`,metricOther:`unit`,empty:`Tidak ada model aktif dengan data anggaran tingkat gratis.`,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:`Rantai fallback`,description:`Rantai bernama, masing-masing dapat dipanggil sebagai auto:<name> di /v1/models.`,count:`{count} rantai`,active:`Aktif`,default:`Bawaan`,activate:`Aktifkan`,activateHint:`Jadikan tabel di bawah mengedit rantai ini dan perutean auto memakainya`,deleteHint:`Hapus rantai ini`,deleteConfirm:`Hapus rantai "{name}"?`,create:`Buat`,createPlaceholder:`Nama rantai`,createFailed:`Rantai tidak dapat dibuat.`,nameRules:`Maksimal 20 karakter: huruf, angka, tanda hubung, dan garis bawah.`,startEmpty:`Mulai kosong`,startEmptyHint:`Membuat rantai tanpa model dan menjauhkan model katalog baru darinya. Jika tidak dicentang, rantai dimulai sebagai salinan rantai bawaan.`,curated:`Dikurasi`,curatedHint:`Model katalog baru tidak ditambahkan ke rantai ini secara otomatis.`,renameHint:`Ganti nama rantai ini`,renameConfirm:`Ganti nama rantai "{oldName}" menjadi "{name}"? Klien yang memanggil auto:{oldName} harus beralih ke auto:{name}.`,renamePlaceholder:`Nama rantai baru`,renameFailed:`Tidak dapat mengganti nama rantai.`},notifications:{catalogAdded:`{count} model baru ditambahkan dari katalog`,catalogAddedFrom:`{count} model baru ditambahkan untuk {provider}`,catalogRemoved:`{count} model dihapus dari katalog`,catalogRemovedFrom:`{count} model dihapus untuk {provider}`,catalogUpdated:`{count} model diperbarui dari katalog terbaru`,catalogUpdatedFrom:`{count} model diperbarui untuk {provider}`,discoverAdded:`{count} model baru dari provider {provider}`,discoverRemoved:`{count} model dihapus dari provider {provider}`,degraded:`Mode degraded aktif — hanya {healthy}/{total} provider sehat ({pct}%)`,updateAvailable:`Update tersedia: v{version}`},routingStrip:{canceled:`Dibatalkan`,title:`Perutean langsung`,mode:`Mode`,processing:`Memproses…`,idle:`Menunggu permintaan…`,failed:`Gagal`,afterAttempts:`Sukses setelah {n} percobaan`,activeCount:`{n} aktif`}};export{e as default};
|