@amaster.ai/pi-lark 0.1.14 → 0.1.16

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.
Files changed (180) hide show
  1. package/package.json +4 -4
  2. package/skills/lark-apps/SKILL.md +1 -0
  3. package/skills/lark-apps/references/lark-apps-db.md +2 -0
  4. package/skills/lark-apps/references/lark-apps-env-pull.md +1 -1
  5. package/skills/lark-apps/references/lark-apps-env.md +1 -1
  6. package/skills/lark-apps/references/lark-apps-export.md +62 -0
  7. package/skills/lark-apps/references/lark-apps-local-dev.md +1 -1
  8. package/skills/lark-apps/references/lark-apps-observability.md +1 -1
  9. package/skills/lark-base/SKILL.md +6 -5
  10. package/skills/lark-base/references/lark-base-app.md +3 -3
  11. package/skills/lark-base/references/lark-base-dashboard-block-config.md +21 -3
  12. package/skills/lark-base/references/lark-base-dashboard.md +1 -1
  13. package/skills/lark-base/references/lark-base-data-query.md +1 -1
  14. package/skills/lark-base/references/lark-base-field-create.md +1 -1
  15. package/skills/lark-base/references/lark-base-field-update.md +1 -1
  16. package/skills/lark-base/references/lark-base-form-questions-create.md +1 -1
  17. package/skills/lark-base/references/lark-base-form-questions-update.md +1 -1
  18. package/skills/lark-base/references/lark-base-form-submit.md +1 -1
  19. package/skills/lark-base/references/lark-base-view-set-filter.md +1 -1
  20. package/skills/lark-base/references/lark-base-view.md +109 -0
  21. package/skills/lark-base/references/lark-base-workflow-schema.md +90 -12
  22. package/skills/lark-base/references/lark-base-workflow.md +99 -3
  23. package/skills/lark-calendar/SKILL.md +13 -8
  24. package/skills/lark-calendar/references/lark-calendar-meeting-relation.md +99 -0
  25. package/skills/lark-calendar/references/lark-calendar-meeting.md +1 -1
  26. package/skills/lark-calendar/references/lark-calendar-recurring.md +3 -1
  27. package/skills/lark-calendar/references/lark-calendar-transfer.md +1 -1
  28. package/skills/lark-doc/SKILL.md +1 -1
  29. package/skills/lark-doc/references/lark-doc-create-workflow.md +8 -10
  30. package/skills/lark-doc/references/lark-doc-media-download.md +1 -1
  31. package/skills/lark-doc/references/lark-doc-media-insert.md +1 -1
  32. package/skills/lark-doc/references/lark-doc-media-preview.md +1 -1
  33. package/skills/lark-doc/references/lark-doc-resource-cover.md +1 -1
  34. package/skills/lark-doc/references/lark-doc-script.md +11 -17
  35. package/skills/lark-drive/references/lark-drive-add-comment.md +1 -1
  36. package/skills/lark-drive/references/lark-drive-apply-permission.md +1 -1
  37. package/skills/lark-drive/references/lark-drive-copy.md +1 -1
  38. package/skills/lark-drive/references/lark-drive-cover.md +1 -1
  39. package/skills/lark-drive/references/lark-drive-create-folder.md +1 -1
  40. package/skills/lark-drive/references/lark-drive-create-shortcut.md +1 -1
  41. package/skills/lark-drive/references/lark-drive-delete.md +1 -1
  42. package/skills/lark-drive/references/lark-drive-download.md +1 -1
  43. package/skills/lark-drive/references/lark-drive-export-download.md +1 -1
  44. package/skills/lark-drive/references/lark-drive-export.md +1 -1
  45. package/skills/lark-drive/references/lark-drive-import.md +1 -1
  46. package/skills/lark-drive/references/lark-drive-inspect.md +2 -2
  47. package/skills/lark-drive/references/lark-drive-list-comments.md +1 -1
  48. package/skills/lark-drive/references/lark-drive-move.md +4 -4
  49. package/skills/lark-drive/references/lark-drive-permission-guide.md +1 -1
  50. package/skills/lark-drive/references/lark-drive-preview.md +1 -1
  51. package/skills/lark-drive/references/lark-drive-pull.md +1 -1
  52. package/skills/lark-drive/references/lark-drive-push.md +1 -1
  53. package/skills/lark-drive/references/lark-drive-search.md +1 -1
  54. package/skills/lark-drive/references/lark-drive-status.md +1 -1
  55. package/skills/lark-drive/references/lark-drive-task-result.md +4 -4
  56. package/skills/lark-drive/references/lark-drive-update-title.md +1 -1
  57. package/skills/lark-drive/references/lark-drive-upload.md +1 -1
  58. package/skills/lark-drive/references/lark-drive-version-delete.md +1 -1
  59. package/skills/lark-drive/references/lark-drive-version-get.md +1 -1
  60. package/skills/lark-drive/references/lark-drive-version-history.md +1 -1
  61. package/skills/lark-drive/references/lark-drive-version-revert.md +1 -1
  62. package/skills/lark-drive/references/lark-drive-workflow-topic-move-collector-execute.md +1 -1
  63. package/skills/lark-im/SKILL.md +7 -1
  64. package/skills/lark-im/references/lark-im-chat-create.md +1 -1
  65. package/skills/lark-im/references/lark-im-chat-list.md +1 -1
  66. package/skills/lark-im/references/lark-im-chat-members-list.md +1 -1
  67. package/skills/lark-im/references/lark-im-chat-messages-list.md +7 -2
  68. package/skills/lark-im/references/lark-im-chat-search.md +1 -1
  69. package/skills/lark-im/references/lark-im-chat-update.md +1 -1
  70. package/skills/lark-im/references/lark-im-feed-groups.md +1 -1
  71. package/skills/lark-im/references/lark-im-feed-shortcut-create.md +1 -1
  72. package/skills/lark-im/references/lark-im-feed-shortcut-list.md +1 -1
  73. package/skills/lark-im/references/lark-im-feed-shortcut-remove.md +1 -1
  74. package/skills/lark-im/references/lark-im-flag-cancel.md +1 -1
  75. package/skills/lark-im/references/lark-im-flag-create.md +1 -1
  76. package/skills/lark-im/references/lark-im-flag-list.md +1 -1
  77. package/skills/lark-im/references/lark-im-message-enrichment.md +1 -1
  78. package/skills/lark-im/references/lark-im-message-read-status.md +1 -1
  79. package/skills/lark-im/references/lark-im-messages-edit.md +1 -1
  80. package/skills/lark-im/references/lark-im-messages-mget.md +20 -3
  81. package/skills/lark-im/references/lark-im-messages-reply.md +1 -1
  82. package/skills/lark-im/references/lark-im-messages-resources-download.md +3 -1
  83. package/skills/lark-im/references/lark-im-messages-search.md +2 -2
  84. package/skills/lark-im/references/lark-im-messages-send.md +1 -1
  85. package/skills/lark-im/references/lark-im-reactions.md +1 -1
  86. package/skills/lark-im/references/lark-im-threads-messages-list.md +6 -2
  87. package/skills/lark-mail/SKILL.md +19 -8
  88. package/skills/lark-mail/references/lark-mail-draft-create.md +1 -1
  89. package/skills/lark-mail/references/lark-mail-draft-edit.md +1 -1
  90. package/skills/lark-mail/references/lark-mail-forward.md +1 -1
  91. package/skills/lark-mail/references/lark-mail-reply-all.md +1 -1
  92. package/skills/lark-mail/references/lark-mail-reply.md +1 -1
  93. package/skills/lark-mail/references/lark-mail-rules.md +87 -4
  94. package/skills/lark-mail/references/lark-mail-send.md +1 -1
  95. package/skills/lark-mail/references/lark-mail-thread-modify.md +73 -0
  96. package/skills/lark-mail/references/lark-mail-thread-trash.md +62 -0
  97. package/skills/lark-mail/references/lark-mail-triage.md +1 -1
  98. package/skills/lark-mail/references/lark-mail-watch.md +2 -2
  99. package/skills/lark-markdown/references/lark-markdown-create.md +1 -1
  100. package/skills/lark-markdown/references/lark-markdown-diff.md +1 -1
  101. package/skills/lark-markdown/references/lark-markdown-fetch.md +1 -1
  102. package/skills/lark-markdown/references/lark-markdown-overwrite.md +1 -1
  103. package/skills/lark-markdown/references/lark-markdown-patch.md +1 -1
  104. package/skills/lark-meeting/SKILL.md +2 -2
  105. package/skills/lark-meeting/references/lark-minutes-search.md +2 -2
  106. package/skills/lark-meeting/references/lark-vc-meeting-events.md +15 -15
  107. package/skills/lark-meeting/references/lark-vc-search.md +10 -7
  108. package/skills/lark-meeting/scenes/create-and-edit-minutes.md +4 -0
  109. package/skills/lark-meeting/scenes/live-meeting-attend.md +2 -2
  110. package/skills/lark-meeting/scenes/live-meeting-interact.md +1 -1
  111. package/skills/lark-meeting/scenes/query-meeting-and-artifacts.md +3 -3
  112. package/skills/lark-shared/references/lark-wiki-token-routing.md +7 -7
  113. package/skills/lark-sheets/SKILL.md +60 -173
  114. package/skills/lark-sheets/references/lark-sheets-batch-update.md +10 -10
  115. package/skills/lark-sheets/references/lark-sheets-chart.md +68 -34
  116. package/skills/lark-sheets/references/lark-sheets-conditional-format.md +4 -4
  117. package/skills/lark-sheets/references/lark-sheets-filter-view.md +1 -1
  118. package/skills/lark-sheets/references/lark-sheets-filter.md +2 -2
  119. package/skills/lark-sheets/references/lark-sheets-float-image.md +2 -2
  120. package/skills/lark-sheets/references/lark-sheets-formula-translation.md +90 -4
  121. package/skills/lark-sheets/references/lark-sheets-formula-verify.md +49 -13
  122. package/skills/lark-sheets/references/lark-sheets-pivot-table.md +13 -13
  123. package/skills/lark-sheets/references/lark-sheets-range-operations.md +12 -9
  124. package/skills/lark-sheets/references/lark-sheets-read-data.md +14 -12
  125. package/skills/lark-sheets/references/lark-sheets-search-replace.md +3 -3
  126. package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +8 -4
  127. package/skills/lark-sheets/references/lark-sheets-sparkline.md +2 -2
  128. package/skills/lark-sheets/references/lark-sheets-styles-put.md +2 -2
  129. package/skills/lark-sheets/references/lark-sheets-visual-standards.md +22 -19
  130. package/skills/lark-sheets/references/lark-sheets-workbook.md +22 -7
  131. package/skills/lark-sheets/references/lark-sheets-write-cells.md +66 -57
  132. package/skills/lark-sheets/scripts/lark_chart_quality_check.py +1540 -0
  133. package/skills/lark-sheets/scripts/lark_chart_size_advisor.py +409 -0
  134. package/skills/lark-sheets/scripts/lark_chart_size_rules.py +292 -0
  135. package/skills/lark-sheets/scripts/lark_inspect_workbook.py +37 -9
  136. package/skills/lark-sheets/scripts/lark_sheet_read_cli.py +53 -0
  137. package/skills/lark-sheets/scripts/{sheets_df.py → lark_sheets_df.py} +1 -1
  138. package/skills/lark-slides/SKILL.md +11 -18
  139. package/skills/lark-slides/references/cli/lark-slides-add-slide.md +1 -1
  140. package/skills/lark-slides/references/cli/lark-slides-create.md +3 -3
  141. package/skills/lark-slides/references/cli/lark-slides-delete-slide.md +1 -1
  142. package/skills/lark-slides/references/cli/lark-slides-history.md +1 -8
  143. package/skills/lark-slides/references/cli/lark-slides-media-upload.md +6 -11
  144. package/skills/lark-slides/references/cli/lark-slides-replace-slide.md +15 -16
  145. package/skills/lark-slides/references/cli/lark-slides-update-slide.md +2 -2
  146. package/skills/lark-slides/references/cli/lark-slides-xml-presentation-slide-get.md +3 -108
  147. package/skills/lark-slides/references/cli/lark-slides-xml-presentation-slide-replace.md +6 -183
  148. package/skills/lark-slides/references/cli/lark-slides-xml-presentations-get.md +26 -143
  149. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +3 -3
  150. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +2 -2
  151. package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +2 -2
  152. package/skills/lark-slides/references/workflow/error-handling.md +3 -3
  153. package/skills/lark-slides/references/workflow/slides-editing.md +10 -11
  154. package/skills/lark-slides/references/xml/slides_xml_schema_definition.xml +333 -20
  155. package/skills/lark-task/references/lark-task-assign.md +1 -1
  156. package/skills/lark-task/references/lark-task-comment.md +1 -1
  157. package/skills/lark-task/references/lark-task-complete.md +1 -1
  158. package/skills/lark-task/references/lark-task-create.md +1 -1
  159. package/skills/lark-task/references/lark-task-followers.md +1 -1
  160. package/skills/lark-task/references/lark-task-get-my-tasks.md +1 -1
  161. package/skills/lark-task/references/lark-task-get-related-tasks.md +1 -1
  162. package/skills/lark-task/references/lark-task-reminder.md +1 -1
  163. package/skills/lark-task/references/lark-task-reopen.md +1 -1
  164. package/skills/lark-task/references/lark-task-search.md +1 -1
  165. package/skills/lark-task/references/lark-task-set-ancestor.md +1 -1
  166. package/skills/lark-task/references/lark-task-tasklist-create.md +1 -1
  167. package/skills/lark-task/references/lark-task-tasklist-members.md +1 -1
  168. package/skills/lark-task/references/lark-task-tasklist-search.md +1 -1
  169. package/skills/lark-task/references/lark-task-tasklist-task-add.md +1 -1
  170. package/skills/lark-task/references/lark-task-update.md +1 -1
  171. package/skills/lark-task/references/lark-task-upload-attachment.md +1 -1
  172. package/skills/lark-wiki/SKILL.md +1 -2
  173. package/skills/lark-wiki/references/lark-wiki-delete-space.md +1 -1
  174. package/skills/lark-wiki/references/lark-wiki-move-to-drive.md +1 -1
  175. package/skills/lark-wiki/references/lark-wiki-move.md +4 -3
  176. package/skills/lark-wiki/references/lark-wiki-node-create.md +4 -3
  177. package/skills/lark-wiki/references/lark-wiki-node-delete.md +8 -4
  178. package/skills/lark-wiki/references/lark-wiki-node-get.md +7 -4
  179. package/skills/lark-sheets/references/lark-sheets-legacy-command-migration.md +0 -152
  180. package/skills/lark-sheets/scripts/lark_chart_layout_check.py +0 -472
@@ -16,28 +16,22 @@
16
16
  | 参数 | 必填 | 用法 |
17
17
  |-|-|-|
18
18
  | `--command init-draft` | 是 | 选择本脚本。 |
19
- | `--presentation-decision` | 是 | 完整决策 JSON;接受内联 JSON、`@./decision.json` 形式的 CWD 下相对路径或 `-`(stdin)。 |
19
+ | `--presentation-decision` | 是 | 决策 JSON;接受内联 JSON、`@相对或绝对路径` 或 `-`(stdin)。 |
20
20
 
21
21
  ```bash
22
22
  lark-cli docs +script --command init-draft \
23
- --presentation-decision '<完整 Presentation Decision JSON>' \
23
+ --presentation-decision '{}' \
24
24
  --format json
25
25
  ```
26
26
 
27
- `data` 的结构如下;实际随机段为 8 位十六进制字符:
28
-
29
- ```json
30
- {
31
- "workspace": "draft_a1b2c3d4_folder",
32
- "draft_path": "draft_a1b2c3d4_folder/draft.xml",
33
- "tip": "The workspace directory has been created successfully. draft_path points to a new XML file that does not exist yet. Create and write the file directly without reading it first."
34
- }
35
- ```
27
+ 路径返回值与用法见 [创建工作流 Step 4](lark-doc-create-workflow.md)。
36
28
 
37
29
  - 在生成正文前执行;不要自行创建工作目录或决策文件。CLI 固定生成 `draft_<8位十六进制字符>_folder/draft.xml`,以返回的实际路径为准。
38
- - 决策必须是单个 JSON 对象,包含 `audience`、`reader_task`、`genre_contract`、`adapter`、`presentation_mode` 和 `visual_plan`。`presentation_mode` 取 `formal|normal|rich`;`genre_contract`、`adapter` 使用固定短名、`"none"` 或 `null`。
39
- - `visual_plan` 包含非空 `reason` 和 `blocks` 数组;每项为 `{type,min_count,purpose}`,`type` 不重复,`min_count` 为正整数。按本 Skill 创建文档时,`blocks` 只对 `whiteboard`、`img`、`html5-block` 设置最低数量,其他表达按内容需要使用但不设数量约束;三类均无需约束时写 `[]`。CLI 为外部决策兼容 `type: "list"`,检查时将 `<ul>` 与 `<ol>` 的数量相加。仅有字数要求时添加 `word_count: {min,max}`;未指定的一侧写 `null`,至少一侧为正整数,且 `min <= max`。
40
- - 返回 `data.workspace`(已创建的随机工作区)、`data.draft_path`(可直接写入的 XML 路径)和英文操作提示 `data.tip`。工作区及其中的 `.presentation-decision.json` 已存在,但 XML 尚不存在;遵循提示直接使用文件创建/写入能力在 `draft_path` 写入完整 XML,首次写入前不要读取该路径。
30
+ - 决策是单个 JSON 对象;无可量化约束时传 `{}`。`audience`、`reader_task`、`genre_contract`、`adapter`、`presentation_mode`、`visual_plan.reason` 和每个 block 的 `purpose` 是可选描述信息,可省略、为空字符串或 `null`;不参与通过/失败判定。
31
+ - `visual_plan`、`visual_plan.blocks`、每项的 `type` 和 `min_count` 都可省略或为 `null`,表示未设置。`blocks` 写 `[]` 也表示无数量约束;条目缺少 `type` 或 `min_count` 时,不启用该条数量校验。
32
+ - 显式填写的字段仍须合法:`visual_plan` 为对象,`blocks` 为数组,`type` 为支持的块类型,`min_count` 为正整数。空字符串类型、未知块类型、零/负数或非整数数量会报错,即使另一字段缺失也一样。仅 `type` 与 `min_count` 都有效的条目参与数量检查;启用的条目不能重复声明同一类型。兼容的 `list` 约束按 `<ul>` 与 `<ol>` 的合计数量检查。
33
+ - `word_count` 仅在需要字数校验时填写 `{min,max}`;未指定的一侧写 `null`,至少一侧为正整数,且 `min <= max`。没有字数要求时省略整个字段。
34
+ - 返回 `data.cwd`(本次文件操作的绝对工作目录)、`data.workspace`(相对工作区)、`data.draft_path`(相对 XML 路径)和操作提示 `data.tip`。工作区及其中的 `.presentation-decision.json` 已存在,XML 尚不存在;直接写入 `<cwd>/<draft_path>`,首次写入前不要读取该路径。后续 CLI 使用返回的 `cwd`;资源路径规则见 [lark-doc](../SKILL.md)。
41
35
  - 后续始终使用 `draft_path`,不得另建 XML、复用其他任务的路径或修改工作区中的 `.presentation-decision.json`;保留 `workspace` 及其中的创作草稿。
42
36
 
43
37
  ## `parse`
@@ -47,9 +41,9 @@ lark-cli docs +script --command init-draft \
47
41
  | 参数 | 必填 | 用法 |
48
42
  |-|-|-|
49
43
  | `--command parse` | 是 | 选择本脚本。 |
50
- | `--content` | 二选一 | 本地 XML 的字面内容、`@./document.xml` 形式的 CWD 下相对路径或 `-`(stdin)。 |
44
+ | `--content` | 二选一 | 本地 XML 的字面内容、`@相对或绝对路径` 或 `-`(stdin)。 |
51
45
  | `--doc` | 二选一 | 在线 Docx/Wiki URL 或 token;与 `--content` 互斥。 |
52
- | `--presentation-decision` | 否 | 用于检查当前输入的完整决策 JSON;支持内联、`@./decision.json` 形式的 CWD 下相对路径或 `-`。 |
46
+ | `--presentation-decision` | 否 | 用于检查当前输入的决策 JSON;支持内联、`@相对或绝对路径` 或 `-`。 |
53
47
 
54
48
  ```bash
55
49
  lark-cli docs +script --command parse --content "@./document.xml" --format json
@@ -58,7 +52,7 @@ lark-cli docs +script --command parse --content "@./document.xml" --presentation
58
52
  ```
59
53
 
60
54
  - `--content` 与 `--presentation-decision` 同时使用时,最多一个参数读取 stdin。
61
- - 决策必须包含 `audience`、`reader_task`、`genre_contract`、`adapter`、`presentation_mode` 和 `visual_plan`;`presentation_mode` 取 `formal|normal|rich`。`visual_plan` 包含非空 `reason` 和不重复的 `{type,min_count,purpose}` 数组;兼容的 `list` 约束按 `<ul>` 与 `<ol>` 的合计数量检查。仅有字数要求时添加合法的 `word_count: {min,max}`。
55
+ - 决策格式同 `init-draft`:缺失的约束不检查,显式填写但非法的值报错,合法且完整的约束参与检查。`passed` 只表示本次启用的检查通过,不代表未声明的要求已满足。
62
56
  - 使用 `--content "@./<init-draft 返回的 data.draft_path>"` 时自动加载保存的决策;显式 `--presentation-decision` 优先。
63
57
  - `--doc` 需要 `docx:document:readonly`;`--content` 不调用 OpenAPI。
64
58
  - 返回 `data.assessment.status`、`data.profile` 和按需出现的 `data.diagnostics[]`;profile 包含 `word_count`、`char_count`、`block_count` 和 `blocks[]`。顶层 `ok` 只表示命令是否成功执行。画像、决策或资源预检未通过时,命令仍以 `ok:true` 和退出码 0 返回,但 `assessment.status` 为 `failed`;每条 diagnostic 提供 `severity`、稳定 `code`、`msg`、可选 `expected` / `actual` 和 `suggested`。同一原因失败的远程图片合并为一条 diagnostic,并在 `image_indices[]` 中列出图片序号,避免重复提示。修复后重新解析,直到 `assessment.status` 为 `passed`。
@@ -1,7 +1,7 @@
1
1
 
2
2
  # drive +add-comment
3
3
 
4
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
5
 
6
6
  给文档、受支持的 Drive 普通文件、电子表格、飞书幻灯片或 Base 添加评论。未指定位置时创建全文评论,但仅适用于 doc/docx、白名单 Drive file,以及解析为这些类型的 wiki;sheet、slides、Base(bitable) 必须指定 `--block-id`。不同类型的 `--block-id` 格式见下文。支持直接传 docx URL/token、旧版 doc URL(仅全文评论)、Drive file URL/token(**仅支持白名单扩展名,且只支持全文评论**)、sheet URL、slides URL、base/bitable URL,也支持传最终可解析为 doc/docx/file/sheet/slides/base(bitable) 的 wiki URL。
7
7
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  # drive +apply-permission(申请文档权限)
3
3
 
4
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
5
 
6
6
  本 skill 对应 shortcut:`lark-cli drive +apply-permission`。
7
7
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  # drive +copy
3
3
 
4
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
5
 
6
6
  复制一个 Drive 文件(在线文档、表格、多维表格、幻灯片、思维笔记或普通文件)到目标文件夹,生成一个内容相同的新副本。
7
7
 
@@ -1,6 +1,6 @@
1
1
  ## `drive +cover`
2
2
 
3
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、权限处理和安全规则。
3
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、权限处理和安全规则。
4
4
 
5
5
  列出或下载 Drive 文件的稳定封面预设。这个 shortcut 只暴露 `spec`,不暴露底层 `cover_option` 细节。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # drive +create-folder(创建云空间/云盘/云存储文件夹)
2
2
 
3
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
3
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
4
 
5
5
  在飞书云空间(云盘/云存储)中创建一个新文件夹。该 shortcut 对原生 `drive files create_folder` 做了一层更适合日常使用的封装:`--folder-token` 可省略,此时会在调用者根目录创建;如果使用 `--as bot`,创建成功后 CLI 会尝试把新文件夹的可管理权限自动授予当前 CLI 用户。
6
6
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  # drive +create-shortcut
3
3
 
4
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
5
 
6
6
  在目标文件夹中为一个现有 Drive 文件创建快捷方式。
7
7
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  # drive +delete
3
3
 
4
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
5
 
6
6
  删除云空间(云盘/云存储)内的文件或文件夹。删除后资源会进入回收站。
7
7
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  # drive +download
3
3
 
4
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
5
 
6
6
  从飞书云空间(云盘/云存储)下载文件到本地。下载对象是 Drive **文件**(上传的 PDF/zip/图片/音视频等文件),以及支持 Wiki URL / Wiki token。
7
7
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  # drive +export-download
3
3
 
4
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
5
 
6
6
  根据导出任务产物的 `file_token` 下载本地文件。通常与 `drive +task_result --scenario export` 配合使用。
7
7
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  # drive +export
3
3
 
4
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
5
 
6
6
  把 `doc` / `docx` / `sheet` / `bitable` / `slides`(也支持 Wiki URL / Wiki node token 自动解包)导出到本地文件。这个 shortcut 内置有限轮询:
7
7
 
@@ -1,6 +1,6 @@
1
1
  # drive +import
2
2
 
3
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
3
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
4
 
5
5
  将本地文件(如 Word、TXT、Markdown、Excel、PPTX 等)导入并转换为飞书在线云文档(docx、sheet、bitable、slides)。底层统一通过 `POST /open-apis/drive/v1/import_tasks` 接口创建导入任务,并在 shortcut 内做有限次数轮询 `GET /open-apis/drive/v1/import_tasks/:ticket`。
6
6
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  # drive +inspect(文档 URL 检视:类型、标题、Token 解析)
3
3
 
4
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
5
 
6
6
  给定一个飞书文档 URL 或 bare token,返回其类型、标题和 canonical token。对 wiki URL 自动解包到底层文档。
7
7
 
@@ -46,7 +46,7 @@ JSON 输出包含以下字段:
46
46
 
47
47
  - `--url` 为必填参数
48
48
  - 当 `--url` 是 bare token(非完整 URL)时,`--type` 也是必填的
49
- - wiki URL 会自动调用 `get_node` API 解包,输出中 `type` 和 `token` 是底层文档的类型和 token
49
+ - wiki URL 会自动调用 `node_by_token` API 解包,输出中 `type` 和 `token` 是底层文档的类型和 token
50
50
  - `+inspect` 只用于识别/消歧;如果任务已能通过 URL 路径形态完成路由判断,不必把它作为所有 Drive 操作的通用前置步骤
51
51
  - `+inspect` 失败后不要自动切到写接口继续尝试,先按错误提示处理权限、scope 或链接问题
52
52
  - 支持 `--dry-run` 查看将调用的 API 步骤
@@ -1,6 +1,6 @@
1
1
  # drive +list-comments
2
2
 
3
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和权限处理。
3
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和权限处理。
4
4
 
5
5
  列出 doc/docx/sheet/file/slides/base(bitable)/apps 的评论卡片。优先传用户给出的完整 URL,shortcut 会自动识别类型;apps 为妙搭类型,支持 `/page/<token>` URL;如果传 wiki URL 或 `--token <wiki_token> --type wiki`,会先解析到真实文档。
6
6
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  # drive +move
3
3
 
4
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
5
 
6
6
  将文件或文件夹移动到用户云空间(云盘/云存储)的其他位置。
7
7
 
@@ -48,7 +48,7 @@ lark-cli drive +move \
48
48
  --type docx \
49
49
  --folder-token <TARGET_FOLDER_TOKEN>
50
50
 
51
- # 移动文件夹(异步操作,会自动有限轮询任务状态)
51
+ # 移动文件夹
52
52
  lark-cli drive +move \
53
53
  --file-token <FOLDER_TOKEN> \
54
54
  --type folder \
@@ -79,12 +79,12 @@ lark-cli drive +move \
79
79
  | `bitable` | 多维表格 |
80
80
  | `mindnote` | 思维笔记 |
81
81
  | `slides` | 幻灯片 |
82
- | `folder` | 文件夹(移动文件夹是异步操作) |
82
+ | `folder` | 文件夹 |
83
83
 
84
84
  ## 行为说明
85
85
 
86
86
  - **普通文件移动**:同步操作,立即完成
87
- - **文件夹移动**:异步操作,接口返回 `task_id`,shortcut 会先做有限轮询;如果在轮询窗口内完成,则直接返回成功结果
87
+ - **文件夹移动**:可能异步完成,shortcut 内置有限次数的轮询。同步完成或在轮询期间完成时,返回 `ready=true`;若轮询结束仍未完成,则返回 `ready=false`,可按返回的 `next_command` 继续查询
88
88
  - **轮询超时不是失败**:文件夹移动内置最多轮询 30 次、每次间隔 2 秒;如果轮询结束任务仍未完成,会返回 `task_id`、`status`、`ready=false`、`timed_out=true` 和 `next_command`
89
89
  - **继续查询**:当看到 `next_command` 时,改用 `lark-cli drive +task_result --scenario task_check --task-id <TASK_ID>` 继续查询
90
90
  - **目标文件夹**:如果不指定 `--folder-token`,文件将被移动到用户的根文件夹("我的空间")
@@ -39,7 +39,7 @@
39
39
 
40
40
  需要将文档权限授予当前应用(bot)自身时:
41
41
 
42
- 1. 先执行 `lark-cli api GET /open-apis/bot/v3/info --as bot`,从返回值取 `bot.open_id`。
42
+ 1. 先执行 `lark-cli api GET /open-apis/bot/v3/info --as bot --jq '.data.open_id'`,直接取得当前应用的 `open_id`。
43
43
  2. 再调用 `lark-cli drive permission.members create`,用 `member_type=openid`、`member_id=<bot_open_id>` 授权。
44
44
 
45
45
  ```bash
@@ -1,6 +1,6 @@
1
1
  ## `drive +preview`
2
2
 
3
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、权限处理和安全规则。
3
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、权限处理和安全规则。
4
4
 
5
5
  查看或下载 Drive 文件内容,或列出并获取文件可用的预览产物。对象是 Drive **文件**,也支持 Wiki URL / node token(CLI 先把 Wiki 节点解析到底层文件,`obj_type` 必须是 `file`)。这个 shortcut 不猜测默认类型:
6
6
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  # drive +pull
3
3
 
4
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
5
 
6
6
  把飞书云空间(云盘/云存储)的某个文件夹**单向、文件级**镜像到本地目录(Drive → 本地)。命令递归列出 `--folder-token` 下所有 `type=file` 的文件,逐一下载到 `--local-dir` 对应的相对路径,子文件夹自动复刻为本地目录。
7
7
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  # drive +push
3
3
 
4
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
5
 
6
6
  把本地目录**单向、文件级**镜像到飞书云空间(云盘/云存储)的某个文件夹(本地 → Drive)。命令递归列出 `--folder-token` 下的远端清单,遍历 `--local-dir` 的所有常规文件,按相对路径在 Drive 上新建、覆盖或跳过;可选地(`--delete-remote --yes`)删除云端"本地没有"的 `type=file`。
7
7
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  # drive +search(云空间/云盘/云存储搜索:扁平 flag,面向自然语言场景)
3
3
 
4
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
5
 
6
6
  基于 Search v2 接口 `POST /open-apis/search/v2/doc_wiki/search`,支持以**用户身份或应用身份**统一搜索云空间(云盘/云存储)对象。
7
7
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  # drive +status
3
3
 
4
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
5
 
6
6
  按 **精确 SHA-256**(默认)或 **快速 modified_time**(`--quick`)比较本地目录与飞书云空间(云盘/云存储)文件夹,输出四类差异:
7
7
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  # drive +task_result
3
3
 
4
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
5
 
6
6
  查询异步任务结果。该 shortcut 聚合了导入、导出、Drive 文件/文件夹移动/删除、Wiki 节点 / 文档迁入 Wiki、Wiki 节点移出 Wiki、Wiki 删除等多种异步任务的结果查询,统一接口方便调用。
7
7
 
@@ -263,12 +263,12 @@ lark-cli drive +task_result --scenario import --ticket <IMPORT_TICKET>
263
263
  ### 配合 +move 使用
264
264
 
265
265
  ```bash
266
- # 1. 移动文件夹(异步操作)
266
+ # 1. 移动文件夹
267
267
  lark-cli drive +move --file-token <FOLDER_TOKEN> --type folder --folder-token <TARGET_FOLDER_TOKEN>
268
- # 若轮询窗口内完成:直接返回 ready=true
268
+ # 已完成时返回 ready=true,无需继续查询
269
269
  # 若内置轮询结束仍未完成:返回 ready=false、task_id 和 next_command
270
270
 
271
- # 2. 轮询移动结果
271
+ # 2. 仅在 ready=false 时继续查询
272
272
  lark-cli drive +task_result --scenario task_check --task-id <TASK_ID>
273
273
  ```
274
274
 
@@ -1,6 +1,6 @@
1
1
  # drive +update-title
2
2
 
3
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
3
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
4
 
5
5
  重命名云空间(云盘/云存储)里的文件、文件夹、在线文档或知识库节点。
6
6
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  # drive +upload
3
3
 
4
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
5
 
6
6
  上传本地文件到飞书云空间(云盘/云存储)。目标位置可以是 Drive 文件夹,也可以是 wiki 节点。
7
7
 
@@ -1,6 +1,6 @@
1
1
  # drive +version-delete
2
2
 
3
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
3
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
4
 
5
5
  删除指定的历史版本。该 shortcut 同时支持 `--as user` 和 `--as bot`;自动化场景推荐使用 `--as bot`。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # drive +version-get
2
2
 
3
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
3
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
4
 
5
5
  下载指定版本的文件内容。该 shortcut 同时支持 `--as user` 和 `--as bot`;自动化场景推荐使用 `--as bot`。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # drive +version-history
2
2
 
3
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
3
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
4
 
5
5
  列出指定文件的历史版本快照。该 shortcut 同时支持 `--as user` 和 `--as bot`;自动化场景推荐使用 `--as bot`。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # drive +version-revert
2
2
 
3
- > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
3
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
4
 
5
5
  将文件回滚到指定历史版本。该 shortcut 同时支持 `--as user` 和 `--as bot`;自动化场景推荐使用 `--as bot`。
6
6
 
@@ -107,7 +107,7 @@
107
107
 
108
108
  1. 如有 `create_target` 项,先执行。
109
109
  2. 按确认计划顺序执行 `move_resource` 项。
110
- 3. 如果命令返回 task ID,执行异步任务轮询。
110
+ 3. 若命令返回 `ready=false`,按 `next_command` 继续查询;`ready=true` 时无需继续轮询,即使仍返回 task ID。
111
111
  4. 输出写操作执行摘要。
112
112
 
113
113
  ### 进度 UI
@@ -58,10 +58,16 @@ The raw `sender_name` is not duplicated in output (its value is in `name`); the
58
58
 
59
59
  The four message-pulling shortcuts (`+messages-mget`, `+chat-messages-list`, `+messages-search`, `+threads-messages-list`) automatically attach a `reactions` block and (for edited messages) `update_time` to each returned message — no separate `im.reactions.batch_query` call is needed. Pass `--no-reactions` to opt out. For the full contract (output shape, the `im:message.reactions:read` scope requirement, and the "missing field ≠ fetch failure" data rules), read [`references/lark-im-message-enrichment.md`](references/lark-im-message-enrichment.md).
60
60
 
61
+ ### Compact message output (`--concise`)
62
+
63
+ Some message-listing shortcuts support `--concise` for compact Markdown output. Use it when the user asks for concise output or a smaller result/file; check `--help` for availability and do not combine it with an explicit `--format`, an enabled `--json`, or a non-empty `--jq`.
64
+
61
65
  ### Opt-in resource auto-download (`--download-resources`)
62
66
 
63
67
  `+chat-messages-list`, `+messages-mget`, and `+threads-messages-list` accept `--download-resources` to save eligible attachments into `./lark-im-resources/` and add a `resources` array to each message. It is off by default; stickers are not downloadable. A failed attachment is reported on that resource without aborting the message pull. Use [`+messages-resources-download`](references/lark-im-messages-resources-download.md) for one attachment. See [`references/lark-im-message-enrichment.md`](references/lark-im-message-enrichment.md) for the output contract.
64
68
 
69
+ **Folder resources** are containers, not files — a folder `file_key` cannot be downloaded directly. Expand it first with `lark-cli im files folder --recursive --file-key <folder_key> --srctype message --srcid <message_id>`, then download the files inside with [`+messages-resources-download`](references/lark-im-messages-resources-download.md).
70
+
65
71
  ### Card Messages (Interactive)
66
72
 
67
73
  **Before sending, replying with, or updating any `interactive` card (`+messages-send` / `+messages-reply` / `messages.patch`), you MUST read [`references/card/lark-im-card-create.md`](references/card/lark-im-card-create.md) and follow its workflow.** The card JSON passed to `--msg-type interactive --content` (send/reply) or `messages.patch --data` (update) must be the output of that workflow — never hand-write or copy a card payload.
@@ -118,7 +124,7 @@ Shortcut 是对常用操作的高级封装(`lark-cli im +<verb> [flags]`)。
118
124
  | [`+messages-mget`](references/lark-im-messages-mget.md) | Batch get messages by IDs; user/bot; fetches up to 50 om_ message IDs, formats sender names, expands thread replies |
119
125
  | [`+messages-read-status`](references/lark-im-message-read-status.md) | Batch query whether the current user read 1–50 messages; user-only; returns readable items and invalid message IDs |
120
126
  | [`+messages-reply`](references/lark-im-messages-reply.md) | Reply to a message (supports thread replies); user/bot; supports text/markdown/post/media replies, reply-in-thread, idempotency key |
121
- | [`+messages-resources-download`](references/lark-im-messages-resources-download.md) | Download an image or file attached to a message; user/bot |
127
+ | [`+messages-resources-download`](references/lark-im-messages-resources-download.md) | Download an image/file from a message; folders are not directly downloadable — expand with `im files folder --recursive` first, then download the files inside; user/bot |
122
128
  | [`+messages-search`](references/lark-im-messages-search.md) | Search messages across chats (supports keyword, sender, time range filters) with user or bot identity; filters by chat/sender/attachment/time, supports auto-pagination via `--page-all` / `--page-limit`, enriches results via batched mget and chats batch_query |
123
129
  | [`+messages-send`](references/lark-im-messages-send.md) | Send a message to a chat or direct message; user/bot; sends to chat-id or user-id with text/markdown/post/media, supports idempotency key |
124
130
  | [`+threads-messages-list`](references/lark-im-threads-messages-list.md) | List messages in a thread; user/bot; accepts om_/omt_ input, resolves message IDs to thread_id, supports --order asc/desc sorting, auto-pagination |
@@ -1,6 +1,6 @@
1
1
  # im +chat-create
2
2
 
3
- > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
3
+ > **Prerequisite:** Read [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
4
 
5
5
  Create a group chat. Supports both user identity (`--as user`) and bot identity (`--as bot`). You can specify the group name, description, members (users/bots), owner, chat type (private/public), and group mode. Set `--chat-mode topic` to create a topic chat.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # im +chat-list
2
2
 
3
- > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
3
+ > **Prerequisite:** Read [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
4
 
5
5
  List chats the current user (or bot, with `--as bot`) is a member of. **Not a search API — there is no `--query` parameter; the call always returns the full member list, paginated.** For keyword-based lookup (e.g. find a group by name or by member), use [`+chat-search`](lark-im-chat-search.md) instead.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # im +chat-members-list
2
2
 
3
- > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
3
+ > **Prerequisite:** Read [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
4
 
5
5
  List the members of a chat. Users and bots are returned in **separate buckets** — `users[]` and `bots[]` — with per-bucket totals (`user_total` / `bot_total`). Use `--member-types` to return only one kind.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # im +chat-messages-list
2
2
 
3
- > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
3
+ > **Prerequisite:** Read [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
4
 
5
5
  Fetch the message list for a conversation. Supports both group chats and direct messages.
6
6
 
@@ -17,6 +17,9 @@ lark-cli im +chat-messages-list --chat-id oc_xxx
17
17
  # Get direct messages with a user (pass open_id and resolve p2p chat_id automatically)
18
18
  lark-cli im +chat-messages-list --user-id ou_xxx
19
19
 
20
+ # Read message context as compact Markdown
21
+ lark-cli im +chat-messages-list --chat-id oc_xxx --concise
22
+
20
23
  # Specify a time range (ISO 8601)
21
24
  lark-cli im +chat-messages-list --chat-id oc_xxx --start "2026-03-10T00:00:00+08:00" --end "2026-03-11T00:00:00+08:00"
22
25
 
@@ -51,6 +54,7 @@ lark-cli im +chat-messages-list --chat-id oc_xxx --format json
51
54
  | `--page-limit <n>` | No | Maximum pages fetched by `--page-all` (default 10, range 1-1000) |
52
55
  | `--no-reactions` | No | Skip auto-fetching the `reactions` block |
53
56
  | `--download-resources` | No | Download message resources (image/file/audio/video/media + post-embedded, excluding stickers) into `./lark-im-resources/` and attach a `resources` block. Off by default; no extra requests when omitted |
57
+ | `--concise` | No | Render compact Markdown for message context |
54
58
 
55
59
  > Rule: `--chat-id` and `--user-id` are mutually exclusive. You must provide exactly one of them.
56
60
 
@@ -58,7 +62,7 @@ lark-cli im +chat-messages-list --chat-id oc_xxx --format json
58
62
 
59
63
  ## Resource Rendering
60
64
 
61
- Messages are rendered into human-readable text for inspection. Image messages are shown as placeholders such as `![Image](img_xxx)`; files, audio, and videos are rendered with resource keys in the content (e.g. `<audio key="file_xxx" duration="Xs"/>`). By default resource binaries are **not** downloaded.
65
+ Messages are rendered into human-readable text for inspection. Image messages are shown as placeholders such as `![Image](img_xxx)`; files, audio, and videos are rendered with resource keys in the content (e.g. `<audio key="file_xxx" duration="Xs"/>`). `folder` messages are expanded one level (children rendered inside the tag, see the row below). By default resource binaries are **not** downloaded.
62
66
 
63
67
  Two ways to get the binaries:
64
68
  - **In one pass:** add `--download-resources` to this command — every eligible resource (image/file/audio/video/media + post-embedded, excluding stickers) is downloaded into `./lark-im-resources/` and a `resources` block (`{message_id, key, type, local_path, size_bytes}`) is attached to each message. See [message enrichment](lark-im-message-enrichment.md#resource-auto-download---download-resources-opt-in).
@@ -68,6 +72,7 @@ Two ways to get the binaries:
68
72
  |---------|-------------|------|
69
73
  | Image | `![Image](img_xxx)` | `--download-resources`, or manually `im +messages-resources-download --type image` |
70
74
  | File | `<file key="file_xxx" .../>` | `--download-resources`, or manually `im +messages-resources-download --type file` |
75
+ | Folder (message) | `<folder key="file_xxx" name="assets" child_count="N"><file key="..." .../>…</folder>` (first-level children rendered inside; `has_more="true"` past the 10-item cap) | Folder itself is not a single-file resource; children are real files — download one with explicit `im +messages-resources-download --message-id <id> --file-key <child_key> --type file` (`--download-resources` auto-collection does not include folder children) |
71
76
  | Audio | `<audio key="file_xxx" duration="Xs"/>` | `--download-resources`, or manually `im +messages-resources-download --type file` |
72
77
  | Video | `<video key="file_xxx" .../>` | `--download-resources`, or manually `im +messages-resources-download --type file` |
73
78
  | Sticker | `[Sticker]` | Not downloadable (Feishu does not support fetching sticker resources) |
@@ -1,6 +1,6 @@
1
1
  # im +chat-search
2
2
 
3
- > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
3
+ > **Prerequisite:** Read [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
4
 
5
5
  Search the list of group chats visible to a user or bot, including chats the user or bot belongs to and public chats visible to them. Supports keyword matching on chat names and member names, including pinyin and prefix fuzzy search.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # im +chat-update
2
2
 
3
- > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
3
+ > **Prerequisite:** Read [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
4
 
5
5
  Update a group's name or description. Supports both **TAT (bot)** and **UAT (user)** identity.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # im feed.groups
2
2
 
3
- > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
3
+ > **Prerequisite:** Read [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
4
 
5
5
  This reference is the shared annotation target for the IM feed-group (tag) APIs: it documents what each method does, the `--params` / `--data` request and response shapes, and the enum surface used in payloads. The full method list is in [Command Overview](#command-overview) below.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # im +feed-shortcut-create
2
2
 
3
- > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) for authentication, global parameters, and security rules.
3
+ > **Prerequisite:** Read [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) for authentication, global parameters, and security rules.
4
4
 
5
5
  This skill maps to shortcut: `lark-cli im +feed-shortcut-create`. Underlying API: `POST /open-apis/im/v2/feed_shortcuts`.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # im +feed-shortcut-list
2
2
 
3
- > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) for authentication, global parameters, and security rules.
3
+ > **Prerequisite:** Read [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) for authentication, global parameters, and security rules.
4
4
 
5
5
  This skill maps to shortcut: `lark-cli im +feed-shortcut-list`. Underlying API: `GET /open-apis/im/v2/feed_shortcuts`.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # im +feed-shortcut-remove
2
2
 
3
- > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) for authentication, global parameters, and security rules.
3
+ > **Prerequisite:** Read [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) for authentication, global parameters, and security rules.
4
4
 
5
5
  This skill maps to shortcut: `lark-cli im +feed-shortcut-remove`. Underlying API: `POST /open-apis/im/v2/feed_shortcuts/remove`.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # im +flag-cancel
2
2
 
3
- > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) for authentication, global parameters, and security rules.
3
+ > **Prerequisite:** Read [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) for authentication, global parameters, and security rules.
4
4
 
5
5
  This skill maps to shortcut: `lark-cli im +flag-cancel`. Underlying API: `POST /open-apis/im/v1/flags/cancel`.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # im +flag-create
2
2
 
3
- > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) for authentication, global parameters, and security rules.
3
+ > **Prerequisite:** Read [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) for authentication, global parameters, and security rules.
4
4
 
5
5
  This skill maps to shortcut: `lark-cli im +flag-create`. Underlying API: `POST /open-apis/im/v1/flags`.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # im +flag-list
2
2
 
3
- > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) for authentication, global parameters, and security rules.
3
+ > **Prerequisite:** Read [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) for authentication, global parameters, and security rules.
4
4
 
5
5
  This skill maps to shortcut: `lark-cli im +flag-list`. Underlying API: `GET /open-apis/im/v1/flags`.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # im default message enrichment (reactions / update_time)
2
2
 
3
- > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
3
+ > **Prerequisite:** Read [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
4
 
5
5
  This is the single source of truth for the automatic message-enrichment contract shared by the four message-pulling shortcuts — [`+messages-mget`](lark-im-messages-mget.md), [`+chat-messages-list`](lark-im-chat-messages-list.md), [`+messages-search`](lark-im-messages-search.md), [`+threads-messages-list`](lark-im-threads-messages-list.md). They automatically attach `reactions` and `update_time` to each returned message, so callers do **not** need to invoke the raw [`im.reactions.batch_query`](lark-im-reactions.md) API separately.
6
6
 
@@ -1,6 +1,6 @@
1
1
  # IM message read status
2
2
 
3
- > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first for authentication and global parameters.
3
+ > **Prerequisite:** Read [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first for authentication and global parameters.
4
4
 
5
5
  Use two focused shortcuts for message read-status queries:
6
6