weaver-work-cli 0.1.25 → 0.1.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/README.md +35 -30
  2. package/dist/cmd/root.js +1 -0
  3. package/dist/cmd/setup/index.js +1 -1
  4. package/dist/core/runtime-agent.js +19 -0
  5. package/dist/internal/e10/auth/commands.js +48 -33
  6. package/dist/internal/e10/auth/messages.js +3 -0
  7. package/dist/internal/e10/auth/session.js +8 -0
  8. package/dist/internal/e10/auth/xiaoe.js +62 -43
  9. package/dist/internal/e10/auth-recovery.js +148 -0
  10. package/dist/internal/e10/client.js +47 -15
  11. package/dist/internal/e10/context.js +9 -31
  12. package/dist/internal/e10/index.js +1 -0
  13. package/dist/internal/e10/request-runtime.js +51 -9
  14. package/dist/shortcuts/archive/host.js +3 -2
  15. package/dist/shortcuts/archive/manifest.js +1 -1
  16. package/dist/shortcuts/archive-oa/constants.js +66 -0
  17. package/dist/shortcuts/archive-oa/continuation.js +70 -0
  18. package/dist/shortcuts/archive-oa/errors.js +53 -0
  19. package/dist/shortcuts/archive-oa/host.js +158 -0
  20. package/dist/shortcuts/archive-oa/index.js +225 -0
  21. package/dist/shortcuts/archive-oa/manifest.js +62 -0
  22. package/dist/shortcuts/archive-oa/operations/borrow-car.js +159 -0
  23. package/dist/shortcuts/archive-oa/operations/borrow-url.js +108 -0
  24. package/dist/shortcuts/archive-oa/operations/confirm.js +48 -0
  25. package/dist/shortcuts/archive-oa/operations/contract.js +120 -0
  26. package/dist/shortcuts/archive-oa/operations/locate.js +50 -0
  27. package/dist/shortcuts/archive-oa/operations/registry.js +40 -0
  28. package/dist/shortcuts/archive-oa/operations/shared.js +181 -0
  29. package/dist/shortcuts/archive-oa/operations/types.js +45 -0
  30. package/dist/shortcuts/archive-oa/operations.js +13 -0
  31. package/dist/shortcuts/asset/host.js +7 -6
  32. package/dist/shortcuts/blog/host.js +4 -3
  33. package/dist/shortcuts/caizhilian/host.js +3 -2
  34. package/dist/shortcuts/caizhilian/manifest.js +1 -1
  35. package/dist/shortcuts/calendar/host.js +2 -1
  36. package/dist/shortcuts/contract/host.js +34 -59
  37. package/dist/shortcuts/ehr/host.js +2 -1
  38. package/dist/shortcuts/esb/host.js +2 -1
  39. package/dist/shortcuts/fna/host.js +6 -3
  40. package/dist/shortcuts/fna/manifest.js +10 -5
  41. package/dist/shortcuts/fna/operations/expense-chart.js +162 -0
  42. package/dist/shortcuts/fna/operations/registry.js +2 -0
  43. package/dist/shortcuts/hrm/host.js +2 -1
  44. package/dist/shortcuts/im/host.js +3 -2
  45. package/dist/shortcuts/index.js +2 -0
  46. package/dist/shortcuts/invoice/host.js +9 -7
  47. package/dist/shortcuts/invoice/manifest.js +38 -47
  48. package/dist/shortcuts/invoice/operations/issuing-qys.js +328 -0
  49. package/dist/shortcuts/invoice/operations/registry.js +2 -3
  50. package/dist/shortcuts/jiuchuanhui/host.js +2 -1
  51. package/dist/shortcuts/mail/host.js +2 -1
  52. package/dist/shortcuts/meeting/host.js +2 -1
  53. package/dist/shortcuts/meeting/operations/eb/conflict.js +78 -12
  54. package/dist/shortcuts/okr/host.js +2 -1
  55. package/dist/shortcuts/plan/host.js +2 -1
  56. package/dist/shortcuts/project/host.js +2 -1
  57. package/dist/shortcuts/workflow/endpoints.js +11 -0
  58. package/dist/shortcuts/workflow/host.js +5 -7
  59. package/dist/shortcuts/workflow/index.js +6 -36
  60. package/dist/shortcuts/workflow/operations/chatscene.js +252 -0
  61. package/dist/shortcuts/workflow/operations/form.js +1047 -191
  62. package/dist/shortcuts/workflow/operations/read.js +137 -8
  63. package/dist/shortcuts/workflow/operations/sign-input.js +106 -0
  64. package/dist/shortcuts/workflow/operations/write.js +9 -1
  65. package/dist/shortcuts/workflow/stdout-compact.js +16 -1
  66. package/docs/SKILL.md +1 -1
  67. package/docs/_catalog.md +1 -1
  68. package/docs/agent-invoice.md +1 -1
  69. package/docs/archive-oa.md +79 -0
  70. package/docs/caizhilian.md +1 -1
  71. package/docs/e10-auth.md +7 -6
  72. package/docs/fna.md +7 -3
  73. package/docs/invoice.md +4 -6
  74. package/package.json +1 -1
  75. package/skill-template/business-info.json +20 -1
  76. package/skill-template/domains/archive-oa.md +19 -0
  77. package/skill-template/domains/caizhilian.md +2 -1
  78. package/skill-template/domains/qiyecheng.md +1 -0
  79. package/skill-template/domains/yepiaotong.md +8 -4
  80. package/skill-template/skill-template.md +1 -0
  81. package/skills/weaver-e10-archive-oa/SKILL.md +159 -0
  82. package/skills/weaver-e10-archive-oa/references/archive-locate.md +49 -0
  83. package/skills/weaver-e10-archive-oa/references/borrow-car.md +76 -0
  84. package/skills/weaver-e10-archive-oa/references/borrow-flow.md +53 -0
  85. package/skills/weaver-e10-archive-oa/references/contract-search.md +63 -0
  86. package/skills/weaver-e10-archive-oa/references/disabled-capabilities.md +29 -0
  87. package/skills/weaver-e10-archive-oa/references/qys-contract-search.md +47 -0
  88. package/skills/weaver-e10-archive-oa/references/source-manifest.json +400 -0
  89. package/skills/weaver-e10-blog/SKILL.md +6 -1
  90. package/skills/weaver-e10-blog/references/blog-query.md +3 -1
  91. package/skills/weaver-e10-builder/SKILL.md +22 -0
  92. package/skills/weaver-e10-caizhilian/SKILL.md +47 -16
  93. package/skills/weaver-e10-caizhilian/references/action-flow.md +70 -0
  94. package/skills/weaver-e10-caizhilian/references/agent-entry.md +12 -4
  95. package/skills/weaver-e10-caizhilian/references/auth-and-install.md +207 -0
  96. package/skills/weaver-e10-caizhilian/references/collaboration.md +5 -3
  97. package/skills/weaver-e10-caizhilian/references/document.md +33 -11
  98. package/skills/weaver-e10-caizhilian/references/file-collection.md +57 -54
  99. package/skills/weaver-e10-caizhilian/references/file-upload.md +5 -6
  100. package/skills/weaver-e10-caizhilian/references/files.md +9 -3
  101. package/skills/weaver-e10-caizhilian/references/folder.md +48 -16
  102. package/skills/weaver-e10-caizhilian/references/host-executor-prompt.md +32 -0
  103. package/skills/weaver-e10-caizhilian/references/host-platform-integration.md +46 -0
  104. package/skills/weaver-e10-caizhilian/references/rule-index.md +56 -0
  105. package/skills/weaver-e10-caizhilian/references/setting-attach.md +17 -54
  106. package/skills/weaver-e10-caizhilian/references/setting-backup.md +16 -63
  107. package/skills/weaver-e10-caizhilian/references/setting-encrypt.md +24 -64
  108. package/skills/weaver-e10-caizhilian/references/setting-storage-docs-summary.md +126 -0
  109. package/skills/weaver-e10-caizhilian/references/setting-storage-field-map.md +57 -0
  110. package/skills/weaver-e10-caizhilian/references/setting-storage.md +143 -548
  111. package/skills/weaver-e10-caizhilian/references/source-manifest.json +7 -7
  112. package/skills/weaver-e10-caizhilian/references/task-workflow.md +87 -0
  113. package/skills/weaver-e10-caizhilian/references/withheld.md +21 -45
  114. package/skills/weaver-e10-caizhilian/references/write-protocol.md +7 -0
  115. package/skills/weaver-e10-calendar/SKILL.md +6 -1
  116. package/skills/weaver-e10-esb/SKILL.md +8 -0
  117. package/skills/weaver-e10-esb/references/input-format.md +3 -1
  118. package/skills/weaver-e10-esb/references/source-manifest.json +5 -5
  119. package/skills/weaver-e10-hrm/SKILL.md +6 -1
  120. package/skills/weaver-e10-hrm/references/employee.md +1 -1
  121. package/skills/weaver-e10-hrm/references/org.md +1 -1
  122. package/skills/weaver-e10-hrm/references/position.md +1 -1
  123. package/skills/weaver-e10-jinchengda/SKILL.md +2 -1
  124. package/skills/weaver-e10-jinchengda/references/contract-agent-entry.md +1 -1
  125. package/skills/weaver-e10-jiuchuanhui/SKILL.md +6 -1
  126. package/skills/weaver-e10-jucailin/SKILL.md +6 -1
  127. package/skills/weaver-e10-jucailin/references/hr-contact.md +1 -1
  128. package/skills/weaver-e10-jucailin/references/salary.md +1 -1
  129. package/skills/weaver-e10-mail/SKILL.md +6 -1
  130. package/skills/weaver-e10-meeting/SKILL.md +11 -6
  131. package/skills/weaver-e10-meeting/references/meeting-eb.md +7 -3
  132. package/skills/weaver-e10-meeting/references/meeting-queries.md +3 -1
  133. package/skills/weaver-e10-meeting/references/meeting-verification.md +4 -2
  134. package/skills/weaver-e10-okr/SKILL.md +6 -1
  135. package/skills/weaver-e10-okr/references/source-manifest.json +5 -5
  136. package/skills/weaver-e10-plan/SKILL.md +6 -1
  137. package/skills/weaver-e10-plan/references/plan-overview-and-routing.md +3 -1
  138. package/skills/weaver-e10-plan/references/plan-report-query.md +3 -1
  139. package/skills/weaver-e10-plan/references/source-manifest.json +7 -7
  140. package/skills/weaver-e10-qiyecheng/SKILL.md +16 -6
  141. package/skills/weaver-e10-qiyecheng/references/catalog.md +6 -3
  142. package/skills/weaver-e10-qiyecheng/references/expense-center.md +2 -0
  143. package/skills/weaver-e10-qiyecheng/references/expense-chart.md +78 -0
  144. package/skills/weaver-e10-qiyecheng/references/source-manifest.json +87 -33
  145. package/skills/weaver-e10-shared/SKILL.md +53 -28
  146. package/skills/weaver-e10-shared/references/e10-auth-and-session.md +22 -20
  147. package/skills/weaver-e10-shared/references/non-interactive-environment.md +13 -13
  148. package/skills/weaver-e10-shared/references/weaver-e10-installation.md +3 -1
  149. package/skills/weaver-e10-wenshuding/SKILL.md +6 -1
  150. package/skills/weaver-e10-wenshuding/references/source-manifest.json +3 -3
  151. package/skills/weaver-e10-workflow/references/source-manifest.json +33 -24
  152. package/skills/weaver-e10-workflow/references/workflow-create.md +41 -26
  153. package/skills/weaver-e10-yepiaotong/SKILL.md +23 -18
  154. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-examples.md +87 -45
  155. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-form-fill-rules.md +152 -0
  156. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-workflow.md +210 -0
  157. package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +59 -36
  158. package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +63 -512
  159. package/skills/weaver-e10-yepiaotong/references/reim-examples.md +205 -346
  160. package/skills/weaver-e10-yepiaotong/references/reim-expense-subject-rules.md +4 -5
  161. package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +231 -344
  162. package/skills/weaver-e10-yepiaotong/references/reim-phone-subsidy-rules.md +5 -5
  163. package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +201 -162
  164. package/skills/weaver-e10-yepiaotong/references/source-manifest.json +121 -145
  165. package/skills/weaver-e10-yimiaoban/SKILL.md +9 -2
  166. package/skills/weaver-e10-yimiaoban/references/file-user-i18n.md +1 -1
  167. package/skills/weaver-e10-yimiaoban/references/msg-read.md +1 -1
  168. package/skills/weaver-e10-yimiaoban/references/source-manifest.json +9 -9
  169. package/skills/weaver-e10-ziguanjia/SKILL.md +6 -1
  170. package/dist/shortcuts/invoice/operations/issuing.js +0 -198
  171. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-field-rules.md +0 -161
  172. package/skills/weaver-e10-yepiaotong/references/invoice-issuing.md +0 -107
  173. package/skills/weaver-e10-yepiaotong/references/reim-fast-path.md +0 -119
@@ -5,7 +5,7 @@ display_name_en: Weaver CLI Shared Rules
5
5
  description: weaver-work-cli 共享规则:安装检查、E10 认证、JSON 输出、高风险写入、安全边界和引用路由。
6
6
  description_zh: weaver-work-cli 共享规则:安装检查、E10 认证、JSON 输出、高风险写入、安全边界和引用路由。
7
7
  description_en: Shared rules for weaver-work-cli, including installation checks, E10 authentication, JSON output, high-risk writes, safety boundaries, and reference routing.
8
- version: 1.2.3
8
+ version: 1.2.5
9
9
  author: 泛微网络科技股份有限公司
10
10
  agent_created: true
11
11
  requires:
@@ -33,21 +33,29 @@ requires:
33
33
  - 漏传 `--is-connector` **不会报错**,但会退回本机活跃 profile,可能操作到与预期不同的租户。
34
34
  - **本套 Skill 里的命令示例一律省略 `--is-connector`**(示例只示意参数形态,不代表最终命令):执行前必须先按上表判定,命中「传」的要在 `weaver-work-cli` 之后补上 `--is-connector true`,且**本任务内每条命令都要带**——包括记忆读取、记忆保存这类无入参的命令。
35
35
 
36
+ ## XiaoE 版本更新由客户端托管(全局覆盖)
37
+
38
+ 本任务开始时一旦按下文规则判定当前智能体为 XiaoE,**不得执行 `weaver-work-cli --version` 或 `npm view weaver-work-cli version` 做可用性、版本或更新检查**。XiaoE 客户端已经负责检查并更新配套的 `weaver-work-cli`;Agent 直接进入登录态诊断或业务命令。本规则覆盖本 Skill、业务 Skill 及其 references 中所有通用的 `--version` 检查示例。
39
+
40
+ XiaoE 中如果后续命令直接返回 `command not found`、退出码 127 或明确的版本不兼容错误,停止并反馈 XiaoE 客户端运行时异常,不自行执行 npm 查询、安装或升级。仅非 XiaoE 环境继续使用下述版本检查与安装流程。
41
+
36
42
  ## 业务 Skill 安装前版本检查
37
43
 
38
- 用户要求安装任一业务模块 Skill 时,必须先执行 `weaver-work-cli --version` 与 `npm view weaver-work-cli version` 比对本地版本和 npm 源版本。若本地版本低于 npm 源版本,先询问用户是否使用(推荐)最新版 `weaver-work-cli`;用户确认后先执行 `npm install -g weaver-work-cli` 更新 CLI,再继续安装业务模块 Skill。用户拒绝时,说明将沿用本地版本后再继续。
44
+ 用户要求安装任一业务模块 Skill 时,先复用本任务开始时的宿主判定:XiaoE 环境跳过本节版本比对,由 XiaoE 客户端保证配套 CLI 更新;非 XiaoE 环境必须先执行 `weaver-work-cli --version` 与 `npm view weaver-work-cli version` 比对本地版本和 npm 源版本。若本地版本低于 npm 源版本,先询问用户是否使用(推荐)最新版 `weaver-work-cli`;用户确认后先执行 `npm install -g weaver-work-cli` 更新 CLI,再继续安装业务模块 Skill。用户拒绝时,说明将沿用本地版本后再继续。
39
45
 
40
46
  ## 最高优先级:XiaoE 统一登录
41
47
 
42
- 只有**当前智能体身份明确是 XiaoE** 时才允许走 XiaoE 统一登录。判定依据只能是宿主/任务上下文明确标识 XiaoE、当前命令进程由 XiaoE 按次注入了成对的平台凭据,或桌面 XiaoE 注入了精确的运行时路径标记。不得把以下任一情况当成 XiaoE 宿主证据:
48
+ XiaoE 环境有两种识别入口:桌面客户端由 Agent 根据宿主或任务上下文明确识别,可接受标识包括“智能小 e 客户端”、“小 E”、`XiaoE` 或 `xiaoe-client`;传入 CLI 的环境中只要存在任意 `XIAOE_*` 变量,也直接识别为 XiaoE,包括 `XIAOE_DATA_ROOT` 等路径变量。本任务开始时只判断一次,后续命令沿用同一结论。没有 `XIAOE_*` 环境变量时,不得把以下任一情况单独当成 XiaoE 宿主证据:
43
49
 
44
50
  - 本机存在 `xiaoeUserData/tokens.py` 或 XiaoE 客户端目录;
45
- - 环境中只有 `XIAOE_SKILL_*`、`WEAVER_XIAOE_*` 配置或历史兼容变量;
51
+ - 文件系统中存在客户端目录、配置文件或 Token 脚本,但这些路径没有通过 `XIAOE_*` 环境变量传入;
52
+ - 仅有 `WEAVER_XIAOE_*`、`WORKBUDDY_*`、`CODEX_*` 环境变量;
53
+ - 工作目录名含 `xiaoeUserData`、使用 XiaoE 内置 Node.js,或已安装相关 CLI;
46
54
  - 过去在同一台机器上登录或安装过 XiaoE。
47
55
 
48
- WorkBuddy、Codex 及其他智能体一律使用 `weaver-work-cli auth login --base-url "<用户确认的登录域名>" --agent_type "<当前智能体名称>"` 走浏览器 OAuth。`auth login` / `auth oidc` 不会读取或消费 XiaoE 凭据。
56
+ 桌面客户端中,Agent 判定为 XiaoE 后先显式执行 `weaver-work-cli auth xiaoe`;后续业务命令在 `weaver-work-cli` 之后统一加 `--runtime-agent xiaoe`,例如 `weaver-work-cli --runtime-agent xiaoe workflow ...`。命令进程中已存在任意 `XIAOE_*` 变量时,不要求补这个参数。`--runtime-agent` 只控制 XiaoE 专属业务行为,不携带、不选择凭据。
49
57
 
50
- `WORKBUDDY_*` / `CODEX_*` 这类通用运行时变量可能也存在于 XiaoE 启动的进程中,不能单独用来否决 XiaoE 身份。当前命令进程中的完整 `XIAOE_USER_TOKEN` + `XIAOE_DOMAIN` 是 Web/沙箱 XiaoE 的强身份信号;`XIAOE_DATA_ROOT`、`XIAOE_ROBOT_DATA_ROOT`、`XIAOE_USER_SETTINGS_PATH`、`XIAOE_ROBOT_ROOT` 是桌面 XiaoE 的精确宿主信号。若同时存在明确的 `WORKBUDDY_AGENT_TYPE` / `CODEX_AGENT_TYPE` 且值不是 XiaoE,则以后者为准并隔离到浏览器 OAuth。
58
+ WorkBuddy、Codex 及其他智能体一律使用 `weaver-work-cli auth login --base-url "<用户确认的登录域名>" --agent_type "<当前智能体名称>"` 走浏览器 OAuth。`auth login` / `auth oidc` 不会读取或消费 XiaoE 凭据。
51
59
 
52
60
  ### XiaoE 凭据由 CLI 独占处理(顶层强规则)
53
61
 
@@ -57,45 +65,62 @@ Token、Cookie、ETEAMSID 和业务凭证**只能由 `weaver-work-cli` 内部读
57
65
  - 执行 `weaver-work-cli auth export-weaver-env` 并 `eval` / `Invoke-Expression` 到当前 shell,或把 `WEAVER_*` 值写进命令、日志、报告;
58
66
  - 要求用户粘贴、或在回复中展示、转述任何凭证。
59
67
 
60
- 下述 `auth xiaoe` 流程仅适用于上述已确认的 XiaoE 智能体环境;其他智能体不执行宿主脚本检测,直接进入浏览器 OAuth 流程。
68
+ 下述 `auth xiaoe` 流程仅适用于上述已确认的 XiaoE 智能体环境;其他智能体不执行宿主脚本检测,直接进入浏览器 OAuth 流程。`auth xiaoe` 命令本身就是认证方式的显式选择;`hasXiaoEEnv` 使用桌面的 `--runtime-agent xiaoe` 或任意 `XIAOE_*` 环境变量识别运行环境。
61
69
 
62
- 需要登录态时只运行 `weaver-work-cli auth xiaoe`(业务命令也会自动尝试)。CLI 内部按「平台凭证 Node 换票 → CLI 自带 `xiaoe_env.py` 兼容换票 → 宿主 `tokens.py` → 桌面 XiaoE 客户端会话 → `WEAVER_XIAOE_*` 环境映射」顺序取凭据;其中 `XIAOE_DOMAIN` 是 XiaoE/erpa 换票服务地址,不是 E10 地址。`xiaoe_env.py` 属于 CLI npm 包,不放入 shared Skill,且只能由 CLI 内部执行和解析。失败时 CLI 返回结构化错误,Agent 不要替它执行脚本、安装 Python 依赖、手工取 Token 或自动引导用户在本地终端重复登录。
70
+ 需要登录态时只运行 `weaver-work-cli auth xiaoe`。CLI 内部按「平台凭证 Node 换票 → CLI 自带 `xiaoe_env.py` 兼容换票 → 宿主 `tokens.py` → 桌面 XiaoE 客户端会话 → `WEAVER_XIAOE_*` 环境映射」顺序取凭据;其中 `XIAOE_DOMAIN` 是 XiaoE/erpa 换票服务地址,不是 E10 地址。`xiaoe_env.py` 属于 CLI npm 包,不放入 shared Skill,且只能由 CLI 内部执行和解析。业务命令不会在缺少本地会话时主动建立 XiaoE 登录态;已有会话被接口明确拒绝为失效时,CLI 会在公共请求层静默恢复并重放一次。失败时 CLI 返回结构化错误,Agent 不要替它执行脚本、安装 Python 依赖、手工取 Token 或自动引导用户在本地终端重复登录。
63
71
 
64
72
  1. 未登录、登录失效、准备执行业务命令前需要确认 E10 会话,或 `auth status --no-check` 显示未登录时,先运行:
65
73
  ```text
66
74
  weaver-work-cli auth xiaoe
67
75
  ```
68
76
  2. 不得因为本地存在旧 profile、`auth profile current` 指向旧环境,或 `auth profile list` 里只有旧环境,就跳过 XiaoE 统一登录;也不得先要求用户选择旧 profile 或输入域名。
69
- 3. XiaoE 统一登录由 CLI 按序取凭证:① 平台注入的 `XIAOE_USER_TOKEN` + `XIAOE_DOMAIN`,先走 Node 换票,再由 CLI npm 包自带的标准库 `xiaoe_env.py` 作兼容回退;② 宿主 `xiaoeUserData/tokens.py`(仅桌面宿主,CLI 在 macOS/Windows 都会先自动发现 XiaoE 客户端内置 Python,再回退到系统 Python);③ 内置原生实现读取桌面 XiaoE 客户端会话换取 `eteamId`,依次查找 `XIAOE_USER_SETTINGS_PATH`、`XIAOE_ROBOT_DATA_ROOT` / `XIAOE_ROBOT_ROOT` 和默认 `XiaoE/Robots/<id>/user_settings.json`,因此会话有效时不要求存在 `tokens.py`;④ `WEAVER_XIAOE_*` 环境映射。宿主只注入 `XIAOE_DOMAIN`、`XIAOE_USER_TOKEN` 等平台变量,不会注入 ETEAMSID 环境变量,CLI 也不读取 `XIAOE_ETEAMSID`。Agent 不要打印、转述、索取或要求用户手动设置这些凭证,也不要直接执行任一脚本或因为脚本报缺依赖就让用户安装 Python 包——降级由 CLI 内部完成。
70
- 4. `auth xiaoe` 和未显式指定 `--auth` / `--profile` 的业务命令都会先尝试上述统一登录。E10 目标地址按「显式 `--base-url` → 专用 `WEAVER_XIAOE_*` E10 配置/映射 → 当前 profile → CLI 内置默认值」解析,绝不能把 `XIAOE_DOMAIN` 当作 E10 地址。Token、Cookie、ETEAMSID 仍属于凭证,禁止在回复中展示。
71
- 5. XiaoE 统一登录走不通时,CLI 必须反馈未拿到登录信息的原因。Web/Linux 环境的 `auth xiaoe` 返回 `authentication/xiaoe_web_credential_unavailable`,不会自动打开 localhost 浏览器 OAuth;macOS/Windows 桌面宿主才允许自动降级。用户明确要求网页登录、且 CLI 与浏览器同机时,再显式运行 `weaver-work-cli auth login`。
72
- 6. `auth status --no-check` 只是本地诊断,不会主动触发 XiaoE 统一登录;业务命令和 `auth xiaoe` 才会尝试写入统一登录态。具体读取 [`e10-auth-and-session.md`](references/e10-auth-and-session.md)。
77
+ 3. XiaoE 统一登录由 CLI 按序取凭证:① 平台注入的 `XIAOE_USER_TOKEN` + `XIAOE_DOMAIN`,先走 Node 换票,再由 CLI npm 包自带的标准库 `xiaoe_env.py` 作兼容回退;② 宿主 `xiaoeUserData/tokens.py`(仅桌面宿主,CLI 在 macOS/Windows 都会先自动发现 XiaoE 客户端内置 Python,再回退到系统 Python);③ 内置原生实现读取桌面 XiaoE 客户端会话换取 `eteamId`,依次查找 `XIAOE_USER_SETTINGS_PATH`、`XIAOE_ROBOT_DATA_ROOT` / `XIAOE_ROBOT_ROOT` 和默认 `XiaoE/Robots/<id>/user_settings.json`,因此会话有效时不要求存在 `tokens.py`;④ `WEAVER_XIAOE_*` 环境映射。宿主只注入 `XIAOE_DOMAIN`、`XIAOE_USER_TOKEN` 等平台变量,不会注入 ETEAMSID 环境变量,CLI 也不读取 `XIAOE_ETEAMSID`。Agent 不要打印、转述、索取或要求用户手动设置这些凭证,也不要直接执行任一脚本或因为脚本报缺依赖就让用户安装 Python 包——凭据链内部的兼容回退由 CLI 完成。
78
+ 4. `auth xiaoe` 是 XiaoE 认证方式的显式入口:CLI 不再判断当前宿主,只检查并消费可用凭据源。E10 目标地址按「显式 `--base-url` → 专用 `WEAVER_XIAOE_*` E10 配置/映射 → 当前 profile → CLI 内置默认值」解析,绝不能把 `XIAOE_DOMAIN` 当作 E10 地址。Token、Cookie、ETEAMSID 仍属于凭证,禁止在回复中展示。
79
+ 5. XiaoE 统一登录走不通时,无论 macOS、Windows、Linux 或 Web,CLI 都返回 `authentication/xiaoe_credential_unavailable`,绝不自动打开浏览器或降级到 `auth login`;本任务必须停止,不得另行调用其他登录 Skill 或登录命令。
80
+ 6. `auth status --no-check` 不会触发 XiaoE 统一登录;业务命令只有在已加载的会话被 E10 明确拒绝为失效时,才静默触发一次统一登录并重放该请求一次。首次无本地会话仍须显式执行 `auth xiaoe`;具体读取 [`e10-auth-and-session.md`](references/e10-auth-and-session.md)。
81
+
82
+ ### 认证错误只报告状态,不指定登录命令
83
+
84
+ CLI 和业务 Skill 在返回 `authentication` / `session_expired` 时,只能说明未登录或会话已失效,不得在 `error.message` 或业务错误分支中写死 `auth login`、`auth xiaoe`、`--base-url`、`--agent_type` 等具体登录命令或参数。
73
85
 
74
- `auth xiaoe` 的 preflight 会输出不含凭证的 `hostDetected`、`attempted`、`tokenScriptDetected`、`clientSettingsDetected`、`baseUrl`;命中脚本分支时会出现 `Trying XiaoE token script credential...`,命中内置 Node 会话分支时会出现 `Trying built-in XiaoE client session credential...`。成功后登录结果和 `auth status` 中的 `credentialSourceStep`、`credentialSourceType`、`credentialSourceLabel` 用于确认实际来源;`2 / token_script / xiaoeUserData/tokens.py` 表示宿主脚本换票成功,`3 / xiaoe_client / XiaoE client settings` 表示不依赖 `tokens.py`、由 Node 直接换票成功。
86
+ 业务 Skill 的提示词必须把认证恢复写成下面的强制分流,不能只写“重新登录”或把认证方式交给错误文案决定:
75
87
 
76
- `auth login` / `auth oidc` 是严格的浏览器 OAuth 入口,即使同一台机器上存在 XiaoE 凭据或客户端文件,也不得先尝试 XiaoE 统一登录。未显式指定 `--auth` / `--profile` 的业务命令也只能在当前进程身份明确为 XiaoE 时自动尝试统一登录。
88
+ 1. Agent 必须重用本任务开始时的宿主判定,禁止调用任何其他登录 Skill。
89
+ 2. 明确为 XiaoE 时,只执行 `weaver-work-cli auth xiaoe`,不得改用 `auth login`。统一登录返回 `authentication/xiaoe_credential_unavailable` 时停止并反馈宿主凭据不可用,不自动回退浏览器登录。
90
+ 3. 非 XiaoE 时,不得执行 `auth xiaoe`;取得用户确认的真实 E10 登录域名后,执行 `weaver-work-cli auth login --base-url "<用户确认的 E10 登录域名>" --agent_type "<当前智能体名称>"`。已有可用 profile 时也可按用户选择切换并验证。
91
+ 4. 登录恢复后,读操作可以重新执行;写操作不得复用旧 continuation,必须重新 prepare 并重新确认。已返回 `partial` / `write_uncertain` 时先只读回查,禁止直接重放写入。
92
+
93
+ `auth xiaoe` 的 preflight 会输出不含凭证的 `authMode=xiaoe`、`credentialSourceDetected`、`attempted`、`platformCredentialDetected`、`tokenScriptDetected`、`clientSettingsDetected`、`environmentCredentialDetected` 和 `baseUrl`;命中脚本分支时会出现 `Trying XiaoE token script credential...`,命中内置 Node 会话分支时会出现 `Trying built-in XiaoE client session credential...`。成功后登录结果和 `auth status` 中的 `credentialSourceStep`、`credentialSourceType`、`credentialSourceLabel` 用于确认实际来源;`2 / token_script / xiaoeUserData/tokens.py` 表示宿主脚本换票成功,`3 / xiaoe_client / XiaoE client settings` 表示不依赖 `tokens.py`、由 Node 直接换票成功。
94
+
95
+ `auth login` / `auth oidc` 是严格的浏览器 OAuth 入口,即使同一台机器上存在 XiaoE 凭据或客户端文件,也不得先尝试 XiaoE 统一登录。
77
96
 
78
97
  ### 浏览器 OAuth 防挂起(顶层强规则)
79
98
 
80
- `auth login`(以及 macOS/Windows 桌面宿主上的 `auth xiaoe` 降级)会在本机 `127.0.0.1:19800` 监听浏览器回调,最长等待 5 分钟。在 Agent 沙箱/托管环境中,外部浏览器无法回调容器内 `127.0.0.1:19800`,因此:
99
+ `auth login` 会在本机 `127.0.0.1:19800` 监听浏览器回调,最长等待 5 分钟。在 Agent 沙箱/托管环境中,外部浏览器无法回调容器内 `127.0.0.1:19800`,因此:
81
100
 
82
- 1. Web/Linux 中运行 `auth xiaoe` 时,收到 `xiaoe_web_credential_unavailable` 即反馈宿主登录态/凭据注入异常,不要自动切换 `auth login`,也不要要求用户去本地终端重复执行命令。
83
- 2. 只有用户明确要求浏览器授权且确认 CLI 与浏览器同机时,才运行 `auth login`;仍须限时等待,超时未完成即终止并反馈。
84
- 3. 用户无法本地执行浏览器登录时,经用户明确同意后改用保底方式 `weaver-work-cli auth set --eteamsid "<ETEAMSID>" --base-url "<用户确认的登录域名>"`,由用户从已登录浏览器主动提供 ETEAMSID;Agent 不得索取、展示或转述该值。
101
+ 1. 任意系统运行 `auth xiaoe` 时,收到 `xiaoe_credential_unavailable` 即反馈宿主登录态/凭据注入异常,不要自动切换 `auth login`,也不要要求用户去本地终端重复执行命令。
102
+ 2. 仅非 XiaoE 环境在用户确认真实 E10 域名且确认 CLI 与浏览器同机后运行 `auth login`;仍须限时等待,超时未完成即终止并反馈。
103
+ 3. 仅非 XiaoE 环境在用户无法完成浏览器登录、且明确要求并同意人工录入时,才可使用保底方式 `weaver-work-cli auth set --eteamsid "<ETEAMSID>" --base-url "<用户确认的登录域名>"`;它不是业务认证错误的默认恢复路径。ETEAMSID 由用户从已登录浏览器主动提供,Agent 不得索取、展示或转述该值。
85
104
  4. 严禁不加限制地前台运行 `auth xiaoe` / `auth login` 并等待 OAuth 回调。
86
105
 
87
106
  ## 通用准则
88
107
 
89
108
  1. 执行业务命令前先确认用法:优先读当前业务 Skill 和被路由到的 reference,必要时跑对应命令的 `--help` 或 `schema`,不要猜参数。
90
109
 
91
- 2. 首次使用先确认 CLI 可用:
110
+ 2. 首次使用先确认 CLI 可用。XiaoE 环境不检查版本,直接执行:
111
+
112
+ ```text
113
+ weaver-work-cli doctor --e10
114
+ ```
115
+
116
+ 非 XiaoE 环境执行:
92
117
 
93
118
  ```text
94
119
  weaver-work-cli --version
95
120
  weaver-work-cli doctor --e10
96
121
  ```
97
122
 
98
- 如果命令不可用(尤其是 `command not found` 或退出码 127),先读 [`weaver-e10-installation.md`](references/weaver-e10-installation.md):先区分「已安装但不在 PATH」与「未安装」(前者只需把全局 bin 目录前置到 PATH,不要重装),确认未安装后再让用户选择 npm 源安装或本地代码安装;本地代码必须提供仓库目录。用户明确同意后才执行 `npm install -g weaver-work-cli`、`npm install`、`npm run build` 或 `npm link`。
123
+ 如果命令不可用(尤其是 `command not found` 或退出码 127),XiaoE 环境按本 Skill 的全局覆盖规则停止并反馈客户端运行时异常;非 XiaoE 环境先读 [`weaver-e10-installation.md`](references/weaver-e10-installation.md):先区分「已安装但不在 PATH」与「未安装」(前者只需把全局 bin 目录前置到 PATH,不要重装),确认未安装后再让用户选择 npm 源安装或本地代码安装;本地代码必须提供仓库目录。用户明确同意后才执行 `npm install -g weaver-work-cli`、`npm install`、`npm run build` 或 `npm link`。
99
124
 
100
125
  3. 业务输入只描述业务对象和意图。认证、Cookie、ETEAMSID、业务 Token、接口地址和回查细节都由 CLI 托管。调用业务 operation 时,简单 JSON 优先使用 `--input-json '<json>'`;多步传递优先用 shell 变量,超大结果用 `--input-ref <refId>`,不要把上一步 stdout 写入临时文件再作为下一步输入。`--input <path>` 只用于用户提供的 JSON 文件或明确的文件业务输入;复杂 JSON 可在确有需要时使用,不能用它中转 CLI 上一步的输出。只有确认当前 shell 能稳定传管道时才使用 `--input -`。生成或改写 docs、reference、提示词和命令示例时,必须同时兼容 Windows 和 macOS/Linux;涉及 JSON 输入、用户目录、路径分隔符、Python 启动器、文件删除、目录查看或文件比对时,同时给 Windows PowerShell 与 macOS/Linux(bash/zsh)两套示例。Agent 先根据当前系统和 shell 选择对应示例,不确定时用 `node -p "process.platform"` 判断。Windows/PowerShell 下不要使用 `printf`、`$HOME/...`、`~/...`、bash 反斜杠续行、`rm/ls/diff/python3` 等 Unix-only 写法。
101
126
 
@@ -105,7 +130,7 @@ weaver-work-cli doctor --e10
105
130
 
106
131
  5. 涉及附件、图片、本地文件、远程 URL 文件或文件内容解析的操作,执行前必须先向用户说明:文件内容可能会被上传到业务系统、OCR/解析服务,并可能进入当前大模型上下文用于理解和处理。必须等待用户明确确认后,才继续上传、读取、解析、OCR、导入或复用已上传文件对象;用户未确认时只说明风险和所需确认,不执行相关命令。
107
132
 
108
- 6. **同名不同包不要混用**:环境中可能并存另一个独立的 E10 登录 CLI(例如 `e10-login`,版本号可能带 `xiaoe` 后缀),它提供登录与状态查询,但其登录态**不会**被 `weaver-work-cli` 复用。可用性一律以 `weaver-work-cli --version` 为凭,登录态一律以 `weaver-work-cli auth status --no-check` / `doctor --e10` 为凭;不得因为另一个 CLI 显示已登录就判定本 CLI 可用,也不要用另一个 CLI 的输出替代本 CLI 的认证结论。
133
+ 6. **同名不同包不要混用**:环境中可能并存另一个独立的 E10 登录 CLI(例如 `e10-login`,版本号可能带 `xiaoe` 后缀),它提供登录与状态查询,但其登录态**不会**被 `weaver-work-cli` 复用。非 XiaoE 环境的 CLI 可用性以 `weaver-work-cli --version` 为凭;XiaoE 环境跳过版本检查,以 `doctor --e10` 或实际业务命令的结果为凭。登录态一律以 `weaver-work-cli auth status --no-check` / `doctor --e10` 为凭;不得因为另一个 CLI 显示已登录就判定本 CLI 可用,也不要用另一个 CLI 的输出替代本 CLI 的认证结论。
109
134
 
110
135
  ## 超时与重试预算
111
136
 
@@ -113,13 +138,13 @@ weaver-work-cli doctor --e10
113
138
 
114
139
  | 命令类别 | 单次超时预算 | 重试策略 |
115
140
  | --- | --- | --- |
116
- | 登录类(`auth xiaoe` / `auth login` / `auth set`) | 300 秒(5 分钟,后台运行 + 限时观察) | **禁止自动重试**;出现降级信号立即终止并移交用户 |
141
+ | 登录类(`auth xiaoe` / `auth login` / `auth set`) | 300 秒(5 分钟,后台运行 + 限时观察) | Agent 不自动重跑登录命令;XiaoE 业务请求收到明确认证拒绝时,CLI 内部只静默恢复 1 次 |
117
142
  | 只读业务查询(list / get / schema / preview) | 120 秒 | 最多 1 次;仅在网络类错误且未产生副作用时 |
118
143
  | 写入类(prepare / apply / import / update / delete) | 600 秒(10 分钟) | **禁止自动重试**(存在重复入账/重复提交风险);结果不确定时只补一次只读回查 |
119
144
  | 安装与构建(`npm install` / `npm run build` / `npm link`) | 1800 秒(30 分钟) | 禁止自动重试;失败即停止并报告,不加 `sudo` |
120
145
  | 诊断类(`--version` / `doctor` / `auth status --no-check` / `skills list`) | 60 秒 | 最多 1 次 |
121
146
 
122
- 预算是**上限**而不是必须等满:登录类一旦出现降级信号(`Open browser login` / `Waiting for E10 authorization callback` / `Could not open browser automatically`)就立即终止,不必等满 300 秒;写入类一旦拿到确定结果或返回 `partial` / `write_uncertain` 也立即停止。慢环境(容器冷启动、大依赖安装、批量导入)可以撑到上限,快环境不要人为等待。
147
+ 预算是**上限**而不是必须等满:`auth login` 一旦出现浏览器 OAuth 等待信号(`Open browser login` / `Waiting for E10 authorization callback` / `Could not open browser automatically`)就立即终止,不必等满 300 秒;写入类一旦拿到确定结果或返回 `partial` / `write_uncertain` 也立即停止。慢环境(容器冷启动、大依赖安装、批量导入)可以撑到上限,快环境不要人为等待。
123
148
 
124
149
  补充约束:
125
150
 
@@ -145,7 +170,7 @@ User-Agent: AgentType=<agentType>,IsAgent=true
145
170
 
146
171
  登录与会话统一由 `weaver-e10-shared` 共享规则和 `weaver-work-cli auth ...` 命令体系托管;业务 Skill 不得自建登录流程,也不得读取、打印、转存任何认证目录或凭证。
147
172
 
148
- 返回 `partial`、`write_uncertain`、登录失效、回查失败或网络中断时,立即停止当前写流程,不自动重试写入或删除。
173
+ 返回 `partial`、`write_uncertain`、回查失败或网络中断时,立即停止当前写流程,不自动重试写入或删除。唯一例外是 XiaoE 公共请求层收到明确的认证拒绝(请求尚未进入业务处理)时,可静默恢复会话并原样重放 1 次;若恢复失败、重放后仍失效、身份变化或请求体不可重放,则立即停止。
149
174
 
150
175
  当前 CLI 的普通大小 JSON 输出是完整 envelope;超过预算时会暂存完整结果,并在 stdout 返回精简摘要和 `refId`。CLI 没有飞书 CLI 那种通用 `--jq`、`--format table/ndjson` 或 `--page-all`。列表、详情、OCR、导出等可能产生大响应时,必须先读 [`json-output-contract.md`](references/json-output-contract.md) 的“大结果渲染与提效规则”:默认小页读取、只保留任务所需字段、分页有预算,回复用户时给摘要,不要原样粘贴超长 JSON。
151
176
 
@@ -156,8 +181,8 @@ User-Agent: AgentType=<agentType>,IsAgent=true
156
181
  | 强触发条件 | Reference |
157
182
  | --- | --- |
158
183
  | 命令不可用、Agent 自动安装 CLI、安装、构建、全局 link、检查可用 skill | [`weaver-e10-installation.md`](references/weaver-e10-installation.md) |
159
- | 登录、profile、E10 会话、baseUrl、auth 文件、`WEAVER_*` / `XIAOE_*` 环境变量;**未登录或登录失效(仅 XiaoE 智能体环境先自动尝试,其它场景需要用户提供登录域名)** | [`e10-auth-and-session.md`](references/e10-auth-and-session.md) |
160
- | 容器/沙箱/CI/无 GUI 环境、无人值守、登录类命令超过 180 秒未结束、出现 `Open browser login` / `Waiting for E10 authorization callback` / `Could not open browser automatically`、显式传域名后仍降级、认证目录 `EACCES` | [`non-interactive-environment.md`](references/non-interactive-environment.md) |
184
+ | 登录、profile、E10 会话、baseUrl、auth 文件、`WEAVER_*` / `XIAOE_*` 环境变量;**未登录或登录失效(明确为 XiaoE 时先显式执行 `auth xiaoe`,其它场景需要用户提供登录域名)** | [`e10-auth-and-session.md`](references/e10-auth-and-session.md) |
185
+ | 容器/沙箱/CI/无 GUI 环境、无人值守、登录类命令超过 180 秒未结束、出现 `Open browser login` / `Waiting for E10 authorization callback` / `Could not open browser automatically`、`auth xiaoe` 返回凭据不可用、认证目录 `EACCES` | [`non-interactive-environment.md`](references/non-interactive-environment.md) |
161
186
  | 判断 stdout/stderr、JSON envelope、退出码、脚本封装、自动化调用、大结果渲染/分页控量 | [`json-output-contract.md`](references/json-output-contract.md) |
162
187
  | 准备执行写入/删除/导入/更新、遇到 `confirmation.required`、`partial.write_uncertain`、网络中断或回查失败 | [`high-risk-write.md`](references/high-risk-write.md) |
163
188
 
@@ -173,8 +198,8 @@ User-Agent: AgentType=<agentType>,IsAgent=true
173
198
 
174
199
  5. 不能猜测 CLI 未暴露的内部字段、接口路径、ID 解析逻辑或回查语义。
175
200
 
176
- 6. 未登录或登录失效(`authentication` / `session_expired` / `auth status` 未登录)时,XiaoE 宿主环境必须先运行 `weaver-work-cli auth xiaoe` 尝试统一登录;统一登录不可用时必须反馈 CLI 原因。Web/Linux 环境不得把 `xiaoe_web_credential_unavailable` 自动改成浏览器 OAuth 或本地终端操作;只有用户明确要求且 CLI 与浏览器同机时才运行 `auth login`。执行浏览器登录时必须传入 `--agent_type "<当前智能体名称>"`,让授权确认页展示发起登录验证的智能体;**禁止**使用示例占位域名登录,也禁止在拿到域名前反复重试业务命令。具体流程读取 [`e10-auth-and-session.md`](references/e10-auth-and-session.md)。
201
+ 6. 未登录或登录失效(`authentication` / `session_expired` / `auth status` 未登录)时,Agent 若已根据桌面端明确上下文或网页端原有环境变量规则判定为 XiaoE,必须运行 `weaver-work-cli auth xiaoe` 尝试统一登录;统一登录不可用时必须反馈 CLI 原因并停止。任意系统都不得把 `xiaoe_credential_unavailable` 改成浏览器 OAuth、本地终端操作或其他登录 Skill。仅非 XiaoE 环境在用户确认真实 E10 域名后运行 `auth login`,并必须传入 `--agent_type "<当前智能体名称>"`,让授权确认页展示发起登录验证的智能体;**禁止**使用示例占位域名登录,也禁止在拿到域名前反复重试业务命令。具体流程读取 [`e10-auth-and-session.md`](references/e10-auth-and-session.md)。
177
202
 
178
203
  7. 附件、图片上传或文件解析属于敏感数据处理。即便 operation 风险等级不是高风险写入,也必须先取得用户对“文件内容可能进入大模型/外部解析服务”的明确确认;不能把用户仅提供文件路径或文件名视为同意解析或上传。
179
204
 
180
- 8. 在 XiaoE 宿主环境中,CLI 按顺序从平台注入凭证(Node 换票后由 CLI npm 包自带 `xiaoe_env.py` 兼容回退)、宿主 `xiaoeUserData/tokens.py`、内置原生实现读取的桌面 XiaoE 客户端会话(宿主注入路径优先、默认 `XiaoE/Robots/<id>/user_settings.json` 回退)、`WEAVER_XIAOE_*` 环境映射读取支持统一登录的凭证(宿主不会注入 ETEAMSID 环境变量)。桌面会话有效时 Node 可直接换票,不要求存在 `tokens.py`;shared Skill 也不携带任何 Token 脚本。`XIAOE_DOMAIN` 仅是 XiaoE/erpa 换票服务地址;E10 目标按显式参数、专用 E10 配置/映射、当前 profile、CLI 默认值的顺序解析。业务命令会在未显式指定 `--auth` / `--profile` 时自动优先尝试 XiaoE 统一登录;Agent 也可以显式调用 `weaver-work-cli auth xiaoe`。不要要求用户提供、展示或手动设置这些凭证。Web/Linux 失败时反馈结构化错误,不自动降级浏览器;macOS/Windows 桌面宿主可由 CLI 自动降级。
205
+ 8. Agent 明确选择 `auth xiaoe` 后,CLI 按顺序从平台注入凭证(Node 换票后由 CLI npm 包自带 `xiaoe_env.py` 兼容回退)、宿主 `xiaoeUserData/tokens.py`、内置原生实现读取的桌面 XiaoE 客户端会话(宿主注入路径优先、默认 `XiaoE/Robots/<id>/user_settings.json` 回退)、`WEAVER_XIAOE_*` 环境映射读取支持统一登录的凭证(宿主不会注入 ETEAMSID 环境变量)。桌面会话有效时 Node 可直接换票,不要求存在 `tokens.py`;shared Skill 也不携带任何 Token 脚本。`XIAOE_DOMAIN` 仅是 XiaoE/erpa 换票服务地址;E10 目标按显式参数、专用 E10 配置/映射、当前 profile、CLI 默认值的顺序解析。业务命令不会在首次无会话时自动登录,但已有会话被接口明确拒绝时会静默恢复 1 次;桌面端需要 XiaoE 专属业务行为时,Agent 必须添加 `--runtime-agent xiaoe`,命令进程中存在任意 `XIAOE_*` 变量时也会直接识别为 XiaoE。不要要求用户提供、展示或手动设置这些凭证。任意系统失败时都反馈结构化错误,不自动降级浏览器。
@@ -3,7 +3,7 @@
3
3
  ## 什么时候读取
4
4
 
5
5
  用户需要登录、切换 profile、诊断 E10 连接、处理登录失效,或任务涉及 `base-url`、auth 文件、Keychain、`WEAVER_*` 环境变量时读取本文件。
6
- 当当前智能体身份明确为 XiaoE,且认证流程涉及 `XIAOE_*` 环境变量或 `xiaoeUserData/tokens.py` 时也读取本文件。成对的平台凭据,或桌面客户端精确注入的 `XIAOE_DATA_ROOT` / `XIAOE_ROBOT_DATA_ROOT` / `XIAOE_USER_SETTINGS_PATH` / `XIAOE_ROBOT_ROOT` 可标识 XiaoE 宿主;仅本机存在脚本、客户端目录、`XIAOE_SKILL_*` 或 `WEAVER_XIAOE_*` 配置不能据此判定。
6
+ 当宿主或任务上下文明确说明当前智能体为 XiaoE,且认证流程涉及 `XIAOE_*` 环境变量或 `xiaoeUserData/tokens.py` 时也读取本文件。桌面客户端可根据“智能小 e 客户端”“小 E”、`XiaoE`、`xiaoe-client` 等明确上下文判断,并给 CLI 传 `--runtime-agent xiaoe`;传入 CLI 的环境中存在任意 `XIAOE_*` 变量时也直接判断为 XiaoE。工作目录、客户端文件、内置 Node.js 或已安装 CLI 本身不能单独判定宿主身份。
7
7
 
8
8
  ## 基本检查
9
9
 
@@ -20,7 +20,7 @@ weaver-work-cli auth whoami
20
20
 
21
21
  登录态判断只允许通过 `weaver-work-cli auth status --no-check`、`weaver-work-cli auth profile list/current`、`weaver-work-cli doctor --e10` 和业务命令返回的 JSON 错误完成。只有用户明确提供外部 auth 文件路径时,才可按用户要求使用 `--auth <path>` 或 `E10_AUTH_PATH`;不能主动搜索旧认证目录。
22
22
 
23
- ## 未登录 / 登录失效:仅 XiaoE 智能体自动尝试统一登录
23
+ ## 未登录 / 登录失效:由 Agent 显式选择认证方式
24
24
 
25
25
  业务命令依赖 E10 登录态。出现以下任一情况即判定为未登录或登录失效:
26
26
 
@@ -29,6 +29,8 @@ weaver-work-cli auth whoami
29
29
  - 业务命令失败,stderr JSON 中 `error.type === "authentication"`(如 `E10 auth not found`)
30
30
  - 业务命令返回 `error.subtype === "session_expired"`(E10 登录态 401/302 失效)
31
31
 
32
+ CLI 的认证错误只是状态信号,不是登录命令。`error.message` 和业务 Skill 的错误分支不得指定 `auth login`、`auth xiaoe` 或其参数;Agent 必须先判定当前宿主环境,再按下述流程自行选择认证方式。
33
+
32
34
  此时**禁止**:
33
35
 
34
36
  - 使用示例占位域名(如 `https://weapp.xxx.cn`)或自行猜测域名执行登录
@@ -38,22 +40,23 @@ weaver-work-cli auth whoami
38
40
 
39
41
  **正确流程(按序执行,缺一不可):**
40
42
 
41
- 0. **仅 XiaoE 智能体环境优先自动尝试统一登录**:只有宿主/任务上下文明确标识当前智能体为 XiaoE、当前命令进程收到 XiaoE 按次注入的成对平台凭据,或收到桌面 XiaoE 精确注入的运行时路径标记时,才运行:
43
+ 0. **仅 XiaoE 智能体环境由 Agent 主动选择统一登录**:桌面端宿主/任务上下文明确标识为 XiaoE,或网页端命中原有环境变量判断时,才运行:
42
44
  ```text
43
45
  weaver-work-cli auth xiaoe
44
46
  ```
45
- 本机存在 `xiaoeUserData/tokens.py`、XiaoE 客户端目录、`XIAOE_SKILL_*` 或 `WEAVER_XIAOE_*` 配置都只表示“凭据可能可用”,不表示“当前智能体是 XiaoE”。桌面 XiaoE 的精确宿主标记是 `XIAOE_DATA_ROOT`、`XIAOE_ROBOT_DATA_ROOT`、`XIAOE_USER_SETTINGS_PATH`、`XIAOE_ROBOT_ROOT`。通用 `WORKBUDDY_*` / `CODEX_*` 运行时变量也可能存在于 XiaoE 进程中,不能覆盖成对的平台凭据或上述桌面标记;明确的 `WORKBUDDY_AGENT_TYPE` / `CODEX_AGENT_TYPE` 非 XiaoE 身份除外。WorkBuddy、Codex 及其他智能体必须跳过此步,进入下方浏览器 OAuth 流程。
46
- CLI 会按“显式 `--base-url` → 专用 `WEAVER_XIAOE_*` E10 配置/映射 → 当前 profile `config.baseUrl` → CLI 内置默认值”解析 E10 登录域名;`XIAOE_DOMAIN` 只作为 XiaoE/erpa 换票服务地址。业务命令在未显式指定 `--auth` / `--profile` 时,也会自动优先尝试这一步。若凭证有效,会直接保存登录态,`agentType` 固定为 `XiaoE`,然后继续原业务操作。若 Web/Linux 返回 `authentication/xiaoe_web_credential_unavailable`,反馈宿主登录态/凭据注入异常后停止,不要自动进入下方浏览器流程,也不要要求用户去本地终端重复登录。Agent 不得因为本地存在旧 profile 就跳过统一登录,也不得要求用户提供或展示 `XIAOE_*` / ETEAMSID。
47
+ 本机存在 `xiaoeUserData/tokens.py`、XiaoE 客户端目录、工作目录或历史登录,都不能作为宿主身份依据。桌面客户端可由 `--runtime-agent xiaoe` 标识;命令进程中存在任意 `XIAOE_*` 变量时也直接标识为 XiaoE。未命中这两类判断的 WorkBuddy、Codex 及其他智能体必须跳过此步,进入下方浏览器 OAuth 流程。
48
+ CLI 会按“显式 `--base-url` → 专用 `WEAVER_XIAOE_*` E10 配置/映射 → 当前 profile `config.baseUrl` → CLI 内置默认值”解析 E10 登录域名;`XIAOE_DOMAIN` 只作为 XiaoE/erpa 换票服务地址。`auth xiaoe` 命令本身即代表 Agent 已选择 XiaoE 认证,CLI 只负责发现和消费凭据。业务命令不会在缺少本地会话时主动登录;已有会话被接口明确拒绝为失效时,公共请求层会静默恢复并重放一次。桌面客户端需要 XiaoE 专属业务行为时,Agent 在业务命令上显式添加全局参数 `--runtime-agent xiaoe`,命令进程中存在任意 `XIAOE_*` 变量时也会自动识别。统一登录失败时返回认证错误并停止,任何操作系统都不自动进入浏览器流程。Agent 不得因为本地存在旧 profile 就跳过 XiaoE 认证规则,不得调用任何其他登录 Skill,也不得要求用户提供或展示 `XIAOE_*` / ETEAMSID。
47
49
 
48
- 1. **先调用宿主提供的提问 / 弹框能力询问用户**,让用户二选一:
50
+ 1. **仅非 XiaoE 环境进入本步**。禁止先执行 `auth xiaoe` 或调用其他登录 Skill。先调用宿主提供的提问 / 弹框能力询问用户,让用户二选一:
49
51
  - 输入本次要登录的 E10 登录域名(base URL),形如 `https://<企业域名>`;或
50
52
  - 从已有 profile 中选择一个已登录环境:先运行 `weaver-work-cli auth profile list` 列出候选,让用户选择。
51
53
  2. 用户提供了**新域名**时,用真实域名执行浏览器 OAuth 登录:
52
54
  ```text
53
55
  weaver-work-cli auth login --base-url "<用户输入的域名>" --agent_type "<当前智能体名称>"
54
56
  ```
57
+ 该分支仅用于非 XiaoE 环境;不得先执行 `auth xiaoe`,也不得改调其他登录 Skill。
55
58
  端口冲突时加 `--port 19801`。
56
- 3. 用户选择了**已有 profile** 时,切换后验证登录态:
59
+ 3. 用户明确要求切换到**已有且仍有效的 profile** 时,切换后验证登录态;这不是失效会话的替代登录方式:
57
60
  ```text
58
61
  weaver-work-cli auth profile use PROFILE_NAME
59
62
  weaver-work-cli auth status
@@ -64,11 +67,11 @@ weaver-work-cli auth whoami
64
67
 
65
68
  ## 浏览器 OAuth 防挂起
66
69
 
67
- `auth login`(以及 macOS/Windows 桌面宿主上的 `auth xiaoe` 降级)会在本机 `127.0.0.1:19800` 监听浏览器回调,最长等待 5 分钟。Agent 沙箱/托管环境中的外部浏览器无法回调容器内地址。执行规则:
70
+ `auth login` 会在本机 `127.0.0.1:19800` 监听浏览器回调,最长等待 5 分钟。Agent 沙箱/托管环境中的外部浏览器无法回调容器内地址。`auth xiaoe` 不会进入这条浏览器流程。执行规则:
68
71
 
69
- 1. Web/Linux 中运行 `auth xiaoe` 时,收到 `xiaoe_web_credential_unavailable` 即反馈并停止;不要自动改跑 `auth login`。
70
- 2. 只有用户明确要求浏览器授权且确认 CLI 与浏览器同机时,才执行 `auth login`;仍须限时等待,超时未完成即终止并反馈。
71
- 3. 用户无法本地执行浏览器登录时,经用户明确同意后改用保底方式 `weaver-work-cli auth set --eteamsid "<ETEAMSID>" --base-url "<用户确认的登录域名>"`,由用户从已登录浏览器主动提供 ETEAMSID;Agent 不得索取、展示或转述该值。
72
+ 1. 任意系统运行 `auth xiaoe` 时,收到 `xiaoe_credential_unavailable` 即反馈并停止;不要自动改跑 `auth login`。
73
+ 2. 仅非 XiaoE 环境在用户确认真实 E10 域名且确认 CLI 与浏览器同机后执行 `auth login`;仍须限时等待,超时未完成即终止并反馈。
74
+ 3. 仅非 XiaoE 环境在用户无法完成浏览器登录、且明确要求并同意人工录入时,才可使用保底方式 `weaver-work-cli auth set --eteamsid "<ETEAMSID>" --base-url "<用户确认的登录域名>"`;它不是业务认证错误的默认恢复路径。ETEAMSID 由用户从已登录浏览器主动提供,Agent 不得索取、展示或转述该值。
72
75
  4. 严禁不加限制地前台运行 `auth xiaoe` / `auth login` 并等待 OAuth 回调。
73
76
 
74
77
  ## 登录
@@ -81,17 +84,17 @@ weaver-work-cli auth login --base-url "<用户确认的登录域名>" --agent_ty
81
84
 
82
85
  `auth login` / `auth oidc` 是严格的浏览器 OAuth 入口,不会因为本机可发现 XiaoE 凭据、脚本或客户端文件而改走 XiaoE 统一登录。
83
86
 
84
- 在 XiaoE 宿主环境中,`auth xiaoe` 先使用平台注入的 `XIAOE_USER_TOKEN` + `XIAOE_DOMAIN` 换取 ETEAMSID(沙箱唯一可用来源):先走 Node 主路径,失败后由 CLI npm 包自带的 `scripts/xiaoe_env.py` 作标准库兼容回退;拿不到时再读宿主 `xiaoeUserData/tokens.py` 的 stdout JSON(仅桌面宿主),再退回内置原生实现读取桌面 XiaoE 客户端会话(优先 `XIAOE_USER_SETTINGS_PATH`,其次 `XIAOE_ROBOT_DATA_ROOT` / `XIAOE_ROBOT_ROOT`,最后默认 `XiaoE/Robots/<id>/user_settings.json`,不需要 `tokens.py` 或本机 Python);仍未识别到可用凭证时,才读取 `WEAVER_XIAOE_*` 环境变量里的“当前登录域名 -> ETEAMSID”统一登录映射,并且保存的 `agentType` 固定为 `XiaoE`。`XIAOE_DOMAIN` 是 XiaoE/erpa 换票服务地址,不能作为 E10 地址;E10 目标按“显式 `--base-url` → 专用 `WEAVER_XIAOE_*` E10 配置/映射 → 当前 profile → CLI 内置默认值”解析。Node 和 Python 兼容路径都校验业务码及 `data.eteamId`,保留系统 CA 校验,只允许同源重定向或同主机 HTTP→HTTPS 升级。统一登录失败时,Web/Linux 返回 `authentication/xiaoe_web_credential_unavailable`,不自动启动 localhost 浏览器 OAuth;macOS/Windows 桌面宿主才允许自动降级。
87
+ Agent 明确执行 `auth xiaoe` 后,CLI 先使用平台注入的 `XIAOE_USER_TOKEN` + `XIAOE_DOMAIN` 换取 ETEAMSID:先走 Node 主路径,失败后由 CLI npm 包自带的 `scripts/xiaoe_env.py` 作标准库兼容回退;拿不到时再读宿主 `xiaoeUserData/tokens.py` 的 stdout JSON(仅桌面宿主),再退回内置原生实现读取桌面 XiaoE 客户端会话(优先 `XIAOE_USER_SETTINGS_PATH`,其次 `XIAOE_ROBOT_DATA_ROOT` / `XIAOE_ROBOT_ROOT`,最后默认 `XiaoE/Robots/<id>/user_settings.json`,不需要 `tokens.py` 或本机 Python);仍未识别到可用凭证时,才读取 `WEAVER_XIAOE_*` 环境变量里的“当前登录域名 -> ETEAMSID”统一登录映射,并且保存的 `agentType` 固定为 `XiaoE`。`XIAOE_DOMAIN` 是 XiaoE/erpa 换票服务地址,不能作为 E10 地址;E10 目标按“显式 `--base-url` → 专用 `WEAVER_XIAOE_*` E10 配置/映射 → 当前 profile → CLI 内置默认值”解析。Node 和 Python 兼容路径都校验业务码及 `data.eteamId`,保留系统 CA 校验,只允许同源重定向或同主机 HTTP→HTTPS 升级。统一登录失败时,所有系统都返回 `authentication/xiaoe_credential_unavailable`,不启动 localhost 浏览器 OAuth。
85
88
 
86
- 需要显式表达“XiaoE 优先”的场景也可以使用等价入口:
89
+ XiaoE 认证只使用这个显式入口:
87
90
 
88
91
  ```text
89
92
  weaver-work-cli auth xiaoe
90
93
  ```
91
94
 
92
- 该命令先尝试 XiaoE 统一登录;统一登录不可用时先反馈原因。Web/Linux 环境直接结束并返回结构化错误,不自动切换浏览器 OAuth;macOS/Windows 桌面宿主可以继续降级。用户明确切换域名时再追加 `--base-url "<用户确认的登录域名>"`。
95
+ 该命令按凭据可用性尝试 XiaoE 统一登录;统一登录不可用时直接返回结构化错误,不自动切换浏览器 OAuth,也不提供浏览器降级参数。用户明确切换域名时再追加 `--base-url "<用户确认的登录域名>"`。
93
96
 
94
- 命令首先输出不含凭证的 preflight 摘要:`hostDetected` 表示是否识别为 XiaoE 宿主,`attempted` 表示是否实际进入统一登录链路,`tokenScriptDetected` 表示是否发现宿主脚本,`clientSettingsDetected` 表示是否发现可供 Node 换票的桌面会话文件。脚本分支开始时会打印 `Trying XiaoE token script credential...`,Node 会话分支开始时会打印 `Trying built-in XiaoE client session credential...`。成功结果及后续 `auth status` 的 `credentialSourceStep=2`、`credentialSourceType=token_script`、`credentialSourceLabel=xiaoeUserData/tokens.py` 可确认脚本换票已完成;`credentialSourceStep=3`、`credentialSourceType=xiaoe_client`、`credentialSourceLabel=XiaoE client settings` 表示未依赖 `tokens.py`、由 Node 直接换票。
97
+ 命令首先输出不含凭证的 preflight 摘要:`authMode=xiaoe` 表示当前命令已显式选择 XiaoE 认证,`credentialSourceDetected` 表示是否发现可用凭据源,`attempted` 表示是否实际进入统一登录链路,其余字段分别标记各来源。脚本分支开始时会打印 `Trying XiaoE token script credential...`,Node 会话分支开始时会打印 `Trying built-in XiaoE client session credential...`。成功结果及后续 `auth status` 的 `credentialSourceStep=2`、`credentialSourceType=token_script`、`credentialSourceLabel=xiaoeUserData/tokens.py` 可确认脚本换票已完成;`credentialSourceStep=3`、`credentialSourceType=xiaoe_client`、`credentialSourceLabel=XiaoE client settings` 表示未依赖 `tokens.py`、由 Node 直接换票。
95
98
 
96
99
  如果端口冲突:
97
100
 
@@ -113,10 +116,9 @@ weaver-work-cli auth login --base-url "<用户确认的登录域名>" --agent_ty
113
116
  本地文件 URL。“始终打开”偏好保存在当前本地回调地址的浏览器存储中;未识别到返回协议
114
117
  时,页面只提示用户手动返回智能体或终端。本地 CLI 打开通道默认保留 15 分钟;通道结束
115
118
  后页面会自动退回浏览器自定义协议打开方式,不直接显示网络请求错误。
116
- 智能小 E 统一登录成功时不会经过浏览器;只有统一登录不可用并降级为桌面浏览器 OAuth 时,
117
- 才显示“返回智能小 E”弹层。
119
+ 智能小 E 统一登录不会经过浏览器,也不会显示“返回智能小 E”弹层;该弹层只属于非 XiaoE 环境发起的 `auth login` 浏览器 OAuth。
118
120
 
119
- 保底方式是让用户手动写入浏览器中的 `ETEAMSID`:
121
+ 仅非 XiaoE 环境在用户明确要求时,保底方式才是让用户手动写入浏览器中的 `ETEAMSID`:
120
122
 
121
123
  ```text
122
124
  weaver-work-cli auth set --eteamsid "PCACCOUNT_xxx" --base-url "<用户确认的登录域名>" --agent_type "<当前智能体名称>"
@@ -139,14 +141,14 @@ weaver-work-cli --profile PROFILE_NAME auth status --no-check
139
141
 
140
142
  ## XiaoE 凭据由 CLI 独占处理
141
143
 
142
- `auth xiaoe` 或业务命令触发统一登录时,CLI 按以下顺序自行取凭据,Agent **不参与、也不得复现**:
144
+ 运行 `auth xiaoe`,或已登录的 XiaoE 业务请求被 E10 明确拒绝为会话失效时,CLI 按以下顺序自行取凭据,Agent **不参与、也不得复现**。后者全程静默、合并同一 profile 的并发恢复,并最多重放原请求 1 次;流式请求、网络错误、`partial` / `write_uncertain` 均不触发重放:
143
145
 
144
146
  1. **平台注入凭据**:`XIAOE_USER_TOKEN` + `XIAOE_DOMAIN`(小 e 业务服务地址)。先由 Node 直接换票;失败时 CLI 可调用 npm 包自带的 `scripts/xiaoe_env.py` 兼容换票。脚本不属于 Skill,由 CLI 内部执行、解析并隐藏凭证 stdout。
145
147
  2. **宿主 `tokens.py`**:桌面宿主 `xiaoeUserData/tokens.py`(macOS `~/Library/Application Support/xiaoeUserData/tokens.py`,Windows `%LOCALAPPDATA%\xiaoeUserData\tokens.py`);CLI 在 macOS 应用包与 Windows 按用户/全局安装目录中自动查找 XiaoE 客户端内置 Python,并优先用它执行脚本;可用 `WEAVER_XIAOE_TOKEN_SCRIPT_PATH` 指定脚本路径,用 `WEAVER_XIAOE_TOKEN_SCRIPT_PYTHON` 指定解释器。
146
148
  3. **桌面 XiaoE 客户端会话**:优先读取 `XIAOE_USER_SETTINGS_PATH`,其次从 `XIAOE_ROBOT_DATA_ROOT` / `XIAOE_ROBOT_ROOT` 查找,最后回退 `XiaoE/Robots/<id>/user_settings.json`;其中的 `session_id` + `erpa` 由 CLI 内置 Node 实现换取 `eteamId`,不需要宿主 `tokens.py` 或本机 Python。
147
149
  4. **`WEAVER_XIAOE_*` 环境映射**:当前登录域名到 ETEAMSID 的映射。
148
150
 
149
- Agent 禁止自行执行 `tokens.py`、`xiaoe_env.py` 或任何取 Token 脚本(其 stdout 含 ETEAMSID/Cookie/Token,会进入对话与日志),也禁止把这些脚本放入 shared Skill;禁止 `eval` / `Invoke-Expression` `auth export-weaver-env` 的输出,也禁止要求用户粘贴或展示任何凭证。脚本不存在、Python 依赖缺失、stdout 非法或接口失败,都由 CLI 内部记录并降级;Agent 只需把 CLI 反馈的原因转述给用户,不猜测或伪造 Token。
151
+ Agent 禁止自行执行 `tokens.py`、`xiaoe_env.py` 或任何取 Token 脚本(其 stdout 含 ETEAMSID/Cookie/Token,会进入对话与日志),也禁止把这些脚本放入 shared Skill;禁止 `eval` / `Invoke-Expression` `auth export-weaver-env` 的输出,也禁止要求用户粘贴或展示任何凭证。脚本不存在、Python 依赖缺失、stdout 非法或接口失败,都由 CLI 内部记录并继续检查下一凭据源;Agent 只需把 CLI 反馈的原因转述给用户,不猜测或伪造 Token。
150
152
 
151
153
  ## 安全边界
152
154
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  - 运行在容器、沙箱、CI、远程执行器或任何无 GUI / 无本地浏览器的环境
8
8
  - 无法向用户弹出输入框、选择框或确认框(无人值守)
9
- - `auth xiaoe` / `auth login` 输出中出现浏览器 OAuth 相关字样(见下方「降级信号」)
9
+ - `auth login` 输出中出现浏览器 OAuth 相关字样(见下方「浏览器 OAuth 信号」)
10
10
  - 登录类命令执行时间超过 180 秒仍未结束(300 秒为硬上限,见 SKILL.md「超时与重试预算」)
11
11
 
12
12
  ## 环境判定:可交互 vs 非交互
@@ -22,19 +22,19 @@
22
22
 
23
23
  ## 登录失败信号判读
24
24
 
25
- Web/Linux 中 `auth xiaoe` 统一登录失败时会直接返回结构化错误:
25
+ 任意系统中 `auth xiaoe` 统一登录失败时都会直接返回结构化错误:
26
26
 
27
27
  ```text
28
28
  error.type = authentication
29
- error.subtype = xiaoe_web_credential_unavailable
29
+ error.subtype = xiaoe_credential_unavailable
30
30
  error.stage = xiaoe_unified_login
31
31
  ```
32
32
 
33
33
  收到该错误后,反馈宿主登录态或凭据注入不可用并停止。不要自动执行 `auth login`,也不要要求用户在本地终端重复执行登录。
34
34
 
35
- 只有用户明确要求浏览器授权,或 macOS/Windows 桌面宿主允许 `auth xiaoe` 自动降级时,才可能出现下列浏览器 OAuth 信号:
35
+ `auth xiaoe` 不会自动降级到浏览器;当前任务已判定为 XiaoE 时不得另行执行 `auth login` 或调用其他登录 Skill。只有非 XiaoE 环境进入 `auth login` 流程时,才可能出现下列浏览器 OAuth 信号:
36
36
 
37
- | 降级信号 | 含义 |
37
+ | 浏览器 OAuth 信号 | 含义 |
38
38
  | --- | --- |
39
39
  | `Open browser login: <url>` | 已生成浏览器授权 URL,准备跳转 OAuth |
40
40
  | `Waiting for E10 authorization callback...` | 已在本地 `127.0.0.1:<port>` 监听回调并等待 |
@@ -44,9 +44,9 @@ error.stage = xiaoe_unified_login
44
44
  在非交互环境中出现任一信号时的处置顺序:
45
45
 
46
46
  1. **立即终止**该命令,不要等待本地回调。
47
- 2. 向用户反馈统一登录未命中的**实际原因**(凭证未取到 / 域名不在支持范围 / 当前域名与凭证不匹配 / CLI 侧能力缺口)。
48
- 3. 不自动给出“去本地终端执行”的操作;只有用户明确要求改用浏览器授权时,才说明该方式必须在 CLI 与浏览器同机的环境执行。
49
- 4. 用户明确要求保底方式时,可说明 `auth set`,但 Agent 不得索取、展示、转述或记录 ETEAMSID:
47
+ 2. 向用户反馈浏览器 OAuth 在当前环境无法完成本地回调的实际原因。
48
+ 3. 不自动给出“去本地终端执行”的操作;仅非 XiaoE 环境可说明浏览器授权必须在 CLI 与浏览器同机的环境执行。
49
+ 4. 仅非 XiaoE 环境且用户明确要求保底方式时,可说明 `auth set`,但 Agent 不得索取、展示、转述或记录 ETEAMSID:
50
50
  ```text
51
51
  weaver-work-cli auth set --eteamsid "<ETEAMSID>" --base-url "<用户确认的登录域名>" --agent_type "<当前智能体名称>"
52
52
  ```
@@ -57,15 +57,15 @@ error.stage = xiaoe_unified_login
57
57
  显式传入 E10 域名后仍返回统一登录错误:
58
58
 
59
59
  ```text
60
- weaver-work-cli auth xiaoe --base-url "<用户确认的 E10 域名>" --agent_type "<当前智能体名称>"
61
- # authentication/xiaoe_web_credential_unavailable
60
+ weaver-work-cli auth xiaoe --base-url "<用户确认的 E10 域名>"
61
+ # authentication/xiaoe_credential_unavailable
62
62
  ```
63
63
 
64
64
  判定结论与处置:
65
65
 
66
66
  - 域名与网络**不是**失败原因,不要再反复更换域名重试。
67
- - 这属于宿主登录态、凭据注入或当前 CLI 版本消费凭证的异常;停止并反馈,同时可记录 CLI 版本(`weaver-work-cli --version`)便于定位。
68
- - 不要因为一次降级就断言 CLI 不可用;只读诊断命令(`auth status --no-check`、`doctor --e10`)仍可作为环境检查手段。
67
+ - 这属于宿主登录态、凭据注入或当前 CLI 消费凭证的异常;停止并反馈。XiaoE 环境不执行 `weaver-work-cli --version`,版本检查更新由客户端负责。
68
+ - 不要因为一次认证失败就断言 CLI 不可用;只读诊断命令(`auth status --no-check`、`doctor --e10`)仍可作为环境检查手段。
69
69
 
70
70
  ## 可写性相关说明
71
71
 
@@ -75,7 +75,7 @@ weaver-work-cli auth xiaoe --base-url "<用户确认的 E10 域名>" --agent_typ
75
75
 
76
76
  ## 收尾流程(每次登录尝试后必做)
77
77
 
78
- 1. 记录本次结果:成功 / 降级 / 权限失败 / 超时,以及耗时与退出码。
78
+ 1. 记录本次结果:成功 / 凭据不可用 / 权限失败 / 超时,以及耗时与退出码。
79
79
  2. 非成功结果一律**不自动重试**登录类命令(见 SKILL.md「超时与重试预算」)。
80
80
  3. 用只读命令确认真实登录态,再决定是否继续业务操作:
81
81
  ```text
@@ -1,8 +1,10 @@
1
1
  # 安装与可用性检查
2
2
 
3
+ > **XiaoE 例外(覆盖全文)**:本任务已判定为 XiaoE 时,不执行本文任何 `weaver-work-cli --version`、`npm view weaver-work-cli version`、npm 安装或升级步骤。CLI 的检查更新由 XiaoE 客户端负责;直接进入登录态诊断或业务命令。若命令不存在或明确报告版本不兼容,停止并反馈 XiaoE 客户端运行时异常。
4
+
3
5
  ## 什么时候读取
4
6
 
5
- 命令不可用、版本不确定、用户刚安装、全局命令可能指向旧版本,或需要确认当前安装包含哪些 Agent Skill 时读取本文件。
7
+ 仅非 XiaoE 环境在命令不可用、版本不确定、用户刚安装、全局命令可能指向旧版本,或需要确认当前安装包含哪些 Agent Skill 时读取本文件。XiaoE 环境只在命令异常时读取上面的覆盖规则并停止,不进入手工安装流程。
6
8
 
7
9
  ## 检查命令
8
10
 
@@ -113,7 +113,12 @@ Agent 不得自行拼接、改写或向用户索取上述凭证(禁止要求
113
113
  - **除非错误明确提示可恢复或需要补充参数,否则不要重复刷同一个 operation**
114
114
  - 写请求已经发出后,遇到结果不确定必须停止;不要把 `.apply` 当成可重试读操作
115
115
  - 下载是异步任务,`.apply` 会持续轮询进度;不要因为等待时间长就中断重放
116
- - **错误为 `authentication` 或 `session_expired` 时:立即停止当前操作,不要用示例占位域名或自行猜域名登录,也不要盲目重试**。先读取共享规则 `../weaver-e10-shared/references/e10-auth-and-session.md`,按其中流程让用户输入 E10 登录域名或选择已有 profile,完成登录后再继续原操作。
116
+ - **错误为 `authentication` 或 `session_expired` 时:立即停止当前操作,不要用示例占位域名或自行猜域名登录,也不要盲目重试**。先读取共享规则 `../weaver-e10-shared/references/e10-auth-and-session.md`。
117
+ - 登录失效的认证方式必须由 Agent 复用本任务开始时的宿主判定,禁止调用任何其他登录 Skill。
118
+ - 明确为 XiaoE 时,只执行 `weaver-work-cli auth xiaoe`,不得改用 `auth login`。
119
+ - 统一登录返回 `authentication/xiaoe_credential_unavailable` 时停止并反馈宿主凭据不可用,不自动回退浏览器登录。
120
+ - 非 XiaoE 时不得执行 `auth xiaoe`;取得用户确认的真实 E10 登录域名后,执行 `weaver-work-cli auth login --base-url "<用户确认的 E10 登录域名>" --agent_type "<当前智能体名称>"`。
121
+ - 登录恢复后读操作可重新执行;写操作不得复用旧 continuation,必须重新 prepare 并重新确认。已返回 `partial/write_uncertain` 时先只读回查,禁止直接重放写入。
117
122
 
118
123
  ### 4) 附件、图片和文件解析确认
119
124
 
@@ -323,7 +323,7 @@
323
323
  }
324
324
  },
325
325
  "artifactBaseline": {
326
- "aggregateSha256": "4906c249dd3bf507af61ecceac521e3f002027fb80aa2d5c8ddc3d6c929c28e9",
326
+ "aggregateSha256": "83f35c2f01d10c90a94c9770d58ee0b110bca65651229360e3d58891d7a4c322",
327
327
  "files": [
328
328
  {
329
329
  "path": "src/shortcuts/archive/continuation.ts",
@@ -427,8 +427,8 @@
427
427
  },
428
428
  {
429
429
  "path": "skills/weaver-e10-wenshuding/SKILL.md",
430
- "size": 17366,
431
- "sha256": "6e734da55df0a3d16f96925766a88cdc9b1686786b989be8d9859bd58748df6b"
430
+ "size": 18173,
431
+ "sha256": "e82a3d28e3095241e892181fd40719cfb03ef6e266a1a23c3b8b07a613171b60"
432
432
  },
433
433
  {
434
434
  "path": "skill-template/product.json",