weaver-work-cli 0.1.28 → 0.1.31
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/dist/chunks/archive-U766FTFH.js +2537 -0
- package/dist/chunks/archive-oa-DMWEKX3L.js +1317 -0
- package/dist/chunks/asset-TCR7VDEV.js +2109 -0
- package/dist/chunks/attachment-content-AQNX5N3S.js +23 -0
- package/dist/chunks/blog-EVZWGDVM.js +2157 -0
- package/dist/chunks/caizhilian-JOWS6SL5.js +10087 -0
- package/dist/chunks/calendar-5WNCV66Q.js +1195 -0
- package/dist/chunks/chunk-2DUV44UX.js +15606 -0
- package/dist/chunks/chunk-324YPTC2.js +1607 -0
- package/dist/chunks/chunk-65QMVWHS.js +231 -0
- package/dist/chunks/chunk-6V7ZLF34.js +387 -0
- package/dist/chunks/chunk-AC7KJWC5.js +358 -0
- package/dist/chunks/chunk-AJ62BGAW.js +29 -0
- package/dist/chunks/chunk-BUSC6UAE.js +43 -0
- package/dist/chunks/chunk-CVZ2JOSW.js +62 -0
- package/dist/chunks/chunk-D4LTJSJD.js +477 -0
- package/dist/chunks/chunk-EG6ZU444.js +654 -0
- package/dist/chunks/chunk-EZALDOQH.js +383 -0
- package/dist/chunks/chunk-FMPJJYYI.js +106 -0
- package/dist/chunks/chunk-G2JSIUWF.js +769 -0
- package/dist/chunks/chunk-GCG2NMWR.js +703 -0
- package/dist/chunks/chunk-GPMFD4RD.js +75 -0
- package/dist/chunks/chunk-H3WDBYJW.js +508 -0
- package/dist/chunks/chunk-H6XSTSLM.js +2357 -0
- package/dist/chunks/chunk-J7RJTZSV.js +5556 -0
- package/dist/chunks/chunk-LUSPKZKY.js +53 -0
- package/dist/chunks/chunk-NIAJ5ZCG.js +73 -0
- package/dist/chunks/chunk-NOODWMCL.js +584 -0
- package/dist/chunks/chunk-OOUTBLZ4.js +51 -0
- package/dist/chunks/chunk-P26ZWSKU.js +73 -0
- package/dist/chunks/chunk-QWY6PGL6.js +3472 -0
- package/dist/chunks/chunk-R2IJAK7T.js +464 -0
- package/dist/chunks/chunk-R7O5PUWO.js +205 -0
- package/dist/chunks/chunk-RCGYCOMG.js +6962 -0
- package/dist/chunks/chunk-VZTXRG6X.js +403 -0
- package/dist/chunks/chunk-WHD4XMRP.js +161 -0
- package/dist/chunks/chunk-YLCYX7LE.js +371 -0
- package/dist/chunks/chunk-ZEDWSH32.js +68 -0
- package/dist/chunks/continuation-2CKSBLA6.js +11 -0
- package/dist/chunks/continuation-HZIZRZBX.js +13 -0
- package/dist/chunks/continuation-NLECEJPX.js +11 -0
- package/dist/chunks/ebuilder-form-NJ4YK6CC.js +2276 -0
- package/dist/chunks/ehr-MMYN36VA.js +5241 -0
- package/dist/chunks/employee-SAK2QYXX.js +11 -0
- package/dist/chunks/esb-HIWHOU7Q.js +141 -0
- package/dist/chunks/fna-KBACQTA5.js +1444 -0
- package/dist/chunks/host-3OHS5QUX.js +21 -0
- package/dist/chunks/host-IG6KEH5Q.js +19 -0
- package/dist/chunks/host-KQL5N4HO.js +23 -0
- package/dist/chunks/host-LLSZQCWR.js +17 -0
- package/dist/chunks/hrm-LYEC67ZQ.js +244 -0
- package/dist/chunks/im-RN2UKAEU.js +252 -0
- package/dist/chunks/invoice-EEPHLAF6.js +5179 -0
- package/dist/chunks/jiuchuanhui-WVVZYSJE.js +1940 -0
- package/dist/chunks/lazy-dispatch-MDOFFL2S.js +28 -0
- package/dist/chunks/mail-LNQLTF6L.js +2695 -0
- package/dist/chunks/meeting-XSD3BDVQ.js +504 -0
- package/dist/chunks/msg-parse-4GSQ2WTO.js +41 -0
- package/dist/chunks/okr-TMWTIU2K.js +2482 -0
- package/dist/chunks/plan-A2FSFA7T.js +2025 -0
- package/dist/chunks/project-T26QLBQF.js +1361 -0
- package/dist/chunks/registry-2VLUAESA.js +14 -0
- package/dist/chunks/registry-JCFEYXOE.js +18 -0
- package/dist/chunks/registry-NYPYMZXG.js +16 -0
- package/dist/chunks/registry-Q7OQJ3SU.js +19 -0
- package/dist/chunks/registry-ZJMJVWFA.js +19 -0
- package/dist/chunks/room-recommend-UR4ZDZS6.js +20 -0
- package/dist/chunks/schedule-5L2PM4M6.js +24 -0
- package/dist/chunks/state-Y2XBP6YE.js +15 -0
- package/dist/chunks/workflow-TR6PG2SL.js +245 -0
- package/dist/cmd/argv.js +45 -0
- package/dist/cmd/docs/index.js +3 -3
- package/dist/cmd/lazy-dispatch.js +20 -0
- package/dist/cmd/root.js +2 -4
- package/dist/cmd/setup/index.js +2 -2
- package/dist/cmd/skills/index.js +2 -2
- package/dist/core/package-paths.js +47 -0
- package/dist/index.js +163 -7
- package/dist/internal/e10/auth/xiaoe.js +3 -3
- package/dist/internal/e10/request-runtime.js +18 -62
- package/dist/internal/skills/detector.js +2 -2
- package/dist/shortcuts/contract/data/performance-catalog.js +1306 -0
- package/dist/shortcuts/contract/host.js +91 -35
- package/dist/shortcuts/contract/index.js +213 -0
- package/dist/shortcuts/contract/manifest.js +928 -0
- package/dist/shortcuts/contract/ooxml/docx.js +295 -0
- package/dist/shortcuts/contract/ooxml/xlsx.js +221 -0
- package/dist/shortcuts/contract/ooxml/zip.js +158 -0
- package/dist/shortcuts/contract/operations/assistant.js +1156 -0
- package/dist/shortcuts/contract/operations/clause-library.js +522 -0
- package/dist/shortcuts/contract/operations/compare.js +193 -0
- package/dist/shortcuts/contract/operations/credit-page.js +34 -0
- package/dist/shortcuts/contract/operations/flow.js +98 -0
- package/dist/shortcuts/contract/operations/page.js +66 -0
- package/dist/shortcuts/contract/operations/performance.js +733 -0
- package/dist/shortcuts/contract/operations/quote.js +557 -0
- package/dist/shortcuts/contract/operations/recommend.js +78 -0
- package/dist/shortcuts/contract/operations/registry.js +18 -0
- package/dist/shortcuts/contract/operations/review.js +83 -0
- package/dist/shortcuts/contract/operations/shared.js +37 -0
- package/dist/shortcuts/contract/operations/upload.js +108 -0
- package/dist/shortcuts/contract/operations/write.js +3 -2
- package/dist/shortcuts/index.js +140 -40
- package/dist/shortcuts/invoice/host.js +2 -1
- package/dist/shortcuts/invoice/manifest.js +36 -12
- package/dist/shortcuts/invoice/operations/issuing-qys.js +132 -36
- package/dist/shortcuts/invoice/operations/reim-auto.js +9 -0
- package/dist/shortcuts/invoice/operations/reim.js +81 -5
- package/dist/shortcuts/invoice/operations/shared.js +12 -5
- package/dist/shortcuts/meeting/host.js +45 -3
- package/dist/shortcuts/meeting/invitation/docx.js +442 -0
- package/dist/shortcuts/meeting/operations/attachment-content.js +418 -0
- package/dist/shortcuts/meeting/operations/attachment.js +442 -0
- package/dist/shortcuts/meeting/operations/eb/cache.js +57 -0
- package/dist/shortcuts/meeting/operations/eb/catalog.js +343 -28
- package/dist/shortcuts/meeting/operations/eb/conflict.js +372 -11
- package/dist/shortcuts/meeting/operations/eb/create-flow.js +710 -0
- package/dist/shortcuts/meeting/operations/eb/decision.js +47 -1
- package/dist/shortcuts/meeting/operations/eb/factory.js +129 -11
- package/dist/shortcuts/meeting/operations/eb/index.js +122 -2
- package/dist/shortcuts/meeting/operations/eb/room-recommend.js +378 -0
- package/dist/shortcuts/meeting/operations/eb/room-summary.js +84 -0
- package/dist/shortcuts/meeting/operations/eb/schedule.js +450 -0
- package/dist/shortcuts/meeting/operations/from-group-chat.js +576 -0
- package/dist/shortcuts/meeting/operations/invitation.js +458 -0
- package/dist/shortcuts/meeting/operations/minute-content.js +266 -0
- package/dist/shortcuts/meeting/operations/pipeline.js +489 -0
- package/dist/shortcuts/meeting/operations/qrcode.js +131 -0
- package/dist/shortcuts/meeting/operations/receipts.js +1 -1
- package/dist/shortcuts/meeting/operations/registry.js +18 -0
- package/dist/shortcuts/meeting/operations/summary.js +276 -0
- package/dist/shortcuts/meeting/operations/task-notify.js +325 -0
- package/dist/shortcuts/meeting/operations.js +42 -1
- package/dist/shortcuts/meeting/qr/encoder.js +427 -0
- package/dist/shortcuts/meeting/qr/render.js +103 -0
- package/dist/shortcuts/workflow/index.js +3 -0
- package/dist/shortcuts/workflow/operations/form.js +17 -5
- package/dist/shortcuts/workflow/operations/read.js +13 -6
- package/dist/shortcuts/workflow/operations/registry.js +2 -0
- package/dist/shortcuts/workflow/operations/todoSmartConvert/businessRules.js +331 -0
- package/dist/shortcuts/workflow/operations/todoSmartConvert/detailFieldRules.js +133 -0
- package/dist/shortcuts/workflow/operations/todoSmartConvert/summaryCache.js +326 -0
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoDetailCache.js +113 -0
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoDetailFetcher.js +259 -0
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoListRows.js +64 -0
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoOutputPlanner.js +28 -0
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.aggregate.js +70 -0
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.collect.js +267 -0
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.core.js +392 -0
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.detail.js +165 -0
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.group.js +448 -0
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.groupSummary.js +348 -0
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.js +222 -0
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.pipeline.js +66 -0
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.smartGroup.js +502 -0
- package/dist/shortcuts/workflow/operations/todoSmartConvert/todoSmartConvert.summary.js +540 -0
- package/docs/_catalog.md +1 -0
- package/docs/contract.md +39 -4
- package/docs/invoice.md +7 -7
- package/docs/todo-smart-convert/README.md +171 -0
- package/docs/todo-smart-convert/data-contract.md +236 -0
- package/docs/todo-smart-convert/mock/ai-todo-query-target.json +209 -0
- package/docs/todo-smart-convert/subgroup-rules.md +245 -0
- package/package.json +3 -2
- package/scripts/bundle.mjs +63 -0
- package/scripts/package-skill.mjs +1 -1
- package/skill-template/business-info.json +25 -4
- package/skill-template/domains/jinchengda.md +16 -3
- package/skill-template/domains/yepiaotong.md +3 -3
- package/skills/weaver-e10-jinchengda/SKILL.md +111 -31
- package/skills/weaver-e10-jinchengda/references/contract-agent-entry.md +7 -13
- package/skills/weaver-e10-jinchengda/references/contract-ai-assistant.md +150 -0
- package/skills/weaver-e10-jinchengda/references/contract-ai-review.md +87 -0
- package/skills/weaver-e10-jinchengda/references/contract-clause-library-crud.md +111 -0
- package/skills/weaver-e10-jinchengda/references/contract-clause-recommender.md +0 -15
- package/skills/weaver-e10-jinchengda/references/contract-clause-reference-save.md +0 -13
- package/skills/weaver-e10-jinchengda/references/contract-credit-page.md +50 -0
- package/skills/weaver-e10-jinchengda/references/contract-disabled-capabilities.md +4 -2
- package/skills/weaver-e10-jinchengda/references/contract-doc-compare.md +74 -0
- package/skills/weaver-e10-jinchengda/references/contract-flow-launch.md +84 -0
- package/skills/weaver-e10-jinchengda/references/contract-performance-query.md +29 -0
- package/skills/weaver-e10-jinchengda/references/contract-quote-to-contract.md +28 -0
- package/skills/weaver-e10-jinchengda/references/contract-request-status.md +2 -21
- package/skills/weaver-e10-jinchengda/references/contract-request-write.md +0 -24
- package/skills/weaver-e10-jinchengda/references/contract-signing-subjects.md +0 -15
- package/skills/weaver-e10-jinchengda/references/contract-subject-create.md +0 -17
- package/skills/weaver-e10-jinchengda/references/contract-template-recommend.md +70 -0
- package/skills/weaver-e10-jinchengda/references/contract-template-selector.md +0 -15
- package/skills/weaver-e10-jinchengda/references/contract-workflow-discovery.md +0 -15
- package/skills/weaver-e10-jinchengda/references/source-manifest.json +1168 -152
- package/skills/weaver-e10-meeting/SKILL.md +493 -17
- package/skills/weaver-e10-meeting/references/meeting-change.md +4 -4
- package/skills/weaver-e10-meeting/references/meeting-create.md +6 -6
- package/skills/weaver-e10-meeting/references/meeting-eb.md +503 -27
- package/skills/weaver-e10-meeting/references/meeting-invitation.md +113 -0
- package/skills/weaver-e10-meeting/references/meeting-lifecycle.md +6 -6
- package/skills/weaver-e10-meeting/references/meeting-minute-file.md +425 -0
- package/skills/weaver-e10-meeting/references/meeting-queries.md +4 -4
- package/skills/weaver-e10-meeting/references/meeting-receipts-signs.md +15 -15
- package/skills/weaver-e10-meeting/references/meeting-verification.md +19 -11
- package/skills/weaver-e10-meeting.zip +0 -0
- package/skills/weaver-e10-workflow/SKILL.md +23 -1
- package/skills/weaver-e10-workflow/references/todo-smart-convert.md +282 -0
- package/skills/weaver-e10-workflow/scripts/todo-summary.cjs +695 -0
- package/skills/weaver-e10-yepiaotong/SKILL.md +15 -11
- package/skills/weaver-e10-yepiaotong/references/invoice-enterprise-list.md +1 -1
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing-examples.md +10 -7
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing-form-fill-rules.md +41 -14
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing-workflow.md +54 -26
- package/skills/weaver-e10-yepiaotong/references/invoice-personal-list.md +6 -5
- package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +14 -11
- package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +97 -56
- package/skills/weaver-e10-yepiaotong/references/reim-examples.md +84 -60
- package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +142 -105
- package/skills/weaver-e10-yepiaotong/references/reim-matching-rules.md +53 -194
- package/skills/weaver-e10-yepiaotong/references/reim-phone-subsidy-rules.md +7 -7
- package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +164 -72
- package/skills/weaver-e10-yepiaotong/references/source-manifest.json +8 -2
- package/templates/meeting/invitation.docx +0 -0
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
- `invoice-add.md`:手工新增发票的 `prepare -> apply` 写入协议。
|
|
14
14
|
- `invoice-update.md`:编辑发票的 `prepare -> apply` 写入协议。
|
|
15
15
|
- `invoice-delete.md`:删除发票的 `prepare -> apply` 写入协议。
|
|
16
|
-
- `invoice-reim.md`:发票报销自动填单的数据准备;报销单创建/修改调用 `weaver-e10-workflow` 的 `workflow.createForm` / `workflow.createRequest` / `workflow.edit
|
|
17
|
-
- `invoice-issuing-workflow.md`:AI
|
|
16
|
+
- `invoice-reim.md`:发票报销自动填单的数据准备;报销单创建/修改调用 `weaver-e10-workflow` 的 `workflow.createForm` / `workflow.createRequest` / `workflow.edit*`。相关客户、相关项目必须在建单前确认(项目可「不填」),禁止先建空草稿再问。用户给出名称时先 `invoice.reim.field.search` 消歧。
|
|
17
|
+
- `invoice-issuing-workflow.md`:AI 开票主链路——获取待开票合同数据(含契约锁、泛微及其他合同)后按合同号分组,按核算公司选择开票流程(上海亘岩网络科技有限公司走契约锁开票流程;泛微网络、泛微软件、上海田亩、成都泛微、泛微国际、北京泛微、浙江泛微走合同收款发票开具及快递申请;为空或不在名单里时先问用户;退票、冲红、红冲走合同开票冲红流程),调用 `weaver-e10-workflow` 的 `workflow.createForm` / `workflow.createRequest` 发起草稿。
|
|
18
18
|
- `invoice-issuing-form-fill-rules.md`:开票流程填单规则,用户没说的字段按默认值填(如本次开票金额 = 总金额)。
|
|
19
19
|
- `invoice-issuing-qys-ledger.md`:兜底链路,用户明确要求时按台账行直接开票或存待开台账。
|
|
20
20
|
- `invoice-issuing.md`:兜底链路,用户明确要求时按口述字段直接开票或存台账的 payload 确认链。
|
|
@@ -27,7 +27,7 @@ Agent 调优重点:
|
|
|
27
27
|
- 写操作只接受 CLI 生成的 continuation,不手工构造或复用。
|
|
28
28
|
- `validate=false` 只能说明跳过查验,不能描述为查验通过。
|
|
29
29
|
- 报销单创建、报销单修改、开票和存台账必须先展示摘要并取得明确确认;报销单按 `workflow.createRequest` 的 `{main, details}` 结构组装 `data`。
|
|
30
|
-
-
|
|
30
|
+
- 开票先获取待开票合同数据(含契约锁、泛微及其他合同),再发起流程草稿(`action` 固定 `draft`)。销售方取台账「核算公司」,名称必须完全相同:「上海亘岩网络科技有限公司」用契约锁开票流程;泛微网络、泛微软件、上海田亩、成都泛微、泛微国际、北京泛微、浙江泛微用「合同收款发票开具及快递申请」;为空或不在名单里时先问用户;退票、冲红、红冲用「合同开票冲红流程」。明细每行只传金额(含税),其余列由合同号联动带出,Agent 不做金额计算。CLI 已无直接开票接口。
|
|
31
31
|
- 直接开票时从用户输入、附件或对话上下文提取购方字段;当前资料包没有客户档案查询 operation,资料不足时追问用户补齐。
|
|
32
32
|
- 当前资料包没有红字发票红冲接口,`invoice.red.*` 不属于可用 operation。
|
|
33
33
|
- 结果为 `partial/write_uncertain` 时停止,不自动重放写请求。
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
name: weaver-e10-jinchengda
|
|
3
3
|
display_name: 泛微今承达合同管理
|
|
4
4
|
display_name_en: Weaver Jinchengda Contract Management
|
|
5
|
-
description: "泛微 E10
|
|
6
|
-
description_zh: "
|
|
7
|
-
description_en: "Weaver E10 Jinchengda contract management skill
|
|
8
|
-
version: 1.
|
|
5
|
+
description: "泛微 E10 今承达合同管理:业绩核算六菜单过滤链接与来源/收款台账只读查询、报价单转合同(真实 docx 模板)、合同智能审查与报告导出、文档比对、模板/范文推荐、资信页、合同类型/模板/条款库增删改查与条款引用、签约主体、合同智能助手,及 12 类合同审批流程的发起/保存/提交/催办。"
|
|
6
|
+
description_zh: "泛微今承达合同管理。触发场景:审查合同/上传合同做 AI 审查/导出审查报告、比对两版合同/查差异、推荐合同模板或范文、查企业资信、找合同模板、维护条款库(新增/修改/删除条款、条款分类、条款组)、查或新建签约主体、业绩核算(直销合同/直销业绩/合同收款/项目验收/渠道订单六菜单过滤链接、按合同号查来源台账与收款台账)、报价单转合同(解析报价 xlsx、用真实 docx 模板生成合同)、维护合同智能助手(新建助手、启用停用智能体、提示语、内控规则、要素抽取、关联流程)、发起/带文件打开合同审批流程、保存/提交/催办合同审批。所有能力通过 weaver-work-cli contract 命令执行。"
|
|
7
|
+
description_en: "Weaver E10 Jinchengda contract management skill covering AI contract review with report export, document comparison, template recommendation, enterprise credit page, contract types/templates, clause library CRUD (categories, clauses, clause groups), clause references, signing subjects, AI assistant configuration (agents, tips, control rules, element extraction, flow bindings), and prepare/apply confirmation chains across 12 contract approval workflows, driven by weaver-work-cli contract."
|
|
8
|
+
version: 1.5.1
|
|
9
9
|
author: 泛微网络科技股份有限公司
|
|
10
10
|
agent_created: true
|
|
11
11
|
requires:
|
|
@@ -16,34 +16,24 @@ cliHelp: "weaver-work-cli contract --help"
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
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
|
认证和登录态只能按共享规则通过 `weaver-work-cli auth ...` 命令判断;禁止直接读取、列出、打印或解析用户主目录下的旧 `.e10-cli`、auth、config 或 Keychain 数据。
|
|
21
20
|
业务命令返回 `authentication` / `session_expired` 时必须停止并读取共享认证规则:Agent 复用任务开始时的宿主判定且禁止调用任何其他登录 Skill;明确为 XiaoE 时只执行 `weaver-work-cli auth xiaoe`,返回 `xiaoe_credential_unavailable` 时停止且不自动改用浏览器登录;非 XiaoE 时取得用户确认的真实 E10 域名后执行 `weaver-work-cli auth login --base-url "<用户确认的 E10 登录域名>" --agent_type "<当前智能体名称>"`。登录恢复后读操作可重放,写操作不得复用旧 continuation,必须重新 prepare 和确认,`partial` / `write_uncertain` 必须先只读回查。
|
|
22
21
|
所有命令通过 `weaver-work-cli --json contract run <operation>` 执行:简单 JSON 优先传 `--input-json '<json>'`,复杂或多行 JSON 先写入 UTF-8 文件再传 `--input <path>`,只有确认当前 shell 能稳定传管道时才使用 `--input -`。调用前先按需读取 references 下对应的文件,查参数结构,不要猜字段;**references 是第一信息源**,`weaver-work-cli contract schema` 是 operation、字段和风险等级的合约来源。
|
|
23
22
|
命令示例、提示词和临时说明必须同时兼容 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 写法。
|
|
24
23
|
涉及合同正文、附件、图片、本地文件或远程 URL 文件的操作,执行前必须提醒用户:文件内容可能被上传到 E10 今承达,并可能进入当前大模型上下文用于理解和处理;必须等待用户明确确认后才继续。
|
|
25
24
|
|
|
26
|
-
## 请求头 / 认证
|
|
27
|
-
|
|
28
|
-
本技能发起的 API 请求通过 `weaver-work-cli` 执行,CLI 从 E10 登录会话自动注入以下凭证头:
|
|
29
|
-
|
|
30
|
-
| 请求头 | 值 |
|
|
31
|
-
|--------|-----|
|
|
32
|
-
| `Cookie` | `<e10-login 返回的完整原始 Cookie 串>`(禁止裁剪/去重/改写) |
|
|
33
|
-
| `eteamsid` | `<e10-login 返回的 ETEAMSID>` |
|
|
34
|
-
| `User-Agent` | `AgentType=<agentType>,IsAgent=true` |
|
|
35
|
-
|
|
36
|
-
上述凭证由 CLI 按共享认证规则建立会话后自动注入,业务输入(`--input-json` / `--input`)**不得包含** `userid`、`userId`、`token`、`cookie`、`eteamsid` 等字段,用户 ID 由 CLI 从会话注入。
|
|
37
|
-
|
|
38
25
|
## 适用场景与触发条件
|
|
39
26
|
|
|
40
27
|
当用户表达命中以下任一类意图时,优先加载本 skill 并路由到 `weaver-work-cli contract`:
|
|
41
28
|
|
|
42
|
-
-
|
|
29
|
+
- 关键词:合同类型、合同模板、模板推荐、范文推荐、条款、条款分类、条款标签、条款推荐、条款引用、维护条款库、新增条款、修改条款、删除条款、条款组、签约主体、智能助手、AI 助手、助手配置、智能体、提示语、内控规则、规则组、要素抽取、关联流程、我方签约主体、客户签约主体、供应商签约主体
|
|
30
|
+
- 合同智能审查:审查合同、AI 审查、上传合同、风险点、内控问题、法审、纠错、导出审查报告
|
|
31
|
+
- 文档比对:比对合同、比对两个版本、合同差异、版本对比、导出比对报告
|
|
32
|
+
- 企业资信:查资信、企业工商信息、主体资信、合作方背景
|
|
43
33
|
- 合同审批场景:销售合同、采购合同、协议合同、合同变更、合同解除、合同关闭、合同开票、合同收款、合同付款、履约计划、进度提报、供应商准入
|
|
44
|
-
- 动作词:查条款 / 推荐条款 /
|
|
34
|
+
- 动作词:查条款 / 推荐条款 / 引用条款、查或新建签约主体、发起合同、带文件打开流程、保存合同表单、提交审批、催办、查审批进度、查审批意见
|
|
45
35
|
|
|
46
|
-
使用时机:最终动作落在今承达合同对象上,且必须通过 CLI
|
|
36
|
+
使用时机:最终动作落在今承达合同对象上,且必须通过 CLI 完成查询、上传或写入时。仅需工商数据明细(诉讼、被执行、股权)时本 skill 只能打开资信页,不能返回数据;通用 E10 对象操作用对应模块 skill(见 [`contract-disabled-capabilities.md`](references/contract-disabled-capabilities.md))。
|
|
47
37
|
|
|
48
38
|
## 路由优先级(先判断是不是今承达合同,再选 operation)
|
|
49
39
|
|
|
@@ -51,22 +41,53 @@ cliHelp: "weaver-work-cli contract --help"
|
|
|
51
41
|
|
|
52
42
|
### 明确归 `weaver-e10-jinchengda` 的高优先级语义
|
|
53
43
|
|
|
44
|
+
- 合同智能审查 / AI 审查 / 上传合同 / 审查报告 / 风险点 / 内控问题 / 法审 / 纠错
|
|
45
|
+
- 合同文档比对 / 版本对比 / 合同差异 / 比对报告
|
|
46
|
+
- 合同模板推荐 / 范文推荐(自然语言描述需求)
|
|
47
|
+
- 企业资信页 / 合作方资信入口
|
|
48
|
+
- 业绩核算:直销合同 / 直销业绩 / 合同收款 / 项目验收 / 渠道订单 / 渠道订单-商务的过滤链接与台账查询
|
|
49
|
+
- 报价单转合同:解析报价单 xlsx、人民币大写、用真实合同模板生成 docx
|
|
54
50
|
- 合同类型 / 合同模板 / 模板分类 / 模板详情
|
|
55
|
-
- 条款 / 条款分类 / 条款标签 / 条款搜索 / 条款推荐 / 条款引用
|
|
51
|
+
- 条款 / 条款分类 / 条款标签 / 条款搜索 / 条款推荐 / 条款引用 / 条款库维护(新增、修改、删除条款与条款组)
|
|
56
52
|
- 我方签约主体 / 客户签约主体 / 供应商主体 / 签约主体库
|
|
57
53
|
- 销售合同、采购合同、协议、变更、解除、关闭、开票、收款、付款、履约计划、进度提报、供应商准入的合同审批流程
|
|
58
|
-
-
|
|
54
|
+
- 合同智能助手 / 助手配置 / 智能体启用停用 / 提示语 / 内控规则与规则组 / 要素抽取 / 助手关联流程
|
|
55
|
+
- 发起合同 / 带文件打开流程 / 保存合同表单 / 提交合同审批 / 催办 / 审批进度 / 审批意见
|
|
59
56
|
|
|
60
|
-
**判定规则:**
|
|
57
|
+
**判定规则:** 只要最终动作是对今承达合同做审查、比对、模板推荐、资信页、业绩核算查询、报价单转合同、模板条款查询、主体查询、主体新建、条款引用写入、流程发起、表单保存、提交审批或催办,或维护合同智能助手(助手、智能体、提示语、内控规则、要素抽取、关联流程),就归 `weaver-e10-jinchengda`。企业资信**数据明细**(诉讼、被执行、变更、监控)与撤回/退回流程等源资料未给出接口的能力不在范围内(见 [`contract-disabled-capabilities.md`](references/contract-disabled-capabilities.md))。
|
|
61
58
|
|
|
62
59
|
## 选哪个命令
|
|
63
60
|
|
|
64
61
|
| 想做什么 | 命令 | 按需读取 reference |
|
|
65
62
|
|---|---|---|
|
|
66
63
|
| 查看可用 operation、字段和风险等级 | `contract schema` | [`contract-agent-entry.md`](references/contract-agent-entry.md) |
|
|
64
|
+
| 上传合同并打开 AI 审查页 | `contract run contract.review.upload` | [`contract-ai-review.md`](references/contract-ai-review.md) |
|
|
65
|
+
| 导出审查记录(内控/法审/纠错) | `contract run contract.review.export` | [`contract-ai-review.md`](references/contract-ai-review.md) |
|
|
66
|
+
| 打开合同流程页(不带文件) | `contract run contract.flow.page` | [`contract-flow-launch.md`](references/contract-flow-launch.md) |
|
|
67
|
+
| 上传合同并打开流程页(自动回填) | `contract run contract.flow.launch` | [`contract-flow-launch.md`](references/contract-flow-launch.md) |
|
|
68
|
+
| 按需求描述推荐模板/范文 | `contract run contract.recommend.doc` | [`contract-template-recommend.md`](references/contract-template-recommend.md) |
|
|
69
|
+
| 上传待比对文件 | `contract run contract.compare.upload` | [`contract-doc-compare.md`](references/contract-doc-compare.md) |
|
|
70
|
+
| 检索系统内文件 / 取历史版本 | `contract run contract.compare.search/versions` | [`contract-doc-compare.md`](references/contract-doc-compare.md) |
|
|
71
|
+
| 打开文档比对页 | `contract run contract.compare.page` | [`contract-doc-compare.md`](references/contract-doc-compare.md) |
|
|
72
|
+
| 拉取比对差异结果 | `contract run contract.compare.diff` | [`contract-doc-compare.md`](references/contract-doc-compare.md) |
|
|
73
|
+
| 打开企业资信页 | `contract run contract.credit.page` | [`contract-credit-page.md`](references/contract-credit-page.md) |
|
|
74
|
+
| 助手初始化 / 列表 / 16 智能体查询 | `contract run contract.assistant.init/list/config.query` | [`contract-ai-assistant.md`](references/contract-ai-assistant.md) |
|
|
75
|
+
| 查存储目录 / 执行方式 / 提示语 | `contract run contract.assistant.doc.query/tips.query` | [`contract-ai-assistant.md`](references/contract-ai-assistant.md) |
|
|
76
|
+
| 检索文档目录 / 关键词组 | `contract run contract.assistant.doc.folder.search/keygroup.search` | [`contract-ai-assistant.md`](references/contract-ai-assistant.md) |
|
|
77
|
+
| 准备/确认新建、删除助手 | `contract run contract.assistant.create/delete.prepare/apply` | [`contract-ai-assistant.md`](references/contract-ai-assistant.md) |
|
|
78
|
+
| 准备/确认改存储目录、执行方式、智能体配置 | `contract run contract.assistant.doc.save/agent.update.prepare/apply` | [`contract-ai-assistant.md`](references/contract-ai-assistant.md) |
|
|
79
|
+
| 准备/确认维护提示语 | `contract run contract.assistant.tips.create/delete.prepare/apply` | [`contract-ai-assistant.md`](references/contract-ai-assistant.md) |
|
|
80
|
+
| 查内控分类 / 规则 / 规则组;准备/确认其增删改 | `contract run contract.assistant.rule.classification.list` 与 `rule.*.prepare/apply` | [`contract-ai-assistant.md`](references/contract-ai-assistant.md) |
|
|
81
|
+
| 查要素集合;准备/确认新增删除要素集合 | `contract run contract.assistant.element.query/create/delete.prepare/apply` | [`contract-ai-assistant.md`](references/contract-ai-assistant.md) |
|
|
82
|
+
| 查 / 准备 / 确认维护助手关联流程 | `contract run contract.assistant.flow.list/save/update/delete.prepare/apply` | [`contract-ai-assistant.md`](references/contract-ai-assistant.md) |
|
|
67
83
|
| 查合同类型树 | `contract run contract.type.tree` | [`contract-template-selector.md`](references/contract-template-selector.md) |
|
|
68
84
|
| 查模板分类树 / 模板列表 / 模板详情 | `contract run contract.template.tree/list/detail` | [`contract-template-selector.md`](references/contract-template-selector.md) |
|
|
69
85
|
| 查条款分类 / 条款列表 / 条款组 / 条款搜索 / 条款标签 | `contract run contract.clause.tree/list/group.list/search/tags` | [`contract-clause-recommender.md`](references/contract-clause-recommender.md) |
|
|
86
|
+
| 检查条款库权限 | `contract run contract.clause.permission` | [`contract-clause-library-crud.md`](references/contract-clause-library-crud.md) |
|
|
87
|
+
| 判重 / 按名称检索条款 / 检索分部 | `contract run contract.clause.check/browser/subcompany` | [`contract-clause-library-crud.md`](references/contract-clause-library-crud.md) |
|
|
88
|
+
| 准备/确认新增、修改、删除条款 | `contract run contract.clause.create/update/delete.prepare/apply` | [`contract-clause-library-crud.md`](references/contract-clause-library-crud.md) |
|
|
89
|
+
| 准备/确认维护条款分类(删除会级联) | `contract run contract.clause.category.create/update/delete.prepare/apply` | [`contract-clause-library-crud.md`](references/contract-clause-library-crud.md) |
|
|
90
|
+
| 准备/确认维护条款组 | `contract run contract.clause.group.create/update/delete.prepare/apply` | [`contract-clause-library-crud.md`](references/contract-clause-library-crud.md) |
|
|
70
91
|
| 查合同文档已引用条款 | `contract run contract.clause.reference.get` | [`contract-clause-reference-save.md`](references/contract-clause-reference-save.md) |
|
|
71
92
|
| 准备/确认把条款写入合同文档 | `contract run contract.clause.reference.save.prepare/apply` | [`contract-clause-reference-save.md`](references/contract-clause-reference-save.md) |
|
|
72
93
|
| 解析 appId / objId / 字段 / 选项 | `contract run contract.subject.app/form/fields/options` | [`contract-signing-subjects.md`](references/contract-signing-subjects.md) |
|
|
@@ -78,12 +99,26 @@ cliHelp: "weaver-work-cli contract --help"
|
|
|
78
99
|
| 准备/确认提交合同审批 | `contract run contract.request.submit.prepare/apply` | [`contract-request-write.md`](references/contract-request-write.md) |
|
|
79
100
|
| 准备/确认催办 | `contract run contract.request.supervise.prepare/apply` | [`contract-request-write.md`](references/contract-request-write.md) |
|
|
80
101
|
| 查审批状态 / 签字意见 | `contract run contract.request.status/log` | [`contract-request-status.md`](references/contract-request-status.md) |
|
|
81
|
-
|
|
|
102
|
+
| 构造业绩菜单过滤链接 / 查台账字段 | `contract run contract.performance.link/fields` | [`contract-performance-query.md`](references/contract-performance-query.md) |
|
|
103
|
+
| 按合同号查三类来源台账 / 收款台账 | `contract run contract.performance.list.query/receipt.query` | [`contract-performance-query.md`](references/contract-performance-query.md) |
|
|
104
|
+
| 解析报价单 xlsx / 人民币大写 | `contract run contract.quote.parse/rmb` | [`contract-quote-to-contract.md`](references/contract-quote-to-contract.md) |
|
|
105
|
+
| 用真实模板生成合同 docx | `contract run contract.quote.fill` | [`contract-quote-to-contract.md`](references/contract-quote-to-contract.md) |
|
|
106
|
+
| 企业资信数据明细、撤回/退回等未实现能力 | 无可用命令 | [`contract-disabled-capabilities.md`](references/contract-disabled-capabilities.md) |
|
|
82
107
|
|
|
83
108
|
处理链:
|
|
84
109
|
|
|
110
|
+
- 智能审查:`contract.review.upload`(拿 `files[].fileId/docId`)-> 打开结果 `url`(`width: 1000`,不编码)-> 用户要报告时 `contract.review.export` -> 按 `sclx` 生成 Markdown 报告并 `present_files`
|
|
111
|
+
- 文档比对:确定 baseFile(`contract.compare.upload` / `contract.compare.search` / `contract.compare.versions`)-> 确定 compareFile -> `contract.compare.page` 打开页面 -> 用户要报告时 `contract.compare.diff`
|
|
112
|
+
- 模板推荐:`contract.recommend.doc`(超时 180 秒,慢不重试)-> 表格展示 `recommendations` -> 打开 `url`
|
|
113
|
+
- 带文件发起流程:`contract.flow.launch`(内部先 `loadBaseParam` 取 `requestId`,再按 `module=workflow` 上传)-> 打开 `url`(带 `fileId` 与 `automaticFormFilling=true`)
|
|
114
|
+
- 资信页:确认企业全称 -> `contract.credit.page` -> 打开 `url`(`name[N]` 只对值编码一次)
|
|
115
|
+
- 业绩核算:本地直算(不发起网络请求) `contract.performance.link`(`needs_ui` 项由用户在页面补填,AI 不代操作)-> 实际数据走 `contract.performance.list.query`(精确 eq)/`contract.performance.receipt.query`(收款台账)
|
|
116
|
+
- 报价单转合同:`contract.quote.sheets` 让用户选 sheet -> `contract.quote.parse`(校验 warnings/checks)-> 用户确认数据 -> 必须先有真实 .docx 模板 -> `contract.quote.fill`(unfilled 交给用户补,不编造)
|
|
85
117
|
- 选模板:`contract.type.tree` -> `contract.template.tree`(取 `belongId`)-> `contract.template.list` -> 必要时 `contract.template.detail`
|
|
86
118
|
- 推荐条款:`contract.clause.tags`(取 `tagId`)-> `contract.clause.tree`(取 `belongId`)-> `contract.clause.search` -> 展示候选名称、状态与推荐理由,**不伪造"智能评分"**
|
|
119
|
+
- 维护条款库:`contract.clause.permission`(未放行立即停)-> `contract.clause.tree` 取 `belongId` -> `contract.clause.check` 判重 -> `contract.clause.create.prepare` -> 用户确认 -> `contract.clause.create.apply` -> 读 `readback.clauseNum` 确认编号落库 -> 打开 `terms-library?tab=1`
|
|
120
|
+
- 维护条款组:`contract.clause.browser` 取条款 id(多条必须让用户选)-> `contract.clause.subcompany` 取分部或 `belongSub: ""` -> `contract.clause.group.create.prepare` -> `apply` -> 用 `getListPage` 回读
|
|
121
|
+
- 维护智能助手:`contract.assistant.list` 先解析助手(多个必须让用户选)-> `contract.assistant.config.query` 拿 Control/Extract 智能体 id -> 内控规则走「建分类 -> 建规则 -> 建规则组关联 Control」三步 -> 写操作全部 prepare -> 用户确认 -> apply -> 用对应 query 接口回读 -> 打开 `ai-setting` 页
|
|
87
122
|
- 引用条款:`contract.clause.reference.get` 查已引用 -> 用户确认具体条款、合同和文件 -> `contract.clause.reference.save.prepare` -> 用户确认 -> `contract.clause.reference.save.apply` -> 回查 `contract.clause.reference.get`
|
|
88
123
|
- 签约主体:`contract.subject.app`(应用 Tag 固定 `合同管理`)-> `contract.subject.form`(按意图选 `我方签约主体库` / `客户签约主体库` / `供应商签约主体库`)-> `contract.subject.fields` / `contract.subject.options` -> `contract.subject.query` 或 `contract.subject.create.prepare/apply`
|
|
89
124
|
- 发起合同审批:`contract.workflow.query` 或 `contract.workflow.list` 解析 `workflowId`(无需预先获取活动版本)-> `contract.workflow.form.info` 读字段 -> `contract.workflow.field.options` 把业务名称转成选项 ID -> `contract.request.create.prepare/apply` 取 `requestId` -> `contract.request.save.prepare/apply` -> **第二次确认** -> `contract.request.submit.prepare/apply` -> `contract.request.status` 回读 `flowStatus.code`
|
|
@@ -96,8 +131,29 @@ cliHelp: "weaver-work-cli contract --help"
|
|
|
96
131
|
- 未找到就停止并提示用户配置 Tag 或确认名称;**不使用标准环境 ID 兜底**
|
|
97
132
|
- 同名流程返回多条时展示候选请用户选择或加 `status=1` 收敛,**不默认取第一条**
|
|
98
133
|
- 名称匹配不到选项时展示候选请用户确认,**不得猜测 optionId**
|
|
134
|
+
- 例外:下面这些是**固定业务常量**,不是环境占位符,禁止替换或"运行时解析":
|
|
135
|
+
- 审查上传 `module=ebContract`、`createDoc=true`;审查导出 `ai_id=1326842382967570463`
|
|
136
|
+
- 流程上传 `module=workflow`、`folderId=300`,以及四个流程的 `workflowId` / `fieldId`(见 [`contract-flow-launch.md`](references/contract-flow-launch.md))
|
|
137
|
+
- 范文推荐 `textObjId=1290191829260230657`
|
|
138
|
+
- 比对上传 `module=docCompared`,以及比对页 10 个 `options[...]` 默认值
|
|
139
|
+
- 助手关联流程 `toolId=803297036482249914`,删除绑定 `type=contract_ai_workflow_data`
|
|
140
|
+
|
|
141
|
+
### 2) 文件上传统一走两段式 HTTP
|
|
142
|
+
|
|
143
|
+
- 所有上传都是 `POST /api/file/preUploadCheck` -> `POST /api/file/module/upload`;三个场景的 `module` **不能混用**:审查 `ebContract`、流程 `workflow`、比对 `docCompared`
|
|
144
|
+
- 预检返回非空 `fileid` 即秒传,**跳过第二段**;否则必须拿 `preUploadId` 再带文件本体
|
|
145
|
+
- 成功判据是**非空 `fileId`**,HTTP 200 不算成功
|
|
146
|
+
- `uploadType=chunk` 时停止(分片链路未实现),不要盲目重试
|
|
147
|
+
- 只接受 `.doc` / `.docx`;单文件 ≤ 200MB
|
|
99
148
|
|
|
100
|
-
###
|
|
149
|
+
### 3) 页面地址不做整体编码
|
|
150
|
+
|
|
151
|
+
- 所有 `sp/` 页面地址(审查页、比对页、流程页、推荐结果页、资信页)都由 CLI 用字面拼接生成
|
|
152
|
+
- `:`、`/`、`?`、`&`、`=`、`[`、`]` 与中文文件名保持原样,**禁止**再做 `encodeURIComponent`、`URLSearchParams` 或套 `redirectUrl`
|
|
153
|
+
- 唯一例外:资信页 `name[N]` 的**值**由 CLI 做一次 `encodeURIComponent`
|
|
154
|
+
- 打开页面时统一带 `"width": 1000`(资信页另有 `"title": "资信查询"`、`"activate": true`)
|
|
155
|
+
|
|
156
|
+
### 4) HTTP 200 不是业务成功的充分条件
|
|
101
157
|
|
|
102
158
|
- 本组接口的成功码字段不统一:
|
|
103
159
|
- `/api/ebd/**`:顶层 `code = 0` 或 `code = 200` 均视为成功(实测 E10 10.0.9807.01 返回 `200` 且 `msg = "接口返回成功"`),同时要求 `status` 不为 false、`fail` 不为 true
|
|
@@ -107,14 +163,21 @@ cliHelp: "weaver-work-cli contract --help"
|
|
|
107
163
|
- `/api/workflow/core/flowPage/**`、`/api/workflow/core/form/**`、`/api/ebuilder/flow/form/**`(表单三段式):**没有 `message` 节点**,只有出现非 0/200 的 `errcode`、或 `fail=true` / `status=false` 才算失败;载荷包在 `data` 里
|
|
108
164
|
- CLI 已按路径分组判定;Agent 仍需把"请求成功"与"业务生效"分开报告
|
|
109
165
|
|
|
110
|
-
###
|
|
166
|
+
### 5) 条款库必须先过 checkPermissionV2
|
|
167
|
+
|
|
168
|
+
- 任何条款库接口(含查询类)之前,CLI 都会先调 `checkPermissionV2?moduleFlag=termComponent`,并带固定业务头 `ebbusinessid: 10000000000000000`
|
|
169
|
+
- 放行依据**只有** `data.checkPermission === true`;`hasLicense`/`privateDeploy`/`isRelease` 不作依据
|
|
170
|
+
- 未放行时返回 `policy/clause_no_permission`(退出码 6),必须**立即中止**,不重试、不换接口绕行
|
|
171
|
+
- 条款写操作的已知陷阱(`clauseNum` 静默失败、`clauseVersion`/`clauseGroup` 缺失 500、`contractType` 必须成对、条款组 `belongSub` 必传)见 [`contract-clause-library-crud.md`](references/contract-clause-library-crud.md)
|
|
172
|
+
|
|
173
|
+
### 6) 写操作必须走 prepare -> apply 两段确认
|
|
111
174
|
|
|
112
175
|
- 创建签约主体、引用条款、开启企业监控、创建/保存合同审批流程前,必须展示目标、关键字段和影响的脱敏摘要并获得明确确认
|
|
113
176
|
- **提交合同审批和催办需要与"创建并保存"分开的第二次确认**
|
|
114
177
|
- 提交后必须回读 `contract.request.status` 的 `flowStatus.code`(1 审批中 / 3 已归档)才算生效,不能只凭第一步返回就宣称"提交成功"
|
|
115
178
|
- 创建流程 ≠ 保存表单 ≠ 提交审批,必须分别报告每一步结果,不得概括为"成功"
|
|
116
179
|
|
|
117
|
-
###
|
|
180
|
+
### 7) 错误语义驱动,而不是盲目重试
|
|
118
181
|
|
|
119
182
|
- 失败后先看退出码、`error.type`、`error.subtype` 和 `error.message`
|
|
120
183
|
- 写请求超时或断线时不得盲目重试,先用查询接口确认是否已生效
|
|
@@ -122,9 +185,15 @@ cliHelp: "weaver-work-cli contract --help"
|
|
|
122
185
|
- `submitRequest` 返回 `1200306`(服务端必填校验):解析缺失字段列表,逐字段补全后重试(最多 3 轮),不切换接口
|
|
123
186
|
- 错误为 `authentication` 或 `session_expired` 时立即停止,先读取共享规则 `../weaver-e10-shared/references/e10-auth-and-session.md` 让用户完成登录
|
|
124
187
|
|
|
125
|
-
###
|
|
188
|
+
### 8) 智能助手的三个高频误伤
|
|
189
|
+
|
|
190
|
+
- **启用/停用智能体只允许改 `status_info`**(1 开 / 0 关);`display` 是平台保留字段(前端卡片展示),技术上会被静默落库导致卡片从界面消失——CLI 检测到输入含 `display` 直接拒绝
|
|
191
|
+
- **删除类接口普遍假成功**:删助手、删提示语、删关联流程对不存在的 id 也返回 success;CLI 的 apply 强制回读复核,`type=contract_ai_workflow_data` 由 CLI 强制携带
|
|
192
|
+
- **内控规则三步缺一不可**:分类 -> 规则 -> 规则组关联 Control 智能体;只建规则页面看不到。`pzxx` / `element_mxb` / `contract_rule_source` 必须是 JSON 字符串(对象入参由 CLI 自动转换),`element_content` 与 `element_mxb` 两份重复数据必须都传
|
|
193
|
+
|
|
194
|
+
### 9) 附件、图片和文件解析确认
|
|
126
195
|
|
|
127
|
-
- 执行涉及合同正文、附件、本地文件或远程 URL
|
|
196
|
+
- 执行涉及合同正文、附件、本地文件或远程 URL 文件的步骤前(含上传、审查、比对、流程回填),必须先提醒用户文件内容可能进入大模型上下文,也可能发送到 E10 今承达;用户未明确确认前不要运行。
|
|
128
197
|
|
|
129
198
|
## 写操作失败处理:`partial/write_uncertain` 决策树
|
|
130
199
|
|
|
@@ -143,6 +212,11 @@ weaver-work-cli contract schema
|
|
|
143
212
|
weaver-work-cli --json contract run contract.type.tree
|
|
144
213
|
weaver-work-cli --json contract run contract.subject.app --input-json '{"tag":"合同管理"}'
|
|
145
214
|
weaver-work-cli --json contract run contract.workflow.query --input-json '{"workflowName":"销售合同起草","status":"1"}'
|
|
215
|
+
weaver-work-cli --json contract run contract.review.upload --input-json '{"paths":["D:/contracts/销售合同.docx"]}'
|
|
216
|
+
weaver-work-cli --json contract run contract.review.export --input-json '{"fileId":"12345","sclx":"1,2,3"}'
|
|
217
|
+
weaver-work-cli --json contract run contract.assistant.list --input-json '{"name":"采购"}'
|
|
218
|
+
weaver-work-cli --json contract run contract.compare.page --input-json '{"baseFileId":"9000","baseFileName":"原版.docx","compareFileId":"9001","compareFileName":"修订版.docx"}'
|
|
219
|
+
weaver-work-cli --json contract run contract.recommend.doc --input-json '{"content":"销售一套协同办公系统,含实施服务,金额80万"}'
|
|
146
220
|
weaver-work-cli --json contract run contract.request.create.prepare --input-json '{"workflowId":"12345","requestname":"WB-SKILL-TEST 销售合同"}'
|
|
147
221
|
weaver-work-cli --json contract run contract.request.create.apply --input-json '{"workflowId":"12345","requestname":"WB-SKILL-TEST 销售合同","continuation":"PREPARE_CONTINUATION","confirm":true}'
|
|
148
222
|
```
|
|
@@ -154,6 +228,10 @@ weaver-work-cli contract schema
|
|
|
154
228
|
weaver-work-cli --json contract run contract.type.tree
|
|
155
229
|
weaver-work-cli --json contract run contract.subject.app --input-json '{"tag":"合同管理"}'
|
|
156
230
|
weaver-work-cli --json contract run contract.workflow.query --input-json '{"workflowName":"销售合同起草","status":"1"}'
|
|
231
|
+
weaver-work-cli --json contract run contract.review.upload --input-json '{"paths":["/data/contracts/销售合同.docx"]}'
|
|
232
|
+
weaver-work-cli --json contract run contract.review.export --input-json '{"fileId":"12345","sclx":"1,2,3"}'
|
|
233
|
+
weaver-work-cli --json contract run contract.compare.page --input-json '{"baseFileId":"9000","baseFileName":"原版.docx","compareFileId":"9001","compareFileName":"修订版.docx"}'
|
|
234
|
+
weaver-work-cli --json contract run contract.recommend.doc --input-json '{"content":"销售一套协同办公系统,含实施服务,金额80万"}'
|
|
157
235
|
weaver-work-cli --json contract run contract.request.create.prepare --input-json '{"workflowId":"12345","requestname":"WB-SKILL-TEST 销售合同"}'
|
|
158
236
|
weaver-work-cli --json contract run contract.request.create.apply --input-json '{"workflowId":"12345","requestname":"WB-SKILL-TEST 销售合同","continuation":"PREPARE_CONTINUATION","confirm":true}'
|
|
159
237
|
```
|
|
@@ -162,7 +240,9 @@ weaver-work-cli --json contract run contract.request.create.apply --input-json '
|
|
|
162
240
|
|
|
163
241
|
- 禁止绕过本 skill 的命令面自行复刻旧版「今承达」接口文档里的裸调用,所有能力必须走 `weaver-work-cli contract`。
|
|
164
242
|
- 禁止 curl、fetch、浏览器自动化或直接访问 E10 `/api/ebd/**`、`/api/ebuilder/**`、`/api/workflow/**`。
|
|
165
|
-
-
|
|
243
|
+
- 禁止绕过 CLI 读取或复制其运行时凭据;用户身份与请求上下文由 CLI 从会话注入,业务输入不传身份字段。
|
|
166
244
|
- 禁止读取、列出、打印或解析用户主目录下的旧 `.e10-cli`、auth、config 或 Keychain 数据。
|
|
167
|
-
-
|
|
245
|
+
- 企业资信:`contract.credit.page` 只负责打开资信页面,**不返回**工商、诉讼、被执行、变更、监控等数据;`contract.credit.query` / `contract.credit.change` / `contract.credit.monitor` 源资料缺少接口契约,未实现。
|
|
168
246
|
- 撤回/退回流程:源资料只提及接口存在,未给出路径与参数,未实现。
|
|
247
|
+
- 打开页面 ≠ 完成业务:不得把"已打开审查页"报告成"审查完成",也不得把"已打开流程页"报告成"流程已发起"。
|
|
248
|
+
- 审查报告与比对报告的**文件生成**(Markdown/HTML/Office)由 Agent 在工作区完成;CLI 只提供结构化审查记录与差异结果,禁止用空内容拼报告充数。
|
|
@@ -1,17 +1,5 @@
|
|
|
1
1
|
# 今承达合同管理 CLI 入口
|
|
2
2
|
|
|
3
|
-
## 请求头 / 认证
|
|
4
|
-
|
|
5
|
-
所有 `weaver-work-cli contract run <operation>` 发起的 API 请求均自动携带以下凭证头,值来自 CLI 按入口 `SKILL.md` 的宿主分流建立的 E10 登录会话,禁止业务输入携带:
|
|
6
|
-
|
|
7
|
-
| 头 | 值来源 | 说明 |
|
|
8
|
-
|---|---|---|
|
|
9
|
-
| `Cookie` | E10 登录返回的完整原始 Cookie 串 | CLI 从会话注入,禁止裁剪/去重/改写 |
|
|
10
|
-
| `eteamsid` | E10 登录返回的 ETEAMSID | CLI 从会话注入 |
|
|
11
|
-
| `User-Agent` | `AgentType=<agentType>,IsAgent=true` | CLI 自动拼接,`agentType` 来自登录时的 `--agent_type` 参数 |
|
|
12
|
-
|
|
13
|
-
业务输入(`--input-json` / `--input`)**不得包含** `userid`、`userId`、`token`、`cookie`、`eteamsid` 等字段,用户 ID 由 CLI 从会话注入。
|
|
14
|
-
|
|
15
3
|
## operation 合约第一信息源
|
|
16
4
|
|
|
17
5
|
`weaver-work-cli contract schema` 输出 operation 名称、`risk`、`fixed`(固定的方法与路径)、`inputSchema` 和 `withheldOperations`。调用前先读它,不要凭记忆拼 operation 名和字段名。
|
|
@@ -58,6 +46,13 @@ weaver-work-cli --json contract run contract.request.status --input-json '{"requ
|
|
|
58
46
|
- `contract subject app|form|fields|options|query|create-prepare|create-apply`
|
|
59
47
|
- `contract workflow query|list|form-info|field-options`
|
|
60
48
|
- `contract request create-prepare|create-apply|save-prepare|save-apply|submit-prepare|submit-apply|supervise-prepare|supervise-apply|status|log`
|
|
49
|
+
- `contract review upload|export`
|
|
50
|
+
- `contract flow page|launch`
|
|
51
|
+
- `contract recommend doc`
|
|
52
|
+
- `contract compare upload|search|versions|page|diff`
|
|
53
|
+
- `contract credit page`
|
|
54
|
+
|
|
55
|
+
`paths`、`names` 这类**数组输入**只能走 `--input-json` / `--input`,子命令没有对应选项。
|
|
61
56
|
|
|
62
57
|
Agent 侧优先用 `run <operation>`,保证输入与 manifest 完全一致。
|
|
63
58
|
|
|
@@ -77,6 +72,5 @@ Agent 侧优先用 `run <operation>`,保证输入与 manifest 完全一致。
|
|
|
77
72
|
|
|
78
73
|
## 注意
|
|
79
74
|
|
|
80
|
-
- 业务输入不得包含 `userid`、`userId`、`token`、`cookie`、`eteamsid` 等字段;用户 ID 由 CLI 从会话注入。
|
|
81
75
|
- 环境相关 ID(`appId`、`objId`、`formId`、`workflowId`、`nodeId`)只能运行时解析,禁止使用文档示例值或标准环境 ID 兜底。
|
|
82
76
|
- 涉及合同正文或附件的操作,文件内容可能进入大模型上下文,执行前必须获得用户明确确认。
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# 合同智能助手(AI Assistant)
|
|
2
|
+
|
|
3
|
+
> 16 个智能体、助手配置、提示语、内控规则、要素抽取、关联流程的完整 CLI 用法。
|
|
4
|
+
> 所有命令形如 `weaver-work-cli --json contract run <operation> --input-json '<json>'`。
|
|
5
|
+
> 成功判据:`code=200 且 status=true`(CLI 已按路径判定,HTTP 200 不代表业务成功)。
|
|
6
|
+
|
|
7
|
+
## 1. ID 串联链路(先读这一节)
|
|
8
|
+
|
|
9
|
+
几乎所有操作依赖三个 id,按顺序解析:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
contract.assistant.init → 初始化状态(importStatus=already 即可用)
|
|
13
|
+
contract.assistant.meta → ebFormId / viewId / fieldsMap
|
|
14
|
+
contract.assistant.list → 助手列表 → ai_id(助手数据 id)
|
|
15
|
+
contract.assistant.config.query → 16 智能体
|
|
16
|
+
├─ ai_mark=Control 的 id → rule_config_id(内控规则组 / 关联流程用)
|
|
17
|
+
└─ ai_mark=Extract 的 id → config_id(要素抽取用)
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
- **助手列表只有一个时**:未指定 `ai_id` 可默认使用它;多个必须让用户选。
|
|
21
|
+
- **configType 陷阱**:助手列表固定 `ai_background_config`。`ai_component_config` 是组件配置,也能查出数据但答非所问;`ai_compenent_config` 是错拼,不存在。CLI 已把 type 固定,无需担心。
|
|
22
|
+
- **列表 `total` 恒为 0**(服务端行为),以返回行数为准。
|
|
23
|
+
|
|
24
|
+
## 2. 查询类 operation
|
|
25
|
+
|
|
26
|
+
| operation | 输入 | 说明 |
|
|
27
|
+
|---|---|---|
|
|
28
|
+
| `contract.assistant.init` | 无 | 初始化状态;未完成时自动轮询 `getInitStatus` 最多 6 次(每次 1.5s),仍未完成返回 `warning` 与 `traceId` |
|
|
29
|
+
| `contract.assistant.meta` | 无 | 列表字段映射,查询条件 key 格式 `field_<字段id>` |
|
|
30
|
+
| `contract.assistant.list` | `name?` | 助手列表,返回 `id / ai_name / ai_desc / type_name / stand_name` |
|
|
31
|
+
| `contract.assistant.doc.query` | `ai_id` | 存储目录(无 `base_type`)与执行方式(`base_type=1`,`execute_type=2` 手动) |
|
|
32
|
+
| `contract.assistant.config.query` | `ai_id`, `aiMark?` | 16 智能体 + 自动挑出 `controlAgentId` / `extractAgentId` |
|
|
33
|
+
| `contract.assistant.tips.query` | `ai_id` | 提示语(`aizjid` 序号 / `tsynr` 内容 / `id`) |
|
|
34
|
+
| `contract.assistant.doc.folder.search` | `name?` | 文档目录检索(取 `doc_id` / `doc_name`) |
|
|
35
|
+
| `contract.assistant.keygroup.search` | `name?` | 关键词组检索(传 `{}` 查全量) |
|
|
36
|
+
| `contract.assistant.rule.classification.list` | 无 | 内控分类树(无模糊检索,全量后自行过滤) |
|
|
37
|
+
| `contract.assistant.rule.list` | `flid?`, `pageNo?`, `pageSize?` | 内控规则列表 |
|
|
38
|
+
| `contract.assistant.rule.group.query` | `config_id` | 规则组列表(Control 智能体维度) |
|
|
39
|
+
| `contract.assistant.element.query` | `config_id` | 要素集合列表(Extract 智能体维度) |
|
|
40
|
+
| `contract.assistant.flow.list` | `ai_id`, `rule_config_id` | 关联流程绑定列表;**绑定新流程前必须先在此排查占用** |
|
|
41
|
+
|
|
42
|
+
## 3. 写操作(全部 prepare → 用户确认 → apply,apply 强制回读复核)
|
|
43
|
+
|
|
44
|
+
### 3.1 助手新建 / 删除
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
# prepare
|
|
48
|
+
weaver-work-cli --json contract run contract.assistant.create.prepare --input-json '{"ai_name":"采购助手","contract_stand":"0","stand_name":"甲方"}'
|
|
49
|
+
# apply(continuation 来自 prepare)
|
|
50
|
+
weaver-work-cli --json contract run contract.assistant.create.apply --input-json '{"ai_name":"采购助手","contract_stand":"0","stand_name":"甲方","continuation":"...","confirm":true}'
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
- `type` 与 `type_name` 必须成对;`contract_stand`(0 甲方 / 1 乙方)与 `stand_name` 成对。
|
|
54
|
+
- **助手基本信息(名称/说明/类型/立场)平台不支持修改**——需要调整时删除后重建。
|
|
55
|
+
- 删除:`{"ids":"id1,id2"}`(数组或逗号串均可)。删除接口**假成功**(不存在的 id 也返回 success),apply 用列表接口复核。
|
|
56
|
+
|
|
57
|
+
### 3.2 存储目录 / 执行方式(saveAiDoc)
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
# 存储目录(新增时不传 id;覆盖时传记录 id)
|
|
61
|
+
contract run contract.assistant.doc.save.prepare --input-json '{"kind":"storage","ai_id":"...","doc_id":"...","doc_name":"..."}'
|
|
62
|
+
# 执行方式:execute_type 1=自动 / 2=手动
|
|
63
|
+
contract run contract.assistant.doc.save.prepare --input-json '{"kind":"execute","ai_id":"...","execute_type":"2"}'
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
- **同表按 id 覆盖**:传 `id` 前 CLI 先经 `queryAiDoc` 校验记录类型,类型不匹配返回 `policy/record_type_mismatch`——把执行方式记录改写成存储目录(或反向)会污染数据且无法回退。
|
|
67
|
+
|
|
68
|
+
### 3.3 智能体配置(updateAiConfig)
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
contract run contract.assistant.agent.update.prepare --input-json '{"id":"<智能体id>","ai_id":"<助手id>","ai_mark":"RiskReview","status_info":"1","pzxx":{"formData":{"review_role":"partyB"}}}'
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
- **启用/停用只改 `status_info`**(1 开 / 0 关);**输入含 `display` 直接被 CLI 拒绝**(`policy/display_forbidden`)——`display` 是前端卡片展示的平台保留字段,静默落库会让卡片消失。
|
|
75
|
+
- 一次只改一个智能体;`ruleData` 附加字段会被 CLI 剔除(服务端报"系统错误")。
|
|
76
|
+
- `pzxx` 传对象或数组即可,CLI 自动转 JSON 字符串;字符串入参必须可解析。
|
|
77
|
+
- 通用字段:`ai_name / status_info / headline / prompt / ai_desc / iorder`。
|
|
78
|
+
- `pzxx` 场景:风险审查 RiskReview(`formData.review_role/review_type/reivew_method/is_auto_run/layout/rule_content_display` + `rule` 规则 id 逗号串)、磋商 consultComponent(四类人员列表 + `automaticNodeName` 等)、关键词 keywordComponent(`[{"id":"...","name":"..."}]`)。
|
|
79
|
+
|
|
80
|
+
### 3.4 提示语(tips)
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
contract run contract.assistant.tips.create.prepare --input-json '{"tsynr":"生成摘要","ai_id":"..."}'
|
|
84
|
+
contract run contract.assistant.tips.delete.prepare --input-json '{"ids":["..."],"ai_id":"..."}'
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
- 服务端**不补 `aizjid` 序号**,不传显示"序号undefined";CLI 自动按当前最大序号 + 1 计算,apply 阶段重算一次。
|
|
88
|
+
- 提示语**无编辑接口**,改动先删后增;新建助手自带 4 条默认提示语。
|
|
89
|
+
|
|
90
|
+
### 3.5 内控规则台账(三步缺一不可)
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
① 建分类 contract.assistant.rule.classification.create → flid
|
|
94
|
+
② 建规则 contract.assistant.rule.create(gzmc / rule_content / flid 必填)→ 规则 id
|
|
95
|
+
③ 建规则组并关联 Control contract.assistant.rule.group.create(contract_rule_source + config_id)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
- **只做②页面看不到规则**;规则组关联 Control 后才出现在「内控规则」页。
|
|
99
|
+
- 分类下仍有规则时删除被 CLI 拦截(`policy/rules_remaining`),先批量删规则再删分类。
|
|
100
|
+
- `contract_rule_source` 服务端要求 JSON 字符串,传数组即可由 CLI 转换:`[{"id":"<规则id>","name":"NK-001"}]`。
|
|
101
|
+
- **`default_type` 服务端互斥**:一个助手只能有一个默认组,后写覆盖先写(前面的自动回落 0,不是假成功)。要当默认的放最后建,或建完后单独 update。
|
|
102
|
+
- 删除:规则 `{"ids":"id1,id2"}`(逗号串)、规则组 `{"ids":[...]}`(数组)。
|
|
103
|
+
|
|
104
|
+
### 3.6 要素抽取(Extract 智能体)
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
contract run contract.assistant.element.create.prepare --input-json '{
|
|
108
|
+
"element_name":"销售合同要素抽取集",
|
|
109
|
+
"element_mxb":[{"name":"合同名称","fieldName":"合同名称","dbField":"hetongmc"}],
|
|
110
|
+
"config_id":"<Extract智能体id>"
|
|
111
|
+
}'
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
- `element_mxb` 必须是非空数组(空数组服务端报"系统错误"),每项三键 `{name, fieldName, dbField}`。
|
|
115
|
+
- `element_content`(换行分隔纯文本)与 `element_mxb`(结构化明细)**两份重复数据必须都传**;缺省 `element_content` 时 CLI 按 mxb 的 name 自动生成。
|
|
116
|
+
- **无更新接口**,改动先删后增。
|
|
117
|
+
|
|
118
|
+
### 3.7 助手关联流程
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
contract run contract.assistant.flow.save.prepare --input-json '{
|
|
122
|
+
"ai_id":"...","flowId":"...","rule_config_id":"<Control智能体id>",
|
|
123
|
+
"showPosition":"2","openMode":1,
|
|
124
|
+
"config":[{"id":"c1","nodeId":"...","nodeName":"经办人发起","comps":"Chat,Summary"}]
|
|
125
|
+
}'
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
- `toolId=803297036482249914` 固定,CLI 已内置。`showPosition`:1 更多菜单 / 2 右上角 / 3 字段上。
|
|
129
|
+
- **一个流程全局只能绑定一次(跨助手唯一)**,绑定前先 `contract.assistant.flow.list` 排查。
|
|
130
|
+
- NEED-CONFIRM 三场景由 CLI 强制校验:`showPosition=3` 缺 `fieldId` → `validation/field_id_required`;`term_config` 缺 `contractTypeField` → `validation/contract_type_field_required`;`key_config` 为空 → `validation/key_config_required`。
|
|
131
|
+
- `customRules.type=0`(自定义内控规则)不被支持,CLI 直接拦截(`policy/custom_rules_type_unsupported`),改用 `type=1`(指定规则)或 `type=2`(按合同类型过滤)。
|
|
132
|
+
- 修改走 `contract.assistant.flow.update`(路径自动拼 `modify/<记录id>`)。
|
|
133
|
+
- 删除:CLI 强制携带 `type=contract_ai_workflow_data`(缺失会返回 success 但实际不删除),并回读复核。
|
|
134
|
+
|
|
135
|
+
## 4. 写操作完成后的页面
|
|
136
|
+
|
|
137
|
+
所有写操作 apply 成功后,`readback` 内含 `url`(`{baseUrl}/sp/contract/business/ai-setting`,`width: 1000`,不做整体编码)——输出给用户打开功能页确认。
|
|
138
|
+
|
|
139
|
+
## 5. 错误语义速查
|
|
140
|
+
|
|
141
|
+
| 现象 | 处理 |
|
|
142
|
+
|---|---|
|
|
143
|
+
| `policy/clause_no_permission` | 条款库未放行,立即中止(本表为助手接口,不涉及) |
|
|
144
|
+
| `policy/display_forbidden` | 输入含 `display`,删除该字段后仅用 `status_info` 重试 |
|
|
145
|
+
| `policy/record_type_mismatch` | saveAiDoc 记录类型不符,换正确记录 id 或不传 id 新增 |
|
|
146
|
+
| `policy/rules_remaining` | 分类下仍有规则,先删规则再删分类 |
|
|
147
|
+
| `policy/custom_rules_type_unsupported` | customRules type=0 不支持,改 type=1/2 |
|
|
148
|
+
| `policy/assistant_not_found` | 待删助手 id 均不存在,未发起删除 |
|
|
149
|
+
| `validation/field_id_required` 等 NEED-CONFIRM | 先向用户确认缺失参数,不要自行猜测 |
|
|
150
|
+
| 回读报 `partial/write_uncertain` | 写入已到达但复核失败,先查对应 query 接口确认,不盲目重放 |
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# 合同智能审查(上传 → 审查页 → 导出审查记录)
|
|
2
|
+
|
|
3
|
+
## operation 与接口
|
|
4
|
+
|
|
5
|
+
| operation | 方法 | 路径 | 关键输入 | 风险 |
|
|
6
|
+
|---|---|---|---|---|
|
|
7
|
+
| `contract.review.upload` | POST ×2 | `/api/file/preUploadCheck` → `/api/file/module/upload` | `paths[]`(1~10 个本地 `.doc`/`.docx`) | read-with-upload |
|
|
8
|
+
| `contract.review.export` | POST | `/api/ebd/contract/ai/getAiReviewRecord` | `fileId`、`sclx`(默认 `1,2,3`) | read |
|
|
9
|
+
|
|
10
|
+
固定业务常量(**不是占位符,禁止替换**):
|
|
11
|
+
|
|
12
|
+
| 常量 | 值 | 用途 |
|
|
13
|
+
|---|---|---|
|
|
14
|
+
| 上传 `module` | `ebContract` | 审查场景专用,不能与 `workflow` / `docCompared` 混用 |
|
|
15
|
+
| 上传 `createDoc` | `true` | 审查需要先生成文档记录 |
|
|
16
|
+
| `ai_id` | `1326842382967570463` | 只用于导出审查记录接口,**不要**拼进审查页地址 |
|
|
17
|
+
|
|
18
|
+
## 处理链
|
|
19
|
+
|
|
20
|
+
1. `contract.review.upload`:逐个文件走两段式上传,返回 `files[]`(含 `fileId`、`docId`、`name`)与 `url`。
|
|
21
|
+
2. 把 `url` 原样交给 `browsertool` 的 `arguments.url`,并带 `"width": 1000`。
|
|
22
|
+
3. 用户说"导出审查报告 / 出一份报告"时调 `contract.review.export`。
|
|
23
|
+
4. `status` 为 `EMPTY` 表示该文件**还没审查过**——明确告知用户先打开审查页完成审查,**禁止用空内容拼报告充数**。
|
|
24
|
+
|
|
25
|
+
## URL 规则(硬约束)
|
|
26
|
+
|
|
27
|
+
审查页地址形如:
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
{baseUrl}/sp/contract/business/ai-contract?spfiles[0][fileid]={fileId}&spfiles[0][name]={name}&spfiles[0][docId]={docId}&spfiles[1][fileid]=...
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
- **不做整体编码**:`:`、`/`、`?`、`&`、`=`、`[`、`]` 与中文文件名一律保持原样。
|
|
34
|
+
- `spfiles[N]` 索引从 **0** 开始,每个文件三个参数(`fileid` / `name` / `docId`)缺一不可。
|
|
35
|
+
- 不要再套 `redirectUrl` 或任何中转跳转服务。
|
|
36
|
+
|
|
37
|
+
## 上传判据
|
|
38
|
+
|
|
39
|
+
- 预检命中秒传:`data.fileid`(或 `data.fileId` / `data.uploadModuleDto.fileid`)非空 → **直接用,跳过第二段**。
|
|
40
|
+
- 需实传:拿 `data.preUploadId` + `data.uploadType`,再调 `module/upload` 带文件本体。
|
|
41
|
+
- 成功判据是**拿到非空 `fileId`**,HTTP 200 不算成功。
|
|
42
|
+
- 服务端返回 `uploadType=chunk` 时 CLI 以 `upload_chunk_unsupported` 停止——分片链路尚未实现,换小文件或等后续版本,不要盲目重试。
|
|
43
|
+
- 单文件上限 200MB;只接受 `.doc` / `.docx`(`.pdf` 返回 `file_type_unsupported`)。
|
|
44
|
+
|
|
45
|
+
## 导出参数
|
|
46
|
+
|
|
47
|
+
| 字段 | 值 | 说明 |
|
|
48
|
+
|---|---|---|
|
|
49
|
+
| `sclx` | `"1,2,3"` | `1`=内控(风险审查)、`2`=法审、`3`=纠错;逗号组合,只取一类就传单值 |
|
|
50
|
+
| `fileId` | 上传返回的 `fileId` | 要导哪份就传哪份 |
|
|
51
|
+
| `ai_id` | 固定 `1326842382967570463` | 由 CLI 注入,业务输入不传 |
|
|
52
|
+
|
|
53
|
+
## 调用示例
|
|
54
|
+
|
|
55
|
+
Windows PowerShell:
|
|
56
|
+
|
|
57
|
+
```powershell
|
|
58
|
+
weaver-work-cli --json contract run contract.review.upload --input-json '{"paths":["D:/contracts/合同A.docx","D:/contracts/合同B.docx"]}'
|
|
59
|
+
weaver-work-cli --json contract run contract.review.export --input-json '{"fileId":"1323889154661941278","sclx":"1,2,3"}'
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
macOS/Linux(bash/zsh):
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
weaver-work-cli --json contract run contract.review.upload --input-json '{"paths":["/data/contracts/合同A.docx"]}'
|
|
66
|
+
weaver-work-cli --json contract run contract.review.export --input-json '{"fileId":"1323889154661941278","sclx":"1,2,3"}'
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## 生成报告文件
|
|
70
|
+
|
|
71
|
+
CLI 只负责拉取记录(`data.records` + `data.raw`),报告文件由 Agent 在工作区生成:
|
|
72
|
+
|
|
73
|
+
- 文件名:`合同审查报告_{原文件名}_{YYYYMMDD}.md`,已存在则加序号,不覆盖。
|
|
74
|
+
- 章节按 `sclx` 分:一、内控(风险审查);二、法审;三、纠错;四、小结。缺哪类省略该章。
|
|
75
|
+
- 每条写清:问题 + 位置/条款 + 风险说明 + 建议。
|
|
76
|
+
- 生成后用 `present_files` 展示。
|
|
77
|
+
|
|
78
|
+
## 错误处理
|
|
79
|
+
|
|
80
|
+
| 现象 | 处理 |
|
|
81
|
+
|---|---|
|
|
82
|
+
| `file_not_found` / `file_empty` | 核对路径与文件本体,不要重试 |
|
|
83
|
+
| `file_type_unsupported` | 转成 `.docx` 后重试 |
|
|
84
|
+
| `upload_precheck_failed` | 检查登录态与 `module`,不要换接口猜 |
|
|
85
|
+
| `upload_no_fileid` | 上传未完成,报"上传失败",不要当成成功 |
|
|
86
|
+
| `sclx_invalid` | 只能是 `1`/`2`/`3` 的逗号组合 |
|
|
87
|
+
| `session_expired` | 停止,按共享规则重新登录 |
|