@amaster.ai/pi-lark 0.1.6 → 0.1.8
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 +3 -3
- package/skills/lark-apps/SKILL.md +59 -14
- 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-automation.md +80 -2
- package/skills/lark-apps/references/lark-apps-cache.md +61 -0
- package/skills/lark-apps/references/lark-apps-cloud-dev.md +5 -5
- package/skills/lark-apps/references/lark-apps-create.md +6 -4
- package/skills/lark-apps/references/lark-apps-db.md +1 -1
- 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 +1 -1
- package/skills/lark-apps/references/lark-apps-git-credential.md +1 -1
- package/skills/lark-apps/references/lark-apps-html-publish.md +4 -8
- package/skills/lark-apps/references/lark-apps-init.md +1 -1
- package/skills/lark-apps/references/lark-apps-list.md +2 -2
- package/skills/lark-apps/references/lark-apps-local-dev.md +80 -11
- package/skills/lark-apps/references/lark-apps-openapi-key.md +1 -1
- package/skills/lark-apps/references/lark-apps-release-create.md +2 -2
- package/skills/lark-apps/references/lark-apps-release-get.md +3 -3
- package/skills/lark-base/SKILL.md +34 -19
- package/skills/lark-base/references/lark-base-cell-value.md +3 -3
- package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +17 -1
- package/skills/lark-base/references/lark-base-dashboard.md +17 -4
- package/skills/lark-base/references/lark-base-data-query-guide.md +8 -0
- package/skills/lark-base/references/lark-base-data-query.md +11 -4
- package/skills/lark-base/references/lark-base-field-create.md +21 -6
- package/skills/lark-base/references/lark-base-field-json.md +9 -6
- package/skills/lark-base/references/lark-base-field-update.md +17 -1
- 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 +11 -137
- package/skills/lark-base/references/role-config.md +31 -5
- package/skills/lark-calendar/SKILL.md +14 -8
- package/skills/lark-calendar/references/lark-calendar-create.md +6 -5
- package/skills/lark-calendar/references/lark-calendar-recurring.md +1 -0
- package/skills/lark-calendar/references/lark-calendar-room-find.md +2 -1
- package/skills/lark-calendar/references/lark-calendar-schedule-clear-time.md +1 -0
- package/skills/lark-calendar/references/lark-calendar-suggestion.md +1 -1
- package/skills/lark-calendar/references/lark-calendar-update.md +10 -4
- 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 +26 -61
- package/skills/lark-doc/references/genres/business-analysis.md +30 -0
- package/skills/lark-doc/references/genres/data-report.md +32 -0
- package/skills/lark-doc/references/genres/email.md +38 -0
- package/skills/lark-doc/references/genres/execution-plan.md +27 -0
- package/skills/lark-doc/references/genres/formal-doc.md +37 -0
- package/skills/lark-doc/references/genres/meeting-minutes.md +24 -0
- package/skills/lark-doc/references/genres/memo-brief.md +25 -0
- package/skills/lark-doc/references/genres/official-redhead.md +73 -0
- package/skills/lark-doc/references/genres/prd.md +26 -0
- package/skills/lark-doc/references/genres/proposal.md +24 -0
- package/skills/lark-doc/references/genres/research-report.md +32 -0
- package/skills/lark-doc/references/genres/retrospective.md +25 -0
- package/skills/lark-doc/references/genres/route-consumer.md +37 -0
- package/skills/lark-doc/references/genres/route-creative.md +36 -0
- package/skills/lark-doc/references/genres/route-knowledge.md +39 -0
- package/skills/lark-doc/references/genres/route-marketing.md +40 -0
- package/skills/lark-doc/references/genres/route-media.md +36 -0
- package/skills/lark-doc/references/genres/route-opinion.md +38 -0
- package/skills/lark-doc/references/genres/route-personal-brand.md +36 -0
- package/skills/lark-doc/references/genres/route-platform.md +9 -0
- package/skills/lark-doc/references/genres/route-report.md +10 -0
- package/skills/lark-doc/references/genres/route-workplace.md +17 -0
- package/skills/lark-doc/references/genres/sop-tutorial.md +41 -0
- package/skills/lark-doc/references/genres/technical-doc.md +39 -0
- package/skills/lark-doc/references/genres/wechat.md +39 -0
- package/skills/lark-doc/references/genres/weekly-report.md +24 -0
- package/skills/lark-doc/references/genres/white-paper.md +32 -0
- package/skills/lark-doc/references/genres/xiaohongshu.md +38 -0
- package/skills/lark-doc/references/lark-doc-create-workflow.md +121 -0
- package/skills/lark-doc/references/lark-doc-create.md +22 -48
- package/skills/lark-doc/references/lark-doc-fetch.md +84 -93
- package/skills/lark-doc/references/lark-doc-history.md +16 -15
- package/skills/lark-doc/references/lark-doc-md.md +5 -1
- package/skills/lark-doc/references/lark-doc-media-download.md +2 -1
- package/skills/lark-doc/references/lark-doc-script.md +76 -0
- package/skills/lark-doc/references/lark-doc-update.md +70 -222
- package/skills/lark-doc/references/lark-doc-whiteboard.md +14 -17
- package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +46 -0
- package/skills/lark-doc/references/lark-doc-xml.md +38 -166
- package/skills/lark-drive/SKILL.md +32 -50
- 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 +3 -3
- 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 +9 -15
- package/skills/lark-drive/references/lark-drive-copy.md +87 -0
- package/skills/lark-drive/references/lark-drive-delete-reply.md +48 -0
- package/skills/lark-drive/references/lark-drive-download.md +6 -1
- package/skills/lark-drive/references/lark-drive-export.md +3 -0
- package/skills/lark-drive/references/lark-drive-list-comments.md +25 -68
- package/skills/lark-drive/references/lark-drive-list-replies.md +54 -0
- package/skills/lark-drive/references/lark-drive-member-add.md +2 -2
- package/skills/lark-drive/references/lark-drive-member-list.md +65 -0
- package/skills/lark-drive/references/lark-drive-permission-get-setting.md +48 -0
- package/skills/lark-drive/references/lark-drive-preview.md +11 -1
- 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-task-result.md +3 -0
- package/skills/lark-drive/references/lark-drive-update-reply.md +46 -0
- package/skills/lark-drive/references/lark-drive-update-title.md +78 -0
- package/skills/lark-drive/references/lark-drive-upload.md +1 -0
- 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 -4
- package/skills/lark-event/SKILL.md +8 -4
- package/skills/lark-event/references/lark-event-application.md +38 -0
- package/skills/lark-event/references/lark-event-vc.md +8 -2
- package/skills/lark-im/SKILL.md +9 -9
- 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-chat-list.md +9 -2
- package/skills/lark-im/references/lark-im-chat-members-list.md +7 -4
- package/skills/lark-im/references/lark-im-chat-messages-list.md +10 -3
- package/skills/lark-im/references/lark-im-chat-search.md +9 -2
- package/skills/lark-im/references/lark-im-feed-group-list-item.md +2 -2
- package/skills/lark-im/references/lark-im-feed-group-list.md +2 -2
- package/skills/lark-im/references/lark-im-feed-shortcut-list.md +1 -1
- package/skills/lark-im/references/lark-im-flag-list.md +9 -8
- package/skills/lark-im/references/lark-im-message-enrichment.md +1 -1
- package/skills/lark-im/references/lark-im-messages-resources-download.md +19 -25
- package/skills/lark-im/references/lark-im-messages-search.md +4 -5
- package/skills/lark-im/references/lark-im-threads-messages-list.md +8 -4
- package/skills/lark-mail/references/lark-mail-triage.md +19 -4
- package/skills/lark-minutes/SKILL.md +1 -1
- package/skills/lark-minutes/references/lark-minutes-search.md +6 -7
- 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 +3 -3
- package/skills/lark-sheets/SKILL.md +83 -82
- package/skills/lark-sheets/references/lark-sheets-batch-update.md +13 -58
- package/skills/lark-sheets/references/lark-sheets-chart.md +2 -1
- package/skills/lark-sheets/references/lark-sheets-conditional-format.md +1 -1
- package/skills/lark-sheets/references/lark-sheets-range-operations.md +5 -5
- package/skills/lark-sheets/references/lark-sheets-read-data.md +80 -6
- package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +21 -10
- package/skills/lark-sheets/references/lark-sheets-styles-put.md +93 -0
- package/skills/lark-sheets/references/lark-sheets-visual-standards.md +2 -2
- package/skills/lark-sheets/references/lark-sheets-workbook.md +4 -3
- package/skills/lark-sheets/references/lark-sheets-write-cells.md +40 -12
- package/skills/lark-sheets/scripts/lark_detect_subtables.py +593 -0
- package/skills/lark-sheets/scripts/lark_inspect_workbook.py +188 -0
- package/skills/lark-sheets/scripts/lark_profile_table.py +614 -0
- package/skills/lark-sheets/scripts/lark_sheet_range.py +176 -0
- package/skills/lark-sheets/scripts/lark_sheet_read_cli.py +184 -0
- package/skills/lark-sheets/scripts/sheets_df.py +21 -3
- package/skills/lark-slides/SKILL.md +134 -104
- package/skills/lark-slides/references/asset-planning.md +6 -4
- package/skills/lark-slides/references/iconpark.md +2 -2
- package/skills/lark-slides/references/lark-slides-add-slide.md +92 -0
- package/skills/lark-slides/references/lark-slides-create.md +86 -66
- package/skills/lark-slides/references/lark-slides-delete-slide.md +65 -0
- package/skills/lark-slides/references/lark-slides-edit-workflows.md +6 -7
- package/skills/lark-slides/references/lark-slides-history.md +132 -0
- package/skills/lark-slides/references/lark-slides-media-upload.md +4 -27
- package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +7 -11
- package/skills/lark-slides/references/lark-slides-replace-slide.md +22 -4
- package/skills/lark-slides/references/lark-slides-screenshot.md +33 -15
- package/skills/lark-slides/references/lark-slides-update-slide.md +146 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +2 -2
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +2 -3
- package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +90 -32
- package/skills/lark-slides/references/planning-layer.md +11 -10
- package/skills/lark-slides/references/slides_chart_demo.xml +1415 -1
- package/skills/lark-slides/references/slides_xml_schema_definition.xml +539 -79
- package/skills/lark-slides/references/troubleshooting.md +26 -9
- package/skills/lark-slides/references/validation-checklist.md +55 -18
- package/skills/lark-slides/references/visual-planning.md +25 -22
- package/skills/lark-slides/references/xml-schema-quick-ref.md +299 -51
- package/skills/lark-slides/scripts/sxsd_validator.py +1052 -0
- package/skills/lark-slides/scripts/xml_text_overlap_lint.py +1964 -195
- package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +4051 -501
- package/skills/lark-task/SKILL.md +7 -0
- package/skills/lark-task/references/lark-task-complete.md +6 -2
- package/skills/lark-task/references/lark-task-create.md +9 -0
- package/skills/lark-task/references/lark-task-update.md +6 -2
- package/skills/lark-whiteboard/SKILL.md +21 -13
- 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} +17 -16
- package/skills/lark-whiteboard/references/lark-whiteboard-update.md +7 -7
- package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +23 -31
- package/skills/lark-whiteboard/routes/dsl.md +11 -5
- package/skills/lark-whiteboard/routes/mermaid.md +3 -3
- package/skills/lark-whiteboard/routes/svg-edit.md +9 -6
- package/skills/lark-whiteboard/routes/svg.md +14 -7
- 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/mention.md +71 -0
- package/skills/lark-whiteboard/scenes/treemap.md +1 -1
- package/skills/lark-wiki/SKILL.md +6 -3
- package/skills/lark-wiki/references/lark-wiki-delete-space.md +6 -3
- package/skills/lark-doc/references/lark-doc-word-stat.md +0 -93
- package/skills/lark-doc/references/style/lark-doc-create-workflow.md +0 -47
- package/skills/lark-doc/references/style/lark-doc-style.md +0 -68
- package/skills/lark-doc/references/style/lark-doc-update-workflow.md +0 -48
- package/skills/lark-doc/scripts/doc_word_stat.py +0 -1243
- package/skills/lark-drive/references/lark-drive-comments-guide.md +0 -80
- package/skills/lark-slides/references/examples.md +0 -91
- package/skills/lark-slides/references/lark-slides-replace-pages.md +0 -95
- package/skills/lark-slides/references/lark-slides-whiteboard.md +0 -331
- package/skills/lark-slides/references/lark-slides-xml-get.md +0 -100
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +0 -125
- 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 -433
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Drive 评论内容格式(--content)
|
|
2
|
+
|
|
3
|
+
> 本文是写入类评论命令(`+add-comment` / `+add-reply` / `+update-reply`)共享的 `--content` 内容格式说明,由这三个命令的 ref 引用。
|
|
4
|
+
|
|
5
|
+
`drive +add-comment`、`drive +add-reply`、`drive +update-reply` 的 `--content` 使用同一套 `reply_elements` JSON 数组格式。本文集中说明 schema、元素类型、转义和长度限制,各命令 ref 只保留最常见的纯文本例子。
|
|
6
|
+
|
|
7
|
+
## Schema
|
|
8
|
+
|
|
9
|
+
`--content` 是一个 JSON 数组字符串,至少一个元素。每个元素按 `type` 用对应字段承载值:
|
|
10
|
+
|
|
11
|
+
| type | 字段 | 值 |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| `text` | `text` | 普通文本正文 |
|
|
14
|
+
| `mention_user` | `mention_user` | 被 @ 用户的 open_id |
|
|
15
|
+
| `link` | `link` | 飞书云文档链接(docx/doc/sheet/bitable/wiki 等云文档 URL;对应 wire `docs_link`) |
|
|
16
|
+
|
|
17
|
+
最常见就是单个纯文本元素:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
--content '[{"type":"text","text":"评论正文"}]'
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
组合多种元素:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
--content '[
|
|
27
|
+
{"type":"text","text":"请 "},
|
|
28
|
+
{"type":"mention_user","mention_user":"ou_xxx"},
|
|
29
|
+
{"type":"text","text":" 看下 "},
|
|
30
|
+
{"type":"link","link":"https://your-tenant.feishu.cn/docx/<TOKEN>"}
|
|
31
|
+
]'
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
- `type=text` 的 `text` 不能为空;未知 `type` 会被拒绝,只允许 `text` / `mention_user` / `link`。
|
|
35
|
+
- 为省事,`mention_user` / `link` 的值也可以直接放在 `text` 字段(如 `{"type":"mention_user","text":"ou_xxx"}`),CLI 会识别;推荐用上表的专属字段,语义更清晰。
|
|
36
|
+
- `link` 是**飞书云文档链接**(wire 类型就叫 `docs_link`),不是任意网页链接。回复类命令(`+add-reply` / `+update-reply`)会校验,传外部 URL 被服务端拒绝(`1069302`),只接受飞书云文档 URL;`+add-comment` 对外部 URL 较宽松(能写入),但外部链接未必按云文档链接渲染,仍建议只放云文档 URL。
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## 长度限制
|
|
40
|
+
|
|
41
|
+
- 所有 `type=text` 元素的字符(rune)总和上限 10000,按原始输入的字符数计(中英文、符号一视同仁,不是字节数、也不是转义后的长度)。
|
|
42
|
+
- 这是对**总额**的限制:把一段长文本拆成多个 text 元素不能绕过,它们共用同一个 10000 字符预算。
|
|
43
|
+
- `mention_user` / `link` 不计入该长度。
|
|
44
|
+
- 超限时 shortcut 在发送前拒绝并指出累计超长的元素;服务端对超限返回不透明的 `[1069302]`,所以这是预检。
|
|
45
|
+
|
|
46
|
+
## 参考
|
|
47
|
+
|
|
48
|
+
- [lark-drive-add-comment](lark-drive-add-comment.md) -- 添加评论
|
|
49
|
+
- [lark-drive-add-reply](lark-drive-add-reply.md) -- 回复评论
|
|
50
|
+
- [lark-drive-update-reply](lark-drive-update-reply.md) -- 更新回复
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
# 文档评论定位字段
|
|
2
2
|
|
|
3
|
-
当用户需要根据评论定位文档正文位置、对文档做 review、区分多处相同引用文本,或把评论落点映射到 `docs +fetch --detail with-ids` 的内容时,优先使用 `drive +list-comments --need-relation` 查询 docx
|
|
3
|
+
当用户需要根据评论定位文档正文位置、对文档做 review、区分多处相同引用文本,或把评论落点映射到 `docs +fetch --detail with-ids` 的内容时,优先使用 `drive +list-comments --need-relation` 查询 docx 评论位置;已知评论 ID 时用 `drive +batch-query-comments --need-relation`。
|
|
4
4
|
|
|
5
5
|
## 适用范围
|
|
6
6
|
|
|
7
7
|
- 当前只有 `file_type=docx` 支持通过 `need_relation=true` 查询评论的位置,并返回可用于定位正文 block 的 `relation`、`parent_type`、`parent_token` 等字段。
|
|
8
|
-
- `drive +list-comments`
|
|
8
|
+
- `drive +list-comments` 和 `drive +batch-query-comments` 都会在目标不是 docx 时静默忽略 `--need-relation`,避免把无效参数传给 OpenAPI。遇到 sheet、bitable、slides、普通文件等类型的评论时,不要承诺可以用 `need_relation` 精确定位正文位置,应退回普通评论字段、对应资源能力下钻或人工确认。
|
|
9
|
+
- 注意参数位置差异:list 的 `need_relation` 在 query params,batch_query 的在请求 body(直接调 raw OpenAPI 时才需要关心;两个 shortcut 已各自处理)。
|
|
9
10
|
|
|
10
11
|
## 调用方式
|
|
11
12
|
|
|
@@ -21,20 +22,13 @@ lark-cli drive +list-comments --url '<docx_or_wiki_url>' --need-relation
|
|
|
21
22
|
lark-cli drive +list-comments --token '<wiki_token>' --type wiki --need-relation
|
|
22
23
|
```
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
已知评论 ID 时,用 `drive +batch-query-comments --need-relation` 直接按 ID 取:
|
|
25
26
|
|
|
26
27
|
```bash
|
|
27
|
-
lark-cli drive
|
|
28
|
-
--params '{"file_token":"<doc_token>","file_type":"docx","is_solved":false,"need_relation":true}'
|
|
28
|
+
lark-cli drive +batch-query-comments --url '<docx_or_wiki_url>' --comment-ids '<comment_id>' --need-relation
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
lark-cli drive file.comments batch_query \
|
|
35
|
-
--params '{"file_token":"<doc_token>","file_type":"docx"}' \
|
|
36
|
-
--data '{"comment_ids":["<comment_id>"],"need_relation":true}'
|
|
37
|
-
```
|
|
31
|
+
只有在需要 shortcut 未暴露的底层参数时,才直接调 raw OpenAPI(两个 shortcut 已各自处理 `need_relation` 的位置差异:list 在 query params,batch_query 在请求 body)。
|
|
38
32
|
|
|
39
33
|
同时获取文档内容,并要求返回 block id:
|
|
40
34
|
|
|
@@ -138,7 +132,7 @@ lark-cli docs +fetch --doc '<doc_token_or_url>' --detail with-ids
|
|
|
138
132
|
## 定位流程
|
|
139
133
|
|
|
140
134
|
1. 确认目标是 `file_type=docx`;只有 docx 文档支持通过 `need_relation` 查询评论位置。
|
|
141
|
-
2. 用 `drive +list-comments --need-relation` 获取评论;已知评论 ID
|
|
135
|
+
2. 用 `drive +list-comments --need-relation` 获取评论;已知评论 ID 且需要批量查询时,用 `drive +batch-query-comments --need-relation`。原生 `drive file.comments list/batch_query` 仅在需要 shortcut 未暴露的底层参数时兜底。
|
|
142
136
|
3. 用 `docs +fetch --detail with-ids` 获取文档内容。
|
|
143
137
|
4. 对每条评论先看 `relation`:
|
|
144
138
|
- 如果存在 `relation.relation`,解析这个 JSON 字符串。
|
|
@@ -190,9 +184,9 @@ lark-cli base +record-list --base-token '<base_token>' --table-id '<table_id>' -
|
|
|
190
184
|
- 若要定位画板内部节点,切到 `lark-whiteboard` 读取 raw 节点结构:
|
|
191
185
|
|
|
192
186
|
```bash
|
|
193
|
-
lark-cli whiteboard +
|
|
187
|
+
lark-cli whiteboard +export \
|
|
194
188
|
--whiteboard-token '<whiteboard_token>' \
|
|
195
|
-
--
|
|
189
|
+
--output-type raw
|
|
196
190
|
```
|
|
197
191
|
|
|
198
192
|
- 如果 raw 节点中存在唯一匹配 `quote` 的文本节点,可定位到该节点;如果有多个相同文本节点,仍然是弱匹配,需要结合位置、样式、用户描述或人工确认。
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
|
|
2
|
+
# drive +copy
|
|
3
|
+
|
|
4
|
+
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
5
|
+
|
|
6
|
+
复制一个 Drive 文件(在线文档、表格、多维表格、幻灯片、思维笔记或普通文件)到目标文件夹,生成一个内容相同的新副本。
|
|
7
|
+
|
|
8
|
+
## 命令
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
# 源文档传 URL(自动识别类型和 token)
|
|
12
|
+
lark-cli drive +copy --url "https://example.larksuite.com/docx/<DOCX_TOKEN>" --name '副本名称' --folder-token <TARGET_FOLDER_TOKEN>
|
|
13
|
+
|
|
14
|
+
# Wiki URL(自动解包底层资源后复制到 Drive)
|
|
15
|
+
lark-cli drive +copy --url "https://example.larksuite.com/wiki/<WIKI_TOKEN>" --name '副本名称' --folder-token <TARGET_FOLDER_TOKEN>
|
|
16
|
+
|
|
17
|
+
# Wiki token
|
|
18
|
+
lark-cli drive +copy --token <WIKI_TOKEN> --type wiki --name '副本名称' --folder-token my_space
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 参数
|
|
22
|
+
|
|
23
|
+
| 参数 | 必填 | 说明 |
|
|
24
|
+
|------|------|------|
|
|
25
|
+
| `--url` | 与 `--token` 二选一 | 源文档 URL,支持 `doc` / `docx` / `sheet` / `file` / `mindnote` / `slides` / `base` / `bitable` / `wiki` 路径;wiki 会自动解包底层资源 |
|
|
26
|
+
| `--token` | 与 `--url` 二选一 | 源文档 token 或 URL;裸 token 必须配合 `--type` |
|
|
27
|
+
| `--type` | 裸 token 时必填 | 源文件类型:`doc`、`docx`、`sheet`、`file`、`mindnote`、`slides`、`bitable`(`base` 为兼容别名)或 `wiki`;传 URL 时可省略,显式传入时必须与 URL 类型一致 |
|
|
28
|
+
| `--name` | 是 | 副本名称,最长 256 字节 |
|
|
29
|
+
| `--folder-token` | 是 | 目标文件夹 token、文件夹 URL,或常量 `my_space`(复制到当前身份"我的空间"根目录,内部自动解析根 token) |
|
|
30
|
+
| `--extra` | 否 | 可重复的 `key=value` 对,原样透传给 API 的 `extra` 自定义复制参数;典型用法 `--extra target_type=docx`(复制旧版 doc 时转换为 docx 副本) |
|
|
31
|
+
|
|
32
|
+
## 输入规则
|
|
33
|
+
|
|
34
|
+
- `--url` 与 `--token` 互斥,只传一个
|
|
35
|
+
- `--type` 必须与源文件真实类型一致,类型不匹配时服务端会返回失败
|
|
36
|
+
- `base` 与 `bitable` 是同一概念,CLI 会把 `base` 归一化为 `bitable` 后发给服务端
|
|
37
|
+
- 目标文件夹必须是云空间(云盘/云存储)文件夹 token,不能传 wiki 节点 token
|
|
38
|
+
|
|
39
|
+
## Wiki 场景
|
|
40
|
+
|
|
41
|
+
`drive +copy` 接受 wiki URL,也接受 `--token <WIKI_TOKEN> --type wiki`。目标仅支持云盘(Drive)文件夹或 `my_space` 根目录;要把副本留在知识库中,使用 `wiki +node-copy`。
|
|
42
|
+
|
|
43
|
+
## 行为说明
|
|
44
|
+
|
|
45
|
+
- bot 身份复制成功后,CLI 会自动尝试给当前 CLI 用户授予新副本的 `full_access`,结果在输出的 `data.permission_grant` 字段中;授权失败不影响复制本身的成功状态
|
|
46
|
+
|
|
47
|
+
## 输出
|
|
48
|
+
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"ok": true,
|
|
52
|
+
"identity": "bot",
|
|
53
|
+
"data": {
|
|
54
|
+
"copied": true,
|
|
55
|
+
"file_token": "<new_file_token>",
|
|
56
|
+
"file_type": "docx",
|
|
57
|
+
"name": "副本名称",
|
|
58
|
+
"url": "https://example.larksuite.com/docx/<new_file_token>",
|
|
59
|
+
"source_file_token": "<source_file_token>",
|
|
60
|
+
"source_type": "docx",
|
|
61
|
+
"source_wiki_token": "<source_wiki_token, only for wiki input>",
|
|
62
|
+
"folder_token": "<target_folder_token>",
|
|
63
|
+
"permission_grant": {
|
|
64
|
+
"status": "granted",
|
|
65
|
+
"perm": "full_access",
|
|
66
|
+
"member_type": "openid",
|
|
67
|
+
"user_open_id": "<current_user_open_id>",
|
|
68
|
+
"message": "Granted the current CLI user full_access on the new document."
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
`source_wiki_token` 仅 wiki 输入出现;`permission_grant` 仅 bot 身份出现,user 身份复制时 `data` 下没有该字段。
|
|
75
|
+
|
|
76
|
+
## 常见错误
|
|
77
|
+
|
|
78
|
+
| 错误码 | 含义 | 处理 |
|
|
79
|
+
|---|---|---|
|
|
80
|
+
| `99991672` / `99991679` | 缺失 scope | 按错误里的 `missing_scopes`、`hint` 申请/授权所需 scope 后重试 |
|
|
81
|
+
| `99991400` | 命中接口限频 | 等待一段时间后重试;批量复制时保持串行并降低频率 |
|
|
82
|
+
|
|
83
|
+
## 参考
|
|
84
|
+
|
|
85
|
+
- [lark-drive](../SKILL.md) -- 云空间(云盘/云存储)全部命令
|
|
86
|
+
- [lark-wiki](../../lark-wiki/SKILL.md) -- 知识库节点复制(`wiki +node-copy`)
|
|
87
|
+
- [lark-shared](../../lark-shared/SKILL.md) -- 认证和全局参数
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# drive +delete-reply
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和权限处理。
|
|
4
|
+
|
|
5
|
+
删除某条回复。**高风险写操作**:真实执行需要按 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 的高风险审批协议向用户确认后追加 `--yes`;删除不可恢复。
|
|
6
|
+
|
|
7
|
+
## 命令
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# 先预览(--dry-run 不需要 --yes)
|
|
11
|
+
lark-cli drive +delete-reply --url "https://example.larksuite.com/docx/<DOCX_TOKEN>" --comment-id '<id>' --reply-id '<id>' --dry-run
|
|
12
|
+
|
|
13
|
+
# 确认后真实删除(把 --dry-run 换成 --yes)
|
|
14
|
+
lark-cli drive +delete-reply --url "https://example.larksuite.com/docx/<DOCX_TOKEN>" --comment-id '<id>' --reply-id '<id>' --yes
|
|
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
|
+
| `--comment-id` | 是 | 回复所属的评论 ID;来自 `drive +list-comments` |
|
|
25
|
+
| `--reply-id` | 是 | 要删除的回复 ID;来自 `drive +list-replies` 的 `items[].reply_id`,或 `drive +list-comments` 的 `items[].reply_list.replies[].reply_id` |
|
|
26
|
+
| `--yes` | 真实执行时是 | 高风险确认;`--dry-run` 预览不需要 |
|
|
27
|
+
|
|
28
|
+
## 行为说明
|
|
29
|
+
|
|
30
|
+
- 删除永久生效,回复没有回收站或撤销。
|
|
31
|
+
- 删除按 reply 逐条生效:删除某条回复(包括第一条/根回复)不影响其它回复;把该评论卡片下的所有回复都删完后,评论卡片在前端页面才不再显示。
|
|
32
|
+
- **删除整条评论没有专门的命令,需要用本命令删光该卡片下的所有回复**(先用 `drive +list-replies` 拉全回复 id)。删除前先和用户确认删的是某条回复还是整条评论。
|
|
33
|
+
|
|
34
|
+
## 输出
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"file_token": "docx_token",
|
|
39
|
+
"file_type": "docx",
|
|
40
|
+
"comment_id": "<comment_id>",
|
|
41
|
+
"reply_id": "<reply_id>",
|
|
42
|
+
"deleted": true
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 参考
|
|
47
|
+
|
|
48
|
+
- [lark-drive-list-replies](lark-drive-list-replies.md) -- 获取回复与 reply_id
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# 下载到指定路径
|
|
12
12
|
lark-cli drive +download --file-token boxbc_xxx --output ./report.pdf
|
|
13
13
|
|
|
14
|
-
# 只提供 token
|
|
14
|
+
# 只提供 token,默认保存到当前目录
|
|
15
15
|
lark-cli drive +download --file-token boxbc_xxx
|
|
16
16
|
```
|
|
17
17
|
|
|
@@ -25,6 +25,11 @@ https://xxx.feishu.cn/drive/file/boxbc_xxx
|
|
|
25
25
|
file_token
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
## 排障
|
|
29
|
+
|
|
30
|
+
- 如果返回 `permission_denied`,或最终下载返回 `HTTP 403`,按错误 `hint` 使用 `lark-cli drive +preview --file-token <FILE_TOKEN> --type source_file --output <path>` 获取预览产物。
|
|
31
|
+
- 如果返回限流错误,停止立即重试,稍后按指数退避重试。
|
|
32
|
+
|
|
28
33
|
## 参考
|
|
29
34
|
|
|
30
35
|
- [lark-drive](../SKILL.md) -- 云空间(云盘/云存储)全部命令
|
|
@@ -136,6 +136,8 @@ lark-cli drive +export \
|
|
|
136
136
|
- `--only-schema` 只支持 `bitable` 导出为 `.base`,用于仅导出表结构
|
|
137
137
|
- 如果格式不匹配,CLI 会返回 typed validation error,并在 `hint` 中给出可重试的 `--file-extension` 建议;例如 `docx + csv` 会提示改用 `docx/pdf/markdown`,或改传 sheet/bitable URL
|
|
138
138
|
- shortcut 内部固定有限轮询:最多 10 次,每次间隔 5 秒
|
|
139
|
+
- 创建导出任务时收到 `rate_limit` / `99991400` 不会生成 `ticket`;至少等待 1 分钟后重跑原 `drive +export`,持续限频时从 1 分钟开始指数退避
|
|
140
|
+
- 状态轮询一旦收到 `rate_limit` / `99991400` 会立即停止,不会继续消耗剩余轮询次数;错误会保留原始 typed metadata,并在 `hint` 中提供已有 `ticket` 的续查命令
|
|
139
141
|
- 轮询超时不是失败;会返回 `ticket`、`timed_out=true` 和 `next_command`,供后续继续查询
|
|
140
142
|
|
|
141
143
|
## 错误码处理
|
|
@@ -144,6 +146,7 @@ lark-cli drive +export \
|
|
|
144
146
|
|--------|------|----------|
|
|
145
147
|
| `1069914` | token 非法或 token/type 不匹配;常见原因是把 Wiki node token 当作底层 `docx` / `sheet` / `bitable` token 使用,没有传 `--doc-type wiki` | 优先改用 `--url <Wiki URL>`;只有裸 Wiki token 时,用 `--token <WIKI_NODE_TOKEN> --doc-type wiki`。不确定 token 类型时,先用 `lark-cli drive +inspect --url <TOKEN> --type wiki` 检查是否能解包为 Wiki node;如果不是 Wiki token,再检查 token 来源、`--doc-type` 是否与实际资源类型一致 |
|
|
146
148
|
| `1069902` | 没有当前导出任务所需权限 | 不要直接重试同一命令;先确认当前 `--as` 身份是否能访问该文档、是否有下载/导出权限,以及文档是否受分享、密级或租户策略限制。需要补权限时,让文档 owner 或管理员授权后再执行 |
|
|
149
|
+
| `99991400` / `rate_limit` | OpenAPI 请求频率受限 | 立即停止并按错误 `hint` 处理:没有 `ticket` 时,至少等待 1 分钟后重跑原 `drive +export`;已有 `ticket` 时,只执行 `drive +task_result --scenario export` 续查,不要重复创建任务。持续限频时从 1 分钟开始指数退避 |
|
|
147
150
|
| `99991679` | 缺少 OpenAPI scope | 按错误 envelope 中的 `missing_scopes` / `required_scope` / `hint` 补齐授权;常见方式是重新执行 `lark-cli auth login --scope "<缺失 scope>"`。补 scope 前不要反复重试导出命令 |
|
|
148
151
|
|
|
149
152
|
## 推荐续跑方式
|
|
@@ -14,72 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
16
|
# 推荐:直接传用户给出的完整 URL。默认只查未解决评论。
|
|
17
|
-
lark-cli drive +list-comments
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
lark-cli drive +list-comments \
|
|
22
|
-
--url "<DOCUMENT_URL>" \
|
|
23
|
-
--solved-status all
|
|
24
|
-
|
|
25
|
-
# 查询已解决评论。
|
|
26
|
-
lark-cli drive +list-comments \
|
|
27
|
-
--url "<DOCUMENT_URL>" \
|
|
28
|
-
--solved-status true
|
|
29
|
-
|
|
30
|
-
# 只查全文评论或局部评论。
|
|
31
|
-
lark-cli drive +list-comments \
|
|
32
|
-
--url "<DOCUMENT_URL>" \
|
|
33
|
-
--comment-scope whole
|
|
34
|
-
|
|
35
|
-
lark-cli drive +list-comments \
|
|
36
|
-
--url "<DOCUMENT_URL>" \
|
|
37
|
-
--comment-scope partial
|
|
38
|
-
|
|
39
|
-
# 电子表格 URL 保留 /sheets/ 路径,直接原样传入;不要把 sheet token 拼成 /docx/<token>。
|
|
40
|
-
lark-cli drive +list-comments \
|
|
41
|
-
--url "https://example.larksuite.com/sheets/<SHEET_TOKEN>"
|
|
42
|
-
|
|
43
|
-
# 妙搭 apps URL 使用 /page/<token>,shortcut 会识别为 file_type=apps。
|
|
44
|
-
lark-cli drive +list-comments \
|
|
45
|
-
--url "https://example.feishu.cn/page/<APPS_TOKEN>/"
|
|
46
|
-
|
|
47
|
-
# wiki URL 会自动解包。
|
|
48
|
-
lark-cli drive +list-comments \
|
|
49
|
-
--url "https://example.larksuite.com/wiki/<WIKI_TOKEN>"
|
|
50
|
-
|
|
51
|
-
# 裸 wiki token 也支持,但必须显式声明 --type wiki。
|
|
52
|
-
lark-cli drive +list-comments \
|
|
53
|
-
--token "<WIKI_TOKEN>" \
|
|
54
|
-
--type wiki
|
|
55
|
-
|
|
56
|
-
# 裸 token 需要声明 token 对应类型;不要默认当作 docx。这里以 sheet 为例。
|
|
57
|
-
lark-cli drive +list-comments \
|
|
58
|
-
--token "<DOCUMENT_TOKEN>" \
|
|
59
|
-
--type sheet \
|
|
60
|
-
--page-size 100
|
|
61
|
-
|
|
62
|
-
# 妙搭裸 apps token 需要显式声明 --type apps。
|
|
63
|
-
lark-cli drive +list-comments \
|
|
64
|
-
--token "<APPS_TOKEN>" \
|
|
65
|
-
--type apps
|
|
66
|
-
|
|
67
|
-
# docx 需要评论定位关系时再带 need-relation;非 docx 会静默忽略。
|
|
68
|
-
lark-cli drive +list-comments \
|
|
69
|
-
--url "https://example.larksuite.com/docx/<DOCX_TOKEN>" \
|
|
70
|
-
--need-relation
|
|
71
|
-
|
|
72
|
-
# 分页续跑。
|
|
73
|
-
# 先看上一页输出的 has_more;只有 has_more=true 时,才用返回的 page_token 继续。
|
|
74
|
-
lark-cli drive +list-comments \
|
|
75
|
-
--url "<DOCUMENT_URL>" \
|
|
76
|
-
--page-size 100 \
|
|
77
|
-
--page-token "<NEXT_PAGE_TOKEN>"
|
|
78
|
-
|
|
79
|
-
# 预览请求链路,不发真实请求。
|
|
80
|
-
lark-cli drive +list-comments \
|
|
81
|
-
--url "https://example.larksuite.com/wiki/<WIKI_TOKEN>" \
|
|
82
|
-
--dry-run
|
|
17
|
+
lark-cli drive +list-comments --url "<DOCUMENT_URL>"
|
|
18
|
+
|
|
19
|
+
# 只有用户明确要求包含已解决评论时,才传 --solved-status all。
|
|
20
|
+
lark-cli drive +list-comments --url "<DOCUMENT_URL>" --solved-status all
|
|
83
21
|
```
|
|
84
22
|
|
|
85
23
|
## 参数
|
|
@@ -103,7 +41,26 @@ lark-cli drive +list-comments \
|
|
|
103
41
|
- URL 输入时不需要传 `--type`;如果 URL 类型和显式 `--type` 冲突,shortcut 会返回 validation error,建议移除 `--type`。
|
|
104
42
|
- wiki 输入会自动解析到真实文档,再查询评论列表。JSON 输出不额外返回 wiki token 或 wiki node。
|
|
105
43
|
- 输出中的 `items` 保留评论卡片字段,外层补充 `file_token`、`file_type`、`has_more`、`page_token`、`count`;`count` 是当前页返回的评论卡片数。是否继续分页以 `has_more` 为准,而不是只看 `page_token` 是否存在。
|
|
106
|
-
|
|
44
|
+
|
|
45
|
+
## 评论卡片模型
|
|
46
|
+
|
|
47
|
+
- 返回的 `items` 是评论卡片列表,每个 `item` 对应用户界面中的一张评论卡片,不是平铺的互动消息列表。
|
|
48
|
+
- 创建评论时会同时创建该卡片里的第一条 reply;真正承载正文的是 `item.reply_list.replies`,其中第一条 reply(根回复)在用户视角下就是这张卡片里的“评论本身”。更新根回复即改写评论正文(见 [`lark-drive-update-reply.md`](lark-drive-update-reply.md));删除按 reply 逐条生效,卡片在最后一条回复被删时才消失(见 [`lark-drive-delete-reply.md`](lark-drive-delete-reply.md))。
|
|
49
|
+
- `item.has_more=true` 表示该评论卡片下还有回复未包含在本次返回中;这与外层 `has_more`(是否还有下一页评论卡片)是两个不同字段。需要完整回复时继续用 `drive +list-replies --comment-id <id>` 分页拉全。
|
|
50
|
+
|
|
51
|
+
## 统计口径
|
|
52
|
+
|
|
53
|
+
- 统计“评论数”或“评论卡片数”:统计 `items` 长度;全量统计时对所有分页返回的 `items` 长度累加。
|
|
54
|
+
- 统计“回复数”:统计所有 `item.reply_list.replies` 长度之和,再减去 `items` 长度。
|
|
55
|
+
- 统计“总互动数”:统计所有 `item.reply_list.replies` 长度之和,包含每张评论卡片里的首条评论。
|
|
56
|
+
- 任一 `item.has_more=true` 时,先用 `drive +list-replies --comment-id <id>` 把该卡片的回复拉全,再做回复数或总互动数统计,否则会少算。
|
|
57
|
+
|
|
58
|
+
## 排序
|
|
59
|
+
|
|
60
|
+
- 只有当用户明确提到“最新评论”“最后评论”“最早评论”时,才需要按 `create_time` 排序。
|
|
61
|
+
- 排序前必须拉完所有评论分页,不能只取第一页。
|
|
62
|
+
- “最新评论”/“最后评论”:按 `create_time` 降序取第一条。“最早评论”:按 `create_time` 升序取第一条。
|
|
63
|
+
- 用户只说“第一条评论”时,直接使用返回的第一条,不需要额外排序。
|
|
107
64
|
|
|
108
65
|
## 输出
|
|
109
66
|
|
|
@@ -121,5 +78,5 @@ lark-cli drive +list-comments \
|
|
|
121
78
|
## 参考
|
|
122
79
|
|
|
123
80
|
- [lark-drive](../SKILL.md) -- 云空间(云盘/云存储)全部命令
|
|
124
|
-
- [lark-drive-
|
|
81
|
+
- [lark-drive-list-replies](lark-drive-list-replies.md) -- 拉全某张卡片下的回复(统计与 `item.has_more` 补全)
|
|
125
82
|
- [lark-drive-comment-location](lark-drive-comment-location.md) -- 使用 `need_relation` 定位 docx 正文
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# drive +list-replies
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和权限处理。
|
|
4
|
+
|
|
5
|
+
分页获取某条评论下的回复。
|
|
6
|
+
|
|
7
|
+
## 命令
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# 推荐:完整 URL + 评论 ID
|
|
11
|
+
lark-cli drive +list-replies --url "https://example.larksuite.com/docx/<DOCX_TOKEN>" --comment-id '<id>'
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## 参数
|
|
15
|
+
|
|
16
|
+
| 参数 | 必填 | 说明 |
|
|
17
|
+
|---|---|---|
|
|
18
|
+
| `--url` | 与 `--token` 二选一 | 推荐入口。支持 doc/docx/sheet/file/slides/base/bitable/apps/wiki URL;apps 妙搭 URL 使用 `/page/<token>`;wiki URL 会自动解析到真实文档。 |
|
|
19
|
+
| `--token` | 与 `--url` 二选一 | 裸 token 或 URL。裸 token 必须搭配 `--type`;wiki token 使用 `--type wiki`。 |
|
|
20
|
+
| `--type` | 裸 token 时必填 | 传 token 对应类型:`doc`、`docx`、`sheet`、`file`、`slides`、`bitable`、`base`、`apps`、`wiki`。wiki token 使用 `wiki`;传 `base` 时,CLI 会按 `bitable` 类型处理。 |
|
|
21
|
+
| `--comment-id` | 是 | 评论 ID;来自 `drive +list-comments` 的 `items[].comment_id` |
|
|
22
|
+
| `--page-size` | 否 | 1-100,默认 50 |
|
|
23
|
+
| `--page-token` | 否 | 上次输出的 `page_token`;`has_more=true` 时用它续拉 |
|
|
24
|
+
| `--need-reaction` | 否 | 在回复上返回 reaction 数据,见 [`lark-drive-reactions.md`](lark-drive-reactions.md) |
|
|
25
|
+
|
|
26
|
+
## 行为说明
|
|
27
|
+
|
|
28
|
+
- 根回复承载评论正文本身,是回复列表中创建最早的一条:**仅第一页(未传 `--page-token`)的 `items[0]` 是根回复**;翻页后(传了 `--page-token`)返回的 `items[0]` 只是普通回复,不要按位置当作根回复去更新或删除。
|
|
29
|
+
- 输出字段:`items[].reply_id` / `user_id` / `create_time` / `update_time` / `content.elements`,供 `+update-reply`、`+delete-reply` 使用。
|
|
30
|
+
- 检查回复归属(更新/删除前):比对 `items[].user_id`(open_id)与当前身份,判断是不是自己创建的回复。
|
|
31
|
+
- 输出的 `items` 始终是 JSON 数组(服务端省略时归一化为 `[]`)。
|
|
32
|
+
|
|
33
|
+
## 输出
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"file_token": "docx_token",
|
|
38
|
+
"file_type": "docx",
|
|
39
|
+
"comment_id": "<comment_id>",
|
|
40
|
+
"items": [],
|
|
41
|
+
"has_more": false,
|
|
42
|
+
"page_token": "",
|
|
43
|
+
"count": 0
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
`items` 是回复数组;是否继续翻页以 `has_more` 为准,`has_more=true` 时用返回的 `page_token` 续拉。
|
|
48
|
+
|
|
49
|
+
## 参考
|
|
50
|
+
|
|
51
|
+
- [lark-drive-list-comments](lark-drive-list-comments.md) -- 评论卡片模型与统计口径
|
|
52
|
+
- [lark-drive-update-reply](lark-drive-update-reply.md) -- 更新回复
|
|
53
|
+
- [lark-drive-delete-reply](lark-drive-delete-reply.md) -- 删除回复
|
|
54
|
+
- [lark-drive-reactions](lark-drive-reactions.md) -- reaction 查询与写入
|
|
@@ -20,8 +20,8 @@ lark-cli drive +member-add \
|
|
|
20
20
|
|
|
21
21
|
| 参数 | 必填 | 说明 |
|
|
22
22
|
|------|----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
23
|
-
| `--token` | 是 | 裸 token 或完整 URL。路径支持 `/drive/folder/`、`/docx/`、`/doc/`、`/sheets/`、`/base/`、`/bitable/`、`/wiki/`、`/file/`、`/mindnotes/`、`/slides/`、`/minutes/`;URL 输入可从路径推断 `--type`,裸 token 不做前缀推断 |
|
|
24
|
-
| `--type` | 必填 | 目标资源类型:`docx` / `doc` / `sheet` / `bitable` / `file` / `folder` / `wiki` / `mindnote` / `slides` / `minutes`。传 URL 时可省略;裸 token 必须显式传;若同时传 URL 和 `--type`,显式 `--type` 覆盖 URL 推断
|
|
23
|
+
| `--token` | 是 | 裸 token 或完整 URL。路径支持 `/drive/folder/`、`/docx/`、`/doc/`、`/sheets/`、`/base/`、`/bitable/`、`/wiki/`、`/file/`、`/mindnotes/`、`/slides/`、`/minutes/`、`/page/`;URL 输入可从路径推断 `--type`,裸 token 不做前缀推断 |
|
|
24
|
+
| `--type` | 必填 | 目标资源类型:`docx` / `doc` / `sheet` / `bitable` / `file` / `folder` / `wiki` / `mindnote` / `slides` / `minutes` / `apps`。传 URL 时可省略;裸 token 必须显式传;若同时传 URL 和 `--type`,显式 `--type` 覆盖 URL 推断 |
|
|
25
25
|
| `--member-id` | 是 | 协作者 ID;逗号分隔可批量添加,最多 10 个 |
|
|
26
26
|
| `--member-type` | 是 | member-id 的类型;支持 `email` / `openid` / `unionid` / `openchat` / `opendepartmentid` / `groupid` / `appid` / `wikispaceid`。在实际使用里,给当前应用授权仍优先推荐 bot `open_id` + `openid`。 |
|
|
27
27
|
| `--member-kind` | 条件必填 | 仅当 `--member-type=wikispaceid` 时填写,映射到请求 body 的 `type` 字段。取值:`wiki_space_member` / `wiki_space_viewer` / `wiki_space_editor`。其他 member-type 禁止传此参数。 |
|
|
@@ -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`。
|
|
@@ -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` 不会递归读取子资源。
|
|
@@ -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
|
|