weaver-work-cli 0.1.8 → 0.1.21
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 +25 -17
- package/dist/cmd/action.js +76 -0
- package/dist/cmd/index.js +2 -0
- package/dist/cmd/refs/index.js +103 -0
- package/dist/cmd/register.js +31 -0
- package/dist/cmd/root.js +1 -0
- package/dist/cmd/setup/index.js +25 -5
- package/dist/cmd/skills/index.js +37 -5
- package/dist/core/connector.js +54 -0
- package/dist/core/context.js +2 -1
- package/dist/core/input.js +48 -0
- package/dist/core/output.js +298 -3
- package/dist/core/refs.js +435 -0
- package/dist/core/state.js +26 -0
- package/dist/internal/e10/auth/commands.js +34 -19
- package/dist/internal/e10/auth/session.js +74 -2
- package/dist/internal/e10/auth/xiaoe.js +359 -94
- package/dist/internal/e10/context.js +18 -6
- package/dist/internal/e10/request-runtime.js +8 -1
- package/dist/internal/skills/install.js +148 -28
- package/dist/internal/skills/reader.js +12 -9
- package/dist/shortcuts/blog/continuation.js +74 -0
- package/dist/shortcuts/blog/errors.js +60 -0
- package/dist/shortcuts/blog/host.js +175 -0
- package/dist/shortcuts/blog/index.js +324 -0
- package/dist/shortcuts/blog/manifest.js +415 -0
- package/dist/shortcuts/blog/operations/comment.js +125 -0
- package/dist/shortcuts/blog/operations/comments.js +31 -0
- package/dist/shortcuts/blog/operations/edit.js +131 -0
- package/dist/shortcuts/blog/operations/export.js +46 -0
- package/dist/shortcuts/blog/operations/like.js +80 -0
- package/dist/shortcuts/blog/operations/publish.js +157 -0
- package/dist/shortcuts/blog/operations/query-user.js +58 -0
- package/dist/shortcuts/blog/operations/query.js +96 -0
- package/dist/shortcuts/blog/operations/registry.js +54 -0
- package/dist/shortcuts/blog/operations/remind.js +176 -0
- package/dist/shortcuts/blog/operations/shared.js +330 -0
- package/dist/shortcuts/blog/operations/types.js +16 -0
- package/dist/shortcuts/blog/operations.js +9 -0
- package/dist/shortcuts/caizhilian/continuation.js +70 -0
- package/dist/shortcuts/caizhilian/errors.js +53 -0
- package/dist/shortcuts/caizhilian/host.js +190 -0
- package/dist/shortcuts/caizhilian/index.js +186 -0
- package/dist/shortcuts/caizhilian/manifest.js +42 -0
- package/dist/shortcuts/caizhilian/operations/api.js +801 -0
- package/dist/shortcuts/caizhilian/operations/confirm.js +75 -0
- package/dist/shortcuts/caizhilian/operations/files.js +306 -0
- package/dist/shortcuts/caizhilian/operations/form.js +170 -0
- package/dist/shortcuts/caizhilian/operations/handlers/collab.js +611 -0
- package/dist/shortcuts/caizhilian/operations/handlers/document.js +890 -0
- package/dist/shortcuts/caizhilian/operations/handlers/file-collection.js +1227 -0
- package/dist/shortcuts/caizhilian/operations/handlers/file-upload.js +192 -0
- package/dist/shortcuts/caizhilian/operations/handlers/fileops.js +570 -0
- package/dist/shortcuts/caizhilian/operations/handlers/folder.js +1024 -0
- package/dist/shortcuts/caizhilian/operations/handlers/search.js +318 -0
- package/dist/shortcuts/caizhilian/operations/handlers/setting-attach.js +294 -0
- package/dist/shortcuts/caizhilian/operations/handlers/setting-backup.js +423 -0
- package/dist/shortcuts/caizhilian/operations/handlers/setting-encrypt.js +238 -0
- package/dist/shortcuts/caizhilian/operations/handlers/setting-storage.js +364 -0
- package/dist/shortcuts/caizhilian/operations/handlers/system.js +106 -0
- package/dist/shortcuts/caizhilian/operations/registry.js +151 -0
- package/dist/shortcuts/caizhilian/operations/shared.js +408 -0
- package/dist/shortcuts/caizhilian/operations/specs.js +698 -0
- package/dist/shortcuts/caizhilian/operations/types.js +57 -0
- package/dist/shortcuts/caizhilian/operations.js +21 -0
- package/dist/shortcuts/contract/continuation.js +70 -0
- package/dist/shortcuts/contract/errors.js +62 -0
- package/dist/shortcuts/contract/host.js +205 -0
- package/dist/shortcuts/contract/index.js +318 -0
- package/dist/shortcuts/contract/manifest.js +596 -0
- package/dist/shortcuts/contract/operations/clause-reference.js +78 -0
- package/dist/shortcuts/contract/operations/form-info.js +371 -0
- package/dist/shortcuts/contract/operations/read.js +118 -0
- package/dist/shortcuts/contract/operations/registry.js +43 -0
- package/dist/shortcuts/contract/operations/request.js +300 -0
- package/dist/shortcuts/contract/operations/shared.js +133 -0
- package/dist/shortcuts/contract/operations/subject.js +157 -0
- package/dist/shortcuts/contract/operations/template.js +81 -0
- package/dist/shortcuts/contract/operations/types.js +7 -0
- package/dist/shortcuts/contract/operations/workflow.js +52 -0
- package/dist/shortcuts/contract/operations/write.js +131 -0
- package/dist/shortcuts/contract/operations.js +8 -0
- package/dist/shortcuts/hrm/index.js +83 -2
- package/dist/shortcuts/hrm/manifest.js +16 -9
- package/dist/shortcuts/hrm/operations/employee.js +160 -30
- package/dist/shortcuts/hrm/operations/org.js +17 -3
- package/dist/shortcuts/hrm/operations/position.js +18 -2
- package/dist/shortcuts/hrm/operations/registry.js +2 -0
- package/dist/shortcuts/hrm/operations/resolve.js +449 -0
- package/dist/shortcuts/index.js +5 -1
- package/dist/shortcuts/invoice/index.js +74 -36
- package/dist/shortcuts/invoice/manifest.js +674 -4
- package/dist/shortcuts/invoice/markdown.js +172 -0
- package/dist/shortcuts/invoice/operations/add.js +3 -3
- package/dist/shortcuts/invoice/operations/delete.js +2 -2
- package/dist/shortcuts/invoice/operations/get.js +10 -2
- package/dist/shortcuts/invoice/operations/import.js +2 -2
- package/dist/shortcuts/invoice/operations/registry.js +8 -1
- package/dist/shortcuts/invoice/operations/reim-auto.js +719 -0
- package/dist/shortcuts/invoice/operations/reim.js +85 -2
- package/dist/shortcuts/invoice/operations/shared.js +75 -8
- package/dist/shortcuts/invoice/operations/update.js +2 -2
- package/dist/shortcuts/invoice/operations/upload-and-validate.js +93 -0
- package/dist/shortcuts/invoice/operations/validate-preview.js +2 -1
- package/dist/shortcuts/invoice/projection.js +328 -0
- package/dist/shortcuts/meeting/host.js +18 -1
- package/dist/shortcuts/meeting/manifest.js +30 -18
- package/dist/shortcuts/meeting/operations/eb/catalog.js +390 -0
- package/dist/shortcuts/meeting/operations/eb/conflict.js +389 -0
- package/dist/shortcuts/meeting/operations/eb/factory.js +389 -0
- package/dist/shortcuts/meeting/operations/eb/index.js +22 -0
- package/dist/shortcuts/meeting/operations/env.js +8 -1
- package/dist/shortcuts/meeting/operations/registry.js +2 -0
- package/dist/shortcuts/meeting/operations/signs.js +216 -2
- package/dist/shortcuts/workflow/endpoints.js +2 -1
- package/dist/shortcuts/workflow/errors.js +8 -2
- package/dist/shortcuts/workflow/host.js +11 -4
- package/dist/shortcuts/workflow/operations/form.js +1016 -590
- package/dist/shortcuts/workflow/operations/read.js +913 -231
- package/dist/shortcuts/workflow/operations/shared.js +21 -0
- package/dist/shortcuts/workflow/operations/write.js +750 -52
- package/dist/shortcuts/workflow/operations.js +36 -10
- package/docs/_catalog.md +6 -0
- package/docs/agent-invoice.md +5 -1
- package/docs/agent-io-channel-design.md +468 -0
- package/docs/agent-skill-install.md +9 -4
- package/docs/blog.md +123 -0
- package/docs/caizhilian.md +304 -0
- package/docs/contract.md +91 -0
- package/docs/e10-auth.md +4 -2
- package/docs/hrm.md +53 -11
- package/docs/invoice.md +5 -1
- package/docs/meeting.md +1 -1
- package/docs/operation-manual.md +15 -3
- package/docs/skill-review-2026-09-19.md +2 -2
- package/package.json +1 -1
- package/scripts/package-skill.mjs +32 -20
- package/scripts/xiaoe_env.py +118 -0
- package/skill-template/business-info.json +113 -14
- package/skill-template/domains/blog.md +24 -0
- package/skill-template/domains/caizhilian.md +22 -0
- package/skill-template/domains/hrm.md +2 -1
- package/skill-template/domains/jinchengda.md +23 -0
- package/skill-template/domains/meeting.md +1 -1
- package/skill-template/domains/workflow.md +1 -1
- package/skill-template/skill-template.md +1 -1
- package/skills/weaver-e10-blog/SKILL.md +111 -0
- package/skills/weaver-e10-blog/references/blog-comment.md +51 -0
- package/skills/weaver-e10-blog/references/blog-comments.md +39 -0
- package/skills/weaver-e10-blog/references/blog-default-permission.md +38 -0
- package/skills/weaver-e10-blog/references/blog-disabled-capabilities.md +11 -0
- package/skills/weaver-e10-blog/references/blog-edit.md +51 -0
- package/skills/weaver-e10-blog/references/blog-export.md +42 -0
- package/skills/weaver-e10-blog/references/blog-like.md +50 -0
- package/skills/weaver-e10-blog/references/blog-publish.md +52 -0
- package/skills/weaver-e10-blog/references/blog-query-user.md +45 -0
- package/skills/weaver-e10-blog/references/blog-query.md +49 -0
- package/skills/weaver-e10-blog/references/blog-remind.md +51 -0
- package/skills/weaver-e10-blog/references/blog-resolve-users.md +38 -0
- package/skills/weaver-e10-blog/references/source-manifest.json +1540 -0
- package/skills/weaver-e10-caizhilian/SKILL.md +217 -0
- package/skills/weaver-e10-caizhilian/references/agent-entry.md +106 -0
- package/skills/weaver-e10-caizhilian/references/collaboration.md +112 -0
- package/skills/weaver-e10-caizhilian/references/document.md +111 -0
- package/skills/weaver-e10-caizhilian/references/file-collection.md +173 -0
- package/skills/weaver-e10-caizhilian/references/file-upload.md +309 -0
- package/skills/weaver-e10-caizhilian/references/files.md +120 -0
- package/skills/weaver-e10-caizhilian/references/folder.md +122 -0
- package/skills/weaver-e10-caizhilian/references/org-browser.md +104 -0
- package/skills/weaver-e10-caizhilian/references/setting-attach.md +440 -0
- package/skills/weaver-e10-caizhilian/references/setting-backup.md +372 -0
- package/skills/weaver-e10-caizhilian/references/setting-encrypt.md +399 -0
- package/skills/weaver-e10-caizhilian/references/setting-storage.md +603 -0
- package/skills/weaver-e10-caizhilian/references/source-manifest.json +5694 -0
- package/skills/weaver-e10-caizhilian/references/withheld.md +93 -0
- package/skills/weaver-e10-caizhilian/references/write-protocol.md +120 -0
- package/skills/weaver-e10-calendar/SKILL.md +4 -3
- package/skills/weaver-e10-ebuilder-form/SKILL.md +4 -9
- package/skills/weaver-e10-ebuilder-form/references/context-routing.md +0 -9
- package/skills/weaver-e10-ebuilder-form/references/custom-api.md +1 -5
- package/skills/weaver-e10-ebuilder-form/references/fields-browser.md +1 -5
- package/skills/weaver-e10-ebuilder-form/references/list-nlist.md +1 -5
- package/skills/weaver-e10-ebuilder-form/references/openapi-read.md +1 -5
- package/skills/weaver-e10-ebuilder-form/references/openapi-write.md +1 -5
- package/skills/weaver-e10-esb/SKILL.md +2 -2
- package/skills/weaver-e10-esb/references/source-manifest.json +9 -9
- package/skills/weaver-e10-hrm/SKILL.md +104 -9
- package/skills/weaver-e10-hrm/references/employee.md +89 -15
- package/skills/weaver-e10-hrm/references/org.md +114 -5
- package/skills/weaver-e10-hrm/references/position.md +14 -7
- package/skills/weaver-e10-hrm/references/source-manifest.json +1 -1
- package/skills/weaver-e10-jinchengda/SKILL.md +167 -0
- package/skills/weaver-e10-jinchengda/references/contract-agent-entry.md +82 -0
- package/skills/weaver-e10-jinchengda/references/contract-clause-recommender.md +69 -0
- package/skills/weaver-e10-jinchengda/references/contract-clause-reference-save.md +78 -0
- package/skills/weaver-e10-jinchengda/references/contract-disabled-capabilities.md +27 -0
- package/skills/weaver-e10-jinchengda/references/contract-request-status.md +71 -0
- package/skills/weaver-e10-jinchengda/references/contract-request-write.md +94 -0
- package/skills/weaver-e10-jinchengda/references/contract-signing-subjects.md +89 -0
- package/skills/weaver-e10-jinchengda/references/contract-subject-create.md +77 -0
- package/skills/weaver-e10-jinchengda/references/contract-template-selector.md +66 -0
- package/skills/weaver-e10-jinchengda/references/contract-workflow-discovery.md +94 -0
- package/skills/weaver-e10-jinchengda/references/source-manifest.json +259 -0
- package/skills/weaver-e10-jiuchuanhui/SKILL.md +5 -11
- package/skills/weaver-e10-jucailin/SKILL.md +4 -3
- package/skills/weaver-e10-mail/SKILL.md +4 -11
- package/skills/weaver-e10-meeting/SKILL.md +66 -32
- package/skills/weaver-e10-meeting/references/meeting-change.md +5 -2
- package/skills/weaver-e10-meeting/references/meeting-create.md +2 -1
- package/skills/weaver-e10-meeting/references/meeting-eb.md +114 -0
- package/skills/weaver-e10-meeting/references/meeting-lifecycle.md +9 -8
- package/skills/weaver-e10-meeting/references/meeting-receipts-signs.md +35 -7
- package/skills/weaver-e10-meeting/references/meeting-update.md +1 -1
- package/skills/weaver-e10-okr/SKILL.md +6 -11
- package/skills/weaver-e10-okr/references/source-manifest.json +3 -3
- package/skills/weaver-e10-plan/SKILL.md +3 -3
- package/skills/weaver-e10-plan/references/plan-collect-and-compose.md +1 -1
- package/skills/weaver-e10-plan/references/plan-overview-and-routing.md +1 -1
- package/skills/weaver-e10-plan/references/source-manifest.json +13 -13
- package/skills/weaver-e10-qiyecheng/SKILL.md +4 -10
- package/skills/weaver-e10-qiyecheng/references/source-manifest.json +9 -9
- package/skills/weaver-e10-shared/SKILL.md +42 -34
- package/skills/weaver-e10-shared/references/e10-auth-and-session.md +16 -43
- package/skills/weaver-e10-shared/references/json-output-contract.md +20 -11
- package/skills/weaver-e10-shared/references/non-interactive-environment.md +21 -14
- package/skills/weaver-e10-shijingran/SKILL.md +2 -1
- package/skills/weaver-e10-shijingran/references/source-manifest.json +9 -9
- package/skills/weaver-e10-skill-maker/SKILL.md +4 -10
- package/skills/weaver-e10-skill-maker/references/business-skill-generation.md +5 -3
- package/skills/weaver-e10-skill-maker/references/module-cli-generation.md +12 -27
- package/skills/weaver-e10-skill-maker/references/module-gap-audit-and-repair.md +17 -5
- package/skills/weaver-e10-skill-maker/references/source-update-detection.md +4 -27
- package/skills/weaver-e10-skill-maker/references/weaver-skill-style.md +1 -1
- package/skills/weaver-e10-wenshuding/SKILL.md +5 -16
- package/skills/weaver-e10-wenshuding/references/source-manifest.json +7 -7
- package/skills/weaver-e10-workflow/SKILL.md +41 -46
- package/skills/weaver-e10-workflow/references/source-manifest.json +39 -75
- package/skills/weaver-e10-workflow/references/workflow-batch.md +90 -29
- package/skills/weaver-e10-workflow/references/workflow-create.md +83 -109
- package/skills/weaver-e10-workflow/references/workflow-memory.md +19 -9
- package/skills/weaver-e10-workflow/references/workflow-operate.md +2 -2
- package/skills/weaver-e10-workflow/references/workflow-query.md +40 -27
- package/skills/weaver-e10-workflow/references/workflow-share.md +18 -2
- package/skills/weaver-e10-workflow/references/workflow-view.md +3 -4
- package/skills/weaver-e10-yepiaotong/SKILL.md +74 -39
- package/skills/weaver-e10-yepiaotong/references/invoice-detail.md +22 -1
- package/skills/weaver-e10-yepiaotong/references/invoice-enterprise-list.md +3 -1
- package/skills/weaver-e10-yepiaotong/references/invoice-output-view.md +135 -0
- package/skills/weaver-e10-yepiaotong/references/invoice-personal-list.md +15 -3
- package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +1 -1
- package/skills/weaver-e10-yepiaotong/references/invoice-summarize.py +217 -0
- package/skills/weaver-e10-yepiaotong/references/invoice-upload-and-validate.md +88 -0
- package/skills/weaver-e10-yepiaotong/references/invoice-validation-preview.md +7 -2
- package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +89 -9
- package/skills/weaver-e10-yepiaotong/references/reim-examples.md +1 -0
- package/skills/weaver-e10-yepiaotong/references/reim-expense-subject-rules.md +70 -49
- package/skills/weaver-e10-yepiaotong/references/reim-fast-path.md +119 -0
- package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +55 -36
- package/skills/weaver-e10-yepiaotong/references/reim-matching-rules.md +4 -0
- package/skills/weaver-e10-yepiaotong/references/reim-phone-subsidy-rules.md +149 -0
- package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +125 -5
- package/skills/weaver-e10-yepiaotong/references/source-manifest.json +430 -63
- package/skills/weaver-e10-yimiaoban/SKILL.md +4 -12
- package/skills/weaver-e10-yimiaoban/references/source-manifest.json +3 -3
- package/skills/weaver-e10-ziguanjia/SKILL.md +2 -1
- package/skills/weaver-e10-ziguanjia/references/ziguanjia-agent-entry.md +3 -3
- package/tools/weaver-skill-detector-1.0.13/SKILL.md +9 -9
- package/tools/weaver-skill-detector-1.0.13/references/checklist.md +3 -3
- package/tools/weaver-skill-detector-1.0.13/scripts/__pycache__/validate_skill.cpython-313.pyc +0 -0
- package/tools/weaver-skill-detector-1.0.13/scripts/validate_skill.py +98 -91
- package/scripts/sync-connector-skills.mjs +0 -172
|
@@ -5,17 +5,19 @@ display_name_en: Weaver E10 Workflow Assistant
|
|
|
5
5
|
description: "泛微 E10 流程智能助手:查询待办/已办/我发起/全部流程,查看详情与摘要,处理、批量处理、共享和发起/修改流程。"
|
|
6
6
|
description_zh: "泛微 E10/OA 流程智能助手。支持按流程标题/编号/发起时间/完成时间/操作时间/紧急程度/发起人/工作流/表单字段等条件查询待办、已办、我发起和全部流程,支持查看详情、生成摘要、打开流程、同意/提交/批准、退回、转办/委托/转发/抄送/加审、批量提交/置已读/催办/共享/转发/退回,以及发起创建流程和修改已存在流程表单。"
|
|
7
7
|
description_en: "Weaver E10/OA workflow assistant skill. Query pending, done, initiated and all workflows by title/number/time/urgency/initiator/workflow/form fields; view details, generate summaries, open flows, approve/submit, return, transfer/delegate/forward/cc/add review, run batch submit, mark-read, supervise, share, forward and reject operations, and initiate or edit workflow forms."
|
|
8
|
-
version: 1.0.
|
|
8
|
+
version: 1.0.3
|
|
9
9
|
author: 泛微网络科技股份有限公司
|
|
10
10
|
agent_created: true
|
|
11
11
|
requires:
|
|
12
12
|
bins: ["weaver-work-cli"]
|
|
13
13
|
dependencies:
|
|
14
|
-
- weaver-e10-
|
|
14
|
+
- weaver-e10-shared
|
|
15
15
|
cliHelp: "weaver-work-cli workflow --help"
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
-
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md),其中包含安装、E10 认证、JSON
|
|
18
|
+
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md),其中包含安装、E10 认证、JSON 输出和高风险写入规则。若共享规则不存在、CLI 未安装或读取失败,说明本技能的必需依赖缺失,必须调用宿主提供的提问/确认弹框,向用户说明必须补齐 `weaver-work-cli` 与共享 skill `weaver-e10-shared`(不补齐本技能无法执行)及补齐计划,并把下面两条待执行命令原样完整展示在确认信息中;Agent 不能在未确认时自行安装。用户明确确认后,Agent 必须直接代为按顺序执行且每条仅执行一次,不得要求或引导用户手动执行:① 缺 CLI 时执行 `npm install -g weaver-work-cli`;② 再执行 `weaver-work-cli skills install shared --target-dir <SKILLS_ROOT>` 装回共享 skill,`<SKILLS_ROOT>` 取本 SKILL.md 所在目录的上一级绝对目录(即与本技能同级的 skills 根目录),不要省略 `--target-dir`——省略会装进默认目录,导致本技能依然读不到共享规则。命令均成功后重新读取共享规则;仍读不到就停止并把结果报告用户,不得凭猜测继续。**
|
|
19
|
+
**`--is-connector` 判据**:用户明确使用连接器、或上下文要求用连接器完成任务 → 传 `true`;本次任务或上下文直接选择单独技能 → 不传;用户没有明确说明时,按**正在运行的这份 Skill 是哪一级**定——**用户级(条目标 `(user)`)不传,连接器级(标 `(connector)`)传**(同名 Skill 只会运行用户级那一份)。传 `true` 时不要再写 `--profile` / `--base-url`。完整规则见 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md)。
|
|
20
|
+
|
|
19
21
|
认证和登录态只能按共享规则通过 `weaver-work-cli auth ...` 命令判断;禁止直接读取、列出、打印或解析用户主目录下的旧 `.e10-cli`、auth、config 或 Keychain 数据。
|
|
20
22
|
所有命令通过 `weaver-work-cli --json workflow run <operation>` 执行:**统一用 `--input-json '<json>'` 内联传入**——`planJson`、`filterFields` 这类嵌套结构也一样内联(总量通常只有几百字符,内联完全够用;**不要因为"看着复杂"就去写 JSON 文件**,那会白白多出一次文件写入与一次工具往返)。仅当 JSON 确实很大(几十 KB 级,如超长消息列表)或含难以在 shell 里转义的单引号时,才改写 UTF-8 文件配 `--input <path>`;只有确认当前 shell 能稳定传管道时才用 `--input -`。调用前先按需读取 references 下对应的文件,查参数结构,不要猜字段;**references 是第一信息源**,`weaver-work-cli workflow schema` 是 operation、字段和风险等级的合约来源。
|
|
21
23
|
生成或改写的 docs、reference、提示词和命令示例必须同时兼容 Windows 和 macOS/Linux。凡涉及 JSON 输入、用户目录、路径分隔符、文件删除、目录查看或文件比对,必须同时给出 Windows PowerShell 与 macOS/Linux(bash/zsh)两套示例;Agent 先根据当前系统和 shell 选择对应示例,不确定时用 `node -p "process.platform"` 判断。Windows/PowerShell 示例不要使用 `printf`、`$HOME/...`、`~/...`、bash 反斜杠续行、`rm/ls/diff/python3` 等 Unix-only 写法。
|
|
@@ -31,31 +33,24 @@ cliHelp: "weaver-work-cli workflow --help"
|
|
|
31
33
|
|
|
32
34
|
## 认证与请求头契约
|
|
33
35
|
|
|
34
|
-
登录与会话由
|
|
35
|
-
|
|
36
|
-
CLI 发往 E10 的每个请求都自动携带以下三项用户信息参数,**缺一不可**(业务入参里不要传这些字段,也不要手工拼装请求头):
|
|
36
|
+
登录与会话由 `weaver-e10-shared` 共享规则和 `weaver-work-cli auth ...` 命令体系统一托管。业务 Skill 不自建登录流程,不索取、打印或转存任何凭证。
|
|
37
37
|
|
|
38
|
-
```text
|
|
39
|
-
Cookie: <登录返回的完整原始 Cookie 串,原样透传,禁止裁剪/去重/改写>
|
|
40
|
-
eteamsid: <登录返回的 ETEAMSID>
|
|
41
|
-
User-Agent: AgentType=<agentType>,IsAgent=true
|
|
42
|
-
```
|
|
43
38
|
|
|
44
39
|
## 任务入口(每收到用户任务,先按本固定步骤执行)
|
|
45
40
|
|
|
46
41
|
收到用户任务(查询/查看/操作/批量/共享/发起/修改)后,**不要先推理规划、不要以翻文档代替执行、不要把 references 通读一遍**,按下面两步固定执行:
|
|
47
42
|
|
|
48
43
|
1. **第一轮就并行发起(关键:不要串行拆成多轮往返)**:在**同一条消息**里同时发出下列调用——
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
44
|
+
- Read `../weaver-e10-shared/SKILL.md`(若尚未读过);
|
|
45
|
+
- `weaver-work-cli [--is-connector true] --json workflow run workflow.memoryPrompt`——该命令**无入参**;**先按本文件开头的 `--is-connector` 判据确定前缀,再直接执行**(仅"非首次对话且距上次成功读取记忆不足 6 小时"时跳过);
|
|
46
|
+
- **查询类意图**只读 [`workflow-query.md`](references/workflow-query.md) 一份(已覆盖 `workflow.search` 与 `workflow.todoStat`,不要再读其他查询文档);**但该文件约 108 KB / 838 行——整读会超单次读取上限被明确拒绝**(Read 单次上限约 **20,000 tokens ≈ 100 KB / 800 行**):**首轮一次读完开头的契约段**(`offset 1 limit 244`,约 30 KB,已覆盖 Operation、全部输入参数含「大分类判定」、时间条件与「待办时间默认语义」、执行流程),其余章节(`planJson` 编排、汇报式分组骨架、渲染规则与示例)**只在需要的那一刻按它开头的「分段索引」给出的行区间补读**;查看/操作/共享/发起/修改等意图读对应那一份 reference 即可,不要顺手把查询文档也一起读;**唯一例外是批量操作**——用 `scopeCondition` 走范围驱动时要构造与 `workflow.search` 同形的查询条件,**这一轮可以同时读 [`workflow-query.md`](references/workflow-query.md) 与 [`workflow-batch.md`](references/workflow-batch.md)**(前者给条件写法,后者给 `scopeCondition`/`action` 的执行口径),其余意图仍只读对应那一份;
|
|
47
|
+
- **泛化待办查询**(如"今天有哪些待办")先看上一步 `memoryPrompt` 返回的 `oaContext.smartGrouping`:`false`(低版本)→ **直接** `workflow.search`(category=todo,**不要带 `planJson`/`subCategory`**),CLI 已自带分组统计与卡片,原样渲染即结束;`true`(智能分组)→ 才追加 `workflow.todoStat` 做统计规划,再带 `planJson` 取数。**不要在 `smartGrouping` 为 `true` 之前先调 `workflow.todoStat`**——低版本必然失败(报 `todo_stat_requires_smart_mode`)白费一次调用。
|
|
53
48
|
> 以上调用**互不依赖,必须并行**:串行拆轮会成倍拉长耗时。**实测基准**:一次泛化待办查询全程约 70s,其中**模型轮次占 ~95%**(每轮约 8~25s,主因是模型输出量),CLI 命令本身合计只有 1~2s。**能省一轮就省一轮**——尤其不要为"解析上一轮输出""取流程 ID"另起一轮。
|
|
54
|
-
|
|
55
|
-
|
|
49
|
+
- **[`workflow-memory.md`](references/workflow-memory.md) 本步不读**——记忆读取的命令形态见上一行(**含 `--is-connector` 判据**,按它确定前缀后执行),**记忆保存的规则已在本文件「记忆保存(全局规则)」章节给全**(本轮任务结束时按那一节执行);只有需要判断"放 `user.md` / `memory.md` / `workflow:{id}` 哪一类"或其它字段细节时,才在需要的那一刻去读它。
|
|
50
|
+
- **读被拒就按行段重读源文件,不要去读宿主的落盘文件**:Read 单次超限是**明确报错**(提示改用 `offset`/`limit`),照提示把源文件分行段重读即可;**不要**去读宿主的落盘文件(`~/.workbuddy/projects/**/tool-results/**`:**没有读取权限**,去读必然拿一句 `Permission … has been denied`、白费一轮——那是**命令输出**超线时的落盘预览,不是 Read 的读取路径)。
|
|
56
51
|
2. **执行用户任务**:按下方「选哪个命令」与「处理链」选定 operation 并执行,参数以对应 reference 为准。
|
|
57
52
|
|
|
58
|
-
> `workflow.memoryPrompt` 返回的 `oaContext` 已含 OA
|
|
53
|
+
> `workflow.memoryPrompt` 返回的 `oaContext` 已含 OA 版本、**当前环境是否支持智能分组(`smartGrouping`)**与当前用户身份(岗位/部门/分部)——判模式直接看 `smartGrouping`(不要自己比版本号)、引用身份直接用它,不要再单独查组织信息。
|
|
59
54
|
|
|
60
55
|
## 总原则
|
|
61
56
|
|
|
@@ -68,20 +63,21 @@ User-Agent: AgentType=<agentType>,IsAgent=true
|
|
|
68
63
|
|
|
69
64
|
## 记忆保存(全局规则,每轮任务结束都要执行)
|
|
70
65
|
|
|
71
|
-
|
|
66
|
+
**每轮完整实质任务结束、向用户输出最终回复之前**,必须自行判断本轮是否出现**新的、有价值的语义记忆**(例如用户新澄清/确认了具体工作流、字段名、字段选项;与已有记忆重复的不算,必填字段的填值偏好不算):
|
|
72
67
|
|
|
73
|
-
- **有** → 组装本轮「用户原始意图 + 澄清过程 + 确认结果」的消息列表,**实际调用** `weaver-work-cli --json workflow run workflow.memoryExtract --input-json '{"msgList":[{"msgRole":"user","msgValue":"…"},{"msgRole":"assistant","msgValue":"…"}],"
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
68
|
+
- **有** → 组装本轮「用户原始意图 + 澄清过程 + 确认结果」的消息列表,**实际调用** `weaver-work-cli [--is-connector true] --json workflow run workflow.memoryExtract --input-json '{"msgList":[{"msgRole":"user","msgValue":"…"},{"msgRole":"assistant","msgValue":"…"}],"async":true}'`(**要不要带 `workflowId` 见下一条**):
|
|
69
|
+
- **`msgList` 每项的字段名固定是 `msgRole` / `msgValue`**(按对话顺序:user 放用户原话/澄清回复,assistant 放命令返回/你的确认说明),**不要写成 `role` / `content`**;
|
|
70
|
+
- **`workflowId` 只在「这条记忆换个工作流就不成立」时才带**——① 澄清**工作流本身**(业务别名、名称消歧、把口语简称落到某个工作流)⇒ **不带**:这类事实跨工作流通用,带上会被锁进该工作流维度,**而别名存在的意义正是"还没确定工作流时用它去找工作流"**;② 澄清**该工作流内部**(表单字段与选项含义、节点流转、提交节奏、审批规则)⇒ **带上**。一句话判据:**换个工作流还成立吗?成立 → 不带;只在某个工作流里成立 → 带**;
|
|
71
|
+
- **保存「业务别名 → 工作流」映射时,ID 必须来自本轮命令返回**:`workflow.search` / plan 的 **`cards[].workflowId`**、`workflow.createForm` 澄清候选的 `id`、`workflow.todoStat` 的 `countDetails[].workflowId`——拿到就必须把 ID 写进 `msgValue` 的事实句(如「业务别名"问题流程"= 工作流"E10客户问题支持解决流程",workflowId=1003655203465764898」);**不允许只记名称、把 ID 留空**——留空就是「(待确认)」,后续查询只能拿纯名称去试探,多命中还要再澄清一次;
|
|
72
|
+
- `saved:true` → **用自然语言告知用户会记住什么**(如"后续再发起请假流程时会默认按本次偏好(年假)填写"),不展示接口原文;
|
|
73
|
+
- `saved:false` → 按静默失败处理,不告知用户、不重试,直接继续回答用户原本问题。
|
|
78
74
|
- **没有** → 不调用 `workflow.memoryExtract`,直接输出最终回复;**不要纠结"一次性原因(如请假事由)是否值得记忆"**。
|
|
79
75
|
|
|
80
76
|
**硬禁令(违反即为没保存)**:
|
|
81
77
|
|
|
82
78
|
- **不允许只在思考里写"应该保存记忆"**:判断"有"后必须**真的发出 `workflow.memoryExtract` 命令**,拿到真实 `saved` 结果后再输出最终回复。只在内心说"要保存"而不执行 = 没保存。
|
|
83
|
-
-
|
|
84
|
-
-
|
|
79
|
+
- 本次发起的工作流本身、业务别名、以及本次新确认的字段口径偏好(**「字段口径」指字段名、选项含义这类语义澄清,不含单据里填了什么值;必填字段的填值偏好不算**),只要符合本节开头「新的、有价值的」判据,就属于要保存的情形,不要漏。
|
|
80
|
+
- 用户澄清后确认的工作流/字段口径偏好(**指字段名、选项含义这类语义澄清,不含单据里填了什么值**)属于典型的"有价值记忆",**属于要保存的情形**,不要漏。
|
|
85
81
|
- **记忆里的别名条目写「(待确认)」时,它是一张待办、不是终态**:本轮只要把该别名唯一解析出了 `workflowId`(**`cards[].workflowId`** 或 `countDetails[].workflowId` 里就有),任务结束时**必须再保存一次把 ID 补上**(口径同上),不要放着不管。
|
|
86
82
|
|
|
87
83
|
> 本节的规则已足够直接执行;仅当需要判断"放 user.md / memory.md / workflow:{id} 哪一类"或需要其它字段细节时,才去读 [`workflow-memory.md`](references/workflow-memory.md)。
|
|
@@ -100,7 +96,7 @@ User-Agent: AgentType=<agentType>,IsAgent=true
|
|
|
100
96
|
- 发起流程 / 创建流程 / 提交审批 / 填单 / 起草 / 存草稿
|
|
101
97
|
- 修改流程表单 / 改已发起流程的字段
|
|
102
98
|
|
|
103
|
-
**判定规则:** 用户核心对象是流程实例(request)或流程发起表单时走本 Skill
|
|
99
|
+
**判定规则:** 用户核心对象是流程实例(request)或流程发起表单时走本 Skill。要发起某个流程用 `workflow.createForm`(它内部解析当前用户**可发起**的工作流,解析不出唯一目标时直接给出候选);查询"我有哪些待办"用 `workflow.search`。涉及"姓名转人员 ID / 组织架构 / 部门岗位"时,人员与组织解析交给 `weaver-e10-hrm`,本 Skill 只在操作流程时消费其返回的人员 ID。
|
|
104
100
|
|
|
105
101
|
## 选哪个命令
|
|
106
102
|
|
|
@@ -108,25 +104,28 @@ User-Agent: AgentType=<agentType>,IsAgent=true
|
|
|
108
104
|
| --- | --- | --- |
|
|
109
105
|
| 查看可用 operation、字段和风险等级、输出契约 | `workflow schema` | [`workflow-agent-entry.md`](references/workflow-agent-entry.md) |
|
|
110
106
|
| 查询待办/已办/我发起/全部流程,按条件筛选,待办智能分组取数 | `workflow run workflow.search` | [`workflow-query.md`](references/workflow-query.md) |
|
|
111
|
-
|
|
|
107
|
+
| 待办整体分组计数(智能分组第二步;须先确认 `oaContext.smartGrouping === true`) | `workflow run workflow.todoStat` | [`workflow-query.md`](references/workflow-query.md) |
|
|
112
108
|
| 查看流程完整详情、生成摘要、打开流程、查签字意见/流转日志 | `workflow run workflow.detail` / `workflow.summary` / `workflow.open` / `workflow.requestLog` | [`workflow-view.md`](references/workflow-view.md) |
|
|
113
109
|
| 打开 OA 页面(待办/已办/草稿/监控/创建/查看) | `workflow run workflow.pageOpen` | [`workflow-view.md`](references/workflow-view.md) |
|
|
114
110
|
| 单条流程操作:同意/提交/退回/转办/委托/转发/抄送/加审/收回/结束/征询/删除/催办 | `workflow run workflow.operatePrepare` / `workflow.operateApply` | [`workflow-operate.md`](references/workflow-operate.md) |
|
|
115
111
|
| 批量提交 / 置已读 / 催办 / 共享 / 转发 / 退回(均为单命令,一次调用完成) | `workflow run workflow.batchSubmit` / `workflow.batchRead` / `workflow.batchSupervise` / `workflow.batchShare` / `workflow.batchForward` / `workflow.batchReject` | [`workflow-batch.md`](references/workflow-batch.md) |
|
|
116
112
|
| 单条流程共享(人/部门/分部/群组/角色/岗位/所有人) | `workflow run workflow.sharePrepare` / `workflow.shareApply` | [`workflow-share.md`](references/workflow-share.md) |
|
|
117
|
-
| 发起/创建流程、填单、存草稿 | `workflow run workflow.
|
|
113
|
+
| 发起/创建流程、填单、存草稿 | `workflow run workflow.createForm` / `workflow.createRequest` | [`workflow-create.md`](references/workflow-create.md) |
|
|
118
114
|
| 修改已存在流程的表单内容 | `workflow run workflow.editLoad` / `workflow.editPrepare` / `workflow.editApply` | [`workflow-edit.md`](references/workflow-edit.md) |
|
|
119
115
|
| 读取用户记忆偏好、OA 版本与当前用户身份;保存本轮语义记忆 | `workflow run workflow.memoryPrompt` / `workflow.memoryExtract` | [`workflow-memory.md`](references/workflow-memory.md) |
|
|
120
116
|
|
|
121
117
|
处理链:
|
|
122
118
|
|
|
123
119
|
- 记忆前置:新一轮对话或距上次成功读取记忆超过 6 小时 -> 先执行 `workflow.memoryPrompt`,顺带拿到 `oaContext`(OA 版本 + 当前用户身份),不要单独再查组织信息。
|
|
124
|
-
- 查询类意图 -> `workflow.search
|
|
120
|
+
- 查询类意图 -> `workflow.search`。泛化待办查询**先看 `oaContext.smartGrouping`**(`memoryPrompt` 已给):`false`(低版本)直接 `workflow.search` 原样渲染(CLI 自带分组统计,闭环,**不要带 `planJson`/`subCategory`**);`true` 再 `workflow.todoStat` 统计分组,并**严格按 [`workflow-query.md`](references/workflow-query.md) 的「汇报式分组骨架」+「参与身份 → 分组去向表」划组**,把分组计划打包为一次带 `planJson` 的 `workflow.search`(不要自创分组体系)。
|
|
125
121
|
- 查看类意图 -> 优先用列表返回的 `requestId`;只有用户明确指向"第 N 条"时才用 `index`(分组场景加 `group`)定位。
|
|
126
122
|
- 单条操作 -> `workflow.operatePrepare` -> 用户确认 -> `workflow.operateApply`。
|
|
127
|
-
- 批量处理(提交/置已读/催办/共享/转发/退回)-> **6 个都是单命令**(`workflow.batchSubmit` / `workflow.batchRead` / `workflow.batchSupervise` / `workflow.batchShare` / `workflow.batchForward` / `workflow.batchReject`):`confirm: true` 与 `requestIds` 在**同一次调用**里传,**不需要先跑 Prepare,也没有 continuation
|
|
123
|
+
- 批量处理(提交/置已读/催办/共享/转发/退回)-> **6 个都是单命令**(`workflow.batchSubmit` / `workflow.batchRead` / `workflow.batchSupervise` / `workflow.batchShare` / `workflow.batchForward` / `workflow.batchReject`):`confirm: true` 与 `requestIds` 在**同一次调用**里传,**不需要先跑 Prepare,也没有 continuation**。三条路径按**目标的来源**选:
|
|
124
|
+
- **目标是上一轮查询结果里的具体几条**("前两条/刚才那些"、或点名条目)→ 直接把 `requestIds`(+ `confirm:true`)传给对应批量命令,**一次调用完成**,不要再多发一轮确认摘要。
|
|
125
|
+
- **目标是一个范围(没有准确 `requestId`)** → **必须先数条数再执行**:先用 `scopeCondition`(与 `workflow.search` 同形的条件)+ `action:"total"` **只查条数**(`action` 在给了 `scopeCondition` 时**必填**,漏写报 `batch_action_required`),把「范围 + 条数」报给用户确认(`total=0` 但 `scopeTotal>0` 时要说明"有 N 条但不适用本次操作",不能说成没有数据)。
|
|
126
|
+
- **目标是一个范围、用户已确认条数** → 再用同一条 `scopeCondition` 配 `action:"execute"`;**循环由 CLI 内部完成**(查一页→执行→排除已处理/失败的 ID→再查,直到取完或触达上限),**不要自己写"查一页→数 ID→再执行"的多轮流程**。返回里给的是成功/失败条数、失败清单与 `stoppedReason`(**不含批次数等内部细节**),照它汇报即可——`scope_not_batch_eligible` 表示"范围内有数据但本次操作一条都取不到"(**不是**"没有数据"),要说明原因并给替代操作(如改 `workflow.batchRead`)。
|
|
128
127
|
- 单条共享 -> `workflow.sharePrepare` -> 用户确认 -> `workflow.shareApply`。
|
|
129
|
-
- 发起流程 -> `workflow.
|
|
128
|
+
- 发起流程 -> `workflow.createForm`(传 `workflow`,解析可发起的工作流并拿到 `continuation`;返回 `NEEDS_CLARIFICATION` 时按 `candidates` 与用户确认后用 `名称(ID)` 重发)-> 按用户意图填 `data` -> `workflow.createRequest`(`context` 传上一步的 `continuation`,`action` 取 `draft`/`submit`)。**必填是否齐不用模型判断**:`action:"submit"` 缺必填时命令不会创建流程,返回 `NEEDS_INPUT` + `missingFields`,一次问齐后带同一 `context` 重发;`action:"draft"` 则照常建草稿、缺失项只作提醒。
|
|
130
129
|
- 修改表单 -> `workflow.editLoad` 拿 `context` -> `workflow.editPrepare` -> 用户确认 -> `workflow.editApply`。
|
|
131
130
|
|
|
132
131
|
## 执行原则(减少误路由、误重试和无效消耗)
|
|
@@ -136,7 +135,7 @@ User-Agent: AgentType=<agentType>,IsAgent=true
|
|
|
136
135
|
- 只是查待办时,直接 `workflow.search`,不要先做全量探查
|
|
137
136
|
- 用户已给出流程标题、编号或 `requestId` 时,不要先拉全量列表再本地过滤
|
|
138
137
|
- 批量操作的目标已有明确 `requestId` 时,直接把 `requestIds` 传给对应的 `workflow.batch*` 单命令(连同 `confirm: true`),**不要为了"看看哪些能批量提交"先做一次 `--batchType` 查询**(批量门禁按本机查询索引放行,那一次查询不参与放行);**不要先跑任何 `Prepare`**——6 个批量命令都是一次调用完成,不存在两阶段。
|
|
139
|
-
- 查询条件里的名称解析不出唯一对象时,**按 CLI 返回的形态分两种处理**(对齐 V11.3,不要混为一谈):① **澄清信封**(`ok:true` + `status=NEEDS_CLARIFICATION` + `data.candidates`)——工作流多/零命中、工作流类型/发起人/部门/分部/紧急程度**多命中**、表单字段名或选项值不唯一、字段元数据不可用;**用 `data.candidates` 与用户确认,拿到确认后用 `名称(ID)`
|
|
138
|
+
- 查询条件里的名称解析不出唯一对象时,**按 CLI 返回的形态分两种处理**(对齐 V11.3,不要混为一谈):① **澄清信封**(`ok:true` + `status=NEEDS_CLARIFICATION` + `data.candidates`)——工作流多/零命中、工作流类型/发起人/部门/分部/紧急程度**多命中**、表单字段名或选项值不唯一、字段元数据不可用;**用 `data.candidates` 与用户确认,拿到确认后用 `名称(ID)` 重发同一条命令**,**不要**另起一条"拉全量清单再自己筛"的命令(查询侧没有任何无条件的全量列举);要发起流程时用 `workflow.createForm`,它走的是同一条澄清通道、同样会给出候选;**不要把它转述成"没有匹配的流程"或"查询结果为 0 条"**。② **`ok:false` + `error.subtype=*_not_found`**——工作流类型/发起人/部门/分部/紧急程度**0 命中**(V11.3 即硬失败,因为放行会静默丢掉该条件返回全量数据);按 `error.message` 的提示(紧急程度会列出全部可选等级)与用户核对后改用 `名称(ID)` 重发
|
|
140
139
|
- 缺少的关键信息(目标流程、接收人、发起工作流)只问一次;能从记忆 `oaContext` 或上下文推断的不要反问
|
|
141
140
|
- **查询范围的缺省口径不要反问**:时间词 + 动作词("本周接收的""今天有哪些待办"等)的默认含义已由 `references/workflow-query.md`「待办时间默认语义」定死,**照表直接执行**;`category` 按该文「大分类判定」定(句中出现"我/我的"或"提交/发起/创建"**不等于** `mine`);不要因为用户没说"待办/已办"、或没说是发起时间还是接收时间就停下来反问——只有该文所列的三种真歧义才问
|
|
142
141
|
|
|
@@ -175,7 +174,7 @@ User-Agent: AgentType=<agentType>,IsAgent=true
|
|
|
175
174
|
- **失败出口在 stderr(stdout 为空即失败)**:命令失败时退出码非 0、**错误 JSON 只出现在 stderr**(`{ok:false, error:{type,subtype,message,retryable}}`),**stdout 是空的**。因此:**stdout 为空 → 一律视为失败并去读 stderr**,按 `error.subtype` 决定下一步(如 `todo_stat_requires_smart_mode` → 不要重试 todoStat,改走 `workflow.search`;`plan_requires_smart_mode` → 去掉 `planJson` 重查);判断成败**以 `ok` 字段为准**,宿主界面把命令显示成"运行成功"只代表进程结束,不代表业务成功。
|
|
176
175
|
- **同一个 operation 最多执行一次**:拿到 stdout 后一次性解析完,不要先截断看一眼再重跑。
|
|
177
176
|
- **结果里出现 `resultFile` 时不要重跑命令**:`workflow.search`、`workflow.todoStat`、`workflow.createForm`、`workflow.editLoad` 等大输出 operation 会把完整数据落盘,并在结果**最前面**返回 `resultFile` 与 `largeOutputNotice`;需要被省略的大字段(如查询的逐条明细、某工作流的 `formFields`、通知正文 `formFieldValues` 全文、大表单的 `fields`)时,直接从 `resultFile` 里**按需提取**(只取要用的键,不要把整份读进上下文),**不要重新执行 operation**。
|
|
178
|
-
- **`createForm` / `editLoad` 大表单的分流形态**(字段多时才有,字段少时就是原样全量):输出里会多出 `persistedResult`、`outputBytes`,并二选一——① 带 `fields` 但已换成紧凑编码(`columns` 列名 + `rows` 每行一个字段、各列用 `|` 分隔,顺序同 `columns`;非列信息按字段 id 放在 `extra`,**不出现在 `extra` 里的字段即为默认值**);② 带 `fieldsOmitted: true` + `fieldCount`,`fields` 已整体移出 stdout。两种情况都**照常继续流程**:要字段清单/某个字段的完整元数据时从 `resultFile` 提取即可,**不要因为没看到 `fields` 就重跑 createForm
|
|
177
|
+
- **`createForm` / `editLoad` 大表单的分流形态**(字段多时才有,字段少时就是原样全量):输出里会多出 `persistedResult`、`outputBytes`,并二选一——① 带 `fields` 但已换成紧凑编码(`columns` 列名 + `rows` 每行一个字段、各列用 `|` 分隔,顺序同 `columns`;非列信息按字段 id 放在 `extra`,**不出现在 `extra` 里的字段即为默认值**);② 带 `fieldsOmitted: true` + `fieldCount`,`fields` 已整体移出 stdout。两种情况都**照常继续流程**:要字段清单/某个字段的完整元数据时从 `resultFile` 提取即可,**不要因为没看到 `fields` 就重跑 createForm**。`fields` 移出时,同一份输出会补上 **`writableFields`**(可写字段索引,每行 `id|name|subFormId|componentKey|flags`,另带 `optionIndex` / `formatIndex` / `uploadLimits`)——**填 `data` 的键、日期字段的 `format`、附件字段的上传限制都直接用它**,不要再为这些去读 `resultFile`;只有它也被省略(出现 `writableFieldsOmitted`)时,才改从 `resultFile` 取。**必填不要自己推演**:OA 的联动(显示属性)规则不下发,一律按 `createRequest` 的 `missingFields` 补齐。
|
|
179
178
|
- **一次解析取全,不要把"判定"与"取 ID"拆成两次**:同一次输出里已有的信息应在同一步一并取出——例如 `countDetails[].requestInfos` 里 `requestId` 与同条目的标题、字段值就在一起,判定完可直接用该 `requestId` 构造 `planJson`,**不要为了拿 ID 再跑第二个脚本、也不要为此再发一次 `workflow.search`**。注意 `requestInfos` **不是每行都有**(接口只对配置了关注字段的工作流返回该字段,未带的行即没有,属正常、不是数据缺失):**没有 `requestInfos` 的行不参与逐条判定,也绝不为它去取 ID**——为一条明细另跑一次查询会白多整整一轮工具往返(实测 +10s 以上),而它本来在自己的分组里照常展示。
|
|
180
179
|
- **用户对已展示结果的更正不重跑**:用户指出上一轮汇报里某条的性质/归属不对(如"重点关注里第一条其实是转发给我的,意见是请知悉")时,这是**呈现层的更正**、底层数据没变——**不要重跑那次 `workflow.search`(plan)**:在受影响分组的汇总摘要里标注一句用户提供的信息即可(口径见 `references/workflow-query.md`「渲染红线」)。**只有用户明确要求"重新出一份 / 挪到某组重出"时才重跑**,且复用上一轮那次的 `planJson`、只改受影响的分组。重跑一次 ≈ **1 轮 + 30~50s**,纯属浪费;用户表述是陈述句、看不出意图时,先问一句再动手。
|
|
181
180
|
|
|
@@ -190,10 +189,10 @@ User-Agent: AgentType=<agentType>,IsAgent=true
|
|
|
190
189
|
|
|
191
190
|
1. **先停止盲目重试**,不要连续重复提交相同 `.apply`
|
|
192
191
|
2. 优先从以下角度解释:
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
192
|
+
- 写请求可能已经到达服务端,但连接在结果确认前中断
|
|
193
|
+
- 服务端可能只处理了部分流程
|
|
194
|
+
- 写接口已返回成功,但详情回查失败或与预期不一致
|
|
195
|
+
- continuation、`context`、目标流程或登录上下文可能已经变化
|
|
197
196
|
3. 如需确认,只补 **一次** 只读查询(例如 `workflow.detail` 或 `workflow.search`),不要陷入 query/write 循环
|
|
198
197
|
4. 最终给用户明确结论、已知状态、成功/失败项和下一步人工确认建议,而不是继续无意义重试
|
|
199
198
|
|
|
@@ -223,10 +222,8 @@ weaver-work-cli --json workflow run workflow.todoStat --input-json '{"category":
|
|
|
223
222
|
weaver-work-cli --json workflow run workflow.detail --input-json '{"requestId":"123456"}'
|
|
224
223
|
weaver-work-cli --json workflow run workflow.operatePrepare --input-json '{"requestId":"123456","action":"submit","opinion":"同意"}'
|
|
225
224
|
weaver-work-cli --json workflow run workflow.operateApply --input-json '{"requestId":"123456","action":"submit","continuation":"wc-1a2b3c4d5e6f7a8b","confirm":true}'
|
|
226
|
-
weaver-work-cli --json workflow run workflow.
|
|
227
|
-
weaver-work-cli --json workflow run workflow.
|
|
228
|
-
weaver-work-cli --json workflow run workflow.createPrepare --input-json '{"context":"wc-1a2b3c4d5e6f7a8b","data":{"main":{}},"intent":"submit"}'
|
|
229
|
-
weaver-work-cli --json workflow run workflow.createApply --input-json '{"context":"wc-1a2b3c4d5e6f7a8b","intent":"submit","confirm":true}'
|
|
225
|
+
weaver-work-cli --json workflow run workflow.createForm --input-json '{"workflow":["费用报销"]}'
|
|
226
|
+
weaver-work-cli --json workflow run workflow.createRequest --input-json '{"context":"wc-1a2b3c4d5e6f7a8b","data":{"main":{}},"action":"submit"}'
|
|
230
227
|
```
|
|
231
228
|
|
|
232
229
|
macOS/Linux(bash/zsh):
|
|
@@ -238,10 +235,8 @@ weaver-work-cli --json workflow run workflow.todoStat --input-json '{"category":
|
|
|
238
235
|
weaver-work-cli --json workflow run workflow.detail --input-json '{"requestId":"123456"}'
|
|
239
236
|
weaver-work-cli --json workflow run workflow.operatePrepare --input-json '{"requestId":"123456","action":"submit","opinion":"同意"}'
|
|
240
237
|
weaver-work-cli --json workflow run workflow.operateApply --input-json '{"requestId":"123456","action":"submit","continuation":"wc-1a2b3c4d5e6f7a8b","confirm":true}'
|
|
241
|
-
weaver-work-cli --json workflow run workflow.
|
|
242
|
-
weaver-work-cli --json workflow run workflow.
|
|
243
|
-
weaver-work-cli --json workflow run workflow.createPrepare --input-json '{"context":"wc-1a2b3c4d5e6f7a8b","data":{"main":{}},"intent":"submit"}'
|
|
244
|
-
weaver-work-cli --json workflow run workflow.createApply --input-json '{"context":"wc-1a2b3c4d5e6f7a8b","intent":"submit","confirm":true}'
|
|
238
|
+
weaver-work-cli --json workflow run workflow.createForm --input-json '{"workflow":["费用报销"]}'
|
|
239
|
+
weaver-work-cli --json workflow run workflow.createRequest --input-json '{"context":"wc-1a2b3c4d5e6f7a8b","data":{"main":{}},"action":"submit"}'
|
|
245
240
|
```
|
|
246
241
|
|
|
247
242
|
## 不在本 skill 范围
|
|
@@ -310,10 +310,8 @@
|
|
|
310
310
|
"id": "workflow.create",
|
|
311
311
|
"sourcePath": "weaver-e10-workflow/references/workflow-create.md",
|
|
312
312
|
"mapsToOperations": [
|
|
313
|
-
"workflow.createApply",
|
|
314
313
|
"workflow.createForm",
|
|
315
|
-
"workflow.
|
|
316
|
-
"workflow.createPrepare"
|
|
314
|
+
"workflow.createRequest"
|
|
317
315
|
],
|
|
318
316
|
"mapsToReferences": [
|
|
319
317
|
"references/workflow-create.md"
|
|
@@ -552,77 +550,43 @@
|
|
|
552
550
|
"risk": "read",
|
|
553
551
|
"requiresConfirmationChain": false
|
|
554
552
|
},
|
|
555
|
-
"workflow.createList": {
|
|
556
|
-
"sourceChunkIds": [
|
|
557
|
-
"workflow.create"
|
|
558
|
-
],
|
|
559
|
-
"schemaFields": [
|
|
560
|
-
"name",
|
|
561
|
-
"workflowId"
|
|
562
|
-
],
|
|
563
|
-
"references": [
|
|
564
|
-
"references/workflow-create.md"
|
|
565
|
-
],
|
|
566
|
-
"tests": [
|
|
567
|
-
"test/business/workflow-operations.test.ts"
|
|
568
|
-
],
|
|
569
|
-
"risk": "read",
|
|
570
|
-
"requiresConfirmationChain": false
|
|
571
|
-
},
|
|
572
553
|
"workflow.createForm": {
|
|
573
554
|
"sourceChunkIds": [
|
|
574
555
|
"workflow.create"
|
|
575
556
|
],
|
|
576
557
|
"schemaFields": [
|
|
577
|
-
"
|
|
558
|
+
"workflow",
|
|
578
559
|
"relatesTo"
|
|
579
560
|
],
|
|
580
561
|
"references": [
|
|
581
562
|
"references/workflow-create.md"
|
|
582
563
|
],
|
|
583
564
|
"tests": [
|
|
565
|
+
"test/business/workflow-form-fields.test.ts",
|
|
584
566
|
"test/business/workflow-operations.test.ts"
|
|
585
567
|
],
|
|
586
568
|
"risk": "read",
|
|
587
569
|
"requiresConfirmationChain": false
|
|
588
570
|
},
|
|
589
|
-
"workflow.
|
|
571
|
+
"workflow.createRequest": {
|
|
590
572
|
"sourceChunkIds": [
|
|
591
573
|
"workflow.create"
|
|
592
574
|
],
|
|
593
575
|
"schemaFields": [
|
|
594
576
|
"context",
|
|
595
577
|
"data",
|
|
578
|
+
"action",
|
|
596
579
|
"requestName",
|
|
597
580
|
"requestLevel",
|
|
598
581
|
"secLevel",
|
|
599
582
|
"remark",
|
|
600
|
-
"intent"
|
|
601
|
-
],
|
|
602
|
-
"references": [
|
|
603
|
-
"references/workflow-create.md"
|
|
604
|
-
],
|
|
605
|
-
"tests": [
|
|
606
|
-
"test/business/workflow-operations.test.ts"
|
|
607
|
-
],
|
|
608
|
-
"risk": "read-before-write",
|
|
609
|
-
"requiresConfirmationChain": true
|
|
610
|
-
},
|
|
611
|
-
"workflow.createApply": {
|
|
612
|
-
"sourceChunkIds": [
|
|
613
|
-
"workflow.create"
|
|
614
|
-
],
|
|
615
|
-
"schemaFields": [
|
|
616
|
-
"context",
|
|
617
|
-
"confirm",
|
|
618
|
-
"intent",
|
|
619
|
-
"question",
|
|
620
583
|
"verificationConfirmed"
|
|
621
584
|
],
|
|
622
585
|
"references": [
|
|
623
586
|
"references/workflow-create.md"
|
|
624
587
|
],
|
|
625
588
|
"tests": [
|
|
589
|
+
"test/business/workflow-form-fields.test.ts",
|
|
626
590
|
"test/business/workflow-operations.test.ts"
|
|
627
591
|
],
|
|
628
592
|
"risk": "high-risk-write",
|
|
@@ -924,7 +888,7 @@
|
|
|
924
888
|
}
|
|
925
889
|
},
|
|
926
890
|
"artifactBaseline": {
|
|
927
|
-
"aggregateSha256": "
|
|
891
|
+
"aggregateSha256": "3ca81d7b85aa07fd196cea5d127f8a68b5bfa38d7b9050644783264feeed4345",
|
|
928
892
|
"files": [
|
|
929
893
|
{
|
|
930
894
|
"path": "skills/weaver-e10-workflow/references/workflow-agent-entry.md",
|
|
@@ -933,13 +897,13 @@
|
|
|
933
897
|
},
|
|
934
898
|
{
|
|
935
899
|
"path": "skills/weaver-e10-workflow/references/workflow-batch.md",
|
|
936
|
-
"size":
|
|
937
|
-
"sha256": "
|
|
900
|
+
"size": 28997,
|
|
901
|
+
"sha256": "5748b933b2be30f8bbebc51eb0ae70c6d4eed1f2a14d7c601e9c97ed8e02e808"
|
|
938
902
|
},
|
|
939
903
|
{
|
|
940
904
|
"path": "skills/weaver-e10-workflow/references/workflow-create.md",
|
|
941
|
-
"size":
|
|
942
|
-
"sha256": "
|
|
905
|
+
"size": 30764,
|
|
906
|
+
"sha256": "2b0fb5a3d1b53f7586279f4a51f8a390d02ce6c2dbc3de902602d784508741ce"
|
|
943
907
|
},
|
|
944
908
|
{
|
|
945
909
|
"path": "skills/weaver-e10-workflow/references/workflow-edit.md",
|
|
@@ -948,33 +912,33 @@
|
|
|
948
912
|
},
|
|
949
913
|
{
|
|
950
914
|
"path": "skills/weaver-e10-workflow/references/workflow-memory.md",
|
|
951
|
-
"size":
|
|
952
|
-
"sha256": "
|
|
915
|
+
"size": 13714,
|
|
916
|
+
"sha256": "e28b9a1a4f10feb0257f7f1848fab69caef43b1713a359f235503150612c44dc"
|
|
953
917
|
},
|
|
954
918
|
{
|
|
955
919
|
"path": "skills/weaver-e10-workflow/references/workflow-operate.md",
|
|
956
|
-
"size":
|
|
957
|
-
"sha256": "
|
|
920
|
+
"size": 9523,
|
|
921
|
+
"sha256": "6b7c2cc03ed3d94a0a04c74c48a394e4bd31c8f3a58143c0682b8683a5eef3fe"
|
|
958
922
|
},
|
|
959
923
|
{
|
|
960
924
|
"path": "skills/weaver-e10-workflow/references/workflow-query.md",
|
|
961
|
-
"size":
|
|
962
|
-
"sha256": "
|
|
925
|
+
"size": 108319,
|
|
926
|
+
"sha256": "902e3cb5e24114963ad41dac652a0d46d7bc7d1d5a49eda3d9bd3ec861e9527a"
|
|
963
927
|
},
|
|
964
928
|
{
|
|
965
929
|
"path": "skills/weaver-e10-workflow/references/workflow-share.md",
|
|
966
|
-
"size":
|
|
967
|
-
"sha256": "
|
|
930
|
+
"size": 6507,
|
|
931
|
+
"sha256": "3691ee1e43b1be18d41c1a6ea2a6c6a322d2dd927a8169db475590376af0b83b"
|
|
968
932
|
},
|
|
969
933
|
{
|
|
970
934
|
"path": "skills/weaver-e10-workflow/references/workflow-view.md",
|
|
971
|
-
"size":
|
|
972
|
-
"sha256": "
|
|
935
|
+
"size": 10803,
|
|
936
|
+
"sha256": "54e7ae5267f3b4b6ade3bd0458a51704f3804140b60c5dcc910eab31d1bd1368"
|
|
973
937
|
},
|
|
974
938
|
{
|
|
975
939
|
"path": "skills/weaver-e10-workflow/SKILL.md",
|
|
976
|
-
"size":
|
|
977
|
-
"sha256": "
|
|
940
|
+
"size": 39786,
|
|
941
|
+
"sha256": "3d7b2c84ad5827c5ab5dd9d85ae53b70adb669082b45b0dc023de69290c95927"
|
|
978
942
|
},
|
|
979
943
|
{
|
|
980
944
|
"path": "src/shortcuts/workflow/continuation.ts",
|
|
@@ -983,18 +947,18 @@
|
|
|
983
947
|
},
|
|
984
948
|
{
|
|
985
949
|
"path": "src/shortcuts/workflow/endpoints.ts",
|
|
986
|
-
"size":
|
|
987
|
-
"sha256": "
|
|
950
|
+
"size": 8879,
|
|
951
|
+
"sha256": "1570e01906dd76b63107f8c2027ef8a8ea2a3cd8a4b75598aa4c61d4de4a8e30"
|
|
988
952
|
},
|
|
989
953
|
{
|
|
990
954
|
"path": "src/shortcuts/workflow/errors.ts",
|
|
991
|
-
"size":
|
|
992
|
-
"sha256": "
|
|
955
|
+
"size": 7313,
|
|
956
|
+
"sha256": "be2fbb40f0774efc07e68299580f23c16ca037eac5a5b6c7ff83d53d5013dae8"
|
|
993
957
|
},
|
|
994
958
|
{
|
|
995
959
|
"path": "src/shortcuts/workflow/host.ts",
|
|
996
|
-
"size":
|
|
997
|
-
"sha256": "
|
|
960
|
+
"size": 11980,
|
|
961
|
+
"sha256": "c1f0ae44fb2267be1888b80faa35fb0ce9ab596b9aa7ca6e0e5429933745b920"
|
|
998
962
|
},
|
|
999
963
|
{
|
|
1000
964
|
"path": "src/shortcuts/workflow/index.ts",
|
|
@@ -1008,18 +972,18 @@
|
|
|
1008
972
|
},
|
|
1009
973
|
{
|
|
1010
974
|
"path": "src/shortcuts/workflow/operations.ts",
|
|
1011
|
-
"size":
|
|
1012
|
-
"sha256": "
|
|
975
|
+
"size": 9238,
|
|
976
|
+
"sha256": "6f272f7e5828dfb7bacb557230744aec884f12299e3a5a6b1fc925ca7aaaa677"
|
|
1013
977
|
},
|
|
1014
978
|
{
|
|
1015
979
|
"path": "src/shortcuts/workflow/operations/form.ts",
|
|
1016
|
-
"size":
|
|
1017
|
-
"sha256": "
|
|
980
|
+
"size": 225404,
|
|
981
|
+
"sha256": "4938e30cecf9d6da790325d1162f834bf85c21e8b18f1e5d5c77d9483216f947"
|
|
1018
982
|
},
|
|
1019
983
|
{
|
|
1020
984
|
"path": "src/shortcuts/workflow/operations/read.ts",
|
|
1021
|
-
"size":
|
|
1022
|
-
"sha256": "
|
|
985
|
+
"size": 251625,
|
|
986
|
+
"sha256": "374e4d600dfa9b0754755c051ebfd2f4a6549a52d4cb7e78ec2b6c46c838e9e8"
|
|
1023
987
|
},
|
|
1024
988
|
{
|
|
1025
989
|
"path": "src/shortcuts/workflow/operations/registry.ts",
|
|
@@ -1028,8 +992,8 @@
|
|
|
1028
992
|
},
|
|
1029
993
|
{
|
|
1030
994
|
"path": "src/shortcuts/workflow/operations/shared.ts",
|
|
1031
|
-
"size":
|
|
1032
|
-
"sha256": "
|
|
995
|
+
"size": 9076,
|
|
996
|
+
"sha256": "89c1784879fb269f91de1a3fa0fb836c73ba7b0da31fe57c5781521cb4b4e663"
|
|
1033
997
|
},
|
|
1034
998
|
{
|
|
1035
999
|
"path": "src/shortcuts/workflow/operations/types.ts",
|
|
@@ -1038,8 +1002,8 @@
|
|
|
1038
1002
|
},
|
|
1039
1003
|
{
|
|
1040
1004
|
"path": "src/shortcuts/workflow/operations/write.ts",
|
|
1041
|
-
"size":
|
|
1042
|
-
"sha256": "
|
|
1005
|
+
"size": 141423,
|
|
1006
|
+
"sha256": "17dd749ca23872888127b1576c2507dbded16284ed69d8114964ac36f75e5f97"
|
|
1043
1007
|
},
|
|
1044
1008
|
{
|
|
1045
1009
|
"path": "src/shortcuts/workflow/state.ts",
|