weaver-work-cli 0.1.8 → 0.1.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -17
- package/dist/cmd/action.js +76 -0
- package/dist/cmd/index.js +2 -0
- package/dist/cmd/refs/index.js +103 -0
- package/dist/cmd/register.js +31 -0
- package/dist/cmd/root.js +1 -0
- package/dist/cmd/setup/index.js +25 -5
- package/dist/cmd/skills/index.js +37 -5
- package/dist/core/connector.js +54 -0
- package/dist/core/context.js +2 -1
- package/dist/core/input.js +48 -0
- package/dist/core/output.js +298 -3
- package/dist/core/refs.js +435 -0
- package/dist/core/state.js +26 -0
- package/dist/internal/e10/auth/commands.js +34 -19
- package/dist/internal/e10/auth/session.js +74 -2
- package/dist/internal/e10/auth/xiaoe.js +359 -94
- package/dist/internal/e10/context.js +18 -6
- package/dist/internal/e10/request-runtime.js +8 -1
- package/dist/internal/skills/install.js +148 -28
- package/dist/internal/skills/reader.js +12 -9
- package/dist/shortcuts/blog/continuation.js +74 -0
- package/dist/shortcuts/blog/errors.js +60 -0
- package/dist/shortcuts/blog/host.js +175 -0
- package/dist/shortcuts/blog/index.js +324 -0
- package/dist/shortcuts/blog/manifest.js +415 -0
- package/dist/shortcuts/blog/operations/comment.js +125 -0
- package/dist/shortcuts/blog/operations/comments.js +31 -0
- package/dist/shortcuts/blog/operations/edit.js +131 -0
- package/dist/shortcuts/blog/operations/export.js +46 -0
- package/dist/shortcuts/blog/operations/like.js +80 -0
- package/dist/shortcuts/blog/operations/publish.js +157 -0
- package/dist/shortcuts/blog/operations/query-user.js +58 -0
- package/dist/shortcuts/blog/operations/query.js +96 -0
- package/dist/shortcuts/blog/operations/registry.js +54 -0
- package/dist/shortcuts/blog/operations/remind.js +176 -0
- package/dist/shortcuts/blog/operations/shared.js +330 -0
- package/dist/shortcuts/blog/operations/types.js +16 -0
- package/dist/shortcuts/blog/operations.js +9 -0
- package/dist/shortcuts/caizhilian/continuation.js +70 -0
- package/dist/shortcuts/caizhilian/errors.js +53 -0
- package/dist/shortcuts/caizhilian/host.js +190 -0
- package/dist/shortcuts/caizhilian/index.js +186 -0
- package/dist/shortcuts/caizhilian/manifest.js +42 -0
- package/dist/shortcuts/caizhilian/operations/api.js +801 -0
- package/dist/shortcuts/caizhilian/operations/confirm.js +75 -0
- package/dist/shortcuts/caizhilian/operations/files.js +306 -0
- package/dist/shortcuts/caizhilian/operations/form.js +170 -0
- package/dist/shortcuts/caizhilian/operations/handlers/collab.js +611 -0
- package/dist/shortcuts/caizhilian/operations/handlers/document.js +890 -0
- package/dist/shortcuts/caizhilian/operations/handlers/file-collection.js +1227 -0
- package/dist/shortcuts/caizhilian/operations/handlers/file-upload.js +192 -0
- package/dist/shortcuts/caizhilian/operations/handlers/fileops.js +570 -0
- package/dist/shortcuts/caizhilian/operations/handlers/folder.js +1024 -0
- package/dist/shortcuts/caizhilian/operations/handlers/search.js +318 -0
- package/dist/shortcuts/caizhilian/operations/handlers/setting-attach.js +294 -0
- package/dist/shortcuts/caizhilian/operations/handlers/setting-backup.js +423 -0
- package/dist/shortcuts/caizhilian/operations/handlers/setting-encrypt.js +238 -0
- package/dist/shortcuts/caizhilian/operations/handlers/setting-storage.js +364 -0
- package/dist/shortcuts/caizhilian/operations/handlers/system.js +106 -0
- package/dist/shortcuts/caizhilian/operations/registry.js +151 -0
- package/dist/shortcuts/caizhilian/operations/shared.js +408 -0
- package/dist/shortcuts/caizhilian/operations/specs.js +698 -0
- package/dist/shortcuts/caizhilian/operations/types.js +57 -0
- package/dist/shortcuts/caizhilian/operations.js +21 -0
- package/dist/shortcuts/contract/continuation.js +70 -0
- package/dist/shortcuts/contract/errors.js +62 -0
- package/dist/shortcuts/contract/host.js +205 -0
- package/dist/shortcuts/contract/index.js +318 -0
- package/dist/shortcuts/contract/manifest.js +596 -0
- package/dist/shortcuts/contract/operations/clause-reference.js +78 -0
- package/dist/shortcuts/contract/operations/form-info.js +371 -0
- package/dist/shortcuts/contract/operations/read.js +118 -0
- package/dist/shortcuts/contract/operations/registry.js +43 -0
- package/dist/shortcuts/contract/operations/request.js +300 -0
- package/dist/shortcuts/contract/operations/shared.js +133 -0
- package/dist/shortcuts/contract/operations/subject.js +157 -0
- package/dist/shortcuts/contract/operations/template.js +81 -0
- package/dist/shortcuts/contract/operations/types.js +7 -0
- package/dist/shortcuts/contract/operations/workflow.js +52 -0
- package/dist/shortcuts/contract/operations/write.js +131 -0
- package/dist/shortcuts/contract/operations.js +8 -0
- package/dist/shortcuts/hrm/index.js +83 -2
- package/dist/shortcuts/hrm/manifest.js +16 -9
- package/dist/shortcuts/hrm/operations/employee.js +160 -30
- package/dist/shortcuts/hrm/operations/org.js +17 -3
- package/dist/shortcuts/hrm/operations/position.js +18 -2
- package/dist/shortcuts/hrm/operations/registry.js +2 -0
- package/dist/shortcuts/hrm/operations/resolve.js +449 -0
- package/dist/shortcuts/index.js +5 -1
- package/dist/shortcuts/invoice/index.js +74 -36
- package/dist/shortcuts/invoice/manifest.js +674 -4
- package/dist/shortcuts/invoice/markdown.js +172 -0
- package/dist/shortcuts/invoice/operations/add.js +3 -3
- package/dist/shortcuts/invoice/operations/delete.js +2 -2
- package/dist/shortcuts/invoice/operations/get.js +10 -2
- package/dist/shortcuts/invoice/operations/import.js +2 -2
- package/dist/shortcuts/invoice/operations/registry.js +8 -1
- package/dist/shortcuts/invoice/operations/reim-auto.js +719 -0
- package/dist/shortcuts/invoice/operations/reim.js +85 -2
- package/dist/shortcuts/invoice/operations/shared.js +75 -8
- package/dist/shortcuts/invoice/operations/update.js +2 -2
- package/dist/shortcuts/invoice/operations/upload-and-validate.js +93 -0
- package/dist/shortcuts/invoice/operations/validate-preview.js +2 -1
- package/dist/shortcuts/invoice/projection.js +328 -0
- package/dist/shortcuts/meeting/host.js +18 -1
- package/dist/shortcuts/meeting/manifest.js +30 -18
- package/dist/shortcuts/meeting/operations/eb/catalog.js +390 -0
- package/dist/shortcuts/meeting/operations/eb/conflict.js +389 -0
- package/dist/shortcuts/meeting/operations/eb/factory.js +389 -0
- package/dist/shortcuts/meeting/operations/eb/index.js +22 -0
- package/dist/shortcuts/meeting/operations/env.js +8 -1
- package/dist/shortcuts/meeting/operations/registry.js +2 -0
- package/dist/shortcuts/meeting/operations/signs.js +216 -2
- package/dist/shortcuts/workflow/endpoints.js +2 -1
- package/dist/shortcuts/workflow/errors.js +8 -2
- package/dist/shortcuts/workflow/host.js +11 -4
- package/dist/shortcuts/workflow/operations/form.js +1016 -590
- package/dist/shortcuts/workflow/operations/read.js +913 -231
- package/dist/shortcuts/workflow/operations/shared.js +21 -0
- package/dist/shortcuts/workflow/operations/write.js +750 -52
- package/dist/shortcuts/workflow/operations.js +36 -10
- package/docs/_catalog.md +6 -0
- package/docs/agent-invoice.md +5 -1
- package/docs/agent-io-channel-design.md +468 -0
- package/docs/agent-skill-install.md +9 -4
- package/docs/blog.md +123 -0
- package/docs/caizhilian.md +304 -0
- package/docs/contract.md +91 -0
- package/docs/e10-auth.md +4 -2
- package/docs/hrm.md +53 -11
- package/docs/invoice.md +5 -1
- package/docs/meeting.md +1 -1
- package/docs/operation-manual.md +15 -3
- package/docs/skill-review-2026-09-19.md +2 -2
- package/package.json +1 -1
- package/scripts/package-skill.mjs +32 -20
- package/scripts/xiaoe_env.py +118 -0
- package/skill-template/business-info.json +113 -14
- package/skill-template/domains/blog.md +24 -0
- package/skill-template/domains/caizhilian.md +22 -0
- package/skill-template/domains/hrm.md +2 -1
- package/skill-template/domains/jinchengda.md +23 -0
- package/skill-template/domains/meeting.md +1 -1
- package/skill-template/domains/workflow.md +1 -1
- package/skill-template/skill-template.md +1 -1
- package/skills/weaver-e10-blog/SKILL.md +111 -0
- package/skills/weaver-e10-blog/references/blog-comment.md +51 -0
- package/skills/weaver-e10-blog/references/blog-comments.md +39 -0
- package/skills/weaver-e10-blog/references/blog-default-permission.md +38 -0
- package/skills/weaver-e10-blog/references/blog-disabled-capabilities.md +11 -0
- package/skills/weaver-e10-blog/references/blog-edit.md +51 -0
- package/skills/weaver-e10-blog/references/blog-export.md +42 -0
- package/skills/weaver-e10-blog/references/blog-like.md +50 -0
- package/skills/weaver-e10-blog/references/blog-publish.md +52 -0
- package/skills/weaver-e10-blog/references/blog-query-user.md +45 -0
- package/skills/weaver-e10-blog/references/blog-query.md +49 -0
- package/skills/weaver-e10-blog/references/blog-remind.md +51 -0
- package/skills/weaver-e10-blog/references/blog-resolve-users.md +38 -0
- package/skills/weaver-e10-blog/references/source-manifest.json +1540 -0
- package/skills/weaver-e10-caizhilian/SKILL.md +217 -0
- package/skills/weaver-e10-caizhilian/references/agent-entry.md +106 -0
- package/skills/weaver-e10-caizhilian/references/collaboration.md +112 -0
- package/skills/weaver-e10-caizhilian/references/document.md +111 -0
- package/skills/weaver-e10-caizhilian/references/file-collection.md +173 -0
- package/skills/weaver-e10-caizhilian/references/file-upload.md +309 -0
- package/skills/weaver-e10-caizhilian/references/files.md +120 -0
- package/skills/weaver-e10-caizhilian/references/folder.md +122 -0
- package/skills/weaver-e10-caizhilian/references/org-browser.md +104 -0
- package/skills/weaver-e10-caizhilian/references/setting-attach.md +440 -0
- package/skills/weaver-e10-caizhilian/references/setting-backup.md +372 -0
- package/skills/weaver-e10-caizhilian/references/setting-encrypt.md +399 -0
- package/skills/weaver-e10-caizhilian/references/setting-storage.md +603 -0
- package/skills/weaver-e10-caizhilian/references/source-manifest.json +5694 -0
- package/skills/weaver-e10-caizhilian/references/withheld.md +93 -0
- package/skills/weaver-e10-caizhilian/references/write-protocol.md +120 -0
- package/skills/weaver-e10-calendar/SKILL.md +4 -3
- package/skills/weaver-e10-ebuilder-form/SKILL.md +4 -9
- package/skills/weaver-e10-ebuilder-form/references/context-routing.md +0 -9
- package/skills/weaver-e10-ebuilder-form/references/custom-api.md +1 -5
- package/skills/weaver-e10-ebuilder-form/references/fields-browser.md +1 -5
- package/skills/weaver-e10-ebuilder-form/references/list-nlist.md +1 -5
- package/skills/weaver-e10-ebuilder-form/references/openapi-read.md +1 -5
- package/skills/weaver-e10-ebuilder-form/references/openapi-write.md +1 -5
- package/skills/weaver-e10-esb/SKILL.md +2 -2
- package/skills/weaver-e10-esb/references/source-manifest.json +9 -9
- package/skills/weaver-e10-hrm/SKILL.md +104 -9
- package/skills/weaver-e10-hrm/references/employee.md +89 -15
- package/skills/weaver-e10-hrm/references/org.md +114 -5
- package/skills/weaver-e10-hrm/references/position.md +14 -7
- package/skills/weaver-e10-hrm/references/source-manifest.json +1 -1
- package/skills/weaver-e10-jinchengda/SKILL.md +167 -0
- package/skills/weaver-e10-jinchengda/references/contract-agent-entry.md +82 -0
- package/skills/weaver-e10-jinchengda/references/contract-clause-recommender.md +69 -0
- package/skills/weaver-e10-jinchengda/references/contract-clause-reference-save.md +78 -0
- package/skills/weaver-e10-jinchengda/references/contract-disabled-capabilities.md +27 -0
- package/skills/weaver-e10-jinchengda/references/contract-request-status.md +71 -0
- package/skills/weaver-e10-jinchengda/references/contract-request-write.md +94 -0
- package/skills/weaver-e10-jinchengda/references/contract-signing-subjects.md +89 -0
- package/skills/weaver-e10-jinchengda/references/contract-subject-create.md +77 -0
- package/skills/weaver-e10-jinchengda/references/contract-template-selector.md +66 -0
- package/skills/weaver-e10-jinchengda/references/contract-workflow-discovery.md +94 -0
- package/skills/weaver-e10-jinchengda/references/source-manifest.json +259 -0
- package/skills/weaver-e10-jiuchuanhui/SKILL.md +5 -11
- package/skills/weaver-e10-jucailin/SKILL.md +4 -3
- package/skills/weaver-e10-mail/SKILL.md +4 -11
- package/skills/weaver-e10-meeting/SKILL.md +66 -32
- package/skills/weaver-e10-meeting/references/meeting-change.md +5 -2
- package/skills/weaver-e10-meeting/references/meeting-create.md +2 -1
- package/skills/weaver-e10-meeting/references/meeting-eb.md +114 -0
- package/skills/weaver-e10-meeting/references/meeting-lifecycle.md +9 -8
- package/skills/weaver-e10-meeting/references/meeting-receipts-signs.md +35 -7
- package/skills/weaver-e10-meeting/references/meeting-update.md +1 -1
- package/skills/weaver-e10-okr/SKILL.md +6 -11
- package/skills/weaver-e10-okr/references/source-manifest.json +3 -3
- package/skills/weaver-e10-plan/SKILL.md +3 -3
- package/skills/weaver-e10-plan/references/plan-collect-and-compose.md +1 -1
- package/skills/weaver-e10-plan/references/plan-overview-and-routing.md +1 -1
- package/skills/weaver-e10-plan/references/source-manifest.json +13 -13
- package/skills/weaver-e10-qiyecheng/SKILL.md +4 -10
- package/skills/weaver-e10-qiyecheng/references/source-manifest.json +9 -9
- package/skills/weaver-e10-shared/SKILL.md +42 -34
- package/skills/weaver-e10-shared/references/e10-auth-and-session.md +16 -43
- package/skills/weaver-e10-shared/references/json-output-contract.md +20 -11
- package/skills/weaver-e10-shared/references/non-interactive-environment.md +21 -14
- package/skills/weaver-e10-shijingran/SKILL.md +2 -1
- package/skills/weaver-e10-shijingran/references/source-manifest.json +9 -9
- package/skills/weaver-e10-skill-maker/SKILL.md +4 -10
- package/skills/weaver-e10-skill-maker/references/business-skill-generation.md +5 -3
- package/skills/weaver-e10-skill-maker/references/module-cli-generation.md +12 -27
- package/skills/weaver-e10-skill-maker/references/module-gap-audit-and-repair.md +17 -5
- package/skills/weaver-e10-skill-maker/references/source-update-detection.md +4 -27
- package/skills/weaver-e10-skill-maker/references/weaver-skill-style.md +1 -1
- package/skills/weaver-e10-wenshuding/SKILL.md +5 -16
- package/skills/weaver-e10-wenshuding/references/source-manifest.json +7 -7
- package/skills/weaver-e10-workflow/SKILL.md +41 -46
- package/skills/weaver-e10-workflow/references/source-manifest.json +39 -75
- package/skills/weaver-e10-workflow/references/workflow-batch.md +90 -29
- package/skills/weaver-e10-workflow/references/workflow-create.md +83 -109
- package/skills/weaver-e10-workflow/references/workflow-memory.md +19 -9
- package/skills/weaver-e10-workflow/references/workflow-operate.md +2 -2
- package/skills/weaver-e10-workflow/references/workflow-query.md +40 -27
- package/skills/weaver-e10-workflow/references/workflow-share.md +18 -2
- package/skills/weaver-e10-workflow/references/workflow-view.md +3 -4
- package/skills/weaver-e10-yepiaotong/SKILL.md +74 -39
- package/skills/weaver-e10-yepiaotong/references/invoice-detail.md +22 -1
- package/skills/weaver-e10-yepiaotong/references/invoice-enterprise-list.md +3 -1
- package/skills/weaver-e10-yepiaotong/references/invoice-output-view.md +135 -0
- package/skills/weaver-e10-yepiaotong/references/invoice-personal-list.md +15 -3
- package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +1 -1
- package/skills/weaver-e10-yepiaotong/references/invoice-summarize.py +217 -0
- package/skills/weaver-e10-yepiaotong/references/invoice-upload-and-validate.md +88 -0
- package/skills/weaver-e10-yepiaotong/references/invoice-validation-preview.md +7 -2
- package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +89 -9
- package/skills/weaver-e10-yepiaotong/references/reim-examples.md +1 -0
- package/skills/weaver-e10-yepiaotong/references/reim-expense-subject-rules.md +70 -49
- package/skills/weaver-e10-yepiaotong/references/reim-fast-path.md +119 -0
- package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +55 -36
- package/skills/weaver-e10-yepiaotong/references/reim-matching-rules.md +4 -0
- package/skills/weaver-e10-yepiaotong/references/reim-phone-subsidy-rules.md +149 -0
- package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +125 -5
- package/skills/weaver-e10-yepiaotong/references/source-manifest.json +430 -63
- package/skills/weaver-e10-yimiaoban/SKILL.md +4 -12
- package/skills/weaver-e10-yimiaoban/references/source-manifest.json +3 -3
- package/skills/weaver-e10-ziguanjia/SKILL.md +2 -1
- package/skills/weaver-e10-ziguanjia/references/ziguanjia-agent-entry.md +3 -3
- package/tools/weaver-skill-detector-1.0.13/SKILL.md +9 -9
- package/tools/weaver-skill-detector-1.0.13/references/checklist.md +3 -3
- package/tools/weaver-skill-detector-1.0.13/scripts/__pycache__/validate_skill.cpython-313.pyc +0 -0
- package/tools/weaver-skill-detector-1.0.13/scripts/validate_skill.py +98 -91
- package/scripts/sync-connector-skills.mjs +0 -172
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# 采知连文件夹:创建、虚拟文件夹、默认共享与权限设置
|
|
2
|
+
|
|
3
|
+
## 何时使用
|
|
4
|
+
|
|
5
|
+
- 用户要在公共/个人知识库里建文件夹,或按名称找文件夹 ID。
|
|
6
|
+
- 用户要查/改文件夹的默认设置:默认共享人、默认参与人、文档权限(下载、复制、移动、删除、新建文档、新建文件夹、设置)。
|
|
7
|
+
- 用户要按权限反查「哪些文件夹对某人/某部门开放了某项权限」。
|
|
8
|
+
- 创建文档前需要拿 `folder_id`,或需要确认目标文件夹允许创建的文档类型。
|
|
9
|
+
|
|
10
|
+
## 输入要点
|
|
11
|
+
|
|
12
|
+
### 只读查询
|
|
13
|
+
|
|
14
|
+
| operation | 必填 | 关键可选 |
|
|
15
|
+
| --- | --- | --- |
|
|
16
|
+
| `caizhilian.folder.query-by-name` | `folder_name` | `kb_type`(`company`/`privy`/`sys`,默认 `company`) |
|
|
17
|
+
| `caizhilian.folder.search-virtual` | 无 | `name`、`page_no`、`page_size`(默认 50) |
|
|
18
|
+
| `caizhilian.folder.get-settings` | `folder_id` | 无 |
|
|
19
|
+
| `caizhilian.folder.list-default-shares` | `folder_id` | 旧名字段 `folderId`(源参数名)仍兼容;与新名同时出现且取值不一致会报 `alias_conflict` |
|
|
20
|
+
| `caizhilian.folder.default-share.form` | `folder_id`、`category`(`creator`/`generic`) | 无 |
|
|
21
|
+
| `caizhilian.folder.default-share.list` | `folder_id` | 无 |
|
|
22
|
+
| `caizhilian.folder.permission.form` | `folder_id`、`permission_type` | 无 |
|
|
23
|
+
| `caizhilian.folder.permission.list` | `folder_id`、`permission_type` | 无 |
|
|
24
|
+
| `caizhilian.folder.permission.get-auth` | `folder_id`、`permission_type` | 无 |
|
|
25
|
+
| `caizhilian.folder.permission.detail` | `folder_id`、`setting_type` | 无 |
|
|
26
|
+
| `caizhilian.folder.permission.query` | `folder_ids`(数组) | 无 |
|
|
27
|
+
| `caizhilian.folder.query-by-permission` | `permission_key`、`permissions` | `page_no`、`page_size`(默认 20) |
|
|
28
|
+
|
|
29
|
+
枚举取值(**拼写 1:1 沿用源接口,注意 `Premisstion` 是源的拼写,不要自行改成 `Permission`**):
|
|
30
|
+
|
|
31
|
+
- `permission_type`(8 项):`copyPermission`、`deletePremisstion`、`downloadPremisstion`、`folderDefaultParticipants`、`movePermission`、`newCreateDocPremisstion`、`newCreateFolderPremisstion`、`settingPermission`
|
|
32
|
+
- `setting_type`(9 项):上面 8 项 + `defaultShares`
|
|
33
|
+
- `permission_key`(9 项):上面 8 项,但把 `folderDefaultParticipants` 之外再加 `folderDefaultShareNew`(即 `copyPermission`、`deletePremisstion`、`downloadPremisstion`、`folderDefaultParticipants`、`folderDefaultShareNew`、`movePermission`、`newCreateDocPremisstion`、`newCreateFolderPremisstion`、`settingPermission`)
|
|
34
|
+
|
|
35
|
+
`query-by-permission` 的 `permissions` 是对象数组,元素形如 `{"object_type":"all"}` 或 `{"object_type":"resource","object_ids":["123"]}`;`object_type` 必填,`object_ids` 必须是正整数字符串。`page_no` / `page_size` 传 `<=0` 会报 `validation/number_invalid`(源脚本是静默归一,这里选择显式报错)。
|
|
36
|
+
|
|
37
|
+
`object_ids` 必须是**对象的真实 ID**:人员/部门/分部/角色/岗位/客户一律用 `caizhilian.org.search-*` 查出来的 `id`(每个对象都要是字符串,且不要用 JSON 数字传)。**不要用 `default-share.list` / `get-settings` / `permission.list` 返回条目里的 `id`**——那是共享/权限条目的 ID,不是对象 ID,拿它反查只会得到空结果。不带 ID 的对象类型(`all`、`allExternal`、`createrSelf` 等)不传 `object_ids`。
|
|
38
|
+
|
|
39
|
+
### 写操作
|
|
40
|
+
|
|
41
|
+
| operation | 必填 | 关键可选 |
|
|
42
|
+
| --- | --- | --- |
|
|
43
|
+
| `caizhilian.folder.create` | `name`、`parent_id`、`parent_type`(`company`/`privy`) | `sequence`(-9999~99999,默认 0)、`inherit_parent`(默认 false) |
|
|
44
|
+
| `caizhilian.folder.default-share.add` | `folder_id`、`obj_type`、`share_level` | 11 个 `obj_id*` 数组 + `download`、`department_attribute`、`role_level`、`position_level`、`position_attribute`、`virtualCompany`、`createrPositionLevel`、`seclevel_min`、`seclevel_max` |
|
|
45
|
+
| `caizhilian.folder.default-share.delete` | `folder_id`、`ids` | 无 |
|
|
46
|
+
| `caizhilian.folder.permission.add` | `folder_id`、`permission_type`、`obj_type` | `obj_id`、`obj_id_department`、`obj_id_subcompany`、`obj_id_role`、`obj_id_position`、`obj_id_customer`、`obj_id_customer_type`、`department_attribute`、`role_level`、`position_level`、`position_attribute`、`position_level_department`、`position_level_subcompany` |
|
|
47
|
+
| `caizhilian.folder.permission.delete` | `folder_id`、`permission_type`、`ids` | 无 |
|
|
48
|
+
| `caizhilian.folder.permission.set-auth` | `folder_id`、`permission_type`、`value`(`true`/`user`/`false`) | 无 |
|
|
49
|
+
| `caizhilian.folder.permission.sync-setting` | `id`(文件夹 ID) | `keepOldSettingForAllFolders`(默认 false) |
|
|
50
|
+
|
|
51
|
+
- `folder.create` 的 `parent_type=privy`(个人)时,`sequence` 强制为 `0`、`inherit_parent` 强制为 `false`(源行为)。
|
|
52
|
+
- `obj_type` 与 `share_level` 不要猜:先用 `default-share.form` / `permission.form` 拿到 `obj_types[].id` 和级联参数,再决定要传哪些 `obj_id*` 字段;传了 `obj_type` 未配置的对象字段会报 `validation/obj_type_not_configured` 或 `obj_type_not_supported`。
|
|
53
|
+
- `download` 在 `share_level != 1` 且未传时默认按 `["download"]` 处理(源行为)。
|
|
54
|
+
- `set-auth` 的 `value=user` 表示「按人员白名单」,此时白名单条目由 `permission.list` / `permission.add` 维护;`permission_auth_not_user` 表示当前权限类型不是 `user` 模式,需要先 `set-auth`。
|
|
55
|
+
|
|
56
|
+
## 命令
|
|
57
|
+
|
|
58
|
+
Windows PowerShell:
|
|
59
|
+
|
|
60
|
+
```powershell
|
|
61
|
+
weaver-work-cli --json caizhilian run caizhilian.folder.query-by-name --input-json '{"folder_name":"财务","kb_type":"company"}'
|
|
62
|
+
weaver-work-cli --json caizhilian run caizhilian.folder.get-settings --input-json '{"folder_id":"456"}'
|
|
63
|
+
weaver-work-cli --json caizhilian run caizhilian.folder.permission.list --input-json '{"folder_id":"456","permission_type":"downloadPremisstion"}'
|
|
64
|
+
weaver-work-cli --json caizhilian run caizhilian.folder.create.prepare --input-json '{"name":"2026 合同","parent_id":"456","parent_type":"company","inherit_parent":true}'
|
|
65
|
+
weaver-work-cli --json caizhilian run caizhilian.folder.create.apply --input-json '{"name":"2026 合同","parent_id":"456","parent_type":"company","inherit_parent":true}' --continuation TOKEN --yes
|
|
66
|
+
weaver-work-cli --json caizhilian run caizhilian.folder.permission.set-auth.prepare --input-json '{"folder_id":"456","permission_type":"downloadPremisstion","value":"user"}'
|
|
67
|
+
weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-setting.prepare --input-json '{"id":"456","keepOldSettingForAllFolders":true}'
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
macOS/Linux(bash/zsh):
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
weaver-work-cli --json caizhilian run caizhilian.folder.query-by-name --input-json '{"folder_name":"财务","kb_type":"company"}'
|
|
74
|
+
weaver-work-cli --json caizhilian run caizhilian.folder.get-settings --input-json '{"folder_id":"456"}'
|
|
75
|
+
weaver-work-cli --json caizhilian run caizhilian.folder.permission.list --input-json '{"folder_id":"456","permission_type":"downloadPremisstion"}'
|
|
76
|
+
weaver-work-cli --json caizhilian run caizhilian.folder.create.prepare --input-json '{"name":"2026 合同","parent_id":"456","parent_type":"company","inherit_parent":true}'
|
|
77
|
+
weaver-work-cli --json caizhilian run caizhilian.folder.create.apply --input-json '{"name":"2026 合同","parent_id":"456","parent_type":"company","inherit_parent":true}' --continuation TOKEN --yes
|
|
78
|
+
weaver-work-cli --json caizhilian run caizhilian.folder.permission.set-auth.prepare --input-json '{"folder_id":"456","permission_type":"downloadPremisstion","value":"user"}'
|
|
79
|
+
weaver-work-cli --json caizhilian run caizhilian.folder.permission.sync-setting.prepare --input-json '{"id":"456","keepOldSettingForAllFolders":true}'
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## 输出处理
|
|
83
|
+
|
|
84
|
+
- `query-by-name` 返回**展平后的路径列表**(源模板 `FlattenSearchResultFolderTree`),每项含文件夹 ID、名称与完整路径;同名文件夹可能出现在多个路径下,必须让用户确认选哪一个,不要默认取第一条。
|
|
85
|
+
- `search-virtual` 返回 `{ page_no, page_size, has_next, folders[] }`,每项含 `id`、`name`、`path`、`parent_folder_id`(源 `content` 形如 `名称[路径]`,CLI 已拆开)。
|
|
86
|
+
- `get-settings` 返回 `{ defaultVirtualFolder, folderDefaultParticipants, currentFolder, folderDefaultShareNew }`(`currentFolder` 含 `id`/`name`/`title`;参与人每项含 `id`/`content`/`_entityType`,共享对象另含 `canDelete`),创建文档时的兜底来源。
|
|
87
|
+
- `folder.create.apply` 返回 `{ folder_id, name, type, parent_id }`,新文件夹 ID 可直接用于后续创建文档。
|
|
88
|
+
- 文件夹侧共享/权限条目统一归一为 `{ id, object_type, object_name, share_level, sec_level }`(`sec_level` 空值显示为 `--`);文档级共享条目(`share.*`)另含 `download`、`can_delete`。
|
|
89
|
+
- `list-default-shares` → `{ defaultShares[] }`;`default-share.list` → `{ default_shares[] }`;`permission.list` → `{ add_visible, shares[] }`(`add_visible=false` 时不要再引导用户添加)。删除前必须从列表里取真实条目 `ids`,不要自己拼。
|
|
90
|
+
- `default-share.form` → `{ category, obj_types[], param_options }`;`permission.form` → `{ obj_types[], param_options }`。`obj_types[].id` 就是 `obj_type` 的合法取值,`param_options` 给出级联参数。
|
|
91
|
+
- `permission.get-auth` 返回 `{ permission_type, current_value }`(`true` / `user` / `false`)。
|
|
92
|
+
- `permission.detail` 返回 `{ title, current_setting, list_label, items[] }`;`setting_type=defaultShares` 时只返回 `{ title, items[] }`。
|
|
93
|
+
- `permission.query` 返回 `{ permissions }`:以 `folder_id` 为 key 的映射,每个 value 含 `isCreateDoc`、`isCreateFolder`、`canMoveDoc`、`canCopyDoc` 四个布尔标志与 `allowDocumentCreateTypes`(允许创建的文档类型列表,无设置时为空数组)。建文档前可用它确认目标文件夹是否允许创建及允许的文档类型。
|
|
94
|
+
- `query-by-permission` 返回 `{ total, page_no, page_size, has_next, folders[] }`,每项含 `folder_id`、`folder_name`、`folder_type`。返回空数组只表示「没有匹配到」:先按上文核对 `object_ids` 是不是对象的真实 ID,再如实把结果告诉用户;**不要据此断定「反查不支持该权限类型」**。返回里没有文件夹路径,需要展示路径时用 `get-settings` 的 `currentFolder.title` 或 `query-by-name` 补。
|
|
95
|
+
- 写操作 `apply` 返回结果回显:`default-share.add` → `{ added: true, default_shares }` 或 `{ added: false, message }`(服务端判定「已存在」不是失败,必须把 message 转述给用户);`default-share.delete` → `{ deleted: true, default_shares }`;`permission.add` → `{ added: true, shares }`;`permission.delete` → `{ deleted: true, shares }`;`permission.set-auth` → `{ permission_type, value, current_value }`;`permission.sync-setting` → `{ existChildFolder }`。
|
|
96
|
+
- 权限/共享类写操作的 `prepare` 返回请求体预览 + `continuation`;向用户摘要时必须写清「哪个文件夹、哪项权限、给谁、什么级别」,并说明删除类操作不可撤销。
|
|
97
|
+
- 列表类结果默认用 Markdown 表格摘要(文件夹名/路径/权限类型/对象/级别),不要原样贴 JSON。
|
|
98
|
+
|
|
99
|
+
## 注意
|
|
100
|
+
|
|
101
|
+
- 文件夹权限与默认共享是**影响面很大的配置**:改错会导致整个知识库的下载、复制、新建权限对全员开放或全部收紧。`permission.set-auth` 从 `user` 改成 `true` 等于放开给所有人,确认摘要里必须显式写出这一后果。
|
|
102
|
+
- `folder.create` 会在服务端产生新节点;`inherit_parent=true` 会连带继承父文件夹的权限与默认设置,必须在确认摘要里说明。
|
|
103
|
+
- 删除类(`default-share.delete` / `permission.delete`)必须先做一次对应 `list` 只读查询,把待删条目的可读信息展示给用户后再 prepare。
|
|
104
|
+
- `permission.sync-setting` 会将当前文件夹的管理员权限设置同步到所有下级子文件夹,**执行前必须提醒用户此操作对系统性能可能有一定影响**。`keepOldSettingForAllFolders=true` 表示保留原有管理员设置,`false` 表示不保留。
|
|
105
|
+
- 本 reference 只覆盖文件夹与权限;文档级共享/参与人/标签见 `collaboration.md`。
|
|
106
|
+
|
|
107
|
+
## 失败处理
|
|
108
|
+
|
|
109
|
+
| error.subtype | 触发场景 | 处理 |
|
|
110
|
+
| --- | --- | --- |
|
|
111
|
+
| `enum_invalid` | `parent_type` / `permission_type` / `setting_type` / `permission_key` / `value` 取值非法 | 按上面的枚举修正,注意源的 `Premisstion` 拼写 |
|
|
112
|
+
| `alias_conflict` | 同义的新旧字段(如 `folder_id` 与 `folderId`)同时出现且取值不一致 | 只保留 `folder_id` 后重试,不要两个都传 |
|
|
113
|
+
| `folder_no_create_folder_permission` | 目标父文件夹不允许新建文件夹 | 转述给用户,提示需要文件夹管理权限 |
|
|
114
|
+
| `permission_fields_required` | `obj_type` 要求的对象字段没传 | 先查 `*.form`,补齐对应 `obj_id*` |
|
|
115
|
+
| `obj_type_not_configured` / `obj_type_not_supported` | `obj_type` 未在表单中配置或不被该接口支持 | 用 `form` 返回的 `obj_types[].id` 重新选 |
|
|
116
|
+
| `permission_auth_not_user` | 权限类型不是 `user` 模式却维护白名单 | 先 `permission.set-auth` 设为 `user` |
|
|
117
|
+
| `entries_not_found` | 待删除的 `ids` 在列表中不存在 | 重新 `list` 后取真实 ID |
|
|
118
|
+
| `number_out_of_range` | ID 等大整数用 JSON 数字传入且超出安全整数范围 | 改成字符串重新传,不要原样重试(数字传入时已经被截断) |
|
|
119
|
+
| `id_invalid` | `folder_id` / `object_ids` 等不是正整数 | 重新查真实 ID;反查的对象 ID 要来自 `org.search-*`,不是共享条目 ID |
|
|
120
|
+
| `range_invalid` / `number_invalid` | `sequence`、`seclevel_min/max`、分页越界 | 按范围修正 |
|
|
121
|
+
| `api/business_error` | 服务端业务失败(含权限不足) | 原样转述 message,不要重复提交 |
|
|
122
|
+
| `partial/write_uncertain` | 写结果不确定 | 立即停止,最多补一次 `permission.list` / `default-share.list` 只读回查,禁止自动重放 |
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# 采知连组织人员浏览器:人员/部门/分部/岗位/角色/客户检索
|
|
2
|
+
|
|
3
|
+
## 何时使用
|
|
4
|
+
|
|
5
|
+
- 用户说的是人名、部门名、分部名,但共享、参与人、文件夹权限、作者变更都要 **ID**:先用本 reference 的浏览器检索把名称解析成 ID,再传给写操作。
|
|
6
|
+
- 需要确认「当前登录人是谁」(个人知识库 `folder_id=300`、个人标签 `type=1`、创建人过滤 `creator_user_id` 都依赖它)。
|
|
7
|
+
- `folder.default-share.form` / `folder.permission.form` / `share.form` 返回的 `obj_types[].id` 指明了要传哪一类对象,用对应的浏览器操作取该类对象的真实 ID。
|
|
8
|
+
|
|
9
|
+
## 输入要点
|
|
10
|
+
|
|
11
|
+
8 个浏览器检索操作入参完全一致,全部只读、无写操作:
|
|
12
|
+
|
|
13
|
+
| operation | 源 operation | 解析对象 | 输出列表键 |
|
|
14
|
+
| --- | --- | --- | --- |
|
|
15
|
+
| `caizhilian.org.search-user` | `search_user` | 内部人员 | `users[]` |
|
|
16
|
+
| `caizhilian.org.search-department` | `search_department` | 部门 | `departments[]` |
|
|
17
|
+
| `caizhilian.org.search-subcompany` | `search_subcompany` | 分部/子公司 | `subcompanies[]` |
|
|
18
|
+
| `caizhilian.org.search-external` | `search_external` | 外部人员 | `externals[]` |
|
|
19
|
+
| `caizhilian.org.search-position` | `search_position` | 岗位 | `positions[]` |
|
|
20
|
+
| `caizhilian.org.search-role` | `search_role` | 角色 | `roles[]` |
|
|
21
|
+
| `caizhilian.org.search-customer` | `search_customer` | CRM 客户 | `customers[]` |
|
|
22
|
+
| `caizhilian.org.search-customer-type` | `search_customer_type` | CRM 客户类型字典 | `customer_types[]` |
|
|
23
|
+
|
|
24
|
+
公共入参:
|
|
25
|
+
|
|
26
|
+
| 参数 | 必填 | 说明 |
|
|
27
|
+
| --- | --- | --- |
|
|
28
|
+
| `keyword` | 否 | 快搜关键词。源按对象类型用不同的快搜字段(人员 `username`、角色 `role_name`、客户 `customer_name`、其余 `name`),CLI 已封装,调用方只传 `keyword` |
|
|
29
|
+
| `page_no` | 否 | 页码,1-indexed,默认 `1` |
|
|
30
|
+
| `page_size` | 否 | 每页条数,默认 `50` |
|
|
31
|
+
|
|
32
|
+
另有 `caizhilian.user.current`(源 `fetch_current_user_info`):**无入参**,返回 `{ employeeId, employeeName }`。
|
|
33
|
+
|
|
34
|
+
`keyword` 留空等于「不按名称过滤」,服务端会返回该浏览器的默认首页数据,可用于让用户从列表里挑。
|
|
35
|
+
|
|
36
|
+
## 命令
|
|
37
|
+
|
|
38
|
+
Windows PowerShell:
|
|
39
|
+
|
|
40
|
+
```powershell
|
|
41
|
+
weaver-work-cli --json caizhilian run caizhilian.org.search-user --input-json '{"keyword":"张三","page_size":20}'
|
|
42
|
+
weaver-work-cli --json caizhilian run caizhilian.org.search-department --input-json '{"keyword":"财务"}'
|
|
43
|
+
weaver-work-cli --json caizhilian run caizhilian.org.search-subcompany --input-json '{"keyword":"上海"}'
|
|
44
|
+
weaver-work-cli --json caizhilian run caizhilian.org.search-position --input-json '{"keyword":"经理"}'
|
|
45
|
+
weaver-work-cli --json caizhilian run caizhilian.org.search-role --input-json '{"keyword":"文档管理员"}'
|
|
46
|
+
weaver-work-cli --json caizhilian run caizhilian.org.search-customer --input-json '{"keyword":"泛微"}'
|
|
47
|
+
weaver-work-cli --json caizhilian run caizhilian.org.search-customer-type --input-json '{"keyword":"重点"}'
|
|
48
|
+
weaver-work-cli --json caizhilian run caizhilian.org.search-external --input-json '{"keyword":"顾问"}'
|
|
49
|
+
weaver-work-cli --json caizhilian run caizhilian.user.current
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
macOS/Linux(bash/zsh):
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
weaver-work-cli --json caizhilian run caizhilian.org.search-user --input-json '{"keyword":"张三","page_size":20}'
|
|
56
|
+
weaver-work-cli --json caizhilian run caizhilian.org.search-department --input-json '{"keyword":"财务"}'
|
|
57
|
+
weaver-work-cli --json caizhilian run caizhilian.org.search-subcompany --input-json '{"keyword":"上海"}'
|
|
58
|
+
weaver-work-cli --json caizhilian run caizhilian.org.search-position --input-json '{"keyword":"经理"}'
|
|
59
|
+
weaver-work-cli --json caizhilian run caizhilian.org.search-role --input-json '{"keyword":"文档管理员"}'
|
|
60
|
+
weaver-work-cli --json caizhilian run caizhilian.org.search-customer --input-json '{"keyword":"泛微"}'
|
|
61
|
+
weaver-work-cli --json caizhilian run caizhilian.org.search-customer-type --input-json '{"keyword":"重点"}'
|
|
62
|
+
weaver-work-cli --json caizhilian run caizhilian.org.search-external --input-json '{"keyword":"顾问"}'
|
|
63
|
+
weaver-work-cli --json caizhilian run caizhilian.user.current
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## 输出处理
|
|
67
|
+
|
|
68
|
+
- 统一分页外壳:`{ page_no, page_size, has_next, <列表键>: [...] }`。
|
|
69
|
+
- `has_next` 的判定是**本页条数 >= page_size**(源行为;服务端 `total` 不可信,不要用它算总页数)。要翻页就 `page_no + 1` 再查一次,直到 `has_next=false`。
|
|
70
|
+
- 各列表元素字段(源 `response_templates` 归一后的结果):
|
|
71
|
+
|
|
72
|
+
| 列表键 | 元素字段 |
|
|
73
|
+
| --- | --- |
|
|
74
|
+
| `users` | `id`、`name`、`department` |
|
|
75
|
+
| `departments` | `id`、`name`、`sup_department`(上级部门名)、`parent_id`、`has_sub` |
|
|
76
|
+
| `subcompanies` | `id`、`name`、`parent_id`、`sup_department` |
|
|
77
|
+
| `externals` | `id`、`name` |
|
|
78
|
+
| `positions` | `id`、`name`、`code` |
|
|
79
|
+
| `roles` | `id`、`name` |
|
|
80
|
+
| `customers` | `id`、`name` |
|
|
81
|
+
| `customer_types` | `id`、`name` |
|
|
82
|
+
|
|
83
|
+
- 回复用户时用 Markdown 表格摘要「名称 + 所属部门/上级 + ID」,**同名必须全部列出让用户选**,不要默认取第一条:同名人员、同名部门在不同分部下非常常见。
|
|
84
|
+
- `caizhilian.user.current` 返回 `{ employeeId, employeeName }`,这就是当前登录人的 `user_id`,可直接用于 `document.search` 的 `creator_user_id`、`share.add` 的 `obj_id`、`tag.search` 的个人标签查询。
|
|
85
|
+
- 解析出的 ID 一律按**字符串**传递(`obj_id`、`obj_ids`、`creator_user_id`、`user_id` 的 schema 都是 `^\d+$`)。
|
|
86
|
+
|
|
87
|
+
## 注意
|
|
88
|
+
|
|
89
|
+
- 本 reference 全是只读检索,不产生服务端副作用,可以放心多查几次;但**不要把整页 50 条原始 JSON 贴给用户**,只摘要前若干条 + 总数提示。
|
|
90
|
+
- 浏览器检索结果受当前登录人的数据权限限制:查不到不等于不存在,可能是无权可见。此时应提示用户换一个更精确的关键词,或改由有权限的账号操作,不要反复重试。
|
|
91
|
+
- `search-customer` / `search-customer-type` 走 CRM 接口,未启用 CRM 的环境会返回业务错误,转述给用户即可,不要当成「客户不存在」。
|
|
92
|
+
- 不要把这些 ID 当成永久有效:组织架构调整后 ID 可能失效,写操作失败提示对象不存在时应重新检索。
|
|
93
|
+
- 解析 ID 只是准备步骤;真正的共享/参与人/权限写入仍必须走 `prepare -> apply` 确认链,见 `write-protocol.md`。
|
|
94
|
+
|
|
95
|
+
## 失败处理
|
|
96
|
+
|
|
97
|
+
| error.subtype | 触发场景 | 处理 |
|
|
98
|
+
| --- | --- | --- |
|
|
99
|
+
| `field_empty` / `field_invalid` | `keyword` 传了非字符串 | 改成字符串或整条省略 |
|
|
100
|
+
| `number_invalid` | `page_no` / `page_size` 不是正整数 | 用正整数重试一次 |
|
|
101
|
+
| `empty_response` / `response_shape` | 服务端返回结构与预期不符 | 停止,把原始 message 交给用户 |
|
|
102
|
+
| `session_unavailable` / `session_expired` | 未登录或登录态失效 | 按 `agent-entry.md` 引导重新登录,不要在业务侧猜 |
|
|
103
|
+
| `http_error` / `business_error` | 接口返回非成功码 | 转述服务端 message,不要重试写操作 |
|
|
104
|
+
| `network` (retryable) | 网络抖动 | 最多重试一次,仍失败则停止并告知用户 |
|