{
  "unknownCommand": "未知命令：{{command}}\n執行 `{{cli}} help`",
  "usagePrefix": "用法：",
  "security": {
    "help": "用法：ysk-伺服器安全狀態\n       ysk-server 安全會話清單|撤銷|撤銷-其他 [--user U]\n       ysk-server 安全性 api 金鑰清單|建立|刪除 …",
    "sessionsHelp": "用法：ysk-server 安全會話清單 [--user U]\n       ysk-server 安全會話撤銷 --id PREFIX [--user U]\n       ysk-伺服器安全會話撤銷其他 [--user U] [--keep-token T]",
    "apiKeysHelp": "用法：ysk-server 安全 api 金鑰列表\n       ysk-server security api-keys create --name N [--user U] [--scope full|read]\n       ysk-伺服器安全 API 金鑰刪除 --id KEY_ID",
    "noUser": "找不到用戶。請先建立管理員，或傳入 --user <名稱或識別碼>。",
    "tokenOnce": "權杖 只顯示一次 — 請妥善保存",
    "sessionRevokeUsage": "用法：ysk-server 安全會話撤銷 --id <sessionIdPrefix> [--user U]",
    "apiKeyDeleteUsage": "用法：ysk-server security api-keys delete --id KEY_ID"
  },
  "help": {
    "blurb": "控制平面 命令列 — 人工智能 代理 請優先用 --json。\n文件：docs/代理/README.md · docs/cli/reference.md · docs/代理/commands.json",
    "main": "YSK Server 命令列。指令與旗標一律為英文；--locale 只翻譯說明文字。\n\n{{product}} ({{cli}}) v{{version}}\n\nControl plane CLI — prefer --json for AI agents.\nDocs: docs/agent/README.md · docs/cli/reference.md · docs/agent/commands.json\n\nUsage:\n  {{cli}} <command> [options]\n\nCommands:\n  setup                 Init dataDir + admin\n  update                Self-update check/apply\n  serve                 HTTP API + Web UI\n  system unit-install   Install ysk-server.service [--enable]\n  stack                 plans|bundles|status|install|uninstall\n  tools                 List tools; tools run --tool <name> [--dry-run]\n  ask                   NL → AI plan [--execute]\n  projects              list|get|create|deploy|stop|health|backup|template\n  users                 list|create|totp\n  packages              list\n  rbac                  list|show\n  audit                 list\n  backup                all|list|status|restore|delete|schedule|control-plane|settings|restic\n  templates             App templates\n  hosting               nginx|dns|db|firewall helpers\n  dns                   zone|zones|lookup|ddns\n  logs                  sources|query|journal|overview\n  host                  overview|metrics (read-only)\n  nginx                 status|list|test|sync\n  ssl                   list|get (certificates)\n  db-cluster            list|get|create|plan (HA plan-first)\n  ssh-key               list|create|import|public|export|install|delete (SSH identity vault)\n  ssh-2fa               list|enroll|confirm|install|pam|retire (SSH login TOTP ≠ panel 2FA)\n  services              Host service matrix (systemctl probe)\n  defense | protection  status|ban|unban|whitelist\n  security              status|sessions|api-keys (2FA flags · session revoke · API keys)\n  cdn                   nodes|sites|render|apply|purge|probe|dashboard|health-loop|from-project\n  agents                runtimes|fleet list|commands|register (panel + edge)\n  agent run             Outbound fleet poller (experimental)\n  store                 status|export|import|migrate (json|sqlite|postgres document backends)\n  files                 list|read|write|mkdir|rm|stat|rename|copy|move|chmod|trash|shares (sandbox)\n  cron                  list|create|update|delete|enable|disable|run|install|status|host\n  email                 domains|mailboxes|deliverability|bootstrap|dns (panel parity)\n  health                Local mode snapshot or --url http://host:port/health\n  notifications         list\n  readiness | doctor    Production readiness (honest)\n  migrate               inventory|host|post|status|resume|orphan-homes (full host migrate)\n  vpn                   WireGuard / OpenVPN\n  vnc                   accounts|clients|share\n  apache                sites|settings\n  network               ifaces|exposure|real-ip\n  real-ip               CDN Real IP\n  updates               inventory|apply\n  software              list|install|uninstall\n  db                    MySQL / MariaDB / PostgreSQL\n  redis                 status|keys|get|set\n  ftp                   accounts|status\n  runtimes              list|install\n  bt-tracker            status|settings\n  validators            list|chains|disk|get|checklist (Beta)\n  docker                status|ps|images|compose|prune (engine)\n  version | help\n\nGlobal:\n  --json                JSON stdout (AI)\n  --data-dir PATH       also --data-dir=PATH or YSK_DATA_DIR\n  --config PATH\n  --locale CODE         CLI language (default en). Also YSK_LOCALE.\n                        Codes: en zh-HK zh-CN ja ko hi es ar fr bn pt id ur\n  --limit N --offset N  Slice large JSON lists (software / updates / host metrics / rbac)\n  --help | --version\n\nExit: 0 ok · 1 error · 2 validation · 3 blocked · 4 not found · 5 host error\n\nSafety:\n  Dangerous ops default to dry-run (plan only).\n  Pass --execute (alias --apply) + env YSK_EXECUTE=1 to mutate host.\n  Command names and flags are always English. --locale only translates messages.\n\nExamples:\n  {{cli}} readiness --json\n  {{cli}} host --json\n  {{cli}} nginx status --json\n  {{cli}} ssl list --json\n  {{cli}} projects get --id UUID --json\n  {{cli}} defense ban --ip 1.2.3.4 --json          # dry-run plan\n  {{cli}} projects list --json\n  {{cli}} --locale=zh-HK help\n  {{cli}} logs query --source journal: --lines 100 --json\n  {{cli}} tools --json"
  },
  "usage": {
    "tools": {
      "run": {
        "--tool": {
          "name": {
            "--arg": {
              "cd327c": "用法： ysk-server tools run --tool <名稱> [--arg 金鑰=val] [--預覽試行]"
            }
          }
        }
      }
    },
    "email": {
      "domains": {
        "list": {
          "create": {
            "get": {
              "b94a62": "用法： ysk-server 電郵 domains 列表|建立|get …"
            }
          }
        },
        "create": {
          "--domain": {
            "example": {
              "bd4036": "用法： ysk-server 電郵 domains 建立 --網域 example.com --ip A.B.C.D"
            }
          }
        }
      },
      "mailboxes": {
        "list": {
          "create": {
            "42b26c": "用法： ysk-server 電郵 mailboxes 列表|建立 …"
          }
        },
        "create": {
          "--domain": {
            "example": {
              "7227f3": "用法： ysk-server 電郵 mailboxes 建立 --網域 example.com --local 用戶 [--密碼 P]"
            }
          }
        }
      },
      "dns": {
        "--domain": {
          "example": {
            "com": {
              "26b806": "用法： ysk-server 電郵 dns --網域 example.com"
            }
          }
        }
      },
      "sub": {
        "--data-dir": {
          "path": {
            "--json": {
              "73dad0": "用法： ysk-server 電郵 <sub> [--data-dir 路徑] [--json]\n domains 列表|建立|get [--q TEXT]\n 建立 --網域 example.com --ip A.B.C.D\n get --網域 example.com | --識別碼 UUID\n mailboxes 列表|建立 [--網域 D | --識別碼 domainId]\n 建立 --網域 D --local 用戶 [--密碼 P]\n deliverability --網域 D | --識別碼 UUID\n deliverability-overview\n 初始化 --網域 D --ip A.B.C.D [--安裝]\n dns --網域 D | --識別碼 UUID # DNS bundle for 面板\nAlso: hosting 電郵-套用|電郵-mailbox|電郵-deliverability (aliases)"
            }
          }
        }
      },
      "deliverability": {
        "--domain": {
          "example": {
            "com": {
              "b0dff0": "用法： ysk-server 電郵 deliverability --網域 example.com"
            }
          }
        }
      },
      "bootstrap": {
        "--domain": {
          "example": {
            "com": {
              "affc8d": "用法： ysk-server 電郵 初始化 --網域 example.com --ip 1.2.3.4 [--安裝]"
            }
          }
        }
      }
    },
    "cron": {
      "delete": {
        "--id": {
          "job": {
            "id": {
              "f6aafe": "用法： ysk-server 定時工作 delete --識別碼 JOB_ID"
            }
          }
        }
      },
      "sub": {
        "--id": {
          "job": {
            "id": {
              "99cfdf": "用法： ysk-server 定時工作 {{sub}} --識別碼 JOB_ID"
            }
          }
        },
        "--data-dir": {
          "path": {
            "--json": {
              "0349e6": "用法： ysk-server cron <sub> [--data-dir PATH] [--json]\n  list [--project-id ID] [--q TEXT]\n  create --schedule \"0 3 * * *\" --command CMD [--project-id ID] [--user USER]\n  update --id JOB_ID [--schedule S] [--command CMD] [--user USER] [--project-id ID] [--enable|--disable]\n  delete --id JOB_ID\n  enable|disable --id JOB_ID\n  run --id JOB_ID              # run-now (needs YSK_EXECUTE=1)\n  install                     # load managed crontab (needs EXECUTE)\n  status                      # probe managed file vs host crontab\n  host [list] [--user USER] [--jobs-only]\n  host edit --user USER --old-schedule S --old-command C --schedule S --command C --execute\n  host disable|enable|delete|adopt --user USER --old-schedule S --old-command C --execute\n  host run --user USER --command C --execute\n誠實：未設定 YSK_EXECUTE=1 時，install 與 host 寫入會封鎖。\n"
            }
          }
        }
      },
      "run": {
        "--id": {
          "job": {
            "id": {
              "a0a97f": "用法： ysk-server 定時工作 run --識別碼 JOB_ID"
            }
          }
        }
      },
      "create": {
        "--schedule": {
          "0": {
            "3": {
              "9a8328": "用法： ysk-server 定時工作 建立 --schedule \"0 3 * * *\" --command CMD [--project-識別碼 識別碼] [--用戶 用戶]"
            }
          }
        }
      }
    },
    "files": {
      "stat": {
        "--path": {
          "rel": {
            "17c8f2": "用法： ysk-server 檔案 stat --路徑 REL"
          }
        }
      },
      "read": {
        "--path": {
          "rel": {
            "e35f8d": "用法： ysk-server 檔案 read --路徑 REL"
          }
        }
      },
      "mkdir": {
        "--path": {
          "rel": {
            "ae0438": "用法： ysk-server 檔案 mkdir --路徑 REL"
          }
        }
      },
      "rm": {
        "--path": {
          "rel": {
            "--permanent": {
              "fe2051": "用法： ysk-server 檔案 rm --路徑 REL [--permanent]"
            }
          }
        }
      },
      "rename": {
        "--from": {
          "rel": {
            "--to": {
              "35a260": "用法： ysk-server 檔案 rename --from REL --to REL"
            }
          }
        }
      },
      "copy": {
        "--from": {
          "rel": {
            "--to": {
              "5337f4": "用法： ysk-server 檔案 copy --from REL --to REL"
            }
          }
        }
      },
      "move": {
        "--from": {
          "rel": {
            "--to": {
              "75cf5d": "用法： ysk-server 檔案 move --from REL --to REL"
            }
          }
        }
      },
      "chmod": {
        "--path": {
          "rel": {
            "--mode": {
              "39f983": "用法： ysk-server 檔案 chmod --路徑 REL --模式 644"
            }
          }
        }
      },
      "trash": {
        "restore": {
          "--id": {
            "trash": {
              "c89ce9": "用法： ysk-server 檔案 trash 還原 --識別碼 TRASH_ID"
            }
          }
        },
        "list": {
          "restore": {
            "purge": {
              "ef063d": "用法： ysk-server 檔案 trash 列表|還原|清除"
            }
          }
        }
      },
      "shares": {
        "list": {
          "ac342c": "用法： ysk-server 檔案 shares 列表"
        }
      },
      "webdav": {
        "status": {
          "token": {
            "disable": {
              "f8e94b": "用法： ysk-server 檔案 webdav 狀態|權杖|停用"
            }
          }
        }
      },
      "sub": {
        "--root": {
          "public": {
            "project": {
              "42ebd4": "用法： ysk-server 檔案 <sub> [--管理員 public|project:識別碼] [--data-dir 路徑] [--json]\n 列表 [--路徑 DIR] [--q TEXT] [--sort 名稱|size|mtime] [--order asc|desc]\n stat --路徑 REL\n read --路徑 REL\n write --路徑 REL --content TEXT | --檔案 LOCAL\n mkdir --路徑 REL\n rm --路徑 REL [--permanent]\n rename --from REL --to REL\n copy --from REL --to REL\n move --from REL --to REL\n chmod --路徑 REL --模式 644\n trash 列表|還原|清除 [--識別碼 TRASH_ID]\n shares 列表\n favorites 列表\n 上載 --dir REL --檔案 LOCAL [--檔案 LOCAL2…]\n webdav 狀態|權杖|停用\nSandbox: only public 檔案 管理員 or project 主目錄 (路徑-constrained)."
            }
          }
        }
      },
      "write": {
        "--path": {
          "rel": {
            "--content": {
              "0addb1": "用法： ysk-server 檔案 write --路徑 REL --content TEXT | --檔案 LOCAL"
            }
          }
        }
      },
      "upload": {
        "--dir": {
          "rel": {
            "--file": {
              "f8c3bf": "用法： ysk-server 檔案 上載 --dir REL --檔案 LOCAL [--檔案 LOCAL2…]"
            }
          }
        }
      }
    },
    "store": {
      "import": {
        "--in": {
          "file": {
            "json": {
              "5b6fdd": "用法： ysk-server store import --in FILE.json"
            }
          }
        }
      },
      "sub": {
        "--data-dir": {
          "path": {
            "--json": {
              "d580e4": "用法： ysk-server store <sub> [--data-dir PATH] [--json]\n status Show backend kind + counts\n export --out FILE.json Dump document snapshot\n import --in FILE.json Overwrite snapshot from file\n migrate --to sqlite|json [--out PATH]\n Copy current store into another backend file\nEnv: YSK_STORE=json|sqlite|postgres YSK_DATABASE_URL=postgres://…\nHonesty: document-blob backends (not full relational schema yet)."
            }
          }
        }
      },
      "migrate": {
        "--to": {
          "json": {
            "sqlite": {
              "1c52a3": "用法： ysk-server store migrate --to json|sqlite [--out PATH]\n (postgres: export JSON then import under YSK_DATABASE_URL)"
            }
          }
        }
      }
    },
    "cdn": {
      "nodes": {
        "delete": {
          "--id": {
            "node": {
              "0c6a1e": "用法： ysk-server cdn nodes delete --識別碼 NODE_ID"
            }
          }
        },
        "drain": {
          "--id": {
            "node": {
              "a8aa81": "用法： ysk-server cdn nodes drain --識別碼 NODE_ID [--off]"
            }
          }
        },
        "list": {
          "upsert": {
            "delete": {
              "52549e": "用法： ysk-server cdn nodes 列表|upsert|delete|探測|drain …"
            }
          }
        },
        "upsert": {
          "--name": {
            "name": {
              "8f6f39": "用法： ysk-server cdn nodes upsert --名稱 名稱 [--識別碼 識別碼] [--base-url U] [--機群-代理-識別碼 S] [--ssh-主機 H] [--region R]"
            }
          }
        }
      },
      "sites": {
        "get": {
          "--id": {
            "site": {
              "3c3c35": "用法： ysk-server cdn sites get --識別碼 SITE_ID"
            }
          }
        },
        "delete": {
          "--id": {
            "site": {
              "51ef8f": "用法： ysk-server cdn sites delete --識別碼 SITE_ID"
            }
          }
        },
        "list": {
          "get": {
            "upsert": {
              "609da6": "用法： ysk-server cdn sites 列表|get|upsert|delete …"
            }
          }
        },
        "upsert": {
          "--name": {
            "n": {
              "6ebb75": "用法： ysk-server cdn sites upsert --名稱 N --domains a.com,b.com [--邊緣-識別碼 識別碼]… [--origin-url U] [--origin-project 識別碼]"
            }
          }
        }
      },
      "render": {
        "--site-id": {
          "id": {
            "--dry-run": {
              "2149eb": "用法： ysk-server cdn render --site-識別碼 識別碼 [--預覽試行]"
            }
          }
        }
      },
      "apply": {
        "--site-id": {
          "id": {
            "--edge-id": {
              "a527b3": "用法： ysk-server cdn 套用 --site-識別碼 識別碼 [--邊緣-識別碼 邊緣]"
            }
          }
        }
      },
      "purge": {
        "--site-id": {
          "id": {
            "--edge-id": {
              "bc08ec": "用法： ysk-server cdn 清除 --site-識別碼 識別碼 [--邊緣-識別碼 邊緣]"
            }
          }
        }
      },
      "dns-sync": {
        "--site-id": {
          "id": {
            "--apply-zone": {
              "343068": "用法： ysk-server cdn dns-同步 --site-識別碼 識別碼 [--套用-zone]"
            }
          }
        }
      },
      "sub": {
        "--data-dir": {
          "path": {
            "--json": {
              "092842": "用法： ysk-server cdn <sub> [--data-dir 路徑] [--json]\n nodes 列表|upsert|delete|探測|drain\n sites 列表|upsert|delete|get\n render --site-識別碼 識別碼 [--預覽試行]\n 套用 --site-識別碼 識別碼 [--邊緣-識別碼 識別碼] # fan-out (機群 queue 成功 without 執行)\n 清除 --site-識別碼 識別碼 [--邊緣-識別碼 識別碼]\n dns-同步 --site-識別碼 識別碼 [--套用-zone]\n 探測 | dashboard | health-loop [--套用-zone]\n from-project --project-識別碼 識別碼 [--邊緣-識別碼 識別碼…]\nHonesty: apply_status 已寫入/已排隊 ≠ 邊緣 nginx 已套用 until 代理 回報 / 執行 重新載入."
            }
          }
        }
      },
      "from-project": {
        "--project-id": {
          "id": {
            "--edge-id": {
              "a96f42": "用法： ysk-server cdn from-project --project-識別碼 識別碼 [--邊緣-識別碼 識別碼]…"
            }
          }
        }
      }
    },
    "agents": {
      "fleet": {
        "remove": {
          "--session": {
            "session": {
              "1827fe": "用法： ysk-server agents 機群 remove --工作階段 SESSION_ID"
            }
          }
        },
        "register": {
          "--id": {
            "agent": {
              "209b2d": "用法： ysk-server agents 機群 登記 --識別碼 AGENT_ID [--group g] [--邊緣]"
            }
          }
        },
        "commands": {
          "--session": {
            "session": {
              "f8067c": "用法： ysk-server agents 機群 commands --工作階段 SESSION_ID"
            }
          }
        }
      },
      "register": {
        "--id": {
          "agent": {
            "id": {
              "3c4477": "用法： ysk-server agents 登記 --識別碼 AGENT_ID [--group g]"
            }
          }
        }
      },
      "commands": {
        "--session": {
          "session": {
            "id": {
              "e620d2": "用法： ysk-server agents commands --工作階段 SESSION_ID"
            }
          }
        }
      },
      "runtimes": {
        "probe": {
          "fleet": {
            "list": {
              "261fa4": "用法： ysk-server agents [運行時s|探測|機群 列表|機群 登記|機群 commands|登記|commands]"
            }
          }
        }
      }
    },
    "agent": {
      "run": {
        "--control-plane": {
          "url": {
            "--id": {
              "cfefbe": "用法： ysk-server 代理 run --control-plane URL --識別碼 AGENT_ID [--group g]"
            }
          }
        }
      }
    },
    "ask": {
      "check": {
        "system": {
          "info": {
            "b0c781": "用法： ysk-server ask \"check system info\""
          }
        }
      }
    },
    "backup": {
      "delete": {
        "--project-id": {
          "id": {
            "--name": {
              "d66c29": "用法： ysk-server backup delete --project-識別碼 識別碼 --名稱 ARCHIVE"
            }
          }
        }
      },
      "restic": {
        "list": {
          "run": {
            "restore": {
              "10402b": "用法： ysk-server backup Restic 列表|run|還原 …"
            }
          }
        },
        "restore": {
          "--project-id": {
            "id": {
              "a8f133": "用法： ysk-server backup Restic 還原 --project-識別碼 識別碼 --快照 SNAP [--預覽試行] [--overwrite-主目錄 --confirm PHRASE]"
            }
          }
        }
      },
      "sub": {
        "--data-dir": {
          "path": {
            "--json": {
              "777243": "用法： ysk-server backup <sub> [--data-dir 路徑] [--json]\n all 備份 all project homes (+ remote/Restic side when configured)\n 列表 [--project-識別碼 識別碼] [--q TEXT]\n 狀態 Last run + schedule 探測\n 還原 --project-識別碼 識別碼 --名稱 ARCHIVE [--模式 full|網站|預覽試行]\n delete --project-識別碼 識別碼 --名稱 ARCHIVE\n schedule [--定時工作 \"0 3 * * *\"] [--安裝]\n control-plane 快照 ysk.json + config.json\n control-plane-還原 --名稱 ARCHIVE [--模式 預覽試行|full] [--confirm 還原-CONTROL-PLANE]\n settings [get|set] Remote / exclusions / Restic\n set --remote-kind local|sftp|s3 --remote-路徑 P [--remote-主機 H] …\n set --exclude a,b,c | --exclusions-檔案 檔案\n set --Restic-啟用 --Restic-密碼 P [--Restic-儲存庫 路徑]\n set --from-json 檔案 # full patch {remote?,exclusions?,Restic?}\n Restic 列表|run|還原 Incremental Restic helpers"
            }
          }
        }
      },
      "control-plane-restore": {
        "--name": {
          "archive": {
            "--mode": {
              "316a76": "用法： ysk-server backup control-plane-還原 --名稱 ARCHIVE [--模式 預覽試行|full] [--confirm 還原-CONTROL-PLANE]"
            }
          }
        }
      },
      "restore": {
        "--project-id": {
          "id": {
            "--name": {
              "bc7041": "用法： ysk-server backup 還原 --project-識別碼 識別碼 --名稱 ARCHIVE [--模式 full|網站|預覽試行]"
            }
          }
        }
      }
    },
    "packages": {
      "list": {
        "--q": {
          "text": {
            "b8e16b": "用法： ysk-server 套件 列表 [--q text]"
          }
        }
      }
    },
    "projects": {
      "stop": {
        "--id": {
          "projectid": {
            "b15409": "用法： ysk-server 專案 stop --識別碼 <projectId>"
          }
        }
      },
      "backup": {
        "--id": {
          "projectid": {
            "e62846": "用法： ysk-server 專案 備份 --識別碼 <projectId>"
          }
        }
      },
      "health": {
        "--id": {
          "projectid": {
            "e816ec": "用法： ysk-server 專案 health --識別碼 <projectId>"
          }
        }
      },
      "isolation": {
        "provision": {
          "--id": {
            "projectid": {
              "5aff44": "用法： ysk-server 專案 isolation provision --識別碼 <projectId>\n ysk-server 專案 isolation provision-all [--limit 20]"
            }
          }
        },
        "backfill-owners": {
          "--owner-user-id": {
            "id": {
              "8691da": "用法： ysk-server 專案 isolation backfill-owners --owner-用戶-識別碼 <識別碼>"
            }
          }
        },
        "list": {
          "provision": {
            "provision-all": {
              "8e9da3": "用法： ysk-server 專案 isolation 列表|provision|provision-all|backfill-owners"
            }
          }
        }
      },
      "get": {
        "--id": {
          "projectid": {
            "name": {
              "b0d532": "用法： ysk-server 專案 get --識別碼 <projectId|名稱> [--json]"
            }
          }
        }
      },
      "create": {
        "--name": {
          "name": {
            "--domain": {
              "66e857": "用法： ysk-server projects create --name <name> [--domain d] [--runtime node|php|static|python|go|rust] [--template id] [--git-url URL] [--branch B] [--create-dns] [--create-mail] [--server-ip A.B.C.D] [--server-ipv6 ADDR]"
            }
          }
        }
      },
      "deploy": {
        "--id": {
          "projectid": {
            "--entry": {
              "339111": "用法： ysk-server 專案 deploy --識別碼 <projectId> [--entry f] [--埠 N] [--fpm|--builtin] [--重新載入]"
            }
          }
        }
      },
      "git-deploy": {
        "--id": {
          "id": {
            "--git-url": {
              "a513f5": "用法： ysk-server 專案 git-deploy --識別碼 識別碼 [--git-url URL] [--branch|--ref main] [--no-redeploy] [--depth 1] [--entry f]"
            }
          }
        }
      },
      "template": {
        "--id": {
          "projectid": {
            "--template": {
              "591ce4": "用法： ysk-server 專案 template --識別碼 <projectId> --template <識別碼> [--force]"
            }
          }
        }
      },
      "list": {
        "get": {
          "create": {
            "deploy": {
              "253b48": "用法： ysk-server projects list|get|create|deploy|git-deploy|git|stop|backup|template|ftp|health [options]\n  deploy --id UUID [--entry f] [--port N] [--fpm|--builtin] [--reload]\n  git-deploy --id UUID [--git-url URL] [--branch|--ref B] [--no-redeploy]\n  git status|log|fetch|checkout|reset|auth|hook|deploy --id UUID [--ref R] [--unshallow] [--yes]\n  git auth --id UUID --token T|--deploy-key|--pin-host\n  git hook --id UUID --enable|--rotate|--disable\n  ftp --id UUID --password P [--user NAME] [--home app|root]\n"
            }
          }
        }
      }
    },
    "cli": {
      "name": {
        "db-cluster": {
          "get": {
            "--id": {
              "00f803": "用法： {{CLI_NAME}} db-叢集 get --識別碼 UUID [--json]"
            }
          },
          "plan": {
            "--id": {
              "483f52": "用法： {{CLI_NAME}} db-叢集 計劃 --識別碼 UUID [--json]"
            }
          },
          "artifacts": {
            "--id": {
              "6b33c4": "用法： {{CLI_NAME}} db-叢集 artifacts --識別碼 UUID [--json]"
            }
          },
          "bundle": {
            "--id": {
              "94ed27": "用法： {{CLI_NAME}} db-叢集 bundle --識別碼 UUID [--json]"
            }
          },
          "delete": {
            "--id": {
              "3de0e4": "用法： {{CLI_NAME}} db-叢集 delete --識別碼 UUID [--json]"
            }
          },
          "create": {
            "--name": {
              "e3b733": "用法： {{CLI_NAME}} db-叢集 建立 --名稱 N --engine mariadb --kind mariadb-galera --member 主機=role[:access] ..."
            }
          },
          "apply": {
            "--id": {
              "4cddb8": "用法： {{CLI_NAME}} db-叢集 套用 --識別碼 UUID [--執行] [--初始化] [--json]"
            }
          },
          "probe": {
            "--id": {
              "22870c": "用法： {{CLI_NAME}} db-叢集 探測 --識別碼 UUID [--peers] [--json]"
            }
          },
          "install-peers": {
            "--id": {
              "600b02": "用法： {{CLI_NAME}} db-叢集 安裝-peers --識別碼 UUID [--執行] [--no-重新啟動] [--identity 識別碼] [--json]"
            }
          },
          "push": {
            "--id": {
              "697080": "用法： {{CLI_NAME}} db-叢集 推送 --識別碼 UUID [--member 識別碼] [--identity 識別碼] [--執行] [--json]"
            }
          },
          "fleet": {
            "--id": {
              "239462": "用法： {{CLI_NAME}} db-叢集 機群 --識別碼 UUID [--op 套用|探測|計劃] [--執行] [--邊緣-執行] [--json]"
            }
          },
          "list": {
            "get": {
              "3b9cfa": "用法： {{CLI_NAME}} db-叢集 列表|get|建立|計劃|套用|探測|安裝-peers|artifacts|bundle|推送|機群|overview|delete [--peers] [--執行] [--json]"
            }
          }
        },
        "ssh-key": {
          "get": {
            "--id": {
              "292716": "用法： {{CLI_NAME}} ssh-金鑰 get --識別碼 UUID [--json]"
            }
          },
          "public": {
            "--id": {
              "525d7d": "用法： {{CLI_NAME}} ssh-金鑰 public --識別碼 UUID"
            }
          },
          "export": {
            "--id": {
              "0a6d81": "用法： {{CLI_NAME}} ssh-金鑰 export --識別碼 UUID [--out 路徑] [--json]"
            }
          },
          "delete": {
            "--id": {
              "a6e2f2": "用法： {{CLI_NAME}} ssh-金鑰 delete --識別碼 UUID [--json]"
            }
          },
          "create": {
            "--name": {
              "8b1d79": "用法： {{CLI_NAME}} ssh-金鑰 建立 --名稱 N [--algo ed25519|rsa-4096] [--purpose 用戶|面板|unbound] [--project 識別碼] [--用戶 U] [--主目錄 路徑] [--reveal] [--json]"
            }
          },
          "import": {
            "--name": {
              "6eb800": "用法： {{CLI_NAME}} ssh-金鑰 匯入 --名稱 N --檔案 路徑 [--purpose 面板|用戶] [--json]"
            }
          },
          "install": {
            "--id": {
              "b99c56": "用法： {{CLI_NAME}} ssh-金鑰 安裝 --識別碼 UUID [--執行] [--json]"
            }
          },
          "test": {
            "--id": {
              "e1aed3": "用法： {{CLI_NAME}} ssh-金鑰 test --識別碼 UUID --目標 用戶@主機[:埠] [--執行] [--json]"
            }
          },
          "rotate": {
            "--id": {
              "9c3224": "用法： {{CLI_NAME}} ssh-金鑰 rotate --識別碼 UUID [--reveal] [--json]"
            }
          },
          "authorize-self": {
            "--id": {
              "b7ea2e": "用法： {{CLI_NAME}} ssh-金鑰 authorize-self --識別碼 UUID [--json]"
            }
          },
          "uninstall": {
            "--id": {
              "afcba0": "用法： {{CLI_NAME}} ssh-金鑰 卸載 --識別碼 UUID [--執行] [--json]"
            }
          },
          "list": {
            "get": {
              "2c92c6": "用法： {{CLI_NAME}} ssh-金鑰 列表|get|建立|匯入|public|export|安裝|test|rotate|authorize-self|卸載|delete [--json]"
            }
          }
        },
        "ssh-2fa": {
          "reveal": {
            "--id": {
              "a6c27f": "用法： {{CLI_NAME}} ssh-2fa reveal --識別碼 UUID [--json]"
            }
          },
          "retire": {
            "--id": {
              "6e1fa3": "用法： {{CLI_NAME}} ssh-2fa retire --識別碼 UUID [--json]"
            }
          },
          "enroll": {
            "--user": {
              "081432": "用法： {{CLI_NAME}} ssh-2fa enroll --用戶 LINUX|--project 識別碼 [--主目錄 路徑] [--from-面板] [--json]"
            }
          },
          "confirm": {
            "--id": {
              "9ee8a2": "用法： {{CLI_NAME}} ssh-2fa confirm --識別碼 UUID --code 123456 [--json]"
            }
          },
          "install": {
            "--id": {
              "dace06": "用法： {{CLI_NAME}} ssh-2fa 安裝 --識別碼 UUID [--執行] [--json]"
            }
          },
          "uninstall": {
            "--id": {
              "0bb464": "用法： {{CLI_NAME}} ssh-2fa 卸載 --識別碼 UUID [--執行] [--json]"
            }
          },
          "list": {
            "enroll": {
              "802ed0": "用法： {{CLI_NAME}} ssh-2fa 列表|enroll|confirm|安裝|卸載|pam|reveal|retire [--json]"
            }
          }
        },
        "ssl": {
          "list": {
            "get": {
              "79c232": "用法： {{CLI_NAME}} ssl 列表|get --網域 X [--json]"
            }
          },
          "get": {
            "--domain": {
              "91c444": "用法： {{CLI_NAME}} ssl get --網域 example.com [--json]"
            }
          }
        },
        "dns": {
          "zone": {
            "--zone": {
              "ad30fa": "用法： {{CLI_NAME}} dns zone --zone example.com --ip A.B.C.D [--ipv6 X:X::X] [--validate] [--重新載入]"
            }
          },
          "zones": {
            "zone": {
              "5b8bda": "用法： {{CLI_NAME}} dns zones|zone --zone X --ip A.B.C.D [--ipv6 …] [--json]"
            }
          }
        },
        "nginx": {
          "status": {
            "list": {
              "d67a16": "用法： {{CLI_NAME}} nginx 狀態|列表|test|同步 [--執行] [--json]"
            }
          }
        },
        "host": {
          "overview": {
            "metrics": {
              "93c828": "用法： {{CLI_NAME}} 主機 overview|metrics|network [--路徑 /] [--json]"
            }
          }
        },
        "logs": {
          "sources": {
            "overview": {
              "79058c": "用法： {{CLI_NAME}} 日誌 sources|overview|units|系統日誌|query [--source 識別碼] [--json]"
            }
          }
        },
        "services": {
          "sub": {
            "--unit": {
              "4fe3fa": "用法： {{CLI_NAME}} services {{sub}} --unit <系統服務-服務單元> [--執行] [--json]"
            }
          },
          "matrix": {
            "start": {
              "4f3a35": "用法： {{CLI_NAME}} services matrix|start|stop|重新啟動|重新載入 --unit 名稱 [--執行] [--json]"
            }
          }
        },
        "defense": {
          "ban": {
            "--ip": {
              "cc22de": "用法： {{CLI_NAME}} defense 封鎖 --ip <ip> [--method fail2ban|ufw|both] [--reason t] [--執行]"
            }
          },
          "unban": {
            "--ip": {
              "46aa23": "用法： {{CLI_NAME}} defense unban --ip <ip> [--method fail2ban|ufw|both] [--執行]"
            }
          },
          "whitelist": {
            "--action": {
              "c1cbdf": "用法： {{CLI_NAME}} defense whitelist --action 列表|add|remove [--ip IP]"
            }
          },
          "status": {
            "bans": {
              "a8d96b": "用法： {{CLI_NAME}} defense 狀態|bans|suspects|封鎖|unban|whitelist|stack-套用|fail2ban|firewall|timeline|預設方案s [--json]\n bans [--q text] [--source fail2ban|面板|ufw|auto]\n suspects [--q text]\n stack-套用 [--執行] # UFW + fail2ban + current 預設方案\n fail2ban | firewall # deep probes (honest)\n timeline [--limit N] [--q text]\n 預設方案s # 列表 + active預設方案"
            }
          }
        }
      }
    },
    "system": {
      "unit-install": {
        "--enable": {
          "--data-dir": {
            "path": {
              "33daa1": "用法： ysk-server system 服務單元-安裝 [--啟用] [--data-dir 路徑]"
            }
          }
        }
      }
    },
    "users": {
      "create": {
        "--username": {
          "u": {
            "--password": {
              "7145c7": "用法： ysk-server users 建立 --username <u> --密碼 <p> [--role operator|viewer|管理員] [--套件-識別碼 識別碼] [--locale zh-HK]"
            }
          }
        }
      },
      "list": {
        "--q": {
          "text": {
            "--role": {
              "544685": "用法： ysk-server users 列表 [--q text] [--role 管理員|operator|viewer]\n ysk-server users 建立 --username u --密碼 p [--role operator]"
            }
          }
        }
      }
    },
    "rbac": {
      "list": {
        "policies": {
          "330ade": "用法： ysk-server rbac 列表|policies\n ysk-server rbac show --role operator\n ysk-server rbac audit # route→cap sample matrix"
        }
      }
    },
    "hosting": {
      "postgres-provision": {
        "--db": {
          "name": {
            "--user": {
              "2c8889": "用法： ysk-server hosting postgres-provision --db 名稱 --用戶 U --密碼 P(min8) [--執行]\n 預設 預覽試行 (no 主機 change). Pass --執行 + 系統變更權限已開啟 to 套用."
            }
          }
        }
      },
      "mysql-provision": {
        "--db": {
          "name": {
            "--user": {
              "fc25aa": "用法： ysk-server hosting mysql-provision --db 名稱 --用戶 U --密碼 P(min8) [--執行]\n 預設 預覽試行 (no 主機 change). Pass --執行 + 系統變更權限已開啟 to 套用."
            }
          }
        }
      },
      "dns-zone": {
        "--zone": {
          "example": {
            "com": {
              "bdaa0d": "用法： ysk-server hosting dns-zone --zone example.com --ip A.B.C.D [--ipv6 X:X::X] [--validate] [--重新載入]"
            }
          }
        }
      },
      "powerdns-load": {
        "--zone": {
          "example": {
            "com": {
              "dba49c": "用法： ysk-server hosting powerdns-load --zone example.com --ip A.B.C.D [--ipv6 X:X::X] [--load|--執行]"
            }
          }
        }
      },
      "email-apply": {
        "--domain": {
          "example": {
            "com": {
              "37d350": "用法： ysk-server hosting 電郵-套用 --網域 example.com [--安裝|--執行]"
            }
          }
        }
      },
      "email-mailbox": {
        "--domain": {
          "x": {
            "--local": {
              "3d9be3": "用法： ysk-server hosting 電郵-mailbox --網域 X --local 用戶 [--密碼 P] [--ip A.B.C.D]"
            }
          }
        }
      },
      "ftps-apply": {
        "--domain": {
          "files": {
            "example": {
              "284a7c": "用法： ysk-server hosting ftps-套用 --網域 檔案.example.com [--安裝|--執行]"
            }
          }
        }
      },
      "webmail-apply": {
        "--domain": {
          "webmail": {
            "example": {
              "2ad5b5": "用法： ysk-server hosting webmail-套用 --網域 webmail.example.com [--下載]"
            }
          }
        }
      },
      "public-files": {
        "--domain": {
          "files": {
            "example": {
              "0e9013": "用法： ysk-server hosting public-檔案 --網域 檔案.example.com [--重新載入]"
            }
          }
        }
      },
      "email-deliverability": {
        "--domain": {
          "example": {
            "com": {
              "8774a4": "用法： ysk-server hosting 電郵-deliverability --網域 example.com\n ysk-server hosting 電郵-deliverability --識別碼 <domainId>"
            }
          }
        }
      },
      "email-bootstrap": {
        "--domain": {
          "example": {
            "com": {
              "796da5": "用法： ysk-server hosting 電郵-初始化 --網域 example.com --ip 1.2.3.4 [--管理員 postmaster] [--密碼 P] [--安裝]"
            }
          }
        }
      }
    },
    "migrate": {
      "post": {
        "--job": {
          "id": {
            "--data-dir": {
              "6a73cd": "用法： ysk-server migrate post --job <識別碼> --data-dir 路徑 --執行"
            }
          }
        }
      },
      "host": {
        "--target": {
          "root": {
            "new": {
              "3e94a2": "用法： ysk-server migrate 主機 --目標 管理員@NEW_IP [--identity-檔案 路徑|--identity-識別碼 識別碼] [--密碼] --執行 --data-dir 路徑"
            }
          }
        }
      }
    },
    "x": {
      "972912": "用法：\n  ysk-server migrate inventory [--data-dir PATH] --json\n  ysk-server migrate host --target root@IP [--identity-file PATH|--identity-id ID|--password PW] --execute [--maintenance] [--force-wipe-target]\n  ysk-server migrate post --job ID --data-dir PATH --execute   # 在目標機\n  ysk-server migrate status [--job ID]\n  ysk-server migrate resume --job ID --execute\n  ysk-server migrate orphan-homes [--data-dir PATH] --json\n  ysk-server migrate orphan-homes --path /home/ysk-server-UUID --confirm PATH --execute\n"
    },
    "hostingHelp": "用法：ysk-server hosting <sub>\n 危險操作預設 預覽試行；加 --執行（+ 系統變更權限已開啟）才真正套用\n nginx | nginx-同步 [--執行]\n redis-provision | postgres-provision | mysql-provision [--執行]\n dns-zone --zone X --ip A.B.C.D [--ipv6 X:X::X] [--validate] [--重新載入]\n dns-zones | powerdns-狀態 | powerdns-安裝 [--安裝|--執行]\n powerdns-load --zone X --ip A.B.C.D [--load|--執行]\n 電郵-套用 --網域 X [--安裝|--執行]\n 電郵-mailbox --網域 X --local 用戶 [--密碼 P] [--ip A.B.C.D] [--system]\n ftps-套用 --網域 X [--安裝|--執行]\n 運行時s | 運行時-安裝 --kind node|php|python|go|rust --version V [--安裝|--執行]\n dovecot-passdb --網域 X | --all\n webmail-套用 --網域 webmail.example.com [--下載]\n public-檔案 --網域 檔案.example.com [--重新載入]\n 電郵-初始化 --網域 example.com --ip A.B.C.D [--安裝|--執行]\n 電郵-deliverability --網域 example.com # PTR/DNSBL/warmup 誠實報告\n firewall-套用 [--smtp] [--執行]",
    "logsQuery": "用法：{{CLI_NAME}} 日誌 query --source <識別碼> [--lines N] [--grep G] [--since 1h] [--priority err]\n source 例：系統日誌: 系統日誌:nginx.service 檔案:syslog project:<uuid>\n {{CLI_NAME}} 日誌 sources --json\n {{CLI_NAME}} 日誌 系統日誌 [--unit nginx.service] --json"
  },
  "msg": {
    "domain": {
      "missing": {
        "pass": {
          "5be09b": "缺少域名 — 請傳 --ip 以先建立域名"
        }
      }
    },
    "--root": {
      "must": {
        "be": {
          "a84834": "--root 必須是 public 或 project:<id>\n"
        }
      }
    },
    "need": {
      "--content": {
        "or": {
          "4d7001": "需要 --content 或 --file\n"
        }
      },
      "at": {
        "least": {
          "7d311a": "至少需要一個 --member HOST[=role][:access]\n"
        }
      }
    },
    "action": {
      "must": {
        "be": {
          "ba14c1": "action 必須是 list|add|remove\n"
        }
      }
    },
    "use": {
      "ysk-server": {
        "backup": {
          "ca67f4": "請用：ysk-server backup control-plane-restore --name ARCHIVE（不要用 restore --project-id control-plane）\n"
        }
      }
    },
    "new": {
      "domain": {
        "requires": {
          "986b78": "新網域需要 --ip A.B.C.D（不要用佔位預設）\n"
        }
      }
    },
    "import-sync": {
      "prefers": {
        "fleet": {
          "4d7590": "import-sync 優先用 fleet clusterSync payload；或 --file snapshot.json\n"
        }
      }
    },
    "security": {
      "control": {
        "plane": {
          "f59a63": "安全：控制平面綁定公開位址 (0.0.0.0/::)。建議 127.0.0.1 + 反向代理 / UFW。\n"
        }
      }
    }
  },
  "err": {
    "unknown": {
      "email": {
        "sub": {
          "sub": {
            "e37257": "未知 電郵 子命令： {{sub}}\n執行： ysk-server 電郵 help"
          }
        }
      },
      "cron": {
        "sub": {
          "sub": {
            "e1a9ed": "未知 定時工作 子命令： {{sub}}\n執行： ysk-server 定時工作 help"
          }
        }
      },
      "files": {
        "sub": {
          "sub": {
            "07ad7e": "未知 檔案 子命令： {{sub}}\n執行： ysk-server 檔案 help"
          }
        }
      },
      "store": {
        "sub": {
          "sub": {
            "b7a083": "未知 store 子命令： {{sub}}\n執行： ysk-server store help"
          }
        }
      },
      "cdn": {
        "subcommand": {
          "sub": {
            "76664f": "未知 cdn 子命令： {{sub}}\n執行： ysk-server cdn help"
          }
        }
      },
      "backup": {
        "subcommand": {
          "sub": {
            "4092ad": "未知 備份 子命令： {{sub}}\n執行： ysk-server backup help"
          }
        }
      }
    }
  },
  "setup": {
    "dryRunOk": "{{product}} setup 預覽試行 成功",
    "dryRunNext": "再次執行時請去掉 --預覽試行，以寫入設定並初始化資料庫",
    "weakPassword": "管理員密碼過弱或仍為預設。請傳入強密碼 --管理員-密碼（最少 8 位，勿用 管理員／常見預設），或本機開發設 YSK_ALLOW_INSECURE_DEFAULTS=1。",
    "weakPasswordShort": "已拒絕過弱或預設管理員密碼",
    "nextStart": "啟動（介面 + Web UI）：{{cli}} serve --config {{configPath}}",
    "nextOpen": "開啟 http://{{host}}:{{port}}/ 並以 {{user}} 登入",
    "nextUnit": "系統服務單元 範本：{{unitPath}}",
    "nextInstall": "安裝 服務單元（管理員權限與系統變更權限）：{{cli}} system 服務單元-安裝 --啟用 --data-dir {{dataDir}}",
    "nextExecute": "生產主機變更需要 系統變更權限已開啟 與管理員權限",
    "nextGolive": "上線：docs/deploy/go-live.md + ysk-server 就緒檢查 --json",
    "secPassword": "安全：請立即更改管理員密碼（初始化 使用了弱／預設密碼）",
    "sec2fa": "安全：請在「帳號安全 → 帳戶」啟用管理員 雙重驗證",
    "secListen": "安全：正在監聽所有介面 — 請放防火牆／反向代理之後；管理建議 127.0.0.1 + 遠端登入 tunnel",
    "ok": "{{product}} setup 完成（資料庫已初始化）",
    "okInsecure": "{{product}} setup 完成（資料庫已初始化）［不安全 初始化 — 請改密碼］"
  }
}
