{
  "nav.config": "Configuration",
  "nav.monitoring": "Monitoring",
  "nav.live": "Live",
  "nav.server": "Server",
  "nav.cc_profiles": "CC Profiles",
  "nav.skills": "Skills",
  "nav.mcp_tools": "MCP Tools",
  "nav.tool_eval": "Tool Eval",
  "nav.pipeline_log": "Pipeline Log",
  "nav.federation": "Federation",
  "nav.quarantine": "Quarantine",
  "nav.templates": "Templates",
  "nav.users": "Users",
  "nav.user_content": "User Content",
  "nav.maintenance": "Maintenance",
  "nav.statistics": "Statistics",
  "lbl.knowledge_snapshot": "Knowledge graph snapshot",
  "lbl.latency_per_node": "p95 latency per node",
  "lbl.template_activity": "Template usage",
  "lbl.healer_history": "Healer history",
  "lbl.ontology_runner": "Ontology gap resolution",
  "lbl.node_active": "Node active (user permissions visible)",
  "lbl.floating_routing": "Floating routing active",
  "lbl.server_blocked": "Server blocked (hard block)",
  "lbl.dedicated_healer": "Dedicated Gap Healer (continuous loop)",
  "lbl.dedicated_healer_block": "Block server for regular requests",
  "lbl.dedicated_healer_template": "Curator template (node)",
  "btn.dedicated_healer_start": "Start continuous loop",
  "btn.dedicated_healer_stop": "Stop continuous loop",
  "msg.dedicated_healer_desc": "Starts a permanent gap-healer loop pinned to a single node. Runs until manually stopped — ideal for a host dedicated exclusively to healing.",
  "msg.dedicated_healer_loading": "Loading servers",
  "lbl.cleanup": "Cleanup & orphans",
  "lbl.cleanup_manager": "System Cleanup Manager",
  "lbl.regeneration": "Auto-regeneration",
  "btn.trigger_ontology": "Start now",
  "btn.cleanup_scan": "Scan",
  "btn.cleanup_run": "Clean up",
  "btn.regen_dashboard": "Rebuild dashboard",
  "btn.reload_prometheus": "Reload Prometheus",
  "msg.ontology_runner_desc": "Runs the gap healer once in the background. Uses every server with the ontology checkbox enabled.",
  "msg.cleanup_desc": "Detects artifacts (templates, Redis keys, Neo4j entities, Prometheus targets) whose owning inference server was deleted.",
  "msg.cleanup_click_scan": "Click \"Scan\" to search for orphans.",
  "msg.regeneration_desc": "Regenerates the Grafana dashboard and Prometheus scrape config from the current server list.",
  "lbl.template_verify": "Verify template models",
  "btn.template_verify": "Verify",
  "btn.template_pull_missing": "Pull missing models",
  "msg.template_verify_desc": "For each template, checks that the pinned model (model@Node) is physically present on the referenced Ollama endpoint.",
  "msg.template_verify_click": "Click \"Verify\" to check template model availability.",
  "nav.benchmarks": "Benchmarks",
  "nav.starfleet": "Starfleet",
  "nav.logout": "Logout",
  "btn.save": "Save & Restart Orchestrator",
  "btn.cancel": "Cancel",
  "btn.edit": "Edit",
  "btn.copy_profile": "Copy Profile",
  "btn.backup": "Create Backup",
  "btn.delete": "Delete",
  "btn.activate": "Activate",
  "btn.deactivate": "Deactivate",
  "btn.enable_profile": "Enable",
  "btn.disable_profile": "Disable",
  "btn.add_server": "Add Server",
  "btn.test_all": "Test All",
  "btn.new_profile": "New Profile",
  "btn.new_template": "New Template",
  "btn.new_user": "New User",
  "btn.new_skill": "New Skill",
  "btn.refresh": "Refresh",
  "btn.generate_dashboard": "Regenerate dashboard",
  "lbl.ontology_cronjob": "Use for ontology gap cronjob",
  "lbl.ontology_short": "Onto",
  "tip.ontology_cronjob": "When enabled, a curator template is auto-generated and a matching LLM is pulled.",
  "btn.export_json": "Export JSON",
  "btn.import_json": "Import JSON",
  "btn.import_code": "Import Code",
  "btn.send_reset": "Send Reset Link",
  "btn.test_smtp": "Send Test Email",
  "btn.send_email": "Send Email",
  "btn.send_bulk_email": "Email All Users",
  "btn.toggle_theme": "Dark / Light Mode",
  "btn.to_login": "To Login",
  "btn.back_to_login": "Back to Login",
  "btn.back_to_admin": "Back to Admin",
  "btn.set_password": "Set Password",
  "btn.create_user": "Create User",
  "btn.create_key": "Create Key",
  "btn.save_profile": "Save",
  "btn.import": "Import",
  "btn.git_pull": "Git Pull",
  "btn.manage_profiles": "Manage / Create Profiles",
  "btn.first_profile": "Create First Profile",
  "btn.copy_template": "Copy as Template",
  "btn.first_template": "Create First Template",
  "btn.kill": "Kill",
  "btn.history_clear": "Clear History",
  "btn.revoke_selected": "Revoke Selected",
  "btn.save_permissions": "Save Permissions",
  "btn.new_reset_link": "Request New Reset Link",
  "btn.save_settings": "Save Settings",
  "page.dashboard": "Dashboard",
  "page.monitoring": "System Monitoring",
  "page.live": "Live Monitoring",
  "page.servers": "Inference Servers",
  "page.profiles": "Claude Code Integration Profiles",
  "page.templates": "Expert Templates",
  "page.users": "User Management",
  "page.login": "Sign In",
  "page.forgot_pw": "Forgot Password",
  "page.reset_pw": "Reset Password",
  "page.change_password": "Change Password",
  "page.skills": "Skills & Slash Commands",
  "page.mcp_tools": "MCP Precision Tools",
  "page.tool_eval": "Tool Call Evaluation",
  "page.user_content": "User Content",
  "page.user_dashboard": "Dashboard",
  "page.billing": "Billing",
  "page.usage": "Usage History",
  "page.api_keys": "API Keys",
  "page.cc_profiles": "CC Profiles",
  "page.profile_pw": "Profile & Password",
  "lbl.username": "Username",
  "lbl.password": "Password",
  "lbl.email": "E-Mail",
  "lbl.email_address": "E-Mail Address",
  "lbl.display_name": "Display Name",
  "lbl.new_password": "New Password",
  "lbl.confirm_password": "Confirm Password",
  "lbl.min_8_chars": "min. 8 characters",
  "lbl.services": "Service Status",
  "lbl.inference": "Inference Servers",
  "lbl.ollama_servers": "Ollama Servers",
  "lbl.last_update": "Updated:",
  "lbl.loading": "Loading...",
  "lbl.no_data": "No data",
  "lbl.models": "Models",
  "lbl.profile_name": "Profile Name",
  "lbl.description": "Description",
  "lbl.category": "Category",
  "lbl.endpoint": "Endpoint",
  "lbl.mode": "Mode",
  "lbl.timeout": "Timeout",
  "lbl.token": "Token",
  "lbl.prefix": "Prefix",
  "lbl.label": "Label",
  "lbl.enabled_profiles": "Enabled Profiles",
  "lbl.fallback_settings": "Fallback Settings",
  "lbl.or": "or",
  "lbl.total": "total",
  "lbl.today": "Used Today",
  "lbl.this_month": "This Month",
  "lbl.total_budget": "Total",
  "lbl.unlimited": "unlimited",
  "lbl.tokens": "Tokens",
  "lbl.daily_limit": "Daily Limit (Tokens)",
  "lbl.monthly_limit": "Monthly Limit",
  "lbl.total_limit": "Total Limit",
  "lbl.current_usage": "Current Usage",
  "lbl.api_key_prefix": "Prefix",
  "lbl.api_key_label": "Key Label (optional)",
  "lbl.last_used": "Last used",
  "lbl.never": "never",
  "lbl.source": "Source",
  "lbl.body": "Body (Prompt Content)",
  "lbl.name": "Name",
  "lbl.role": "Role",
  "lbl.server_default": "Server Default",
  "lbl.inference_changes": "Changes are saved to INFERENCE_SERVERS",
  "lbl.inference_url_col": "URL (/v1)",
  "lbl.first_name": "First Name",
  "lbl.last_name": "Last Name",
  "lbl.street_address": "Street Address",
  "lbl.street_address_hint": "e.g. 12 Example Street",
  "lbl.postal_code": "Postal Code",
  "lbl.city": "City",
  "lbl.country": "Country",
  "lbl.date_of_birth": "Date of Birth",
  "lbl.gender": "Gender",
  "lbl.gender_m": "Male (M)",
  "lbl.gender_w": "Female (W)",
  "lbl.gender_d": "Non-binary (D)",
  "section.personal_data": "Personal Data",
  "msg.required_fields_missing": "Please fill in all required fields.",
  "lbl.email_subject": "Subject",
  "lbl.email_body": "Message",
  "lbl.email_recipient": "Recipient",
  "lbl.all_active_users": "All active users",
  "lbl.smtp_ssl": "SSL/TLS (Port 465)",
  "lbl.smtp_host": "SMTP Host",
  "lbl.smtp_port": "Port",
  "lbl.smtp_user": "Username",
  "lbl.smtp_pass": "Password",
  "lbl.smtp_from": "Sender (From)",
  "lbl.smtp_test_recipient": "Test recipient email",
  "lbl.public_urls": "Public URLs",
  "lbl.public_urls_note": "Displayed in the user portal and used in emails",
  "lbl.user_portal_url": "User Portal",
  "lbl.admin_url": "Admin Backend",
  "lbl.public_api_url": "Public API",
  "lbl.log_url": "Log Viewer URL (external)",
  "lbl.log_url_help": "External URL of the Dozzle log viewer (terminated by Nginx proxy)",
  "lbl.prometheus_url_public": "Prometheus URL (external)",
  "lbl.prometheus_url_public_help": "External URL for Prometheus access (terminated by Nginx proxy)",
  "lbl.not_set": "not configured",
  "lbl.sso_url": "Authentik URL (SSO base URL)",
  "lbl.oidc_client_id": "Client ID",
  "lbl.oidc_client_secret": "Client Secret",
  "lbl.oidc_redirect_uri": "Redirect URI (callback URL)",
  "lbl.oidc_jwks_url": "JWKS URL (backend JWT validation)",
  "lbl.oidc_issuer": "Issuer URL",
  "lbl.oidc_end_session_url": "End Session URL (logout redirect)",
  "lbl.oidc_end_session_hint": "Where to redirect after logout. Leave empty to return to the login page.",
  "lbl.public_sso_url": "Public Authentik URL (browser redirect)",
  "lbl.public_sso_url_hint": "Optional. If Authentik is only reachable internally via container name, enter the public DNS URL here (e.g. https://authentik.example.com). The login button will use this URL for the browser redirect. Leave empty if AUTHENTIK_URL is already publicly accessible.",
  "lbl.token_price": "Token Price (€ / token)",
  "lbl.log_level": "Log Level",
  "lbl.ollama_api_key": "Ollama API Key",
  "lbl.judge_model": "Judge Model (Merger / Critic)",
  "lbl.planner_model": "Planner Model (Task Decomposition)",
  "lbl.tool_model": "Tool Model",
  "lbl.reasoning_model": "Reasoning Model",
  "lbl.claude_models": "Accepted Claude Model IDs",
  "lbl.searxng_url": "SearXNG URL (Web Search)",
  "hint.searxng_primary": "primary search engine — SearXNG recommended",
  "lbl.ddg_fallback": "Enable DuckDuckGo fallback",
  "hint.ddg_fallback": "automatic fallback to DuckDuckGo Public API when the primary search engine returns no results (no API key required)",
  "lbl.admin_preview": "Admin Preview",
  "lbl.impersonate_exit": "Back to Admin",
  "status.running": "running",
  "status.active": "Active",
  "status.inactive": "Inactive",
  "status.locked": "Locked",
  "status.required": "Required",
  "status.optional": "Optional",
  "status.role_primary": "Primary (runs first)",
  "status.role_fallback": "Fallback (if Primary confidence is low)",
  "status.role_always": "Always (always runs, ensemble)",
  "status.online": "Online",
  "status.offline": "Offline",
  "status.idle": "Idle",
  "status.enabled": "Enabled",
  "status.disabled": "Disabled",
  "status.imported": "✓ Imported",
  "status.on": "on",
  "status.off": "off",
  "msg.config_saved": "Configuration saved. Orchestrator is restarting...",
  "msg.invalid_json": "Invalid JSON: {error}",
  "msg.invalid_expert_models": "Error: Invalid expert models — {error}",
  "msg.invalid_servers": "Error: Invalid inference server configuration — {error}",
  "msg.login_failed": "Invalid credentials",
  "msg.csrf_failed": "Security check failed. Please try again.",
  "msg.oidc_error": "OIDC login error.",
  "msg.profile_deleted": "Profile deleted.",
  "msg.template_deleted": "Template deleted.",
  "msg.skill_deleted": "Skill deleted.",
  "msg.import_done": "Import complete: {imported} imported, {skipped} skipped",
  "msg.import_failed": "Import failed: {error}",
  "msg.pw_changed": "Your password has been changed successfully.",
  "msg.pw_mismatch": "Passwords do not match.",
  "msg.pw_too_short": "Password must be at least 8 characters.",
  "msg.reset_sent": "If an account with this email exists, a reset link has been sent. Please check your inbox.",
  "msg.admin_reset_sent": "Password reset link sent to {email}.",
  "msg.smtp_test_ok": "Test email sent successfully to {to}.",
  "msg.smtp_test_fail": "Send failed: {error}",
  "msg.email_sent": "{n} email(s) sent.",
  "msg.email_fields_required": "Subject and message are required.",
  "msg.confirm_reset": "Send password reset link to {user} ({email})?",
  "msg.reset_link_invalid": "This reset link is invalid or has expired.",
  "msg.profile_enabled": "Profile enabled. Orchestrator is restarting...",
  "msg.profile_disabled": "Profile disabled. Orchestrator is restarting...",
  "msg.profile_sync_hint": "Profile saved. Changes will be active within 60 seconds. For immediate effect, toggle the profile or restart the orchestrator.",
  "msg.user_created": "User created.",
  "msg.user_updated": "User updated.",
  "msg.user_deleted": "User deleted.",
  "msg.key_created": "API key created.",
  "msg.key_deleted": "API key deleted.",
  "msg.permissions_saved": "Permissions saved.",
  "msg.settings_saved": "Settings saved.",
  "msg.not_found": "Not found.",
  "msg.unknown_error": "Unknown error",
  "msg.load_error": "Error loading",
  "msg.kill_failed": "Kill failed",
  "dialog.confirm_delete": "Really delete?",
  "dialog.confirm_profile_delete": "Really delete this profile?",
  "dialog.confirm_skill_delete": "Really delete skill '{name}'?",
  "dialog.import_overwrite": "Overwrite existing profiles? OK = Replace | Cancel = Only import new",
  "dialog.confirm_kill": "Remove process {pid} from live monitoring?",
  "dialog.confirm_user_delete": "Really delete this user?",
  "dialog.confirm_template_delete": "Really delete this template?",
  "dialog.confirm_cc_profile_delete": "Really delete this CC profile?",
  "js.select_placeholder": "Select…",
  "js.search_placeholder": "Search…",
  "js.no_options": "No options available",
  "js.loading_models": "Loading models…",
  "js.loading": "Loading…",
  "js.error": "Error",
  "js.paste_json": "Please paste JSON code.",
  "js.give_name": "Please enter a profile name.",
  "js.give_skill_name": "Please enter a skill name.",
  "js.invalid_json": "Invalid JSON",
  "js.export_failed": "Export failed",
  "js.import_done": "Import complete",
  "js.imported": "imported",
  "js.skipped": "skipped",
  "js.skill_activated": "Skill '/{name}' activated",
  "js.skill_deactivated": "Skill '/{name}' deactivated",
  "js.skill_updated": "Skill '/{name}' imported — available server-side",
  "js.git_pull_failed": "git pull failed",
  "js.tool_toggled": "Tool {name} {state}",
  "js.server_not_reachable": "MCP server not reachable. Is the mcp-precision container running?",
  "table.username": "Username",
  "table.email": "E-Mail",
  "table.status": "Status",
  "table.role": "Role",
  "table.budget": "Budget (daily / monthly / total)",
  "table.created": "Created",
  "table.model": "Model",
  "table.duration": "Duration",
  "table.user": "User",
  "table.mode": "Mode",
  "table.template": "Template",
  "table.type": "Type",
  "table.client_ip": "Client IP",
  "table.request_id": "Request ID",
  "table.started": "Started",
  "table.ended": "Ended",
  "table.last_seen": "Last seen",
  "table.actions": "Actions",
  "table.name": "Name",
  "table.description": "Description",
  "table.category": "Category",
  "table.llms": "LLMs",
  "table.system_prompt": "System Prompt",
  "table.prefix": "Prefix",
  "table.label": "Label",
  "table.latency": "Latency (ms)",
  "table.gpus": "GPUs",
  "table.factor": "Factor",
  "table.tool_name": "Tool Name",
  "table.input_type": "Input Type",
  "table.tools_avail": "Tools avail.",
  "table.output": "Output",
  "table.latency_ms": "Latency",
  "table.tokens": "Tokens",
  "table.choice": "Choice",
  "table.time": "Time",
  "table.resource": "Resource",
  "table.quota": "Tokens remaining",
  "table.reset": "Reset",
  "table.quant": "Quant.",
  "table.family": "Family",
  "table.expires": "Expires",
  "table.param": "Parameters",
  "modal.new_profile": "New Profile",
  "modal.edit_profile": "Edit Profile",
  "modal.new_template": "New Expert Template",
  "modal.edit_template": "Edit Template",
  "modal.new_user": "Create New User",
  "modal.edit_user": "User Details",
  "modal.new_skill": "New Skill",
  "modal.send_email_title": "Send Email",
  "modal.edit_skill": "Edit Skill",
  "modal.import_profiles": "Import Profiles – JSON Code",
  "modal.import_templates": "Import Templates – JSON Code",
  "modal.budget_tab": "Budget",
  "modal.permissions_tab": "Permissions",
  "modal.api_keys_tab": "API Keys",
  "modal.usage_tab": "Usage",
  "modal.usage_30days": "Details as JSON (30 days)",
  "modal.import_mode": "Mode",
  "modal.merge": "Merge – only import new",
  "modal.replace": "Replace – overwrite existing",
  "modal.json_code": "Paste JSON code",
  "section.models": "Models",
  "section.cc_integration": "Claude Code Integration",
  "section.system": "System",
  "section.smtp": "E-Mail / SMTP",
  "section.sso": "SSO / OIDC (Authentik)",
  "section.public_urls": "Public URLs",
  "section.expert_models": "Expert Models",
  "section.graph_rag": "GraphRAG / Neo4j",
  "section.provider_limits": "Provider Token Limits (Claude Code)",
  "section.token_usage": "Token Usage by Model",
  "section.cache_perf": "Cache Performance",
  "section.expert_calls_cat": "Expert Calls by Category",
  "section.expert_calls_mdl": "Expert Calls by Model",
  "section.expert_calls_node": "Expert Calls by Model & Node",
  "section.req_by_mode": "Requests by Mode",
  "section.confidence": "Confidence Distribution",
  "section.latency": "Latency & Ratings",
  "section.active_procs": "Active Processes",
  "section.llm_instances": "LLM Instances",
  "section.api_requests": "Running API Requests",
  "section.background_jobs": "Maintenance & Background Jobs",
  "info.maintenance_jobs": "Ontology healer, cronjobs, provisioning",
  "table.job": "Job",
  "table.progress": "Progress",
  "section.rl_flywheel": "RL Flywheel & Context Window",
  "section.compression": "History Compression",
  "section.corrections": "Correction Memory",
  "section.expert_failures": "Expert Failures",
  "metric.compressed": "compressed",
  "metric.unlimited": "unlimited",
  "metric.refinements": "refinements",
  "label.force_think": "Chain-of-Thought",
  "section.context_window": "Context Window & Compression",
  "label.graphrag_max_chars": "GraphRAG Budget (Chars)",
  "label.history_max_turns": "History Max Turns",
  "label.history_max_chars": "History Max Chars",
  "label.unlimited": "unlimited",
  "label.fixed_chars": "fixed char count",
  "tip.graphrag_max_chars": "0 = auto from model context window, >0 = fixed char limit",
  "tip.history_max_turns": "0 = global default, -1 = unlimited (no compression)",
  "tip.history_max_chars": "0 = global default, -1 = unlimited (no compression)",
  "label.compression_enabled": "History Compression",
  "tip.compression_toggle": "Enabled: older turns are compressed. Disabled: full history is passed through.",
  "label.global_default": "global default",
  "section.proc_history": "Process History",
  "section.permissions": "Active Permissions",
  "section.llm_server_status": "LLM Server Status",
  "metric.hit_rate": "Hit Rate",
  "metric.hits": "Hits",
  "metric.misses": "Misses",
  "metric.p50": "Response Time P50",
  "metric.p95": "Response Time P95",
  "metric.self_rating": "Self-Rating (avg)",
  "metric.user_rating": "User Feedback (avg)",
  "metric.of_5": "out of 5 points",
  "metric.tool_call_rate": "Tool Call Rate",
  "metric.rows_shown": "Entries shown",
  "metric.total_rows": "Total rows in tool_eval.jsonl",
  "metric.total_reqs": "Total requests",
  "metric.avg_req": "avg / request",
  "metric.in": "↑ Input",
  "metric.out": "↓ Output",
  "metric.in_work": "in progress",
  "metric.waiting": "waiting",
  "metric.loaded": "loaded",
  "metric.avail_models": "Available Models",
  "metric.loaded_models": "Loaded Models",
  "metric.no_model": "No model loaded (Idle)",
  "metric.ollama_metrics": "Ollama Metrics",
  "metric.chromadb_docs": "ChromaDB Documents",
  "metric.neo4j_entities": "Neo4j Entities",
  "metric.neo4j_relations": "Neo4j Relations",
  "metric.ontology_entities": "Ontology Entities",
  "metric.planner_patterns": "Planner Patterns",
  "metric.ontology_gaps": "Ontology Gaps",
  "tip.factor": "Cost multiplier for token budget (1.0 = no surcharge)",
  "tip.tier": "",
  "tip.timeout": "API timeout per server in seconds (empty = global timeout)",
  "tip.active_toggle": "Enable or disable server (stays saved but not used)",
  "tip.tool_model": "The local LLM that executes tool calls (Bash, file access)",
  "tip.mode": "How text prompts are processed. Tool calls always go through the tool model.",
  "mode.native": "Native — Prompt directly to tool model (no MoE routing)",
  "mode.moe_reasoning": "MoE Reasoning — Prompt via reasoning expert (thinking blocks)",
  "mode.moe_orchestrated": "MoE Orchestrated — Full pipeline: Planner + all experts",
  "mode.native_short": "native — Direct to tool model",
  "mode.moe_reasoning_short": "moe_reasoning — Reasoning expert",
  "mode.moe_orchestrated_short": "moe_orchestrated — Full pipeline",
  "role.user": "User",
  "role.subscriber": "Subscriber",
  "role.expert": "Expert",
  "role.admin": "Administrator",
  "perm.expert_template": "Expert Template",
  "perm.cc_profile": "Claude Code Profile",
  "perm.native_llm": "Native LLMs",
  "perm.skills": "Skills",
  "perm.mcp_tools": "MCP Tools",
  "perm.all_skills": "Grant all skills",
  "perm.all_mcp": "Grant all MCP tools",
  "perm.advanced": "Advanced permissions (moe_mode)",
  "perm.reset": "Reset",
  "empty.no_users": "No users yet.",
  "empty.no_profiles": "No profiles yet. Click \"New Profile\" to create the first one.",
  "empty.no_templates": "No templates yet.",
  "empty.no_skills": "No skills yet. Create one or import from the Upstream tab.",
  "empty.no_requests": "No active requests",
  "empty.no_procs": "No completed processes yet",
  "empty.no_upstream": "No upstream skills found",
  "empty.no_tools": "No tools found",
  "empty.no_servers": "No servers configured",
  "empty.no_templates_user": "No templates available",
  "empty.no_cc_profiles_user": "No CC profiles available",
  "empty.click_tab": "Click the tab to load upstream skills…",
  "info.templates_desc": "Expert Templates define which LLMs are used per expert category — with optional system prompt",
  "info.templates_tiers": "Primary = first tier. Fallback = only if primary confidence is low. Always = forced ensemble.",
  "info.templates_perm": "Templates can be assigned in user permissions",
  "info.skills_desc": "Client-independent — resolved server-side for Claude Code, Continue.dev, Open Code, etc.",
  "info.skills_resolve": "Server-side resolution",
  "info.skills_how": "Any client can send /skill-name [args] — the MoE backend replaces the call with the skill content",
  "info.skills_tokens": "Tokens are only consumed on actual invocation",
  "info.skills_upstream": "Import skills to make them locally available. Only imported skills are resolved",
  "info.skill_arguments": "Use $ARGUMENTS as placeholder for passed arguments",
  "info.skill_name_hint": "Lowercase letters, digits and hyphens only. Becomes /name",
  "info.mcp_desc": "Enable/disable tools of the mcp-precision container",
  "info.pipeline_log_desc": "Routing transparency — which experts were engaged, complexity levels, latencies and agentic rounds per request.",
  "info.tool_eval_desc": "Recent tool handler calls — which models call tools vs. write prose?",
  "info.color_coding": "Color coding: ≤30s · ≤120s · >120s (suspected timeout)",
  "info.no_profiles_enabled": "No profiles enabled — fallback settings apply.",
  "info.forgot_pw_hint": "Enter your email address. You will receive a link to reset your password (valid for 1 hour).",
  "info.reset_sent": "If an account with this email address exists, an email with a reset link has been sent. Please check your inbox.",
  "info.tool_calls_always": "Tool calls always go through the tool model, regardless of mode.",
  "info.think_stream": "(shows pipeline progress: 📋 Planner analyzing…)",
  "info.claude_models_hint": "The model IDs Claude Code sends via ANTHROPIC_MODEL=... The MCP server accepts and routes these internally.",
  "info.reasoning_model_hint": "empty = from expert models",
  "info.upstream_source": "github.com/anthropics/skills",
  "info.ref_files": "Reference file(s)",
  "info.no_desc": "No description",
  "info.auto_refresh": "Auto-Refresh (10s)",
  "info.auto_5s": "Auto 5s",
  "info.updating": "Updating…",
  "portal.login_header": "MoE Portal Login",
  "portal.forgot_header": "Reset Password",
  "portal.reset_header": "Set New Password",
  "portal.forgot_link": "Forgot password?",
  "portal.pw_change_required": "Password Change Required",
  "portal.pw_change_hint": "For security reasons you must change your initial password before continuing.",
  "portal.sso_login": "Sign in with Authentik (SSO)",
  "portal.sidebar.dashboard": "Dashboard",
  "portal.sidebar.billing": "Billing",
  "portal.sidebar.usage": "Usage History",
  "portal.sidebar.api_keys": "API Keys",
  "portal.sidebar.templates": "My Templates",
  "portal.sidebar.cc_profiles": "CC Profiles",
  "portal.sidebar.profile": "Profile & Password",
  "portal.from_tokens": "of {n} tokens",
  "portal.remaining": "{n} remaining",
  "portal.chart_14d": "Token Usage (14 Days)",
  "portal.active_keys": "Active API Keys",
  "portal.manage": "Manage",
  "portal.no_keys_hint": "No keys yet. <a href='/user/keys'>Create one now</a>.",
  "portal.my_expert_config": "My Expert Configuration",
  "portal.category_col": "Category",
  "portal.models_col": "Models",
  "portal.no_experts": "No experts configured.",
  "portal.no_template_assigned": "No Expert Template assigned. The global default configuration will be used.",
  "portal.expert_tools_header": "Your Expert Tools",
  "portal.expert_tools_desc": "You have the <strong>Expert</strong> role – create your own templates and CC profiles based on your unlocked servers.",
  "portal.my_templates_link": "My Templates",
  "portal.cc_profiles_link": "CC Profiles",
  "portal.budget_updated": "Updated",
  "portal.budget_status": "Budget Status",
  "portal.period_col": "Period",
  "portal.total_col": "Total",
  "portal.limit_col": "Limit",
  "portal.remaining_col": "Remaining",
  "portal.progress_col": "Progress",
  "portal.reset_col": "Reset",
  "portal.period_daily": "Daily",
  "portal.period_monthly": "Monthly",
  "portal.period_total": "Total",
  "portal.no_reset": "no reset",
  "portal.usage_by_model": "Usage by Model (30 Days)",
  "portal.requests_col": "Requests",
  "portal.total_requests": "Total Requests",
  "portal.total_tokens_card": "Total Tokens",
  "portal.month_tokens": "Tokens this Month",
  "portal.days_7": "7 Days",
  "portal.days_30": "30 Days",
  "portal.days_90": "90 Days",
  "portal.filter_token": "Token Name",
  "portal.filter_mode": "Mode",
  "portal.filter_status": "Status",
  "portal.filter_from": "From",
  "portal.filter_to": "To",
  "portal.all_modes": "All Modes",
  "portal.all": "All",
  "portal.errors": "Errors",
  "portal.col_timestamp": "Timestamp",
  "portal.col_session": "Session ID",
  "portal.col_model": "Model / Template",
  "portal.col_api_key": "API Key",
  "portal.col_prompt": "Prompt",
  "portal.col_completion": "Completion",
  "portal.no_entries": "No entries in the selected period.",
  "portal.note_title": "Transaction Note",
  "portal.note_placeholder": "Your own note, comparison, observation…",
  "portal.note_edit": "Edit note",
  "portal.filter_reset_tip": "Reset filters",
  "portal.entries_shown": "{visible} of {all} entries",
  "portal.new_key_banner": "New API Key (visible only now — please save it securely!)",
  "portal.my_api_keys": "My API Keys",
  "portal.col_created": "Created",
  "portal.user_default": "(User Default)",
  "portal.revoke_confirm": "Really revoke this key?",
  "portal.revoke_key": "Revoke",
  "portal.no_api_keys": "No API keys yet.",
  "portal.label_edit_title": "Edit Token Label",
  "portal.create_key_title": "Create New API Key",
  "portal.key_label_optional": "Label (optional)",
  "portal.key_label_hint": "e.g. Claude Code Laptop",
  "portal.api_usage_title": "API Usage",
  "portal.api_bearer_desc": "Use your API key as Bearer token:",
  "portal.api_x_key_desc": "Or as <code>x-api-key</code> header (Anthropic-compatible):",
  "portal.save_error": "Error saving",
  "portal.my_data": "My Data",
  "portal.username_readonly": "Username (cannot be changed)",
  "portal.change_pw_hint": "Change password (leave empty to keep current)",
  "portal.pw_placeholder": "Min. 8 characters",
  "portal.timezone_header": "Timezone",
  "portal.timezone_desc": "The server stores all times in UTC. Set your local offset so that timestamps in the usage history match your local time.",
  "portal.saved": "Saved",
  "portal.alerts_header": "Token Limit Notifications",
  "portal.alerts_enable": "Enable notifications",
  "portal.threshold_label": "Warning threshold:",
  "portal.alert_email_label": "Notification Email",
  "portal.alert_email_hint": "Leave empty to use your profile email.",
  "portal.memory_header": "Conversation Memory",
  "portal.memory_desc": "Control how the system uses your past conversations.",
  "portal.memory_prefer_fresh": "Fresh start for every session",
  "portal.memory_prefer_fresh_hint": "Each conversation starts without access to earlier sessions. Recommended for sensitive topics.",
  "portal.memory_share_with_team": "Share conversation context with team",
  "portal.memory_share_with_team_hint": "Your turns are stored so team members can retrieve them. Only active when the template has cross-session enabled.",
  "portal.my_templates_title": "My Expert Templates",
  "portal.my_templates_desc": "Create your own expert configurations for unlocked inference servers. You can use these templates via your API keys as the <code>model</code> parameter.",
  "portal.admin_templates": "Templates shared by Admin",
  "portal.admin_read_only": "Read-only — copy to customize",
  "portal.own_count": "{n} own template(s)",
  "portal.copy_btn": "Copy",
  "portal.no_user_templates": "No templates created yet.",
  "portal.deactivated": "Deactivated",
  "portal.my_cc_profiles": "My CC Profiles",
  "portal.no_cc_profiles": "No CC profiles yet.",
  "portal.no_data_admin_hint": "No usage data for this account. Admins: view other users via 'User Management → Impersonate'.",
  "portal.key_note": "A key is only shown once at creation time. Make sure to copy it.",
  "portal.display_name_hint": "What should we call you?",
  "portal.cc_profiles_desc": "Create your own Claude Code profiles based on your unlocked inference servers. Each profile is immediately available via your API key.",
  "portal.btn_new_cc_profile": "New CC Profile",
  "portal.cc_default_badge": "Default",
  "portal.cc_granted_badge": "Granted",
  "portal.cc_edit_title": "Edit CC Profile",
  "portal.cc_name_placeholder": "My CC Profile",
  "portal.tmpl_edit_title": "Edit Template",
  "portal.tmpl_name_lbl": "Name",
  "portal.tmpl_name_placeholder": "My Template",
  "portal.tmpl_desc_lbl": "Description",
  "portal.tmpl_desc_placeholder": "Short description",
  "portal.tmpl_overrides_lbl": "Optional Model Overrides",
  "portal.tmpl_overrides_hint": "empty = global default models",
  "portal.tmpl_judge_model": "Judge Model",
  "portal.tmpl_planner_model": "Planner Model",
  "portal.tmpl_empty_default": "empty = default",
  "portal.tmpl_default": "Default",
  "portal.tmpl_judge_prompt": "Judge Prompt",
  "portal.tmpl_planner_prompt": "Planner Prompt",
  "portal.tmpl_judge_prompt_ph": "Optional system prompt for the Judge/Merger…",
  "portal.tmpl_planner_prompt_ph": "Optional system prompt for the Planner…",
  "portal.tmpl_expert_cats": "Expert Categories",
  "portal.tmpl_custom_cat": "Custom category",
  "warn.medical_legal.title": "Medical / Legal Expert Active",
  "warn.medical_legal.body": "One or more experts in this template handle medical or legal queries. AI-generated output in these domains does NOT constitute professional advice. Ensure appropriate access controls and data retention limits are in place. A Data Protection Impact Assessment (DPIA) may be required.",
  "footer.text": "Sovereign MoE Orchestrator — Admin UI",
  "footer.portal": "Sovereign MoE Portal",
  "wizard.title": "First-Time Setup",
  "wizard.done.flash": "Setup complete — your MoE Sovereign instance is ready.",
  "wizard.step1.title": "Welcome to MoE Sovereign",
  "wizard.step1.body": "Before you can use the system, at least one LLM inference server must be configured. This wizard will guide you through the minimum setup in a few steps.",
  "wizard.step2.title": "Inference Servers",
  "wizard.step2.hint": "Add your Ollama, OpenAI-compatible, LiteLLM, or vLLM endpoint. You can add more later via Configuration.",
  "wizard.step3.title": "Core Models",
  "wizard.step3.hint": "Select the Judge (merger) and optionally a separate Planner model from your configured servers.",
  "wizard.step4.title": "Public Access URLs",
  "wizard.step4.hint": "Optional — set your public domain if you are exposing MoE Sovereign via a reverse proxy. Leave blank for local use.",
  "wizard.btn.next": "Continue",
  "wizard.btn.finish": "Launch Dashboard",
  "wizard.btn.skip": "Skip",
  "quarantine.title": "Knowledge Graph Quarantine",
  "quarantine.desc": "Triples with high blast-radius (many connected entities) await manual review before being written to Neo4j.",
  "quarantine.subject": "Subject",
  "quarantine.relation": "Relation",
  "quarantine.object": "Object",
  "quarantine.reach": "Reach",
  "quarantine.source": "Source Model",
  "quarantine.confidence": "Confidence",
  "quarantine.timestamp": "Timestamp",
  "quarantine.actions": "Actions",
  "quarantine.empty": "No quarantined triples. All clear!",
  "perm.graph_tenant": "Graph Tenant",
  "perm.graph_tenant.help": "Controls which Neo4j knowledge graph partition the user can see and write to.",
  "tmpl.categories": "categories",
  "tmpl.privacy.local": "Local Only",
  "tmpl.privacy.mixed": "Mixed (External APIs)",
  "tmpl.privacy.external": "External",
  "nav.teams": "Teams & Mandanten",
  "info.teams_desc": "Wissen hierarchisch organisieren: User → Team → Mandant → Global",
  "tab.teams": "Teams",
  "tab.tenants": "Mandanten",
  "tab.promote_knowledge": "Wissen promoten",
  "info.promote_desc": "Wissen aus einem Namespace in einen übergeordneten Namespace übertragen.",
  "label.from_namespace": "Von Namespace",
  "label.to_namespace": "Zu Namespace",
  "label.entity_filter": "Entitäten-Filter",
  "hint.optional_comma_sep": "kommagetrennt, optional",
  "btn.promote": "Promoten",
  "btn.create_team": "Team erstellen",
  "btn.create_tenant": "Mandant erstellen",
  "btn.add_member": "Mitglied hinzufügen",
  "btn.show_members": "Mitglieder anzeigen",
  "btn.budget": "Budget",
  "label.team_name": "Team-Name",
  "label.tenant_name": "Mandant-Name",
  "label.tenant_optional": "Mandant (optional)",
  "label.role": "Rolle",
  "opt.no_tenant": "Kein Mandant",
  "col.member": "Mitglied",
  "col.role": "Rolle",
  "empty.no_teams": "Noch keine Teams angelegt.",
  "empty.no_tenants": "Noch keine Mandanten angelegt.",
  "empty.no_members": "Keine Mitglieder",
  "state.loading": "Loading...",
  "title.maintenance": "Maintenance — MoE Admin",
  "title.benchmarks": "Benchmarks — MoE Admin",
  "js.active_servers": "active servers",
  "js.no_ontology_servers": "No ontology servers configured",
  "js.loading_error": "Error loading",
  "js.no_output_since": "no output for 5 min",
  "js.select_template_first": "Please select a template.",
  "js.start_failed": "Start failed",
  "js.start_error": "Error starting",
  "js.healer_started_unverified": "Healer was started, but no active request was visible in Live Monitoring within 15 s.\nPlease check the orchestrator logs and verify the template is correctly configured.",
  "js.confirm_stop_healer": "Stop Dedicated Healer?",
  "js.could_not_start": "Could not start",
  "js.no_orphans_found": "No orphans found. System clean.",
  "js.active_servers_label": "Active servers:",
  "js.scanning": "Scanning…",
  "js.cleaning": "Cleaning…",
  "js.confirm_cleanup": "Run cleanup? Templates with DeadNode pins will be repinned to fallback node, orphaned curator templates deleted, Neo4j entities marked as deprecated.",
  "js.checking": "Checking…",
  "js.regenerating_dashboard": "Regenerating dashboard…",
  "btn.save_short": "Save",
  "btn.now": "Now",
  "js.never": "Never",
  "lbl.checkpoint_archive": "Checkpoint Archive",
  "lbl.last_run": "Last run",
  "lbl.duration": "Duration",
  "lbl.freed": "Freed",
  "lbl.total_runs": "Total runs",
  "lbl.job_active": "Job active",
  "js.config_saved": "Configuration saved",
  "lbl.live_db_rows": "Live DB rows to keep",
  "lbl.archive_retention": "Archive retention (days)",
  "lbl.max_file_size": "Max file size (MB)",
  "lbl.backup_files": "Backup files",
  "lbl.max_storage": "Max storage (MB)",
  "lbl.retention_days": "Retention (days)",
  "msg.prometheus_restart_note": "Prometheus restart required after change.",
  "btn.konfig": "Config",
  "js.job_started": "Job started",
  "lbl.entries": "entries",
  "js.orphan_curator_templates": "Orphaned curator templates",
  "js.templates_deadnode_pin": "Templates with @DeadNode pin",
  "js.user_templates_deadnode": "User templates with DeadNode",
  "js.user_cc_profiles_deadnode": "User CC profiles with DeadNode",
  "js.valkey_keys": "Valkey keys",
  "js.neo4j_curator_entities": "Neo4j curator entities",
  "js.pieces": "entries",
  "js.prometheus_stale_targets": "Prometheus stale targets",
  "js.cleanup_done": "Cleanup complete",
  "js.warnings": "Warnings",
  "js.all_templates_ok_prefix": "All",
  "js.all_templates_ok_suffix": "templates ok — all models physically available.",
  "js.verified_prefix": "Checked",
  "js.with_issues": "with issues",
  "js.problem": "Problem",
  "js.model_missing": "missing",
  "js.node_not_exist": "Node does not exist",
  "js.node_unreachable": "Node unreachable",
  "js.confirm_pull_missing": "Pull missing models via Ollama? This may take several minutes per model.",
  "js.pull_done": "Pull complete",
  "js.dashboard_updated": "Dashboard updated.",
  "js.bench_running": "Benchmark running",
  "js.bench_system_locked": "The system is locked for regular API users.",
  "js.bench_start": "Start Benchmark",
  "js.overnight_runs": "Overnight Runs",
  "js.single_runs": "Single Runs",
  "js.runner_log": "Runner Log",
  "js.waiting_for_log": "Waiting for log data…",
  "js.result": "Result",
  "js.preflight_not_checked": "Not checked yet. Click \"Verify\" before starting.",
  "js.bench_template_placeholder": "e.g. moe-m10-gremium-deep",
  "js.epochs": "Epochs",
  "js.bench_info": "The benchmark runs as a background process. While running, the system is locked for regular API users. Please run the pre-flight check before starting.",
  "js.start_now": "Start now",
  "js.no_log_available": "No log available.",
  "js.load_error": "Error",
  "js.no_overnight_runs": "No overnight runs found.",
  "js.no_single_runs": "No single runs found.",
  "js.no_bench_active": "No active benchmark",
  "js.last_overnight_run": "Last overnight run",
  "js.bench_is_running": "Running",
  "js.clear_lock_manual": "Clear lock manually",
  "js.epochs_summary": "Epochs (eval data)",
  "js.no_eval_data": "No eval data available yet.",
  "js.no_data": "No data.",
  "js.no_test_entries": "No test entries found.",
  "js.total_duration": "Total duration",
  "js.tests": "Tests",
  "js.avg_score": "Avg Score",
  "js.test_id": "Test ID",
  "js.score": "Score",
  "js.status_error": "Error",
  "js.status_timeout": "Timeout",
  "js.run_id": "Run ID",
  "js.eval_file": "Eval file",
  "js.confirm_delete_run": "Really delete run?",
  "js.deleted": "Deleted",
  "js.confirm_clear_lock": "Really clear lock manually? Only if the process has already ended.",
  "js.lock_cleared": "Lock cleared.",
  "js.bench_started": "Benchmark started",
  "js.trigger_written": "Trigger file written — host watcher will start the benchmark.",
  "js.fill_all_fields": "Please fill in all fields.",
  "js.starting": "Starting",
  "js.preflight_ready": "System ready — benchmark can be started.",
  "js.preflight_fail": "Not all checks passed. Please review.",
  "js.score_details": "Score details",
  "js.turn": "Turn",
  "js.report": "Report",
  "js.epoch": "Epoch",
  "js.epochs_overview": "Epochs overview",
  "js.graph_entities_delta": "Graph entities Δ",
  "js.cache_hit_rate": "Cache hit rate",
  "js.compressions": "Compressions",
  "js.lock_detail": "Lock detail",
  "js.team_deleted": "Team \"{name}\" deleted",
  "js.delete_error": "Error deleting",
  "js.tenant_deleted": "Tenant \"{name}\" deleted",
  "js.confirm_delete_team": "Really delete team \"{name}\"?",
  "js.confirm_delete_tenant": "Really delete tenant \"{name}\"?",
  "lbl.daily_token_limit": "Daily limit (tokens, empty = no limit)",
  "js.member_added": "Member added",
  "js.scope_global": "→ Global (public)",
  "js.n_entities": "{n} entities",
  "js.entities_all": "all",
  "js.entities_promoted": "entities promoted:",
  "js.confirm_block_server": "Fully block server \"{name}\"?\n\nThe server will be removed from all routing pools. No LLMs will be loaded.\nThe block takes effect immediately and persists after container restart.",
  "js.models_available": "models available",
  "js.mcp_server_unavail": "MCP server not reachable. Is the mcp-precision container running?",
  "js.mcp_calls_log_note": "MCP calls will be logged after the next container restart.",
  "js.entries_shown": "{shown} entries shown, {total} total lines in tool_eval.jsonl",
  "js.confirm_delete_template": "Really delete template \"{name}\"?",
  "js.confirm_delete_cc_profile": "Really delete CC profile \"{name}\"?",
  "btn.close": "Close",
  "js.prometheus_reloading": "Reloading Prometheus…",
  "js.prometheus_reloaded": "Prometheus reloaded.",
  "js.gaia_runs": "GAIA Runs",
  "js.no_gaia_runs": "No GAIA runs found.",
  "js.gaia_started": "GAIA benchmark started",
  "js.bench_type": "Benchmark type",
  "js.bench_type_overnight": "Overnight (multi-epoch)",
  "js.bench_type_gaia": "GAIA (HuggingFace)",
  "js.gaia_levels": "Levels",
  "js.gaia_max_per_level": "Max questions per level",
  "js.gaia_question": "Question",
  "js.gaia_expected": "Expected",
  "js.gaia_answer": "Answer",
  "js.gaia_correct": "Correct",
  "js.gaia_level": "Level",
  "js.overall": "Overall",
  "js.correct_of": "correct of",
  "js.longmemeval_runs": "LongMemEval Runs",
  "js.no_longmemeval_runs": "No LongMemEval runs found.",
  "js.longmemeval_started": "LongMemEval benchmark started",
  "js.bench_type_longmemeval": "LongMemEval (Memory)",
  "js.longmemeval_max_q": "Max questions",
  "lbl.sa_benchmarks": "Service Account — Benchmarks & Gap Healer",
  "msg.sa_benchmarks_desc": "Template permissions for the API key from",
  "msg.sa_benchmarks_note": "Only templates listed here can be used by the GAIA runner and Gap Healer.",
  "lbl.sa_add_template": "— Add template —",
  "portal.sidebar.connections": "My Connections",
  "portal.my_connections_title": "My API Connections",
  "portal.my_connections_desc": "Add private inference endpoints (OpenAI-compatible or Ollama). Use the connection name as endpoint in your own templates or as <code>model@name</code> in native mode.",
  "portal.btn_new_connection": "New Connection",
  "portal.conn_name_lbl": "Name (handle)",
  "portal.conn_name_hint": "Short slug, 1–32 chars: letters, digits, _ or -. Cannot be changed later.",
  "portal.conn_display_name_lbl": "Display name",
  "portal.conn_url_lbl": "API base URL",
  "portal.conn_api_type_lbl": "API type",
  "portal.conn_api_key_lbl": "API key",
  "portal.conn_api_key_hint": "Leave blank to keep the existing key",
  "portal.conn_type_openai": "OpenAI-compatible",
  "portal.conn_type_ollama": "Ollama",
  "portal.conn_show_models": "Models",
  "portal.conn_models_count": "models cached",
  "portal.conn_col_model": "Model",
  "portal.conn_col_context": "Context",
  "portal.conn_col_size": "Size",
  "portal.conn_no_models": "No models cached — click Refresh",
  "portal.conn_usage_hint": "In templates: endpoint = <code>{name}</code> &nbsp;|&nbsp; Native mode: <code>model@{name}</code>",
  "portal.btn_test_conn": "Test",
  "portal.btn_refresh_models": "Refresh Models",
  "portal.conn_test_ok": "Connected",
  "portal.conn_test_fail": "Connection failed",
  "portal.conn_name_conflict": "Name conflicts with a global server name",
  "js.confirm_delete_connection": "Really delete this connection?",
  "btn.audit": "Audit",
  "btn.refresh_ext_audits": "Refresh External Audits",
  "info.skillssh_audit": "skills.sh Rating",
  "js.audit_complete": "Audit complete: {verdict}",
  "js.audit_required": "Please run an audit first",
  "section.endpoint_availability": "Endpoint Availability (24h)",
  "section.endpoint_budget": "API Endpoint Budget",
  "info.backup_before_import": "Save all current templates as a JSON backup",
  "dialog.import_mode_question": "What should happen when a name already exists?",
  "dialog.import_merge_title": "Add new only",
  "dialog.import_merge_desc": "Existing entries remain unchanged",
  "dialog.import_replace_title": "Overwrite existing",
  "dialog.import_replace_desc": "Entries with the same name will be replaced",
  "lbl.pipeline_log": "Pipeline Log",
  "lbl.complexity": "Complexity",
  "lbl.from": "From",
  "lbl.to": "To",
  "lbl.limit": "Limit",
  "lbl.requested_at": "Timestamp",
  "lbl.last_24h": "Last 24 hours",
  "starfleet_features": "Starfleet Features",
  "feature": "Feature",
  "source": "Source",
  "action": "Action",
  "enable": "Enable",
  "disable": "Disable",
  "feat_watchdog": "Proactive Watchdog",
  "feat_mission_context": "Mission Context",
  "feat_adaptive_ui": "Adaptive Dashboard",
  "feat_infra_mcp": "Infra MCP Tools",
  "mission_context": "Mission Context",
  "open_tasks": "Open Tasks",
  "recent_decisions": "Recent Decisions",
  "watchdog_alerts": "Watchdog Alerts",
  "nominal": "Nominal",
  "no_alerts": "No alerts — system nominal",
  "watchdog_config": "Watchdog Configuration",
  "loading": "Loading",
  "down_threshold": "Down threshold (cycles)",
  "down_threshold_hint": "Consecutive missed cycles before a NODE_DOWN alert fires",
  "vram_threshold_pct": "VRAM threshold (%)",
  "vram_threshold_hint": "VRAM usage level that triggers a VRAM_HIGH alert",
  "stuck_minutes": "Benchmark stuck limit (min)",
  "stuck_minutes_hint": "Frozen active requests after this duration trigger an alert",
  "email_escalation": "Email Escalation",
  "email_escalation_enabled": "Enable escalation emails",
  "escalation_to": "Recipient address",
  "escalation_cooldown": "Cooldown (min)",
  "cooldown_hint": "Minimum time between two emails for the same alert type",
  "escalation_severities": "Escalate severities",
  "save": "Save",
  "send_test_mail": "Send test mail",
  "btn.open": "Open",
  "nav.codex": "MoE Codex ↗",
  "nav.enterprise": "Codex",
  "nav.codex_platform":     "Platform",
  "nav.codex_bi":           "BI & Analytics",
  "nav.codex_investigation":"Investigation",
  "nav.codex_pipelines":    "Pipelines & Content",
  "nav.codex_security":     "Security",
  "page.enterprise": "Codex",
  "section.lineage_runs": "Recent Lineage Runs (Marquez)",
  "status.healthy": "Healthy",
  "status.degraded": "Degraded",
  "status.down": "Down",
  "lbl.url": "URL",
  "lbl.latency": "Latency",
  "lbl.reachable": "Reachable",
  "lbl.job": "Job",
  "lbl.run_id": "Run ID",
  "lbl.state": "State",
  "lbl.started_at": "Started",
  "lbl.enterprise_not_configured": "moe-codex is not connected — set CODEX_URL in .env and deploy moe-codex.",
  "lbl.marquez_not_configured": "No lineage runs recorded yet — trigger a pipeline to emit OpenLineage events.",
  "lbl.lakefs_not_configured": "No bundle versions yet — run a knowledge import through moe-codex to create the first commit.",
  "section.bundle_versions": "Knowledge Bundle Versions (lakeFS)",
  "lbl.commit": "Commit",
  "lbl.message": "Message",
  "lbl.author": "Author",
  "lbl.committed_at": "Committed",
  "section.etl_pipeline": "ETL Pipeline (NiFi)",
  "lbl.version": "Version",
  "lbl.uptime": "Uptime",
  "lbl.threads": "Threads",
  "lbl.heap": "Heap",
  "lbl.ingest": "Ingest",
  "nav.catalog": "Catalog",
  "page.catalog": "Data Catalog",
  "lbl.search_filter": "Filter by name, type, or domain...",
  "lbl.all_sources": "All sources",
  "lbl.type": "Type",
  "lbl.size": "Size",
  "lbl.domain": "Domain",
  "nav.approval": "Approvals",
  "page.approval": "Knowledge Bundle Approvals",
  "lbl.approval_intro": "Bundles staged on lakeFS pending branches. Review the source tag and entity count before merging into the live graph.",
  "lbl.branch": "Branch",
  "lbl.source_tag": "Source tag",
  "lbl.entities": "Entities",
  "lbl.submitted_at": "Submitted",
  "lbl.actions": "Actions",
  "btn.approve": "Approve",
  "btn.reject": "Reject",
  "lbl.no_pending": "No pending bundles.",
  "lbl.confirm_approve": "Approve and merge this bundle into the knowledge graph?",
  "lbl.confirm_reject": "Reject and delete this pending branch?",
  "lbl.approving": "Approving",
  "lbl.rejecting": "Rejecting",
  "lbl.rejected": "rejected",
  "section.data_health": "Data Health (drift events)",
  "lbl.severity": "Severity",
  "lbl.declared_entities": "Declared",
  "lbl.delta_entities": "Δ entities",
  "lbl.delta_relations": "Δ relations",
  "lbl.flags": "Flags",
  "nav.explorer": "Explorer",
  "page.explorer": "Object Explorer",
  "lbl.open_neo4j_browser": "Open Neo4j Browser",
  "lbl.explorer_readonly_notice": "Read-only Cypher endpoint. Write keywords (CREATE / DELETE / SET / MERGE / REMOVE / DROP) are rejected before reaching the database.",
  "lbl.cypher_query": "Cypher query",
  "lbl.preset_select": "— Preset —",
  "lbl.preset_top_entities": "Top entities by trust",
  "lbl.preset_domains": "Domain breakdown",
  "lbl.preset_schema": "Schema visualisation",
  "lbl.preset_recent": "Recent entities",
  "btn.run_query": "Run",
  "lbl.no_query_run": "No query has been run yet",
  "lbl.running": "running",
  "lbl.error": "Error",
  "lbl.row": "row",
  "lbl.rows": "rows",
  "lbl.limit_reached": "limit reached",
  "nav.notebook": "Notebook",
  "page.notebook": "Notebook (JupyterLab)",
  "page.link_analysis": "Link Analysis",
  "page.timeline": "Timeline",
  "page.kestra": "Pipeline Builder",
  "page.forms": "Dynamic Forms",
  "page.search": "Federated Search",
  "page.charts": "Charts & Pivot",
  "page.superset": "Analytics / BI",
  "page.compliance": "Compliance Posture",
  "page.geo":        "Geospatial",
  "page.timeseries": "Time Series",
  "page.notes":      "Notes & Reports",
  "page.workshop":   "Workshop",
  "page.dossier":    "Case File",
  "lbl.notebook_intro": "JupyterLab runs as a server-side container with a full Python kernel and all data science packages. Use the snippets below to call the orchestrator API from a notebook cell.",
  "lbl.snippets": "Snippets",
  "lbl.copy_paste_snippets": "Copy-paste-ready snippets",
  "lbl.snippet_export": "Export",
  "lbl.snippet_import": "Import (pending)",
  "lbl.snippet_search": "Search",
  "lbl.snippet_cypher": "Cypher",
  "lbl.snippet_runs": "Lineage runs",
  "lbl.open_full_window": "Open in new tab",
  "nav.token_timeline": "Token Timeline",
  "lbl.tt_session": "Session",
  "lbl.tt_tokens": "Tokens",
  "lbl.tt_template": "Template",
  "lbl.tt_no_data": "No data",
  "lbl.tt_1d": "Last 24 h",
  "lbl.tt_7d": "Last 7 days",
  "lbl.tt_30d": "Last 30 days",
  "lbl.tt_90d": "Last 90 days",
  "lbl.perm_cleanup": "Permission cleanup",
  "msg.perm_cleanup_desc": "Scans and removes model_endpoint permissions that reference inference servers which no longer exist in the system configuration.",
  "btn.perm_cleanup_run": "Clean up permissions",
  "msg.perm_cleanup_click_scan": "Click \"Scan\" to detect stale entries.",
  "js.no_stale_permissions": "No stale permissions found. System clean.",
  "js.stale_permissions_found": "stale permission(s) detected",
  "js.confirm_perm_cleanup": "Delete all stale model_endpoint permissions? This cannot be undone.",
  "js.perm_cleanup_done": "Deleted permissions",
  "lbl.template_ref_cleanup": "Template Reference Cleanup",
  "msg.template_ref_cleanup_desc": "Scans all CC profiles for stale expert_template_id references that point to non-existent admin or user templates, and clears them.",
  "btn.template_ref_scan": "Scan references",
  "btn.template_ref_cleanup": "Clear stale",
  "msg.template_ref_click": "Click \"Scan references\" to find stale template references.",
  "js.no_stale_template_refs": "No stale template references found. System clean.",
  "js.stale_template_refs_found": "stale template reference(s) found",
  "js.confirm_template_ref_cleanup": "Clear stale expert_template_id entries from CC profiles and invalidate user caches. Proceed?",
  "js.template_ref_cleanup_done": "Template references cleaned up",

  "portal.sidebar.audit_log": "Audit Log",
  "portal.audit_log.title": "My Audit Log",
  "portal.audit_log.subtitle": "History of your requests and responses",
  "portal.audit_log.col_time": "Time",
  "portal.audit_log.col_model": "Model",
  "portal.audit_log.col_mode": "Mode",
  "portal.audit_log.col_prompt": "Request",
  "portal.audit_log.col_tokens": "Tokens",
  "portal.audit_log.col_latency": "Latency",
  "portal.audit_log.empty": "No entries yet. Requests will be logged here once you use the API.",
  "portal.audit_log.search_placeholder": "Search in requests and responses…",
  "portal.audit_log.date_from": "From",
  "portal.audit_log.date_to": "To",
  "portal.audit_log.btn_reset": "Reset",
  "portal.audit_log.btn_export_csv": "CSV Export",
  "portal.audit_log.btn_export_json": "JSON Export",
  "portal.audit_log.modal_prompt": "Request",
  "portal.audit_log.modal_response": "Response",
  "portal.audit_log.modal_meta": "Metadata",
  "portal.audit_log.btn_copy": "Copy",
  "portal.audit_log.retention_title": "Retention Period",
  "portal.audit_log.retention_label": "Keep logs for",
  "portal.audit_log.retention_days": "days",
  "portal.audit_log.retention_save": "Save",
  "portal.audit_log.retention_hint": "Maximum retention: {max} days. Older files are deleted daily.",
  "portal.audit_log.disabled": "Audit logging is disabled.",
  "skill.detect.xlsx": "excel,spreadsheet,table,worksheet,xlsx,xls,tabular data,create spreadsheet,make spreadsheet,build spreadsheet,excel file,workbook",
  "skill.detect.docx": "word,document,docx,word document,word file,letter,report,text document,write document",
  "skill.detect.pptx": "powerpoint,presentation,slides,pptx,slide deck,slideshow,create presentation,make slides",
  "skill.detect.web": "create website,build website,make website,html page,web app,browser game,browser app,build html,create html,webapp,landing page",
  "skill.detect.pdf": "create pdf,generate pdf,export as pdf,pdf output,pdf file,save as pdf"
}