@amaster.ai/pi-lark 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 +5 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/skills/lark-approval/references/lark-approval-initiate.md +2 -5
- package/skills/lark-approval/references/lark-approval-instances-initiated.md +6 -0
- package/skills/lark-approval/references/lark-approval-tasks-query.md +9 -0
- package/skills/lark-approval/references/lark-approval-tasks-rollback.md +8 -2
- package/skills/lark-apps/SKILL.md +46 -16
- package/skills/lark-apps/creative-design/agents/assets/vision-probe.png +0 -0
- package/skills/lark-apps/creative-design/agents/fork-verifier-agent.md +71 -0
- package/skills/lark-apps/creative-design/agents/vision-probe-agent.md +41 -0
- package/skills/lark-apps/creative-design/assets/index.html +27 -0
- package/skills/lark-apps/creative-design/creative-design.md +239 -0
- package/skills/lark-apps/creative-design/references/aily.md +39 -0
- package/skills/lark-apps/creative-design/references/animated-video.md +34 -0
- package/skills/lark-apps/creative-design/references/charts.md +165 -0
- package/skills/lark-apps/creative-design/references/claude.md +36 -0
- package/skills/lark-apps/creative-design/references/codex.md +32 -0
- package/skills/lark-apps/creative-design/references/data-report.md +108 -0
- package/skills/lark-apps/creative-design/references/frontend-design.md +71 -0
- package/skills/lark-apps/creative-design/references/hi-fi-design.md +32 -0
- package/skills/lark-apps/creative-design/references/interactive-prototype.md +24 -0
- package/skills/lark-apps/creative-design/references/make-a-deck.md +133 -0
- package/skills/lark-apps/creative-design/references/visual-exposure.md +82 -0
- package/skills/lark-apps/creative-design/references/wireframe.md +14 -0
- package/skills/lark-apps/creative-design/starter-components/android-frame.jsx +188 -0
- package/skills/lark-apps/creative-design/starter-components/animations.jsx +773 -0
- package/skills/lark-apps/creative-design/starter-components/browser-window.jsx +122 -0
- package/skills/lark-apps/creative-design/starter-components/deck-stage.js +2483 -0
- package/skills/lark-apps/creative-design/starter-components/design-canvas.jsx +1432 -0
- package/skills/lark-apps/creative-design/starter-components/ios-frame.jsx +270 -0
- package/skills/lark-apps/creative-design/starter-components/macos-window.jsx +197 -0
- package/skills/lark-apps/creative-design/starter-components/tweaks-panel.jsx +752 -0
- package/skills/lark-apps/references/lark-apps-access-scope-set.md +1 -1
- package/skills/lark-apps/references/lark-apps-automation.md +242 -0
- package/skills/lark-apps/references/lark-apps-cache.md +61 -0
- package/skills/lark-apps/references/lark-apps-cloud-dev.md +0 -1
- package/skills/lark-apps/references/lark-apps-create.md +1 -2
- package/skills/lark-apps/references/lark-apps-db-execute.md +186 -2
- package/skills/lark-apps/references/lark-apps-db.md +4 -4
- package/skills/lark-apps/references/lark-apps-env-pull.md +1 -1
- package/skills/lark-apps/references/lark-apps-file.md +2 -2
- package/skills/lark-apps/references/lark-apps-get.md +43 -0
- package/skills/lark-apps/references/lark-apps-git-credential.md +1 -1
- package/skills/lark-apps/references/lark-apps-html-publish.md +5 -4
- package/skills/lark-apps/references/lark-apps-init.md +2 -3
- package/skills/lark-apps/references/lark-apps-list.md +1 -1
- package/skills/lark-apps/references/lark-apps-local-dev.md +54 -11
- package/skills/lark-apps/references/lark-apps-openapi-key.md +1 -1
- package/skills/lark-apps/references/lark-apps-release-create.md +5 -3
- package/skills/lark-apps/references/lark-apps-release-get.md +3 -3
- package/skills/lark-apps/references/lark-apps-role.md +133 -0
- package/skills/lark-base/SKILL.md +26 -15
- package/skills/lark-base/references/dashboard-block-data-config.md +28 -2
- package/skills/lark-base/references/lark-base-cell-value.md +12 -7
- package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +7 -7
- package/skills/lark-base/references/lark-base-dashboard.md +11 -2
- package/skills/lark-base/references/lark-base-data-query.md +20 -11
- package/skills/lark-base/references/lark-base-field-create.md +8 -2
- package/skills/lark-base/references/lark-base-field-json.md +56 -19
- package/skills/lark-base/references/lark-base-field-update.md +21 -3
- package/skills/lark-base/references/lark-base-filter-condition.md +179 -0
- package/skills/lark-base/references/lark-base-form-questions-create.md +40 -7
- package/skills/lark-base/references/lark-base-form-questions-update.md +73 -20
- package/skills/lark-base/references/lark-base-form-submit.md +16 -7
- package/skills/lark-base/references/lark-base-record-batch-create.md +12 -10
- package/skills/lark-base/references/lark-base-record-batch-update.md +11 -9
- package/skills/lark-base/references/lark-base-record-upsert.md +1 -1
- package/skills/lark-base/references/lark-base-role-guide.md +11 -0
- package/skills/lark-base/references/lark-base-view-set-filter.md +14 -138
- package/skills/lark-base/references/role-config.md +31 -5
- package/skills/lark-calendar/SKILL.md +101 -37
- package/skills/lark-calendar/references/lark-calendar-create.md +13 -43
- package/skills/lark-calendar/references/lark-calendar-recurring.md +1 -0
- package/skills/lark-calendar/references/lark-calendar-room-find.md +7 -10
- package/skills/lark-calendar/references/lark-calendar-rsvp.md +1 -5
- package/skills/lark-calendar/references/lark-calendar-schedule-clear-time.md +60 -0
- package/skills/lark-calendar/references/lark-calendar-schedule-fuzzy-time.md +88 -0
- package/skills/lark-calendar/references/lark-calendar-schedule-meeting.md +67 -210
- package/skills/lark-calendar/references/lark-calendar-suggestion.md +2 -6
- package/skills/lark-calendar/references/lark-calendar-update.md +12 -11
- package/skills/lark-contact/SKILL.md +19 -3
- package/skills/lark-contact/references/lark-contact-search-bot.md +60 -0
- package/skills/lark-doc/SKILL.md +1 -1
- package/skills/lark-doc/references/lark-doc-fetch.md +14 -4
- package/skills/lark-doc/references/lark-doc-mindnote.md +17 -2
- package/skills/lark-doc/references/lark-doc-whiteboard.md +13 -8
- package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +76 -0
- package/skills/lark-doc/references/lark-doc-xml.md +6 -4
- package/skills/lark-drive/SKILL.md +35 -43
- package/skills/lark-drive/references/lark-drive-add-comment.md +2 -4
- package/skills/lark-drive/references/lark-drive-add-reply.md +47 -0
- package/skills/lark-drive/references/lark-drive-apply-permission.md +2 -2
- package/skills/lark-drive/references/lark-drive-batch-query-comments.md +46 -0
- package/skills/lark-drive/references/lark-drive-comment-content.md +50 -0
- package/skills/lark-drive/references/lark-drive-comment-location.md +18 -12
- package/skills/lark-drive/references/lark-drive-delete-reply.md +48 -0
- package/skills/lark-drive/references/lark-drive-delete.md +35 -11
- package/skills/lark-drive/references/lark-drive-download.md +5 -1
- package/skills/lark-drive/references/lark-drive-export.md +39 -10
- package/skills/lark-drive/references/lark-drive-files-list.md +27 -2
- package/skills/lark-drive/references/lark-drive-inspect.md +2 -0
- package/skills/lark-drive/references/lark-drive-list-comments.md +82 -0
- package/skills/lark-drive/references/lark-drive-list-replies.md +54 -0
- package/skills/lark-drive/references/lark-drive-member-add.md +3 -3
- package/skills/lark-drive/references/lark-drive-member-list.md +65 -0
- package/skills/lark-drive/references/lark-drive-move.md +5 -3
- package/skills/lark-drive/references/lark-drive-permission-get-setting.md +48 -0
- package/skills/lark-drive/references/lark-drive-permission-guide.md +12 -0
- package/skills/lark-drive/references/lark-drive-preview.md +11 -1
- package/skills/lark-drive/references/lark-drive-pull.md +3 -3
- package/skills/lark-drive/references/lark-drive-push.md +33 -6
- package/skills/lark-drive/references/lark-drive-react-reply.md +51 -0
- package/skills/lark-drive/references/lark-drive-reactions.md +27 -25
- package/skills/lark-drive/references/lark-drive-resolve-comment.md +45 -0
- package/skills/lark-drive/references/lark-drive-restore-comment.md +46 -0
- package/skills/lark-drive/references/lark-drive-search.md +7 -1
- package/skills/lark-drive/references/lark-drive-secure-label.md +1 -1
- package/skills/lark-drive/references/lark-drive-status.md +12 -14
- package/skills/lark-drive/references/lark-drive-task-result.md +58 -5
- package/skills/lark-drive/references/lark-drive-update-reply.md +46 -0
- package/skills/lark-drive/references/lark-drive-upload.md +1 -0
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize.md +26 -20
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance-commands.md +38 -8
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance-outputs.md +10 -10
- package/skills/lark-drive/references/lark-drive-workflow-permission-governance.md +22 -20
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-execute.md +273 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-recall.md +202 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-resolve-verify.md +231 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-review-plan.md +248 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-setup.md +174 -0
- package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector.md +202 -0
- package/skills/lark-drive/references/lark-drive-workflow.md +5 -3
- package/skills/lark-event/SKILL.md +3 -1
- package/skills/lark-event/references/lark-event-application.md +38 -0
- package/skills/lark-event/references/lark-event-approval.md +170 -0
- package/skills/lark-im/SKILL.md +6 -5
- package/skills/lark-im/references/card/card-2.0-schema.md +1 -1
- package/skills/lark-im/references/card/lark-im-card-style.md +4 -4
- package/skills/lark-im/references/card/resource/icons.md +14 -0
- package/skills/lark-im/references/lark-im-flag-list.md +8 -7
- package/skills/lark-im/references/lark-im-messages-reply.md +1 -1
- package/skills/lark-im/references/lark-im-messages-send.md +1 -1
- package/skills/lark-mail/SKILL.md +12 -9
- package/skills/lark-mail/references/lark-mail-forward.md +1 -1
- package/skills/lark-mail/references/lark-mail-message-modify.md +48 -0
- package/skills/lark-mail/references/lark-mail-message-trash.md +41 -0
- package/skills/lark-mail/references/lark-mail-reply-all.md +1 -1
- package/skills/lark-mail/references/lark-mail-reply.md +1 -1
- package/skills/lark-mail/references/lark-mail-watch.md +1 -1
- package/skills/lark-markdown/SKILL.md +3 -2
- package/skills/lark-markdown/references/lark-markdown-create.md +22 -2
- package/skills/lark-minutes/SKILL.md +19 -4
- package/skills/lark-minutes/references/lark-minutes-download.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-search.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-speaker-replace.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-summary.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-todo.md +2 -4
- package/skills/lark-minutes/references/lark-minutes-update.md +0 -2
- package/skills/lark-minutes/references/lark-minutes-upload.md +10 -10
- package/skills/lark-okr/SKILL.md +71 -26
- package/skills/lark-okr/references/lark-okr-batch-create.md +19 -18
- package/skills/lark-okr/references/lark-okr-create.md +173 -0
- package/skills/lark-okr/references/lark-okr-cycle-list.md +17 -7
- package/skills/lark-okr/references/lark-okr-entities.md +1 -0
- package/skills/lark-okr/references/lark-okr-indicator-update.md +3 -1
- package/skills/lark-okr/references/lark-okr-indicators.md +61 -12
- package/skills/lark-okr/references/lark-okr-progress-list.md +21 -9
- package/skills/lark-shared/SKILL.md +26 -8
- package/skills/lark-sheets/SKILL.md +98 -29
- package/skills/lark-sheets/references/lark-sheets-batch-update.md +18 -9
- package/skills/lark-sheets/references/lark-sheets-changeset.md +105 -0
- package/skills/lark-sheets/references/lark-sheets-chart.md +4 -2
- package/skills/lark-sheets/references/lark-sheets-conditional-format.md +2 -0
- package/skills/lark-sheets/references/lark-sheets-filter-view.md +1 -1
- package/skills/lark-sheets/references/lark-sheets-float-image.md +6 -6
- package/skills/lark-sheets/references/lark-sheets-formula-translation.md +12 -3
- package/skills/lark-sheets/references/lark-sheets-formula-verify.md +77 -0
- package/skills/lark-sheets/references/lark-sheets-history.md +93 -0
- package/skills/lark-sheets/references/lark-sheets-pivot-table.md +7 -2
- package/skills/lark-sheets/references/lark-sheets-range-operations.md +44 -14
- package/skills/lark-sheets/references/lark-sheets-read-data.md +3 -3
- package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +4 -4
- package/skills/lark-sheets/references/lark-sheets-visual-standards.md +4 -4
- package/skills/lark-sheets/references/lark-sheets-workbook.md +29 -4
- package/skills/lark-sheets/references/lark-sheets-write-cells.md +21 -11
- package/skills/lark-slides/SKILL.md +121 -63
- package/skills/lark-slides/references/asset-planning.md +18 -5
- package/skills/lark-slides/references/iconpark.md +3 -3
- package/skills/lark-slides/references/lark-slides-create.md +30 -3
- package/skills/lark-slides/references/lark-slides-history.md +132 -0
- package/skills/lark-slides/references/lark-slides-media-upload.md +1 -3
- package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +85 -0
- package/skills/lark-slides/references/lark-slides-replace-pages.md +1 -1
- package/skills/lark-slides/references/lark-slides-replace-slide.md +1 -4
- package/skills/lark-slides/references/lark-slides-screenshot.md +11 -8
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-create.md +5 -6
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +5 -2
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +5 -5
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +14 -13
- package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +67 -31
- package/skills/lark-slides/references/planning-layer.md +41 -10
- package/skills/lark-slides/references/slides_chart_demo.xml +1416 -0
- package/skills/lark-slides/references/slides_xml_schema_definition.xml +499 -78
- package/skills/lark-slides/references/troubleshooting.md +5 -5
- package/skills/lark-slides/references/validation-checklist.md +65 -19
- package/skills/lark-slides/references/visual-planning.md +26 -22
- package/skills/lark-slides/references/xml-schema-quick-ref.md +285 -45
- package/skills/lark-slides/scripts/sxsd_validator.py +908 -0
- package/skills/lark-slides/scripts/xml_text_overlap_lint.py +2429 -91
- package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +3567 -70
- package/skills/lark-task/SKILL.md +8 -0
- package/skills/lark-task/references/lark-task-complete.md +6 -2
- package/skills/lark-task/references/lark-task-create.md +23 -1
- package/skills/lark-task/references/lark-task-update.md +6 -2
- package/skills/lark-vc/SKILL.md +6 -3
- package/skills/lark-vc/references/lark-vc-recording.md +0 -2
- package/skills/lark-vc/references/vc-domain-boundaries.md +9 -1
- package/skills/lark-vc-agent/SKILL.md +25 -15
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md +65 -37
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +1 -1
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-list-active.md +8 -8
- package/skills/lark-whiteboard/SKILL.md +13 -12
- package/skills/lark-whiteboard/elements/layout.md +1 -1
- package/skills/lark-whiteboard/elements/schema.md +2 -2
- package/skills/lark-whiteboard/references/{lark-whiteboard-query.md → lark-whiteboard-export.md} +15 -15
- package/skills/lark-whiteboard/references/lark-whiteboard-update.md +3 -3
- package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +12 -19
- package/skills/lark-whiteboard/routes/dsl.md +3 -3
- package/skills/lark-whiteboard/routes/mermaid.md +2 -2
- package/skills/lark-whiteboard/routes/svg-edit.md +4 -4
- package/skills/lark-whiteboard/routes/svg.md +11 -6
- package/skills/lark-whiteboard/scenes/bar-chart.md +1 -1
- package/skills/lark-whiteboard/scenes/fishbone.md +1 -1
- package/skills/lark-whiteboard/scenes/flywheel.md +1 -1
- package/skills/lark-whiteboard/scenes/line-chart.md +1 -1
- package/skills/lark-whiteboard/scenes/treemap.md +1 -1
- package/skills/lark-wiki/SKILL.md +8 -3
- package/skills/lark-wiki/references/lark-wiki-move-to-drive.md +122 -0
- package/skills/lark-wiki/references/lark-wiki-move.md +5 -3
- package/skills/lark-wiki/references/lark-wiki-node-get.md +1 -1
- package/skills/lark-wiki/references/lark-wiki-node-list.md +9 -2
- package/skills/lark-calendar/references/lark-calendar-agenda.md +0 -78
- package/skills/lark-calendar/references/lark-calendar-freebusy.md +0 -124
- package/skills/lark-calendar/references/lark-calendar-search-event.md +0 -29
- package/skills/lark-drive/references/lark-drive-comments-guide.md +0 -72
- package/skills/lark-sheets/references/lark-sheets-core-operations.md +0 -103
- package/skills/lark-slides/references/examples.md +0 -261
- package/skills/lark-slides/references/lark-slides-whiteboard.md +0 -330
- package/skills/lark-slides/references/slide-templates.md +0 -201
- package/skills/lark-slides/references/slides_demo.xml +0 -226
- package/skills/lark-slides/references/xml-format-guide.md +0 -369
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# drive +member-list(查询协作者/授权成员列表)
|
|
2
|
+
|
|
3
|
+
本 skill 对应 shortcut:`lark-cli drive +member-list`。它读取 Drive 文档、文件、文件夹或 wiki 节点的协作者/授权成员列表。
|
|
4
|
+
|
|
5
|
+
## 命令
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# URL 自动推断 type
|
|
9
|
+
lark-cli drive +member-list \
|
|
10
|
+
--token 'https://example.feishu.cn/drive/folder/<folder_token>' \
|
|
11
|
+
--as user --format json
|
|
12
|
+
|
|
13
|
+
# 查询附加字段
|
|
14
|
+
lark-cli drive +member-list \
|
|
15
|
+
--token '<token>' \
|
|
16
|
+
--type docx \
|
|
17
|
+
--fields 'name,type,external_label' \
|
|
18
|
+
--as user --format json
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 参数
|
|
23
|
+
|
|
24
|
+
| 参数 | 必填 | 说明 |
|
|
25
|
+
|------|------|------|
|
|
26
|
+
| `--token` | 是 | 裸 token 或完整 URL。URL 路径支持 `/folder/`、`/docx/`、`/doc/`、`/sheets/`、`/base/`、`/bitable/`、`/wiki/`、`/file/`、`/mindnotes/`、`/slides/`、`/minutes/`、`/page/`。 |
|
|
27
|
+
| `--type` | 裸 token 必填 | 目标类型:`doc` / `sheet` / `file` / `wiki` / `bitable` / `docx` / `mindnote` / `minutes` / `slides` / `folder` / `apps`。URL 可自动推断;如果同时传 URL 和冲突的 `--type`,CLI 会拒绝。 |
|
|
28
|
+
| `--fields` | 否 | 默认不传。可取 `name` / `type` / `avatar` / `external_label`,支持逗号分隔;也可传 `*` 请求当前支持的所有附加字段。该参数只声明期望返回的字段,不授予字段级权限。 |
|
|
29
|
+
| `--perm-type` | 否 | 仅 `--type wiki` 有效;取值 `container` / `single_page`。 |
|
|
30
|
+
| `--dry-run` | 否 | 只打印请求,不调用 API。 |
|
|
31
|
+
|
|
32
|
+
## 输出
|
|
33
|
+
|
|
34
|
+
JSON 输出原样透传 API 的 `data` :
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"ok": true,
|
|
39
|
+
"identity": "user",
|
|
40
|
+
"data": {
|
|
41
|
+
"items": [
|
|
42
|
+
{
|
|
43
|
+
"member_type": "openid",
|
|
44
|
+
"member_id": "ou_xxx",
|
|
45
|
+
"perm": "view",
|
|
46
|
+
"perm_type": "container",
|
|
47
|
+
"type": "user",
|
|
48
|
+
"name": "zhangsan",
|
|
49
|
+
"external_label": false
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
`--format pretty` 会轻量展示成员 ID、成员类型、权限、wiki `perm_type` 和已返回的附加字段。机器读取优先使用 `--format json`。
|
|
57
|
+
|
|
58
|
+
## 行为说明
|
|
59
|
+
|
|
60
|
+
- **身份支持**:`--as user` 和 `--as bot` 均可用;缺 scope 或目标权限时按统一 permission 错误路径处理。
|
|
61
|
+
- **接口 scope**:查询成员列表需要 `docs:permission.member:retrieve`。
|
|
62
|
+
- **fields 默认**:不传 `--fields` 时按官方 API 默认,不请求姓名、头像、外部标签等附加字段;需要时显式指定。
|
|
63
|
+
- **字段级权限**:`--fields` 只控制请求哪些附加字段,不保证服务端一定返回。请求用户的 `name` / `avatar` 时,应用还需开通 `contact:user.base:readonly`(“获取用户基本信息”;已具备官方兼容的历史通讯录权限也可满足要求)。
|
|
64
|
+
- **缺字段语义**:字段级权限或数据可见性不足时,接口仍可能成功,但会省略相应敏感字段。响应中缺少已请求字段表示“服务端未返回”,不能解释为字段值为空,也不能据此认定成员信息完整。
|
|
65
|
+
- **folder 支持**:CLI 支持 `--type folder` 并会按需求发送 `type=folder`;部分环境的后端如果尚未放开 folder 枚举,可能返回 `99992402 field validation failed`。
|
|
@@ -5,15 +5,16 @@
|
|
|
5
5
|
|
|
6
6
|
将文件或文件夹移动到用户云空间(云盘/云存储)的其他位置。
|
|
7
7
|
|
|
8
|
-
## 与
|
|
8
|
+
## 与 Wiki 移动 shortcut 的区别
|
|
9
9
|
|
|
10
10
|
- `drive +move` 只处理 **Drive 文件夹树内部** 的位置调整,目标位置用 `--folder-token` 表示
|
|
11
11
|
- `wiki +move` 处理的是 **Wiki 知识空间 / 页面层级**:要么移动已有 Wiki 节点,要么把 Drive 文档迁入 Wiki
|
|
12
|
-
-
|
|
12
|
+
- `wiki +move-to-drive` 把 **已有 Wiki 节点移出知识库**,放到 Drive 文件夹或“我的空间”根目录
|
|
13
|
+
- 如果用户说“移动到某个文件夹”“移动到我的空间根目录”,还要判断源对象:源对象已在 Drive 时使用 `drive +move`;源对象是 Wiki 节点时使用 `wiki +move-to-drive`
|
|
13
14
|
- 如果用户说“移动到某个知识库 / 页面下”“迁入 Wiki / 知识空间”,应使用 `wiki +move`
|
|
14
15
|
- 如果用户说“移动到我的文档库 / 我的知识库 / 个人知识库 / my_library”,不要使用 `drive +move`;先按 Wiki 目标处理
|
|
15
16
|
- `我的文档库` 不是 Drive root folder,也不是 `--folder-token` 省略后的默认目的地
|
|
16
|
-
- `drive +move` 不支持 wiki
|
|
17
|
+
- `drive +move` 不支持 Wiki 文档;Wiki 节点到 Drive 应使用 `wiki +move-to-drive`,目标是 Wiki 时使用 `wiki +move`
|
|
17
18
|
|
|
18
19
|
## 不要误用到 `我的文档库`
|
|
19
20
|
|
|
@@ -117,4 +118,5 @@ lark-cli drive +task_result \
|
|
|
117
118
|
## 参考
|
|
118
119
|
|
|
119
120
|
- [lark-drive](../SKILL.md) -- 云空间(云盘/云存储)全部命令
|
|
121
|
+
- [wiki +move-to-drive](../../lark-wiki/references/lark-wiki-move-to-drive.md) -- 将 Wiki 节点移出知识库并放入 Drive
|
|
120
122
|
- [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# drive +permission-get-setting(查询权限设置)
|
|
2
|
+
|
|
3
|
+
本 skill 对应 shortcut:`lark-cli drive +permission-get-setting`。它读取单个 Drive 资源自身的公开访问、分享、协作者管理、安全与评论权限设置,不递归读取文件夹中的子资源。
|
|
4
|
+
|
|
5
|
+
## 命令
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# 通过 URL 自动推断 type
|
|
9
|
+
lark-cli drive +permission-get-setting \
|
|
10
|
+
--token 'https://example.feishu.cn/drive/folder/<folder_token>' \
|
|
11
|
+
--as user --format json
|
|
12
|
+
|
|
13
|
+
# 通过 bare token 显式指定 type
|
|
14
|
+
lark-cli drive +permission-get-setting \
|
|
15
|
+
--token '<folder_token>' \
|
|
16
|
+
--type folder \
|
|
17
|
+
--as user --format json
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## 参数
|
|
21
|
+
|
|
22
|
+
| 参数 | 必填 | 说明 |
|
|
23
|
+
|------|------|------|
|
|
24
|
+
| `--token` | 是 | bare token 或完整 URL。URL 路径支持 `/folder/`、`/docx/`、`/doc/`、`/sheets/`、`/base/`、`/bitable/`、`/wiki/`、`/file/`、`/mindnotes/`、`/slides/`、`/minutes/`、`/page/`。 |
|
|
25
|
+
| `--type` | bare token 必填 | 目标类型:`doc` / `sheet` / `file` / `wiki` / `bitable` / `docx` / `mindnote` / `minutes` / `slides` / `folder` / `apps`。URL 可自动推断;如果同时传 URL 和冲突的 `--type`,CLI 会拒绝。 |
|
|
26
|
+
| `--dry-run` | 否 | 只打印请求,不调用 API。 |
|
|
27
|
+
|
|
28
|
+
## 输出
|
|
29
|
+
|
|
30
|
+
JSON 输出中的 `data.permission_public` 是目标当前的权限设置;服务端未返回该字段时,命令会报响应结构错误,而不会把其他字段伪装成权限设置。
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"ok": true,
|
|
35
|
+
"identity": "user",
|
|
36
|
+
"data": {
|
|
37
|
+
"permission_public": {}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
`--format pretty` 会展示完整的 `permission_public` 对象,包括服务端将来新增的字段。
|
|
43
|
+
|
|
44
|
+
## 行为说明
|
|
45
|
+
|
|
46
|
+
- **身份支持**:`--as user` 和 `--as bot` 均可用。
|
|
47
|
+
- **所需 scope**:`docs:permission.setting:read`。
|
|
48
|
+
- **单目标读取**:命令只读取 `--token` 指向资源自身的权限设置;`--type folder` 不会递归读取子资源。
|
|
@@ -10,6 +10,18 @@
|
|
|
10
10
|
|
|
11
11
|
如果用户只是想向文档 owner 申请访问权限,优先使用 [`lark-drive-apply-permission.md`](lark-drive-apply-permission.md)。
|
|
12
12
|
|
|
13
|
+
## 公开权限修改前门槛
|
|
14
|
+
|
|
15
|
+
公开权限修改是高风险写操作。执行 `drive permission.public patch --yes` 前同时确认:
|
|
16
|
+
|
|
17
|
+
| 条件 | 可执行信号 |
|
|
18
|
+
|------|------------|
|
|
19
|
+
| 具体目标 | 单个 URL/token,或用户确认过的资源列表 |
|
|
20
|
+
| 公开范围 | 用户明确选择组织内/互联网、可读/可编辑等具体 `link_share_entity` 档位 |
|
|
21
|
+
| 执行确认 | 用户在本轮确认按该目标和范围执行 |
|
|
22
|
+
|
|
23
|
+
“开放一下”“共享给大家”“让大家能看”只表达目标状态,不包含具体公开范围。先列出可选范围并停止等待用户选择;公开档位必须来自用户选择,CLI 的 `--yes` 只表示已获得用户对该档位的执行确认。
|
|
24
|
+
|
|
13
25
|
## 公开权限错误码
|
|
14
26
|
|
|
15
27
|
调用 `lark-cli drive permission.public patch` 更新文档公开权限失败时,如果返回以下错误码,按表格给用户明确下一步。不要把这些错误简单归类为缺少 scope;它们通常表示租户、对外分享或文档密级策略拦截。
|
|
@@ -2,15 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、权限处理和安全规则。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
查看或下载 Drive 文件内容,或列出并获取文件可用的预览产物。这个 shortcut 不猜测默认类型:
|
|
6
6
|
|
|
7
|
+
- 如果只需要查看或下载文件内容,或不关心 PDF/text/image 等转换预览,优先使用 `--type source_file --output <path>`
|
|
7
8
|
- 只想看候选项时,用 `--list-only`
|
|
9
|
+
- 如果需要服务端生成的预览效果,例如 doc/docx 的 PDF 版式预览,先用 `--list-only` 查看候选项,再按候选项选择 `--type pdf` / `text` / `image` 等
|
|
8
10
|
- 想下载时,必须显式传 `--type` 和 `--output`
|
|
11
|
+
- 如果 `--list-only` 没有可用预览候选项,或错误提示明确建议使用 `--type source_file`,可以改用 `--type source_file --output <path>` 查看文件内容;资源不存在、token 无效等终态错误需要先修正输入
|
|
9
12
|
- 如果某个候选项还在生成中,会返回结构化错误并提示先重新 `--list-only`
|
|
10
13
|
|
|
11
14
|
### 命令
|
|
12
15
|
|
|
13
16
|
```bash
|
|
17
|
+
# 查看文件内容
|
|
18
|
+
lark-cli drive +preview \
|
|
19
|
+
--file-token "<FILE_TOKEN>" \
|
|
20
|
+
--type source_file \
|
|
21
|
+
--output ./artifacts/source
|
|
22
|
+
|
|
14
23
|
# 列出可用预览候选项
|
|
15
24
|
lark-cli drive +preview \
|
|
16
25
|
--file-token "<FILE_TOKEN>" \
|
|
@@ -78,6 +87,7 @@ lark-cli drive +preview \
|
|
|
78
87
|
|
|
79
88
|
- 不传 `--list-only` 时,必须显式传 `--type` 和 `--output`
|
|
80
89
|
- 不会隐式选择“第一个候选项”作为默认下载目标
|
|
90
|
+
- `--type source_file` 用于查看文件内容,不依赖 `--list-only` 返回的候选项;它适合读取或保存源内容,不等同于 PDF/text/image 等转换预览
|
|
81
91
|
- 候选项状态来自后端 `preview_status` 枚举,例如 `READY` / `PROCESSING` / `FAILED` / `NO_SUPPORT`
|
|
82
92
|
- 本地文件名在未显式带扩展名时,会结合响应头自动补扩展名
|
|
83
93
|
|
|
@@ -17,11 +17,11 @@
|
|
|
17
17
|
| `summary.deleted_local` | 启用 `--delete-local --yes` 时删除的本地文件数 |
|
|
18
18
|
| `items[]` | 每个文件的明细(`rel_path` / `file_token` / `source_id` / `action` / 失败时的 `error`) |
|
|
19
19
|
|
|
20
|
-
`summary.failed > 0` 时命令以 **非零状态码**(`exit=1
|
|
20
|
+
`summary.failed > 0` 时命令以 **非零状态码**(`exit=1`)退出:同一份 `summary + items` 会以 `ok:false` 部分失败信封写到 **stdout**(字段在 `data.summary` / `data.items`),stderr 不再输出单独的错误信封;脚本/agent 直接通过 exit code 判断成败即可,不需要再去解 `summary.failed`。
|
|
21
21
|
|
|
22
22
|
## 远端同名文件冲突
|
|
23
23
|
|
|
24
|
-
如果 Drive 中多个条目映射到同一个 `rel_path
|
|
24
|
+
如果 Drive 中多个条目映射到同一个 `rel_path`,默认直接失败(stderr 类型化错误信封:`error.type=validation`、`error.subtype=failed_precondition`,`error.params[]` 逐条列出冲突的 `rel_path` 及碰撞条目),且不会下载、覆盖或删除任何本地文件。只有“多个 `type=file` 同名”的场景支持显式策略;`file-folder` 这类异构冲突始终直接失败。
|
|
25
25
|
|
|
26
26
|
| 策略 | 行为 |
|
|
27
27
|
|------|------|
|
|
@@ -80,7 +80,7 @@ lark-cli drive +pull --local-dir ./repo --folder-token fldcnxxxxxxxxx \
|
|
|
80
80
|
|
|
81
81
|
- `--delete-local`(无 `--yes`)→ Validate 直接报错:`--delete-local requires --yes`,没有任何下载、列表请求或删除发生。
|
|
82
82
|
- `--delete-local --yes`,**且下载阶段全部成功** → 扫一遍 `--local-dir` 下所有常规文件,把不在云端清单里的逐个 `os.Remove`。**只删常规文件,不删目录**:远端文件夹被删除后,对应本地目录会保留空壳。
|
|
83
|
-
- `--delete-local --yes`,**但下载阶段有任何条目失败** → **跳过整个删除阶段**,命令以 `
|
|
83
|
+
- `--delete-local --yes`,**但下载阶段有任何条目失败** → **跳过整个删除阶段**,命令以 `ok:false` 部分失败结果非零退出。设计意图:避免出现"前面下载失败、后面继续删本地文件"的半同步状态;操作者修好下载错误后再重跑即可。
|
|
84
84
|
- 远端同名文件冲突且使用默认 `fail` → 在下载阶段前失败,删除阶段不会运行。
|
|
85
85
|
- 不传 `--delete-local` → `summary.deleted_local` 永远是 0;命令对本地"多余"文件视而不见。
|
|
86
86
|
|
|
@@ -15,15 +15,16 @@
|
|
|
15
15
|
| `summary.skipped` | 因 `--if-exists=skip` 或 `--if-exists=smart` 命中“无需传输”而跳过的文件数 |
|
|
16
16
|
| `summary.failed` | 上传 / 覆盖 / 建目录 / 删除失败的条目数;**只要不为 0,命令就以非零状态退出**(结构化 `items[]` 仍在 stdout 上) |
|
|
17
17
|
| `summary.deleted_remote` | 启用 `--delete-remote --yes` 时删除的云端文件数 |
|
|
18
|
-
| `
|
|
18
|
+
| `summary.aborted` | 命中终止性错误并停止后续批处理时为 `true` |
|
|
19
|
+
| `items[]` | 每个条目的明细(`rel_path` / `file_token` / `action` / 覆盖时的 `version` / `size_bytes` / 失败时的 `error` / `hint` / `phase` / `error_class` / `code` / `subtype` / `retryable`) |
|
|
19
20
|
|
|
20
|
-
`items[].action` 取值:`uploaded` / `overwritten` / `skipped` / `folder_created` / `deleted_remote` / `failed` / `delete_failed`。
|
|
21
|
+
`items[].action` 取值:`uploaded` / `overwritten` / `skipped` / `folder_created` / `deleted_remote` / `already_deleted` / `failed` / `delete_failed`。
|
|
21
22
|
|
|
22
23
|
> 本地目录(包括空目录)会被镜像到 Drive;新建的子目录会以 `action: "folder_created"` 出现在 `items[]` 里,但**不计入** `summary.uploaded`(该字段只数文件)。已存在的远端目录复用其 token,不会重复 `create_folder`,也不会出现在 `items[]` 里。
|
|
23
24
|
|
|
24
25
|
## 远端同名文件冲突
|
|
25
26
|
|
|
26
|
-
如果 Drive 中多个条目映射到同一个 `rel_path
|
|
27
|
+
如果 Drive 中多个条目映射到同一个 `rel_path`,默认直接失败(stderr 类型化错误信封:`error.type=validation`、`error.subtype=failed_precondition`,`error.params[]` 逐条列出冲突的 `rel_path` 及碰撞条目),且不会上传、覆盖或进入 `--delete-remote` 删除阶段。只有“多个 `type=file` 同名”的场景支持显式策略;`file-folder` 这类异构冲突始终直接失败。
|
|
27
28
|
|
|
28
29
|
| 策略 | 行为 |
|
|
29
30
|
|------|------|
|
|
@@ -95,6 +96,7 @@ lark-cli drive +push --local-dir ./repo --folder-token fldcnxxxxxxxxx \
|
|
|
95
96
|
- `--delete-remote`(无 `--yes`)→ Validate 直接报错:`--delete-remote requires --yes`,不会发起任何列表 / 上传 / 删除请求。
|
|
96
97
|
- `--delete-remote --yes` → Validate 阶段还会**动态做一次** `space:document:delete` 的 scope 预检:缺这条 scope 时整次运行立刻失败、不发任何上传请求,避免出现"上传都成功了,但删除阶段才报 missing_scope"的半同步状态。
|
|
97
98
|
- `--delete-remote --yes`(且 scope 已授权)→ 正常执行:先把本地文件 push 上去,再扫一遍远端 `type=file` 列表,把不在本地清单里的逐个删除。**任何上传 / 覆盖 / 建目录失败时,整段 `--delete-remote` 阶段会被跳过**(stderr 上有提示),命令以非零状态退出,远端不会被破坏。
|
|
99
|
+
- 删除阶段如果服务端返回 `1061007 file has been delete`,说明目标远端文件在本次 DELETE 前已经不存在;这已经满足 `--delete-remote` 的目标状态,输出会记为 `action: "already_deleted"`,不计入 `summary.failed`,也不计入 `summary.deleted_remote`。
|
|
98
100
|
- 远端同名冲突且使用默认 `fail`,或冲突里混有 folder / 其他非 `type=file` 对象 → 在上传阶段前失败,删除阶段不会运行。
|
|
99
101
|
- 不传 `--delete-remote` → `summary.deleted_remote` 永远是 0;命令对远端"多余"文件视而不见。
|
|
100
102
|
- 在线文档(docx / sheet / bitable / ...)和快捷方式即使本地完全没有同名文件,也**不会**进入删除候选,因为它们从来不进 `summary.uploaded` 的对齐域。
|
|
@@ -110,22 +112,47 @@ lark-cli drive +push --local-dir ./repo --folder-token fldcnxxxxxxxxx \
|
|
|
110
112
|
"uploaded": 0,
|
|
111
113
|
"skipped": 0,
|
|
112
114
|
"failed": 0,
|
|
113
|
-
"deleted_remote": 0
|
|
115
|
+
"deleted_remote": 0,
|
|
116
|
+
"aborted": false
|
|
114
117
|
},
|
|
115
118
|
"items": [
|
|
116
119
|
{"rel_path": "...", "file_token": "...", "action": "folder_created"},
|
|
117
120
|
{"rel_path": "...", "file_token": "...", "action": "uploaded", "size_bytes": 0},
|
|
118
121
|
{"rel_path": "...", "file_token": "...", "action": "overwritten", "version": "...", "size_bytes": 0},
|
|
119
122
|
{"rel_path": "...", "file_token": "...", "action": "skipped", "size_bytes": 0},
|
|
120
|
-
{"rel_path": "...", "action": "failed", "size_bytes": 0, "error": "..."},
|
|
123
|
+
{"rel_path": "...", "action": "failed", "size_bytes": 0, "error": "...", "hint": "...", "phase": "upload", "error_class": "...", "code": 0, "subtype": "...", "retryable": false},
|
|
121
124
|
{"rel_path": "...", "file_token": "...", "action": "deleted_remote"},
|
|
122
|
-
{"rel_path": "...", "file_token": "...", "action": "
|
|
125
|
+
{"rel_path": "...", "file_token": "...", "action": "already_deleted"},
|
|
126
|
+
{"rel_path": "...", "file_token": "...", "action": "delete_failed", "error": "...", "hint": "...", "phase": "delete", "error_class": "...", "code": 0, "subtype": "...", "retryable": false}
|
|
123
127
|
]
|
|
124
128
|
}
|
|
125
129
|
```
|
|
126
130
|
|
|
127
131
|
`rel_path` 始终用 `/` 作为分隔符(跨平台一致)。
|
|
128
132
|
|
|
133
|
+
## 失败处理与 agent 行为
|
|
134
|
+
|
|
135
|
+
`+push` 的失败项带结构化字段,agent 必须优先读 `items[].error_class` / `phase` / `code`,不要只看自然语言 `error` 文本。`summary.aborted=true` 表示命令已经遇到终止性错误并停止后续批处理;这时**不要原样重试**,先修复根因。
|
|
136
|
+
|
|
137
|
+
常见终止性错误:
|
|
138
|
+
|
|
139
|
+
| `error_class` | 常见 `code` | 含义 | Agent 应对 |
|
|
140
|
+
|---|---:|---|---|
|
|
141
|
+
| `app_scope_missing` | `99991672` | 应用身份缺少 Drive / 文件夹相关 scope | 停止重试,引导开通错误里列出的应用身份权限,例如 `space:folder:create` 或 `drive:drive` |
|
|
142
|
+
| `user_scope_missing` | `99991679` | 用户身份缺少授权 | 停止重试,走 `lark-cli auth login --scope ...` 补错误里列出的 scope |
|
|
143
|
+
| `permission_denied` | `1061004` / HTTP 403 | 当前身份无权操作目标资源 | 停止重试,检查目标文件夹权限、身份类型(user / bot)和资源可见性 |
|
|
144
|
+
| `invalid_api_parameters` | `1061002` | API 参数被服务端拒绝 | 停止重试,检查 `--folder-token`、覆盖模式、`file_token`、文件名和上传参数;不要对同一参数组合批量重试 |
|
|
145
|
+
| `parent_node_missing` | `1061044` | 上传 / 建目录使用的父文件夹不存在或当前身份不可见 | 停止重试,检查 `--folder-token` 是否仍存在、是否有权限、父目录是否在 push 过程中被删除;不要继续上传同一目录树 |
|
|
146
|
+
| `parent_sibling_limit` | `1062507` | 目标父文件夹单层子节点数量超过上限 | 停止重试,清理目标目录、换一个 `--folder-token`,或把上传内容拆到多个子目录 |
|
|
147
|
+
| `rate_limited` | `99991400` | 触发频控 | 停止当前批次,退避后再重试 |
|
|
148
|
+
| `server_error` | `1061001` / `2200` | Drive 服务端异常 | 停止当前批次,稍后重试;保留 `log_id` 便于排查 |
|
|
149
|
+
|
|
150
|
+
非终止但需要解释的状态:
|
|
151
|
+
|
|
152
|
+
- `file_size_limit` / `1061043`:文件超过 Drive 上传限制。不要继续尝试同一文件;改拆分或换存储方式。
|
|
153
|
+
- `upload_size_mismatch` / `1062009`:本地文件在上传过程中发生变化,或声明大小与实际读取大小不一致。重新扫描本地文件后再 push。
|
|
154
|
+
- `remote_not_found` / `1061007`:一般表示远端文件已不存在。删除阶段的 `1061007` 会被视为 `already_deleted` 成功项;其他阶段需重新列表确认远端状态。
|
|
155
|
+
|
|
129
156
|
## 性能注意
|
|
130
157
|
|
|
131
158
|
- 默认 `skip` 下,已存在的远端文件一律不碰;`overwrite` 下,重复跑会重传所有命中的同名文件;`smart` 下会按 `modified_time` 跳过已对齐的远端文件,但对“远端更旧”的文件仍会进入覆盖路径,因此它减少的是**不必要的重传**,不是把覆盖风险完全拿掉。
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# drive +react-reply
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和权限处理。reaction 查询规则、语义联想与完整 `reaction_type` 枚举见跨切面专题 [`lark-drive-reactions.md`](lark-drive-reactions.md)。
|
|
4
|
+
|
|
5
|
+
给一条回复添加或删除表情回应(reaction)。操作对象始终是 `reply_id`。
|
|
6
|
+
|
|
7
|
+
## 命令
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# 加 reaction
|
|
11
|
+
lark-cli drive +react-reply --url "https://example.larksuite.com/docx/<DOCX_TOKEN>" --reply-id '<id>' --emoji THUMBSUP --action add
|
|
12
|
+
|
|
13
|
+
# 删除自己加的 reaction:仍需传要删除的那个 --emoji
|
|
14
|
+
lark-cli drive +react-reply --url "https://example.larksuite.com/docx/<DOCX_TOKEN>" --reply-id '<id>' --emoji THUMBSUP --action delete
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## 参数
|
|
18
|
+
|
|
19
|
+
| 参数 | 必填 | 说明 |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| `--url` | 与 `--token` 二选一 | 推荐入口。支持 doc/docx/sheet/file/slides/base/bitable/apps/wiki URL;apps 妙搭 URL 使用 `/page/<token>`;wiki URL 会自动解析到真实文档。 |
|
|
22
|
+
| `--token` | 与 `--url` 二选一 | 裸 token 或 URL。裸 token 必须搭配 `--type`;wiki token 使用 `--type wiki`。 |
|
|
23
|
+
| `--type` | 裸 token 时必填 | 传 token 对应类型:`doc`、`docx`、`sheet`、`file`、`slides`、`bitable`、`base`、`apps`、`wiki`。wiki token 使用 `wiki`;传 `base` 时,CLI 会按 `bitable` 类型处理。 |
|
|
24
|
+
| `--reply-id` | 是 | 要操作的回复 ID;来自 `drive +list-replies` 的 `items[].reply_id`。给“这条评论”加/删表情时取该评论根回复(第一页 `items[0]`)的 `reply_id` |
|
|
25
|
+
| `--emoji` | 是 | `reaction_type` 值,大小写敏感;本地按平台枚举校验。完整列表与语义映射见 [`lark-drive-reactions.md`](lark-drive-reactions.md) |
|
|
26
|
+
| `--action` | 是 | `add` 添加;`delete` 删除当前身份自己加的 reaction |
|
|
27
|
+
|
|
28
|
+
## 行为说明
|
|
29
|
+
|
|
30
|
+
- `--emoji` 大小写敏感(如 `THUMBSUP` 与 `ThumbsDown`),并做本地枚举校验兜底。服务端不校验 `reaction_type`:任意字符串都会被接受并持久化成一条损坏的 reaction,所以本地校验是唯一防线;直接调原生命令时必须自行保证取值合法。
|
|
31
|
+
- add / delete 幂等:重复添加已有 reaction、删除不存在的 reaction 都会成功返回且无副作用;delete 只取消当前身份自己加的 reaction。
|
|
32
|
+
- 对根回复操作等价于给评论本身加 / 删表情。
|
|
33
|
+
- 读回 reaction:在 `drive +list-replies` / `drive +batch-query-comments` 上带 `--need-reaction`;`count=0` 的条目是已删除 reaction 的残留,判断存在与否按 `count>0` 过滤。
|
|
34
|
+
|
|
35
|
+
## 输出
|
|
36
|
+
|
|
37
|
+
```json
|
|
38
|
+
{
|
|
39
|
+
"file_token": "docx_token",
|
|
40
|
+
"file_type": "docx",
|
|
41
|
+
"reply_id": "<reply_id>",
|
|
42
|
+
"reaction_type": "THUMBSUP",
|
|
43
|
+
"action": "add",
|
|
44
|
+
"updated": true
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## 参考
|
|
49
|
+
|
|
50
|
+
- [lark-drive-reactions](lark-drive-reactions.md) -- reaction 查询规则、语义与完整枚举
|
|
51
|
+
- [lark-drive-list-replies](lark-drive-list-replies.md) -- 获取 reply_id
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# drive reactions
|
|
2
2
|
|
|
3
|
-
> **前置条件:** 先阅读 [`../SKILL.md`](../SKILL.md) 了解 Drive 评论入口,再阅读 [`lark-drive-comments
|
|
3
|
+
> **前置条件:** 先阅读 [`../SKILL.md`](../SKILL.md) 了解 Drive 评论入口,再阅读 [`lark-drive-list-comments.md`](lark-drive-list-comments.md) 了解评论卡片模型、评论数/回复数统计口径、`file_token` / `file_type` 规则;同时阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
4
4
|
|
|
5
|
-
处理文档评论 / 回复上的 reaction(点赞、表情、各表情数量、谁点了什么、添加/删除表情)。这个场景不常见,但规则比较集中:查询时只有在用户明确需要 reaction
|
|
5
|
+
处理文档评论 / 回复上的 reaction(点赞、表情、各表情数量、谁点了什么、添加/删除表情)。这个场景不常见,但规则比较集中:查询时只有在用户明确需要 reaction 信息时才在 `drive +list-comments` / `+batch-query-comments` / `+list-replies` 上带 `--need-reaction`;写入优先使用 `drive +react-reply`(命令参数细节见 [`lark-drive-react-reply.md`](lark-drive-react-reply.md)),操作对象始终是 `reply_id`。本文是跨切面专题,集中放 reaction 的查询规则、语义联想和完整枚举。
|
|
6
6
|
|
|
7
7
|
> [!IMPORTANT]
|
|
8
8
|
> **`reaction_type` 只能使用本文下方“完整 `reaction_type` 列表”中定义的枚举值。**
|
|
@@ -16,49 +16,50 @@
|
|
|
16
16
|
|
|
17
17
|
## 查询规则
|
|
18
18
|
|
|
19
|
-
- `drive
|
|
20
|
-
- `
|
|
21
|
-
- 遍历评论卡片并顺带拿 reaction:使用 `drive
|
|
22
|
-
- 已知评论 ID,批量查看 reaction:使用 `drive
|
|
23
|
-
- 某张评论卡片下继续翻页拉 reply reaction:使用 `drive
|
|
24
|
-
-
|
|
19
|
+
- `drive +list-comments`、`drive +batch-query-comments`、`drive +list-replies` 都支持 `--need-reaction`。
|
|
20
|
+
- `--need-reaction` 只在用户明确需要 reaction 信息时再带;如果用户只关心评论正文、回复正文、评论数 / 回复数,默认不要加。
|
|
21
|
+
- 遍历评论卡片并顺带拿 reaction:使用 `drive +list-comments --need-reaction`。
|
|
22
|
+
- 已知评论 ID,批量查看 reaction:使用 `drive +batch-query-comments --need-reaction`。
|
|
23
|
+
- 某张评论卡片下继续翻页拉 reply reaction:使用 `drive +list-replies --need-reaction`,每一页都要持续带。
|
|
24
|
+
- 返回形状:`items[].reactions[]` 为 `{reaction_key, count, ahead_users[]}`;**`count=0` 的条目是已删除 reaction 的残留,统计与判断是否存在都要按 `count>0` 过滤**。
|
|
25
25
|
|
|
26
26
|
## 查询示例
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
29
|
# 遍历评论卡片,并把 reaction 一起拿回来
|
|
30
|
-
lark-cli drive
|
|
31
|
-
--params '{"file_token":"<DOC_TOKEN>","file_type":"docx","need_reaction":true}'
|
|
30
|
+
lark-cli drive +list-comments --url '<DOC_URL>' --need-reaction
|
|
32
31
|
|
|
33
32
|
# 已知 comment_id,批量查询评论卡片 reaction
|
|
34
|
-
lark-cli drive
|
|
35
|
-
--params '{"file_token":"<DOC_TOKEN>","file_type":"docx"}' \
|
|
36
|
-
--data '{"comment_ids":["<COMMENT_ID>"],"need_reaction":true}'
|
|
33
|
+
lark-cli drive +batch-query-comments --url '<DOC_URL>' --comment-ids '<COMMENT_ID>' --need-reaction
|
|
37
34
|
|
|
38
35
|
# 继续翻某张评论卡片下的 replies,并把 reaction 一起拿回来
|
|
39
|
-
lark-cli drive
|
|
40
|
-
--params '{"file_token":"<DOC_TOKEN>","comment_id":"<COMMENT_ID>","file_type":"docx","need_reaction":true}'
|
|
36
|
+
lark-cli drive +list-replies --url '<DOC_URL>' --comment-id '<COMMENT_ID>' --need-reaction
|
|
41
37
|
```
|
|
42
38
|
|
|
43
39
|
## 写入规则
|
|
44
40
|
|
|
45
|
-
- 添加 / 删除 reaction
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
41
|
+
- 添加 / 删除 reaction 优先使用 `drive +react-reply`;命令参数、目标定位和 dry-run 见 [`lark-drive-react-reply.md`](lark-drive-react-reply.md)。
|
|
42
|
+
- 操作对象是 `reply_id`(来自 `drive +list-replies` 的 `items[].reply_id`),不是 `comment_id`。
|
|
43
|
+
- 如果用户说要给"这条评论"加 / 删 reaction,取该评论卡片根回复(第一页 `items[0]`)的 `reply_id` 再操作。
|
|
44
|
+
- add / delete 幂等:重复添加已有 reaction、删除不存在的 reaction 都会成功返回且无副作用;delete 只取消当前身份自己加的 reaction。
|
|
45
|
+
- **服务端不校验 `reaction_type`:任意字符串都会被接受并持久化成一条损坏的 reaction**;`+react-reply --emoji` 会按平台枚举做本地校验兜底,直接调原生命令时必须自行保证取值合法。
|
|
46
|
+
- 原生 `drive file.comment.reply.reactions update_reaction` 只在需要 shortcut 未暴露的字段时兜底使用,`--params` 带 `file_token`/`file_type`,`--data` 传 `action=add|delete`、`reply_id`、`reaction_type`。
|
|
49
47
|
|
|
50
48
|
## 写入示例
|
|
51
49
|
|
|
52
50
|
```bash
|
|
53
51
|
# 给某条 reply 添加一个点赞 reaction
|
|
54
|
-
lark-cli drive
|
|
55
|
-
--
|
|
56
|
-
|
|
52
|
+
lark-cli drive +react-reply --url '<DOC_URL>' \
|
|
53
|
+
--reply-id '<REPLY_ID>' --emoji THUMBSUP --action add
|
|
54
|
+
|
|
55
|
+
# 删除某条 reply 上已有的 DONE reaction(wiki URL 自动解包)
|
|
56
|
+
lark-cli drive +react-reply --url '<WIKI_URL>' \
|
|
57
|
+
--reply-id '<REPLY_ID>' --emoji DONE --action delete
|
|
57
58
|
|
|
58
|
-
#
|
|
59
|
+
# 原生命令兜底(注意:原生路径没有本地枚举校验)
|
|
59
60
|
lark-cli drive file.comment.reply.reactions update_reaction \
|
|
60
61
|
--params '{"file_token":"<DOC_TOKEN>","file_type":"docx"}' \
|
|
61
|
-
--data '{"action":"
|
|
62
|
+
--data '{"action":"add","reply_id":"<REPLY_ID>","reaction_type":"THUMBSUP"}'
|
|
62
63
|
```
|
|
63
64
|
|
|
64
65
|
> [!CAUTION]
|
|
@@ -66,7 +67,7 @@ lark-cli drive file.comment.reply.reactions update_reaction \
|
|
|
66
67
|
|
|
67
68
|
## `reaction_type` 使用规则
|
|
68
69
|
|
|
69
|
-
- `reaction_type`
|
|
70
|
+
- `reaction_type` 必须传平台定义的枚举字符串,大小写敏感;`drive +react-reply` 的 `--emoji` 会本地校验(原生命令不校验、服务端也不校验)。
|
|
70
71
|
- 不要擅自把 mixed-case 值改成全大写,例如 `Yes`、`No`、`Get`、`EatingFood`、`CheckMark`、`CrossMark` 都要按原值传。
|
|
71
72
|
- **不要编造列表外的 `reaction_type`,也不要把自然语言描述臆造成平台未定义的新枚举**。
|
|
72
73
|
- 如果用户给的是自然语言语义(如“点赞”“在处理中”“确认一下”),可以在下方枚举列表内选择语义最接近的现有值;如果是近似映射,应在执行时明确告知用户。
|
|
@@ -110,4 +111,5 @@ Music, Typing, Pepper, CheckMark, CrossMark
|
|
|
110
111
|
## 参考
|
|
111
112
|
|
|
112
113
|
- [lark-drive](../SKILL.md) -- 云空间(云盘/云存储)全部命令
|
|
114
|
+
- [lark-drive-react-reply](lark-drive-react-reply.md) -- `+react-reply` 命令参数
|
|
113
115
|
- [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# drive +resolve-comment
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和权限处理。
|
|
4
|
+
|
|
5
|
+
把一条评论标记为已解决。反向操作——重新打开已解决评论——是独立命令 [`lark-drive-restore-comment.md`](lark-drive-restore-comment.md)。
|
|
6
|
+
|
|
7
|
+
用户说“把这条评论标记为已处理 / 已完成 / 关闭”对应本命令。
|
|
8
|
+
|
|
9
|
+
## 命令
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# 推荐:完整 URL + 评论 ID
|
|
13
|
+
lark-cli drive +resolve-comment --url "https://example.larksuite.com/docx/<DOCX_TOKEN>" --comment-id '<id>'
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## 参数
|
|
17
|
+
|
|
18
|
+
| 参数 | 必填 | 说明 |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| `--url` | 与 `--token` 二选一 | 推荐入口。支持 doc/docx/sheet/file/slides/base/bitable/apps/wiki URL;apps 妙搭 URL 使用 `/page/<token>`;wiki URL 会自动解析到真实文档。 |
|
|
21
|
+
| `--token` | 与 `--url` 二选一 | 裸 token 或 URL。裸 token 必须搭配 `--type`;wiki token 使用 `--type wiki`。 |
|
|
22
|
+
| `--type` | 裸 token 时必填 | 传 token 对应类型:`doc`、`docx`、`sheet`、`file`、`slides`、`bitable`、`base`、`apps`、`wiki`。wiki token 使用 `wiki`;传 `base` 时,CLI 会按 `bitable` 类型处理。 |
|
|
23
|
+
| `--comment-id` | 是 | 要解决的评论 ID;来自 `drive +list-comments` 的 `items[].comment_id` |
|
|
24
|
+
|
|
25
|
+
## 行为说明
|
|
26
|
+
|
|
27
|
+
- 这是写操作。
|
|
28
|
+
- 对同一条评论连续翻转解决状态可能触发服务端限流(HTTP 429);连续调用之间留间隔或短暂延迟后重试。
|
|
29
|
+
|
|
30
|
+
## 输出
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"file_token": "docx_token",
|
|
35
|
+
"file_type": "docx",
|
|
36
|
+
"comment_id": "<comment_id>",
|
|
37
|
+
"action": "resolve",
|
|
38
|
+
"is_solved": true,
|
|
39
|
+
"updated": true
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## 参考
|
|
44
|
+
|
|
45
|
+
- [lark-drive-restore-comment](lark-drive-restore-comment.md) -- 恢复(重新打开)评论
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# drive +restore-comment
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和权限处理。
|
|
4
|
+
|
|
5
|
+
恢复 / 重新打开一条已解决的评论。反向操作——把评论标记为已解决——是独立命令 [`lark-drive-resolve-comment.md`](lark-drive-resolve-comment.md)。
|
|
6
|
+
|
|
7
|
+
用户说“重新打开 / 取消解决 / 恢复这条评论”对应本命令。
|
|
8
|
+
|
|
9
|
+
## 命令
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# 推荐:完整 URL + 评论 ID
|
|
13
|
+
lark-cli drive +restore-comment --url "https://example.larksuite.com/docx/<DOCX_TOKEN>" --comment-id '<id>'
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## 参数
|
|
17
|
+
|
|
18
|
+
| 参数 | 必填 | 说明 |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| `--url` | 与 `--token` 二选一 | 推荐入口。支持 doc/docx/sheet/file/slides/base/bitable/apps/wiki URL;apps 妙搭 URL 使用 `/page/<token>`;wiki URL 会自动解析到真实文档。 |
|
|
21
|
+
| `--token` | 与 `--url` 二选一 | 裸 token 或 URL。裸 token 必须搭配 `--type`;wiki token 使用 `--type wiki`。 |
|
|
22
|
+
| `--type` | 裸 token 时必填 | 传 token 对应类型:`doc`、`docx`、`sheet`、`file`、`slides`、`bitable`、`base`、`apps`、`wiki`。wiki token 使用 `wiki`;传 `base` 时,CLI 会按 `bitable` 类型处理。 |
|
|
23
|
+
| `--comment-id` | 是 | 要恢复的评论 ID;来自 `drive +list-comments` 的 `items[].comment_id` |
|
|
24
|
+
|
|
25
|
+
## 行为说明
|
|
26
|
+
|
|
27
|
+
- 这是写操作。
|
|
28
|
+
- **找目标评论必须带 `--solved-status`**:`drive +list-comments` 默认只返回未解决评论,本命令的目标恰好是已解决评论,直接用默认口径查会一条都找不到。先用 `drive +list-comments --solved-status true`(只看已解决)或 `--solved-status all`(全部)取 `items[].comment_id`。
|
|
29
|
+
- 对同一条评论连续翻转解决状态可能触发服务端限流(HTTP 429);连续调用之间留间隔或短暂延迟后重试。
|
|
30
|
+
|
|
31
|
+
## 输出
|
|
32
|
+
|
|
33
|
+
```json
|
|
34
|
+
{
|
|
35
|
+
"file_token": "docx_token",
|
|
36
|
+
"file_type": "docx",
|
|
37
|
+
"comment_id": "<comment_id>",
|
|
38
|
+
"action": "restore",
|
|
39
|
+
"is_solved": false,
|
|
40
|
+
"updated": true
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## 参考
|
|
45
|
+
|
|
46
|
+
- [lark-drive-resolve-comment](lark-drive-resolve-comment.md) -- 解决(标记已解决)评论
|
|
@@ -26,11 +26,16 @@
|
|
|
26
26
|
> **`--query` 最长 30 个字符**:按字符数(Unicode 码点)算,中文每字算 1 个,与 ASCII 同口径;超过 30 会被服务端拒绝(`99992402 field validation failed`,**是报错不是截断**)。长关键词必须先压缩成核心实体 + 主题词(如把整句问题压成「项目名 + 主题」再搜),不要把整句原问塞进 `--query`。
|
|
27
27
|
>
|
|
28
28
|
> **列表型请求不要硬塞关键词**:如果用户只是要求"我这月创建的所有文档"、"最近半年我编辑过的文档"、"按类型分类统计"这类范围浏览 / 汇总请求,且没有给出标题片段或业务关键词,应使用 `--query ""` 搭配 `--created-by-me`、`--mine`、`--created-*`、`--edited-*`、`--doc-types` 等过滤条件。不要把"查找"、"所有文档"、"最近更新过"、"按类型分类统计"这类动作词或统计意图放进 `--query`,否则会把本来应靠 filter 命中的结果过度收窄。
|
|
29
|
+
>
|
|
30
|
+
> **标题词 + 正文词联合搜索**:如果用户同时给出标题关键词和正文关键词,并要求同一资源同时满足两项条件,优先执行一条普通联合搜索:`lark-cli drive +search --query "标题词 正文词"`,并在同一条命令中叠加用户指定的 `--folder-tokens`、`--doc-types` 等过滤条件。不要把这种联合搜索拆成“标题搜索 + 正文搜索”后自行拼交集;也不要把 `--only-title` 或 `intitle:` 用作主候选路径。只有用户明确只查标题时,才使用 `--only-title` 或 `intitle:`。
|
|
31
|
+
>
|
|
32
|
+
> 用户要求最终返回 N 条时,N 是输出上限,不等于 `--page-size N`。逐页根据 `title` 和 `summary_highlighted` 保留同时满足两项条件的候选;有效候选不足 N 且 `has_more=true` 时,保持同一 query 和过滤条件,使用 `--page-token` 继续,最多检查 3 页。摘要不足以判断正文条件时,只对标题已匹配的候选串行读取正文,确认一个再处理下一个,找到 N 条后停止;不要并发拉取正文。检查 3 页后仍不足时,返回已确认结果并建议用户调整标题词、正文词或搜索范围,不要无界扫描。
|
|
29
33
|
|
|
30
34
|
### 自然语言 → 命令映射速查
|
|
31
35
|
|
|
32
36
|
| 用户说 | 命令 |
|
|
33
37
|
|---|---|
|
|
38
|
+
| 标题含某词且正文含某词,限定文件夹内最多 N 个结果(N 为最终输出上限;按上文规则分页筛选,勿作为 `--page-size`) | `lark-cli drive +search --query "标题词 正文词" --folder-tokens <FOLDER_TOKEN>` |
|
|
34
39
|
| 我这月创建的所有文档,按类型分类统计 | `lark-cli drive +search --query "" --created-by-me --created-since "<YYYY-MM-DD>" --created-until "<YYYY-MM-DD>"` |
|
|
35
40
|
| 最近半年我编辑过的文档,看看哪些最近更新过 | `lark-cli drive +search --query "" --edited-since 6m --sort edit_time` |
|
|
36
41
|
| 最近一个月我编辑过的文档 | `lark-cli drive +search --query "" --edited-since 1m` |
|
|
@@ -96,6 +101,7 @@ lark-cli drive +search --query 方案 --page-token '<PAGE_TOKEN>'
|
|
|
96
101
|
- "某项目发布会重点" → 先搜项目名 + "发布会" + "重点/功能/一览",再按标题和摘要判断是否需要只搜标题或扩大到正文。
|
|
97
102
|
|
|
98
103
|
每轮扩展都要保留非污染、可解释的 evidence(URL/token/标题/摘要);不能因为某个扩展词搜到高相似标题就跳过证据核验。
|
|
104
|
+
扩展 query 时,优先保留用户已经指定的空间、文件夹、群聊、人员、时间和类型等 filter;确需放宽检索范围时,先向用户说明原因并征得确认。
|
|
99
105
|
|
|
100
106
|
## 参数
|
|
101
107
|
|
|
@@ -216,7 +222,7 @@ stdout 的 JSON 输出不受影响。`open_time` / `create_time` 不做 snap。
|
|
|
216
222
|
- **日历表达**("上个月"、"上周"、"本月"、"前年"、"今年 3 月"等明确日历单位)→ **必须算出绝对 `YYYY-MM-DD` 边界**(如"上个月" = 上一个日历月的 1 号 → 当月 1 号),**不要近似成 `1m`/`2m`**:CLI 里 `m` 是固定 30 天、`y` 固定 365 天,跟日历差 0-3 天,月末月初尤其容易偏出去
|
|
217
223
|
- 文档中的 `"<YYYY-MM-DD>"` 是运行时占位符:执行命令前按当前日期计算并替换。例如"本月"应替换为本月第一天和下月第一天,不要把示例生成时的月份硬编码进答案
|
|
218
224
|
- 绝对日期 → 直接 `YYYY-MM-DD` 或 RFC3339
|
|
219
|
-
- **分页策略**:默认只返回第一页,并说明 `has_more`
|
|
225
|
+
- **分页策略**:默认只返回第一页,并说明 `has_more` 和下一页命令。用户明确要"全部 / 全量 / 继续翻"时继续;标题词 + 正文词联合搜索尚未找到足够的有效 Top N 候选时,按上文规则最多检查 3 页。其他场景单轮翻页上限 5 页。
|
|
220
226
|
- **原始返回**:用户要求"原始数据"、"接口返回"时用 `--format json`,不做客户端精确过滤或摘要重写。
|
|
221
227
|
|
|
222
228
|
## 权限
|
|
@@ -28,7 +28,7 @@ lark-cli drive +secure-label-list --page-size 10 --lang zh
|
|
|
28
28
|
```bash
|
|
29
29
|
lark-cli drive +secure-label-update \
|
|
30
30
|
--token "https://example.feishu.cn/docx/doxcnxxxx" \
|
|
31
|
-
--label-id
|
|
31
|
+
--label-id '<label-id>' # replace $LABEL_ID before running
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
参数:
|