weaver-work-cli 0.1.5 → 0.1.7
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.
- package/README.md +14 -9
- package/dist/cmd/skills/index.js +60 -0
- package/dist/internal/e10/auth/commands.js +48 -32
- package/dist/internal/e10/auth/session.js +44 -3
- package/dist/internal/e10/auth/xiaoe.js +363 -11
- package/dist/internal/e10/context.js +4 -2
- package/dist/internal/skills/detector.js +42 -0
- package/dist/internal/skills/install.js +50 -3
- package/dist/shortcuts/archive/render/search-format.js +12 -3
- package/dist/shortcuts/ebuilder-form/continuation.js +70 -0
- package/dist/shortcuts/ebuilder-form/errors.js +54 -0
- package/dist/shortcuts/ebuilder-form/host.js +1238 -0
- package/dist/shortcuts/ebuilder-form/index.js +108 -0
- package/dist/shortcuts/ebuilder-form/manifest.js +347 -0
- package/dist/shortcuts/ebuilder-form/operations/read.js +157 -0
- package/dist/shortcuts/ebuilder-form/operations/registry.js +56 -0
- package/dist/shortcuts/ebuilder-form/operations/shared.js +132 -0
- package/dist/shortcuts/ebuilder-form/operations/types.js +19 -0
- package/dist/shortcuts/ebuilder-form/operations/write.js +277 -0
- package/dist/shortcuts/ebuilder-form/operations.js +8 -0
- package/dist/shortcuts/ehr/operations/salary.js +2 -140
- package/dist/shortcuts/im/continuation.js +70 -0
- package/dist/shortcuts/{yimiaoban → im}/errors.js +14 -14
- package/dist/shortcuts/{yimiaoban → im}/host.js +26 -26
- package/dist/shortcuts/{yimiaoban → im}/index.js +42 -42
- package/dist/shortcuts/{yimiaoban → im}/manifest.js +7 -6
- package/dist/shortcuts/{yimiaoban → im}/operations/file-user.js +54 -41
- package/dist/shortcuts/{yimiaoban → im}/operations/group-read.js +46 -44
- package/dist/shortcuts/{yimiaoban → im}/operations/group-write.js +113 -66
- package/dist/shortcuts/{yimiaoban → im}/operations/msg-sync.js +164 -141
- package/dist/shortcuts/{yimiaoban → im}/operations/msg-write.js +47 -47
- package/dist/shortcuts/{yimiaoban → im}/operations/person.js +10 -10
- package/dist/shortcuts/{yimiaoban → im}/operations/registry.js +10 -8
- package/dist/shortcuts/{yimiaoban → im}/operations/session.js +82 -83
- package/dist/shortcuts/im/operations/shared.js +442 -0
- package/dist/shortcuts/{yimiaoban → im}/operations/types.js +1 -1
- package/dist/shortcuts/im/operations/user-remind.js +201 -0
- package/dist/shortcuts/{yimiaoban → im}/operations/write-util.js +7 -7
- package/dist/shortcuts/{yimiaoban → im}/operations.js +3 -3
- package/dist/shortcuts/index.js +10 -2
- package/dist/shortcuts/invoice/manifest.js +113 -10
- package/dist/shortcuts/invoice/operations/import.js +39 -14
- package/dist/shortcuts/invoice/operations/reim.js +38 -18
- package/dist/shortcuts/invoice/operations/shared.js +35 -6
- package/dist/shortcuts/jiuchuanhui/manifest.js +3 -3
- package/dist/shortcuts/jiuchuanhui/operations/registry.js +2 -2
- package/dist/shortcuts/{yimiaoban → okr}/continuation.js +10 -10
- package/dist/shortcuts/okr/errors.js +70 -0
- package/dist/shortcuts/okr/host.js +169 -0
- package/dist/shortcuts/okr/index.js +155 -0
- package/dist/shortcuts/okr/manifest.js +70 -0
- package/dist/shortcuts/okr/operations/link.js +305 -0
- package/dist/shortcuts/okr/operations/read.js +481 -0
- package/dist/shortcuts/okr/operations/registry.js +31 -0
- package/dist/shortcuts/okr/operations/shared.js +381 -0
- package/dist/shortcuts/okr/operations/types.js +88 -0
- package/dist/shortcuts/okr/operations/write.js +838 -0
- package/dist/shortcuts/okr/operations.js +8 -0
- package/dist/shortcuts/project/continuation.js +70 -0
- package/dist/shortcuts/project/errors.js +53 -0
- package/dist/shortcuts/project/host.js +160 -0
- package/dist/shortcuts/project/index.js +106 -0
- package/dist/shortcuts/project/manifest.js +36 -0
- package/dist/shortcuts/project/operations/read.js +551 -0
- package/dist/shortcuts/project/operations/registry.js +31 -0
- package/dist/shortcuts/project/operations/shared.js +68 -0
- package/dist/shortcuts/project/operations/types.js +39 -0
- package/dist/shortcuts/project/operations/write.js +266 -0
- package/dist/shortcuts/project/operations.js +8 -0
- package/dist/shortcuts/workflow/continuation.js +508 -0
- package/dist/shortcuts/workflow/endpoints.js +149 -0
- package/dist/shortcuts/workflow/errors.js +112 -0
- package/dist/shortcuts/workflow/host.js +224 -0
- package/dist/shortcuts/workflow/index.js +116 -0
- package/dist/shortcuts/workflow/manifest.js +30 -0
- package/dist/shortcuts/workflow/operations/form.js +4159 -0
- package/dist/shortcuts/workflow/operations/read.js +3778 -0
- package/dist/shortcuts/workflow/operations/registry.js +33 -0
- package/dist/shortcuts/workflow/operations/shared.js +167 -0
- package/dist/shortcuts/workflow/operations/types.js +44 -0
- package/dist/shortcuts/workflow/operations/write.js +1991 -0
- package/dist/shortcuts/workflow/operations.js +119 -0
- package/dist/shortcuts/workflow/state.js +182 -0
- package/docs/SKILL.md +5 -3
- package/docs/_catalog.md +10 -1
- package/docs/agent-invoice.md +2 -2
- package/docs/agent-skill-install.md +2 -2
- package/docs/e10-auth.md +3 -1
- package/docs/ebuilder-form.md +38 -0
- package/docs/im.md +104 -0
- package/docs/invoice.md +5 -5
- package/docs/okr.md +122 -0
- package/docs/operation-manual.md +10 -7
- package/docs/project.md +69 -0
- package/docs/skill-review-2026-09-19.md +68 -0
- package/package.json +3 -2
- package/scripts/package-skill.mjs +38 -11
- package/scripts/sync-connector-skills.mjs +172 -0
- package/skill-template/business-info.json +357 -16
- package/skill-template/domains/ebuilder-form.md +5 -0
- package/skill-template/domains/okr.md +18 -0
- package/skill-template/domains/shijingran.md +3 -0
- package/skill-template/domains/skill-maker.md +4 -4
- package/skill-template/domains/workflow.md +22 -0
- package/skill-template/domains/yepiaotong.md +4 -2
- package/skill-template/domains/yimiaoban.md +13 -10
- package/skill-template/product.json +5 -0
- package/skill-template/skill-template.md +1 -0
- package/skills/weaver-e10-calendar/SKILL.md +5 -1
- package/skills/weaver-e10-calendar/references/calendar-query.md +7 -0
- package/skills/weaver-e10-calendar/references/source-manifest.json +314 -32
- package/skills/weaver-e10-ebuilder-form/SKILL.md +123 -0
- package/skills/weaver-e10-ebuilder-form/references/context-routing.md +90 -0
- package/skills/weaver-e10-ebuilder-form/references/custom-api.md +86 -0
- package/skills/weaver-e10-ebuilder-form/references/disabled-capabilities.md +50 -0
- package/skills/weaver-e10-ebuilder-form/references/fields-browser.md +100 -0
- package/skills/weaver-e10-ebuilder-form/references/list-nlist.md +91 -0
- package/skills/weaver-e10-ebuilder-form/references/openapi-read.md +74 -0
- package/skills/weaver-e10-ebuilder-form/references/openapi-write.md +86 -0
- package/skills/weaver-e10-ebuilder-form/references/source-manifest.json +107 -0
- package/skills/weaver-e10-esb/SKILL.md +1 -1
- package/skills/weaver-e10-esb/references/source-manifest.json +15 -14
- package/skills/weaver-e10-hrm/SKILL.md +1 -1
- package/skills/weaver-e10-hrm/references/source-manifest.json +357 -38
- package/skills/weaver-e10-jiuchuanhui/SKILL.md +22 -4
- package/skills/weaver-e10-jiuchuanhui/references/clue.md +4 -2
- package/skills/weaver-e10-jiuchuanhui/references/contact.md +1 -1
- package/skills/weaver-e10-jiuchuanhui/references/customer.md +3 -3
- package/skills/weaver-e10-jiuchuanhui/references/disabled-capabilities.md +1 -1
- package/skills/weaver-e10-jiuchuanhui/references/discovery-config.md +10 -10
- package/skills/weaver-e10-jiuchuanhui/references/general-helpers.md +3 -3
- package/skills/weaver-e10-jiuchuanhui/references/sale.md +7 -7
- package/skills/weaver-e10-jiuchuanhui/references/source-manifest.json +3 -3
- package/skills/weaver-e10-jucailin/SKILL.md +2 -2
- package/skills/weaver-e10-mail/SKILL.md +22 -6
- package/skills/weaver-e10-meeting/SKILL.md +22 -1
- package/skills/weaver-e10-okr/SKILL.md +139 -0
- package/skills/weaver-e10-okr/references/okr-align.md +59 -0
- package/skills/weaver-e10-okr/references/okr-keyresult.md +68 -0
- package/skills/weaver-e10-okr/references/okr-link-routing.md +67 -0
- package/skills/weaver-e10-okr/references/okr-query.md +105 -0
- package/skills/weaver-e10-okr/references/okr-write.md +94 -0
- package/skills/weaver-e10-okr/references/source-manifest.json +672 -0
- package/skills/weaver-e10-plan/SKILL.md +3 -3
- package/skills/weaver-e10-plan/references/plan-report-write.md +1 -1
- package/skills/weaver-e10-plan/references/source-manifest.json +20 -20
- package/skills/weaver-e10-qiyecheng/SKILL.md +21 -1
- package/skills/weaver-e10-qiyecheng/references/source-manifest.json +17 -17
- package/skills/weaver-e10-shared/SKILL.md +79 -11
- package/skills/weaver-e10-shared/references/e10-auth-and-session.md +41 -8
- package/skills/weaver-e10-shared/references/non-interactive-environment.md +78 -0
- package/skills/weaver-e10-shared/references/weaver-e10-installation.md +39 -0
- package/skills/weaver-e10-shijingran/SKILL.md +83 -0
- package/skills/weaver-e10-shijingran/references/field-resolution.md +105 -0
- package/skills/weaver-e10-shijingran/references/operations.md +154 -0
- package/skills/weaver-e10-shijingran/references/source-manifest.json +1380 -0
- package/skills/weaver-e10-shijingran/references/write-operations.md +90 -0
- package/skills/weaver-e10-skill-maker/SKILL.md +26 -9
- package/skills/weaver-e10-skill-maker/references/business-skill-generation.md +39 -8
- package/skills/weaver-e10-skill-maker/references/detector-validation.md +25 -8
- package/skills/weaver-e10-skill-maker/references/module-cli-generation.md +66 -5
- package/skills/weaver-e10-skill-maker/references/module-gap-audit-and-repair.md +86 -0
- package/skills/weaver-e10-skill-maker/references/source-update-detection.md +59 -5
- package/skills/weaver-e10-skill-maker/references/weaver-skill-style.md +16 -8
- package/skills/weaver-e10-wenshuding/SKILL.md +28 -4
- package/skills/weaver-e10-wenshuding/references/archive-search.md +14 -0
- package/skills/weaver-e10-wenshuding/references/source-manifest.json +27 -26
- package/skills/weaver-e10-workflow/SKILL.md +250 -0
- package/skills/weaver-e10-workflow/references/source-manifest.json +1062 -0
- package/skills/weaver-e10-workflow/references/workflow-agent-entry.md +96 -0
- package/skills/weaver-e10-workflow/references/workflow-batch.md +275 -0
- package/skills/weaver-e10-workflow/references/workflow-create.md +182 -0
- package/skills/weaver-e10-workflow/references/workflow-edit.md +106 -0
- package/skills/weaver-e10-workflow/references/workflow-memory.md +165 -0
- package/skills/weaver-e10-workflow/references/workflow-operate.md +153 -0
- package/skills/weaver-e10-workflow/references/workflow-query.md +821 -0
- package/skills/weaver-e10-workflow/references/workflow-share.md +117 -0
- package/skills/weaver-e10-workflow/references/workflow-view.md +189 -0
- package/skills/weaver-e10-yepiaotong/SKILL.md +28 -28
- package/skills/weaver-e10-yepiaotong/references/invoice-disabled-capabilities.md +11 -5
- package/skills/weaver-e10-yepiaotong/references/invoice-import.md +14 -8
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing-examples.md +9 -43
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing.md +8 -0
- package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +13 -17
- package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +6 -7
- package/skills/weaver-e10-yepiaotong/references/reim-examples.md +2 -2
- package/skills/weaver-e10-yepiaotong/references/source-manifest.json +1155 -553
- package/skills/weaver-e10-yimiaoban/SKILL.md +56 -38
- package/skills/weaver-e10-yimiaoban/references/ding-write.md +8 -8
- package/skills/weaver-e10-yimiaoban/references/error-codes.md +16 -0
- package/skills/weaver-e10-yimiaoban/references/field-resolution.md +10 -10
- package/skills/weaver-e10-yimiaoban/references/file-user-i18n.md +12 -12
- package/skills/weaver-e10-yimiaoban/references/group-read.md +16 -16
- package/skills/weaver-e10-yimiaoban/references/group-write.md +17 -15
- package/skills/weaver-e10-yimiaoban/references/msg-read.md +21 -17
- package/skills/weaver-e10-yimiaoban/references/msg-write.md +10 -10
- package/skills/weaver-e10-yimiaoban/references/person.md +6 -6
- package/skills/weaver-e10-yimiaoban/references/safety-boundaries.md +15 -11
- package/skills/weaver-e10-yimiaoban/references/session-sysmsg.md +11 -10
- package/skills/weaver-e10-yimiaoban/references/source-manifest.json +2164 -154
- package/skills/weaver-e10-yimiaoban/references/user-remind.md +75 -0
- package/skills/weaver-e10-ziguanjia/SKILL.md +4 -2
- package/skills/weaver-e10-ziguanjia/references/source-manifest.json +99 -29
- package/tools/weaver-skill-detector-1.0.13/SKILL.md +253 -0
- package/tools/weaver-skill-detector-1.0.13/_meta.json +6 -0
- package/tools/weaver-skill-detector-1.0.13/references/checklist.md +298 -0
- package/tools/weaver-skill-detector-1.0.13/scripts/validate_skill.py +4190 -0
- package/dist/shortcuts/yimiaoban/operations/shared.js +0 -236
- package/docs/yimiaoban.md +0 -86
- package/skills/weaver-e10-calendar/product.json +0 -8
- package/skills/weaver-e10-esb/product.json +0 -8
- package/skills/weaver-e10-hrm/product.json +0 -8
- package/skills/weaver-e10-jiuchuanhui/product.json +0 -8
- package/skills/weaver-e10-jucailin/product.json +0 -8
- package/skills/weaver-e10-mail/product.json +0 -8
- package/skills/weaver-e10-meeting/product.json +0 -8
- package/skills/weaver-e10-plan/product.json +0 -8
- package/skills/weaver-e10-qiyecheng/product.json +0 -8
- package/skills/weaver-e10-skill-maker/product.json +0 -8
- package/skills/weaver-e10-wenshuding/product.json +0 -8
- package/skills/weaver-e10-yepiaotong/product.json +0 -8
- package/skills/weaver-e10-yepiaotong/references/invoice-red.md +0 -261
- package/skills/weaver-e10-yimiaoban/product.json +0 -8
- package/skills/weaver-e10-ziguanjia/product.json +0 -8
- /package/dist/shortcuts/{yimiaoban → im}/operations/msg-parse.js +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: weaver-e10-plan
|
|
3
3
|
display_name: 泛微e10计划报告
|
|
4
4
|
display_name_en: Weaver e10 Plan Reports
|
|
5
|
-
description: "E10
|
|
5
|
+
description: "E10 计划报告 Skill:报告内容统计汇总、新建、查询、修改、发布、撤回、共享报告分页、提交提醒与评论查看。用户说 写周报/月报/季报/年报、汇总本周或上月工作、查报告、改报告、发布或撤回报告、提醒他人交报告 等意图时使用。生成本人周期报告时会自动调用已安装的 IM、日程、会议、项目、CRM、流程等模块技能采集数据后整合。"
|
|
6
6
|
description_zh: "E10 计划报告接口 Skill:负责报告的内容统计汇总、新建、查询、修改、发布、撤回、共享报告分页查询、提交提醒与评论查看。用户说 帮我写周报/月报/季报/年报、汇总本周/上周/本月/上月的工作内容或报告、汇总上周报告、生成周报、整理本周工作写报告、查报告、改报告、发布/撤回报告、查看共享给我的报告、提醒他人交报告、查看报告评论 等意图时使用。当判定为生成/汇总本人周期报告时,将自动调用已安装的 IM消息、日报、日程、会议、项目任务、客户营销、流程 等业务模块技能采集周期数据后再整合。"
|
|
7
7
|
description_en: "E10 Plan Report API Skill: Handles report content aggregation, and supports creating, querying, modifying, publishing, and withdrawing reports, running paginated queries for shared reports, sending submission reminders, and viewing comments. Use this skill when users express intents such as writing weekly/monthly/quarterly/yearly reports, summarizing this week's/last week's/this month's/last month's work content or reports, generating weekly reports, writing reports from organized weekly work, or viewing/editing/publishing/withdrawing reports, viewing reports shared with them, reminding others to submit reports, or viewing report comments. When the intent is generating/aggregating the current user's periodic report, automatically call the installed business-module skills (IM messages, daily reports, calendar, meetings, projects/tasks, CRM, workflows) to collect in-period data before composing the report."
|
|
8
8
|
version: 1.0.0
|
|
@@ -15,7 +15,7 @@ cliHelp: "weaver-work-cli plan --help"
|
|
|
15
15
|
|
|
16
16
|
# 泛微E10计划报告
|
|
17
17
|
|
|
18
|
-
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md),其中包含安装、E10 认证、JSON 输出和高风险写入规则。若不存在则必须先执行 `weaver-work-cli skills install shared
|
|
18
|
+
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md),其中包含安装、E10 认证、JSON 输出和高风险写入规则。若不存在则必须先执行 `weaver-work-cli skills install shared --target-dir <当前Agent的Skills目录>`,若 CLI 未安装则先执行 `npm install -g weaver-work-cli`,安装或读取失败时必须停止执行。**
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
本技能覆盖报告业务域:**汇总生成报告**(多模块采集后整合)、**查询报告详情**、**分页查询报告**、**新建**、**修改**、**发布**、**撤回**、**发送提交提醒**、**查看报告评论**。写操作全部走 prepare→apply 确认协议。
|
|
@@ -119,7 +119,7 @@ weaver-work-cli --json plan run <operation> --input-json '{"key":"value"}'
|
|
|
119
119
|
|
|
120
120
|
- 不绕过 CLI 直接 curl/fetch 访问 E10 接口,不自行拼报告侧接口路径。
|
|
121
121
|
- 业务数据采集不在本技能内实现:按 [`references/plan-collect-and-compose.md`](references/plan-collect-and-compose.md) 的对应关系调用已安装的业务模块技能。
|
|
122
|
-
- eb 链路的「撤回报告」为 ESB
|
|
122
|
+
- eb 链路的「撤回报告」为 ESB 动作流,CLI 返回 `policy/link_unsupported`;改由 `weaver-e10-esb` skill 用 `esb.input-format` + `esb.trigger.prepare/apply` 触发同名动作流(需要动作流 ID 或唯一值,见该 skill)。
|
|
123
123
|
- 人员「姓名 → 人员 ID」解析交给 weaver-e10-hrm skill。
|
|
124
124
|
- 禁止把未出现在 `plan schema` 中的能力当作可用 operation。
|
|
125
125
|
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
|
|
38
38
|
### 撤回 `plan.report.withdraw.prepare` / `.apply`
|
|
39
39
|
|
|
40
|
-
用 `id` 或周期参数定位报告,`prepare` 会校验当前状态为「已发布(1)」。**仅标准版链路支持**:eb 链路的撤回是 ESB 动作流「eb撤回报告」,源资料未提供动作流唯一标识,CLI 返回 `policy/link_unsupported`,需要改用 weaver-e10-
|
|
40
|
+
用 `id` 或周期参数定位报告,`prepare` 会校验当前状态为「已发布(1)」。**仅标准版链路支持**:eb 链路的撤回是 ESB 动作流「eb撤回报告」,源资料未提供动作流唯一标识,CLI 返回 `policy/link_unsupported`,需要改用 `weaver-e10-esb` skill 执行同名动作流。
|
|
41
41
|
|
|
42
42
|
## 命令
|
|
43
43
|
|
|
@@ -682,7 +682,7 @@
|
|
|
682
682
|
}
|
|
683
683
|
},
|
|
684
684
|
"artifactBaseline": {
|
|
685
|
-
"aggregateSha256": "
|
|
685
|
+
"aggregateSha256": "4b3de9a1cd19fe0df8c5e5fb7d68286111271407bf96901e4168901655b22e65",
|
|
686
686
|
"files": [
|
|
687
687
|
{
|
|
688
688
|
"path": "src/shortcuts/plan/index.ts",
|
|
@@ -765,26 +765,26 @@
|
|
|
765
765
|
{
|
|
766
766
|
"path": "src/shortcuts/index.ts",
|
|
767
767
|
"role": "generated-cli",
|
|
768
|
-
"size":
|
|
769
|
-
"sha256": "
|
|
768
|
+
"size": 1274,
|
|
769
|
+
"sha256": "54df058151b6f3602a2d112a49396b4ad4121cdba06d31c4c368ebd3235192c4"
|
|
770
770
|
},
|
|
771
771
|
{
|
|
772
772
|
"path": "skills/weaver-e10-plan/SKILL.md",
|
|
773
773
|
"role": "generated-skill-entry",
|
|
774
|
-
"size":
|
|
775
|
-
"sha256": "
|
|
774
|
+
"size": 12383,
|
|
775
|
+
"sha256": "10a8815bb358f479f10aa9767be6a2f9f1943dcdb1693ab128f8877b033215bf"
|
|
776
776
|
},
|
|
777
777
|
{
|
|
778
|
-
"path": "
|
|
778
|
+
"path": "skill-template/product.json",
|
|
779
779
|
"role": "generated-skill-meta",
|
|
780
|
-
"size":
|
|
781
|
-
"sha256": "
|
|
780
|
+
"size": 89,
|
|
781
|
+
"sha256": "211300a31c39f0feea66331101edea394ae841307302404c6d113b314954ee83"
|
|
782
782
|
},
|
|
783
783
|
{
|
|
784
784
|
"path": "skills/weaver-e10-plan/references/plan-overview-and-routing.md",
|
|
785
785
|
"role": "generated-reference",
|
|
786
|
-
"size":
|
|
787
|
-
"sha256": "
|
|
786
|
+
"size": 8462,
|
|
787
|
+
"sha256": "6ad3f83d27a35958c6580aa9e20e659dee7412e8d392e55a5646e232da4d2da7"
|
|
788
788
|
},
|
|
789
789
|
{
|
|
790
790
|
"path": "skills/weaver-e10-plan/references/plan-report-query.md",
|
|
@@ -795,8 +795,8 @@
|
|
|
795
795
|
{
|
|
796
796
|
"path": "skills/weaver-e10-plan/references/plan-report-write.md",
|
|
797
797
|
"role": "generated-reference",
|
|
798
|
-
"size":
|
|
799
|
-
"sha256": "
|
|
798
|
+
"size": 7587,
|
|
799
|
+
"sha256": "605617ed5d67f3f03be118ef9bc0a0cf4c4db1338ab10d325dbcf686e1a21768"
|
|
800
800
|
},
|
|
801
801
|
{
|
|
802
802
|
"path": "skills/weaver-e10-plan/references/plan-report-remind.md",
|
|
@@ -807,8 +807,8 @@
|
|
|
807
807
|
{
|
|
808
808
|
"path": "skills/weaver-e10-plan/references/plan-collect-and-compose.md",
|
|
809
809
|
"role": "generated-reference",
|
|
810
|
-
"size":
|
|
811
|
-
"sha256": "
|
|
810
|
+
"size": 7664,
|
|
811
|
+
"sha256": "ac721e76ef3139ef684004bed939a5cd2805b07054250742ec05858907df63dc"
|
|
812
812
|
},
|
|
813
813
|
{
|
|
814
814
|
"path": "docs/plan.md",
|
|
@@ -819,14 +819,14 @@
|
|
|
819
819
|
{
|
|
820
820
|
"path": "docs/_catalog.md",
|
|
821
821
|
"role": "generated-doc",
|
|
822
|
-
"size":
|
|
823
|
-
"sha256": "
|
|
822
|
+
"size": 4580,
|
|
823
|
+
"sha256": "7ec48267965b4ccd35dcc463ed0a73dd71c3f4d2fc3d978165f508261945d4b3"
|
|
824
824
|
},
|
|
825
825
|
{
|
|
826
826
|
"path": "docs/SKILL.md",
|
|
827
827
|
"role": "generated-doc",
|
|
828
|
-
"size":
|
|
829
|
-
"sha256": "
|
|
828
|
+
"size": 4986,
|
|
829
|
+
"sha256": "12f0a13396dd24b073abdf438ea82a7b307deb7d33dede5cb7d177172cb37d65"
|
|
830
830
|
},
|
|
831
831
|
{
|
|
832
832
|
"path": "test/business/plan-operations.test.ts",
|
|
@@ -843,8 +843,8 @@
|
|
|
843
843
|
{
|
|
844
844
|
"path": "skill-template/business-info.json",
|
|
845
845
|
"role": "generated-template",
|
|
846
|
-
"size":
|
|
847
|
-
"sha256": "
|
|
846
|
+
"size": 6294,
|
|
847
|
+
"sha256": "7af8cc1b35564b11a4c33cf566b22919d75c8a4daeec488d6ff8979c098c8ff7"
|
|
848
848
|
}
|
|
849
849
|
]
|
|
850
850
|
},
|
|
@@ -10,15 +10,35 @@ author: 泛微网络科技股份有限公司
|
|
|
10
10
|
agent_created: true
|
|
11
11
|
requires:
|
|
12
12
|
bins: ["weaver-work-cli"]
|
|
13
|
+
dependencies:
|
|
14
|
+
- weaver-e10-login
|
|
13
15
|
cliHelp: "weaver-work-cli fna --help"
|
|
14
16
|
---
|
|
15
17
|
|
|
16
18
|
# weaver-work-cli 齐业成费控(FNA)Skill
|
|
17
19
|
|
|
18
|
-
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md),其中包含安装、E10 认证、JSON 输出和高风险写入规则。若不存在则必须先执行 `weaver-work-cli skills install shared --
|
|
20
|
+
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md),其中包含安装、E10 认证、JSON 输出和高风险写入规则。若不存在则必须先执行 `weaver-work-cli skills install shared --target-dir <当前Agent的Skills目录>`,若 CLI 未安装则先执行 `npm install -g weaver-work-cli`,安装或读取失败时必须停止执行。**
|
|
19
21
|
|
|
20
22
|
所有调用统一走 `weaver-work-cli fna ...`,禁止绕过 CLI 直接 curl/fetch E10 接口,禁止读取、复制、打印或解析 Cookie、ETEAMSID、Token 或 `~/.e10-cli` 等认证目录;登录诊断只允许 `weaver-work-cli auth root/status/profile list/profile current`、`weaver-work-cli doctor --e10` 和业务命令 JSON 错误。
|
|
21
23
|
|
|
24
|
+
## 适用场景(何时使用本技能)
|
|
25
|
+
|
|
26
|
+
用户提到事前申请单预算、预算执行报表、报销/借款/预付核销金额、全公司借款汇总与列表、提醒还款、发票核销金额与列表或催票时,使用本技能。
|
|
27
|
+
|
|
28
|
+
发票票夹与 OCR 走 `weaver-e10-yepiaotong`,人员与流程 ID 解析不属于本技能范围。
|
|
29
|
+
|
|
30
|
+
## 认证与请求头契约
|
|
31
|
+
|
|
32
|
+
登录与会话由 E10 登录能力统一提供:文档型约定为 `weaver-e10-login` 技能,本 CLI 场景下等价入口是 `weaver-work-cli auth ...` 命令体系。业务 Skill 不自建登录流程,不索取、打印或转存任何凭证。
|
|
33
|
+
|
|
34
|
+
CLI 发往 E10 的每个请求都自动携带以下三项用户信息参数,**缺一不可**(业务入参里不要传这些字段,也不要手工拼装请求头):
|
|
35
|
+
|
|
36
|
+
```text
|
|
37
|
+
Cookie: <登录返回的完整原始 Cookie 串,原样透传,禁止裁剪/去重/改写>
|
|
38
|
+
eteamsid: <登录返回的 ETEAMSID>
|
|
39
|
+
User-Agent: AgentType=<agentType>,IsAgent=true
|
|
40
|
+
```
|
|
41
|
+
|
|
22
42
|
## 能力范围
|
|
23
43
|
|
|
24
44
|
| 能力 | 说明 | 身份 |
|
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
"generatedFrom": {
|
|
7
7
|
"kind": "user-provided-folder",
|
|
8
8
|
"sourceRoots": [
|
|
9
|
-
"
|
|
9
|
+
"<本地源资料仓库路径>/weaver-e10-qiyecheng"
|
|
10
10
|
],
|
|
11
11
|
"note": "用户桌面目录的旧版 weaver-e10-qiyecheng 文档型 Skill(含 scripts/agents/icon 等打包文件,未纳入功能源资料指纹)"
|
|
12
12
|
},
|
|
13
13
|
"sourceSet": {
|
|
14
|
-
"aggregateSha256": "
|
|
14
|
+
"aggregateSha256": "04dcc10187bb4ea6ec1e8b6b94e3c25c76b9893b7534c8f144bc960fa2e0d9ff",
|
|
15
15
|
"sourceRoots": [
|
|
16
|
-
"
|
|
16
|
+
"<本地源资料仓库路径>/weaver-e10-qiyecheng"
|
|
17
17
|
],
|
|
18
18
|
"detectionStrength": "strong"
|
|
19
19
|
},
|
|
@@ -517,7 +517,7 @@
|
|
|
517
517
|
}
|
|
518
518
|
},
|
|
519
519
|
"artifactBaseline": {
|
|
520
|
-
"aggregateSha256": "
|
|
520
|
+
"aggregateSha256": "b3054d5b48d3be996e055873a9b88060fcf4640c79c067004fd7ceebeab2c9de",
|
|
521
521
|
"files": [
|
|
522
522
|
{
|
|
523
523
|
"path": "src/shortcuts/fna/manifest.ts",
|
|
@@ -600,8 +600,8 @@
|
|
|
600
600
|
{
|
|
601
601
|
"path": "src/shortcuts/index.ts",
|
|
602
602
|
"role": "generated",
|
|
603
|
-
"size":
|
|
604
|
-
"sha256": "
|
|
603
|
+
"size": 1274,
|
|
604
|
+
"sha256": "54df058151b6f3602a2d112a49396b4ad4121cdba06d31c4c368ebd3235192c4"
|
|
605
605
|
},
|
|
606
606
|
{
|
|
607
607
|
"path": "test/business/fna-operations.test.ts",
|
|
@@ -624,26 +624,26 @@
|
|
|
624
624
|
{
|
|
625
625
|
"path": "docs/_catalog.md",
|
|
626
626
|
"role": "generated",
|
|
627
|
-
"size":
|
|
628
|
-
"sha256": "
|
|
627
|
+
"size": 4580,
|
|
628
|
+
"sha256": "7ec48267965b4ccd35dcc463ed0a73dd71c3f4d2fc3d978165f508261945d4b3"
|
|
629
629
|
},
|
|
630
630
|
{
|
|
631
631
|
"path": "docs/SKILL.md",
|
|
632
632
|
"role": "generated",
|
|
633
|
-
"size":
|
|
634
|
-
"sha256": "
|
|
633
|
+
"size": 4986,
|
|
634
|
+
"sha256": "12f0a13396dd24b073abdf438ea82a7b307deb7d33dede5cb7d177172cb37d65"
|
|
635
635
|
},
|
|
636
636
|
{
|
|
637
637
|
"path": "skills/weaver-e10-qiyecheng/SKILL.md",
|
|
638
638
|
"role": "generated",
|
|
639
|
-
"size":
|
|
640
|
-
"sha256": "
|
|
639
|
+
"size": 10568,
|
|
640
|
+
"sha256": "c9b0de725103edd503dba4c02d3f7ba548ade74ddf718c7b41a4e24a485e50ce"
|
|
641
641
|
},
|
|
642
642
|
{
|
|
643
|
-
"path": "
|
|
643
|
+
"path": "skill-template/product.json",
|
|
644
644
|
"role": "generated",
|
|
645
|
-
"size":
|
|
646
|
-
"sha256": "
|
|
645
|
+
"size": 89,
|
|
646
|
+
"sha256": "211300a31c39f0feea66331101edea394ae841307302404c6d113b314954ee83"
|
|
647
647
|
},
|
|
648
648
|
{
|
|
649
649
|
"path": "skills/weaver-e10-qiyecheng/references/catalog.md",
|
|
@@ -678,8 +678,8 @@
|
|
|
678
678
|
{
|
|
679
679
|
"path": "skill-template/business-info.json",
|
|
680
680
|
"role": "generated",
|
|
681
|
-
"size":
|
|
682
|
-
"sha256": "
|
|
681
|
+
"size": 6294,
|
|
682
|
+
"sha256": "7af8cc1b35564b11a4c33cf566b22919d75c8a4daeec488d6ff8979c098c8ff7"
|
|
683
683
|
},
|
|
684
684
|
{
|
|
685
685
|
"path": "skill-template/domains/qiyecheng.md",
|
|
@@ -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.
|
|
8
|
+
version: 1.2.0
|
|
9
9
|
author: 泛微网络科技股份有限公司
|
|
10
10
|
agent_created: true
|
|
11
11
|
requires:
|
|
@@ -20,18 +20,49 @@ requires:
|
|
|
20
20
|
|
|
21
21
|
用户要求安装任一业务模块 Skill 时,必须先执行 `weaver-work-cli --version` 与 `npm view weaver-work-cli version` 比对本地版本和 npm 源版本。若本地版本低于 npm 源版本,先询问用户是否使用(推荐)最新版 `weaver-work-cli`;用户确认后先执行 `npm install -g weaver-work-cli` 更新 CLI,再继续安装业务模块 Skill。用户拒绝时,说明将沿用本地版本后再继续。
|
|
22
22
|
|
|
23
|
-
##
|
|
23
|
+
## 最高优先级:XiaoE 统一登录
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
如果当前运行在 XiaoE 宿主环境,或任务上下文/环境变量显示存在 `XIAOE_*` / `xiaoeUserData/tokens.py`,登录处理必须优先走 XiaoE 统一登录:
|
|
26
|
+
|
|
27
|
+
### XiaoE Token 获取(顶层强规则)
|
|
28
|
+
|
|
29
|
+
需要Token时执行:
|
|
30
|
+
|
|
31
|
+
Windows PowerShell:
|
|
32
|
+
|
|
33
|
+
```powershell
|
|
34
|
+
python -c "import os,runpy;runpy.run_path(os.path.join(os.environ['LOCALAPPDATA'],'xiaoeUserData','tokens.py'),run_name='__main__')"
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
macOS/Linux(bash/zsh):
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
python3 -c "import os,runpy;runpy.run_path(os.path.join(os.path.expanduser('~'),'Library','Application Support','xiaoeUserData','tokens.py'),run_name='__main__')"
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
读取 stdout 作为结果,stdout 期望是 JSON 对象;失败时返回实际错误。典型结果包含 `eteamId`。Token、Cookie、ETEAMSID 和业务凭证不得要求用户粘贴,也不得在回复中展示。脚本不存在、Python 依赖缺失、stdout 非法、接口失败或进程非 0 时,停止当前手动取 Token 的流程并反馈实际错误,不猜测或伪造 Token;但如果只是通过 `weaver-work-cli auth xiaoe` 取登录态,CLI 自己会在脚本不可用时改用内置原生实现,不需要 Agent 去安装 Python 依赖或中断认证流程。
|
|
26
44
|
|
|
27
45
|
1. 未登录、登录失效、准备执行业务命令前需要确认 E10 会话,或 `auth status --no-check` 显示未登录时,先运行:
|
|
28
46
|
```text
|
|
29
47
|
weaver-work-cli auth xiaoe
|
|
30
48
|
```
|
|
31
|
-
2. 不得因为本地存在旧 profile、`auth profile current` 指向旧环境,或 `auth profile list`
|
|
32
|
-
3.
|
|
33
|
-
4.
|
|
34
|
-
5.
|
|
49
|
+
2. 不得因为本地存在旧 profile、`auth profile current` 指向旧环境,或 `auth profile list` 里只有旧环境,就跳过 XiaoE 统一登录;也不得先要求用户选择旧 profile 或输入域名。
|
|
50
|
+
3. XiaoE 统一登录由 CLI 优先读取宿主 `xiaoeUserData/tokens.py`,用脚本 stdout JSON 中的 ETEAMSID 写入统一登录态;脚本不可用(不存在、执行失败,或所用 Python 缺少 `requests` 等依赖)时,CLI 会自动改用内置原生实现读取 XiaoE 客户端本地会话(`XiaoE/Robots/*/user_settings.json` 或 `XIAOE_USER_TOKEN`)换取 `eteamId`,该链路不需要本机 Python;仍拿不到凭证时,才消费宿主注入的 `XIAOE_*` 域名/凭证映射。Agent 不要打印、转述、索取或要求用户手动设置 `XIAOE_*`、Cookie、ETEAMSID、业务 Token,也不要因为脚本报缺依赖就中断登录或让用户装 Python 包。
|
|
51
|
+
4. `auth xiaoe` 和未显式指定 `--auth` / `--profile` 的业务命令都会先尝试上述统一登录;`tokens.py` 只返回 `eteamId` 时,CLI 采用 CLI 资料包内置的兜底 E10 域名(地址由资料包提供,不在文档中写死)作为兜底。Token、Cookie、ETEAMSID 仍属于凭证,禁止在回复中展示。
|
|
52
|
+
5. XiaoE 统一登录走不通时,CLI 必须先反馈未拿到登录信息的原因;`auth xiaoe` 随后再降级打开浏览器 OAuth,降级等待必须遵守「浏览器 OAuth 降级防挂起」规则。业务命令不得自动沿用旧 profile;如需网页登录,先运行 `weaver-work-cli auth xiaoe` 或由用户明确改用 `weaver-work-cli auth login`。
|
|
53
|
+
6. `auth status --no-check` 只是本地诊断,不会主动触发 XiaoE 统一登录;业务命令和 `auth xiaoe` 才会尝试写入统一登录态。具体读取 [`e10-auth-and-session.md`](references/e10-auth-and-session.md)。
|
|
54
|
+
|
|
55
|
+
### 浏览器 OAuth 降级防挂起(顶层强规则)
|
|
56
|
+
|
|
57
|
+
`auth xiaoe` / `auth login` 的浏览器 OAuth 降级会在本机 `127.0.0.1:19800` 监听回调并无限等待,命令自身不会超时退出。在 Agent 沙箱/托管环境(没有本地浏览器,或浏览器与 CLI 不在同一台机器/容器)中,外部浏览器无法回调容器内 `127.0.0.1:19800`,该路径结构性不可达,命令会一直挂起直到被外部超时掐断(退出码 124),用户感知为「卡住 / 跑很久」。因此:
|
|
58
|
+
|
|
59
|
+
1. 运行 `auth xiaoe` 时必须防挂起:以后台方式启动并限时观察(上限 300 秒 / 5 分钟)。一旦输出出现 `Waiting for E10 authorization callback`(说明统一登录已失败、进入浏览器 OAuth 等待),立即终止该进程,不得继续等待。
|
|
60
|
+
2. 进入浏览器 OAuth 等待后:
|
|
61
|
+
- 先向用户反馈 XiaoE 统一登录失败的实际原因;
|
|
62
|
+
- 沙箱/托管环境:不要替用户执行浏览器登录等待,把完整命令交给用户在其本地终端执行,例如 `weaver-work-cli auth login --base-url "<用户确认的登录域名>" --agent_type "<当前智能体名称>"`;
|
|
63
|
+
- 本地环境(CLI 与浏览器同机):可继续执行浏览器登录,但仍须限时等待,超时未完成即终止并反馈。
|
|
64
|
+
3. 用户无法本地执行浏览器登录时,经用户明确同意后改用保底方式 `weaver-work-cli auth set --eteamsid "<ETEAMSID>" --base-url "<用户确认的登录域名>"`,由用户从已登录浏览器主动提供 ETEAMSID;Agent 不得索取、展示或转述该值。
|
|
65
|
+
4. 严禁不加限制地前台运行 `auth xiaoe` / `auth login` 并等待 OAuth 回调。
|
|
35
66
|
|
|
36
67
|
## 通用准则
|
|
37
68
|
|
|
@@ -44,7 +75,7 @@ weaver-work-cli --version
|
|
|
44
75
|
weaver-work-cli doctor --e10
|
|
45
76
|
```
|
|
46
77
|
|
|
47
|
-
|
|
78
|
+
如果命令不可用(尤其是 `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`。
|
|
48
79
|
|
|
49
80
|
3. 业务输入只描述业务对象和意图。认证、Cookie、ETEAMSID、业务 Token、接口地址和回查细节都由 CLI 托管。调用业务 operation 时,简单 JSON 优先使用 `--input-json '<json>'`;复杂或多行 JSON 先写入 UTF-8 `.json` 文件再传 `--input <path>`;只有确认当前 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 写法。
|
|
50
81
|
|
|
@@ -52,10 +83,44 @@ weaver-work-cli doctor --e10
|
|
|
52
83
|
|
|
53
84
|
5. 涉及附件、图片、本地文件、远程 URL 文件或文件内容解析的操作,执行前必须先向用户说明:文件内容可能会被上传到业务系统、OCR/解析服务,并可能进入当前大模型上下文用于理解和处理。必须等待用户明确确认后,才继续上传、读取、解析、OCR、导入或复用已上传文件对象;用户未确认时只说明风险和所需确认,不执行相关命令。
|
|
54
85
|
|
|
86
|
+
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 的认证结论。
|
|
87
|
+
|
|
88
|
+
## 超时与重试预算
|
|
89
|
+
|
|
90
|
+
命令执行必须有界。默认按下表 timeout(超时)预算约束;超时即终止并反馈,不允许无界等待或无界重试。
|
|
91
|
+
|
|
92
|
+
| 命令类别 | 单次超时预算 | 重试策略 |
|
|
93
|
+
| --- | --- | --- |
|
|
94
|
+
| 登录类(`auth xiaoe` / `auth login` / `auth set`) | 300 秒(5 分钟,后台运行 + 限时观察) | **禁止自动重试**;出现降级信号立即终止并移交用户 |
|
|
95
|
+
| 只读业务查询(list / get / schema / preview) | 120 秒 | 最多 1 次;仅在网络类错误且未产生副作用时 |
|
|
96
|
+
| 写入类(prepare / apply / import / update / delete) | 600 秒(10 分钟) | **禁止自动重试**(存在重复入账/重复提交风险);结果不确定时只补一次只读回查 |
|
|
97
|
+
| 安装与构建(`npm install` / `npm run build` / `npm link`) | 1800 秒(30 分钟) | 禁止自动重试;失败即停止并报告,不加 `sudo` |
|
|
98
|
+
| 诊断类(`--version` / `doctor` / `auth status --no-check` / `skills list`) | 60 秒 | 最多 1 次 |
|
|
99
|
+
|
|
100
|
+
预算是**上限**而不是必须等满:登录类一旦出现降级信号(`Open browser login` / `Waiting for E10 authorization callback` / `Could not open browser automatically`)就立即终止,不必等满 300 秒;写入类一旦拿到确定结果或返回 `partial` / `write_uncertain` 也立即停止。慢环境(容器冷启动、大依赖安装、批量导入)可以撑到上限,快环境不要人为等待。
|
|
101
|
+
|
|
102
|
+
补充约束:
|
|
103
|
+
|
|
104
|
+
1. 登录类命令超时后,**不得**换域名或换命令反复重试;先按 [`non-interactive-environment.md`](references/non-interactive-environment.md) 判定环境并反馈原因。
|
|
105
|
+
2. 写入类命令返回 `partial` / `write_uncertain` / 网络中断 / 回查失败时,立即停止写流程,只做一次只读回查确认。
|
|
106
|
+
3. 任何命令被外部超时掐断(退出码 124)都视为超时失败,按上表处理,不得静默重跑。
|
|
107
|
+
|
|
55
108
|
## 输出契约
|
|
56
109
|
|
|
57
110
|
Agent 调用业务能力时优先加 `--json`。成功看进程退出码 0 和 JSON envelope 的 `ok=true`;失败看非 0 退出码和 stderr JSON 的 `error.type/subtype/message`。不要用老式 `code == 0` 判断成功。
|
|
58
111
|
|
|
112
|
+
### 请求头契约(E10 接口调用强制)
|
|
113
|
+
|
|
114
|
+
`weaver-work-cli` 发往 E10 的每个请求都由 CLI 统一携带以下三项用户信息参数,缺一不可(业务入参里不要传这些字段,也不要手工拼装请求头):
|
|
115
|
+
|
|
116
|
+
```text
|
|
117
|
+
Cookie: <登录 skill 返回的完整原始 Cookie 串,原样透传,禁止裁剪/去重/改写>
|
|
118
|
+
eteamsid: <登录 skill 返回的 ETEAMSID>
|
|
119
|
+
User-Agent: AgentType=<agentType>,IsAgent=true
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
登录与会话统一由 E10 登录能力提供:文档型约定为 `weaver-e10-login` 技能,本 CLI 场景下等价入口是 `weaver-work-cli auth ...` 命令体系;业务 Skill 不得自建登录流程,也不得读取、打印、转存任何认证目录或凭证。
|
|
123
|
+
|
|
59
124
|
返回 `partial`、`write_uncertain`、登录失效、回查失败或网络中断时,立即停止当前写流程,不自动重试写入或删除。
|
|
60
125
|
|
|
61
126
|
当前 CLI 的 JSON 输出是完整 envelope 直接写 stdout;没有飞书 CLI 那种通用 `--jq`、`--format table/ndjson` 或 `--page-all`。列表、详情、OCR、导出等可能产生大响应时,必须先读 [`json-output-contract.md`](references/json-output-contract.md) 的“大结果渲染与提效规则”:默认小页读取、只保留任务所需字段、分页有预算,回复用户时给摘要和路径,不要原样粘贴超长 JSON。
|
|
@@ -67,7 +132,8 @@ Agent 调用业务能力时优先加 `--json`。成功看进程退出码 0 和 J
|
|
|
67
132
|
| 强触发条件 | Reference |
|
|
68
133
|
| --- | --- |
|
|
69
134
|
| 命令不可用、Agent 自动安装 CLI、安装、构建、全局 link、检查可用 skill | [`weaver-e10-installation.md`](references/weaver-e10-installation.md) |
|
|
70
|
-
| 登录、profile、E10 会话、baseUrl、auth 文件、`WEAVER_*` / `XIAOE_*`
|
|
135
|
+
| 登录、profile、E10 会话、baseUrl、auth 文件、`WEAVER_*` / `XIAOE_*` 环境变量;**未登录或登录失效(XiaoE 先自动尝试,其它场景需要用户提供登录域名)** | [`e10-auth-and-session.md`](references/e10-auth-and-session.md) |
|
|
136
|
+
| 容器/沙箱/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) |
|
|
71
137
|
| 判断 stdout/stderr、JSON envelope、退出码、脚本封装、自动化调用、大结果渲染/分页控量 | [`json-output-contract.md`](references/json-output-contract.md) |
|
|
72
138
|
| 准备执行写入/删除/导入/更新、遇到 `confirmation.required`、`partial.write_uncertain`、网络中断或回查失败 | [`high-risk-write.md`](references/high-risk-write.md) |
|
|
73
139
|
|
|
@@ -83,8 +149,10 @@ Agent 调用业务能力时优先加 `--json`。成功看进程退出码 0 和 J
|
|
|
83
149
|
|
|
84
150
|
5. 不能猜测 CLI 未暴露的内部字段、接口路径、ID 解析逻辑或回查语义。
|
|
85
151
|
|
|
86
|
-
6. 未登录或登录失效(`authentication` / `session_expired` / `auth status`
|
|
152
|
+
6. 未登录或登录失效(`authentication` / `session_expired` / `auth status` 未登录)时,XiaoE 宿主环境必须先运行 `weaver-work-cli auth xiaoe` 尝试统一登录;统一登录不可用时必须先反馈未拿到登录信息的原因,然后 `auth xiaoe` 再降级打开浏览器 OAuth,降级等待必须遵守「浏览器 OAuth 降级防挂起」规则,禁止前台无限等待回调。业务命令不得自动沿用旧 profile。执行浏览器登录时必须传入 `--agent_type "<当前智能体名称>"`,让授权确认页展示发起登录验证的智能体;**禁止**使用示例占位域名登录,也禁止在拿到域名前反复重试业务命令。具体流程读取 [`e10-auth-and-session.md`](references/e10-auth-and-session.md)。
|
|
87
153
|
|
|
88
154
|
7. 附件、图片上传或文件解析属于敏感数据处理。即便 operation 风险等级不是高风险写入,也必须先取得用户对“文件内容可能进入大模型/外部解析服务”的明确确认;不能把用户仅提供文件路径或文件名视为同意解析或上传。
|
|
89
155
|
|
|
90
|
-
8.
|
|
156
|
+
8. 在 XiaoE 宿主环境中,CLI 可以按顺序从宿主 `xiaoeUserData/tokens.py`、内置原生实现读取的 XiaoE 客户端本地会话(`XiaoE/Robots/*/user_settings.json` 或 `XIAOE_USER_TOKEN`)、宿主注入的 `XIAOE_*` 环境变量读取支持统一登录的凭证;未显式传域名时优先使用凭证结果或资料包默认域名,再使用 XiaoE 环境支持域名,再其次才使用当前 profile,最后兜底 CLI 资料包内置默认域名(地址由资料包提供,不在文档中写死)。业务命令会在未显式指定 `--auth` / `--profile` 时自动优先尝试 XiaoE 统一登录;Agent 也可以显式调用 `weaver-work-cli auth xiaoe`。不要要求用户提供、展示或手动设置这些凭证。XiaoE 统一登录失败、当前域名不在支持范围内或用户切换访问域名时,`auth xiaoe` 必须先反馈原因,再自动降级到浏览器 OAuth,降级等待必须遵守「浏览器 OAuth 降级防挂起」规则。
|
|
157
|
+
|
|
158
|
+
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
## 什么时候读取
|
|
4
4
|
|
|
5
5
|
用户需要登录、切换 profile、诊断 E10 连接、处理登录失效,或任务涉及 `base-url`、auth 文件、Keychain、`WEAVER_*` 环境变量时读取本文件。
|
|
6
|
-
|
|
6
|
+
XiaoE 宿主环境涉及 `XIAOE_*` 环境变量或 `xiaoeUserData/tokens.py` 时也读取本文件。
|
|
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
|
-
## 未登录 /
|
|
23
|
+
## 未登录 / 登录失效:XiaoE 先自动尝试,其它场景先问域名
|
|
24
24
|
|
|
25
25
|
业务命令依赖 E10 登录态。出现以下任一情况即判定为未登录或登录失效:
|
|
26
26
|
|
|
@@ -38,11 +38,11 @@ weaver-work-cli auth whoami
|
|
|
38
38
|
|
|
39
39
|
**正确流程(按序执行,缺一不可):**
|
|
40
40
|
|
|
41
|
-
0.
|
|
41
|
+
0. **XiaoE 宿主环境优先自动尝试统一登录**:如果当前宿主/环境提供 `XIAOE_*` 变量,或存在宿主 `xiaoeUserData/tokens.py`,先运行:
|
|
42
42
|
```text
|
|
43
43
|
weaver-work-cli auth xiaoe
|
|
44
44
|
```
|
|
45
|
-
CLI 会按“显式 `--base-url` /
|
|
45
|
+
CLI 会按“显式 `--base-url` / 宿主 `tokens.py` 脚本结果或 CLI 资料包内置默认域名(地址由资料包提供,不在文档中写死) / XiaoE 环境变量中的首个支持域名 / 当前 profile `config.baseUrl`”解析登录域名。业务命令在未显式指定 `--auth` / `--profile` 时,也会自动优先尝试这一步。若该域名在 XiaoE 支持范围内且凭证有效,会直接保存登录态,`agentType` 固定为 `XiaoE`,然后继续原业务操作。若当前域名不在 XiaoE 支持范围内、客户切换了访问域名,或 XiaoE 凭证校验失败,业务命令必须停止并反馈错误,不得自动沿用旧 profile;`auth xiaoe` 必须先反馈未拿到登录信息的原因,然后再降级打开浏览器 OAuth,降级等待必须遵守下方「浏览器 OAuth 降级防挂起」。Agent 不得因为本地存在旧 profile 就跳过这一步,也不得要求用户提供或展示 `XIAOE_*` / ETEAMSID。
|
|
46
46
|
|
|
47
47
|
1. **先调用宿主提供的提问 / 弹框能力询问用户**,让用户二选一:
|
|
48
48
|
- 输入本次要登录的 E10 登录域名(base URL),形如 `https://<企业域名>`;或
|
|
@@ -61,6 +61,20 @@ weaver-work-cli auth whoami
|
|
|
61
61
|
|
|
62
62
|
登录域名一律以用户实际提供为准;拿不到域名前,不要执行任何依赖登录态的业务命令。
|
|
63
63
|
|
|
64
|
+
## 浏览器 OAuth 降级防挂起
|
|
65
|
+
|
|
66
|
+
`auth xiaoe` / `auth login` 的浏览器 OAuth 降级会在本机 `127.0.0.1:19800` 监听回调并无限等待,命令自身不会超时退出。在 Agent 沙箱/托管环境(没有本地浏览器,或浏览器与 CLI 不在同一台机器/容器)中,外部浏览器无法回调容器内 `127.0.0.1:19800`,该路径结构性不可达,命令会一直挂起直到被外部超时掐断(退出码 124),用户感知为「卡住 / 跑很久」。执行规则:
|
|
67
|
+
|
|
68
|
+
1. 以后台方式运行 `auth xiaoe`,并限时观察(上限 300 秒 / 5 分钟)。一旦输出出现 `Waiting for E10 authorization callback`,说明统一登录已失败、进入浏览器 OAuth 等待,立即终止该进程,不得继续等待。
|
|
69
|
+
2. 终止后先向用户反馈 XiaoE 统一登录失败的实际原因,再按环境处理:
|
|
70
|
+
- **沙箱/托管环境**:不要替用户执行浏览器登录等待,把完整命令交给用户在其本地终端执行:
|
|
71
|
+
```text
|
|
72
|
+
weaver-work-cli auth login --base-url "<用户确认的登录域名>" --agent_type "<当前智能体名称>"
|
|
73
|
+
```
|
|
74
|
+
- **本地环境(CLI 与浏览器同机)**:可继续执行浏览器登录,但仍须限时等待,超时未完成即终止并反馈。
|
|
75
|
+
3. 用户无法本地执行浏览器登录时,经用户明确同意后改用保底方式 `weaver-work-cli auth set --eteamsid "<ETEAMSID>" --base-url "<用户确认的登录域名>"`,由用户从已登录浏览器主动提供 ETEAMSID;Agent 不得索取、展示或转述该值。
|
|
76
|
+
4. 严禁不加限制地前台运行 `auth xiaoe` / `auth login` 并等待 OAuth 回调。
|
|
77
|
+
|
|
64
78
|
## 登录
|
|
65
79
|
|
|
66
80
|
先取得用户确认的登录域名(见上节流程),再让用户通过浏览器 OAuth 登录:
|
|
@@ -69,15 +83,15 @@ weaver-work-cli auth whoami
|
|
|
69
83
|
weaver-work-cli auth login --base-url "<用户确认的登录域名>" --agent_type "<当前智能体名称>"
|
|
70
84
|
```
|
|
71
85
|
|
|
72
|
-
|
|
86
|
+
在 XiaoE 宿主环境中,`auth xiaoe` 会先读取宿主 `xiaoeUserData/tokens.py`,把 stdout JSON 中的 `eteamId` / `eteamsId` 作为 ETEAMSID 写入登录态;脚本不可用(不存在、执行失败,或所用 Python 缺少 `requests` 等依赖)时,CLI 会改用内置原生实现读取 XiaoE 客户端本地会话(`XiaoE/Robots/*/user_settings.json` 或 `XIAOE_USER_TOKEN`)换取 `eteamId`,该链路不需要本机 Python;仍未识别到可用凭证时,才读取宿主注入的 `XIAOE_*` 环境变量,查找“当前登录域名 -> ETEAMSID”的统一登录映射,并且保存的 `agentType` 固定为 `XiaoE`。如果命令没有显式传入域名,CLI 会优先使用凭证结果中的域名或 CLI 资料包内置默认域名(地址由资料包提供,不在文档中写死);没有脚本凭证但环境映射可用时,使用 XiaoE 环境变量里的首个支持域名;再没有时才使用当前 profile 配置。XiaoE 凭证校验失败、当前域名不在支持范围内,或用户切换了访问域名时,`auth xiaoe` 必须先反馈未拿到登录信息的原因,然后再降级打开浏览器 OAuth,降级等待必须遵守上方「浏览器 OAuth 降级防挂起」。
|
|
73
87
|
|
|
74
|
-
|
|
88
|
+
需要显式表达“XiaoE 优先”的场景也可以使用等价入口:
|
|
75
89
|
|
|
76
90
|
```text
|
|
77
91
|
weaver-work-cli auth xiaoe
|
|
78
92
|
```
|
|
79
93
|
|
|
80
|
-
|
|
94
|
+
该命令先尝试 XiaoE 统一登录;统一登录不可用时,先反馈原因,再降级到浏览器 OAuth(降级等待必须遵守「浏览器 OAuth 降级防挂起」,禁止前台无限等待回调)。用户明确切换域名时再追加 `--base-url "<用户确认的登录域名>"`。
|
|
81
95
|
|
|
82
96
|
如果端口冲突:
|
|
83
97
|
|
|
@@ -104,7 +118,25 @@ weaver-work-cli --profile PROFILE_NAME auth status --no-check
|
|
|
104
118
|
|
|
105
119
|
通过 `weaver-work-cli run` 执行外部命令时,CLI 会按当前 profile 注入 `WEAVER_BASE_URL`、`WEAVER_ETEAMSID`、`WEAVER_COOKIE`、`WEAVER_USER_AGENT` 和 `WEAVER_AGENT_TYPE`。这些值只给子进程使用,不应在回复或日志中明文展示。
|
|
106
120
|
|
|
107
|
-
|
|
121
|
+
XiaoE 的 `XIAOE_*` 环境变量只由宿主/客户端注入给 CLI 消费;Agent 不要打印、转述、要求用户手动填写或将其导出到当前 shell。CLI 当前支持 JSON 域名映射和单域名变量两类宿主格式,但这些格式属于宿主集成细节,不作为用户操作步骤。
|
|
122
|
+
|
|
123
|
+
## XiaoE Token 获取
|
|
124
|
+
|
|
125
|
+
`auth xiaoe` 或业务命令需要 XiaoE 统一登录时,由 CLI 优先读取本流程中的宿主脚本;未识别到可用脚本凭证时,才考虑 `XIAOE_*` 映射。只有在业务流程明确需要 XiaoE Token,且 CLI 没有更专用的认证/业务命令可用时,Agent 才直接执行本流程。Token 获取脚本属于宿主能力,Agent 不要要求用户粘贴 Token,也不要在回复中展示 stdout 里的 Token、Cookie、ETEAMSID 或业务凭证。
|
|
126
|
+
|
|
127
|
+
脚本固定从 XiaoE 用户数据目录读取。执行后读取 stdout 作为结果;stdout 期望是 JSON 对象,典型结果包含 `eteamId`。若脚本不存在、Python 依赖缺失、stdout 不是合法 JSON、接口失败或进程非 0 退出,停止当前认证流程,并把实际错误反馈给用户,不要猜测或伪造 Token。
|
|
128
|
+
|
|
129
|
+
Windows PowerShell:
|
|
130
|
+
|
|
131
|
+
```powershell
|
|
132
|
+
python -c "import os,runpy;runpy.run_path(os.path.join(os.environ['LOCALAPPDATA'],'xiaoeUserData','tokens.py'),run_name='__main__')"
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
macOS/Linux(bash/zsh):
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
python3 -c "import os,runpy;runpy.run_path(os.path.join(os.path.expanduser('~'),'Library','Application Support','xiaoeUserData','tokens.py'),run_name='__main__')"
|
|
139
|
+
```
|
|
108
140
|
|
|
109
141
|
如必须导出到当前 shell,按环境选择:
|
|
110
142
|
|
|
@@ -125,3 +157,4 @@ eval "$(weaver-work-cli auth export-weaver-env --shell posix)"
|
|
|
125
157
|
## 安全边界
|
|
126
158
|
|
|
127
159
|
Agent 不要要求用户贴 Cookie、ETEAMSID、业务 Token、app key 或 app secret,也不要直接读取用户机器上的 auth、config 或 Keychain 数据。业务 Skill 只负责调用 CLI;登录态读取、Cookie 拼接、业务 Token 获取和 HTTP header 注入都由 `weaver-work-cli` 内部完成。
|
|
160
|
+
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# 非交互环境处置(容器 / 沙箱 / CI / 无 GUI)
|
|
2
|
+
|
|
3
|
+
## 什么时候读取
|
|
4
|
+
|
|
5
|
+
满足以下任一条件时,在执行登录或认证相关命令**之前**读取本文件:
|
|
6
|
+
|
|
7
|
+
- 运行在容器、沙箱、CI、远程执行器或任何无 GUI / 无本地浏览器的环境
|
|
8
|
+
- 无法向用户弹出输入框、选择框或确认框(无人值守)
|
|
9
|
+
- `auth xiaoe` / `auth login` 输出中出现浏览器 OAuth 相关字样(见下方「降级信号」)
|
|
10
|
+
- 登录类命令执行时间超过 180 秒仍未结束(300 秒为硬上限,见 SKILL.md「超时与重试预算」)
|
|
11
|
+
|
|
12
|
+
## 环境判定:可交互 vs 非交互
|
|
13
|
+
|
|
14
|
+
| 判定项 | 可交互环境 | 非交互环境(按非交互处理) |
|
|
15
|
+
| --- | --- | --- |
|
|
16
|
+
| 浏览器 | CLI 与浏览器在同一台机器,可自动或手动打开授权页 | 无浏览器,或浏览器在宿主机而 CLI 在容器/沙箱内 |
|
|
17
|
+
| OAuth 回调 | 外部浏览器可访问 `127.0.0.1:19800` | 外部浏览器无法回调容器内 `127.0.0.1:19800`(结构性不可达) |
|
|
18
|
+
| 用户输入 | 可向用户提问并等待回答 | 无人值守,提问不会有人回答 |
|
|
19
|
+
| 安装/写入权限 | 可写、可提权 | 只读 HOME、只读配置目录、无 sudo |
|
|
20
|
+
|
|
21
|
+
判定不了时一律按**非交互**处理:非交互流程在可交互环境下同样安全,反之则会挂起或卡死。
|
|
22
|
+
|
|
23
|
+
## 降级信号判读
|
|
24
|
+
|
|
25
|
+
命令输出中一旦出现下列任一信号,即表示**统一登录未命中、已降级到浏览器 OAuth**,继续等待不会成功:
|
|
26
|
+
|
|
27
|
+
| 降级信号 | 含义 |
|
|
28
|
+
| --- | --- |
|
|
29
|
+
| `Open browser login: <url>` | 已生成浏览器授权 URL,准备跳转 OAuth |
|
|
30
|
+
| `Waiting for E10 authorization callback...` | 已在本地 `127.0.0.1:<port>` 监听回调并等待 |
|
|
31
|
+
| `Local callback server: http://127.0.0.1:19800/callback` | 回调监听地址;非交互环境下不可达 |
|
|
32
|
+
| `Could not open browser automatically. Copy the login URL manually.` | 无法自动打开浏览器,且无人可复制 URL 完成授权 |
|
|
33
|
+
|
|
34
|
+
出现任一信号时的处置顺序(缺一不可):
|
|
35
|
+
|
|
36
|
+
1. **立即终止**该命令(不要等待其自然结束;命令自身不会超时退出)。
|
|
37
|
+
2. 向用户反馈统一登录未命中的**实际原因**(凭证未取到 / 域名不在支持范围 / 当前域名与凭证不匹配 / CLI 侧能力缺口)。
|
|
38
|
+
3. 非交互环境:不要替用户等待浏览器授权,把完整命令交给用户在其**本地终端**执行:
|
|
39
|
+
```text
|
|
40
|
+
weaver-work-cli auth login --base-url "<用户确认的登录域名>" --agent_type "<当前智能体名称>"
|
|
41
|
+
```
|
|
42
|
+
4. 用户无法本地执行时,经用户明确同意后改用保底方式,由用户从已登录浏览器主动提供 ETEAMSID:
|
|
43
|
+
```text
|
|
44
|
+
weaver-work-cli auth set --eteamsid "<ETEAMSID>" --base-url "<用户确认的登录域名>" --agent_type "<当前智能体名称>"
|
|
45
|
+
```
|
|
46
|
+
Agent 不得索取、展示、转述或记录该值。
|
|
47
|
+
|
|
48
|
+
## 显式传域名后仍降级
|
|
49
|
+
|
|
50
|
+
宿主已注入域名、域名连通性正常(HTTP 200),但显式传入该域名后仍然降级:
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
weaver-work-cli auth xiaoe --base-url "<宿主注入域名>" --agent_type "<当前智能体名称>"
|
|
54
|
+
# Open browser login: ... / Waiting for E10 authorization callback...
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
判定结论与处置:
|
|
58
|
+
|
|
59
|
+
- 域名与网络**不是**失败原因,不要再反复更换域名重试。
|
|
60
|
+
- 这属于当前 CLI 版本消费统一登录凭证的能力缺口,技能侧无法修复;按上述「降级信号」流程终止并反馈,同时**记录 CLI 版本**(`weaver-work-cli --version`)便于 CLI 侧定位。
|
|
61
|
+
- 不要因为一次降级就断言 CLI 不可用;只读诊断命令(`auth status --no-check`、`doctor --e10`)仍可作为环境检查手段。
|
|
62
|
+
|
|
63
|
+
## 可写性相关说明
|
|
64
|
+
|
|
65
|
+
认证目录不可写(写入认证 profile 报 `EACCES: permission denied`)属于**环境侧**问题:凭证通常已在 1~2 秒内取到,失败发生在随后的落盘动作。技能侧只能识别与上报,无法在只读 HOME 中自行修复(禁止为绕过权限而改写其他目录或使用 sudo)。
|
|
66
|
+
|
|
67
|
+
出现该错误时:立即停止登录流程,原样反馈 `EACCES: permission denied` 与失败文件路径所在动作(不打印路径细节与凭证),并说明需由环境侧将认证目录改为可写或支持用环境变量指定配置目录。不建议反复重试登录命令。
|
|
68
|
+
|
|
69
|
+
## 收尾流程(每次登录尝试后必做)
|
|
70
|
+
|
|
71
|
+
1. 记录本次结果:成功 / 降级 / 权限失败 / 超时,以及耗时与退出码。
|
|
72
|
+
2. 非成功结果一律**不自动重试**登录类命令(见 SKILL.md「超时与重试预算」)。
|
|
73
|
+
3. 用只读命令确认真实登录态,再决定是否继续业务操作:
|
|
74
|
+
```text
|
|
75
|
+
weaver-work-cli auth status --no-check
|
|
76
|
+
weaver-work-cli doctor --e10
|
|
77
|
+
```
|
|
78
|
+
4. 登录未打通前,不执行任何依赖登录态的业务 operation。
|