{
  "banner": {
    "ready": {
      "antigravity": "🟢 comfyui-mcp agent ready — {label} on your Google AI subscription via Antigravity CLI. Note: agy turns show final answers only (no live tool progress). Ask away.",
      "atlascloud": "🟢 comfyui-mcp agent ready — {label} via Atlas Cloud. Ask away.",
      "chatgpt": "🟢 comfyui-mcp agent ready — {label} on your ChatGPT subscription (direct OAuth). Ask away.",
      "claude": "🟢 comfyui-mcp agent ready — {label} on your Claude subscription. Ask away.",
      "codex": "🟢 comfyui-mcp agent ready — {label} on your Codex (ChatGPT) account. Ask away.",
      "copilot": "🟢 comfyui-mcp agent ready — {label} on your GitHub Copilot subscription (⚠️ experimental, ToS risk — you opted in). Ask away.",
      "custom": "🟢 comfyui-mcp agent ready — {label} via your custom endpoint ({url}). Ask away.",
      "gemini": "🟢 comfyui-mcp agent ready — {label} on your Google account (Gemini Code Assist). Ask away.",
      "glm": "🟢 comfyui-mcp agent ready — {label} on your Z.AI GLM Coding Plan. Ask away.",
      "grok": "🟢 comfyui-mcp agent ready — {label} on your Grok (xAI) account. Ask away.",
      "kimi": "🟢 comfyui-mcp agent ready — {label} on your Kimi Code subscription. Ask away.",
      "llamacpp": "🟢 comfyui-mcp agent ready — {label} running locally via llama.cpp (no account, no API key). Small local models are slower and simpler than frontier ones — expect fewer frills. Ask away.",
      "lmstudio": "🟢 comfyui-mcp agent ready — {label} running locally via LM Studio (no account, no API key). Small local models are slower and simpler than frontier ones — expect fewer frills. Ask away.",
      "minimax": "🟢 comfyui-mcp agent ready — {label} on your MiniMax platform API key. Ask away.",
      "moonshot": "🟢 comfyui-mcp agent ready — {label} on your Moonshot platform (Kimi K3) API key. Ask away.",
      "ollama": "🟢 comfyui-mcp agent ready — {label} running locally via Ollama (no account, no API key). Small local models are slower and simpler than frontier ones — expect fewer frills. Ask away.",
      "openrouter": "🟢 comfyui-mcp agent ready — {label} via OpenRouter (hosted API, your OPENROUTER_API_KEY). Ask away.",
      "pi": "🟢 comfyui-mcp agent ready — {label} via the pi CLI on your own provider credential (found on this machine; pi checks it on your first message). Note: pi has no ComfyUI tools (no MCP) — it works with its own coding tools on the local workspace, not the panel canvas. Ask away."
    }
  },
  "cli": {
    "cannot_start": "ComfyUI MCP — cannot start: {error}",
    "connect_bridge_secure": "wss:// secure Cloudflare tunnel (auto — URL is printed when ready)",
    "connect_label_bridge": "Agent bridge",
    "connect_label_driving": "Driving",
    "connect_label_secure": "Secure",
    "connect_next_steps": "Next steps:",
    "connect_quiet_note": "Until you click Connect this window stays quiet — that's expected, not\na hang. The agent runs HERE on your Claude/Codex login; nothing is\ninstalled on the ComfyUI box. Keep this terminal open.",
    "connect_secure_note": "the pod's HTTPS panel connects automatically over an\nencrypted tunnel — the URL is printed when ready.",
    "connect_step_click_connect": "Click Connect in the panel (the Agent panel's Connect dropdown).",
    "connect_step_open_comfyui": "Open that ComfyUI in your browser: {url}",
    "connect_title": "local agent bridge is starting",
    "connect_url_invalid": "Invalid ComfyUI URL passed to `connect`: \"{url}\" ({reason}). Pass a full http(s) URL, e.g. https://abcd-3000.proxy.runpod.net or http://127.0.0.1:8188.",
    "help_active": "(active: {locale})",
    "help_allow_unauth": "allow an OPEN /mcp on a non-loopback host",
    "help_comfyui_url": "target a specific (incl. remote) ComfyUI",
    "help_compact": "register only the three meta-tools",
    "help_default": "(default: {value})",
    "help_full": "register the full direct tool surface",
    "help_full_reference": "Full reference: {url}",
    "help_help": "show this and exit",
    "help_host": "HTTP bind host",
    "help_http": "streamable-HTTP transport",
    "help_insecure_bridge": "allow an unauthenticated panel bridge",
    "help_lang": "language for this CLI's own output",
    "help_panel_orchestrator": "run the background orchestrator that drives the panel",
    "help_port": "HTTP bind port",
    "help_same_as_value": "same, as a value",
    "help_section_panel": "PANEL / COMFYUI",
    "help_section_tool_surface": "TOOL SURFACE",
    "help_section_transport": "TRANSPORT",
    "help_section_usage": "USAGE",
    "help_stdio": "stdio transport",
    "help_tagline": "drive ComfyUI from an AI agent",
    "help_token": "require this shared secret on /mcp",
    "help_tunnel": "open a cloudflared quick tunnel (implies --http)",
    "help_usage_connect": "run the panel orchestrator against a (possibly remote) ComfyUI",
    "help_usage_launcher": "manage the panel autostart companion",
    "help_usage_server": "start the MCP server",
    "help_usage_setup": "write the comfyui entry into that harness's config, then exit",
    "launcher_failed": "ComfyUI MCP launcher {action} failed: {error}",
    "launcher_installed": "✓ ComfyUI MCP panel launcher installed for this user.",
    "launcher_installed_note": "MCP itself still starts only when the Agent panel asks for it.",
    "launcher_uninstalled": "✓ ComfyUI MCP panel launcher uninstalled.",
    "launcher_usage": "Usage: {command}",
    "setup_copilot_check": "Run `copilot` and check the server with /mcp show.",
    "setup_dry_run": "— dry run: would write {path} as —",
    "setup_failed": "comfyui-mcp setup failed: {error}",
    "setup_hermes_reload": "In a running Hermes session type /reload-mcp (or restart Hermes).",
    "setup_hermes_tool_names": "Tools appear as mcp_comfyui_list_tools / _describe_tool / _call_tool.",
    "setup_next_steps": "Next steps:",
    "setup_note_compact": "Compact tool mode is ON: the model gets list_tools/describe_tool/call_tool instead of ~200 schemas (rerun with --full for the complete surface).",
    "setup_note_full": "Full tool mode: ~200 tool schemas — right for frontier models (rerun with --compact for small/local models).",
    "setup_note_local_models": "Local models: gemma4 (e4b or larger), qwen3, llama3.1+ have native tool calling; gemma3 does not.",
    "setup_openclaw_restart": "Restart the OpenClaw gateway to pick up the new server.",
    "setup_unknown_agent": "Unknown agent \"{agent}\".",
    "setup_usage": "Usage: {command}",
    "setup_what_it_does": "Writes the comfyui MCP server entry into the agent's own config file.",
    "setup_wrote": "✓ Added the \"comfyui\" MCP server to {path}",
    "tunnel_desktop_connector_path": "Claude Desktop → Settings → Connectors → Add custom connector:",
    "tunnel_field_header": "Header",
    "tunnel_field_name": "Name",
    "tunnel_field_url": "URL",
    "tunnel_header_alt": "(or Authorization: Bearer {token})",
    "tunnel_headless_snippet": "Headless / programmatic config snippet:",
    "tunnel_keep_open": "Keep this terminal open — the tunnel closes when the process exits.",
    "tunnel_label_public_url": "Public MCP URL",
    "tunnel_label_token": "Auth token",
    "tunnel_title": "Remote / Hosted Connector is LIVE"
  },
  "console": {
    "credentials": {
      "advanced": "Advanced ↗",
      "badge_set": "set · {masked}",
      "badge_unset": "not set",
      "close": "Close",
      "load_failed": "Could not load status — reconnect the panel.",
      "paste_key": "Paste key…",
      "privacy": "Stored locally, per instance. Values never leave this machine.",
      "save": "Save",
      "save_failed": "save failed",
      "saved": "Saved ✓",
      "saving": "Saving…",
      "title": "API Keys"
    },
    "landing": {
      "api": {
        "heading": "API"
      },
      "connection": {
        "endpoints": "Bridge {bridge} · ComfyUI {comfyui}",
        "heading": "Connection"
      },
      "here": {
        "a2ui": "A2UI-rich tool surfaces",
        "heading": "Coming here (panel stays in ComfyUI)",
        "library": "LoRA library, image collections, Photomap-style tooling",
        "lifecycle": "Start / stop / restart orchestrator",
        "mcp": "MCP server mappings & inherited {file} tools",
        "oauth": "OAuth & API provider sign-in",
        "prompts": "Editable system prompts — {link}",
        "prompts_link": "open the editor"
      },
      "panel": {
        "connect": "Connect / Disconnect to this bridge",
        "heading": "Stays in the ComfyUI panel",
        "pickers": "Provider / model / effort pickers & context window meter",
        "storyboards": "Video storyboards & live graph edits"
      },
      "status": {
        "failed": "Could not load status",
        "install_cli": "install CLI",
        "loading": "Loading provider readiness…",
        "none": "no backends",
        "ready": "ready",
        "running": "Orchestrator running",
        "sign_in": "sign in"
      },
      "subtitle": "Control plane for the panel orchestrator — MCP servers, OAuth, and service settings. The ComfyUI sidebar panel stays focused on chat, providers, and the live canvas.",
      "title": "ComfyUI MCP Console"
    },
    "prompts": {
      "advanced": "Advanced ↗",
      "badge_custom": "customised",
      "badge_default": "built-in default",
      "close": "Close",
      "copy_default": "Copy it into the editor",
      "empty": "No editable prompts are registered yet. Start the orchestrator, then reload this page.",
      "intro": "Every system prompt the orchestrator controls, as the agent actually receives it. Your text is stored in {file} — the built-in stays untouched, so Reset always brings it back.",
      "load_failed": "Could not load the prompts — reconnect the panel.",
      "placeholder": "Using the built-in default — type here to override it.",
      "reset": "Reset to built-in",
      "reset_failed": "reset failed",
      "resetting": "Resetting…",
      "save": "Save",
      "save_failed": "save failed",
      "saved": "Saved ✓",
      "saving": "Saving…",
      "title": "System Prompts",
      "view_default": "View the built-in default"
    },
    "unauthorized": "Unauthorized — reconnect the panel."
  },
  "say": {
    "blind_cli_native_tools": "Heads-up: the {backend} CLI keeps its own built-in file tools, which Blind cannot gate mechanically — the comfyui tools still withhold pixels, but the CLI itself could read image files. For a hard no-pixels guarantee use the Claude backend or an API/local provider.",
    "blind_off": "Blind mode OFF — the agent's image tools deliver pixels again (applies after the current turn).",
    "blind_on": "Blind mode ON — the agent's image tools now withhold pixels (applies after the current turn; the session resumes automatically).",
    "custom_no_base_url": "No endpoint configured — set the base URL in Settings → Custom endpoint (include the /v1, e.g. http://192.168.1.20:8000/v1 for vLLM, or a hosted provider's OpenAI-compatible URL), plus “Set API key…” if the server needs one. Both apply immediately — then Connect again.",
    "degraded": {
      "antigravity": "The background agent isn't responding — the Antigravity CLI couldn't answer `agy models`. Install it from https://antigravity.google, run `agy` once and complete the Google Sign-In, then Disconnect → Connect to retry.",
      "atlascloud": "The background agent isn't responding — Atlas Cloud couldn't start. Set ATLASCLOUD_API_KEY, then Disconnect → Connect to retry.",
      "chatgpt": "The background agent isn't responding — ChatGPT direct OAuth couldn't start. Make sure ~/.codex/auth.json exists (run `codex login`), then Disconnect → Connect to retry.",
      "claude": "The background agent isn't responding — the Claude Agent SDK couldn't start. Make sure you're signed in (run `claude` once), then Disconnect → Connect to retry.",
      "codex": "The background agent isn't responding — the Codex app-server couldn't start. Make sure Codex is installed and signed in (run `codex login`), then Disconnect → Connect to retry.",
      "copilot": "The background agent isn't responding — GitHub Copilot (experimental) couldn't start. Sign in from the panel's experimental row, then Disconnect → Connect to retry.",
      "custom": "The background agent isn't responding — your custom endpoint isn't answering at {url}. Check the base URL in Settings → Custom endpoint (it must be OpenAI-compatible and include the /v1) and the API key if the server requires one — then Connect to retry.",
      "gemini": "The background agent isn't responding — the Gemini CLI couldn't start. Make sure the Gemini CLI is installed and signed in (run `gemini` once and complete the Google sign-in), then Disconnect → Connect to retry.",
      "glm": "The background agent isn't responding — GLM Code API couldn't start. Set ZAI_API_KEY (Z.AI Coding Plan), then Disconnect → Connect to retry.",
      "grok": "The background agent isn't responding — the Grok CLI couldn't start. Make sure Grok is installed and signed in (run `grok` once and complete the xAI sign-in), then Disconnect → Connect to retry.",
      "kimi": "The background agent isn't responding — Kimi Code couldn't start. Run Kimi Code login (~/.kimi/credentials/kimi-code.json) or set KIMI_API_KEY, then Disconnect → Connect to retry.",
      "llamacpp": "The background agent isn't responding — llama-server isn't reachable at {url}. Start it with `llama-server -m <model>.gguf -c 16384` (our gemma4-comfyui-mcp GGUFs work great; add --jinja on older builds — required there for tool calling), or set COMFYUI_MCP_LLAMACPP_HOST — then Disconnect → Connect to retry.",
      "lmstudio": "The background agent isn't responding — LM Studio isn't reachable at {url}. Open LM Studio → Developer → Start Server and load a tool-calling model (our gemma4-comfyui-mcp GGUFs from Hugging Face work great), or set COMFYUI_MCP_LMSTUDIO_HOST if it serves elsewhere — then Disconnect → Connect to retry.",
      "minimax": "The background agent isn't responding — MiniMax couldn't start. Set MINIMAX_API_KEY from platform.minimax.io, then Disconnect → Connect to retry.",
      "moonshot": "The background agent isn't responding — Moonshot (Kimi K3) couldn't start. Set MOONSHOT_API_KEY from platform.kimi.ai, then Disconnect → Connect to retry.",
      "ollama": "The background agent isn't responding — Ollama isn't reachable. Start it with `ollama serve` and pull our fine-tuned model (`ollama pull artokun/gemma4-comfyui-mcp:e4b` — gemma4 trained on the comfyui-mcp tool suite — arena-best local model; `:12b` for ~8 GB VRAM), then Disconnect → Connect to retry.",
      "pi": "The background agent isn't responding — the pi CLI couldn't run `pi --list-models`. Install it from https://pi.dev (`curl -fsSL https://pi.dev/install.sh | sh`), configure a provider (set a provider API key or run `pi` once and `/login`), then Disconnect → Connect to retry.",
      "qwen": "The background agent isn't responding — the Qwen Code CLI couldn't start. Make sure Qwen Code is installed (npm i -g @qwen-code/qwen-code) and signed in (run `qwen` once and complete /auth, or set DASHSCOPE_API_KEY), then Disconnect → Connect to retry."
    },
    "llamacpp_no_jinja": "Your llama-server is running WITHOUT `--jinja`, so tool calling is disabled — every agent action would fail. Restart it with tool support: `llama-server -m <model>.gguf --jinja -c 16384` (current builds enable jinja by default; older ones need the flag), then Disconnect → Connect.",
    "llamacpp_small_context": "Your llama-server context is {tokens} tokens (launch flag -c). The agent's tool payload wants ≥16384 — below that, long turns silently truncate. Consider restarting with `-c 16384` or higher.",
    "local_agent_resumed": "Render finished — the local agent is back. Answering your queued message now.",
    "message_queued_during_render": "A render is running, so I've queued your message to keep the GPU free for it. I'll answer the moment it finishes.",
    "message_queued_opt_out": "To chat during renders instead, set COMFYUI_MCP_PAUSE_LOCAL_ON_GEN=0 in ~/.comfyui-mcp/.env and restart — the local model and ComfyUI will then share the GPU, which can slow a render down or run it out of VRAM.",
    "new_chat_durable_clear_failed": "New chat started, but the previous conversation's stored session could not be removed from disk (the write failed — a full or locked filesystem?). If the orchestrator restarts before this conversation's first exchange completes, the OLD conversation may resume; start a New chat again if that happens.",
    "oauth_signin_failed": "{provider} sign-in failed: {message}",
    "openrouter_no_key": "OpenRouter has no API key — the connection would fail on your first message. Set it in Settings → OpenRouter → “Set API key…” (masked, stored by the orchestrator — takes effect immediately, no reconnect needed), or set the OPENROUTER_API_KEY environment variable and restart the orchestrator. Keys: https://openrouter.ai/keys",
    "options_change_failed": "Could not change model/effort: {message}",
    "pi_no_credential": "pi has no usable provider credential — the connection would greet ready and then fail on your first message. Configure a provider: set a provider API key (e.g. ANTHROPIC_API_KEY / OPENAI_API_KEY / CEREBRAS_API_KEY) and restart the orchestrator, or run `pi` once and `/login` (stored in ~/.pi/agent/auth.json), then Disconnect → Connect. If you already did one of those, check the entry is complete — an ~/.pi/agent/auth.json record with no `key`, a models.json provider with no `apiKey`, or GOOGLE_APPLICATION_CREDENTIALS pointing at a missing file cannot authenticate. https://pi.dev",
    "restart_lost": {
      "answers": "{count} answer(s) you gave on a question card never reached the agent: {answers}. An answer is not a render — there is NO history to look it up in, and the agent has no way to recover it once this restart completes. Please tell it your choice again (or paste the text above) when it comes back.",
      "header": "The agent backend is being restarted.",
      "runs": "{count} finished render result(s) could not be delivered ({runs}). Their outcome is UNDETERMINED from the agent's point of view — ask it to check `get_history (action:\"list\")` for those runs once it reconnects rather than assuming it saw them.",
      "withheld": "{count} further answer(s) on this tab belong to an earlier conversation that has since been replaced; they were never delivered either, but they are not shown here because they were not given to the conversation you are in now."
    },
    "start_failure": {
      "hint": {
        "custom": "Check the base URL and API key in Settings → Custom endpoint, then Disconnect → Connect to retry.",
        "generic": "Check the provider's credentials/login, then Disconnect → Connect to retry.",
        "key_provider": "Check your {provider} API key in the API Keys card ({env}), then Disconnect → Connect to retry.",
        "openrouter": "Check your OpenRouter API key in the API Keys card (OPENROUTER_API_KEY), then Disconnect → Connect to retry."
      },
      "notice": "The {backend} agent could not start: {message} — {hint}"
    },
    "too_many_question_cards": "Too many question cards are open at once in this tab, so the oldest ones can no longer accept an answer — clicking them will do nothing. Answer the most recent card, or just type your choice in the chat and the agent will pick it up."
  }
}
