weaver-work-cli 0.1.25 → 0.1.26

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 (81) hide show
  1. package/README.md +30 -30
  2. package/dist/cmd/root.js +1 -0
  3. package/dist/core/runtime-agent.js +19 -0
  4. package/dist/internal/e10/auth/commands.js +47 -27
  5. package/dist/internal/e10/auth/xiaoe.js +62 -43
  6. package/dist/internal/e10/context.js +5 -27
  7. package/dist/shortcuts/archive-oa/constants.js +66 -0
  8. package/dist/shortcuts/archive-oa/continuation.js +70 -0
  9. package/dist/shortcuts/archive-oa/errors.js +53 -0
  10. package/dist/shortcuts/archive-oa/host.js +157 -0
  11. package/dist/shortcuts/archive-oa/index.js +225 -0
  12. package/dist/shortcuts/archive-oa/manifest.js +62 -0
  13. package/dist/shortcuts/archive-oa/operations/borrow-car.js +159 -0
  14. package/dist/shortcuts/archive-oa/operations/borrow-url.js +108 -0
  15. package/dist/shortcuts/archive-oa/operations/confirm.js +48 -0
  16. package/dist/shortcuts/archive-oa/operations/contract.js +120 -0
  17. package/dist/shortcuts/archive-oa/operations/locate.js +50 -0
  18. package/dist/shortcuts/archive-oa/operations/registry.js +40 -0
  19. package/dist/shortcuts/archive-oa/operations/shared.js +181 -0
  20. package/dist/shortcuts/archive-oa/operations/types.js +45 -0
  21. package/dist/shortcuts/archive-oa/operations.js +13 -0
  22. package/dist/shortcuts/index.js +2 -0
  23. package/dist/shortcuts/invoice/host.js +2 -1
  24. package/dist/shortcuts/invoice/manifest.js +111 -0
  25. package/dist/shortcuts/invoice/operations/issuing-qys.js +361 -0
  26. package/dist/shortcuts/invoice/operations/issuing.js +5 -5
  27. package/dist/shortcuts/invoice/operations/registry.js +4 -0
  28. package/dist/shortcuts/workflow/endpoints.js +11 -0
  29. package/dist/shortcuts/workflow/host.js +2 -2
  30. package/dist/shortcuts/workflow/index.js +6 -36
  31. package/dist/shortcuts/workflow/operations/chatscene.js +270 -0
  32. package/dist/shortcuts/workflow/operations/form.js +899 -158
  33. package/dist/shortcuts/workflow/operations/read.js +111 -6
  34. package/dist/shortcuts/workflow/operations/sign-input.js +106 -0
  35. package/dist/shortcuts/workflow/operations/write.js +9 -1
  36. package/dist/shortcuts/workflow/stdout-compact.js +9 -1
  37. package/docs/archive-oa.md +79 -0
  38. package/docs/e10-auth.md +7 -6
  39. package/package.json +1 -1
  40. package/skill-template/business-info.json +16 -0
  41. package/skill-template/domains/archive-oa.md +19 -0
  42. package/skill-template/domains/yepiaotong.md +2 -2
  43. package/skills/weaver-e10-archive-oa/SKILL.md +159 -0
  44. package/skills/weaver-e10-archive-oa/references/archive-locate.md +49 -0
  45. package/skills/weaver-e10-archive-oa/references/borrow-car.md +76 -0
  46. package/skills/weaver-e10-archive-oa/references/borrow-flow.md +53 -0
  47. package/skills/weaver-e10-archive-oa/references/contract-search.md +63 -0
  48. package/skills/weaver-e10-archive-oa/references/disabled-capabilities.md +29 -0
  49. package/skills/weaver-e10-archive-oa/references/qys-contract-search.md +47 -0
  50. package/skills/weaver-e10-archive-oa/references/source-manifest.json +400 -0
  51. package/skills/weaver-e10-builder/SKILL.md +22 -0
  52. package/skills/weaver-e10-caizhilian/SKILL.md +37 -15
  53. package/skills/weaver-e10-caizhilian/references/agent-entry.md +7 -3
  54. package/skills/weaver-e10-caizhilian/references/collaboration.md +5 -3
  55. package/skills/weaver-e10-caizhilian/references/document.md +33 -11
  56. package/skills/weaver-e10-caizhilian/references/file-collection.md +4 -3
  57. package/skills/weaver-e10-caizhilian/references/file-upload.md +2 -3
  58. package/skills/weaver-e10-caizhilian/references/files.md +9 -3
  59. package/skills/weaver-e10-caizhilian/references/folder.md +48 -16
  60. package/skills/weaver-e10-caizhilian/references/setting-attach.md +13 -39
  61. package/skills/weaver-e10-caizhilian/references/setting-backup.md +13 -51
  62. package/skills/weaver-e10-caizhilian/references/setting-encrypt.md +20 -51
  63. package/skills/weaver-e10-caizhilian/references/setting-storage.md +82 -147
  64. package/skills/weaver-e10-caizhilian/references/withheld.md +20 -44
  65. package/skills/weaver-e10-shared/SKILL.md +22 -20
  66. package/skills/weaver-e10-shared/references/e10-auth-and-session.md +14 -15
  67. package/skills/weaver-e10-shared/references/non-interactive-environment.md +10 -10
  68. package/skills/weaver-e10-workflow/references/source-manifest.json +32 -22
  69. package/skills/weaver-e10-workflow/references/workflow-create.md +68 -28
  70. package/skills/weaver-e10-yepiaotong/SKILL.md +10 -7
  71. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-examples.md +49 -1
  72. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-qys-ledger.md +66 -0
  73. package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +59 -36
  74. package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +54 -509
  75. package/skills/weaver-e10-yepiaotong/references/reim-examples.md +182 -345
  76. package/skills/weaver-e10-yepiaotong/references/reim-expense-subject-rules.md +4 -5
  77. package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +153 -345
  78. package/skills/weaver-e10-yepiaotong/references/reim-phone-subsidy-rules.md +5 -5
  79. package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +182 -154
  80. package/skills/weaver-e10-yepiaotong/references/source-manifest.json +96 -0
  81. package/skills/weaver-e10-yepiaotong/references/reim-fast-path.md +0 -119
@@ -39,15 +39,17 @@ requires:
39
39
 
40
40
  ## 最高优先级:XiaoE 统一登录
41
41
 
42
- 只有**当前智能体身份明确是 XiaoE** 时才允许走 XiaoE 统一登录。判定依据只能是宿主/任务上下文明确标识 XiaoE、当前命令进程由 XiaoE 按次注入了成对的平台凭据,或桌面 XiaoE 注入了精确的运行时路径标记。不得把以下任一情况当成 XiaoE 宿主证据:
42
+ XiaoE 环境有两种识别入口:桌面客户端由 Agent 根据宿主或任务上下文明确识别,可接受标识包括“智能小 e 客户端”、“小 E”、`XiaoE` 或 `xiaoe-client`;传入 CLI 的环境中只要存在任意 `XIAOE_*` 变量,也直接识别为 XiaoE,包括 `XIAOE_DATA_ROOT` 等路径变量。本任务开始时只判断一次,后续命令沿用同一结论。没有 `XIAOE_*` 环境变量时,不得把以下任一情况单独当成 XiaoE 宿主证据:
43
43
 
44
44
  - 本机存在 `xiaoeUserData/tokens.py` 或 XiaoE 客户端目录;
45
- - 环境中只有 `XIAOE_SKILL_*`、`WEAVER_XIAOE_*` 配置或历史兼容变量;
45
+ - 文件系统中存在客户端目录、配置文件或 Token 脚本,但这些路径没有通过 `XIAOE_*` 环境变量传入;
46
+ - 仅有 `WEAVER_XIAOE_*`、`WORKBUDDY_*`、`CODEX_*` 环境变量;
47
+ - 工作目录名含 `xiaoeUserData`、使用 XiaoE 内置 Node.js,或已安装相关 CLI;
46
48
  - 过去在同一台机器上登录或安装过 XiaoE。
47
49
 
48
- WorkBuddy、Codex 及其他智能体一律使用 `weaver-work-cli auth login --base-url "<用户确认的登录域名>" --agent_type "<当前智能体名称>"` 走浏览器 OAuth。`auth login` / `auth oidc` 不会读取或消费 XiaoE 凭据。
50
+ 桌面客户端中,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
51
 
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。
52
+ WorkBuddy、Codex 及其他智能体一律使用 `weaver-work-cli auth login --base-url "<用户确认的登录域名>" --agent_type "<当前智能体名称>"` 走浏览器 OAuth。`auth login` / `auth oidc` 不会读取或消费 XiaoE 凭据。
51
53
 
52
54
  ### XiaoE 凭据由 CLI 独占处理(顶层强规则)
53
55
 
@@ -57,29 +59,29 @@ Token、Cookie、ETEAMSID 和业务凭证**只能由 `weaver-work-cli` 内部读
57
59
  - 执行 `weaver-work-cli auth export-weaver-env` 并 `eval` / `Invoke-Expression` 到当前 shell,或把 `WEAVER_*` 值写进命令、日志、报告;
58
60
  - 要求用户粘贴、或在回复中展示、转述任何凭证。
59
61
 
60
- 下述 `auth xiaoe` 流程仅适用于上述已确认的 XiaoE 智能体环境;其他智能体不执行宿主脚本检测,直接进入浏览器 OAuth 流程。
62
+ 下述 `auth xiaoe` 流程仅适用于上述已确认的 XiaoE 智能体环境;其他智能体不执行宿主脚本检测,直接进入浏览器 OAuth 流程。`auth xiaoe` 命令本身就是认证方式的显式选择;`hasXiaoEEnv` 使用桌面的 `--runtime-agent xiaoe` 或任意 `XIAOE_*` 环境变量识别运行环境。
61
63
 
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 或自动引导用户在本地终端重复登录。
64
+ 需要登录态时只运行 `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 返回结构化错误,Agent 不要替它执行脚本、安装 Python 依赖、手工取 Token 或自动引导用户在本地终端重复登录。
63
65
 
64
66
  1. 未登录、登录失效、准备执行业务命令前需要确认 E10 会话,或 `auth status --no-check` 显示未登录时,先运行:
65
67
  ```text
66
68
  weaver-work-cli auth xiaoe
67
69
  ```
68
70
  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)。
71
+ 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 完成。
72
+ 4. `auth xiaoe` 是 XiaoE 认证方式的显式入口:CLI 不再判断当前宿主,只检查并消费可用凭据源。E10 目标地址按「显式 `--base-url` → 专用 `WEAVER_XIAOE_*` E10 配置/映射 → 当前 profile → CLI 内置默认值」解析,绝不能把 `XIAOE_DOMAIN` 当作 E10 地址。Token、Cookie、ETEAMSID 仍属于凭证,禁止在回复中展示。
73
+ 5. XiaoE 统一登录走不通时,无论 macOS、Windows、Linux 或 Web,CLI 都返回 `authentication/xiaoe_credential_unavailable`,绝不自动打开浏览器或降级到 `auth login`。若用户明确需要浏览器 OAuth,Agent 必须另行显式运行 `auth login`。
74
+ 6. `auth status --no-check` 和业务命令都不会主动触发 XiaoE 统一登录。业务命令只读取已有登录态;具体读取 [`e10-auth-and-session.md`](references/e10-auth-and-session.md)。
73
75
 
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 直接换票成功。
76
+ `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 直接换票成功。
75
77
 
76
- `auth login` / `auth oidc` 是严格的浏览器 OAuth 入口,即使同一台机器上存在 XiaoE 凭据或客户端文件,也不得先尝试 XiaoE 统一登录。未显式指定 `--auth` / `--profile` 的业务命令也只能在当前进程身份明确为 XiaoE 时自动尝试统一登录。
78
+ `auth login` / `auth oidc` 是严格的浏览器 OAuth 入口,即使同一台机器上存在 XiaoE 凭据或客户端文件,也不得先尝试 XiaoE 统一登录。
77
79
 
78
80
  ### 浏览器 OAuth 防挂起(顶层强规则)
79
81
 
80
- `auth login`(以及 macOS/Windows 桌面宿主上的 `auth xiaoe` 降级)会在本机 `127.0.0.1:19800` 监听浏览器回调,最长等待 5 分钟。在 Agent 沙箱/托管环境中,外部浏览器无法回调容器内 `127.0.0.1:19800`,因此:
82
+ `auth login` 会在本机 `127.0.0.1:19800` 监听浏览器回调,最长等待 5 分钟。在 Agent 沙箱/托管环境中,外部浏览器无法回调容器内 `127.0.0.1:19800`,因此:
81
83
 
82
- 1. Web/Linux 中运行 `auth xiaoe` 时,收到 `xiaoe_web_credential_unavailable` 即反馈宿主登录态/凭据注入异常,不要自动切换 `auth login`,也不要要求用户去本地终端重复执行命令。
84
+ 1. 任意系统运行 `auth xiaoe` 时,收到 `xiaoe_credential_unavailable` 即反馈宿主登录态/凭据注入异常,不要自动切换 `auth login`,也不要要求用户去本地终端重复执行命令。
83
85
  2. 只有用户明确要求浏览器授权且确认 CLI 与浏览器同机时,才运行 `auth login`;仍须限时等待,超时未完成即终止并反馈。
84
86
  3. 用户无法本地执行浏览器登录时,经用户明确同意后改用保底方式 `weaver-work-cli auth set --eteamsid "<ETEAMSID>" --base-url "<用户确认的登录域名>"`,由用户从已登录浏览器主动提供 ETEAMSID;Agent 不得索取、展示或转述该值。
85
87
  4. 严禁不加限制地前台运行 `auth xiaoe` / `auth login` 并等待 OAuth 回调。
@@ -113,13 +115,13 @@ weaver-work-cli doctor --e10
113
115
 
114
116
  | 命令类别 | 单次超时预算 | 重试策略 |
115
117
  | --- | --- | --- |
116
- | 登录类(`auth xiaoe` / `auth login` / `auth set`) | 300 秒(5 分钟,后台运行 + 限时观察) | **禁止自动重试**;出现降级信号立即终止并移交用户 |
118
+ | 登录类(`auth xiaoe` / `auth login` / `auth set`) | 300 秒(5 分钟,后台运行 + 限时观察) | **禁止自动重试**;出现浏览器 OAuth 等待信号时立即终止并移交用户 |
117
119
  | 只读业务查询(list / get / schema / preview) | 120 秒 | 最多 1 次;仅在网络类错误且未产生副作用时 |
118
120
  | 写入类(prepare / apply / import / update / delete) | 600 秒(10 分钟) | **禁止自动重试**(存在重复入账/重复提交风险);结果不确定时只补一次只读回查 |
119
121
  | 安装与构建(`npm install` / `npm run build` / `npm link`) | 1800 秒(30 分钟) | 禁止自动重试;失败即停止并报告,不加 `sudo` |
120
122
  | 诊断类(`--version` / `doctor` / `auth status --no-check` / `skills list`) | 60 秒 | 最多 1 次 |
121
123
 
122
- 预算是**上限**而不是必须等满:登录类一旦出现降级信号(`Open browser login` / `Waiting for E10 authorization callback` / `Could not open browser automatically`)就立即终止,不必等满 300 秒;写入类一旦拿到确定结果或返回 `partial` / `write_uncertain` 也立即停止。慢环境(容器冷启动、大依赖安装、批量导入)可以撑到上限,快环境不要人为等待。
124
+ 预算是**上限**而不是必须等满:`auth login` 一旦出现浏览器 OAuth 等待信号(`Open browser login` / `Waiting for E10 authorization callback` / `Could not open browser automatically`)就立即终止,不必等满 300 秒;写入类一旦拿到确定结果或返回 `partial` / `write_uncertain` 也立即停止。慢环境(容器冷启动、大依赖安装、批量导入)可以撑到上限,快环境不要人为等待。
123
125
 
124
126
  补充约束:
125
127
 
@@ -156,8 +158,8 @@ User-Agent: AgentType=<agentType>,IsAgent=true
156
158
  | 强触发条件 | Reference |
157
159
  | --- | --- |
158
160
  | 命令不可用、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) |
161
+ | 登录、profile、E10 会话、baseUrl、auth 文件、`WEAVER_*` / `XIAOE_*` 环境变量;**未登录或登录失效(明确为 XiaoE 时先显式执行 `auth xiaoe`,其它场景需要用户提供登录域名)** | [`e10-auth-and-session.md`](references/e10-auth-and-session.md) |
162
+ | 容器/沙箱/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
163
  | 判断 stdout/stderr、JSON envelope、退出码、脚本封装、自动化调用、大结果渲染/分页控量 | [`json-output-contract.md`](references/json-output-contract.md) |
162
164
  | 准备执行写入/删除/导入/更新、遇到 `confirmation.required`、`partial.write_uncertain`、网络中断或回查失败 | [`high-risk-write.md`](references/high-risk-write.md) |
163
165
 
@@ -173,8 +175,8 @@ User-Agent: AgentType=<agentType>,IsAgent=true
173
175
 
174
176
  5. 不能猜测 CLI 未暴露的内部字段、接口路径、ID 解析逻辑或回查语义。
175
177
 
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)。
178
+ 6. 未登录或登录失效(`authentication` / `session_expired` / `auth status` 未登录)时,Agent 若已根据桌面端明确上下文或网页端原有环境变量规则判定为 XiaoE,必须先运行 `weaver-work-cli auth xiaoe` 尝试统一登录;统一登录不可用时必须反馈 CLI 原因。任意系统都不得把 `xiaoe_credential_unavailable` 自动改成浏览器 OAuth 或本地终端操作;只有用户明确要求且 CLI 与浏览器同机时才另行运行 `auth login`。执行浏览器登录时必须传入 `--agent_type "<当前智能体名称>"`,让授权确认页展示发起登录验证的智能体;**禁止**使用示例占位域名登录,也禁止在拿到域名前反复重试业务命令。具体流程读取 [`e10-auth-and-session.md`](references/e10-auth-and-session.md)。
177
179
 
178
180
  7. 附件、图片上传或文件解析属于敏感数据处理。即便 operation 风险等级不是高风险写入,也必须先取得用户对“文件内容可能进入大模型/外部解析服务”的明确确认;不能把用户仅提供文件路径或文件名视为同意解析或上传。
179
181
 
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 自动降级。
182
+ 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 默认值的顺序解析。业务命令不会自动尝试 XiaoE 统一登录;桌面端需要 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
 
@@ -38,12 +38,12 @@ weaver-work-cli auth whoami
38
38
 
39
39
  **正确流程(按序执行,缺一不可):**
40
40
 
41
- 0. **仅 XiaoE 智能体环境优先自动尝试统一登录**:只有宿主/任务上下文明确标识当前智能体为 XiaoE、当前命令进程收到 XiaoE 按次注入的成对平台凭据,或收到桌面 XiaoE 精确注入的运行时路径标记时,才运行:
41
+ 0. **仅 XiaoE 智能体环境由 Agent 主动选择统一登录**:桌面端宿主/任务上下文明确标识为 XiaoE,或网页端命中原有环境变量判断时,才运行:
42
42
  ```text
43
43
  weaver-work-cli auth xiaoe
44
44
  ```
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。
45
+ 本机存在 `xiaoeUserData/tokens.py`、XiaoE 客户端目录、工作目录或历史登录,都不能作为宿主身份依据。桌面客户端可由 `--runtime-agent xiaoe` 标识;命令进程中存在任意 `XIAOE_*` 变量时也直接标识为 XiaoE。未命中这两类判断的 WorkBuddy、Codex 及其他智能体必须跳过此步,进入下方浏览器 OAuth 流程。
46
+ 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_*` 变量时也会自动识别。统一登录失败时返回 `authentication/xiaoe_credential_unavailable` 并停止,任何操作系统都不自动进入浏览器流程。Agent 不得因为本地存在旧 profile 就跳过统一登录,也不得要求用户提供或展示 `XIAOE_*` / ETEAMSID。
47
47
 
48
48
  1. **先调用宿主提供的提问 / 弹框能力询问用户**,让用户二选一:
49
49
  - 输入本次要登录的 E10 登录域名(base URL),形如 `https://<企业域名>`;或
@@ -64,9 +64,9 @@ weaver-work-cli auth whoami
64
64
 
65
65
  ## 浏览器 OAuth 防挂起
66
66
 
67
- `auth login`(以及 macOS/Windows 桌面宿主上的 `auth xiaoe` 降级)会在本机 `127.0.0.1:19800` 监听浏览器回调,最长等待 5 分钟。Agent 沙箱/托管环境中的外部浏览器无法回调容器内地址。执行规则:
67
+ `auth login` 会在本机 `127.0.0.1:19800` 监听浏览器回调,最长等待 5 分钟。Agent 沙箱/托管环境中的外部浏览器无法回调容器内地址。`auth xiaoe` 不会进入这条浏览器流程。执行规则:
68
68
 
69
- 1. Web/Linux 中运行 `auth xiaoe` 时,收到 `xiaoe_web_credential_unavailable` 即反馈并停止;不要自动改跑 `auth login`。
69
+ 1. 任意系统运行 `auth xiaoe` 时,收到 `xiaoe_credential_unavailable` 即反馈并停止;不要自动改跑 `auth login`。
70
70
  2. 只有用户明确要求浏览器授权且确认 CLI 与浏览器同机时,才执行 `auth login`;仍须限时等待,超时未完成即终止并反馈。
71
71
  3. 用户无法本地执行浏览器登录时,经用户明确同意后改用保底方式 `weaver-work-cli auth set --eteamsid "<ETEAMSID>" --base-url "<用户确认的登录域名>"`,由用户从已登录浏览器主动提供 ETEAMSID;Agent 不得索取、展示或转述该值。
72
72
  4. 严禁不加限制地前台运行 `auth xiaoe` / `auth login` 并等待 OAuth 回调。
@@ -81,17 +81,17 @@ weaver-work-cli auth login --base-url "<用户确认的登录域名>" --agent_ty
81
81
 
82
82
  `auth login` / `auth oidc` 是严格的浏览器 OAuth 入口,不会因为本机可发现 XiaoE 凭据、脚本或客户端文件而改走 XiaoE 统一登录。
83
83
 
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 桌面宿主才允许自动降级。
84
+ 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
85
 
86
- 需要显式表达“XiaoE 优先”的场景也可以使用等价入口:
86
+ XiaoE 认证只使用这个显式入口:
87
87
 
88
88
  ```text
89
89
  weaver-work-cli auth xiaoe
90
90
  ```
91
91
 
92
- 该命令先尝试 XiaoE 统一登录;统一登录不可用时先反馈原因。Web/Linux 环境直接结束并返回结构化错误,不自动切换浏览器 OAuth;macOS/Windows 桌面宿主可以继续降级。用户明确切换域名时再追加 `--base-url "<用户确认的登录域名>"`。
92
+ 该命令按凭据可用性尝试 XiaoE 统一登录;统一登录不可用时直接返回结构化错误,不自动切换浏览器 OAuth,也不提供浏览器降级参数。用户明确切换域名时再追加 `--base-url "<用户确认的登录域名>"`。
93
93
 
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 直接换票。
94
+ 命令首先输出不含凭证的 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
95
 
96
96
  如果端口冲突:
97
97
 
@@ -113,8 +113,7 @@ weaver-work-cli auth login --base-url "<用户确认的登录域名>" --agent_ty
113
113
  本地文件 URL。“始终打开”偏好保存在当前本地回调地址的浏览器存储中;未识别到返回协议
114
114
  时,页面只提示用户手动返回智能体或终端。本地 CLI 打开通道默认保留 15 分钟;通道结束
115
115
  后页面会自动退回浏览器自定义协议打开方式,不直接显示网络请求错误。
116
- 智能小 E 统一登录成功时不会经过浏览器;只有统一登录不可用并降级为桌面浏览器 OAuth 时,
117
- 才显示“返回智能小 E”弹层。
116
+ 智能小 E 统一登录不会经过浏览器,也不会显示“返回智能小 E”弹层;该弹层只属于用户另行显式发起的 `auth login` 浏览器 OAuth。
118
117
 
119
118
  保底方式是让用户手动写入浏览器中的 `ETEAMSID`:
120
119
 
@@ -139,14 +138,14 @@ weaver-work-cli --profile PROFILE_NAME auth status --no-check
139
138
 
140
139
  ## XiaoE 凭据由 CLI 独占处理
141
140
 
142
- `auth xiaoe` 或业务命令触发统一登录时,CLI 按以下顺序自行取凭据,Agent **不参与、也不得复现**:
141
+ 运行 `auth xiaoe` 时,CLI 按以下顺序自行取凭据,Agent **不参与、也不得复现**;业务命令不会触发此流程:
143
142
 
144
143
  1. **平台注入凭据**:`XIAOE_USER_TOKEN` + `XIAOE_DOMAIN`(小 e 业务服务地址)。先由 Node 直接换票;失败时 CLI 可调用 npm 包自带的 `scripts/xiaoe_env.py` 兼容换票。脚本不属于 Skill,由 CLI 内部执行、解析并隐藏凭证 stdout。
145
144
  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
145
  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
146
  4. **`WEAVER_XIAOE_*` 环境映射**:当前登录域名到 ETEAMSID 的映射。
148
147
 
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。
148
+ 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
149
 
151
150
  ## 安全边界
152
151
 
@@ -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` 不会自动降级到浏览器。只有用户明确要求并另行执行 `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,7 +44,7 @@ error.stage = xiaoe_unified_login
44
44
  在非交互环境中出现任一信号时的处置顺序:
45
45
 
46
46
  1. **立即终止**该命令,不要等待本地回调。
47
- 2. 向用户反馈统一登录未命中的**实际原因**(凭证未取到 / 域名不在支持范围 / 当前域名与凭证不匹配 / CLI 侧能力缺口)。
47
+ 2. 向用户反馈浏览器 OAuth 在当前环境无法完成本地回调的实际原因。
48
48
  3. 不自动给出“去本地终端执行”的操作;只有用户明确要求改用浏览器授权时,才说明该方式必须在 CLI 与浏览器同机的环境执行。
49
49
  4. 用户明确要求保底方式时,可说明 `auth set`,但 Agent 不得索取、展示、转述或记录 ETEAMSID:
50
50
  ```text
@@ -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
67
  - 这属于宿主登录态、凭据注入或当前 CLI 版本消费凭证的异常;停止并反馈,同时可记录 CLI 版本(`weaver-work-cli --version`)便于定位。
68
- - 不要因为一次降级就断言 CLI 不可用;只读诊断命令(`auth status --no-check`、`doctor --e10`)仍可作为环境检查手段。
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
@@ -888,13 +888,8 @@
888
888
  }
889
889
  },
890
890
  "artifactBaseline": {
891
- "aggregateSha256": "bc74f476cd80c289881f195cb60385ba749698274bcd94cf286b76cf5523a947",
891
+ "aggregateSha256": "89ee9f67e64f8c6e7c94ddbacc98d4adf9accd37bc3c8fb871fe7734161d86df",
892
892
  "files": [
893
- {
894
- "path": "skills/weaver-e10-workflow/SKILL.md",
895
- "size": 41574,
896
- "sha256": "fe8860d92a5bf2f96f3a71e203bbd5993a82acb826a774cd98f371e8b80a2a1d"
897
- },
898
893
  {
899
894
  "path": "skills/weaver-e10-workflow/references/workflow-agent-entry.md",
900
895
  "size": 6090,
@@ -907,8 +902,8 @@
907
902
  },
908
903
  {
909
904
  "path": "skills/weaver-e10-workflow/references/workflow-create.md",
910
- "size": 62233,
911
- "sha256": "64abab1a077b27607a34d3c1d8774e8b375ff7bb6729818e1d821b5b8ad3e76b"
905
+ "size": 65844,
906
+ "sha256": "136ed885b0abb9908150e3d47e763ef5f1ed406d293702c656b6e3c6344bbd32"
912
907
  },
913
908
  {
914
909
  "path": "skills/weaver-e10-workflow/references/workflow-edit.md",
@@ -940,6 +935,11 @@
940
935
  "size": 10803,
941
936
  "sha256": "54e7ae5267f3b4b6ade3bd0458a51704f3804140b60c5dcc910eab31d1bd1368"
942
937
  },
938
+ {
939
+ "path": "skills/weaver-e10-workflow/SKILL.md",
940
+ "size": 41574,
941
+ "sha256": "fe8860d92a5bf2f96f3a71e203bbd5993a82acb826a774cd98f371e8b80a2a1d"
942
+ },
943
943
  {
944
944
  "path": "src/shortcuts/workflow/continuation.ts",
945
945
  "size": 30700,
@@ -947,8 +947,8 @@
947
947
  },
948
948
  {
949
949
  "path": "src/shortcuts/workflow/endpoints.ts",
950
- "size": 9589,
951
- "sha256": "2ef1ea72023bb4b7941aaa258159151999983ebac3c91c1034e5ca40e1c18e89"
950
+ "size": 10182,
951
+ "sha256": "42363eb685546d065a23363f96ef0e8fbd9d9eece1733a6401cd70596900c614"
952
952
  },
953
953
  {
954
954
  "path": "src/shortcuts/workflow/errors.ts",
@@ -957,13 +957,13 @@
957
957
  },
958
958
  {
959
959
  "path": "src/shortcuts/workflow/host.ts",
960
- "size": 11980,
961
- "sha256": "c1f0ae44fb2267be1888b80faa35fb0ce9ab596b9aa7ca6e0e5429933745b920"
960
+ "size": 12448,
961
+ "sha256": "ae66c65b2c99a300a88ff5ff11fd3c1cd6b594138d2d7779f1939c71e648f0fc"
962
962
  },
963
963
  {
964
964
  "path": "src/shortcuts/workflow/index.ts",
965
- "size": 7835,
966
- "sha256": "5e966b8214f42dc2cd6add7f9f9cb7f0ed0def962aeac1a6ac552af0218a4a18"
965
+ "size": 6275,
966
+ "sha256": "a626636dba15624b7216aead4d5e016ceffa975eae3b999ec9a7091409bed579"
967
967
  },
968
968
  {
969
969
  "path": "src/shortcuts/workflow/manifest.ts",
@@ -975,6 +975,11 @@
975
975
  "size": 9461,
976
976
  "sha256": "50f028b494fc572637c90afeade84c0f0cc36de92a5fa355b4813125a3c6eff0"
977
977
  },
978
+ {
979
+ "path": "src/shortcuts/workflow/operations/chatscene.ts",
980
+ "size": 13774,
981
+ "sha256": "64abb0654df387c33b8a380e051a0084d9f8efa40652b6d2516cb394912dba7e"
982
+ },
978
983
  {
979
984
  "path": "src/shortcuts/workflow/operations/flow-status.ts",
980
985
  "size": 3774,
@@ -982,13 +987,13 @@
982
987
  },
983
988
  {
984
989
  "path": "src/shortcuts/workflow/operations/form.ts",
985
- "size": 305481,
986
- "sha256": "e7503bdb9d55c66c6b7ae1ea37f9396c2767ce0d9ed67b6a71c2caff7a1dcd86"
990
+ "size": 351032,
991
+ "sha256": "3b2036ab629078ac50e0ff37de27d3e42de95e9e9e2cb80f32a31783fbe00cfa"
987
992
  },
988
993
  {
989
994
  "path": "src/shortcuts/workflow/operations/read.ts",
990
- "size": 276277,
991
- "sha256": "2b51b9ae56942d34ba3098581c3d0b33ed3199464dae36d8045dabe9a09a520c"
995
+ "size": 282043,
996
+ "sha256": "8606f1c0cd165c3ffafbba8d1fecc4c4d22d155de44f194bacd34fa88fa8c2ee"
992
997
  },
993
998
  {
994
999
  "path": "src/shortcuts/workflow/operations/registry.ts",
@@ -1000,6 +1005,11 @@
1000
1005
  "size": 10848,
1001
1006
  "sha256": "54a9b2626514461cb9c48a1ffd464cd50cb3c85bfe681ce464cebdc93702ef0f"
1002
1007
  },
1008
+ {
1009
+ "path": "src/shortcuts/workflow/operations/sign-input.ts",
1010
+ "size": 5577,
1011
+ "sha256": "ecee488053fcf280679b977d4d10c758d74e2539bd5be77f3b02c7f3c9249f5e"
1012
+ },
1003
1013
  {
1004
1014
  "path": "src/shortcuts/workflow/operations/types.ts",
1005
1015
  "size": 4238,
@@ -1007,8 +1017,8 @@
1007
1017
  },
1008
1018
  {
1009
1019
  "path": "src/shortcuts/workflow/operations/write.ts",
1010
- "size": 141978,
1011
- "sha256": "f8ca00a7096aef887bd4ed84391988589b128b8cdde2cbb043d78f0460342414"
1020
+ "size": 142628,
1021
+ "sha256": "5de4cbc724a4882aabc0d2ee796e2d72141c2c48e622a3499a89a5fc2b0de114"
1012
1022
  },
1013
1023
  {
1014
1024
  "path": "src/shortcuts/workflow/state.ts",
@@ -1017,8 +1027,8 @@
1017
1027
  },
1018
1028
  {
1019
1029
  "path": "src/shortcuts/workflow/stdout-compact.ts",
1020
- "size": 2629,
1021
- "sha256": "328a1e284cad24612541d7458aad968cd4133dca9071fe18410be0457a58632c"
1030
+ "size": 2958,
1031
+ "sha256": "1d72ac72a69c63655530f0c458f34733ebeb5645a9f1937f3ecdc07815adb40e"
1022
1032
  }
1023
1033
  ]
1024
1034
  },