weaver-work-cli 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -9
- package/dist/cmd/skills/index.js +60 -0
- package/dist/internal/e10/auth/commands.js +48 -32
- package/dist/internal/e10/auth/session.js +44 -3
- package/dist/internal/e10/auth/xiaoe.js +363 -11
- package/dist/internal/e10/context.js +4 -2
- package/dist/internal/skills/detector.js +42 -0
- package/dist/internal/skills/install.js +50 -3
- package/dist/shortcuts/archive/render/search-format.js +12 -3
- package/dist/shortcuts/ebuilder-form/continuation.js +70 -0
- package/dist/shortcuts/ebuilder-form/errors.js +54 -0
- package/dist/shortcuts/ebuilder-form/host.js +1238 -0
- package/dist/shortcuts/ebuilder-form/index.js +108 -0
- package/dist/shortcuts/ebuilder-form/manifest.js +347 -0
- package/dist/shortcuts/ebuilder-form/operations/read.js +157 -0
- package/dist/shortcuts/ebuilder-form/operations/registry.js +56 -0
- package/dist/shortcuts/ebuilder-form/operations/shared.js +132 -0
- package/dist/shortcuts/ebuilder-form/operations/types.js +19 -0
- package/dist/shortcuts/ebuilder-form/operations/write.js +277 -0
- package/dist/shortcuts/ebuilder-form/operations.js +8 -0
- package/dist/shortcuts/ehr/operations/salary.js +2 -140
- package/dist/shortcuts/im/continuation.js +70 -0
- package/dist/shortcuts/{yimiaoban → im}/errors.js +14 -14
- package/dist/shortcuts/{yimiaoban → im}/host.js +26 -26
- package/dist/shortcuts/{yimiaoban → im}/index.js +42 -42
- package/dist/shortcuts/{yimiaoban → im}/manifest.js +7 -6
- package/dist/shortcuts/{yimiaoban → im}/operations/file-user.js +54 -41
- package/dist/shortcuts/{yimiaoban → im}/operations/group-read.js +46 -44
- package/dist/shortcuts/{yimiaoban → im}/operations/group-write.js +113 -66
- package/dist/shortcuts/{yimiaoban → im}/operations/msg-sync.js +164 -141
- package/dist/shortcuts/{yimiaoban → im}/operations/msg-write.js +47 -47
- package/dist/shortcuts/{yimiaoban → im}/operations/person.js +10 -10
- package/dist/shortcuts/{yimiaoban → im}/operations/registry.js +10 -8
- package/dist/shortcuts/{yimiaoban → im}/operations/session.js +82 -83
- package/dist/shortcuts/im/operations/shared.js +442 -0
- package/dist/shortcuts/{yimiaoban → im}/operations/types.js +1 -1
- package/dist/shortcuts/im/operations/user-remind.js +201 -0
- package/dist/shortcuts/{yimiaoban → im}/operations/write-util.js +7 -7
- package/dist/shortcuts/{yimiaoban → im}/operations.js +3 -3
- package/dist/shortcuts/index.js +10 -2
- package/dist/shortcuts/invoice/manifest.js +113 -10
- package/dist/shortcuts/invoice/operations/import.js +39 -14
- package/dist/shortcuts/invoice/operations/reim.js +38 -18
- package/dist/shortcuts/invoice/operations/shared.js +35 -6
- package/dist/shortcuts/jiuchuanhui/manifest.js +3 -3
- package/dist/shortcuts/jiuchuanhui/operations/registry.js +2 -2
- package/dist/shortcuts/{yimiaoban → okr}/continuation.js +10 -10
- package/dist/shortcuts/okr/errors.js +70 -0
- package/dist/shortcuts/okr/host.js +169 -0
- package/dist/shortcuts/okr/index.js +155 -0
- package/dist/shortcuts/okr/manifest.js +70 -0
- package/dist/shortcuts/okr/operations/link.js +305 -0
- package/dist/shortcuts/okr/operations/read.js +481 -0
- package/dist/shortcuts/okr/operations/registry.js +31 -0
- package/dist/shortcuts/okr/operations/shared.js +381 -0
- package/dist/shortcuts/okr/operations/types.js +88 -0
- package/dist/shortcuts/okr/operations/write.js +838 -0
- package/dist/shortcuts/okr/operations.js +8 -0
- package/dist/shortcuts/project/continuation.js +70 -0
- package/dist/shortcuts/project/errors.js +53 -0
- package/dist/shortcuts/project/host.js +160 -0
- package/dist/shortcuts/project/index.js +106 -0
- package/dist/shortcuts/project/manifest.js +36 -0
- package/dist/shortcuts/project/operations/read.js +551 -0
- package/dist/shortcuts/project/operations/registry.js +31 -0
- package/dist/shortcuts/project/operations/shared.js +68 -0
- package/dist/shortcuts/project/operations/types.js +39 -0
- package/dist/shortcuts/project/operations/write.js +266 -0
- package/dist/shortcuts/project/operations.js +8 -0
- package/dist/shortcuts/workflow/continuation.js +508 -0
- package/dist/shortcuts/workflow/endpoints.js +149 -0
- package/dist/shortcuts/workflow/errors.js +112 -0
- package/dist/shortcuts/workflow/host.js +224 -0
- package/dist/shortcuts/workflow/index.js +116 -0
- package/dist/shortcuts/workflow/manifest.js +30 -0
- package/dist/shortcuts/workflow/operations/form.js +4159 -0
- package/dist/shortcuts/workflow/operations/read.js +3778 -0
- package/dist/shortcuts/workflow/operations/registry.js +33 -0
- package/dist/shortcuts/workflow/operations/shared.js +167 -0
- package/dist/shortcuts/workflow/operations/types.js +44 -0
- package/dist/shortcuts/workflow/operations/write.js +1991 -0
- package/dist/shortcuts/workflow/operations.js +119 -0
- package/dist/shortcuts/workflow/state.js +182 -0
- package/docs/SKILL.md +5 -3
- package/docs/_catalog.md +10 -1
- package/docs/agent-invoice.md +2 -2
- package/docs/agent-skill-install.md +2 -2
- package/docs/e10-auth.md +3 -1
- package/docs/ebuilder-form.md +38 -0
- package/docs/im.md +104 -0
- package/docs/invoice.md +5 -5
- package/docs/okr.md +122 -0
- package/docs/operation-manual.md +10 -7
- package/docs/project.md +69 -0
- package/docs/skill-review-2026-09-19.md +68 -0
- package/package.json +3 -2
- package/scripts/package-skill.mjs +38 -11
- package/scripts/sync-connector-skills.mjs +172 -0
- package/skill-template/business-info.json +357 -16
- package/skill-template/domains/ebuilder-form.md +5 -0
- package/skill-template/domains/okr.md +18 -0
- package/skill-template/domains/shijingran.md +3 -0
- package/skill-template/domains/skill-maker.md +4 -4
- package/skill-template/domains/workflow.md +22 -0
- package/skill-template/domains/yepiaotong.md +4 -2
- package/skill-template/domains/yimiaoban.md +13 -10
- package/skill-template/product.json +5 -0
- package/skill-template/skill-template.md +1 -0
- package/skills/weaver-e10-calendar/SKILL.md +5 -1
- package/skills/weaver-e10-calendar/references/calendar-query.md +7 -0
- package/skills/weaver-e10-calendar/references/source-manifest.json +314 -32
- package/skills/weaver-e10-ebuilder-form/SKILL.md +123 -0
- package/skills/weaver-e10-ebuilder-form/references/context-routing.md +90 -0
- package/skills/weaver-e10-ebuilder-form/references/custom-api.md +86 -0
- package/skills/weaver-e10-ebuilder-form/references/disabled-capabilities.md +50 -0
- package/skills/weaver-e10-ebuilder-form/references/fields-browser.md +100 -0
- package/skills/weaver-e10-ebuilder-form/references/list-nlist.md +91 -0
- package/skills/weaver-e10-ebuilder-form/references/openapi-read.md +74 -0
- package/skills/weaver-e10-ebuilder-form/references/openapi-write.md +86 -0
- package/skills/weaver-e10-ebuilder-form/references/source-manifest.json +107 -0
- package/skills/weaver-e10-esb/SKILL.md +1 -1
- package/skills/weaver-e10-esb/references/source-manifest.json +15 -14
- package/skills/weaver-e10-hrm/SKILL.md +1 -1
- package/skills/weaver-e10-hrm/references/source-manifest.json +357 -38
- package/skills/weaver-e10-jiuchuanhui/SKILL.md +22 -4
- package/skills/weaver-e10-jiuchuanhui/references/clue.md +4 -2
- package/skills/weaver-e10-jiuchuanhui/references/contact.md +1 -1
- package/skills/weaver-e10-jiuchuanhui/references/customer.md +3 -3
- package/skills/weaver-e10-jiuchuanhui/references/disabled-capabilities.md +1 -1
- package/skills/weaver-e10-jiuchuanhui/references/discovery-config.md +10 -10
- package/skills/weaver-e10-jiuchuanhui/references/general-helpers.md +3 -3
- package/skills/weaver-e10-jiuchuanhui/references/sale.md +7 -7
- package/skills/weaver-e10-jiuchuanhui/references/source-manifest.json +3 -3
- package/skills/weaver-e10-jucailin/SKILL.md +2 -2
- package/skills/weaver-e10-mail/SKILL.md +22 -6
- package/skills/weaver-e10-meeting/SKILL.md +22 -1
- package/skills/weaver-e10-okr/SKILL.md +139 -0
- package/skills/weaver-e10-okr/references/okr-align.md +59 -0
- package/skills/weaver-e10-okr/references/okr-keyresult.md +68 -0
- package/skills/weaver-e10-okr/references/okr-link-routing.md +67 -0
- package/skills/weaver-e10-okr/references/okr-query.md +105 -0
- package/skills/weaver-e10-okr/references/okr-write.md +94 -0
- package/skills/weaver-e10-okr/references/source-manifest.json +672 -0
- package/skills/weaver-e10-plan/SKILL.md +3 -3
- package/skills/weaver-e10-plan/references/plan-report-write.md +1 -1
- package/skills/weaver-e10-plan/references/source-manifest.json +20 -20
- package/skills/weaver-e10-qiyecheng/SKILL.md +21 -1
- package/skills/weaver-e10-qiyecheng/references/source-manifest.json +17 -17
- package/skills/weaver-e10-shared/SKILL.md +79 -11
- package/skills/weaver-e10-shared/references/e10-auth-and-session.md +41 -8
- package/skills/weaver-e10-shared/references/non-interactive-environment.md +78 -0
- package/skills/weaver-e10-shared/references/weaver-e10-installation.md +39 -0
- package/skills/weaver-e10-shijingran/SKILL.md +83 -0
- package/skills/weaver-e10-shijingran/references/field-resolution.md +105 -0
- package/skills/weaver-e10-shijingran/references/operations.md +154 -0
- package/skills/weaver-e10-shijingran/references/source-manifest.json +1380 -0
- package/skills/weaver-e10-shijingran/references/write-operations.md +90 -0
- package/skills/weaver-e10-skill-maker/SKILL.md +26 -9
- package/skills/weaver-e10-skill-maker/references/business-skill-generation.md +39 -8
- package/skills/weaver-e10-skill-maker/references/detector-validation.md +25 -8
- package/skills/weaver-e10-skill-maker/references/module-cli-generation.md +66 -5
- package/skills/weaver-e10-skill-maker/references/module-gap-audit-and-repair.md +86 -0
- package/skills/weaver-e10-skill-maker/references/source-update-detection.md +59 -5
- package/skills/weaver-e10-skill-maker/references/weaver-skill-style.md +16 -8
- package/skills/weaver-e10-wenshuding/SKILL.md +28 -4
- package/skills/weaver-e10-wenshuding/references/archive-search.md +14 -0
- package/skills/weaver-e10-wenshuding/references/source-manifest.json +27 -26
- package/skills/weaver-e10-workflow/SKILL.md +250 -0
- package/skills/weaver-e10-workflow/references/source-manifest.json +1062 -0
- package/skills/weaver-e10-workflow/references/workflow-agent-entry.md +96 -0
- package/skills/weaver-e10-workflow/references/workflow-batch.md +275 -0
- package/skills/weaver-e10-workflow/references/workflow-create.md +182 -0
- package/skills/weaver-e10-workflow/references/workflow-edit.md +106 -0
- package/skills/weaver-e10-workflow/references/workflow-memory.md +165 -0
- package/skills/weaver-e10-workflow/references/workflow-operate.md +153 -0
- package/skills/weaver-e10-workflow/references/workflow-query.md +821 -0
- package/skills/weaver-e10-workflow/references/workflow-share.md +117 -0
- package/skills/weaver-e10-workflow/references/workflow-view.md +189 -0
- package/skills/weaver-e10-yepiaotong/SKILL.md +28 -28
- package/skills/weaver-e10-yepiaotong/references/invoice-disabled-capabilities.md +11 -5
- package/skills/weaver-e10-yepiaotong/references/invoice-import.md +14 -8
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing-examples.md +9 -43
- package/skills/weaver-e10-yepiaotong/references/invoice-issuing.md +8 -0
- package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +13 -17
- package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +6 -7
- package/skills/weaver-e10-yepiaotong/references/reim-examples.md +2 -2
- package/skills/weaver-e10-yepiaotong/references/source-manifest.json +1155 -553
- package/skills/weaver-e10-yimiaoban/SKILL.md +56 -38
- package/skills/weaver-e10-yimiaoban/references/ding-write.md +8 -8
- package/skills/weaver-e10-yimiaoban/references/error-codes.md +16 -0
- package/skills/weaver-e10-yimiaoban/references/field-resolution.md +10 -10
- package/skills/weaver-e10-yimiaoban/references/file-user-i18n.md +12 -12
- package/skills/weaver-e10-yimiaoban/references/group-read.md +16 -16
- package/skills/weaver-e10-yimiaoban/references/group-write.md +17 -15
- package/skills/weaver-e10-yimiaoban/references/msg-read.md +21 -17
- package/skills/weaver-e10-yimiaoban/references/msg-write.md +10 -10
- package/skills/weaver-e10-yimiaoban/references/person.md +6 -6
- package/skills/weaver-e10-yimiaoban/references/safety-boundaries.md +15 -11
- package/skills/weaver-e10-yimiaoban/references/session-sysmsg.md +11 -10
- package/skills/weaver-e10-yimiaoban/references/source-manifest.json +2164 -154
- package/skills/weaver-e10-yimiaoban/references/user-remind.md +75 -0
- package/skills/weaver-e10-ziguanjia/SKILL.md +4 -2
- package/skills/weaver-e10-ziguanjia/references/source-manifest.json +99 -29
- package/tools/weaver-skill-detector-1.0.13/SKILL.md +253 -0
- package/tools/weaver-skill-detector-1.0.13/_meta.json +6 -0
- package/tools/weaver-skill-detector-1.0.13/references/checklist.md +298 -0
- package/tools/weaver-skill-detector-1.0.13/scripts/validate_skill.py +4190 -0
- package/dist/shortcuts/yimiaoban/operations/shared.js +0 -236
- package/docs/yimiaoban.md +0 -86
- package/skills/weaver-e10-calendar/product.json +0 -8
- package/skills/weaver-e10-esb/product.json +0 -8
- package/skills/weaver-e10-hrm/product.json +0 -8
- package/skills/weaver-e10-jiuchuanhui/product.json +0 -8
- package/skills/weaver-e10-jucailin/product.json +0 -8
- package/skills/weaver-e10-mail/product.json +0 -8
- package/skills/weaver-e10-meeting/product.json +0 -8
- package/skills/weaver-e10-plan/product.json +0 -8
- package/skills/weaver-e10-qiyecheng/product.json +0 -8
- package/skills/weaver-e10-skill-maker/product.json +0 -8
- package/skills/weaver-e10-wenshuding/product.json +0 -8
- package/skills/weaver-e10-yepiaotong/product.json +0 -8
- package/skills/weaver-e10-yepiaotong/references/invoice-red.md +0 -261
- package/skills/weaver-e10-yimiaoban/product.json +0 -8
- package/skills/weaver-e10-ziguanjia/product.json +0 -8
- /package/dist/shortcuts/{yimiaoban → im}/operations/msg-parse.js +0 -0
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
| 能力 | 原因 | 处理方式 |
|
|
10
10
|
|---|---|---|
|
|
11
11
|
| `jiuchuanhui.sale.stage-advance`(商机阶段推进) | 依赖缓存 `sale_stage` 配置做阶段 ID 映射与前置校验,属于 Skill 编排层职责 | 用 `sale.update` + `sale.stage.search` 组合实现;先查阶段选项,再按目标阶段映射 ID 走 `sale.update.prepare/apply` |
|
|
12
|
-
| `jiuchuanhui.ds.fields`(表单字段发现) |
|
|
12
|
+
| `jiuchuanhui.ds.fields`(表单字段发现) | 缓存初始化(`cache.init`)已在 `config/{pk}.json` 的 `detail` 中合并字段 `component_type`,字段信息直接读缓存即可,无需单独调用 `/api/ebuilder/common/ds/fields` | 字段 `component_type` 来自缓存配置,未封装为独立 CLI operation |
|
|
13
13
|
|
|
14
14
|
## 处理规则
|
|
15
15
|
|
|
@@ -6,15 +6,15 @@
|
|
|
6
6
|
|
|
7
7
|
## 可用 operation
|
|
8
8
|
|
|
9
|
-
| Operation | 风险 | 输入要点
|
|
10
|
-
|
|
11
|
-
| `jiuchuanhui.app.discovery` | 只读 | `tag`(默认 `jch-crm-project`)
|
|
12
|
-
| `jiuchuanhui.form.discovery` | 只读 | `tag`、`appId`
|
|
13
|
-
| `jiuchuanhui.field.options` | 只读 | `fieldName
|
|
14
|
-
| `jiuchuanhui.rest.cfg.detail` | 只读 | `apid`、`id`(cfgId)
|
|
15
|
-
| `jiuchuanhui.config.id.by.pk` | 只读 | `mainTable.interface_pk`
|
|
16
|
-
| `jiuchuanhui.file.preview` | 只读(文件预览) | `fileId` 必填,可选 `fieldId`/`appId`/`customParam`
|
|
17
|
-
| `jiuchuanhui.get-rest-cfg-detail` | 只读 | `apid`、`id`(cfgId)
|
|
9
|
+
| Operation | 风险 | 输入要点 |
|
|
10
|
+
|---|---|--------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
11
|
+
| `jiuchuanhui.app.discovery` | 只读 | `tag`(默认 `jch-crm-project`) |
|
|
12
|
+
| `jiuchuanhui.form.discovery` | 只读 | `tag`、`appId` |
|
|
13
|
+
| `jiuchuanhui.field.options` | 只读 | `fieldName`(必填,传入字段ID)、`sourceType`(必填,值为 `FORM`);可选 `objId`(不传默认按 `uf_jch_customer` 表单发现)、`groupId`(可省略自动发现,来自 `app.discovery` tag=`jch-crm-project`) |
|
|
14
|
+
| `jiuchuanhui.rest.cfg.detail` | 只读 | `apid`、`id`(cfgId) |
|
|
15
|
+
| `jiuchuanhui.config.id.by.pk` | 只读 | `mainTable.interface_pk` |
|
|
16
|
+
| `jiuchuanhui.file.preview` | 只读(文件预览) | `fileId` 必填,可选 `fieldId`/`appId`/`customParam` |
|
|
17
|
+
| `jiuchuanhui.get-rest-cfg-detail` | 只读 | `apid`、`id`(cfgId) |
|
|
18
18
|
|
|
19
19
|
## 输入要点
|
|
20
20
|
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
- 缓存缺失或用户要求刷新时,调用 CLI operation `jiuchuanhui.cache.init`(应用发现 -> objId -> 版本校验 >= 1.5.11 -> cfgId -> 接口配置 -> 关联数据 -> 字段选项 -> 搜索参数 -> 行政区划),再继续业务调用。缓存初始化和刷新**已暴露为 CLI operation `jiuchuanhui.cache.init`**(risk: local-file-write,无需 prepare/apply 确认链);也可在仓库根运行 `node src/shortcuts/jiuchuanhui/scripts/cache-init.mjs`(薄包装)。
|
|
24
24
|
- 文件预览:`fileId` 为必填;涉及本地文件/远程 URL 解析时先提醒用户文件内容可能进入大模型上下文或发送到文件服务。
|
|
25
25
|
- `file.preview` 返回的 `loadUrl`/`previewLink` 带临时签名(约 7 天),过期需重新调用获取,不要硬编码或长期缓存下载地址;附件 ID 从表单数据字段获取,字段无附件时返回空数组,无需调用本接口。
|
|
26
|
-
|
|
26
|
+
- `jiuchuanhui.field.options`参数fieldName传入的是字段的id
|
|
27
27
|
## 命令
|
|
28
28
|
|
|
29
29
|
Windows PowerShell:
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
## 输入要点
|
|
20
20
|
|
|
21
|
-
- `moduleType
|
|
21
|
+
- `moduleType`:事项模块类型,必须精确匹配:`customer`(客户)/`saleChance`(商机)/`clue`(线索)/`administrativeDivision`(行政区域);`name` 为事项名称(必填)。传错值会静默返回“未查询到相关事项”。
|
|
22
22
|
- 行政区划也走按名称查事项 ID:`moduleType: "administrativeDivision"`、`name` 传城市名;返回全路径 ID,可写缓存。
|
|
23
23
|
- `browser-option.search` 是 RelateBrowser 字段的选项查询入口:用 `customBrowserType` 指定浏览类型,返回自定义浏览选项供选择。需已知 `customBrowserType`(自定义浏览类型标识),通过「通过字段id获取字段信息」接口(`jiuchuanhui.field.info.by-ids`)获取 RelateBrowser 字段定义中的 `browser_type` 作为 `customBrowserType`。 常见类型:`customBrowser_industrybrowser`(行业)。
|
|
24
24
|
- 选项字段(Select/RadioBox/CheckBox)传 ID;`RelateBrowser` 字段通过 `browser-option.search` 查询对应类型选项。
|
|
@@ -31,7 +31,7 @@ Windows PowerShell:
|
|
|
31
31
|
weaver-work-cli --json jiuchuanhui run jiuchuanhui.user.id.by-name --input-json '{"mainTable":{"employeeName":"魏思雨"}}'
|
|
32
32
|
weaver-work-cli --json jiuchuanhui run jiuchuanhui.entity.id.by-name --input-json '{"mainTable":{"moduleType":"customer","name":"示例科技有限公司"}}'
|
|
33
33
|
weaver-work-cli --json jiuchuanhui run jiuchuanhui.user.current-profile --input-json '{}'
|
|
34
|
-
weaver-work-cli --json jiuchuanhui run jiuchuanhui.browser-option.search --input-json '{"pathParams":{"customBrowserType":"
|
|
34
|
+
weaver-work-cli --json jiuchuanhui run jiuchuanhui.browser-option.search --input-json '{"pathParams":{"customBrowserType":"customBrowser_industrybrowser"},"params":{"searchValue":"科技"}}'
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
macOS/Linux(bash/zsh):
|
|
@@ -40,7 +40,7 @@ macOS/Linux(bash/zsh):
|
|
|
40
40
|
weaver-work-cli --json jiuchuanhui run jiuchuanhui.user.id.by-name --input-json '{"mainTable":{"employeeName":"魏思雨"}}'
|
|
41
41
|
weaver-work-cli --json jiuchuanhui run jiuchuanhui.entity.id.by-name --input-json '{"mainTable":{"moduleType":"customer","name":"示例科技有限公司"}}'
|
|
42
42
|
weaver-work-cli --json jiuchuanhui run jiuchuanhui.user.current-profile --input-json '{}'
|
|
43
|
-
weaver-work-cli --json jiuchuanhui run jiuchuanhui.browser-option.search --input-json '{"pathParams":{"customBrowserType":"
|
|
43
|
+
weaver-work-cli --json jiuchuanhui run jiuchuanhui.browser-option.search --input-json '{"pathParams":{"customBrowserType":"customBrowser_industrybrowser"},"params":{"searchValue":"科技"}}'
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
## 输出处理
|
|
@@ -16,17 +16,17 @@
|
|
|
16
16
|
| `jiuchuanhui.rival.search` | 只读 | 对手/友商列表 |
|
|
17
17
|
| `jiuchuanhui.sale.win.prepare/apply` | 高风险写 | `saleId`;赢单不可逆 |
|
|
18
18
|
| `jiuchuanhui.sale.lose.prepare/apply` | 高风险写 | `saleid`、`reasonids`(输单原因,**单选**,传一个原因 ID);可选 `money`(单位为**元**)、`rivals`(对手 ID,**多选**逗号分隔)、`desc`;输单必须先确定原因 |
|
|
19
|
-
| `jiuchuanhui.sale.invalid.prepare/apply` | 高风险写 | `
|
|
20
|
-
| `jiuchuanhui.sale.pause.prepare/apply` | 高风险写 | `
|
|
19
|
+
| `jiuchuanhui.sale.invalid.prepare/apply` | 高风险写 | `saleId`;无效不可逆 |
|
|
20
|
+
| `jiuchuanhui.sale.pause.prepare/apply` | 高风险写 | `saleId`、`pauseReason`(必填,暂停原因描述);可选 `restartDate`(**预计重启日期**,格式 `yyyy-MM-dd`) |
|
|
21
21
|
| `jiuchuanhui.sale.restart.prepare/apply` | 高风险写 | `saleChanceId`(**仅可重启已暂停的商机**);确认商机已暂停再操作 |
|
|
22
22
|
| `jiuchuanhui.sale.manager-change.prepare/apply` | 高风险写 | `saleChanceId`、`managerId`(目标负责人);转移/负责人变更共用;**仅本人或本人下级商机可操作**,权限不足返回 HTTP 204 |
|
|
23
23
|
| `jiuchuanhui.sale.link-contacts.prepare/apply` | 高风险写 | `salechanceId`(注意小写 c)、`contactIds`;确认联系人与商机关联关系 |
|
|
24
|
-
| `jiuchuanhui.sale.contact-record.create.prepare/apply` | 高风险写 | `
|
|
24
|
+
| `jiuchuanhui.sale.contact-record.create.prepare/apply` | 高风险写 | `saleId`、`comment_content`(必填);可选 `type`/`rating`/`contact_information`/`contacts`/`next_time`/`next_content`/`next_contact_information`/`next_contacts`/`rel_remind`。`type` 为**联系类型**(例行联系等,默认 `0`),与客户联系记录的 `type`(评论类型)**取值体系不同,勿混用** |
|
|
25
25
|
|
|
26
26
|
## 输入要点
|
|
27
27
|
|
|
28
|
-
- 创建/修改前读缓存 `config/sale_create_api.json`(或 `sale_update_api.json`)的 `detail
|
|
29
|
-
- Select/RadioBox/CheckBox 传选项 ID;关联客户传 `
|
|
28
|
+
- 创建/修改前读缓存 `config/sale_create_api.json`(或 `sale_update_api.json`)的 `detail.mainFields`(与 `detail.detailFields`,商机明细按需组装),按 `data_key` 组装,`isRequired:"1"` 缺失时追问。
|
|
29
|
+
- Select/RadioBox/CheckBox 传选项 ID;关联客户传 `customer`(客户数据 ID);负责人传 `manager`(人员 ID)。
|
|
30
30
|
- 搜索商机:默认小页;需要总数时 `count:true` 与列表**并行**发起。
|
|
31
31
|
|
|
32
32
|
## 命令
|
|
@@ -38,7 +38,7 @@ weaver-work-cli --json jiuchuanhui run jiuchuanhui.sale.search --input-json '{"s
|
|
|
38
38
|
weaver-work-cli --json jiuchuanhui run jiuchuanhui.sale.get --input-json '{"id":"200001"}'
|
|
39
39
|
weaver-work-cli --json jiuchuanhui run jiuchuanhui.sale.win.prepare --input-json '{"mainTable":{"saleId":"200001"}}'
|
|
40
40
|
weaver-work-cli --json jiuchuanhui run jiuchuanhui.sale.win.apply --input-json '{"continuation":"PREPARE_CONTINUATION","confirm":true}'
|
|
41
|
-
weaver-work-cli --json jiuchuanhui run jiuchuanhui.sale.lose.prepare --input-json '{"mainTable":{"
|
|
41
|
+
weaver-work-cli --json jiuchuanhui run jiuchuanhui.sale.lose.prepare --input-json '{"mainTable":{"saleid":"200001","reasonids":"400001"}}'
|
|
42
42
|
weaver-work-cli --json jiuchuanhui run jiuchuanhui.sale.link-contacts.prepare --input-json '{"mainTable":{"salechanceId":"200001","contactIds":"300001,300002"}}'
|
|
43
43
|
```
|
|
44
44
|
|
|
@@ -49,7 +49,7 @@ weaver-work-cli --json jiuchuanhui run jiuchuanhui.sale.search --input-json '{"s
|
|
|
49
49
|
weaver-work-cli --json jiuchuanhui run jiuchuanhui.sale.get --input-json '{"id":"200001"}'
|
|
50
50
|
weaver-work-cli --json jiuchuanhui run jiuchuanhui.sale.win.prepare --input-json '{"mainTable":{"saleId":"200001"}}'
|
|
51
51
|
weaver-work-cli --json jiuchuanhui run jiuchuanhui.sale.win.apply --input-json '{"continuation":"PREPARE_CONTINUATION","confirm":true}'
|
|
52
|
-
weaver-work-cli --json jiuchuanhui run jiuchuanhui.sale.lose.prepare --input-json '{"mainTable":{"
|
|
52
|
+
weaver-work-cli --json jiuchuanhui run jiuchuanhui.sale.lose.prepare --input-json '{"mainTable":{"saleid":"200001","reasonids":"400001"}}'
|
|
53
53
|
weaver-work-cli --json jiuchuanhui run jiuchuanhui.sale.link-contacts.prepare --input-json '{"mainTable":{"salechanceId":"200001","contactIds":"300001,300002"}}'
|
|
54
54
|
```
|
|
55
55
|
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
},
|
|
12
12
|
"generatedAt": "2026-09-09T00:00:00.000Z",
|
|
13
13
|
"sourceSet": {
|
|
14
|
-
"aggregateSha256": "
|
|
14
|
+
"aggregateSha256": "8250427995b794af54d88c815f03d241e57a7ddd309ba04fcfe70a88f5aa8512",
|
|
15
15
|
"sourceRoots": [
|
|
16
16
|
"weaver-e10-jiuchuanhui"
|
|
17
17
|
],
|
|
@@ -2620,7 +2620,7 @@
|
|
|
2620
2620
|
}
|
|
2621
2621
|
},
|
|
2622
2622
|
"artifactBaseline": {
|
|
2623
|
-
"aggregateSha256": "
|
|
2623
|
+
"aggregateSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
|
2624
2624
|
"files": []
|
|
2625
2625
|
},
|
|
2626
2626
|
"notes": [
|
|
@@ -2629,4 +2629,4 @@
|
|
|
2629
2629
|
"缓存初始化(cache.init)已暴露为 CLI operation(risk: local-file-write,写入本地缓存文件);商机阶段推进(sale.stage-advance)按模块边界不暴露为 CLI operation,由 Skill 编排层承担。",
|
|
2630
2630
|
"manifest 只记录路径、hash、影响映射和转换摘要,不保存 Cookie、Token、个人主目录绝对路径或大段源正文。"
|
|
2631
2631
|
]
|
|
2632
|
-
}
|
|
2632
|
+
}
|
|
@@ -15,7 +15,7 @@ cliHelp: "weaver-work-cli ehr --help"
|
|
|
15
15
|
|
|
16
16
|
# 泛微聚才林人事云
|
|
17
17
|
|
|
18
|
-
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md),其中包含安装、E10 认证、JSON 输出和高风险写入规则。若不存在则必须先执行 `weaver-work-cli skills install shared --
|
|
18
|
+
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md),其中包含安装、E10 认证、JSON 输出和高风险写入规则。若不存在则必须先执行 `weaver-work-cli skills install shared --target-dir <当前Agent的Skills目录>`,若 CLI 未安装则先执行 `npm install -g weaver-work-cli`,安装或读取失败时必须停止执行。**
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
本技能覆盖聚才林业务域:**人事档案(hr)**、**出勤管理(attend)**、**薪酬管理(salary)**、**招聘(recruit,读 + 写)**。招聘写操作走 prepare→apply 确认协议;撤销类写操作不实现,原因见 [`references/safety-boundaries.md`](references/safety-boundaries.md)。
|
|
@@ -52,7 +52,7 @@ weaver-work-cli --json ehr run <operation> --input -
|
|
|
52
52
|
|
|
53
53
|
## 跨子系统差异(必须先知道)
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
四个子系统(人事档案 / 出勤 / 薪酬 / 招聘)的响应契约和分页结构不统一,已在 CLI 内归一化,但语义差异仍会影响结果解读:
|
|
56
56
|
|
|
57
57
|
- **响应成功判定**:出勤是 `success` 布尔,人事档案是 `code=200`,薪酬个人报表是 `status` 布尔。
|
|
58
58
|
- **分页**:出勤统计接口不返回 page 对象。其余表格接口的 `pageSize` **由服务端固定,传参无效**:通讯录为 100,出勤与报表类为 20。全量数据必须递增 `current` 翻页(已实测:通讯录 `current=1` 返回 100 条、`current=2` 返回 45 条,合计 145)。
|
|
@@ -10,16 +10,32 @@ author: 泛微网络科技股份有限公司
|
|
|
10
10
|
agent_created: true
|
|
11
11
|
requires:
|
|
12
12
|
bins: ["weaver-work-cli"]
|
|
13
|
+
dependencies:
|
|
14
|
+
- weaver-e10-login
|
|
13
15
|
cliHelp: "weaver-work-cli mail --help"
|
|
14
16
|
---
|
|
15
17
|
|
|
16
|
-
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md),其中包含安装、E10 认证、JSON 输出和高风险写入规则。若不存在则必须先执行 `weaver-work-cli skills install shared --
|
|
18
|
+
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md),其中包含安装、E10 认证、JSON 输出和高风险写入规则。若不存在则必须先执行 `weaver-work-cli skills install shared --target-dir <当前Agent的Skills目录>`,若 CLI 未安装则先执行 `npm install -g weaver-work-cli`,安装或读取失败时必须停止执行。**
|
|
17
19
|
|
|
18
20
|
认证和登录态只能按共享规则通过 `weaver-work-cli auth ...` 命令判断;禁止直接读取、列出、打印或解析用户主目录下的旧 `.e10-cli`、auth、config 或 Keychain 数据。
|
|
19
21
|
所有命令通过 `weaver-work-cli --json mail run <operation>` 执行:简单 JSON 优先传 `--input-json '<json>'`,复杂或多行 JSON 先写入 UTF-8 文件再传 `--input <path>`,只有确认当前 shell 能稳定传管道时才使用 `--input -`。调用前先按需读取 references 下对应的文件,查参数结构,不要猜字段;**references 是第一信息源**,`weaver-work-cli mail schema` 是 operation、字段和风险等级的合约来源。
|
|
20
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 写法。
|
|
21
23
|
涉及邮件附件、图片、本地文件、远程 URL 文件或邮件正文解析的操作,执行前必须提醒用户:文件内容可能被上传到 E10 邮件系统,并可能进入当前大模型上下文用于理解和处理;必须等待用户明确确认后才继续。
|
|
22
24
|
|
|
25
|
+
# 泛微E10邮件
|
|
26
|
+
|
|
27
|
+
## 认证与请求头契约
|
|
28
|
+
|
|
29
|
+
登录与会话由 E10 登录能力统一提供:文档型约定为 `weaver-e10-login` 技能,本 CLI 场景下等价入口是 `weaver-work-cli auth ...` 命令体系。业务 Skill 不自建登录流程,不索取、打印或转存任何凭证。
|
|
30
|
+
|
|
31
|
+
CLI 发往 E10 的每个请求都自动携带以下三项用户信息参数,**缺一不可**(业务入参里不要传这些字段,也不要手工拼装请求头):
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
Cookie: <登录返回的完整原始 Cookie 串,原样透传,禁止裁剪/去重/改写>
|
|
35
|
+
eteamsid: <登录返回的 ETEAMSID>
|
|
36
|
+
User-Agent: AgentType=<agentType>,IsAgent=true
|
|
37
|
+
```
|
|
38
|
+
|
|
23
39
|
## 路由优先级(先判断是不是 E10 邮件,再选 operation)
|
|
24
40
|
|
|
25
41
|
只要用户的核心对象是泛微 E10 邮件(收件箱/发件箱/草稿/已删除/垃圾箱/待办邮件、邮件正文、附件、签名、模板、联系人、黑名单、往来邮件),就优先使用 `weaver-e10-mail`。
|
|
@@ -44,16 +60,16 @@ cliHelp: "weaver-work-cli mail --help"
|
|
|
44
60
|
| 查看可用 operation、字段和风险等级 | `mail schema` | [`mail-agent-entry.md`](references/mail-agent-entry.md) |
|
|
45
61
|
| 查询邮件列表 | `mail run mail.list` | [`mail-read.md`](references/mail-read.md) |
|
|
46
62
|
| 往来邮件 | `mail run mail.contact.list` | [`mail-read.md`](references/mail-read.md) |
|
|
47
|
-
| 查看邮件详情/正文 | `mail run mail.view.info` / `mail
|
|
48
|
-
| 未读统计 / 邮件配置 | `mail run mail.unread.count` / `mail
|
|
49
|
-
| 收件人解析(内部/部门/外部) | `mail run mail.person.search` / `mail
|
|
63
|
+
| 查看邮件详情/正文 | `mail run mail.view.info` / `mail run mail.view.content` | [`mail-read.md`](references/mail-read.md) |
|
|
64
|
+
| 未读统计 / 邮件配置 | `mail run mail.unread.count` / `mail run mail.config.get` | [`mail-read.md`](references/mail-read.md) |
|
|
65
|
+
| 收件人解析(内部/部门/外部) | `mail run mail.person.search` / `mail run mail.dep.search` / `mail run mail.address.search` | [`mail-read.md`](references/mail-read.md) |
|
|
50
66
|
| 发送/回复/转发/存草稿 | `mail run mail.send.prepare/apply` | [`mail-send.md`](references/mail-send.md) |
|
|
51
|
-
| 标星 / 已读 / 全部已读 / 待办 / 移动 / 逻辑删除 / 文件夹 / 撤回 | `mail run mail.star` / `mail
|
|
67
|
+
| 标星 / 已读 / 全部已读 / 待办 / 移动 / 逻辑删除 / 文件夹 / 撤回 | `mail run mail.star` / `mail run mail.read.status` / `mail run mail.read.all` / `mail run mail.wait.add` / `mail run mail.move.folder` / `mail run mail.delete.move` / `mail run mail.folder.create` / `mail run mail.folder.delete` / `mail run mail.recall` | [`mail-manage.md`](references/mail-manage.md) |
|
|
52
68
|
| 联系人 / 分组 | `mail run mail.contacts.*` | [`mail-contacts.md`](references/mail-contacts.md) |
|
|
53
69
|
| 模板 | `mail run mail.template.*` | [`mail-template.md`](references/mail-template.md) |
|
|
54
70
|
| 签名 / 二维码名片 | `mail run mail.sign.*` | [`mail-sign.md`](references/mail-sign.md) |
|
|
55
71
|
| 黑名单 | `mail run mail.blacklist.*` | [`mail-blacklist.md`](references/mail-blacklist.md) |
|
|
56
|
-
| 附件上传 / 下载 / 附件中心 | `mail run mail.attachment.upload` / `mail
|
|
72
|
+
| 附件上传 / 下载 / 附件中心 | `mail run mail.attachment.upload` / `mail run mail.attachment.download` / `mail run mail.attachment.center` | [`mail-attachment.md`](references/mail-attachment.md) |
|
|
57
73
|
| 破坏性/缺口操作(已暂缓) | 无可用命令 | [`safety-boundaries.md`](references/safety-boundaries.md) |
|
|
58
74
|
|
|
59
75
|
处理链:
|
|
@@ -10,6 +10,8 @@ author: 泛微网络科技股份有限公司
|
|
|
10
10
|
agent_created: true
|
|
11
11
|
requires:
|
|
12
12
|
bins: ["weaver-work-cli"]
|
|
13
|
+
dependencies:
|
|
14
|
+
- weaver-e10-login
|
|
13
15
|
cliHelp: "weaver-work-cli meeting --help"
|
|
14
16
|
---
|
|
15
17
|
|
|
@@ -21,6 +23,24 @@ cliHelp: "weaver-work-cli meeting --help"
|
|
|
21
23
|
|
|
22
24
|
本 Skill 通过 `weaver-work-cli meeting` 命令调用真实 operation,不绕过 CLI 直接拼接口。
|
|
23
25
|
|
|
26
|
+
## 适用场景(何时使用本技能)
|
|
27
|
+
|
|
28
|
+
用户提到会议、会议室、预约/建会、会议冲突、改期/改地点/改参会人、取消/删除会议、回执、签到、会议类型或会议室占用视图时,使用本技能。
|
|
29
|
+
|
|
30
|
+
用户要处理的是日程、审批流程或组织人员查询时,分别转 `weaver-e10-calendar` / `weaver-e10-workflow` / `weaver-e10-hrm`。
|
|
31
|
+
|
|
32
|
+
## 认证与请求头契约
|
|
33
|
+
|
|
34
|
+
登录与会话由 E10 登录能力统一提供:文档型约定为 `weaver-e10-login` 技能,本 CLI 场景下等价入口是 `weaver-work-cli auth ...` 命令体系。业务 Skill 不自建登录流程,不索取、打印或转存任何凭证。
|
|
35
|
+
|
|
36
|
+
CLI 发往 E10 的每个请求都自动携带以下三项用户信息参数,**缺一不可**(业务入参里不要传这些字段,也不要手工拼装请求头):
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
Cookie: <登录返回的完整原始 Cookie 串,原样透传,禁止裁剪/去重/改写>
|
|
40
|
+
eteamsid: <登录返回的 ETEAMSID>
|
|
41
|
+
User-Agent: AgentType=<agentType>,IsAgent=true
|
|
42
|
+
```
|
|
43
|
+
|
|
24
44
|
## 路由优先级
|
|
25
45
|
|
|
26
46
|
1. 先判断用户意图是否属于会议域:会议、会议室、预约/建会、会议冲突、签到、回执、会议类型、占用视图。
|
|
@@ -103,4 +123,5 @@ cliHelp: "weaver-work-cli meeting --help"
|
|
|
103
123
|
- **提前结束会议(meeting.over)不提供**:服务端接口为空实现(源码中 service 调用被注释、直接返回成功),调用只会得到"假成功";请引导用户在系统页面操作,禁止绕过 CLI 自行拼接口。
|
|
104
124
|
- EB 版业务链路(`query_mtDetail_list`、`create_meeting`、占用/回执/签到三件套、议题、纪要、报表)未随 v1 实现,见 manifest `withheldOperations`。
|
|
105
125
|
- 周期会议走工作流(`repeatWorkFlowBaseIds` 非空)与 `onlyFlowCreate=1` 的流程建会需要工作流集成,CLI 会主动拒绝。
|
|
106
|
-
-
|
|
126
|
+
- 签到二维码、签到写操作、会议室/类型的增删改管理未实现(查询与占用可用,见命令表)。
|
|
127
|
+
- 会议变更(`meeting.change.*`)与取消(`meeting.cancel.*`)**已实现**,按上文「处理链:变更 / 取消 / 删除会议」执行;只有「提前结束会议」不支持,见上一条。
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: weaver-e10-okr
|
|
3
|
+
display_name: 泛微E10 OKR 目标管理
|
|
4
|
+
display_name_en: Weaver E10 OKR
|
|
5
|
+
description: "泛微E10 OKR 目标管理能力,覆盖目标分页查询、目标详情、关键成果查询与保存、目标对齐、目标评论、目标详情页链接,以及标准版与 ebuilder 双链路判定,通过 weaver-work-cli okr 命令执行。"
|
|
6
|
+
description_zh: "泛微E10 OKR 目标管理能力,覆盖目标分页查询、目标详情、关键成果查询与保存、目标对齐、目标评论、目标详情页链接,以及标准版与 ebuilder 双链路判定,通过 weaver-work-cli okr 命令执行。"
|
|
7
|
+
description_en: "Weaver E10 OKR capabilities, including goal list and detail queries, key results, goal alignment, goal comments, goal detail links, and standard/ebuilder link detection, delivered through the weaver-work-cli okr command."
|
|
8
|
+
version: 1.0.0
|
|
9
|
+
author: 泛微网络科技股份有限公司
|
|
10
|
+
agent_created: true
|
|
11
|
+
requires:
|
|
12
|
+
bins: ["weaver-work-cli"]
|
|
13
|
+
dependencies:
|
|
14
|
+
- weaver-e10-login
|
|
15
|
+
cliHelp: "weaver-work-cli okr --help"
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# 泛微E10 OKR 目标管理
|
|
19
|
+
|
|
20
|
+
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../weaver-e10-shared/SKILL.md`](../weaver-e10-shared/SKILL.md),其中包含安装、E10 认证、JSON 输出和高风险写入规则。若不存在则必须先执行 `weaver-work-cli skills install shared --target-dir <当前Agent的Skills目录>`,若 CLI 未安装则先执行 `npm install -g weaver-work-cli`,安装或读取失败时必须停止执行。**
|
|
21
|
+
|
|
22
|
+
本技能覆盖 OKR 目标管理业务域:**目标分页查询**、**目标详情**、**关键成果查询与保存**、**目标对齐**、**目标评论**、**目标详情页链接**、**链路判定**。所有写操作(新建/编辑目标、保存关键成果、添加目标对齐)全部走 `prepare -> apply` 确认协议。
|
|
23
|
+
|
|
24
|
+
## 认证与请求头契约
|
|
25
|
+
|
|
26
|
+
登录与会话由 E10 登录能力统一提供:文档型约定为 `weaver-e10-login` 技能,本 CLI 场景下等价入口是 `weaver-work-cli auth ...` 命令体系。业务 Skill 不自建登录流程,不索取、打印或转存任何凭证。
|
|
27
|
+
|
|
28
|
+
CLI 发往 E10 的每个请求都自动携带以下三项用户信息参数,**缺一不可**(业务入参里不要传这些字段,也不要手工拼装请求头):
|
|
29
|
+
|
|
30
|
+
```text
|
|
31
|
+
Cookie: <登录返回的完整原始 Cookie 串,原样透传,禁止裁剪/去重/改写>
|
|
32
|
+
eteamsid: <登录返回的 ETEAMSID>
|
|
33
|
+
User-Agent: AgentType=<agentType>,IsAgent=true
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## 命令入口
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
weaver-work-cli okr --help
|
|
40
|
+
weaver-work-cli okr schema
|
|
41
|
+
weaver-work-cli --json okr run <operation> --input-json '{"key":"value"}'
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
`schema` 是可用能力的唯一事实来源。禁止把本技能或源文档里的接口路径当成可直接调用的地址,也禁止把未出现在 `schema` 中的能力当作可用 operation。
|
|
45
|
+
|
|
46
|
+
高频便捷命令(等价于对应 operation 的薄包装):
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
weaver-work-cli okr route
|
|
50
|
+
weaver-work-cli okr list --period-type 3 --period-range 2026-09
|
|
51
|
+
weaver-work-cli okr get --id <目标ID>
|
|
52
|
+
weaver-work-cli okr viewlink --ids <目标ID1>,<目标ID2>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 认证
|
|
56
|
+
|
|
57
|
+
所有请求复用 `weaver-work-cli` 托管的 E10 会话,业务输入只描述业务对象和意图。所有 `datajson` 结构接口的 `header.operator` 由 CLI 自动填充为当前登录用户,无需在输入中提供。
|
|
58
|
+
|
|
59
|
+
凭证必须由 E10 命名凭据插件提供,由 `weaver-work-cli auth` 托管获取。禁止硬编码地址、账号、口令、Cookie、ETEAMSID 或其它会话凭据,禁止用浏览器自动化绕过登录流程,禁止读取、列出、打印或解析认证目录与文件。认证诊断只能通过 `weaver-work-cli auth` 系列命令、`weaver-work-cli doctor --e10` 和业务命令返回的 JSON 错误完成。
|
|
60
|
+
|
|
61
|
+
## 链路判定(先做,再做业务)
|
|
62
|
+
|
|
63
|
+
OKR 目标在不同租户走**两套互不兼容的接口链路**,由 `okr.version.check` 读取 `ver_name` 判定:
|
|
64
|
+
|
|
65
|
+
- `ver_name >= V2` → **e10-ebuilder 链路**(`/api/ebuilder/form/formdata/v2/...`)。
|
|
66
|
+
- 其它 / 版本接口不可用 → **e10 标准版链路**(`/api/workrelate/goal/...`、`/api/goal/common/comment/...`)。
|
|
67
|
+
|
|
68
|
+
判定结果按租户缓存 1 天,命中缓存时不会重复请求版本接口。判定后严禁跨链路混用接口。细节见 [`references/okr-link-routing.md`](references/okr-link-routing.md)。
|
|
69
|
+
|
|
70
|
+
## Reference 路由表
|
|
71
|
+
|
|
72
|
+
命中任一条件时,执行下一步前读取对应 reference。
|
|
73
|
+
|
|
74
|
+
| 触发条件 | Reference |
|
|
75
|
+
| --- | --- |
|
|
76
|
+
| 判断当前租户走标准版还是 ebuilder、链路判定结果异常、目标详情页链接打不开、需要 eb 表单 id | [`references/okr-link-routing.md`](references/okr-link-routing.md) |
|
|
77
|
+
| 查目标列表、按周期/责任人/名称找目标、查目标详情、查关键成果列表、查目标评论、取详情页链接 | [`references/okr-query.md`](references/okr-query.md) |
|
|
78
|
+
| 新建目标、修改目标(写,prepare→apply) | [`references/okr-write.md`](references/okr-write.md) |
|
|
79
|
+
| 新建或修改关键成果(写,prepare→apply) | [`references/okr-keyresult.md`](references/okr-keyresult.md) |
|
|
80
|
+
| 添加目标对齐(写,prepare→apply,仅 ebuilder 链路) | [`references/okr-align.md`](references/okr-align.md) |
|
|
81
|
+
|
|
82
|
+
## 高优先级语义
|
|
83
|
+
|
|
84
|
+
- **目标**:goal / OKR objective,用户常说「目标」「OKR」「年度目标」「月度目标」「部门目标」。
|
|
85
|
+
- **关键成果**:key result / KR,是目标的子项,ebuilder 链路有独立接口,标准版链路随目标返回。
|
|
86
|
+
- **目标对齐**:把当前目标挂到另一个目标之下,**仅 ebuilder 链路可用**。
|
|
87
|
+
- **目标周期**:`period_type` 取 1-年度 / 2-季度 / 3-月度 / 4-自定义;`period_range` 格式随类型变化(年度/季度为 `yyyy`,月度为 `yyyy-MM`,自定义为 `开始日期,结束日期`);季度还需 `period_quarter` 取 1-4。
|
|
88
|
+
- **人员 ID**:`principalid`(责任人)、`partners`(参与人)必须传**人员 ID**(先通过 weaver-e10-hrm 解析姓名),不是姓名,禁止取 `userId` 字段。
|
|
89
|
+
- **目标状态**:标准版 `status` 为 0-草稿 / 1-正式;ebuilder 用 `m_status`(1-进行中 2-已完成 3-已撤销 4-审批中 5-未开始)。
|
|
90
|
+
|
|
91
|
+
## 关键业务规则(CLI 已内置)
|
|
92
|
+
|
|
93
|
+
- **目标列表固定四列**:「目标名称、目标责任人名称、目标周期类型、目标周期范围」,且目标名称为可点击的详情页链接(绝对地址)。
|
|
94
|
+
- **新建目标默认草稿**:标准版链路新建默认 `status=0`(保存草稿),不直接提交。
|
|
95
|
+
- **编辑目标为全量合并**:`update.prepare` 先查询当前详情再合并用户修改;标准版链路必须显式传 `status`,避免把正式目标静默回退为草稿。
|
|
96
|
+
- **ebuilder 新建默认值**:`m_status=1`(进行中)、`progress=0`。
|
|
97
|
+
- **详情不直出评论正文**:`okr.get` 在标准版链路只返回评论总条数与「是否需要查看评论内容」的提示,正文必须由用户确认后再调 `okr.comment.list` 获取。
|
|
98
|
+
- **链路专属能力明确报错**:eb 链路不支持按名称/状态筛选目标,标准版链路没有 `okr.kr.list`/`okr.align.create`,ebuilder 链路没有 `okr.comment.list`;CLI 会返回 `policy/link_unsupported` 或 `link_filter_unsupported`,不会静默忽略。
|
|
99
|
+
|
|
100
|
+
## 处理链(写操作)
|
|
101
|
+
|
|
102
|
+
新建/编辑目标、保存关键成果、添加目标对齐必须走 `prepare -> apply`:
|
|
103
|
+
|
|
104
|
+
1. `prepare` 只归一化输入、按需查询当前数据(编辑时)、生成预览和 continuation,**不写入**。
|
|
105
|
+
2. 向用户摘要目标、差异、风险。
|
|
106
|
+
3. 用户明确确认后调用 `apply`,必须带 `confirm=true` 和 prepare 返回的 continuation。
|
|
107
|
+
4. `apply` 遇到网络中断/不确定结果时返回 `partial/write_uncertain`,**禁止自动重试**,先做只读回查。
|
|
108
|
+
|
|
109
|
+
## 失败处理
|
|
110
|
+
|
|
111
|
+
- 遇到 `partial`、`write_uncertain`、登录失效、回查失败或网络中断,立即停止当前写流程,不自动重试写入。
|
|
112
|
+
- 认证类错误(`authentication`/`session_expired`):引导用户执行 `weaver-work-cli auth login`,不要用其他方式排查。
|
|
113
|
+
- `policy/link_unsupported`:当前链路没有该能力,不要换接口硬试,按 reference 中的替代路径处理。
|
|
114
|
+
- `validation/link_filter_unsupported`:ebuilder 链路列表不支持该筛选条件,改用 `query_scope=self` 或 `principalid` + 周期条件。
|
|
115
|
+
- `validation/period_quarter_invalid`、`validation/scope_data_id_required`、`validation/principal_dept_required`:补齐周期/部门参数后重试 prepare。
|
|
116
|
+
- 业务失败看 stderr JSON 的 `error.type` / `error.subtype` / `error.message`。
|
|
117
|
+
|
|
118
|
+
## 不在范围
|
|
119
|
+
|
|
120
|
+
- 人员「姓名 → 人员 ID」解析不在此技能内,交给 weaver-e10-hrm skill。
|
|
121
|
+
- 目标分类、部门、岗位等组织字典查询不在此技能内,按需走对应业务 Skill。
|
|
122
|
+
- 禁止绕过 CLI 直接 curl/fetch 访问 E10 接口。
|
|
123
|
+
- 禁止把未出现在 `okr schema` 中的能力当作可用 operation。
|
|
124
|
+
|
|
125
|
+
## 平台兼容
|
|
126
|
+
|
|
127
|
+
命令示例同时兼容 Windows 与 macOS/Linux。简单 JSON 用 `--input-json`,复杂 JSON 存 UTF-8 文件后用 `--input <path>`。
|
|
128
|
+
|
|
129
|
+
Windows PowerShell:
|
|
130
|
+
|
|
131
|
+
```powershell
|
|
132
|
+
weaver-work-cli --json okr run okr.list --input-json '{"period_type":"3","period_range":"2026-09","page_size":10}'
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
macOS/Linux(bash/zsh):
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
printf '%s\n' '{"period_type":"3","period_range":"2026-09","page_size":10}' | weaver-work-cli --json okr run okr.list --input -
|
|
139
|
+
```
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# 目标对齐(okr-align)
|
|
2
|
+
|
|
3
|
+
目标对齐用于把**当前目标**挂到**对齐目标**之下。该能力**仅 ebuilder 链路可用**——e10 标准版源资料没有提供对应接口,标准版租户调用会返回 `policy/link_unsupported`。
|
|
4
|
+
|
|
5
|
+
| operation | 风险 | 作用 |
|
|
6
|
+
| --- | --- | --- |
|
|
7
|
+
| `okr.align.create.prepare` | read-before-write | 补全双方负责人、生成预览与 continuation,**不写入** |
|
|
8
|
+
| `okr.align.create.apply` | high-risk-write | 提交添加目标对齐 |
|
|
9
|
+
|
|
10
|
+
| 字段 | 类型 | 说明 |
|
|
11
|
+
| --- | --- | --- |
|
|
12
|
+
| `current_id` | 目标 ID | 必填,当前目标 |
|
|
13
|
+
| `align_obj_id` | 目标 ID | 必填,被对齐的目标 |
|
|
14
|
+
| `cur_obj_principalid` | 人员 ID | 可选,当前目标负责人 |
|
|
15
|
+
| `ali_obj_principalid` | 人员 ID | 可选,对齐目标负责人 |
|
|
16
|
+
| `confirm` / `continuation` | - | 仅 `apply` 需要 |
|
|
17
|
+
|
|
18
|
+
## 关键业务规则
|
|
19
|
+
|
|
20
|
+
- **两个目标不能相同**:`current_id === align_obj_id` 时返回 `validation/align_invalid`。
|
|
21
|
+
- **自动补全双方负责人**:未显式提供 `cur_obj_principalid`/`ali_obj_principalid` 时,`prepare` 会用目标详情接口分别取两个目标的负责人;任一取不到会返回 `validation/align_principal_unresolved`,此时需要显式传入人员 ID(由 weaver-e10-hrm 解析),**CLI 不会臆造负责人**。
|
|
22
|
+
- `preview` 会展示当前目标/当前目标负责人/对齐目标/对齐目标负责人四项,确认前务必核对双方是否选反。
|
|
23
|
+
|
|
24
|
+
## 确认链
|
|
25
|
+
|
|
26
|
+
1. `okr.align.create.prepare` 返回 `preview` 与 `continuation`。
|
|
27
|
+
2. 用户明确确认后调 `okr.align.create.apply`,传 `current_id`、`align_obj_id`、`confirm=true`、`continuation`。
|
|
28
|
+
3. continuation 绑定 `baseUrl`/`profile`/`userId`,10 分钟有效;`current_id` 或内容指纹变化返回 `validation/target_changed`,需重新 prepare。
|
|
29
|
+
|
|
30
|
+
## 调用示例
|
|
31
|
+
|
|
32
|
+
准备对齐:
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
weaver-work-cli --json okr run okr.align.create.prepare --input-json '{"current_id":"<当前目标ID>","align_obj_id":"<对齐目标ID>"}'
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
用户核对双方负责人后提交:
|
|
39
|
+
|
|
40
|
+
```text
|
|
41
|
+
weaver-work-cli --json okr run okr.align.create.apply --input-json '{"current_id":"<当前目标ID>","align_obj_id":"<对齐目标ID>","confirm":true,"continuation":"<prepare 返回的 continuation>"}'
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
显式指定双方负责人(详情接口取不到时):
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
weaver-work-cli --json okr run okr.align.create.prepare --input-json '{"current_id":"<当前目标ID>","align_obj_id":"<对齐目标ID>","cur_obj_principalid":"<人员ID>","ali_obj_principalid":"<人员ID>"}'
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## 失败处理
|
|
51
|
+
|
|
52
|
+
- `policy/link_unsupported` → 当前租户走标准版链路,没有目标对齐接口,不要换接口硬试。
|
|
53
|
+
- 写入请求发出后连接中断 → `partial/write_uncertain`,禁止自动重试;先调 `okr.get`(或按 `okr.kr.list` 的方式)回查目标关系是否已建立。
|
|
54
|
+
- 源资料只提供**添加**对齐的接口,没有解除对齐的 operation。
|
|
55
|
+
|
|
56
|
+
## 注意
|
|
57
|
+
|
|
58
|
+
- 确认前必须让用户看清「谁对齐谁」,`current_id` 是挂在下面的那两个之一,方向弄反需要重建关系。
|
|
59
|
+
- 禁止手工构造或跨任务复用 continuation。
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# 关键成果保存(okr-keyresult)
|
|
2
|
+
|
|
3
|
+
关键成果(KR)的新建与修改共用一对 operation,**是否新建由有没有传 `kr_id` 决定**。
|
|
4
|
+
|
|
5
|
+
| operation | 风险 | 作用 |
|
|
6
|
+
| --- | --- | --- |
|
|
7
|
+
| `okr.kr.save.prepare` | read-before-write | 归一化输入、生成预览与 continuation,**不写入** |
|
|
8
|
+
| `okr.kr.save.apply` | high-risk-write | 提交关键成果保存(新建或修改) |
|
|
9
|
+
|
|
10
|
+
| 字段 | 类型 | 说明 |
|
|
11
|
+
| --- | --- | --- |
|
|
12
|
+
| `kr_id` | 关键成果 ID | **不传=新建,传了=修改** |
|
|
13
|
+
| `object_id` | 目标 ID | 必填,关键成果所属目标 |
|
|
14
|
+
| `name` | string | 关键成果名称,必填 |
|
|
15
|
+
| `principalid` | 人员 ID | 责任人,默认当前登录用户 |
|
|
16
|
+
| `participants` | 人员 ID 或数组 | 参与人(**仅标准版链路**) |
|
|
17
|
+
| `target_value` | number | 目标值 |
|
|
18
|
+
| `actual_value` | number | 实际值 |
|
|
19
|
+
| `weight` | number | 权重 |
|
|
20
|
+
| `progress` | number | 进度 0-100 |
|
|
21
|
+
| `score` | number | 分数 |
|
|
22
|
+
| `range` | `[开始,结束]` 或 `"开始,结束"` | 起止日期 `yyyy-MM-dd` |
|
|
23
|
+
| `kr_unit` | string | 单位(**仅 ebuilder 链路**) |
|
|
24
|
+
| `confidence` | number | 信心指数(**仅 ebuilder 链路**) |
|
|
25
|
+
| `risk` | `"1"`/`"2"`/`"3"` | 风险指数:1-正常 2-有风险 3-已延期(**仅 ebuilder 链路**) |
|
|
26
|
+
| `confirm` / `continuation` | - | 仅 `apply` 需要 |
|
|
27
|
+
|
|
28
|
+
## 链路差异
|
|
29
|
+
|
|
30
|
+
- **标准版链路**:写入 `/api/workrelate/goal/fs/krForm/saveForm` 的 `baseInfo`;新建不传 `id`,修改传 `id`。`kr_unit`/`confidence`/`risk` 属于 ebuilder 字段,被忽略后记入 `meta.notes`。
|
|
31
|
+
- **ebuilder 链路**:按有无 `kr_id` 选择 `okr_createKeyResult` 或 `okr_updateKeyResult`;`participants` 属于标准版字段,被忽略后记入 `meta.notes`。
|
|
32
|
+
|
|
33
|
+
## 确认链
|
|
34
|
+
|
|
35
|
+
1. `okr.kr.save.prepare` 返回 `preview`(关键成果名称、所属目标、责任人、目标值/实际值、权重、起止日期、操作=新建或修改)与 `continuation`。
|
|
36
|
+
2. 用户明确确认后调 `okr.kr.save.apply`,传 `confirm=true`、`continuation`,以及 `object_id` 与 `name`(schema 必需)。
|
|
37
|
+
3. continuation 绑定 `baseUrl`/`profile`/`userId`,10 分钟有效;内容指纹变化返回 `validation/target_changed`,需重新 prepare。
|
|
38
|
+
|
|
39
|
+
## 调用示例
|
|
40
|
+
|
|
41
|
+
新建关键成果:
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
weaver-work-cli --json okr run okr.kr.save.prepare --input-json '{"object_id":"<目标ID>","name":"后端接口开发","target_value":53,"actual_value":20,"weight":100,"progress":37,"range":["2026-01-01","2026-12-31"]}'
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
用户确认后提交:
|
|
48
|
+
|
|
49
|
+
```text
|
|
50
|
+
weaver-work-cli --json okr run okr.kr.save.apply --input-json '{"object_id":"<目标ID>","name":"后端接口开发","confirm":true,"continuation":"<prepare 返回的 continuation>"}'
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
修改已有关键成果(带 `kr_id`):
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
weaver-work-cli --json okr run okr.kr.save.prepare --input-json '{"kr_id":"<关键成果ID>","object_id":"<目标ID>","name":"后端接口开发","progress":80}'
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## 失败处理
|
|
60
|
+
|
|
61
|
+
- 写入请求发出后连接中断 → `partial/write_uncertain`,禁止自动重试;先通过 `okr.get`(标准版)或 `okr.kr.list`(ebuilder)复核。
|
|
62
|
+
- ebuilder 链路要批量核对关键成果时,用 `okr.kr.list` 按 `object_id` 分页查询。
|
|
63
|
+
|
|
64
|
+
## 注意
|
|
65
|
+
|
|
66
|
+
- **源资料只提供关键成果的新建与编辑接口,没有删除接口**,因此 CLI 不提供删除关键成果的 operation,不要尝试拼接口。
|
|
67
|
+
- `range` 传反(开始晚于结束)会被拒绝;`risk` 只接受 1/2/3。
|
|
68
|
+
- 结果不确定时先只读回查,不要重放写请求。
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# 链路判定与详情页链接(okr-link-routing)
|
|
2
|
+
|
|
3
|
+
OKR 目标在不同租户使用**两套互不兼容的接口链路**。同一租户内只使用其中一条,判定结果由 CLI 按租户缓存,业务侧不应自行猜测链路。
|
|
4
|
+
|
|
5
|
+
## 判定依据
|
|
6
|
+
|
|
7
|
+
| 项 | 值 |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| 版本接口 | `POST /api/ebuilder/form/formdata/v2/getFormDataList/okr_searchAppver` |
|
|
10
|
+
| 版本字段 | `datajson.datas[].mainTable.ver_name` |
|
|
11
|
+
| 路由规则 | `ver_name >= V2` → ebuilder 链路;其它或接口不可用 → 标准版链路 |
|
|
12
|
+
| 缓存 | 按租户隔离,key 前缀 `okr:version:`,有效期 1 天(86400 秒) |
|
|
13
|
+
|
|
14
|
+
兼容 `V2` / `v2` / `V14` / `2` 等写法,只比较主版本号。
|
|
15
|
+
|
|
16
|
+
### `okr.version.check`
|
|
17
|
+
|
|
18
|
+
- 入参:`refresh`(boolean,默认 `false`)。`refresh=true` 时忽略缓存重新判定。
|
|
19
|
+
- 返回:`link`(`standard` | `eb`)、`verName`、`tenantKey`、`cached`、`degraded`、`reason`、`checkedAt`、`versionInterface`。
|
|
20
|
+
- **缓存只在真正拿到版本答案时写入**。标准版租户通常没有该 ebuilder 接口,此时接口报错会**降级为标准版链路**(`degraded=true`、`verName=null`、`reason` 说明原因),且**不写缓存**、不硬编码链路。
|
|
21
|
+
|
|
22
|
+
便捷入口:`weaver-work-cli okr route`(`okr.version.check` 的薄包装,加 `--refresh` 忽略缓存)。
|
|
23
|
+
|
|
24
|
+
## 两套链路的接口面
|
|
25
|
+
|
|
26
|
+
| 能力 | 标准版链路 | ebuilder 链路 |
|
|
27
|
+
| --- | --- | --- |
|
|
28
|
+
| 目标分页查询 | `POST /api/workrelate/goal/getSearchList` | `POST /api/ebuilder/form/formdata/v2/getFormDataList/okr_pageQueryGoal` |
|
|
29
|
+
| 目标详情 | `GET /api/workrelate/goal/getObjectDetail/{id}` | `POST /api/ebuilder/form/formdata/v2/getFormDataByPk/okr_queryGoal` |
|
|
30
|
+
| 关键成果列表 | 随目标列表/详情返回(`keyresultList`) | `POST .../getFormDataList/okr_pageQueryGoalKeyResults` |
|
|
31
|
+
| 关键成果保存 | `POST /api/workrelate/goal/fs/krForm/saveForm` | `POST .../saveFormData/okr_createKeyResult` / `.../updateFormData/okr_updateKeyResult` |
|
|
32
|
+
| 目标评论 | `POST /api/goal/common/comment/commentPage` | **无接口** |
|
|
33
|
+
| 目标对齐 | **无接口** | `POST .../saveFormData/okr_createGoalAlign` |
|
|
34
|
+
| 新建 / 编辑目标 | `POST /api/workrelate/goal/create` / `/update` | `POST .../saveFormData/okr_createGoal` / `.../updateFormData/okr_updateGoal` |
|
|
35
|
+
|
|
36
|
+
链路专属能力被调用时会返回 `policy/link_unsupported`,**不要换接口硬试**。
|
|
37
|
+
|
|
38
|
+
## ebuilder 目标详情页表单 id
|
|
39
|
+
|
|
40
|
+
ebuilder 链路的详情页地址形如 `/sp/ebdfpage/card/0/{okr目标详情eb表单id}/{目标id}`,其中的**表单 id 需要解析**:
|
|
41
|
+
|
|
42
|
+
| 项 | 值 |
|
|
43
|
+
| --- | --- |
|
|
44
|
+
| 应用标签 appTag | `weaver-wr-goal-eb` |
|
|
45
|
+
| 表单标签 formTag | `uf_wrgm_baseinfo` |
|
|
46
|
+
| 解析步骤 | `GET /api/bs/ebuilder/app/tags/getAppIds?tag=<appTag>` → `GET /api/ebuilder/form/obj/getObjsByTag?tag=<formTag>&appId=<appId>` |
|
|
47
|
+
| 已知固定租户 | 租户 `tqasclatif` 的 okr 目标详情表单 id 为 `1027322801024458753`,命中时跳过两步解析 |
|
|
48
|
+
| 缓存 | 解析结果按租户长期缓存(key 前缀 `okr:ebform:`) |
|
|
49
|
+
|
|
50
|
+
`okr.eb.form.resolve` 用于显式解析并返回该表单 id(仅 ebuilder 链路可用)。
|
|
51
|
+
|
|
52
|
+
**表单 id 解析失败只影响链接,不影响主操作**:链接降级为 `null` 并写入 `warnings`(「目标详情页链接暂不可用」),绝不因此让主查询/主写入失败或被重试。
|
|
53
|
+
|
|
54
|
+
## 详情页链接
|
|
55
|
+
|
|
56
|
+
| operation | 用途 |
|
|
57
|
+
| --- | --- |
|
|
58
|
+
| `okr.viewlink` | 传入目标 ID(数组或英文逗号拼接字符串),返回 `path`(站内相对路径)与 `url`(绝对地址) |
|
|
59
|
+
| `okr.detail.link` | 返回当前链路的地址模板,不含具体目标 id |
|
|
60
|
+
|
|
61
|
+
标准版地址模板 `/sp/goal/openDetail?id={goalId}`;ebuilder 地址模板 `/sp/ebdfpage/card/0/{formId}/{goalId}`。
|
|
62
|
+
|
|
63
|
+
## 注意
|
|
64
|
+
|
|
65
|
+
- 本 reference 只说明判定与链接语义,**接口路径不是可直接调用的地址**;实际调用一律通过 `weaver-work-cli okr run <operation>`。
|
|
66
|
+
- 链路判定结果来自租户实际版本,不要根据「客户是否上过 ebuilder」之类的经验臆断链路。
|
|
67
|
+
- 同一次任务内如果需要多次操作,复用同一租户的判定结果即可,不必每次 `refresh`。
|