# 终端前缀约定(account-manager) 约定:**机器解析只依赖 `stdout` 首行**时,应先判断首行是否以 `ERROR:` 开头;多行说明可忽略或仅作展示。 ## `ERROR:` — CLI 参数 / 路由 | 前缀 | 含义 | |------|------| | `ERROR:CLI_ADD_MISSING_ARGS` | `add` 参数不足 | | `ERROR:CLI_GET_MISSING_ID` | `get` 缺少 id | | `ERROR:CLI_OPEN_MISSING_ID` | `open` 缺少 id | | `ERROR:CLI_LOGIN_MISSING_ID` | `login` 缺少 id | | `ERROR:CLI_DELETE_MISSING_ARGS` | `delete` 参数不足 | | `ERROR:CLI_DELETE_BAD_MODE` | `delete` 第二段不是 `id`/`platform` | | `ERROR:CLI_LIST_JSON_MISSING_PLATFORM` | `list-json` 缺少平台参数 | | `ERROR:CLI_PICK_WEB_MISSING_ARGS` | `pick-web` 缺少平台 | | `ERROR:CLI_WAIT_LOGIN_MISSING_ID` | `wait-login` 缺少 id | | `ERROR:CLI_UNKNOWN_OR_BAD_ARGS` | 无法识别的子命令或参数组合 | ## `ERROR:` — 业务与数据 | 前缀 | 含义 | |------|------| | `ERROR:INVALID_PLATFORM_LIST` | `list` 的平台名无法识别 | | `ERROR:INVALID_PLATFORM_LIST_JSON` | `list-json` 的平台名无法识别 | | `ERROR:INVALID_PLATFORM` | 其它子命令中平台无法识别 | | `ERROR:NO_ACCOUNTS_FOUND` | 列表无结果(或 `delete platform` 下无记录) | | `ERROR:ACCOUNT_NOT_FOUND` | 指定 id/记录不存在 | | `ERROR:PHONE_REQUIRED` | 缺少手机号 | | `ERROR:PHONE_INVALID` | 手机号格式不符合大陆 11 位规则 | | `ERROR:DUPLICATE_PHONE_PLATFORM` | 同平台下山手机号已存在 | | `ERROR:DELETE_INVALID_ID` | 删除 id 非法 | | `ERROR:NO_ACCOUNT` | `pick-web` 该平台无任何记录 | ## `ERROR:` — 浏览器 / 环境 | 前缀 | 含义 | |------|------| | `ERROR:需要 playwright:pip install playwright && playwright install chromium` | 未安装 Playwright 或浏览器未安装 | | `ERROR:PROFILE_DIR_MISSING` | 账号记录中 `profile_dir` 为空 | ## `ERROR:` — `wait-login`(跨技能编排) | 前缀 | 含义 | |------|------| | `ERROR:WAIT_LOGIN_ABORTED` | 用户关闭浏览器,放弃登录 | | `ERROR:WAIT_LOGIN_TIMEOUT` | 限时内未完成登录(默认由 `JIANGCHANG_WAIT_LOGIN_TIMEOUT_SECONDS` 控制,约 180s) | | `ERROR:WAIT_LOGIN_LAUNCH_FAILED` | 无法启动浏览器或创建持久化上下文(端口/占用/安装问题等) | | `ERROR:WAIT_LOGIN_PAGE_ERROR` | 打开登录页或轮询 DOM 时异常 | | `ERROR:WAIT_LOGIN_CONFIG_ERROR` | 子进程配置异常 | | `ERROR:WAIT_LOGIN_CHILD_CRASH` | 子进程异常退出且未写入有效结果文件 | 编排技能(如 llm-manager)另可能打印 `ERROR:WAIT_LOGIN_OUTER_TIMEOUT`:等待本进程整体超过上限(登录窗口 + 子进程缓冲),已中止。 ## 非前缀输出 - **成功添加账号**、**删除成功**等可能包含 `✅` 等人类可读行,**不宜**作为稳定协议解析。 - **`get` / `list-json` / `pick-web` 成功**:`stdout` 应为**单行 JSON**(失败时首行 `ERROR:`,勿当 JSON)。