@amaster.ai/pi-lark 0.1.5 → 0.1.6
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/package.json +3 -3
- 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 +25 -7
- package/skills/lark-apps/references/lark-apps-access-scope-set.md +1 -1
- package/skills/lark-apps/references/lark-apps-automation.md +164 -0
- package/skills/lark-apps/references/lark-apps-db-execute.md +186 -2
- package/skills/lark-apps/references/lark-apps-db.md +3 -3
- package/skills/lark-apps/references/lark-apps-get.md +43 -0
- package/skills/lark-apps/references/lark-apps-html-publish.md +7 -2
- package/skills/lark-apps/references/lark-apps-init.md +1 -2
- package/skills/lark-apps/references/lark-apps-openapi-key.md +1 -1
- package/skills/lark-apps/references/lark-apps-release-create.md +3 -1
- package/skills/lark-apps/references/lark-apps-role.md +133 -0
- package/skills/lark-base/SKILL.md +7 -3
- package/skills/lark-base/references/dashboard-block-data-config.md +28 -2
- package/skills/lark-base/references/lark-base-cell-value.md +9 -4
- 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 +9 -7
- package/skills/lark-base/references/lark-base-field-create.md +4 -2
- package/skills/lark-base/references/lark-base-field-json.md +52 -15
- package/skills/lark-base/references/lark-base-field-update.md +4 -2
- package/skills/lark-base/references/lark-base-view-set-filter.md +3 -1
- package/skills/lark-calendar/SKILL.md +89 -31
- package/skills/lark-calendar/references/lark-calendar-create.md +8 -39
- package/skills/lark-calendar/references/lark-calendar-room-find.md +5 -9
- package/skills/lark-calendar/references/lark-calendar-rsvp.md +1 -5
- package/skills/lark-calendar/references/lark-calendar-schedule-clear-time.md +59 -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 +1 -5
- package/skills/lark-calendar/references/lark-calendar-update.md +2 -7
- package/skills/lark-doc/SKILL.md +1 -1
- package/skills/lark-doc/references/lark-doc-fetch.md +4 -2
- package/skills/lark-doc/references/lark-doc-mindnote.md +17 -2
- package/skills/lark-doc/references/lark-doc-whiteboard.md +4 -0
- package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +35 -0
- package/skills/lark-doc/references/lark-doc-xml.md +3 -2
- package/skills/lark-drive/SKILL.md +20 -8
- package/skills/lark-drive/references/lark-drive-comment-location.md +16 -4
- package/skills/lark-drive/references/lark-drive-comments-guide.md +16 -8
- package/skills/lark-drive/references/lark-drive-delete.md +35 -11
- 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 +125 -0
- package/skills/lark-drive/references/lark-drive-member-add.md +1 -1
- package/skills/lark-drive/references/lark-drive-move.md +5 -3
- package/skills/lark-drive/references/lark-drive-permission-guide.md +12 -0
- 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-status.md +12 -14
- package/skills/lark-drive/references/lark-drive-task-result.md +58 -5
- package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize.md +26 -20
- package/skills/lark-drive/references/lark-drive-workflow.md +2 -1
- package/skills/lark-event/SKILL.md +2 -1
- package/skills/lark-event/references/lark-event-approval.md +170 -0
- package/skills/lark-im/SKILL.md +5 -4
- 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-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 +29 -18
- package/skills/lark-slides/references/asset-planning.md +16 -5
- package/skills/lark-slides/references/examples.md +57 -227
- package/skills/lark-slides/references/iconpark.md +2 -2
- package/skills/lark-slides/references/lark-slides-create.md +21 -2
- package/skills/lark-slides/references/lark-slides-media-upload.md +0 -1
- package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +89 -0
- package/skills/lark-slides/references/lark-slides-replace-pages.md +1 -1
- package/skills/lark-slides/references/lark-slides-replace-slide.md +1 -1
- package/skills/lark-slides/references/lark-slides-screenshot.md +11 -8
- package/skills/lark-slides/references/lark-slides-whiteboard.md +31 -30
- package/skills/lark-slides/references/lark-slides-xml-get.md +100 -0
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +9 -7
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +4 -4
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +12 -10
- package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +14 -13
- package/skills/lark-slides/references/planning-layer.md +32 -2
- package/skills/lark-slides/references/slides_chart_demo.xml +1 -0
- package/skills/lark-slides/references/slides_xml_schema_definition.xml +8 -3
- package/skills/lark-slides/references/troubleshooting.md +7 -25
- package/skills/lark-slides/references/validation-checklist.md +18 -9
- package/skills/lark-slides/references/visual-planning.md +4 -3
- package/skills/lark-slides/references/xml-format-guide.md +65 -1
- package/skills/lark-slides/references/xml-schema-quick-ref.md +7 -3
- package/skills/lark-slides/scripts/xml_text_overlap_lint.py +907 -54
- package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +876 -5
- package/skills/lark-task/SKILL.md +1 -0
- package/skills/lark-task/references/lark-task-create.md +14 -1
- 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/references/lark-whiteboard-workflow.md +5 -2
- package/skills/lark-wiki/SKILL.md +7 -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-sheets/references/lark-sheets-core-operations.md +0 -103
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-create.md +0 -220
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# XML 扩展块补充说明
|
|
2
|
+
|
|
3
|
+
本文件用于补充说明 block XML 扩展能力。常用标签和通用规则见 [`lark-doc-xml.md`](lark-doc-xml.md);后续新增其他 block 说明时可继续追加到本文件。
|
|
4
|
+
|
|
5
|
+
## OKR block
|
|
6
|
+
|
|
7
|
+
OKR block 可用 XML 格式完整表达。创建前先参考 [`lark-okr`](../../lark-okr/SKILL.md) 确认可用周期;创建时只写 root-only `<okr cycle-id="..."/>` 挂载已有 OKR,不构造 Objective/KR/Progress 子树。
|
|
8
|
+
|
|
9
|
+
获取时,XML 结构示例如下:
|
|
10
|
+
|
|
11
|
+
```xml
|
|
12
|
+
<okr cycle-id="" cycle-name="CYCLE_NAME" user-name="USER_NAME">
|
|
13
|
+
<okr-objective objective-id="OBJECTIVE_ID" status="normal" percent="80" score="75">
|
|
14
|
+
<p>O 描述</p>
|
|
15
|
+
<okr-progress>
|
|
16
|
+
<p>O 进展</p>
|
|
17
|
+
<checkbox done="true">事项</checkbox>
|
|
18
|
+
<ul><li>列表项内可包含 <a href="https://example.com">链接</a></li></ul>
|
|
19
|
+
</okr-progress>
|
|
20
|
+
<okr-key-result key-result-id="KEY_RESULT_ID" status="risk" percent="60" score="80">
|
|
21
|
+
<p>KR 描述</p>
|
|
22
|
+
<okr-progress>
|
|
23
|
+
<p>KR 进展</p>
|
|
24
|
+
</okr-progress>
|
|
25
|
+
</okr-key-result>
|
|
26
|
+
</okr-objective>
|
|
27
|
+
</okr>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
- `cycle-id` 仅用于创建时挂载已有当前周期 OKR;`cycle-name`、`user-name` 只读。
|
|
31
|
+
- `objective-id`、`key-result-id` 为只读业务 ID,更新已有 OKR 时保持不变。
|
|
32
|
+
- `okr-objective` / `okr-key-result`
|
|
33
|
+
- 可更新 `status`、`percent`、`score`;`percent` / `score` 取值 0-100,`status` 取值 `unset`/`normal`/`risk`/`extended`。
|
|
34
|
+
- 不可更新 objective 和 key-result 内容描述。
|
|
35
|
+
- `okr-progress` 承载进展内容,支持更新。直接子节点支持 `<p>`、`<checkbox>`、`<grid>`、`<img>`、`<source>`、`<ol>`、`<ul>`、`<h1>` 到 `<h9>`。
|
|
@@ -41,12 +41,13 @@ p, h1-h9, ul, ol, li, table, thead, tbody, tr, th, td, blockquote, pre, code, hr
|
|
|
41
41
|
文档中可嵌入外部资源块(属于容器标签的特殊形式),需要额外语法创建:
|
|
42
42
|
|
|
43
43
|
- `<img>` — `<img href="https://..."/>` 上传网络图片
|
|
44
|
-
- `<whiteboard>` — 简单图由 SubAgent 直接插入 `<whiteboard type="svg">完整自包含 SVG</whiteboard
|
|
44
|
+
- `<whiteboard>` — 简单图由 SubAgent 直接插入 `<whiteboard type="svg">完整自包含 SVG</whiteboard>`;也可用本地文件简写 `<whiteboard type="svg" path="@diagram.svg"></whiteboard>`、`<whiteboard type="mermaid" path="@flow.mmd"></whiteboard>`、`<whiteboard type="plantuml" path="@sequence.puml"></whiteboard>`,CLI 会写入前展开为内联内容;复杂图使用 `<whiteboard type="blank"></whiteboard>` 先创建空白画板,再按 [`lark-doc-whiteboard.md`](lark-doc-whiteboard.md) 启动 SubAgent 调用 `lark-whiteboard` 写入;
|
|
45
45
|
- `<sheet>` — `<sheet type="blank"></sheet>` 空白;`<sheet sheet-id="SID" token="TOKEN"></sheet>` 复制已有
|
|
46
46
|
- `<task>` — `<task task-id="GUID"></task>`,必传 task-id(任务 guid)
|
|
47
47
|
- `<chat_card>` — `<chat_card chat-id="CHAT_ID"></chat_card>`,必传 chat-id
|
|
48
48
|
- `<sub-page-list>` — `<sub-page-list></sub-page-list>` 子页面列表块;仅 wiki 文档可插入
|
|
49
|
-
- bitable、base_ref、synced_reference、synced_source
|
|
49
|
+
- bitable、base_ref、synced_reference、synced_source — 不可创建,仅支持移动
|
|
50
|
+
- `<okr>` — 创建时仅支持 root-only `<okr cycle-id="..."/>` 挂载已有 OKR;完整结构与字段规则见 [`lark-doc-xml-extended-blocks.md`](lark-doc-xml-extended-blocks.md#okr-block)
|
|
50
51
|
|
|
51
52
|
# 四、块级复制与移动
|
|
52
53
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lark-drive
|
|
3
3
|
version: 1.0.0
|
|
4
|
-
description: "飞书云空间(云盘/云存储):管理 Drive
|
|
4
|
+
description: "飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。"
|
|
5
5
|
metadata:
|
|
6
6
|
requires:
|
|
7
7
|
bins: ["lark-cli"]
|
|
@@ -20,11 +20,17 @@ metadata:
|
|
|
20
20
|
|
|
21
21
|
## 快速决策
|
|
22
22
|
|
|
23
|
+
- 用户要把**已有 Wiki 节点移出知识库,放到 Drive 文件夹或“我的空间”根目录**:切到 `lark-wiki`,使用 `lark-cli wiki +move-to-drive`;不要把 Wiki token 直接交给 `drive +move`。这是会改变文档归属和权限继承的写操作,执行前确认源节点与目标位置。
|
|
23
24
|
- 用户要**复制文档 / 创建副本 / 另存为副本**时,使用 `lark-cli drive files copy`。先用 `lark-cli schema drive.files.copy --format json` 确认参数;如果来源是 wiki URL/token,先用 `lark-cli drive +inspect` 获取底层 `token` 和 `type`,不要把 wiki token 直接当 `file_token`。`params.file_token` 传源文档 token,`data.folder_token` 传目标文件夹 token,`data.name` 传副本名称,`data.type` 传源文件类型(如 `docx` / `sheet` / `bitable` / `slides`)。示例:`lark-cli drive files copy --params '{"file_token":"<DOC_TOKEN>"}' --data '{"folder_token":"<FOLDER_TOKEN>","name":"<COPY_NAME>","type":"docx"}'`。如返回 `confirmation_required`,按 `lark-shared` 高风险审批协议向用户确认后,在原命令末尾追加 `--yes` 重试。
|
|
24
|
-
-
|
|
25
|
-
-
|
|
25
|
+
- 用户要**识别飞书 / doubao 云空间 URL 的类型和 token**时,可以先按 URL 路径形态做轻量判断;当路径已明确指向 docx / sheet / bitable / slides / file / folder 等资源时,可直接提取对应 token/type。传入 wiki URL、需要识别标题或 canonical URL、URL/token 有歧义,或后续操作依赖底层真实资源时,再使用 `lark-cli drive +inspect --url '<url>'` 进行识别;具体用法、失败处理和边界见 [`references/lark-drive-inspect.md`](references/lark-drive-inspect.md)。
|
|
26
|
+
- 高风险写操作(删除、公开权限修改、owner 转移、版本删除/回滚、批量移动/覆盖/同步)必须同时满足三个条件才执行:目标已解析为该操作可直接使用的执行对象,执行细节已明确到可直接调用命令(例如删除的 file-token/type、公开权限修改的共享范围、owner 转移的目标 owner、版本删除/回滚的 version id、移动/覆盖/同步的目标位置和冲突策略),且用户在本轮明确确认执行这些具体目标和执行细节。用户只说“删除没用的文件”“开放/共享给大家”“改成开放”“覆盖/移动这些”只表示目标状态;先只读发现并列出候选、权限档位或执行方案,停止等待用户确认。
|
|
27
|
+
- 用户要**检查 / 治理文档权限、公开范围、链接分享、外部访问、复制下载权限、密级标签、owner 转移**,或要”权限风险报告、收紧权限、申请查看 / 编辑权限、转移 / 批量转移 owner”,必须先阅读 [`references/lark-drive-workflow.md`](references/lark-drive-workflow.md),再按其中 `Workflow Registry` 进入 [`permission_governance`](references/lark-drive-workflow-permission-governance.md) workflow。
|
|
28
|
+
- 用户要为指定飞书文档**设置 / 修改密级标签(secure label)**,或查询当前用户可用的密级标签,直接读取 [`references/lark-drive-secure-label.md`](references/lark-drive-secure-label.md);这是 Drive 文件治理能力。
|
|
29
|
+
- 用户要**整理云盘 / 文件夹 / 文档库 / 知识库 / 个人文档库**,或要“盘点目录结构、找出未归档/临时/重复/空目录、生成整理方案”,必须先阅读 [`references/lark-drive-workflow.md`](references/lark-drive-workflow.md),再按其中 `Workflow Registry` 进入 [`knowledge_organize`](references/lark-drive-workflow-knowledge-organize.md) workflow。默认只生成方案;创建目录、移动资源、申请权限都必须单独确认。
|
|
26
30
|
- 用户要**搜文档 / Wiki / 电子表格 / 多维表格 / 云空间(云盘/云存储)对象**,优先使用 `lark-cli drive +search`。自然语言里"最近我编辑过的"、"我创建的"(→ `--created-by-me`,原始创建者语义)、"我负责/owner 的"(→ `--mine`,owner 语义)、"最近一周我打开过的 xxx"、"某人 owner 的 docx" 等直接映射到扁平 flag,避免手写嵌套 JSON。
|
|
27
|
-
-
|
|
31
|
+
- 用户要**获取文档评论列表**时,优先使用 `lark-cli drive +list-comments --url '<url>'`,不要优先手写 `drive file.comments list`;支持妙搭 apps 的 `/page/<token>` URL;具体使用方式先阅读 [`references/lark-drive-list-comments.md`](references/lark-drive-list-comments.md)。
|
|
32
|
+
- 妙搭 apps 评论场景:除新增全文/局部评论不支持外,评论列表、批量查询、解决/恢复、回复创建/读取/更新/删除、reaction 添加/删除等评论管理能力已支持;使用原生命令时文档类型传 `apps`(`file_type=apps`),裸 token 调 shortcut 时传 `--type apps`。
|
|
33
|
+
- 用户要**根据文档评论定位正文位置**,例如 根据评论 review 文档、根据评论内容回看文档、区分多处相同引用文本时,对于 docx 类型(`file_type=docx`)的文档支持通过 `drive +list-comments --need-relation` 返回评论位置,其他类型会静默忽略该参数;具体用法需要先阅读 [`references/lark-drive-comment-location.md`](references/lark-drive-comment-location.md) 了解。
|
|
28
34
|
- 用户给出 doubao.com 的云空间资源 URL/token,或明确提到豆包里的 file/folder/docx/sheet/bitable/wiki 资源时,仍按资源类型、URL 路径和 token 路由到本 skill;不要因为域名不是飞书而回退到 WebFetch。
|
|
29
35
|
- 用户要把本地 `.xlsx` / `.csv` / `.base` 导入成 Base / 多维表格 / bitable,第一步必须使用 `lark-cli drive +import --type bitable`。
|
|
30
36
|
- 用户要把本地 `.md` / `.docx` / `.doc` / `.txt` / `.html` 导入成在线文档,使用 `lark-cli drive +import --type docx`。
|
|
@@ -37,6 +43,7 @@ metadata:
|
|
|
37
43
|
- 用户要在云空间(云盘/云存储)里新建文件夹,优先使用 `lark-cli drive +create-folder`。
|
|
38
44
|
- 用户要查看某个文件有哪些可下载预览格式,或想下载 PDF / HTML / 文本 / 图片等预览产物,使用 `lark-cli drive +preview`。
|
|
39
45
|
- 用户要获取某个文件的封面图,优先使用 `lark-cli drive +cover`;先 `--list-only` 看规格,再选 `--spec` 下载。
|
|
46
|
+
- 用户要导出云文档时,优先使用 `lark-cli drive +export --url '<文档 URL>' --file-extension <格式>`;详细参数、Wiki token 和错误码处理见 [`references/lark-drive-export.md`](references/lark-drive-export.md)。
|
|
40
47
|
- 用户要把本地文件上传到知识库 / 文档库里的某个 wiki 节点下时,仍然使用 `lark-cli drive +upload --wiki-token <wiki_token>`;不要误切到 `wiki` 域命令。
|
|
41
48
|
- `lark-base` 只负责导入完成后的 Base 内部操作(表、字段、记录、视图),不要在“本地文件 -> Base”这一步提前切到 `lark-base`。
|
|
42
49
|
- 用户给的是 wiki URL / token,且后续还没明确底层资源类型时,先用 `lark-cli drive +inspect` 解包;`+inspect` 失败后不要自动切到别的写接口继续尝试,先按错误提示处理权限、scope 或链接问题。
|
|
@@ -59,6 +66,7 @@ metadata:
|
|
|
59
66
|
| `/doc/` | `https://example.larksuite.com/doc/doccnxxxxxxxxx` | `file_token` | URL 路径中的 token 直接作为 `file_token` 使用 |
|
|
60
67
|
| `/wiki/` | `https://example.larksuite.com/wiki/wikcnxxxxxxxxx` | `wiki_token` | 不能直接当底层 `file_token`;优先用 `drive +inspect` 解包获取 `obj_token` |
|
|
61
68
|
| `/sheets/` | `https://example.larksuite.com/sheets/shtcnxxxxxxxxx` | `file_token` | URL 路径中的 token 直接作为 `file_token` 使用 |
|
|
69
|
+
| `/page/` | `https://example.feishu.cn/page/N1BWmMrqndT5ZcamAIBcnvDLnOf/` | apps token | 妙搭 apps 类型;用于评论列表时直接作为 `file_token`,`file_type=apps` |
|
|
62
70
|
| `/drive/folder/` | `https://example.larksuite.com/drive/folder/fldcnxxxx` | `folder_token` | URL 路径中的 token 作为文件夹 token 使用 |
|
|
63
71
|
|
|
64
72
|
### Wiki 链接特殊处理
|
|
@@ -78,13 +86,14 @@ lark-cli drive +inspect --url 'https://xxx.feishu.cn/wiki/wikcnXXX'
|
|
|
78
86
|
| 添加全文评论 | `file_token` | 不传 `--block-id` 时,`drive +add-comment` 默认创建全文评论;支持 `docx`、旧版 `doc` URL、白名单扩展名的 Drive file,以及最终解析为 `doc`/`docx`/`file` 的 wiki URL |
|
|
79
87
|
| 下载文件 | `file_token` | 从文件 URL 中直接提取 |
|
|
80
88
|
| 上传文件 | `folder_token` / `wiki_node_token` | 目标位置的 token |
|
|
81
|
-
| 列出文档评论 | `file_token` |
|
|
89
|
+
| 列出文档评论 | URL 或 `file_token` | 优先使用 `drive +list-comments --url '<url>'`;wiki URL/token 会自动解析到底层真实 token/type;妙搭 apps URL 使用 `/page/<token>` |
|
|
82
90
|
|
|
83
91
|
### 评论能力入口
|
|
84
92
|
|
|
85
93
|
- 添加评论优先使用 [`+add-comment`](references/lark-drive-add-comment.md):review / 审阅 / 校对场景默认尽量创建局部评论,不要把多个可定位问题合并为一条全文评论。
|
|
94
|
+
- 获取评论列表优先使用 [`+list-comments`](references/lark-drive-list-comments.md):推荐传 `--url`,支持 wiki 自动解包;参数细节见 reference。
|
|
86
95
|
- 评论查询、统计、排序、回复限制,先读 [`lark-drive-comments-guide.md`](references/lark-drive-comments-guide.md)。
|
|
87
|
-
- 需要根据评论定位正文位置时,先确认目标是 `file_type=docx`,再读 [`lark-drive-comment-location.md`](references/lark-drive-comment-location.md)
|
|
96
|
+
- 需要根据评论定位正文位置时,先确认目标是 `file_type=docx`,再读 [`lark-drive-comment-location.md`](references/lark-drive-comment-location.md),并使用 `drive +list-comments --need-relation`;其他文档类型会静默忽略该参数。
|
|
88
97
|
- reaction / 表情相关操作先读 [`lark-drive-reactions.md`](references/lark-drive-reactions.md);只有用户明确需要 reaction 信息时才带 `need_reaction=true`。
|
|
89
98
|
- `drive +add-comment` 的 `--content` 需要传 `reply_elements` JSON 数组字符串,例如 `--content '[{"type":"text","text":"正文"}]'`。
|
|
90
99
|
- `slides` 评论要求显式传 `--block-id <slide-block-type>!<xml-id>`;CLI 会将其拆分后写入 `anchor.block_id` 和 `anchor.slide_block_type`。其中 `<xml-id>` 是 PPT XML 协议中的元素 `id`;不支持 `--selection-with-ellipsis` 和 `--full-comment`。
|
|
@@ -102,7 +111,7 @@ lark-cli drive +inspect --url 'https://xxx.feishu.cn/wiki/wikcnXXX'
|
|
|
102
111
|
|----------|------|----------|
|
|
103
112
|
| `not exist` | 使用了错误的 token | 检查 token 类型,wiki 链接必须先查询获取 `obj_token` |
|
|
104
113
|
| `permission denied` | 没有相关操作权限 | 引导用户检查当前身份对文档/文件是否有相应操作权限;如果需要,可以授予相应权限 |
|
|
105
|
-
| `invalid file_type` | file_type 参数错误 | 根据 `obj_type` 传入正确的 file_type(docx/doc/sheet/slides/bitable) |
|
|
114
|
+
| `invalid file_type` | file_type 参数错误 | 根据 `obj_type` 传入正确的 file_type(docx/doc/sheet/slides/bitable/apps) |
|
|
106
115
|
| `232140101` / `232140100` / `233523001`(常见于 `drive +import` 的 `job_error_msg`) | 同一位置下存在并发导入 / 创建操作 | 批量导入到同一文件夹、根目录或同一 `--target-token` 时改为串行执行;每个失败项每次重试前等待几秒,总共最多重试 3 次,仍失败就停止并报告冲突 |
|
|
107
116
|
|
|
108
117
|
### 权限能力入口
|
|
@@ -137,6 +146,7 @@ Shortcut 是对常用操作的高级封装(`lark-cli drive +<verb> [flags]`)
|
|
|
137
146
|
| [`+push`](references/lark-drive-push.md) | 将本地目录推送到 Drive 文件夹,支持 skip / smart / overwrite 与确认后删除远端。 |
|
|
138
147
|
| [`+create-shortcut`](references/lark-drive-create-shortcut.md) | 在另一个文件夹里创建现有 Drive 文件的快捷方式。 |
|
|
139
148
|
| [`+add-comment`](references/lark-drive-add-comment.md) | 给 doc/docx/file/sheet/slides/base(bitable) 添加评论,也支持解析到这些类型的 wiki URL;评论统计、回复和 reaction 细则见 [`lark-drive-comments-guide.md`](references/lark-drive-comments-guide.md)。 |
|
|
149
|
+
| [`+list-comments`](references/lark-drive-list-comments.md) | 获取 doc/docx/sheet/file/slides/base(bitable)/apps 评论列表;优先传 URL,支持 wiki 自动解包和妙搭 `/page/<token>` URL。 |
|
|
140
150
|
| [`+export`](references/lark-drive-export.md) | 将 doc/docx/sheet/bitable/slides 导出为本地文件。 |
|
|
141
151
|
| [`+export-download`](references/lark-drive-export-download.md) | 根据导出产物的 file_token 下载文件。 |
|
|
142
152
|
| [`+import`](references/lark-drive-import.md) | 将本地文件导入为飞书在线文档、表格、多维表格或幻灯片。 |
|
|
@@ -162,7 +172,7 @@ lark-cli drive <resource> <method> [flags] # 调用 API
|
|
|
162
172
|
|
|
163
173
|
> **重要**:使用原生 API 时,必须先运行 `schema` 查看 `--data` / `--params` 参数结构,不要猜测字段格式。
|
|
164
174
|
>
|
|
165
|
-
> **高频原生命令:** 读取 Drive 文件夹清单时使用 `drive files list
|
|
175
|
+
> **高频原生命令:** 读取 Drive 文件夹清单时使用 `drive files list`,使用前先读 [`references/lark-drive-files-list.md`](references/lark-drive-files-list.md),按模板通过 `--params` 传参并手动处理分页;不要把 `--page-all` 输出直接交给 JSON 解析脚本。
|
|
166
176
|
|
|
167
177
|
### files
|
|
168
178
|
|
|
@@ -204,10 +214,12 @@ lark-cli drive <resource> <method> [flags] # 调用 API
|
|
|
204
214
|
### file.statistics
|
|
205
215
|
|
|
206
216
|
- `get` — 获取文件统计信息
|
|
217
|
+
- 获取 docx / 文件统计信息时,建议优先使用 typed flags:`lark-cli drive file.statistics get --file-token <token> --file-type <type> --format json`;`--params` JSON 也支持,适合批量拼装或 raw 参数场景。
|
|
207
218
|
|
|
208
219
|
### file.view_records
|
|
209
220
|
|
|
210
221
|
- `list` — 获取文档的访问者记录
|
|
222
|
+
- 查看 docx 最近访问记录、返回 open_id、最多 N 条时,建议优先使用 typed flags:`lark-cli drive file.view_records list --file-token <docx_token> --file-type docx --page-size <N> --viewer-id-type open_id --format json`;`--params` JSON 也支持,适合批量拼装、分页续跑或 raw 参数场景。
|
|
211
223
|
|
|
212
224
|
### file.comment.reply.reactions
|
|
213
225
|
|
|
@@ -1,15 +1,27 @@
|
|
|
1
1
|
# 文档评论定位字段
|
|
2
2
|
|
|
3
|
-
当用户需要根据评论定位文档正文位置、对文档做 review、区分多处相同引用文本,或把评论落点映射到 `docs +fetch --detail with-ids`
|
|
3
|
+
当用户需要根据评论定位文档正文位置、对文档做 review、区分多处相同引用文本,或把评论落点映射到 `docs +fetch --detail with-ids` 的内容时,优先使用 `drive +list-comments --need-relation` 查询 docx 评论位置。
|
|
4
4
|
|
|
5
5
|
## 适用范围
|
|
6
6
|
|
|
7
7
|
- 当前只有 `file_type=docx` 支持通过 `need_relation=true` 查询评论的位置,并返回可用于定位正文 block 的 `relation`、`parent_type`、`parent_token` 等字段。
|
|
8
|
-
-
|
|
8
|
+
- `drive +list-comments` 会在目标不是 docx 时静默忽略 `--need-relation`,避免把无效参数传给 OpenAPI。遇到 sheet、bitable、slides、普通文件等类型的评论时,不要承诺可以用 `need_relation` 精确定位正文位置,应退回普通评论字段、对应资源能力下钻或人工确认。
|
|
9
9
|
|
|
10
10
|
## 调用方式
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
分页列出评论时,优先传 URL;Wiki URL / Wiki token 会自动解析到底层真实 token/type:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
lark-cli drive +list-comments --url '<docx_or_wiki_url>' --need-relation
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
如果只有 Wiki token,显式传 `--type wiki`:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
lark-cli drive +list-comments --token '<wiki_token>' --type wiki --need-relation
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
只有在需要未被 shortcut 暴露的底层参数时,才直接调用 raw OpenAPI。此时把 `need_relation` 放在 query params:
|
|
13
25
|
|
|
14
26
|
```bash
|
|
15
27
|
lark-cli drive file.comments list \
|
|
@@ -126,7 +138,7 @@ lark-cli docs +fetch --doc '<doc_token_or_url>' --detail with-ids
|
|
|
126
138
|
## 定位流程
|
|
127
139
|
|
|
128
140
|
1. 确认目标是 `file_type=docx`;只有 docx 文档支持通过 `need_relation` 查询评论位置。
|
|
129
|
-
2. 用 `drive
|
|
141
|
+
2. 用 `drive +list-comments --need-relation` 获取评论;已知评论 ID 且需要批量查询时,可用 `drive file.comments batch_query` 并带 `need_relation=true`。raw `drive file.comments list` 仅作为低层参数兜底。
|
|
130
142
|
3. 用 `docs +fetch --detail with-ids` 获取文档内容。
|
|
131
143
|
4. 对每条评论先看 `relation`:
|
|
132
144
|
- 如果存在 `relation.relation`,解析这个 JSON 字符串。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Drive 评论查询、统计与回复指南
|
|
2
2
|
|
|
3
|
-
> 前置条件:先阅读 [`../SKILL.md`](../SKILL.md) 的“评论能力入口”,添加评论参数细节见 [`lark-drive-add-comment.md`](lark-drive-add-comment.md),reaction 见 [`lark-drive-reactions.md`](lark-drive-reactions.md)。
|
|
3
|
+
> 前置条件:先阅读 [`../SKILL.md`](../SKILL.md) 的“评论能力入口”,添加评论参数细节见 [`lark-drive-add-comment.md`](lark-drive-add-comment.md),获取评论列表优先使用 [`lark-drive-list-comments.md`](lark-drive-list-comments.md),reaction 见 [`lark-drive-reactions.md`](lark-drive-reactions.md)。
|
|
4
4
|
|
|
5
5
|
## 评论模式
|
|
6
6
|
|
|
@@ -16,14 +16,21 @@
|
|
|
16
16
|
|
|
17
17
|
## 查询默认口径
|
|
18
18
|
|
|
19
|
-
`drive file.comments list
|
|
19
|
+
优先使用 `drive +list-comments`,不要优先手写 `drive file.comments list`。shortcut 默认 `--solved-status false`,即仅查询未解决评论。即使用户说“所有评论”“全部评论”“把评论都列出来”,只要没有明确提到包含已解决评论,仍然按默认口径查询未解决评论;仅当用户明确要求包含已解决评论时,才传 `--solved-status all`。只查已解决评论时传 `--solved-status true`。
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
22
|
# 默认查询:仅未解决评论
|
|
23
|
-
lark-cli drive
|
|
23
|
+
lark-cli drive +list-comments --url '<DOC_URL>'
|
|
24
|
+
|
|
25
|
+
# 全部评论:包含已解决和未解决
|
|
26
|
+
lark-cli drive +list-comments --url '<DOC_URL>' --solved-status all
|
|
27
|
+
|
|
28
|
+
# 已解决评论
|
|
29
|
+
lark-cli drive +list-comments --url '<DOC_URL>' --solved-status true
|
|
30
|
+
|
|
31
|
+
# 裸 wiki token
|
|
32
|
+
lark-cli drive +list-comments --token '<WIKI_TOKEN>' --type wiki
|
|
24
33
|
|
|
25
|
-
# 包含已解决评论:仅当用户明确要求时使用
|
|
26
|
-
lark-cli drive file.comments list --params '{"file_token":"xxx","file_type":"docx"}'
|
|
27
34
|
```
|
|
28
35
|
|
|
29
36
|
## 评论卡片与统计
|
|
@@ -53,12 +60,13 @@ lark-cli drive file.comments list --params '{"file_token":"xxx","file_type":"doc
|
|
|
53
60
|
## batch_query 与 list
|
|
54
61
|
|
|
55
62
|
- `drive file.comments batch_query` 用于已知评论 ID 后的批量查询,需要传入具体评论 ID 列表。
|
|
56
|
-
- `drive
|
|
63
|
+
- `drive +list-comments` 用于分页获取评论列表;如果要统计全量评论数、遍历包含已解决评论在内的所有评论、获取全量最新评论或最后 N 条评论,请先传 `--solved-status all` 并拉完所有分页。它会处理 URL、wiki token 和 token/type 匹配问题。
|
|
64
|
+
- `drive file.comments list` 是原生命令。需要 shortcut 未暴露的字段时才使用。
|
|
57
65
|
|
|
58
66
|
## 评论定位字段
|
|
59
67
|
|
|
60
|
-
- 需要根据评论定位到文档正文位置时(例如根据评论 review 文档、区分多处相同引用文本、把评论落点映射到 `docs +fetch` 的 block),先确认目标是 `file_type=docx`,再阅读 [`lark-drive-comment-location.md`](lark-drive-comment-location.md)
|
|
61
|
-
-
|
|
68
|
+
- 需要根据评论定位到文档正文位置时(例如根据评论 review 文档、区分多处相同引用文本、把评论落点映射到 `docs +fetch` 的 block),先确认目标是 `file_type=docx`,再阅读 [`lark-drive-comment-location.md`](lark-drive-comment-location.md),并使用 `drive +list-comments --need-relation`。
|
|
69
|
+
- `--need-relation` 仅 docx 生效;其他文档类型会静默忽略。
|
|
62
70
|
|
|
63
71
|
## 原生 API
|
|
64
72
|
|
|
@@ -7,17 +7,33 @@
|
|
|
7
7
|
|
|
8
8
|
> [!CAUTION]
|
|
9
9
|
> 这是**高风险写操作**。CLI 层要求显式传 `--yes`;如果用户已经明确要求删除且目标明确,直接执行并带上 `--yes`。
|
|
10
|
+
> “目标明确”表示用户给出了可解析为 `file-token` + `type` 的具体 URL/token,或对你刚列出的可解析资源列表逐项/整批确认删除。按“没用的”“临时的”“疑似重复的”“全部旧文件”等描述搜索出来的候选属于待确认目标;这类请求先列候选、说明筛选依据和影响范围,然后停止等待确认。
|
|
11
|
+
|
|
12
|
+
## 删除前门槛
|
|
13
|
+
|
|
14
|
+
执行 `drive +delete --yes` 前同时满足:
|
|
15
|
+
|
|
16
|
+
| 条件 | 可执行信号 |
|
|
17
|
+
|------|------------|
|
|
18
|
+
| 具体目标 | 单个可解析为 `file-token` + `type` 的 URL/token,或用户确认过且可解析的资源列表 |
|
|
19
|
+
| 执行确认 | 用户在本轮明确说确认删除这些具体目标 |
|
|
20
|
+
|
|
21
|
+
若缺少任一条件,使用 `drive +search`、`drive +inspect` 或只读 API 收集候选并回复待确认清单;启发式规则(打开时间、标题模式、owner、文件类型等)只能作为候选筛选依据,不能升级为删除确认。执行 `drive +delete` 时必须使用解析后的 `--file-token` 和 `--type`。
|
|
22
|
+
|
|
23
|
+
## 批量删除建议
|
|
24
|
+
|
|
25
|
+
批量删除文件或文件夹时,建议逐个串行处理,不要并发执行删除命令,并发删除可能触发服务端加锁或冲突,导致部分删除失败;这类失败通常需要等待后对单个失败项重试。
|
|
10
26
|
|
|
11
27
|
## 命令
|
|
12
28
|
|
|
13
29
|
```bash
|
|
14
|
-
#
|
|
30
|
+
# 删除普通文件(异步操作,会自动有限轮询任务状态)
|
|
15
31
|
lark-cli drive +delete \
|
|
16
32
|
--file-token <FILE_TOKEN> \
|
|
17
33
|
--type file \
|
|
18
34
|
--yes
|
|
19
35
|
|
|
20
|
-
#
|
|
36
|
+
# 删除在线文档(异步操作,会自动有限轮询任务状态)
|
|
21
37
|
lark-cli drive +delete \
|
|
22
38
|
--file-token <DOCX_TOKEN> \
|
|
23
39
|
--type docx \
|
|
@@ -40,22 +56,30 @@ lark-cli drive +delete \
|
|
|
40
56
|
|
|
41
57
|
## 行为说明
|
|
42
58
|
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
59
|
+
- **删除可能需要等待**:删除操作在服务端可能异步处理,shortcut 会在本次命令内自动做有限次数的结果轮询
|
|
60
|
+
- **已完成则停止**:如果返回 `deleted=true`,且没有返回 `next_command`,说明删除已经完成,不需要再调用 `drive +task_result`
|
|
61
|
+
- **未完成再续查**:如果超过内置轮询次数仍未完成,会返回 `ready=false`、`timed_out=true`、`task_id` 和 `next_command`;此时按 `next_command` 继续查询删除结果
|
|
62
|
+
- **task_id 不是成功条件**:`task_id` 只是续查凭据。没有 `task_id` 但返回 `deleted=true` 时,也表示删除已完成
|
|
63
|
+
- **失败处理**:如果返回 `failed=true` 或 `status=fail`,按错误信息和 `task_id` 报告删除失败;不要重复删除同一资源
|
|
64
|
+
|
|
65
|
+
## 常见错误处理
|
|
66
|
+
|
|
67
|
+
| 错误码 | 含义 | 建议处理 |
|
|
68
|
+
|--------|------|----------|
|
|
69
|
+
| `1061007` | 文件已删除 | 视为目标已不可用,无需重试删除 |
|
|
70
|
+
| `99991400` | 命中接口限频 | 等待一段时间后重试;批量删除时保持串行并降低频率 |
|
|
71
|
+
| `99991679` | 缺失 scope | 按错误里的 `missing_scopes`、`hint` 申请/授权所需 scope 后重试 |
|
|
48
72
|
|
|
49
73
|
## 推荐续跑方式
|
|
50
74
|
|
|
51
75
|
```bash
|
|
52
|
-
#
|
|
76
|
+
# 第一步:先直接删除资源
|
|
53
77
|
lark-cli drive +delete \
|
|
54
|
-
--file-token <
|
|
55
|
-
--type
|
|
78
|
+
--file-token <FILE_OR_FOLDER_TOKEN> \
|
|
79
|
+
--type <TYPE> \
|
|
56
80
|
--yes
|
|
57
81
|
|
|
58
|
-
#
|
|
82
|
+
# 只有返回 ready=false / timed_out=true 或 next_command 时,才需要继续查
|
|
59
83
|
lark-cli drive +task_result \
|
|
60
84
|
--scenario task_check \
|
|
61
85
|
--task-id <TASK_ID>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
5
5
|
|
|
6
|
-
把 `doc` / `docx` / `sheet` / `bitable` / `slides
|
|
6
|
+
把 `doc` / `docx` / `sheet` / `bitable` / `slides`(也支持 Wiki URL / Wiki node token 自动解包)导出到本地文件。这个 shortcut 内置有限轮询:
|
|
7
7
|
|
|
8
8
|
- 如果导出任务在轮询窗口内完成,会直接下载到本地目录
|
|
9
9
|
- 如果轮询结束仍未完成,会返回 `ticket`、`ready=false`、`timed_out=true` 和 `next_command`
|
|
@@ -13,6 +13,22 @@
|
|
|
13
13
|
## 命令
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
+
# 推荐:直接传 URL,CLI 自动解析类型和 token
|
|
17
|
+
lark-cli drive +export \
|
|
18
|
+
--url "https://example.feishu.cn/docx/<DOCX_TOKEN>" \
|
|
19
|
+
--file-extension pdf
|
|
20
|
+
|
|
21
|
+
# Wiki URL 也推荐直接传,CLI 会先解析到底层 obj_token/obj_type
|
|
22
|
+
lark-cli drive +export \
|
|
23
|
+
--url "https://example.feishu.cn/wiki/<WIKI_NODE_TOKEN>" \
|
|
24
|
+
--file-extension pdf
|
|
25
|
+
|
|
26
|
+
# 只有裸 Wiki node token 时,显式传 --doc-type wiki,让 CLI 先解析到底层文档类型
|
|
27
|
+
lark-cli drive +export \
|
|
28
|
+
--token "<WIKI_NODE_TOKEN>" \
|
|
29
|
+
--doc-type wiki \
|
|
30
|
+
--file-extension pdf
|
|
31
|
+
|
|
16
32
|
# 导出新版文档为 pdf,默认保存到当前目录
|
|
17
33
|
lark-cli drive +export \
|
|
18
34
|
--token "<DOCX_TOKEN>" \
|
|
@@ -96,8 +112,9 @@ lark-cli drive +export \
|
|
|
96
112
|
|
|
97
113
|
| 参数 | 必填 | 说明 |
|
|
98
114
|
|------|------|------|
|
|
99
|
-
| `--
|
|
100
|
-
| `--
|
|
115
|
+
| `--url` | 与 `--token` 二选一 | 源文档 URL,推荐优先使用;CLI 自动解析类型和 token,Wiki URL 会解析到底层 `obj_token/obj_type` |
|
|
116
|
+
| `--token` | 与 `--url` 二选一 | 源文档裸 token;裸 token 必须同时传 `--doc-type`。裸 Wiki node token 必须传 `--doc-type wiki`,CLI 会先解析到底层 `obj_token/obj_type` |
|
|
117
|
+
| `--doc-type` | 条件必填 | 源文档类型:`doc` / `docx` / `sheet` / `bitable` / `slides` / `wiki`;仅当使用裸 `--token` 时必填,使用 `--url` 时自动推断。`wiki` 只用于裸 Wiki node token,解析后会按真实底层类型发起导出 |
|
|
101
118
|
| `--file-extension` | 是 | 导出格式:`docx` / `pdf` / `xlsx` / `csv` / `markdown` / `base` / `pptx` |
|
|
102
119
|
| `--sub-id` | 条件必填 | 当 `sheet` / `bitable` 导出为 `csv` 时必填 |
|
|
103
120
|
| `--only-schema` | 否 | 仅当 `--doc-type bitable --file-extension base` 时可用;只导出多维表格结构,不导出记录数据 |
|
|
@@ -107,22 +124,34 @@ lark-cli drive +export \
|
|
|
107
124
|
|
|
108
125
|
## 关键约束
|
|
109
126
|
|
|
110
|
-
-
|
|
111
|
-
- `
|
|
112
|
-
- `--
|
|
113
|
-
- `
|
|
127
|
+
- 推荐优先传 `--url`,不要从 URL 手工拆 token 和 type;尤其是 Wiki URL,CLI 会自动解包到底层资源
|
|
128
|
+
- `--url` 和 `--token` 互斥
|
|
129
|
+
- 裸 `--token` 必须传 `--doc-type`;裸 Wiki node token 使用 `--doc-type wiki`
|
|
130
|
+
- `doc` 支持导出为 `docx` / `pdf`
|
|
131
|
+
- `docx` 支持导出为 `docx` / `pdf` / `markdown`
|
|
132
|
+
- `sheet` 支持导出为 `xlsx` / `csv`
|
|
133
|
+
- `bitable` 支持导出为 `xlsx` / `csv` / `base`
|
|
114
134
|
- `slides` 支持导出为 `pptx` / `pdf`
|
|
115
|
-
- `
|
|
135
|
+
- `csv` 只支持 `sheet` / `bitable`,且必须带 `--sub-id`
|
|
136
|
+
- `--only-schema` 只支持 `bitable` 导出为 `.base`,用于仅导出表结构
|
|
137
|
+
- 如果格式不匹配,CLI 会返回 typed validation error,并在 `hint` 中给出可重试的 `--file-extension` 建议;例如 `docx + csv` 会提示改用 `docx/pdf/markdown`,或改传 sheet/bitable URL
|
|
116
138
|
- shortcut 内部固定有限轮询:最多 10 次,每次间隔 5 秒
|
|
117
139
|
- 轮询超时不是失败;会返回 `ticket`、`timed_out=true` 和 `next_command`,供后续继续查询
|
|
118
140
|
|
|
141
|
+
## 错误码处理
|
|
142
|
+
|
|
143
|
+
| 错误码 | 含义 | 处理方式 |
|
|
144
|
+
|--------|------|----------|
|
|
145
|
+
| `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
|
+
| `1069902` | 没有当前导出任务所需权限 | 不要直接重试同一命令;先确认当前 `--as` 身份是否能访问该文档、是否有下载/导出权限,以及文档是否受分享、密级或租户策略限制。需要补权限时,让文档 owner 或管理员授权后再执行 |
|
|
147
|
+
| `99991679` | 缺少 OpenAPI scope | 按错误 envelope 中的 `missing_scopes` / `required_scope` / `hint` 补齐授权;常见方式是重新执行 `lark-cli auth login --scope "<缺失 scope>"`。补 scope 前不要反复重试导出命令 |
|
|
148
|
+
|
|
119
149
|
## 推荐续跑方式
|
|
120
150
|
|
|
121
151
|
```bash
|
|
122
152
|
# 第一步:先尝试直接导出
|
|
123
153
|
lark-cli drive +export \
|
|
124
|
-
--
|
|
125
|
-
--doc-type docx \
|
|
154
|
+
--url "<DOCX_URL>" \
|
|
126
155
|
--file-extension pdf \
|
|
127
156
|
--file-name "weekly-report.pdf"
|
|
128
157
|
|
|
@@ -41,12 +41,37 @@ lark-cli drive files list \
|
|
|
41
41
|
|
|
42
42
|
也可以省略 `folder_token` 字段来请求根目录,但在 Agent 编排中建议显式传空字符串,避免把“忘记传参数”和“确认请求根目录”混在一起。
|
|
43
43
|
|
|
44
|
+
## 按时间排序
|
|
45
|
+
|
|
46
|
+
默认不要传 `order_by` / `direction`;服务端会按默认顺序返回。只有用户明确要求按创建时间或编辑时间排序时,才使用服务端排序参数。
|
|
47
|
+
|
|
48
|
+
按创建时间升序列出当前文件夹直接子项:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
lark-cli drive files list \
|
|
52
|
+
--params '{"folder_token":"<folder_token>","order_by":"CreatedTime","direction":"ASC","page_size":200}' \
|
|
53
|
+
--format json
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
按编辑时间降序列出当前文件夹直接子项:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
lark-cli drive files list \
|
|
60
|
+
--params '{"folder_token":"<folder_token>","order_by":"EditedTime","direction":"DESC","page_size":200}' \
|
|
61
|
+
--format json
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
以上示例返回排序后的当前页;如果返回 `has_more=true`,保持相同 `folder_token` / `order_by` / `direction` / `page_size`,把 `next_page_token` 放入 `page_token` 继续翻页。
|
|
65
|
+
|
|
44
66
|
## 参数规则
|
|
45
67
|
|
|
46
68
|
1. `folder_token` 必须放在 `--params` JSON 里;不要使用不存在的 `--folder-token` flag。
|
|
47
69
|
2. `page_token` 必须放在 `--params` JSON 里;不要依赖 shell 变量拼接不完整的 JSON。
|
|
48
|
-
3. `
|
|
49
|
-
4.
|
|
70
|
+
3. 默认不要传 `order_by` / `direction`;只有用户明确要求按创建时间 / 编辑时间排序时才使用服务端排序参数。
|
|
71
|
+
4. 排序参数映射:创建时间 -> `order_by:"CreatedTime"`;编辑时间 / 修改时间 -> `order_by:"EditedTime"`;升序 -> `direction:"ASC"`;降序 -> `direction:"DESC"`。不要省略排序参数后再用 Python / shell 客户端排序替代。
|
|
72
|
+
5. 排序查询建议带 `page_size:200` 减少翻页;只有用户要求完整分页、递归盘点、大目录全量导出,或当前页返回 `has_more=true` 后继续翻页时,才加入 `page_token`。
|
|
73
|
+
6. `page_size` 在分页、递归盘点或全量导出时建议显式设置为 `200`。如果服务端或环境返回参数错误,再降级到服务端允许的值,并记录降级原因。
|
|
74
|
+
7. 调用前如果不确定字段结构,先运行 `lark-cli schema drive.files.list` 查看 `--params` 结构。
|
|
50
75
|
|
|
51
76
|
## 返回结构与解析
|
|
52
77
|
|
|
@@ -47,4 +47,6 @@ JSON 输出包含以下字段:
|
|
|
47
47
|
- `--url` 为必填参数
|
|
48
48
|
- 当 `--url` 是 bare token(非完整 URL)时,`--type` 也是必填的
|
|
49
49
|
- wiki URL 会自动调用 `get_node` API 解包,输出中 `type` 和 `token` 是底层文档的类型和 token
|
|
50
|
+
- `+inspect` 只用于识别/消歧;如果任务已能通过 URL 路径形态完成路由判断,不必把它作为所有 Drive 操作的通用前置步骤
|
|
51
|
+
- `+inspect` 失败后不要自动切到写接口继续尝试,先按错误提示处理权限、scope 或链接问题
|
|
50
52
|
- 支持 `--dry-run` 查看将调用的 API 步骤
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# drive +list-comments
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和权限处理。
|
|
4
|
+
|
|
5
|
+
列出 doc/docx/sheet/file/slides/base(bitable)/apps 的评论卡片。优先传用户给出的完整 URL,shortcut 会自动识别类型;apps 为妙搭类型,支持 `/page/<token>` URL;如果传 wiki URL 或 `--token <wiki_token> --type wiki`,会先解析到真实文档。
|
|
6
|
+
|
|
7
|
+
## 重要默认口径
|
|
8
|
+
|
|
9
|
+
- 默认只查未解决评论,即不额外传 `--solved-status` 或显式传 `--solved-status false`。即使用户说“所有评论”“全部评论”“把评论都列出来”,只要没有明确提到包含已解决评论,仍然按默认口径查询未解决评论。
|
|
10
|
+
- 仅当用户明确要求“包含已解决评论”“已解决和未解决都要”“全部历史评论”这类语义时,才传 `--solved-status all`。
|
|
11
|
+
- 是否还有下一页以输出里的 `has_more` 为准;`page_token` 只作为 `has_more=true` 时续跑下一页的游标。
|
|
12
|
+
|
|
13
|
+
## 命令
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# 推荐:直接传用户给出的完整 URL。默认只查未解决评论。
|
|
17
|
+
lark-cli drive +list-comments \
|
|
18
|
+
--url "<DOCUMENT_URL>"
|
|
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
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## 参数
|
|
86
|
+
|
|
87
|
+
| 参数 | 必填 | 说明 |
|
|
88
|
+
|------|------|------|
|
|
89
|
+
| `--url` | 与 `--token` 二选一 | 推荐入口。支持 doc/docx/sheet/file/slides/base/bitable/apps/wiki URL;apps 妙搭 URL 使用 `/page/<token>`;wiki URL 会自动解析到真实文档。 |
|
|
90
|
+
| `--token` | 与 `--url` 二选一 | 裸 token 或 URL。裸 token 必须搭配 `--type`;wiki token 使用 `--type wiki`。 |
|
|
91
|
+
| `--type` | 裸 token 时必填 | 传 token 对应类型:`doc`、`docx`、`sheet`、`file`、`slides`、`bitable`、`base`、`apps`、`wiki`。wiki token 使用 `wiki`;传 `base` 时,CLI 会按 `bitable` 类型处理。 |
|
|
92
|
+
| `--solved-status` | 否 | `false` / `true` / `all`,默认 `false`。`false` 查未解决评论;`true` 查已解决评论;`all` 查全部评论。 |
|
|
93
|
+
| `--comment-scope` | 否 | `all` / `whole` / `partial`,默认 `all`。`all` 查全部范围;`whole` 查全文评论;`partial` 查局部评论。 |
|
|
94
|
+
| `--need-reaction` | 否 | 是否返回评论卡片上的 reaction 数据;只有用户明确需要 reaction 时才带。 |
|
|
95
|
+
| `--need-relation` | 否 | docx 评论定位关系字段;仅 docx 生效,非 docx 静默忽略。需要定位正文时先读 [`lark-drive-comment-location.md`](lark-drive-comment-location.md)。 |
|
|
96
|
+
| `--page-size` | 否 | 默认 50,最大 100。 |
|
|
97
|
+
| `--page-token` | 否 | 分页游标;本 shortcut 不自动翻页,按返回的 `page_token` 继续请求下一页。 |
|
|
98
|
+
|
|
99
|
+
## 行为说明
|
|
100
|
+
|
|
101
|
+
- `--comment-scope all` 查全部范围;`whole` 查全文评论;`partial` 查局部/选区评论。
|
|
102
|
+
- 当用户已经给出完整 URL 时,原样传给 `--url`;不要先提取 token 再重组成其他类型 URL。比如 sheet 保留 `/sheets/<token>`,wiki 保留 `/wiki/<token>`,妙搭 apps 保留 `/page/<token>`。
|
|
103
|
+
- URL 输入时不需要传 `--type`;如果 URL 类型和显式 `--type` 冲突,shortcut 会返回 validation error,建议移除 `--type`。
|
|
104
|
+
- wiki 输入会自动解析到真实文档,再查询评论列表。JSON 输出不额外返回 wiki token 或 wiki node。
|
|
105
|
+
- 输出中的 `items` 保留评论卡片字段,外层补充 `file_token`、`file_type`、`has_more`、`page_token`、`count`;`count` 是当前页返回的评论卡片数。是否继续分页以 `has_more` 为准,而不是只看 `page_token` 是否存在。
|
|
106
|
+
- 如果需要批量按评论 ID 查询、获取更多回复、创建/编辑/删除回复,继续使用原生 `drive file.comments batch_query` 或 `drive file.comment.replys.*`。
|
|
107
|
+
|
|
108
|
+
## 输出
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"file_token": "docx_token",
|
|
113
|
+
"file_type": "docx",
|
|
114
|
+
"items": [],
|
|
115
|
+
"has_more": false,
|
|
116
|
+
"page_token": "",
|
|
117
|
+
"count": 0
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## 参考
|
|
122
|
+
|
|
123
|
+
- [lark-drive](../SKILL.md) -- 云空间(云盘/云存储)全部命令
|
|
124
|
+
- [lark-drive-comments-guide](lark-drive-comments-guide.md) -- 评论统计、回复限制和原生 API 说明
|
|
125
|
+
- [lark-drive-comment-location](lark-drive-comment-location.md) -- 使用 `need_relation` 定位 docx 正文
|
|
@@ -54,7 +54,7 @@ lark-cli drive +member-add \
|
|
|
54
54
|
}
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
-
批量部分失败时,`partial` 为 `true
|
|
57
|
+
批量部分失败时,`partial` 为 `true`,同一份结果以 `ok:false` 部分失败信封写到 **stdout**(stderr 不再输出单独的错误信封),CLI 以非零退出码结束。检查 `data` 中的 `requested_count`、`succeeded_count`、`members`、`missing_member_ids` 和可选的 `mismatched_member_ids`。响应顺序不影响匹配结果。
|
|
58
58
|
|
|
59
59
|
## 行为说明
|
|
60
60
|
|