weaver-work-cli 0.1.26 → 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 (137) hide show
  1. package/README.md +7 -2
  2. package/dist/cmd/setup/index.js +1 -1
  3. package/dist/internal/e10/auth/commands.js +1 -6
  4. package/dist/internal/e10/auth/messages.js +3 -0
  5. package/dist/internal/e10/auth/session.js +8 -0
  6. package/dist/internal/e10/auth-recovery.js +148 -0
  7. package/dist/internal/e10/client.js +47 -15
  8. package/dist/internal/e10/context.js +8 -8
  9. package/dist/internal/e10/index.js +1 -0
  10. package/dist/internal/e10/request-runtime.js +51 -9
  11. package/dist/shortcuts/archive/host.js +3 -2
  12. package/dist/shortcuts/archive/manifest.js +1 -1
  13. package/dist/shortcuts/archive-oa/host.js +2 -1
  14. package/dist/shortcuts/archive-oa/manifest.js +1 -1
  15. package/dist/shortcuts/asset/host.js +7 -6
  16. package/dist/shortcuts/blog/host.js +4 -3
  17. package/dist/shortcuts/caizhilian/host.js +3 -2
  18. package/dist/shortcuts/caizhilian/manifest.js +1 -1
  19. package/dist/shortcuts/calendar/host.js +2 -1
  20. package/dist/shortcuts/contract/host.js +34 -59
  21. package/dist/shortcuts/ehr/host.js +2 -1
  22. package/dist/shortcuts/esb/host.js +2 -1
  23. package/dist/shortcuts/fna/host.js +6 -3
  24. package/dist/shortcuts/fna/manifest.js +10 -5
  25. package/dist/shortcuts/fna/operations/expense-chart.js +162 -0
  26. package/dist/shortcuts/fna/operations/registry.js +2 -0
  27. package/dist/shortcuts/hrm/host.js +2 -1
  28. package/dist/shortcuts/im/host.js +3 -2
  29. package/dist/shortcuts/invoice/host.js +7 -6
  30. package/dist/shortcuts/invoice/manifest.js +21 -141
  31. package/dist/shortcuts/invoice/operations/issuing-qys.js +134 -167
  32. package/dist/shortcuts/invoice/operations/registry.js +1 -6
  33. package/dist/shortcuts/jiuchuanhui/host.js +2 -1
  34. package/dist/shortcuts/mail/host.js +2 -1
  35. package/dist/shortcuts/meeting/host.js +2 -1
  36. package/dist/shortcuts/meeting/operations/eb/conflict.js +78 -12
  37. package/dist/shortcuts/okr/host.js +2 -1
  38. package/dist/shortcuts/plan/host.js +2 -1
  39. package/dist/shortcuts/project/host.js +2 -1
  40. package/dist/shortcuts/workflow/host.js +3 -5
  41. package/dist/shortcuts/workflow/index.js +1 -1
  42. package/dist/shortcuts/workflow/operations/chatscene.js +4 -22
  43. package/dist/shortcuts/workflow/operations/form.js +281 -166
  44. package/dist/shortcuts/workflow/operations/read.js +26 -2
  45. package/dist/shortcuts/workflow/stdout-compact.js +7 -0
  46. package/docs/SKILL.md +1 -1
  47. package/docs/_catalog.md +1 -1
  48. package/docs/agent-invoice.md +1 -1
  49. package/docs/caizhilian.md +1 -1
  50. package/docs/e10-auth.md +1 -1
  51. package/docs/fna.md +7 -3
  52. package/docs/invoice.md +4 -6
  53. package/package.json +1 -1
  54. package/skill-template/business-info.json +4 -1
  55. package/skill-template/domains/caizhilian.md +2 -1
  56. package/skill-template/domains/qiyecheng.md +1 -0
  57. package/skill-template/domains/yepiaotong.md +6 -2
  58. package/skill-template/skill-template.md +1 -0
  59. package/skills/weaver-e10-blog/SKILL.md +6 -1
  60. package/skills/weaver-e10-blog/references/blog-query.md +3 -1
  61. package/skills/weaver-e10-caizhilian/SKILL.md +18 -9
  62. package/skills/weaver-e10-caizhilian/references/action-flow.md +70 -0
  63. package/skills/weaver-e10-caizhilian/references/agent-entry.md +6 -2
  64. package/skills/weaver-e10-caizhilian/references/auth-and-install.md +207 -0
  65. package/skills/weaver-e10-caizhilian/references/file-collection.md +56 -54
  66. package/skills/weaver-e10-caizhilian/references/file-upload.md +4 -4
  67. package/skills/weaver-e10-caizhilian/references/host-executor-prompt.md +32 -0
  68. package/skills/weaver-e10-caizhilian/references/host-platform-integration.md +46 -0
  69. package/skills/weaver-e10-caizhilian/references/rule-index.md +56 -0
  70. package/skills/weaver-e10-caizhilian/references/setting-attach.md +5 -16
  71. package/skills/weaver-e10-caizhilian/references/setting-backup.md +4 -13
  72. package/skills/weaver-e10-caizhilian/references/setting-encrypt.md +6 -15
  73. package/skills/weaver-e10-caizhilian/references/setting-storage-docs-summary.md +126 -0
  74. package/skills/weaver-e10-caizhilian/references/setting-storage-field-map.md +57 -0
  75. package/skills/weaver-e10-caizhilian/references/setting-storage.md +142 -482
  76. package/skills/weaver-e10-caizhilian/references/source-manifest.json +7 -7
  77. package/skills/weaver-e10-caizhilian/references/task-workflow.md +87 -0
  78. package/skills/weaver-e10-caizhilian/references/withheld.md +2 -2
  79. package/skills/weaver-e10-caizhilian/references/write-protocol.md +7 -0
  80. package/skills/weaver-e10-calendar/SKILL.md +6 -1
  81. package/skills/weaver-e10-esb/SKILL.md +8 -0
  82. package/skills/weaver-e10-esb/references/input-format.md +3 -1
  83. package/skills/weaver-e10-esb/references/source-manifest.json +5 -5
  84. package/skills/weaver-e10-hrm/SKILL.md +6 -1
  85. package/skills/weaver-e10-hrm/references/employee.md +1 -1
  86. package/skills/weaver-e10-hrm/references/org.md +1 -1
  87. package/skills/weaver-e10-hrm/references/position.md +1 -1
  88. package/skills/weaver-e10-jinchengda/SKILL.md +2 -1
  89. package/skills/weaver-e10-jinchengda/references/contract-agent-entry.md +1 -1
  90. package/skills/weaver-e10-jiuchuanhui/SKILL.md +6 -1
  91. package/skills/weaver-e10-jucailin/SKILL.md +6 -1
  92. package/skills/weaver-e10-jucailin/references/hr-contact.md +1 -1
  93. package/skills/weaver-e10-jucailin/references/salary.md +1 -1
  94. package/skills/weaver-e10-mail/SKILL.md +6 -1
  95. package/skills/weaver-e10-meeting/SKILL.md +11 -6
  96. package/skills/weaver-e10-meeting/references/meeting-eb.md +7 -3
  97. package/skills/weaver-e10-meeting/references/meeting-queries.md +3 -1
  98. package/skills/weaver-e10-meeting/references/meeting-verification.md +4 -2
  99. package/skills/weaver-e10-okr/SKILL.md +6 -1
  100. package/skills/weaver-e10-okr/references/source-manifest.json +5 -5
  101. package/skills/weaver-e10-plan/SKILL.md +6 -1
  102. package/skills/weaver-e10-plan/references/plan-overview-and-routing.md +3 -1
  103. package/skills/weaver-e10-plan/references/plan-report-query.md +3 -1
  104. package/skills/weaver-e10-plan/references/source-manifest.json +7 -7
  105. package/skills/weaver-e10-qiyecheng/SKILL.md +16 -6
  106. package/skills/weaver-e10-qiyecheng/references/catalog.md +6 -3
  107. package/skills/weaver-e10-qiyecheng/references/expense-center.md +2 -0
  108. package/skills/weaver-e10-qiyecheng/references/expense-chart.md +78 -0
  109. package/skills/weaver-e10-qiyecheng/references/source-manifest.json +87 -33
  110. package/skills/weaver-e10-shared/SKILL.md +37 -14
  111. package/skills/weaver-e10-shared/references/e10-auth-and-session.md +11 -8
  112. package/skills/weaver-e10-shared/references/non-interactive-environment.md +4 -4
  113. package/skills/weaver-e10-shared/references/weaver-e10-installation.md +3 -1
  114. package/skills/weaver-e10-wenshuding/SKILL.md +6 -1
  115. package/skills/weaver-e10-wenshuding/references/source-manifest.json +3 -3
  116. package/skills/weaver-e10-workflow/references/source-manifest.json +1 -2
  117. package/skills/weaver-e10-workflow/references/workflow-create.md +30 -55
  118. package/skills/weaver-e10-yepiaotong/SKILL.md +19 -17
  119. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-examples.md +72 -78
  120. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-form-fill-rules.md +152 -0
  121. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-workflow.md +210 -0
  122. package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +7 -7
  123. package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +11 -5
  124. package/skills/weaver-e10-yepiaotong/references/reim-examples.md +55 -33
  125. package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +102 -23
  126. package/skills/weaver-e10-yepiaotong/references/reim-phone-subsidy-rules.md +1 -1
  127. package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +53 -42
  128. package/skills/weaver-e10-yepiaotong/references/source-manifest.json +93 -213
  129. package/skills/weaver-e10-yimiaoban/SKILL.md +9 -2
  130. package/skills/weaver-e10-yimiaoban/references/file-user-i18n.md +1 -1
  131. package/skills/weaver-e10-yimiaoban/references/msg-read.md +1 -1
  132. package/skills/weaver-e10-yimiaoban/references/source-manifest.json +9 -9
  133. package/skills/weaver-e10-ziguanjia/SKILL.md +6 -1
  134. package/dist/shortcuts/invoice/operations/issuing.js +0 -198
  135. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-field-rules.md +0 -161
  136. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-qys-ledger.md +0 -66
  137. package/skills/weaver-e10-yepiaotong/references/invoice-issuing.md +0 -107
@@ -0,0 +1,207 @@
1
+ # 接入、安装与登录
2
+
3
+ ## 何时使用
4
+
5
+ - 本轮第一次调用采知连能力,需要确认 `weaver-work-cli` 是否可用。
6
+ - 命令报 `command not found` 或退出码 127,需要区分「未安装」与「已安装但不在 PATH」。
7
+ - 需要判断登录态、完成 E10 登录、切换已有环境,或业务命令返回认证错误。
8
+ - 登录命令长时间无返回、出现等待浏览器回调的提示,需要判断当前环境能否完成浏览器登录。
9
+ - 需要确认超时与重试预算,避免无界等待或重复提交。
10
+
11
+ 本 Skill 不自行发起 HTTP 请求、不搭建登录流程。安装检查、登录、Cookie 拼接、请求头注入全部由 `weaver-work-cli` 托管,Agent 只负责调用 CLI 并把结果转述给用户。
12
+
13
+ ## 安装与可用性检查
14
+
15
+ ```text
16
+ weaver-work-cli --version
17
+ weaver-work-cli doctor --e10
18
+ ```
19
+
20
+ `weaver-work-cli skills list` 只证明随包文档可读,不证明业务接口可用;接口连通性用 `weaver-work-cli --json caizhilian health` 判断。
21
+
22
+ ### 命令找不到(退出码 127):先区分「未安装」与「已安装但不在 PATH」
23
+
24
+ 报 `command not found` 或退出码 127 时**不要直接判定为未安装并重装**。CLI 可能已安装在非默认 npm 前缀下,只是当前 shell 的 PATH 未包含全局 bin 目录。按顺序处理:
25
+
26
+ 1. 定位全局 bin 目录。
27
+
28
+ Windows PowerShell:
29
+
30
+ ```powershell
31
+ npm prefix -g
32
+ Get-ChildItem "$(npm prefix -g)" -Filter "weaver-work-cli*" -Recurse -Depth 1 -ErrorAction SilentlyContinue | Select-Object -ExpandProperty FullName
33
+ ```
34
+
35
+ macOS/Linux(bash/zsh):
36
+
37
+ ```bash
38
+ npm prefix -g
39
+ npm bin -g 2>/dev/null || echo "$(npm prefix -g)/bin"
40
+ ls "$(npm prefix -g)/bin" | grep -i weaver
41
+ ```
42
+
43
+ 2. 能在全局 bin 目录里找到 `weaver-work-cli` 时,先把该目录前置到 PATH 再验证,**不要重装**。
44
+
45
+ Windows PowerShell:
46
+
47
+ ```powershell
48
+ $env:Path = "$(npm prefix -g);$env:Path"
49
+ weaver-work-cli --version
50
+ ```
51
+
52
+ macOS/Linux(bash/zsh):
53
+
54
+ ```bash
55
+ export PATH="$(npm prefix -g)/bin:$PATH"
56
+ weaver-work-cli --version
57
+ ```
58
+
59
+ 3. PATH 前置后仍不可用,或全局 bin 目录里根本没有 `weaver-work-cli`,才判定为未安装,进入下一节。
60
+
61
+ ### 安装运行时:先征得用户同意
62
+
63
+ 判定为未安装、或用户要求代装时,**先让用户选择安装来源并明确确认**,未确认前不改动全局 npm 环境,也不把安装命令交给用户手动执行。
64
+
65
+ 确认信息里需要原样展示待执行命令:
66
+
67
+ ```text
68
+ npm install -g weaver-work-cli
69
+ weaver-work-cli --version
70
+ ```
71
+
72
+ - 用户提供 registry 时,改用 `npm install -g weaver-work-cli --registry "<用户提供的 registry 地址>"`。
73
+ - 用户选择本地代码安装时,必须先取得仓库绝对路径并确认其下存在 `package.json`;路径缺失或错误时先追问,不要凭猜测拼路径。
74
+ - 权限错误时停止并如实报告,不自动加 `sudo`。
75
+ - 每条命令只执行一次;成功后用 `weaver-work-cli --version` 确认版本,再继续原业务操作。
76
+
77
+ ## 登录态判断
78
+
79
+ 只允许通过 CLI 命令判断登录态:
80
+
81
+ ```text
82
+ weaver-work-cli auth status --no-check
83
+ weaver-work-cli auth whoami
84
+ weaver-work-cli doctor --e10
85
+ ```
86
+
87
+ `--no-check` 只读本地登录态,不访问服务端;需要实际验证连通性时用 `caizhilian health` 或对应业务命令。
88
+
89
+ 出现以下任一情况即判定为未登录或登录失效:
90
+
91
+ - `auth status` 输出 `loggedIn: false`,或本地不存在登录信息;
92
+ - `doctor --e10` 的 `e10AuthFile` 检查为 `ok: false`;
93
+ - 业务命令返回 `error.type === "authentication"`(如 `authentication/session_unavailable`);
94
+ - 业务命令返回 `error.subtype === "session_expired"`。
95
+
96
+ 此时**禁止**:使用示例占位域名或自行猜域名登录;未向用户确认登录域名前反复重试业务命令;要求用户提供 Cookie、ETEAMSID 或业务 Token。
97
+
98
+ ## 登录流程
99
+
100
+ 按顺序执行,缺一不可。
101
+
102
+ 0. **仅当前智能体明确是 XiaoE 时**,执行统一登录:
103
+
104
+ ```text
105
+ weaver-work-cli auth xiaoe
106
+ ```
107
+
108
+ 判定依据复用任务开始时的宿主判定:宿主/任务上下文明确标识当前智能体为 XiaoE,桌面端显式传入 `--runtime-agent xiaoe`,或当前命令进程存在任意 `XIAOE_*` 环境变量。仅有 `WEAVER_XIAOE_*` 配置、本机 XiaoE 客户端目录、宿主脚本、历史 profile 或登录记录,只表示「凭据可能可用」,**不表示当前智能体是 XiaoE**。其他智能体跳过本步。
109
+
110
+ 统一登录失败时,把 CLI 返回的原因转述给用户后停止,不自动改写为浏览器登录,也不调用任何其他登录 Skill,不要求用户去本地终端重复执行。
111
+
112
+ 1. **仅非 XiaoE 环境进入本步**。禁止先执行 `auth xiaoe` 或调用其他登录 Skill。先询问用户,让用户二选一:
113
+ - 输入本次要登录的 E10 登录域名,形如 `https://<企业域名>`;
114
+ - 从已有环境中选择一个:先执行 `weaver-work-cli auth profile list` 列出候选,让用户自己选。
115
+
116
+ 2. 用户给出**新域名**时,用该域名执行浏览器 OAuth 登录:
117
+
118
+ ```text
119
+ weaver-work-cli auth login --base-url "<用户输入的域名>" --agent_type "<当前智能体名称>"
120
+ ```
121
+
122
+ 3. 用户明确要求切换到**已有且仍有效的环境**时,切换后验证登录态;这不是失效会话的替代登录方式:
123
+
124
+ ```text
125
+ weaver-work-cli auth profile use PROFILE_NAME
126
+ weaver-work-cli auth status
127
+ ```
128
+
129
+ 4. 登录成功后再继续原业务操作;写操作从 `prepare` 重新开始。仍失败时把 `error.type` / `error.subtype` / `error.message` 转述给用户并停止,不要自动重试。
130
+
131
+ 登录域名一律以用户实际提供为准。拿不到域名前,不要执行任何依赖登录态的写操作。
132
+
133
+ ### 非 XiaoE 浏览器登录防挂起
134
+
135
+ `auth login` 会在本机监听浏览器回调,最长等待 5 分钟。在 Agent 沙箱、容器或托管环境中,外部浏览器可能无法回调到该监听地址。
136
+
137
+ 1. 用户确认真实 E10 登录域名、且确认 CLI 与浏览器在同一台机器后,才执行 `auth login`。
138
+ 2. 执行时必须限时等待,超时未完成即终止并反馈,不要无界挂起。
139
+ 3. 出现 `Open browser login` / `Waiting for E10 authorization callback` / `Could not open browser automatically` 等提示且长时间无进展时,判定当前环境无法完成浏览器登录,停止并说明原因。
140
+ 4. 端口冲突时加 `--port 19801`。
141
+
142
+ ### 人工保底方式
143
+
144
+ 仅在非 XiaoE 环境中,用户无法在当前环境完成浏览器登录时,**经用户明确要求并同意后**才可改用人工录入方式;它不是业务模块认证错误的默认恢复路径:
145
+
146
+ ```text
147
+ weaver-work-cli auth set --eteamsid "<ETEAMSID>" --base-url "<用户确认的登录域名>"
148
+ ```
149
+
150
+ 由用户从已登录的浏览器中主动提供该值。Agent 不得索取、展示、转述或记录该值。
151
+
152
+ ### 已有环境(profile)
153
+
154
+ ```text
155
+ weaver-work-cli auth profile list
156
+ weaver-work-cli auth profile current
157
+ weaver-work-cli auth profile use PROFILE_NAME
158
+ weaver-work-cli --profile PROFILE_NAME auth status --no-check
159
+ ```
160
+
161
+ 用户已有多个环境时,由用户指定本次使用哪一个;**不得自行切换登录身份**,也不得改用其他账号规避权限不足。
162
+
163
+ ### `--is-connector` 判据
164
+
165
+ 同一条命令的认证来源由 `--is-connector true` 区分,只判断一次,本任务内所有命令沿用同一写法:
166
+
167
+ | 本次任务的情形 | 是否传 `--is-connector true` |
168
+ | --- | --- |
169
+ | 用户明确使用连接器,或上下文要求使用连接器完成任务 | **传** |
170
+ | 本次任务或上下文直接选择单独技能 | **不传** |
171
+ | 用户没有明确说明 | 按**正在运行的这份 Skill 是哪一级**定:用户级 → **不传**;连接器级 → **传** |
172
+
173
+ 传 `true` 时不要再写 `--profile` / `--base-url`,认证与登录域名由连接器托管。漏传不会报错,但会退回本机当前环境,可能操作到与预期不同的租户。
174
+
175
+ ## 安全边界
176
+
177
+ - 登录态、Cookie、ETEAMSID 与业务 Token 只能由 `weaver-work-cli` 内部读取和消费。
178
+ - 禁止要求用户粘贴、或在回复中展示、转述任何凭证;禁止把凭证写入命令、日志或报告。
179
+ - 禁止读取、列出、打印或解析用户主目录下的旧 `.e10-cli`、`e10-login` / `e10-cli` 的历史 auth、config 或 Keychain 数据;`weaver-work-cli auth root` 是唯一用于确认本 CLI 认证根目录的命令。
180
+ - 禁止自行执行宿主取 Token 脚本、禁止把 CLI 导出的认证环境变量 `eval` / `Invoke-Expression` 到当前 shell。
181
+ - 业务入参中不要携带 Cookie、ETEAMSID、Token 等认证字段,CLI 会拒绝或剥离。
182
+
183
+ ### 请求头契约
184
+
185
+ CLI 发往 E10 的每个请求都由 CLI 统一携带以下三项,缺一不可,业务入参里不要传这些字段,也不要手工拼装请求头:
186
+
187
+ ```text
188
+ Cookie: <CLI 托管登录态的完整原始 Cookie 串,原样透传,禁止裁剪/去重/改写>
189
+ eteamsid: <CLI 托管登录态的 ETEAMSID>
190
+ User-Agent: AgentType=<agentType>,IsAgent=true
191
+ ```
192
+
193
+ ## 超时与重试预算
194
+
195
+ 命令执行必须有界。默认按上表约束;超时即终止并反馈,不允许无界等待或无界重试。
196
+
197
+ | 命令类别 | 单次超时预算 | 重试策略 |
198
+ | --- | --- | --- |
199
+ | 登录类(`auth xiaoe` / `auth login` / `auth set`) | 300 秒(5 分钟,限时观察) | **禁止自动重试**;出现挂起信号立即终止并移交用户 |
200
+ | 只读查询(`schema` / `operations` / 检索 / 详情 / 健康检查) | 120 秒 | 最多 1 次;仅在网络类错误且未产生副作用时 |
201
+ | 写入类(`prepare` / `apply` / 上传 / 删除) | 600 秒(10 分钟) | **禁止自动重试**(存在重复入库风险);结果不确定时只补一次只读回查 |
202
+ | 安装与构建(`npm install` / `npm link`) | 1800 秒(30 分钟) | 禁止自动重试;失败即停止并报告,不加 `sudo` |
203
+ | 诊断类(`--version` / `doctor` / `auth status --no-check`) | 60 秒 | 最多 1 次 |
204
+
205
+ 预算是**上限**而不是必须等满:登录类一旦出现挂起信号立即终止,不必等满 300 秒;写入类一旦拿到确定结果或返回 `partial` / `write_uncertain` 也立即停止。慢环境(容器冷启动、大依赖安装、批量导入)可以撑到上限,快环境不要人为等待。
206
+
207
+ 任何命令被外部超时掐断(退出码 124)都视为超时失败,按上表处理,不得静默重跑。
@@ -2,7 +2,7 @@
2
2
  name: weaver-file-collection
3
3
  description: "泛微E10采知连文件服务 FTP/SFTP 文件采集技能。用于选择仅采集文件或采集到档案、按需选择全宗、查询或创建 FTP/SFTP 资源、检索并校验已有动作流、动态新建动作流、创建或维护采集任务,以及校验、扫描、运行和查看文件级结果。"
4
4
  license: Proprietary
5
- compatibility: 泛微E10采知连配套使用,内部可自由使用与修改,禁止对外分发
5
+ compatibility: 泛微E10采知连配套使用,随 weaver-e10-caizhilian 技能分发
6
6
  metadata:
7
7
  maintainer: unknown
8
8
  type: capability
@@ -19,73 +19,57 @@ metadata:
19
19
 
20
20
  ### 认证前置(必须)
21
21
 
22
- 本模块通过 CLI 托管的认证获取凭证(base_url + Cookie + eteamsid + User-Agent),凭证契约见同级 `weaver-e10-shared` 技能的共享规则,不依赖手动配置文件,Agent 不得自己读取或输出凭证。
22
+ 本模块通过 CLI 托管的认证获取凭证(base_url + Cookie + eteamsid + User-Agent),凭证契约见 `auth-and-install.md`,不依赖手动配置文件,Agent 不得自己读取或输出凭证。
23
23
 
24
24
  **使用前必须确保**:
25
25
  1. CLI 已安装:`weaver-work-cli --version` 能正常输出版本号
26
26
  2. 已完成登录:`weaver-work-cli auth status` 显示已登录
27
27
 
28
- **首次登录**:
29
- ```text
30
- # OAuth2.0 浏览器授权(推荐)
31
- weaver-work-cli auth login
32
-
33
- # 或手动写入 ETEAMSID(从浏览器 DevTools 复制)
34
- weaver-work-cli auth set --eteamsid "PCACCOUNT_xxx"
35
- ```
36
-
37
- **凭证过期处理**:操作返回认证错误时,提示用户通过 `weaver-work-cli auth login` 或 `weaver-work-cli auth set` 重新登录。
28
+ **登录与登录失效处理**:读取 `auth-and-install.md`,由 Agent 复用任务开始时的宿主判定,禁止调用任何其他登录 Skill。明确为 XiaoE 时只执行 `weaver-work-cli auth xiaoe`,失败即停止且不得改走浏览器;非 XiaoE 时先取得用户确认的真实 E10 域名,再执行 `weaver-work-cli auth login --base-url "<用户确认的 E10 登录域名>" --agent_type "<当前智能体名称>"`。
38
29
 
39
30
  ## First Move
40
31
 
41
32
  1. 读取 `rule-index.md`。
42
- 2. 确认 CLI 已完成登录(`weaver-work-cli auth status` 显示已登录)。
43
- 3. 任务分支和阶段门禁读取 `task-workflow.md`。
44
- 4. 动作流检索、检测与动态创建读取 `action-flow.md`。
45
- 5. 只有用户选择采集到档案时,才读取 `fonds-selection.md`。
46
- 6. 宿主执行还必须读取 `host-executor-prompt.md` 和 `host-platform-integration.md`。
33
+ 2. 确认 CLI 已安装并已完成登录(`weaver-work-cli --version`、`weaver-work-cli auth status` 显示已登录)。
34
+ 3. 任务分支、执行与结果判读读取 `task-workflow.md`。
35
+ 4. 动作流检测、兼容校验与动态创建读取 `action-flow.md`。
36
+ 5. 只有用户选择采集到档案时,才按 `task-workflow.md`「采集目标」的全宗确认流程执行。
37
+ 6. 由宿主/Agent 代为执行时,另读 `host-executor-prompt.md` 和 `host-platform-integration.md`。
47
38
 
48
39
  ## Hard Rules
49
40
 
50
41
  - 认证凭证统一由 CLI 托管(`weaver-work-cli auth ...`);不得写死域名或输出 Cookie。
51
- - `init-session` 后先执行 `choose-file-only` 或 `choose-archive`。仅归档分支查询和确认全宗;仅文件分支不得要求或写入 `fondsId`。
52
- - 新建任务前选择已有或新建 FTP/SFTP 资源,再选择已有或新建动作流。
53
- - 新建任务时先确定是否维持原目录结构;该值必须原样传给动作流 inspect/create 和 `save-task`。维持模式使用动态 `folderId` 动作流,非维持模式使用固定目录动作流,二者不得混用。
54
- - `search-action-flows` 的候选仅用于展示。用户确认 ID 后必须执行 `inspect-action-flow`,回读应用、活动版本和设计并通过兼容性检测,才能生成关联凭据。
55
- - `create-action-flow` 使用 `file_collection_action_flow_design.v1` 动态创建;禁止上传、迁入或依赖固定动作流包。
56
- - 标准 `create-action-flow` 由 CLI 生成仅文件/归档两种完整草稿;普通执行不得让 Agent 手写触发字段或设计文件,`--design-file` 仅用于明确的高级定制。
57
- - 标准 `create-ftp-resource` 在未传 `systemPk` 时自动生成连接器元数据并创建 FTP 连接器;不得通过失败重试发现确定性参数。
58
- - 初始化后的命令携带同一 `chatId`;阶段会原子保存,重复初始化恢复进度,只有显式 `--restart` 才重新开始。
59
- - `save-task` 和 `update-task-workflow` 只接受 `inspect-action-flow` 或 `create-action-flow` 生成的 `file_collection_workflow_selection.v1` 文件。归档凭据还必须绑定归档兼容检测,并携带已确认全宗。
42
+ - 仅采集文件的分支不询问、不写入全宗;仅采集到档案的分支必须先取得用户确认的全宗,再用 `task.update-fonds` 绑定。
43
+ - 新建任务前先确定 FTP/SFTP 资源(已有或新建),再确定动作流(已有或新建)。
44
+ - 新建任务时先确定是否维持原目录结构(`retain_dir_struct`);该值必须与动作流检测/创建、保存任务保持一致。维持模式使用带动态目录输入的动作流,非维持模式使用固定目录动作流,二者不得混用。
45
+ - `workflow.search` 的候选仅供展示。用户确认 ID 后必须执行 `workflow.inspect` 通过兼容检测,才能把该动作流用于保存任务。
46
+ - 新建动作流使用 `workflow.create` 动态创建标准链路(自定义触发 → 文档保存 → 输出);禁止上传、迁入或导入固定动作流包,不手写触发字段或设计文件。
47
+ - 新建 FTP/SFTP 资源在未指定已有连接器(`system_pk`)时由 CLI 自动创建 FTP 连接器并返回资源 ID;不得通过失败重试摸参数。
48
+ - 所有写操作走 prepare → 用户确认 → apply(见 `write-protocol.md`);apply 入参与 prepare 完全一致。
60
49
  - 默认任务名按 UTC+8 生成 `文件采集(yyyyMMdd HHmmss)`。
61
- - `scan` 默认增量;只有用户明确要求全量时使用 `--full-coll`。
62
- - `run` 只证明启动。只有 `file_collection_result.v1` 为 `collection_succeeded`、`file_collection_ok=true` 且失败数为 0,才能报告采集成功。
63
- - 用户可见输出不展示长 ID、完整 Cookie、明文 FTP 密码或大段请求体。
50
+ - 扫描默认增量;只有用户明确要求全量时才传 `full_coll=true`。
51
+ - `run` 只证明启动。只有 `run.result` 结果为 `collection_succeeded`、`file_collection_ok=true` 且失败数为 0,才能报告采集成功。
52
+ - 用户可见输出不展示长 ID、完整 Cookie、明文 FTP 密码、动作流密钥或大段请求体。
64
53
 
65
54
  ## Workflow
66
55
 
67
- 1. 确认 CLI 已完成登录(`weaver-work-cli auth status`),然后执行 init-session --chat-id <chatId>。
68
- 2. 执行 `choose-file-only --phase collection_target_selection`;或执行 `choose-archive`,再调用全宗工具、`normalize-fonds` 和 `confirm-fonds`。
69
- 3. 执行 `choose-new-task` 或 `choose-existing-task`。已有任务的全宗更新仅适用于归档分支。
70
- 4. 新建任务时执行 `choose-existing-resource` 或 `create-new-resource`;标准新建直接调用 `create-ftp-resource`,缺少 `systemPk` 时 CLI 内部创建连接器并返回 `taskSourceId`。
71
- 5. 确定 `retainDirStruct=0|1`;执行 `choose-existing-workflow` 后 `search-action-flows`、用户确认、`inspect-action-flow --retain-dir-struct <0|1>`;
72
- 或执行 `create-new-workflow` 后直接调用标准 `create-action-flow --retain-dir-struct <0|1> [--archive]`。
73
- 6. 用相同目录选项和关联凭据执行 `save-task --retain-dir-struct <0|1> --source-id ... --workflow-selection-file ...`;归档分支额外传全宗确认文件。
74
- 7. 依次执行 `check-storage`、`scan --wait`、`run`;需要等待文件级结果时使用 `run --wait` 或 `run-progress`。
56
+ 1. 确认 CLI 已安装并已登录,然后明确采集目标:仅采集文件,还是采集到档案(归档分支按 `task-workflow.md` 完成全宗确认)。
57
+ 2. 选择已有任务(`task.list` / `task.form`)或新建任务。已有任务仅归档分支可更新全宗(`task.update-fonds`)。
58
+ 3. 新建任务时先选资源:`connector.query` 挑已有资源,或 `resource.create` 新建 FTP/SFTP 资源(缺连接器时 CLI 内部自动创建,返回 `source_id`)。
59
+ 4. 确定 `retain_dir_struct` 后选动作流:`workflow.search` → 用户确认 → `workflow.inspect`(与任务同一目录模式,归档加 `archive_required=true`);或直接 `workflow.create` 动态新建。
60
+ 5. 用 `task.save` 保存任务(`source_id` + `workflow_id` + 同一 `retain_dir_struct`);归档分支保存后再绑定确认过的全宗。
61
+ 6. 依次执行 `storage.check`、`scan`(默认增量,必要时 `scan.wait`)、`run`;结果用 `run.result` 判读,明细用 `detail` 查看。
75
62
 
76
63
  ## References
77
64
 
78
65
  | Need | Read |
79
66
  | --- | --- |
80
67
  | 规则与 owner | `rule-index.md` |
81
- | 认证 | `auth-and-session.md` |
82
- | 主流程 | `task-workflow.md` |
68
+ | 认证 | `auth-and-install.md` 与本文「认证前置」 |
69
+ | 主流程与结果判读 | `task-workflow.md` |
83
70
  | 动作流合同 | `action-flow.md` |
84
- | 可选全宗 | `fonds-selection.md` |
85
- | API 路由 | `api_docs.md` |
86
- | API 端点 | `api-endpoints.md` |
87
- | Payload | `api-payloads.md` |
88
- | 宿主提示词 | `host-executor-prompt.md` |
71
+ | 写操作确认协议 | `write-protocol.md` |
72
+ | 宿主执行提示词 | `host-executor-prompt.md` |
89
73
  | 宿主集成 | `host-platform-integration.md` |
90
74
 
91
75
  # API Endpoints
@@ -134,7 +118,7 @@ Search results are not association credentials. Inspect or create must complete
134
118
  | Cancel | POST | `/api/file/coll/cancel` | cancelled task |
135
119
  | Delete | POST | `/api/file/coll/delete` | boolean result |
136
120
 
137
- `scan` is 默认增量 and sends `fullColl=false`; `--full-coll` is explicit. `finish=true` is not file success. Read `detailType=true` and `detailType=false`, then normalize `file_collection_result.v1`.
121
+ `scan` 默认增量并传 `fullColl=false`;入参 `full_coll=true` 才是全量(须用户明确要求)。`finish=true` 不是文件级成功。成功/失败明细由 `run.result` 统一读取并归一化为 `file_collection_result.v1`。
138
122
 
139
123
  ## CLI 操作
140
124
 
@@ -163,12 +147,30 @@ weaver-work-cli --json caizhilian run caizhilian.file-collection.task.save.prepa
163
147
 
164
148
  ### 其他操作
165
149
 
166
- | 操作 | CLI 命令 |
167
- | --- | --- |
168
- | 列出任务 | `caizhilian.file-collection.task.list` |
169
- | 查看任务详情 | `caizhilian.file-collection.task.form` |
170
- | 检查存储连接 | `caizhilian.file-collection.storage.check` |
171
- | 扫描任务 | `caizhilian.file-collection.scan.prepare/apply` |
172
- | 运行任务 | `caizhilian.file-collection.run.prepare/apply` |
173
- | 取消任务 | `caizhilian.file-collection.cancel.prepare/apply` |
174
- | 删除任务 | `caizhilian.file-collection.delete.prepare/apply` |
150
+ 写操作均分 `.prepare` / `.apply` 两步(见 `write-protocol.md`)。
151
+
152
+ | 分组 | 操作 | CLI 命令(`caizhilian run` 后接) |
153
+ | --- | --- | --- |
154
+ | 任务 | 列出任务 | `caizhilian.file-collection.task.list` |
155
+ | 任务 | 查看任务详情 | `caizhilian.file-collection.task.form` |
156
+ | 任务 | 另存为副本 | `caizhilian.file-collection.task.save-as.prepare/apply` |
157
+ | 任务 | 启用/禁用任务 | `caizhilian.file-collection.task.switch.prepare/apply` |
158
+ | 任务 | 更新任务全宗(归档分支) | `caizhilian.file-collection.task.update-fonds.prepare/apply` |
159
+ | 资源 | 查询连接器与资源 | `caizhilian.file-collection.connector.query` |
160
+ | 资源 | 创建 FTP 连接器 | `caizhilian.file-collection.connector.create.prepare/apply` |
161
+ | 资源 | 创建 FTP/SFTP 资源 | `caizhilian.file-collection.resource.create.prepare/apply` |
162
+ | 动作流 | 搜索动作流 | `caizhilian.file-collection.workflow.search` |
163
+ | 动作流 | 兼容性检测 | `caizhilian.file-collection.workflow.inspect` |
164
+ | 动作流 | 动态创建动作流 | `caizhilian.file-collection.workflow.create.prepare/apply` |
165
+ | 动作流 | 启用动作流 | `caizhilian.file-collection.workflow.enable.prepare/apply` |
166
+ | 动作流 | 更换任务动作流 | `caizhilian.file-collection.workflow.update-task.prepare/apply` |
167
+ | 执行 | 检查存储连接 | `caizhilian.file-collection.storage.check` |
168
+ | 执行 | 扫描任务 | `caizhilian.file-collection.scan.prepare/apply` |
169
+ | 执行 | 等待扫描完成 | `caizhilian.file-collection.scan.wait` |
170
+ | 执行 | 查询扫描进度 | `caizhilian.file-collection.scan.progress` |
171
+ | 执行 | 运行/暂停任务 | `caizhilian.file-collection.run.prepare/apply` |
172
+ | 执行 | 查询运行进度 | `caizhilian.file-collection.run.progress` |
173
+ | 执行 | 查询采集结果(归一化) | `caizhilian.file-collection.run.result` |
174
+ | 执行 | 查询采集明细 | `caizhilian.file-collection.detail` |
175
+ | 执行 | 取消任务 | `caizhilian.file-collection.cancel.prepare/apply` |
176
+ | 执行 | 删除任务 | `caizhilian.file-collection.delete.prepare/apply` |
@@ -7,17 +7,17 @@
7
7
  ## 运行与认证
8
8
 
9
9
  - 唯一运行时为 `weaver-work-cli`,全部操作由 CLI 提供。
10
- - 安装与登录遵守同级 `weaver-e10-shared` 技能的共享规则。认证只使用 CLI 当前身份或连接器注入的身份。
10
+ - 安装与登录遵守 `auth-and-install.md` 的接入规则。认证只使用 CLI 当前身份或连接器注入的身份。
11
11
  - 本模块不执行独立 Skill 的 `dist/weaver-file-upload.js`,不复用 `e10-login` 的会话,
12
12
  不启动第二套 Chrome 登录;独立 Skill 的双登录模式不属于本 CLI 上传接口。
13
- - 缺少会话或登录失效时按共享规则处理,不自行切换账号或环境。
13
+ - 缺少会话或登录失效时按 `auth-and-install.md` 处理,不自行切换账号或环境。
14
14
 
15
15
  ## 操作与参数
16
16
 
17
17
  | 操作 | 作用 | 必填 |
18
18
  | --- | --- | --- |
19
19
  | `caizhilian.file-upload.contract` | 获取完整命令、参数用途、策略和结果证据 | 无 |
20
- | `caizhilian.file-upload.prepare` | 本地文件/上下文检查与 MD5、SHA256;不登录、不联网、不签发上传票据 | `file_path`、`module` |
20
+ | `caizhilian.file-upload.prepare` | 本地文件/上下文检查与 MD5、SHA256;仅本地校验、不发起业务请求、不签发上传票据 | `file_path`、`module` |
21
21
  | `caizhilian.file-upload.upload.prepare` | 用户授权检查、本地校验、绑定当前环境和身份的确认票据 | `file_path`、`module`、`user_confirmed=true` |
22
22
  | `caizhilian.file-upload.upload.apply` | 校验确认票据和内容未变,再执行上传 | 上述参数、`continuation`、`confirm=true`(CLI 用 `--yes`) |
23
23
 
@@ -86,7 +86,7 @@ POSIX 文件权限为 `0600`、回执目录为 `0700`。回执只保存归一化
86
86
  ## 命令示例
87
87
 
88
88
  先读取 contract。下面的 `document` 只示意真实文档业务;使用时必须来自当前调用方场景。
89
- 只有用户已经明确确认后,才传 `user_confirmed=true`,并遵守共享规则的连接器参数要求。
89
+ 只有用户已经明确确认后,才传 `user_confirmed=true`,并遵守 `auth-and-install.md` 的连接器参数要求。
90
90
 
91
91
  Windows PowerShell:
92
92
 
@@ -0,0 +1,32 @@
1
+ # 文件采集执行提示词(宿主注入用)
2
+
3
+ 你是「FTP/SFTP 文件采集」的纯执行器。只按命令结果推进:不手写请求体、不猜参数、不跳步,不把准备态报告为完成。
4
+
5
+ ## 开始前
6
+
7
+ 1. 读取 `SKILL.md` 路由与 `file-collection.md`,按需读 `rule-index.md`、`task-workflow.md`、`action-flow.md`;宿主调度细节见 `host-platform-integration.md`。
8
+ 2. 确认 CLI 已安装且已登录(`weaver-work-cli --version`、`weaver-work-cli auth status`);未登录时按 `auth-and-install.md` 先登录,不要自行拼请求头。
9
+ 3. 写操作必须按 `write-protocol.md` 的 prepare → 用户确认 → apply 执行。
10
+
11
+ ## 调用规范
12
+
13
+ - 统一形式:`weaver-work-cli --json caizhilian run caizhilian.file-collection.<操作> --input-json '<json>'`;全局参数放在子命令之前。
14
+ - 简单 JSON 用 `--input-json`;复杂或多行 JSON 先写 UTF-8 文件再用 `--input <path>`。
15
+ - 不写内联脚本包装调用;不靠反复 `--help` 试错猜参数——字段以 references 文档和 `weaver-work-cli caizhilian schema` 为准。
16
+ - 只使用 `weaver-work-cli caizhilian operations` 列出的操作;未列出的能力一律视为不存在。
17
+
18
+ ## 执行纪律
19
+
20
+ 1. **只读先行**:ID 一律来自真实查询(`task.list` / `connector.query` / `workflow.search` / `workflow.inspect` / `workflow.create` 等),禁止编造。
21
+ 2. **分支先问再走**:仅文件还是归档、已有还是新建任务/资源/动作流,先向用户确认;用户首轮已明确的意图直接消费,不重复问。
22
+ 3. **写操作三步走**:prepare(无副作用)→ 向用户摘要并取得明确同意 → apply(入参与 prepare 逐字一致)。没有同意绝不 apply;要改参数就重新 prepare。
23
+ 4. **失败即停**:登录态失效提示重新登录;业务错误原样反馈原因;参数缺失只补问缺失项;不靠重试碰运气。
24
+ 5. **证据分级**:请求成功 ≠ 业务成功;启动 ≠ 完成 ≠ 成功。采集成功只能按 `task-workflow.md` 的成功标准报告。
25
+ 6. **分支边界**:仅文件分支不问全宗、不写全宗;归档分支先取得用户确认的全宗再绑定。
26
+
27
+ ## 对用户的输出
28
+
29
+ - 只展示序号、名称、地址、状态与短摘要。
30
+ - 不展示长 ID、Cookie、FTP 明文密码、动作流密钥、票据(continuation)与大段请求体。
31
+ - 内部推理、参数试错过程不展示给用户。
32
+ - 默认任务名 `文件采集(yyyyMMdd HHmmss)`、默认动作流名 `文件采集动作流(yyyyMMdd HHmmss)` 均按 UTC+8 生成,展示时保留原样即可。
@@ -0,0 +1,46 @@
1
+ # 宿主平台集成(文件采集)
2
+
3
+ 本模块通过 `weaver-work-cli` 直接执行:宿主调用 CLI、消费 JSON 结果,**从不**自行构造业务请求体。
4
+
5
+ ## 运行前提
6
+
7
+ 1. 已安装 `weaver-work-cli`(`weaver-work-cli --version` 有输出)。
8
+ 2. 已读取 `auth-and-install.md`:安装、认证、超时与重试预算以该文档为准。
9
+ 3. 已登录:`weaver-work-cli auth status` 显示已登录;失效时按 `auth-and-install.md` 复用宿主判定恢复会话,禁止在本提示中写死登录命令或调用其他登录 Skill。
10
+
11
+ ## 调用方式
12
+
13
+ - 统一形式:`weaver-work-cli --json caizhilian run caizhilian.file-collection.<操作> --input-json '<json>'`(全局参数在子命令前)。
14
+ - 输入按复杂度选:`--input-json '<json>'`、`--input <UTF-8 文件路径>`、确认当前 shell 稳定后再用 `--input -`。
15
+ - 命令示例同时给 Windows PowerShell 与 macOS/Linux 两套;Windows 示例不用 Unix-only 写法(`printf`、`~/`、`rm` 等)。
16
+ - 能力与字段以 `weaver-work-cli caizhilian operations` / `caizhilian schema` 与 references 文档为准,不靠失败试错发现参数。
17
+
18
+ ## 结果处理
19
+
20
+ - 输出为 JSON 信封:`ok`、`operation`、`data`。业务原始返回在 `data` 中;`run.result` 返回归一化的 `file_collection_result.v1`。
21
+ - 错误按类型处理:
22
+
23
+ | 类型 | 场景 | 处理 |
24
+ | --- | --- | --- |
25
+ | `confirmation` | 写操作缺确认 | 按 `write-protocol.md` 走确认后再 apply |
26
+ | `continuation_*` | 票据缺失/过期/不匹配/入参变化 | 重新 prepare,不改参硬套 |
27
+ | `business_error` | 服务端业务失败 | 原样反馈原因,不重试蒙混 |
28
+ | 认证错误 | 登录态失效 | 提示并按 `auth-and-install.md` 重新登录 |
29
+
30
+ ## 执行顺序与操作面
31
+
32
+ 按 `task-workflow.md` 的总流程推进;动作流细节见 `action-flow.md`;执行纪律见 `host-executor-prompt.md`。操作面速查(写操作均含 `.prepare` / `.apply`):
33
+
34
+ | 阶段 | 只读 | 写 |
35
+ | --- | --- | --- |
36
+ | 任务 | `task.list` / `task.form` | `task.save` / `task.save-as` / `task.switch` / `task.cancel` / `task.delete` / `task.update-fonds` |
37
+ | 资源 | `connector.query` | `connector.create` / `resource.create` |
38
+ | 动作流 | `workflow.search` / `workflow.inspect` | `workflow.create` / `workflow.enable` / `workflow.update-task` |
39
+ | 执行 | `storage.check` / `scan.progress` / `scan.wait` / `run.progress` / `run.result` / `detail` | `scan` / `run` |
40
+
41
+ ## 安全与输出
42
+
43
+ - 凭证由 CLI 统一注入:宿主与 Agent 不读取、不打印、不转存 Cookie / eteamsid / 密码。
44
+ - 面向用户的摘要必须脱敏:掩码 FTP 密码与动作流密钥,不展示长 ID 与完整请求体。
45
+ - FTP/SFTP 密码只作为必要入参传递,不写入日志、文件或对话记录。
46
+ - 仅文件分支不暴露全宗相关询问;归档分支按 `task-workflow.md` 的全宗确认流程执行。
@@ -0,0 +1,56 @@
1
+ # 文件采集规则索引
2
+
3
+ 每条规则给出适用范围与典型违反表现,细节见对应文档。
4
+
5
+ ## FILE-AUTH-001 认证由 CLI 托管
6
+
7
+ - 适用:所有文件采集操作。
8
+ - 要求:登录态与请求头凭证统一由 `weaver-work-cli auth ...` 托管;不写死域名,不读取、不输出 Cookie / eteamsid。
9
+ - 违反表现:手写认证头、把凭证写进入参或日志、绕过 CLI 直接发 HTTP 请求。
10
+ - 详见:`file-collection.md`「认证前置」、`auth-and-install.md`。
11
+
12
+ ## FILE-WRITE-001 写操作先确认再执行
13
+
14
+ - 适用:保存任务、扫描、运行、取消、删除、切换/另存为任务、更新全宗、创建连接器/资源、创建/启用动作流、更新任务动作流。
15
+ - 要求:一律走 prepare → 向用户确认 → apply(见 `write-protocol.md`);apply 入参与 prepare 完全一致。
16
+ - 违反表现:跳过确认直接写、改参数后复用票据、把 prepare 的返回当成已执行。
17
+
18
+ ## FILE-TASK-001 任务入参真实且一致
19
+
20
+ - 适用:保存采集任务、更新任务动作流。
21
+ - 要求:`source_id`、`workflow_id` 只能来自真实查询或创建结果;`retain_dir_struct` 在动作流检测/创建与保存任务时取值一致;默认任务名按 UTC+8 生成 `文件采集(yyyyMMdd HHmmss)`。
22
+ - 违反表现:编造 ID、目录结构模式前后不一致、把候选列表行直接当 ID 使用。
23
+
24
+ ## FILE-FONDS-001 全宗仅限归档分支
25
+
26
+ - 适用:采集到档案的分支。
27
+ - 要求:仅文件分支不询问、不写入全宗;归档分支的全宗 ID 必须经用户明确确认后写入(`task.update-fonds`)。
28
+ - 违反表现:仅文件分支要全宗、单个候选自动确认、把展示名称当成全宗 ID 写入。
29
+ - 详见:`task-workflow.md`「采集目标」。
30
+
31
+ ## FILE-FLOW-001 动作流必须回读校验
32
+
33
+ - 适用:选择已有动作流。
34
+ - 要求:搜索结果仅供展示;用户确认后必须执行兼容性检测(`workflow.inspect`),检测通过后才允许用于保存任务。
35
+ - 违反表现:列表未经校验就关联、把不兼容或未启用的应用关联进任务。
36
+ - 详见:`action-flow.md`。
37
+
38
+ ## FILE-FLOW-002 动作流动态创建,不使用固定包
39
+
40
+ - 适用:新建动作流。
41
+ - 要求:由 `workflow.create` 动态生成标准链路(自定义触发 → 文档保存 → 输出);不手写设计文件,不上传或导入固定动作流包。
42
+ - 违反表现:手工拼设计、导入模板包、往链路里插入其他节点。
43
+ - 详见:`action-flow.md`。
44
+
45
+ ## FILE-EXEC-001 执行证据分级
46
+
47
+ - 适用:扫描、运行、结果汇报。
48
+ - 要求:扫描默认增量,只有用户明确要求才全量;`run` 只证明启动;只有 `run.result` 满足成功条件才能报告采集成功。
49
+ - 违反表现:把「已启动 / 扫描完成」当成采集成功、没有文件级结果就报成功。
50
+ - 详见:`task-workflow.md`「结果判读」。
51
+
52
+ ## FILE-OUTPUT-001 输出脱敏
53
+
54
+ - 适用:所有面向用户的输出。
55
+ - 要求:不展示长 ID、Cookie、FTP 明文密码、动作流密钥、票据(continuation)或大段请求体;只给序号、名称、地址、状态与短摘要。
56
+ - 违反表现:原样打印接口返回、密码或密钥出现在对话里。
@@ -2,7 +2,7 @@
2
2
  name: weaver-setting-attach
3
3
  description: "对话式修改\"文件设置 → 附件设置\"页面的 15 个配置项(上传最大、上传格式控制 方式、附件打开方式、批量下载、禁止移动端下载、附加提示、图片压缩、版本清理、 打印转 PDF 等)。通过自然语言 / `setting set --item key=value` 即可完成 GET 全量 → modify(保留原值) → diff 让用户确认 → POST 落库,无需打开 浏览器逐项点击。覆盖 weapp 端 `POST /api/file/tenant/setting` 与 `POST /api/file/tenant/setting/save` 两条接口。另提供只读查询:按审批流程 ID 查附件上传目录(caizhilian.setting-attach.list-upload-folders)。Use for 改附件设置、改上传 最大、改附件打开方式、改白名单黑名单、附件批量下载、禁止移动端下载、附加 提示、文件设置、文件上传、格式限制、图片压缩、版本清理、清理文件版本、 打印转 PDF、按流程查上传目录、流程附件目录、流程上传文件夹、eteams-file 后台、<your-e10-domain>/info/fileSet/attach."
4
4
  license: Proprietary
5
- compatibility: 泛微E10采知连配套使用,内部可自由使用与修改,禁止对外分发
5
+ compatibility: 泛微E10采知连配套使用,随 weaver-e10-caizhilian 技能分发
6
6
  metadata:
7
7
  maintainer: unknown
8
8
  type: capability
@@ -21,22 +21,13 @@ metadata:
21
21
 
22
22
  ### 认证前置(必须)
23
23
 
24
- 本模块通过 CLI 托管的认证获取凭证(base_url + Cookie + eteamsid + User-Agent),凭证契约见同级 `weaver-e10-shared` 技能的共享规则,不依赖手动配置文件,Agent 不得自己读取或输出凭证。
24
+ 本模块通过 CLI 托管的认证获取凭证(base_url + Cookie + eteamsid + User-Agent),凭证契约见 `auth-and-install.md`,不依赖手动配置文件,Agent 不得自己读取或输出凭证。
25
25
 
26
26
  **使用前必须确保**:
27
27
  1. CLI 已安装:`weaver-work-cli --version` 能正常输出版本号
28
28
  2. 已完成登录:`weaver-work-cli auth status` 显示已登录
29
29
 
30
- **首次登录**:
31
- ```text
32
- # OAuth2.0 浏览器授权(推荐)
33
- weaver-work-cli auth login
34
-
35
- # 或手动写入 ETEAMSID(从浏览器 DevTools 复制)
36
- weaver-work-cli auth set --eteamsid "PCACCOUNT_xxx"
37
- ```
38
-
39
- **凭证过期处理**:操作返回认证错误时,提示用户通过 `weaver-work-cli auth login` 或 `weaver-work-cli auth set` 重新登录。
30
+ **登录与登录失效处理**:读取 `auth-and-install.md`,由 Agent 复用任务开始时的宿主判定,禁止调用任何其他登录 Skill。明确为 XiaoE 时只执行 `weaver-work-cli auth xiaoe`,失败即停止且不得改走浏览器;非 XiaoE 时先取得用户确认的真实 E10 域名,再执行 `weaver-work-cli auth login --base-url "<用户确认的 E10 登录域名>" --agent_type "<当前智能体名称>"`。
40
31
 
41
32
  ## When to use
42
33
 
@@ -178,7 +169,7 @@ weaver-work-cli --json caizhilian run caizhilian.setting-attach.search-workflows
178
169
 
179
170
  1. **操作前必查登录态**
180
171
  每次执行业务操作前,确认 CLI 已完成登录:
181
- - 若 `weaver-work-cli auth status` 显示未登录,提示用户执行 `weaver-work-cli auth login` 或 `weaver-work-cli auth set` 完成登录
172
+ - 若 `weaver-work-cli auth status` 显示未登录,立即停止业务操作并按 `auth-and-install.md` 的宿主分流恢复会话,不得直接指定或调用其他登录 Skill
182
173
  - 登录完成后**立刻**继续用户原本的请求,不要让用户再敲一次命令
183
174
 
184
175
  2. **查询要简洁**(`show` / 读设置时的输出格式)
@@ -262,9 +253,7 @@ CLI 入口:`weaver-work-cli caizhilian run caizhilian.setting-attach.<operatio
262
253
 
263
254
  ## 鉴权
264
255
 
265
- 走 `Cookie: ETEAMSID=<id>`,与前端 `axios` 默认 cookie 行为一致。
266
-
267
- CLI 自动从 `.env.local` / ENV 读取并塞进 Cookie。
256
+ 请求头凭证由 CLI 统一注入(见 `auth-and-install.md`「请求头契约」),Agent 不自行拼 Cookie、不读写本地凭证文件。
268
257
 
269
258
  ## FileSettingDto 节选(11 字段 + 只读)
270
259
 
@@ -2,7 +2,7 @@
2
2
  name: weaver-setting-backup
3
3
  description: "对话式管理 weapp 后台\"文件设置 → 备份设置\"页面:开关本地备份、列出备份规则、 调整规则路径/周期/启停、删除规则。`backup on` 一句话开启、`backup update --id N --period 720` 一句话调整。覆盖 `POST /api/file/tenant/setting/save`(开关 `sysLocalFileBackup`)+ `FileBackupController` 全部 5 个 CRUD 端点。Use for 备份设置、本地备份、附件备份、备份规则、backupRule、backupPath、备份周期、 文件设置备份、eteams-file 备份、<your-e10-domain>/info/fileSet/backup."
4
4
  license: Proprietary
5
- compatibility: 泛微E10采知连配套使用,内部可自由使用与修改,禁止对外分发
5
+ compatibility: 泛微E10采知连配套使用,随 weaver-e10-caizhilian 技能分发
6
6
  metadata:
7
7
  maintainer: unknown
8
8
  type: capability
@@ -23,22 +23,13 @@ metadata:
23
23
 
24
24
  ### 认证前置(必须)
25
25
 
26
- 本模块通过 CLI 托管的认证获取凭证(base_url + Cookie + eteamsid + User-Agent),凭证契约见同级 `weaver-e10-shared` 技能的共享规则,不依赖手动配置文件,Agent 不得自己读取或输出凭证。
26
+ 本模块通过 CLI 托管的认证获取凭证(base_url + Cookie + eteamsid + User-Agent),凭证契约见 `auth-and-install.md`,不依赖手动配置文件,Agent 不得自己读取或输出凭证。
27
27
 
28
28
  **使用前必须确保**:
29
29
  1. CLI 已安装:`weaver-work-cli --version` 能正常输出版本号
30
30
  2. 已完成登录:`weaver-work-cli auth status` 显示已登录
31
31
 
32
- **首次登录**:
33
- ```text
34
- # OAuth2.0 浏览器授权(推荐)
35
- weaver-work-cli auth login
36
-
37
- # 或手动写入 ETEAMSID(从浏览器 DevTools 复制)
38
- weaver-work-cli auth set --eteamsid "PCACCOUNT_xxx"
39
- ```
40
-
41
- **凭证过期处理**:操作返回认证错误时,提示用户通过 `weaver-work-cli auth login` 或 `weaver-work-cli auth set` 重新登录。
32
+ **登录与登录失效处理**:读取 `auth-and-install.md`,由 Agent 复用任务开始时的宿主判定,禁止调用任何其他登录 Skill。明确为 XiaoE 时只执行 `weaver-work-cli auth xiaoe`,失败即停止且不得改走浏览器;非 XiaoE 时先取得用户确认的真实 E10 域名,再执行 `weaver-work-cli auth login --base-url "<用户确认的 E10 登录域名>" --agent_type "<当前智能体名称>"`。
42
33
 
43
34
  ## When to use
44
35
 
@@ -109,7 +100,7 @@ backup delete --id 2 --yes
109
100
 
110
101
  1. **操作前必查登录态**
111
102
  每次执行业务操作前,确认 CLI 已完成登录:
112
- - 若 `weaver-work-cli auth status` 显示未登录,提示用户执行 `weaver-work-cli auth login` 或 `weaver-work-cli auth set` 完成登录
103
+ - 若 `weaver-work-cli auth status` 显示未登录,立即停止业务操作并按 `auth-and-install.md` 的宿主分流恢复会话,不得直接指定或调用其他登录 Skill
113
104
  - 登录完成后**立刻**继续用户原本的请求,不要让用户再敲一次命令
114
105
 
115
106
  2. **查询要简洁**(`show / list` 时的输出格式)