@amaster.ai/pi-lark 0.1.4 → 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.
Files changed (416) hide show
  1. package/package.json +3 -3
  2. package/skills/lark-approval/SKILL.md +99 -0
  3. package/skills/lark-approval/references/lark-approval-approvals-get.md +128 -0
  4. package/skills/lark-approval/references/lark-approval-approvals-search.md +103 -0
  5. package/skills/lark-approval/references/lark-approval-initiate.md +221 -0
  6. package/skills/lark-approval/references/lark-approval-instance-form-control-parameters.md +606 -0
  7. package/skills/lark-approval/references/lark-approval-instance-value-sourcing.md +108 -0
  8. package/skills/lark-approval/references/lark-approval-instances-cancel.md +78 -0
  9. package/skills/lark-approval/references/lark-approval-instances-cc.md +105 -0
  10. package/skills/lark-approval/references/lark-approval-instances-get.md +145 -0
  11. package/skills/lark-approval/references/lark-approval-instances-initiated.md +128 -0
  12. package/skills/lark-approval/references/lark-approval-tasks-add-sign.md +120 -0
  13. package/skills/lark-approval/references/lark-approval-tasks-approve.md +81 -0
  14. package/skills/lark-approval/references/lark-approval-tasks-query.md +85 -0
  15. package/skills/lark-approval/references/lark-approval-tasks-reject.md +73 -0
  16. package/skills/lark-approval/references/lark-approval-tasks-remind.md +82 -0
  17. package/skills/lark-approval/references/lark-approval-tasks-rollback.md +89 -0
  18. package/skills/lark-approval/references/lark-approval-tasks-transfer.md +91 -0
  19. package/skills/lark-apps/SKILL.md +110 -0
  20. package/skills/lark-apps/references/lark-apps-access-scope-get.md +28 -0
  21. package/skills/lark-apps/references/lark-apps-access-scope-set.md +40 -0
  22. package/skills/lark-apps/references/lark-apps-automation.md +164 -0
  23. package/skills/lark-apps/references/lark-apps-cloud-dev.md +120 -0
  24. package/skills/lark-apps/references/lark-apps-create.md +40 -0
  25. package/skills/lark-apps/references/lark-apps-db-execute.md +228 -0
  26. package/skills/lark-apps/references/lark-apps-db.md +162 -0
  27. package/skills/lark-apps/references/lark-apps-env-pull.md +37 -0
  28. package/skills/lark-apps/references/lark-apps-env.md +48 -0
  29. package/skills/lark-apps/references/lark-apps-file.md +96 -0
  30. package/skills/lark-apps/references/lark-apps-get.md +43 -0
  31. package/skills/lark-apps/references/lark-apps-git-credential.md +37 -0
  32. package/skills/lark-apps/references/lark-apps-html-publish.md +62 -0
  33. package/skills/lark-apps/references/lark-apps-init.md +36 -0
  34. package/skills/lark-apps/references/lark-apps-list.md +37 -0
  35. package/skills/lark-apps/references/lark-apps-local-dev.md +78 -0
  36. package/skills/lark-apps/references/lark-apps-observability.md +48 -0
  37. package/skills/lark-apps/references/lark-apps-openapi-key.md +79 -0
  38. package/skills/lark-apps/references/lark-apps-plugin-install.md +36 -0
  39. package/skills/lark-apps/references/lark-apps-plugin-list.md +23 -0
  40. package/skills/lark-apps/references/lark-apps-plugin-uninstall.md +25 -0
  41. package/skills/lark-apps/references/lark-apps-release-create.md +32 -0
  42. package/skills/lark-apps/references/lark-apps-release-get.md +28 -0
  43. package/skills/lark-apps/references/lark-apps-release-list.md +31 -0
  44. package/skills/lark-apps/references/lark-apps-role.md +133 -0
  45. package/skills/lark-apps/references/lark-apps-session-messages-list.md +53 -0
  46. package/skills/lark-apps/references/lark-apps-update.md +30 -0
  47. package/skills/lark-attendance/SKILL.md +57 -0
  48. package/skills/lark-base/SKILL.md +161 -0
  49. package/skills/lark-base/references/dashboard-block-data-config.md +376 -0
  50. package/skills/lark-base/references/formula-field-guide.md +737 -0
  51. package/skills/lark-base/references/lark-base-cell-value.md +158 -0
  52. package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +717 -0
  53. package/skills/lark-base/references/lark-base-dashboard.md +247 -0
  54. package/skills/lark-base/references/lark-base-data-analysis-sop.md +210 -0
  55. package/skills/lark-base/references/lark-base-data-query-guide.md +61 -0
  56. package/skills/lark-base/references/lark-base-data-query.md +454 -0
  57. package/skills/lark-base/references/lark-base-field-create.md +105 -0
  58. package/skills/lark-base/references/lark-base-field-json.md +527 -0
  59. package/skills/lark-base/references/lark-base-field-update.md +173 -0
  60. package/skills/lark-base/references/lark-base-form-detail.md +71 -0
  61. package/skills/lark-base/references/lark-base-form-questions-create.md +118 -0
  62. package/skills/lark-base/references/lark-base-form-questions-update.md +92 -0
  63. package/skills/lark-base/references/lark-base-form-submit.md +170 -0
  64. package/skills/lark-base/references/lark-base-record-batch-create.md +57 -0
  65. package/skills/lark-base/references/lark-base-record-batch-update.md +52 -0
  66. package/skills/lark-base/references/lark-base-record-history-list.md +43 -0
  67. package/skills/lark-base/references/lark-base-record-upsert.md +63 -0
  68. package/skills/lark-base/references/lark-base-role-guide.md +65 -0
  69. package/skills/lark-base/references/lark-base-view-set-filter.md +191 -0
  70. package/skills/lark-base/references/lark-base-workflow-guide.md +830 -0
  71. package/skills/lark-base/references/lark-base-workflow-schema.md +1071 -0
  72. package/skills/lark-base/references/lookup-field-guide.md +512 -0
  73. package/skills/lark-base/references/role-config.md +549 -0
  74. package/skills/lark-calendar/SKILL.md +198 -0
  75. package/skills/lark-calendar/references/lark-calendar-create.md +83 -0
  76. package/skills/lark-calendar/references/lark-calendar-meeting.md +40 -0
  77. package/skills/lark-calendar/references/lark-calendar-recurring.md +90 -0
  78. package/skills/lark-calendar/references/lark-calendar-room-find.md +109 -0
  79. package/skills/lark-calendar/references/lark-calendar-rsvp.md +38 -0
  80. package/skills/lark-calendar/references/lark-calendar-schedule-clear-time.md +59 -0
  81. package/skills/lark-calendar/references/lark-calendar-schedule-fuzzy-time.md +88 -0
  82. package/skills/lark-calendar/references/lark-calendar-schedule-meeting.md +122 -0
  83. package/skills/lark-calendar/references/lark-calendar-suggestion.md +121 -0
  84. package/skills/lark-calendar/references/lark-calendar-update.md +100 -0
  85. package/skills/lark-contact/SKILL.md +55 -0
  86. package/skills/lark-contact/references/lark-contact-get-user.md +19 -0
  87. package/skills/lark-contact/references/lark-contact-search-user.md +123 -0
  88. package/skills/lark-doc/SKILL.md +84 -0
  89. package/skills/lark-doc/references/lark-doc-create.md +80 -0
  90. package/skills/lark-doc/references/lark-doc-fetch.md +140 -0
  91. package/skills/lark-doc/references/lark-doc-history.md +107 -0
  92. package/skills/lark-doc/references/lark-doc-md.md +76 -0
  93. package/skills/lark-doc/references/lark-doc-media-download.md +50 -0
  94. package/skills/lark-doc/references/lark-doc-media-insert.md +114 -0
  95. package/skills/lark-doc/references/lark-doc-media-preview.md +41 -0
  96. package/skills/lark-doc/references/lark-doc-mindnote.md +128 -0
  97. package/skills/lark-doc/references/lark-doc-resource-cover.md +70 -0
  98. package/skills/lark-doc/references/lark-doc-update.md +260 -0
  99. package/skills/lark-doc/references/lark-doc-whiteboard.md +158 -0
  100. package/skills/lark-doc/references/lark-doc-word-stat.md +93 -0
  101. package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +35 -0
  102. package/skills/lark-doc/references/lark-doc-xml.md +182 -0
  103. package/skills/lark-doc/references/style/lark-doc-create-workflow.md +47 -0
  104. package/skills/lark-doc/references/style/lark-doc-style.md +68 -0
  105. package/skills/lark-doc/references/style/lark-doc-update-workflow.md +48 -0
  106. package/skills/lark-doc/scripts/doc_word_stat.py +1243 -0
  107. package/skills/lark-drive/SKILL.md +232 -0
  108. package/skills/lark-drive/references/lark-drive-add-comment.md +193 -0
  109. package/skills/lark-drive/references/lark-drive-apply-permission.md +77 -0
  110. package/skills/lark-drive/references/lark-drive-comment-location.md +205 -0
  111. package/skills/lark-drive/references/lark-drive-comments-guide.md +80 -0
  112. package/skills/lark-drive/references/lark-drive-cover.md +79 -0
  113. package/skills/lark-drive/references/lark-drive-create-folder.md +73 -0
  114. package/skills/lark-drive/references/lark-drive-create-shortcut.md +103 -0
  115. package/skills/lark-drive/references/lark-drive-delete.md +103 -0
  116. package/skills/lark-drive/references/lark-drive-download.md +31 -0
  117. package/skills/lark-drive/references/lark-drive-export-download.md +50 -0
  118. package/skills/lark-drive/references/lark-drive-export.md +174 -0
  119. package/skills/lark-drive/references/lark-drive-files-list.md +183 -0
  120. package/skills/lark-drive/references/lark-drive-import.md +178 -0
  121. package/skills/lark-drive/references/lark-drive-inspect.md +52 -0
  122. package/skills/lark-drive/references/lark-drive-list-comments.md +125 -0
  123. package/skills/lark-drive/references/lark-drive-member-add.md +66 -0
  124. package/skills/lark-drive/references/lark-drive-move.md +122 -0
  125. package/skills/lark-drive/references/lark-drive-permission-guide.md +53 -0
  126. package/skills/lark-drive/references/lark-drive-preview.md +87 -0
  127. package/skills/lark-drive/references/lark-drive-pull.md +137 -0
  128. package/skills/lark-drive/references/lark-drive-push.md +189 -0
  129. package/skills/lark-drive/references/lark-drive-reactions.md +113 -0
  130. package/skills/lark-drive/references/lark-drive-search.md +273 -0
  131. package/skills/lark-drive/references/lark-drive-secure-label.md +52 -0
  132. package/skills/lark-drive/references/lark-drive-status.md +135 -0
  133. package/skills/lark-drive/references/lark-drive-task-result.md +355 -0
  134. package/skills/lark-drive/references/lark-drive-upload.md +101 -0
  135. package/skills/lark-drive/references/lark-drive-version-delete.md +38 -0
  136. package/skills/lark-drive/references/lark-drive-version-get.md +71 -0
  137. package/skills/lark-drive/references/lark-drive-version-history.md +73 -0
  138. package/skills/lark-drive/references/lark-drive-version-revert.md +35 -0
  139. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-analysis.md +249 -0
  140. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-discovery.md +253 -0
  141. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-execution.md +200 -0
  142. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-planning.md +336 -0
  143. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-rollback.md +308 -0
  144. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize.md +232 -0
  145. package/skills/lark-drive/references/lark-drive-workflow-permission-governance-commands.md +168 -0
  146. package/skills/lark-drive/references/lark-drive-workflow-permission-governance-outputs.md +424 -0
  147. package/skills/lark-drive/references/lark-drive-workflow-permission-governance.md +207 -0
  148. package/skills/lark-drive/references/lark-drive-workflow.md +131 -0
  149. package/skills/lark-event/SKILL.md +155 -0
  150. package/skills/lark-event/references/lark-event-approval.md +170 -0
  151. package/skills/lark-event/references/lark-event-im.md +87 -0
  152. package/skills/lark-event/references/lark-event-minutes.md +54 -0
  153. package/skills/lark-event/references/lark-event-task.md +78 -0
  154. package/skills/lark-event/references/lark-event-vc.md +106 -0
  155. package/skills/lark-event/references/lark-event-whiteboard.md +67 -0
  156. package/skills/lark-im/SKILL.md +249 -0
  157. package/skills/lark-im/references/card/card-2.0-schema.md +107 -0
  158. package/skills/lark-im/references/card/components/button.md +63 -0
  159. package/skills/lark-im/references/card/components/chart.md +57 -0
  160. package/skills/lark-im/references/card/components/checker.md +38 -0
  161. package/skills/lark-im/references/card/components/collapsible_panel.md +46 -0
  162. package/skills/lark-im/references/card/components/column_set.md +53 -0
  163. package/skills/lark-im/references/card/components/date_picker.md +34 -0
  164. package/skills/lark-im/references/card/components/div.md +36 -0
  165. package/skills/lark-im/references/card/components/form.md +51 -0
  166. package/skills/lark-im/references/card/components/header.md +34 -0
  167. package/skills/lark-im/references/card/components/hr.md +17 -0
  168. package/skills/lark-im/references/card/components/img.md +34 -0
  169. package/skills/lark-im/references/card/components/img_combination.md +30 -0
  170. package/skills/lark-im/references/card/components/input.md +43 -0
  171. package/skills/lark-im/references/card/components/interactive_container.md +46 -0
  172. package/skills/lark-im/references/card/components/markdown.md +56 -0
  173. package/skills/lark-im/references/card/components/multi_select_person.md +40 -0
  174. package/skills/lark-im/references/card/components/multi_select_static.md +40 -0
  175. package/skills/lark-im/references/card/components/overflow.md +36 -0
  176. package/skills/lark-im/references/card/components/person.md +30 -0
  177. package/skills/lark-im/references/card/components/person_list.md +31 -0
  178. package/skills/lark-im/references/card/components/picker_datetime.md +34 -0
  179. package/skills/lark-im/references/card/components/picker_time.md +34 -0
  180. package/skills/lark-im/references/card/components/recycling_container.md +35 -0
  181. package/skills/lark-im/references/card/components/select_img.md +42 -0
  182. package/skills/lark-im/references/card/components/select_person.md +39 -0
  183. package/skills/lark-im/references/card/components/select_static.md +43 -0
  184. package/skills/lark-im/references/card/components/table.md +53 -0
  185. package/skills/lark-im/references/card/lark-im-card-create.md +180 -0
  186. package/skills/lark-im/references/card/lark-im-card-style.md +281 -0
  187. package/skills/lark-im/references/card/resource/colors.md +34 -0
  188. package/skills/lark-im/references/card/resource/icons.md +38 -0
  189. package/skills/lark-im/references/lark-im-card-action-reply.md +175 -0
  190. package/skills/lark-im/references/lark-im-chat-create.md +162 -0
  191. package/skills/lark-im/references/lark-im-chat-identity.md +55 -0
  192. package/skills/lark-im/references/lark-im-chat-list.md +166 -0
  193. package/skills/lark-im/references/lark-im-chat-members-list.md +83 -0
  194. package/skills/lark-im/references/lark-im-chat-messages-list.md +157 -0
  195. package/skills/lark-im/references/lark-im-chat-search.md +142 -0
  196. package/skills/lark-im/references/lark-im-chat-update.md +84 -0
  197. package/skills/lark-im/references/lark-im-feed-group-list-item.md +68 -0
  198. package/skills/lark-im/references/lark-im-feed-group-list.md +65 -0
  199. package/skills/lark-im/references/lark-im-feed-group-query-item.md +44 -0
  200. package/skills/lark-im/references/lark-im-feed-groups.md +452 -0
  201. package/skills/lark-im/references/lark-im-feed-shortcut-create.md +97 -0
  202. package/skills/lark-im/references/lark-im-feed-shortcut-list.md +103 -0
  203. package/skills/lark-im/references/lark-im-feed-shortcut-remove.md +48 -0
  204. package/skills/lark-im/references/lark-im-flag-cancel.md +67 -0
  205. package/skills/lark-im/references/lark-im-flag-create.md +67 -0
  206. package/skills/lark-im/references/lark-im-flag-list.md +100 -0
  207. package/skills/lark-im/references/lark-im-message-enrichment.md +54 -0
  208. package/skills/lark-im/references/lark-im-messages-mget.md +99 -0
  209. package/skills/lark-im/references/lark-im-messages-reply.md +277 -0
  210. package/skills/lark-im/references/lark-im-messages-resources-download.md +94 -0
  211. package/skills/lark-im/references/lark-im-messages-search.md +234 -0
  212. package/skills/lark-im/references/lark-im-messages-send.md +279 -0
  213. package/skills/lark-im/references/lark-im-reactions.md +299 -0
  214. package/skills/lark-im/references/lark-im-threads-messages-list.md +115 -0
  215. package/skills/lark-mail/SKILL.md +290 -0
  216. package/skills/lark-mail/assets/templates/job-application--resume.html +33 -0
  217. package/skills/lark-mail/assets/templates/newsletter--weekly-brief.html +50 -0
  218. package/skills/lark-mail/assets/templates/research--market-report.html +256 -0
  219. package/skills/lark-mail/assets/templates/weekly--personal-report.html +43 -0
  220. package/skills/lark-mail/assets/templates/weekly--team-report.html +9 -0
  221. package/skills/lark-mail/references/lark-mail-calendar-invite.md +36 -0
  222. package/skills/lark-mail/references/lark-mail-decline-receipt.md +115 -0
  223. package/skills/lark-mail/references/lark-mail-draft-create.md +127 -0
  224. package/skills/lark-mail/references/lark-mail-draft-edit.md +404 -0
  225. package/skills/lark-mail/references/lark-mail-forward.md +239 -0
  226. package/skills/lark-mail/references/lark-mail-html.md +333 -0
  227. package/skills/lark-mail/references/lark-mail-lint-html.md +243 -0
  228. package/skills/lark-mail/references/lark-mail-message-modify.md +48 -0
  229. package/skills/lark-mail/references/lark-mail-message-trash.md +41 -0
  230. package/skills/lark-mail/references/lark-mail-message.md +233 -0
  231. package/skills/lark-mail/references/lark-mail-messages.md +108 -0
  232. package/skills/lark-mail/references/lark-mail-recall.md +66 -0
  233. package/skills/lark-mail/references/lark-mail-recipient-search.md +59 -0
  234. package/skills/lark-mail/references/lark-mail-reply-all.md +213 -0
  235. package/skills/lark-mail/references/lark-mail-reply.md +249 -0
  236. package/skills/lark-mail/references/lark-mail-rules.md +31 -0
  237. package/skills/lark-mail/references/lark-mail-send-as.md +44 -0
  238. package/skills/lark-mail/references/lark-mail-send-receipt.md +120 -0
  239. package/skills/lark-mail/references/lark-mail-send-status.md +46 -0
  240. package/skills/lark-mail/references/lark-mail-send.md +222 -0
  241. package/skills/lark-mail/references/lark-mail-share-to-chat.md +87 -0
  242. package/skills/lark-mail/references/lark-mail-signature.md +98 -0
  243. package/skills/lark-mail/references/lark-mail-template-create.md +129 -0
  244. package/skills/lark-mail/references/lark-mail-template-update.md +150 -0
  245. package/skills/lark-mail/references/lark-mail-template.md +54 -0
  246. package/skills/lark-mail/references/lark-mail-thread.md +111 -0
  247. package/skills/lark-mail/references/lark-mail-triage.md +131 -0
  248. package/skills/lark-mail/references/lark-mail-watch.md +94 -0
  249. package/skills/lark-markdown/SKILL.md +70 -0
  250. package/skills/lark-markdown/references/lark-markdown-create.md +114 -0
  251. package/skills/lark-markdown/references/lark-markdown-diff.md +156 -0
  252. package/skills/lark-markdown/references/lark-markdown-fetch.md +79 -0
  253. package/skills/lark-markdown/references/lark-markdown-overwrite.md +85 -0
  254. package/skills/lark-markdown/references/lark-markdown-patch.md +160 -0
  255. package/skills/lark-minutes/SKILL.md +207 -0
  256. package/skills/lark-minutes/references/lark-minutes-detail.md +62 -0
  257. package/skills/lark-minutes/references/lark-minutes-download.md +135 -0
  258. package/skills/lark-minutes/references/lark-minutes-search.md +202 -0
  259. package/skills/lark-minutes/references/lark-minutes-speaker-replace.md +107 -0
  260. package/skills/lark-minutes/references/lark-minutes-summary.md +120 -0
  261. package/skills/lark-minutes/references/lark-minutes-todo.md +136 -0
  262. package/skills/lark-minutes/references/lark-minutes-update.md +39 -0
  263. package/skills/lark-minutes/references/lark-minutes-upload.md +104 -0
  264. package/skills/lark-note/SKILL.md +94 -0
  265. package/skills/lark-note/references/lark-note-detail.md +26 -0
  266. package/skills/lark-note/references/lark-note-transcript.md +23 -0
  267. package/skills/lark-okr/SKILL.md +122 -0
  268. package/skills/lark-okr/references/lark-okr-alignments.md +180 -0
  269. package/skills/lark-okr/references/lark-okr-batch-create.md +106 -0
  270. package/skills/lark-okr/references/lark-okr-contentblock.md +427 -0
  271. package/skills/lark-okr/references/lark-okr-cycle-detail.md +91 -0
  272. package/skills/lark-okr/references/lark-okr-cycle-list.md +93 -0
  273. package/skills/lark-okr/references/lark-okr-entities.md +329 -0
  274. package/skills/lark-okr/references/lark-okr-image-upload.md +116 -0
  275. package/skills/lark-okr/references/lark-okr-indicator-update.md +80 -0
  276. package/skills/lark-okr/references/lark-okr-indicators.md +223 -0
  277. package/skills/lark-okr/references/lark-okr-patch.md +104 -0
  278. package/skills/lark-okr/references/lark-okr-progress-create.md +85 -0
  279. package/skills/lark-okr/references/lark-okr-progress-delete.md +47 -0
  280. package/skills/lark-okr/references/lark-okr-progress-get.md +93 -0
  281. package/skills/lark-okr/references/lark-okr-progress-list.md +80 -0
  282. package/skills/lark-okr/references/lark-okr-progress-update.md +85 -0
  283. package/skills/lark-okr/references/lark-okr-reorder.md +81 -0
  284. package/skills/lark-okr/references/lark-okr-weight.md +96 -0
  285. package/skills/lark-openapi-explorer/SKILL.md +153 -0
  286. package/skills/lark-shared/SKILL.md +211 -0
  287. package/skills/lark-shared/references/lark-wiki-token-routing.md +42 -0
  288. package/skills/lark-sheets/SKILL.md +234 -0
  289. package/skills/lark-sheets/references/lark-sheets-batch-update.md +200 -0
  290. package/skills/lark-sheets/references/lark-sheets-changeset.md +105 -0
  291. package/skills/lark-sheets/references/lark-sheets-chart.md +332 -0
  292. package/skills/lark-sheets/references/lark-sheets-conditional-format.md +181 -0
  293. package/skills/lark-sheets/references/lark-sheets-filter-view.md +137 -0
  294. package/skills/lark-sheets/references/lark-sheets-filter.md +130 -0
  295. package/skills/lark-sheets/references/lark-sheets-float-image.md +159 -0
  296. package/skills/lark-sheets/references/lark-sheets-formula-translation.md +276 -0
  297. package/skills/lark-sheets/references/lark-sheets-formula-verify.md +77 -0
  298. package/skills/lark-sheets/references/lark-sheets-history.md +93 -0
  299. package/skills/lark-sheets/references/lark-sheets-pivot-table.md +171 -0
  300. package/skills/lark-sheets/references/lark-sheets-range-operations.md +297 -0
  301. package/skills/lark-sheets/references/lark-sheets-read-data.md +235 -0
  302. package/skills/lark-sheets/references/lark-sheets-search-replace.md +111 -0
  303. package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +212 -0
  304. package/skills/lark-sheets/references/lark-sheets-sparkline.md +149 -0
  305. package/skills/lark-sheets/references/lark-sheets-visual-standards.md +205 -0
  306. package/skills/lark-sheets/references/lark-sheets-workbook.md +420 -0
  307. package/skills/lark-sheets/references/lark-sheets-write-cells.md +575 -0
  308. package/skills/lark-sheets/scripts/sheets_df.py +32 -0
  309. package/skills/lark-skill-maker/SKILL.md +85 -0
  310. package/skills/lark-slides/SKILL.md +285 -0
  311. package/skills/lark-slides/references/asset-planning.md +135 -0
  312. package/skills/lark-slides/references/examples.md +91 -0
  313. package/skills/lark-slides/references/iconpark-index.json +41901 -0
  314. package/skills/lark-slides/references/iconpark.md +46 -0
  315. package/skills/lark-slides/references/lark-slides-create.md +156 -0
  316. package/skills/lark-slides/references/lark-slides-edit-workflows.md +144 -0
  317. package/skills/lark-slides/references/lark-slides-media-upload.md +127 -0
  318. package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +89 -0
  319. package/skills/lark-slides/references/lark-slides-replace-pages.md +95 -0
  320. package/skills/lark-slides/references/lark-slides-replace-slide.md +240 -0
  321. package/skills/lark-slides/references/lark-slides-screenshot.md +97 -0
  322. package/skills/lark-slides/references/lark-slides-whiteboard.md +331 -0
  323. package/skills/lark-slides/references/lark-slides-xml-get.md +100 -0
  324. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +125 -0
  325. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +110 -0
  326. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +189 -0
  327. package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +99 -0
  328. package/skills/lark-slides/references/planning-layer.md +246 -0
  329. package/skills/lark-slides/references/slide-templates.md +201 -0
  330. package/skills/lark-slides/references/slides_chart_demo.xml +1 -0
  331. package/skills/lark-slides/references/slides_demo.xml +226 -0
  332. package/skills/lark-slides/references/slides_xml_schema_definition.xml +3054 -0
  333. package/skills/lark-slides/references/troubleshooting.md +45 -0
  334. package/skills/lark-slides/references/validation-checklist.md +119 -0
  335. package/skills/lark-slides/references/visual-planning.md +255 -0
  336. package/skills/lark-slides/references/xml-format-guide.md +433 -0
  337. package/skills/lark-slides/references/xml-schema-quick-ref.md +249 -0
  338. package/skills/lark-slides/scripts/iconpark_tool.py +362 -0
  339. package/skills/lark-slides/scripts/iconpark_tool_test.py +177 -0
  340. package/skills/lark-slides/scripts/xml_text_overlap_lint.py +1220 -0
  341. package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +1170 -0
  342. package/skills/lark-task/SKILL.md +168 -0
  343. package/skills/lark-task/references/lark-task-assign.md +38 -0
  344. package/skills/lark-task/references/lark-task-comment.md +28 -0
  345. package/skills/lark-task/references/lark-task-complete.md +27 -0
  346. package/skills/lark-task/references/lark-task-create.md +70 -0
  347. package/skills/lark-task/references/lark-task-followers.md +35 -0
  348. package/skills/lark-task/references/lark-task-get-my-tasks.md +61 -0
  349. package/skills/lark-task/references/lark-task-get-related-tasks.md +53 -0
  350. package/skills/lark-task/references/lark-task-reminder.md +36 -0
  351. package/skills/lark-task/references/lark-task-reopen.md +27 -0
  352. package/skills/lark-task/references/lark-task-search.md +41 -0
  353. package/skills/lark-task/references/lark-task-set-ancestor.md +32 -0
  354. package/skills/lark-task/references/lark-task-tasklist-create.md +35 -0
  355. package/skills/lark-task/references/lark-task-tasklist-members.md +36 -0
  356. package/skills/lark-task/references/lark-task-tasklist-search.md +38 -0
  357. package/skills/lark-task/references/lark-task-tasklist-task-add.md +38 -0
  358. package/skills/lark-task/references/lark-task-update.md +37 -0
  359. package/skills/lark-task/references/lark-task-upload-attachment.md +59 -0
  360. package/skills/lark-vc/SKILL.md +205 -0
  361. package/skills/lark-vc/references/lark-vc-detail.md +44 -0
  362. package/skills/lark-vc/references/lark-vc-recording.md +152 -0
  363. package/skills/lark-vc/references/lark-vc-search.md +163 -0
  364. package/skills/lark-vc/references/vc-domain-boundaries.md +196 -0
  365. package/skills/lark-vc-agent/SKILL.md +201 -0
  366. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md +315 -0
  367. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-join.md +141 -0
  368. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +105 -0
  369. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-list-active.md +91 -0
  370. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-message-send.md +134 -0
  371. package/skills/lark-whiteboard/SKILL.md +47 -0
  372. package/skills/lark-whiteboard/elements/connectors.md +102 -0
  373. package/skills/lark-whiteboard/elements/content.md +40 -0
  374. package/skills/lark-whiteboard/elements/image.md +80 -0
  375. package/skills/lark-whiteboard/elements/layout.md +374 -0
  376. package/skills/lark-whiteboard/elements/schema.md +357 -0
  377. package/skills/lark-whiteboard/elements/style.md +318 -0
  378. package/skills/lark-whiteboard/elements/typography.md +73 -0
  379. package/skills/lark-whiteboard/references/lark-whiteboard-query.md +60 -0
  380. package/skills/lark-whiteboard/references/lark-whiteboard-update.md +122 -0
  381. package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +97 -0
  382. package/skills/lark-whiteboard/routes/dsl.md +107 -0
  383. package/skills/lark-whiteboard/routes/mermaid.md +27 -0
  384. package/skills/lark-whiteboard/routes/svg-edit.md +85 -0
  385. package/skills/lark-whiteboard/routes/svg.md +54 -0
  386. package/skills/lark-whiteboard/scenes/architecture.md +433 -0
  387. package/skills/lark-whiteboard/scenes/bar-chart.md +187 -0
  388. package/skills/lark-whiteboard/scenes/comparison.md +135 -0
  389. package/skills/lark-whiteboard/scenes/fishbone.md +238 -0
  390. package/skills/lark-whiteboard/scenes/flowchart.md +185 -0
  391. package/skills/lark-whiteboard/scenes/flywheel.md +195 -0
  392. package/skills/lark-whiteboard/scenes/funnel.md +101 -0
  393. package/skills/lark-whiteboard/scenes/line-chart.md +214 -0
  394. package/skills/lark-whiteboard/scenes/mermaid.md +130 -0
  395. package/skills/lark-whiteboard/scenes/milestone.md +139 -0
  396. package/skills/lark-whiteboard/scenes/organization.md +173 -0
  397. package/skills/lark-whiteboard/scenes/photo-showcase.md +126 -0
  398. package/skills/lark-whiteboard/scenes/pyramid.md +99 -0
  399. package/skills/lark-whiteboard/scenes/swimlane.md +371 -0
  400. package/skills/lark-whiteboard/scenes/treemap.md +216 -0
  401. package/skills/lark-wiki/SKILL.md +114 -0
  402. package/skills/lark-wiki/references/lark-wiki-delete-space.md +205 -0
  403. package/skills/lark-wiki/references/lark-wiki-member-add.md +67 -0
  404. package/skills/lark-wiki/references/lark-wiki-member-list.md +76 -0
  405. package/skills/lark-wiki/references/lark-wiki-member-remove.md +61 -0
  406. package/skills/lark-wiki/references/lark-wiki-move-to-drive.md +122 -0
  407. package/skills/lark-wiki/references/lark-wiki-move.md +185 -0
  408. package/skills/lark-wiki/references/lark-wiki-node-copy.md +72 -0
  409. package/skills/lark-wiki/references/lark-wiki-node-create.md +127 -0
  410. package/skills/lark-wiki/references/lark-wiki-node-delete.md +62 -0
  411. package/skills/lark-wiki/references/lark-wiki-node-get.md +57 -0
  412. package/skills/lark-wiki/references/lark-wiki-node-list.md +95 -0
  413. package/skills/lark-wiki/references/lark-wiki-space-create.md +46 -0
  414. package/skills/lark-wiki/references/lark-wiki-space-list.md +68 -0
  415. package/skills/lark-workflow-meeting-summary/SKILL.md +122 -0
  416. package/skills/lark-workflow-standup-report/SKILL.md +122 -0
@@ -0,0 +1,162 @@
1
+ # im +chat-create
2
+
3
+ > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
+
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
+
7
+ This skill maps to the shortcut: `lark-cli im +chat-create` (internally calls `POST /open-apis/im/v1/chats`).
8
+
9
+ - `--as bot` requires the `im:chat:create` scope.
10
+ - `--as user` requires the `im:chat:create_by_user` scope.
11
+
12
+ ## Commands
13
+
14
+ ```bash
15
+ # Create a private group (default)
16
+ lark-cli im +chat-create --name "My Group"
17
+
18
+ # Create a public group (name is required and must be at least 2 characters)
19
+ lark-cli im +chat-create --name "Public Group" --type public
20
+
21
+ # Create a topic chat
22
+ lark-cli im +chat-create --name "Topic Group" --chat-mode topic
23
+
24
+ # Specify the group owner
25
+ lark-cli im +chat-create --name "My Group" --owner ou_xxx
26
+
27
+ # Invite user members (comma-separated open_ids, up to 50)
28
+ lark-cli im +chat-create --name "My Group" --users "ou_aaa,ou_bbb"
29
+
30
+ # Invite bot members (comma-separated app IDs, up to 5)
31
+ lark-cli im +chat-create --name "My Group" --bots "cli_aaa,cli_bbb"
32
+
33
+ # Invite both users and bots
34
+ lark-cli im +chat-create --name "My Group" --users "ou_aaa" --bots "cli_aaa"
35
+
36
+ # Make the creating bot a group manager (bot identity only)
37
+ lark-cli im +chat-create --name "My Group" --set-bot-manager --as bot
38
+
39
+ # JSON output
40
+ lark-cli im +chat-create --name "My Group" --format json
41
+
42
+ # Create a group with bot identity
43
+ lark-cli im +chat-create --name "My Group" --users "ou_aaa" --as bot
44
+
45
+ # Create a group with user identity
46
+ lark-cli im +chat-create --name "My Group" --users "ou_aaa,ou_bbb" --as user
47
+
48
+ # Preview the request without creating anything
49
+ lark-cli im +chat-create --name "My Group" --dry-run
50
+ ```
51
+
52
+ ## Parameters
53
+
54
+ | Parameter | Required | Limits | Description |
55
+ |------|------|------|------|
56
+ | `--name <name>` | Required for public groups | Max 60 characters; at least 2 characters for public groups | Group name (`"(no subject)"` for private groups if omitted) |
57
+ | `--description <text>` | No | Max 100 characters | Group description |
58
+ | `--users <ids>` | No | Up to 50, format `ou_xxx` | Comma-separated user open_ids |
59
+ | `--bots <ids>` | No | Up to 5, format `cli_xxx` | Comma-separated bot app IDs |
60
+ | `--owner <open_id>` | No | Format `ou_xxx` | Owner open_id (defaults to the bot when using `--as bot`, or the authorized user when using `--as user`) |
61
+ | `--type <type>` | No | `private` (default) or `public` | Group type. Default to `private`; pass `public` only when the user explicitly asks for a discoverable/public group. |
62
+ | `--chat-mode <mode>` | No | `group` (default) or `topic` | Group mode; `topic` creates a topic chat (not the same as `group_message_type=thread`). When the user asks for a topic chat, pass `topic` explicitly — do not rely on the default. |
63
+ | `--set-bot-manager` | No | - | Set the creating bot as a group manager (only effective with `--as bot`) |
64
+ | `--format json` | No | - | Output as JSON |
65
+ | `--as <identity>` | No | `bot` or `user` | Identity type |
66
+ | `--dry-run` | No | - | Preview the request without executing it |
67
+
68
+ > **`--chat-mode topic` vs "normal group with topic-message mode"**: `--chat-mode topic` here creates a 话题群 — the entire group is a topic chat. This is different from "normal group (`chat_mode=group`) + topic-message mode (`group_message_type=thread`)". This CLI exposes only `chat_mode`; `group_message_type` is intentionally not surfaced.
69
+
70
+ ## AI Usage Guidance
71
+
72
+ ### When using `--as bot`
73
+
74
+ Bot may fail to invite users who are mutually invisible to it during group creation (error 232043). To avoid this, use the **two-step flow** below instead of passing other users' open_ids in `--users`.
75
+
76
+ 1. **Get the current user's open_id:** Run `lark-cli contact +search-user --query "<name or email>"` to retrieve it.
77
+ 2. **Create the group — by default include the current user:**
78
+
79
+ ```bash
80
+ lark-cli im +chat-create --name "<group name>" \
81
+ --users "<current user open_id>" --as bot
82
+ ```
83
+
84
+ **Default behavior:** Always add the current user to the group, unless the user explicitly says "do not add me" or "bot-only group" — only then omit `--users`.
85
+
86
+ 3. **Add other members via user identity** (requires the current user to be in the group):
87
+
88
+ ```bash
89
+ lark-cli im chat.members create \
90
+ --params '{"chat_id":"<chat_id from step 2>","member_id_type":"open_id","succeed_type":1}' \
91
+ --data '{"id_list":["ou_aaa","ou_bbb"]}' \
92
+ --as user
93
+ ```
94
+
95
+ `succeed_type=1` ensures reachable users are added successfully; unreachable ones are returned in `invalid_id_list` instead of failing the whole request.
96
+
97
+ 4. **Check `invalid_id_list`** in the response. If non-empty, report to the user which members could not be added.
98
+
99
+ ### When using `--as user`
100
+
101
+ User identity does not have the bot visibility limitation, so you can create the group and invite members in one step:
102
+
103
+ ```bash
104
+ lark-cli im +chat-create --name "<group name>" --users "ou_aaa,ou_bbb" --as user
105
+ ```
106
+
107
+ The authorized user is automatically the group creator and member.
108
+
109
+ ## Output Fields
110
+
111
+ | Field | Description |
112
+ |------|------|
113
+ | `chat_id` | The new group's ID (`oc_xxx` format) |
114
+ | `name` | Group name |
115
+ | `chat_type` | Group type (`private` / `public`) |
116
+ | `owner_id` | Owner ID (may be empty when a bot creates the group and `--owner` is not specified) |
117
+ | `external` | Whether the group is external |
118
+ | `share_link` | Group share link (omitted if retrieval fails) |
119
+
120
+ ## Usage Scenarios
121
+
122
+ ### Scenario 1: Create a group and specify the owner
123
+
124
+ ```bash
125
+ lark-cli im +chat-create --name "Project Discussion Group" --owner ou_xxx
126
+ ```
127
+
128
+ ### Scenario 2: Create a group and invite users and a bot
129
+
130
+ ```bash
131
+ lark-cli im +chat-create --name "Project Discussion Group" \
132
+ --owner ou_xxx \
133
+ --users "ou_aaa,ou_bbb" \
134
+ --bots "cli_aaa"
135
+ ```
136
+
137
+ ### Scenario 3: Create a group and send a welcome message
138
+
139
+ ```bash
140
+ CHAT_ID=$(lark-cli im +chat-create --name "New Group" --format json | jq -r '.data.chat_id')
141
+ lark-cli im +messages-send --chat-id "$CHAT_ID" --text "Welcome, everyone!"
142
+ ```
143
+
144
+ ## Common Errors and Troubleshooting
145
+
146
+ | Symptom | Root Cause | Solution |
147
+ |---------|---------|---------|
148
+ | Permission denied (99991672) | The app does not have `im:chat:create` (bot) or `im:chat:create_by_user` (user) permission enabled | Enable the required permission for the app in the Open Platform console |
149
+ | `--name is required for public groups and must be at least 2 characters` | A public group was created without a name or with a name shorter than 2 characters | Provide a name with at least 2 characters |
150
+ | `--name exceeds the maximum of 60 characters` | The group name is too long | Shorten the name to 60 characters or fewer |
151
+ | `--description exceeds the maximum of 100 characters` | The group description is too long | Shorten the description to 100 characters or fewer |
152
+ | `--users exceeds the maximum of 50` | Too many user members were provided | Split the operation into batches and add more members later |
153
+ | `--bots exceeds the maximum of 5` | Too many bot members were provided | Invite at most 5 bots at once |
154
+ | `invalid user id: expected open_id (ou_xxx)` | Invalid user ID format | Use the `ou_xxx` format for users |
155
+ | `invalid bot id: expected app ID (cli_xxx)` | Invalid bot ID format | Use the `cli_xxx` format for bots |
156
+ | `invalid --owner: expected open_id (ou_xxx)` | Invalid owner ID format | Use the `ou_xxx` format for the owner |
157
+ | `bot is invisible to user` (232043) | The bot and target users are mutually invisible | Follow the two-step flow in AI Usage Guidance above — do not pass other users in `--users` during creation |
158
+
159
+ ## References
160
+
161
+ - [lark-im](../SKILL.md) - all IM commands
162
+ - [lark-shared](../../lark-shared/SKILL.md) - authentication and global parameters
@@ -0,0 +1,55 @@
1
+ # Group Chat Identity Rules
2
+
3
+ > Warning: The most common source of failure in group operations is choosing the wrong identity. Confirm the identity before performing the action.
4
+
5
+ Group-chat operations support both `--as user` (UAT user identity) and `--as bot` (TAT bot identity). Choosing the correct identity is critical for success.
6
+
7
+ ## Basic Principles
8
+
9
+ - **If the user explicitly specifies an identity:** use exactly what the user requested (`--as user` or `--as bot`) without guessing.
10
+ - **If the user does not specify an identity:** infer the correct identity from context instead of relying on the default.
11
+
12
+ ## Identity Selection by Operation
13
+
14
+ | Operation | Recommended Identity | Why |
15
+ |------|---------|-----------------------------------|
16
+ | Create group (`+chat-create`) | Depends on the scenario | Infer from context |
17
+ | Add members (member-management flow) | `--as user` | Bot visibility is limited and often fails when the target user is mutually invisible to the bot (232024) |
18
+ | Update group (`+chat-update`) | Owner identity | Permission changes require owner/admin privileges; owner transfer requires owner identity |
19
+
20
+ ## Inferring the Owner
21
+
22
+ When an owner-level action is needed and the owner is unknown, infer in this order:
23
+
24
+ 1. A bot created the group and `--owner` was **not** specified -> the owner is the bot (`--as bot`)
25
+ 2. A bot created the group and `--owner ou_xxx` **was** specified -> the owner is that user (`--as user`)
26
+ 3. A user created the group and `--owner` was **not** specified -> the owner is the current user (`--as user`)
27
+ 4. Still unclear -> ask the user to confirm who owns the group before making owner-level changes
28
+
29
+ ### When the Owner Is Neither the Current User Nor the Bot
30
+
31
+ If the query shows that the owner is a third-party user (`owner_id` is neither the currently authorized user nor the bot), the current identity does not have owner privileges. In that case:
32
+
33
+ - **Permission/setting changes:** if the bot is an admin of the group, `--as bot` can still perform admin-level operations such as renaming the group or changing permissions.
34
+ - **Owner-only actions such as owner transfer:** require the actual owner to complete UAT authorization via `lark-cli auth login`, then perform the action as that owner.
35
+ - Explain the limitation clearly to the user instead of retrying blindly.
36
+
37
+ ## Common Pitfalls
38
+
39
+ ### Inviting Members During Group Creation
40
+
41
+ If a bot creates a group and `--users` includes users who are mutually invisible to the bot, the entire request fails with 232043. Use two steps instead:
42
+
43
+ 1. Create the group with the bot first, excluding invisible users: `lark-cli im +chat-create --name "Group Name"`
44
+ 2. Add users later with a user-identity member-management flow
45
+
46
+ ### Insufficient Privileges
47
+
48
+ - **232016 / 232002 / 232017:** the current identity is not the owner or an admin -> switch to the owner identity
49
+ - **232011:** the current user is not in the group -> use a group-member identity, or join the group first
50
+ - **232024:** the bot and the target user are mutually invisible -> switch to `--as user`
51
+
52
+ ## References
53
+
54
+ - [lark-im](../SKILL.md) - all IM commands
55
+ - [lark-shared](../../lark-shared/SKILL.md) - authentication and global parameters
@@ -0,0 +1,166 @@
1
+ # im +chat-list
2
+
3
+ > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
+
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
+
7
+ **Defaults to groups only**; pass `--types=p2p,group` (or `--types p2p --types group`) to also include p2p single chats (user identity only — see ["Bot identity and p2p"](#bot-identity-and-p2p)). Supports pagination, sort order, and (user identity only) muted-chat filtering.
8
+
9
+ This skill maps to the shortcut: `lark-cli im +chat-list` (internally calls `GET /open-apis/im/v1/chats`).
10
+
11
+ ## Commands
12
+
13
+ ```bash
14
+ # List the user's chats (default sort: create_time, ascending)
15
+ lark-cli im +chat-list
16
+
17
+ # Sort by recent activity (most recently active first)
18
+ lark-cli im +chat-list --sort active_time
19
+
20
+ # Limit page size
21
+ lark-cli im +chat-list --page-size 50
22
+
23
+ # Pagination
24
+ lark-cli im +chat-list --page-token "xxx"
25
+
26
+ # Drop muted chats (user identity only)
27
+ lark-cli im +chat-list --exclude-muted
28
+
29
+ # JSON output
30
+ lark-cli im +chat-list --format json
31
+
32
+ # Preview the request without executing it
33
+ lark-cli im +chat-list --dry-run
34
+
35
+ # Include p2p single chats (user identity only) — comma form
36
+ lark-cli im +chat-list --as user --types p2p,group
37
+
38
+ # Same, using repeat flag instead of CSV
39
+ lark-cli im +chat-list --as user --types p2p --types group
40
+
41
+ # Only p2p single chats (user identity only)
42
+ lark-cli im +chat-list --as user --types p2p
43
+ ```
44
+
45
+ ## Parameters
46
+
47
+ | Parameter | Required | Limits | Description |
48
+ |------|------|------|------|
49
+ | `--user-id-type <type>` | No | `open_id` (default), `union_id`, `user_id` | ID type used for `owner_id` in the response |
50
+ | `--types <strings>` | No | `group`, `p2p` (comma-separated or repeated) | Chat types to include. Omitted = groups only (backward compatible). `p2p` requires user identity (`--as user`); under `--as bot`, `--types=p2p` alone is rejected and `--types=p2p,group` is silently downgraded to `group` |
51
+ | `--sort <field>` | No | `create_time` (default, ascending), `active_time` (descending) | Result ordering |
52
+ | `--page-size <n>` | No | 1-100, default 20 | Number of results per page |
53
+ | `--page-token <token>` | No | - | Pagination token from the previous response |
54
+ | `--exclude-muted` | No | User identity only | Drop chats the current user has muted (do-not-disturb). Under `--as bot`, the flag is silently inactive; see "Filtering muted chats" below |
55
+ | `--format json` | No | - | Output as JSON |
56
+ | `--dry-run` | No | - | Preview the request without executing it |
57
+
58
+ > **Note:** Supports both `--as user` (default) and `--as bot`. When using bot identity, the app must have bot capability enabled.
59
+
60
+ ## Output Fields
61
+
62
+ | Field | Description |
63
+ |------|------|
64
+ | `chat_id` | Chat ID (`oc_xxx` format) |
65
+ | `name` | Chat name |
66
+ | `description` | Chat description |
67
+ | `owner_id` | Owner ID (type controlled by `--user-id-type`) |
68
+ | `external` | Whether the chat is external |
69
+ | `chat_status` | Chat status (`normal` / `dissolved` / `dissolved_save`) |
70
+ | `chat_mode` | Chat mode discriminator: `group` (regular) / `topic` (topic group) / `p2p` (single chat) |
71
+ | `p2p_target_type` | Peer type, e.g., `user` |
72
+ | `p2p_target_id` | Peer ID (type controlled by `--user-id-type`) |
73
+
74
+ ## Including p2p single chats
75
+
76
+ Default behavior lists groups only — same as before this feature. To include p2p, pass `--types`:
77
+
78
+ | User intent | Call | Identity |
79
+ |---|---|---|
80
+ | "list my groups" / 我的群 / 我加入了哪些群 | (default, omit `--types`) | user or bot |
81
+ | "list my p2p chats" / 我的单聊 / 我跟谁有 1v1 | `--types p2p` | **user only** |
82
+ | "all my chats" / 全部聊天 / 所有会话 (ambiguous) | `--types p2p,group` | **user only** |
83
+
84
+ For p2p rows in the response: `name` is the peer's display name, `owner_id` follows group semantics, `chat_mode = "p2p"`, and `p2p_target_type` / `p2p_target_id` identify the peer.
85
+
86
+ ## Bot identity and p2p
87
+
88
+ `tenant_access_token` cannot list p2p chats — to protect user privacy, bot identity is not permitted to enumerate p2p single chats. Behavior under `--as bot`:
89
+
90
+ - `--as bot --types=p2p` → rejected at validation time with an actionable error; no request is sent.
91
+ - `--as bot --types=p2p,group` → CLI strips `p2p` and sends `types=group`. Request proceeds; only groups are returned. The strip is a **request-level adjustment**, surfaced two ways so neither humans nor agents miss it:
92
+ - **stderr**: `warning: bot_strip_p2p: To protect user privacy, bot identity cannot list p2p chats; --types=p2p,group was sent as types=group. Use --as user to include p2p.` (matches the `warning: <code>: <message>` convention in `shortcuts/common/runner.go`)
93
+ - **stdout JSON**: a top-level `notices` array gains a structured entry:
94
+ ```json
95
+ {
96
+ "chats": [...],
97
+ "notices": [
98
+ { "code": "bot_strip_p2p", "message": "To protect user privacy, bot identity cannot list p2p chats; …" }
99
+ ]
100
+ }
101
+ ```
102
+ - The `filter` slot stays scoped to `--exclude-muted`; `notices` is a separate top-level key, so the two never collide and no priority is needed when both fire.
103
+ - DryRun emits the same stderr warning so a previewed request truthfully reflects what Execute will send (parity with `shortcuts/drive/drive_search.go`).
104
+ - `--as bot --types=group` → accepted, returns groups normally.
105
+ - `--as bot` (no `--types`) → unchanged, returns groups.
106
+
107
+ To include p2p single chats, switch to user identity: `--as user --types=p2p,group`.
108
+
109
+ ## Filtering muted chats
110
+
111
+ `--exclude-muted` (user identity only) drops chats the current user has set to do-not-disturb. After the list call, the CLI batches the page's chat_ids through `POST /open-apis/im/v1/chat_user_setting/batch_get_mute_status` and filters client-side. Under `--as bot`, the mute API is UAT-only and the filter is silently skipped.
112
+
113
+ When the flag is set, the JSON envelope gains a `filter` sub-object (absent otherwise, so existing consumers are unaffected); `fetched_count == returned_count + filtered_count` always holds:
114
+
115
+ ```json
116
+ {
117
+ "chats": [...],
118
+ "filter": {
119
+ "applied": "exclude_muted",
120
+ "fetched_count": 20,
121
+ "returned_count": 17,
122
+ "filtered_count": 3,
123
+ "hint": "Filtered out 3 muted chat(s) on this page (17 remaining); use --page-token to fetch more."
124
+ }
125
+ }
126
+ ```
127
+
128
+ ## Usage Scenarios
129
+
130
+ ### Scenario 1: List my recent chats
131
+
132
+ ```bash
133
+ lark-cli im +chat-list --sort active_time --page-size 10
134
+ ```
135
+
136
+ ### Scenario 2: List my non-muted chats sorted by activity
137
+
138
+ ```bash
139
+ lark-cli im +chat-list --sort active_time --exclude-muted
140
+ ```
141
+
142
+ ### Scenario 3: Iterate all my chats programmatically
143
+
144
+ ```bash
145
+ TOKEN=""
146
+ while :; do
147
+ RESP=$(lark-cli im +chat-list --page-size 100 --page-token "$TOKEN" --format json)
148
+ echo "$RESP" | jq -r '.data.chats[].chat_id'
149
+ HAS_MORE=$(echo "$RESP" | jq -r '.data.has_more')
150
+ [ "$HAS_MORE" = "true" ] || break
151
+ TOKEN=$(echo "$RESP" | jq -r '.data.page_token')
152
+ done
153
+ ```
154
+
155
+ ## Common Errors and Troubleshooting
156
+
157
+ | Symptom | Root Cause | Solution |
158
+ |---------|---------|---------|
159
+ | `--page-size must be an integer between 1 and 100` | page-size is out of range or not an integer | Use an integer between 1 and 100 |
160
+ | Permission denied (99991672) | The bot app does not have `im:chat:read` TAT permission enabled | Enable the permission for the app in the Open Platform console |
161
+ | Permission denied (99991679) with `--as user` | UAT is not authorized for `im:chat:read` | Run `lark-cli auth login --scope "im:chat:read"` |
162
+ | `Bot ability is not activated` (232025) | The app does not have bot capability enabled | Enable bot capability in the Open Platform console |
163
+ | `--exclude-muted` returns all chats unfiltered and `hint` says "no effect under bot identity" | Running under `--as bot` (mute API is UAT-only) | Switch to `--as user` for mute filtering |
164
+ | `--types=p2p (single chats) is only supported with user identity` | `--as bot` + `--types=p2p` (single-value only; mixed `--types=p2p,group` is downgraded to `group` and surfaces a `bot_strip_p2p` notice via stderr + `outData["notices"]` — see "Bot identity and p2p") | Use `--as user`, or include `group` in `--types` (the bot proceeds with `group` only and emits the `bot_strip_p2p` notice) |
165
+
166
+ > Full error message of the row above: `--types=p2p (single chats) is only supported with user identity (--as user). To protect user privacy, bot identity cannot list p2p chats. Use --as user, or include "group" in --types.`
@@ -0,0 +1,83 @@
1
+ # im +chat-members-list
2
+
3
+ > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
+
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
+
7
+ This skill maps to the shortcut: `lark-cli im +chat-members-list` (internally calls `GET /open-apis/im/v1/chats/{chat_id}/members/list`).
8
+
9
+ ## Commands
10
+
11
+ ```bash
12
+ # Single page (default)
13
+ lark-cli im +chat-members-list --chat-id oc_xxx
14
+
15
+ # Only users, or only bots
16
+ lark-cli im +chat-members-list --chat-id oc_xxx --member-types user
17
+ lark-cli im +chat-members-list --chat-id oc_xxx --member-types user,bot
18
+
19
+ # Walk every page (capped by --page-limit; 0 = unlimited)
20
+ lark-cli im +chat-members-list --chat-id oc_xxx --page-all --page-limit 0
21
+
22
+ # Resume from a specific cursor (single page; --page-all is ignored)
23
+ lark-cli im +chat-members-list --chat-id oc_xxx --page-token "xxx"
24
+
25
+ # JSON output / preview the request
26
+ lark-cli im +chat-members-list --chat-id oc_xxx --format json
27
+ lark-cli im +chat-members-list --chat-id oc_xxx --dry-run
28
+ ```
29
+
30
+ ## Parameters
31
+
32
+ | Parameter | Required | Limits | Description |
33
+ |------|------|------|------|
34
+ | `--chat-id <id>` | Yes | `oc_xxx` | Target chat |
35
+ | `--member-types <strings>` | No | `user`, `bot` (comma-separated or repeated) | Member types to return. Omitted = all |
36
+ | `--member-id-type <type>` | No | `open_id` (default), `union_id`, `user_id` | ID type for `member_id` in the response |
37
+ | `--page-size <n>` | No | 1-100, default 20 | Results per page. With `--page-all` and no explicit `--page-size`, the max (100) is used automatically to minimize round-trips |
38
+ | `--page-token <token>` | No | - | Pagination cursor; **implies a single-page fetch** (disables auto-pagination) |
39
+ | `--page-all` | No | - | Automatically walk every page (capped by `--page-limit`) |
40
+ | `--page-limit <n>` | No | default 10, `0` = unlimited | Max pages to fetch with `--page-all` |
41
+ | `--page-delay <ms>` | No | default 200, `0` = no delay | Delay between pages during `--page-all` (throttle to avoid rate limits on large lists) |
42
+ | `--format json` | No | - | Output as JSON |
43
+ | `--dry-run` | No | - | Preview the request without executing it |
44
+
45
+ > Supports both `--as user` (default) and `--as bot`. The caller must be in the target chat, and must belong to the same tenant for internal chats.
46
+
47
+ ## Output Fields
48
+
49
+ | Field | Description |
50
+ |------|------|
51
+ | `chat_id` | The queried chat ID |
52
+ | `users` | Array of user members (`member_id`, `name`, `tenant_key`, …) |
53
+ | `bots` | Array of bot members (`member_id`, `app_id`, `name`, …) |
54
+ | `user_total` / `bot_total` | Server-reported totals for each bucket |
55
+ | `truncations` | Non-empty when the server **capped a bucket** due to security config — see below |
56
+ | `has_more` / `page_token` | Paging signals from the final page fetched |
57
+
58
+ ## Truncation: the result may be incomplete
59
+
60
+ The server applies a security cap to large member lists. When a bucket is capped, the response carries a `truncations[]` entry (e.g. `[{"limit": 100, "member_type": "user"}]`) **on the final page only**. The shortcut surfaces this two ways so it is never missed:
61
+
62
+ - **stderr**: `⚠️ member list truncated by server security config: user bucket capped at 100 — the list is INCOMPLETE.`
63
+ - **stdout JSON**: the `truncations` array is preserved verbatim in the output.
64
+
65
+ A truncated result is *not* fixable by paging further — it is a server-side cap. Treat `users`/`bots` as a partial list whenever `truncations` is non-empty.
66
+
67
+ ## Pagination notes
68
+
69
+ - Default fetches a single page. Pass `--page-all` to drain every page.
70
+ - With `--page-all` and no explicit `--page-size`, the shortcut uses the maximum page size (100) so a full walk takes the fewest round-trips. An explicit `--page-size` is always honored.
71
+ - `--page-all` sleeps `--page-delay` ms (default 200) between pages to avoid hammering the API when a tenant has no server-side member cap and the list spans many pages. Set `--page-delay 0` to disable.
72
+ - `--page-all` stops at `--page-limit` pages (default 10). When it stops early, `has_more` stays `true` so you know the result is incomplete; re-run with `--page-limit 0` for everything.
73
+ - `--page-token` and `--page-all` together: `--page-token` wins (single-page fetch from the supplied cursor); a stderr warning is emitted.
74
+ - Across pages, `users[]` and `bots[]` are concatenated; `truncations` / `has_more` / `page_token` come from the last page fetched.
75
+
76
+ ## Common Errors and Troubleshooting
77
+
78
+ | Symptom | Root Cause | | Solution |
79
+ |---------|---------|---|---------|
80
+ | `--chat-id is required` | `--chat-id` omitted | | Provide the `oc_xxx` chat ID |
81
+ | `--page-size must be an integer between 1 and 100` | out of range | | Use 1-100 |
82
+ | `--member-types contains invalid value` | value other than `user`/`bot` | | Use `user`, `bot`, or both |
83
+ | Permission denied | missing `im:chat.members:read` | | Bot: enable the scope in the console. User: `lark-cli auth login --scope "im:chat.members:read"` |
@@ -0,0 +1,157 @@
1
+ # im +chat-messages-list
2
+
3
+ > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
+
5
+ Fetch the message list for a conversation. Supports both group chats and direct messages.
6
+
7
+ By default the response carries a `reactions` block (counts + details from `im.reactions.batch_query`) on every message that has reactions, and `update_time` on messages that were actually edited. Thread replies expanded via auto-`thread_replies` participate in the same batched enrichment. Pass `--no-reactions` to skip the extra round-trip. Pass `--download-resources` to additionally download message resources (image/file/audio/video/media + post-embedded, excluding stickers) into `./lark-im-resources/` and attach a `resources` block — off by default. See [message enrichment](lark-im-message-enrichment.md) for the full contract.
8
+
9
+ This skill maps to the shortcut: `lark-cli im +chat-messages-list` (internally calls `GET /open-apis/im/v1/messages`, and automatically resolves the p2p chat_id when needed).
10
+
11
+ ## Commands
12
+
13
+ ```bash
14
+ # Get group chat messages (json output by default)
15
+ lark-cli im +chat-messages-list --chat-id oc_xxx
16
+
17
+ # Get direct messages with a user (pass open_id and resolve p2p chat_id automatically)
18
+ lark-cli im +chat-messages-list --user-id ou_xxx
19
+
20
+ # Specify a time range (ISO 8601)
21
+ 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
+
23
+ # Specify a time range (date only)
24
+ lark-cli im +chat-messages-list --chat-id oc_xxx --start 2026-03-10 --end 2026-03-11
25
+
26
+ # Control sort order and page size (max 50)
27
+ lark-cli im +chat-messages-list --chat-id oc_xxx --order asc --page-size 20
28
+
29
+ # Pagination
30
+ lark-cli im +chat-messages-list --chat-id oc_xxx --page-token "xxx"
31
+
32
+ # JSON output
33
+ lark-cli im +chat-messages-list --chat-id oc_xxx --format json
34
+ ```
35
+
36
+ ## Parameters
37
+
38
+ | Parameter | Required | Description |
39
+ |------|------|------|
40
+ | `--chat-id <id>` | One of two | Specify the conversation by its chat_id directly (e.g., group chat `oc_xxx`) |
41
+ | `--user-id <id>` | One of two | Specify a DM conversation by the other user's open_id (`ou_xxx`); p2p chat_id is resolved automatically. Requires user identity (`--as user`); not supported with bot identity |
42
+ | `--start <time>` | No | Start time (ISO 8601 or date only) |
43
+ | `--end <time>` | No | End time (ISO 8601 or date only) |
44
+ | `--order <order>` | No | Sort order: `asc` / `desc` (default `desc`) |
45
+ | `--page-size <n>` | No | Page size (default 50, max 50) |
46
+ | `--page-token <token>` | No | Pagination token |
47
+ | `--no-reactions` | No | Skip auto-fetching the `reactions` block |
48
+ | `--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 |
49
+
50
+ > Rule: `--chat-id` and `--user-id` are mutually exclusive. You must provide exactly one of them.
51
+
52
+ > **CAUTION:** `--order` is the only sort axis — messages are always ordered by creation time, `asc` or `desc`. There is no field axis: the command cannot sort by sender or any other field, so do **not** attempt `--sort sender` or similar (it is rejected). If the user asks to group or sort by sender, fetch with `--order` and aggregate client-side, and tell them this is local post-processing, not a CLI/API sort capability.
53
+
54
+ ## Resource Rendering
55
+
56
+ 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.
57
+
58
+ Two ways to get the binaries:
59
+ - **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).
60
+ - **One at a time:** use [lark-im-messages-resources-download](lark-im-messages-resources-download.md).
61
+
62
+ | Resource Type | Marker in Content | Behavior |
63
+ |---------|-------------|------|
64
+ | Image | `![Image](img_xxx)` | `--download-resources`, or manually `im +messages-resources-download --type image` |
65
+ | File | `<file key="file_xxx" .../>` | `--download-resources`, or manually `im +messages-resources-download --type file` |
66
+ | Audio | `<audio key="file_xxx" duration="Xs"/>` | `--download-resources`, or manually `im +messages-resources-download --type file` |
67
+ | Video | `<video key="file_xxx" .../>` | `--download-resources`, or manually `im +messages-resources-download --type file` |
68
+ | Sticker | `[Sticker]` | Not downloadable (Feishu does not support fetching sticker resources) |
69
+
70
+ ## Thread Expansion (`thread_id`)
71
+
72
+ In JSON output, a message may contain a `thread_id` (`omt_xxx`) field, which means the message has replies in a thread. Use [`im +threads-messages-list`](lark-im-threads-messages-list.md) to inspect replies in that thread:
73
+
74
+ ```bash
75
+ lark-cli im +threads-messages-list --thread omt_xxx
76
+ ```
77
+
78
+ | Scenario | Recommendation |
79
+ |------|------|
80
+ | You need context | Call `im +threads-messages-list --order desc --page-size 10` for the discovered thread_id to inspect recent replies |
81
+ | The user asks for the "full discussion" | Use `im +threads-messages-list --order asc --page-size 50`, then paginate if needed |
82
+ | You only need an overview | Skip thread expansion |
83
+
84
+ ## Output Fields
85
+
86
+ | Field | Description |
87
+ |------|------|
88
+ | `messages` | Message array |
89
+ | `total` | Number of messages in the current page |
90
+ | `has_more` | Whether additional pages are available |
91
+ | `page_token` | Pagination token for the next page |
92
+
93
+ Each message contains:
94
+
95
+ | Field | Description |
96
+ |------|------|
97
+ | `message_id` | Message ID |
98
+ | `msg_type` | Message type: `text`, `image`, `file`, `interactive`, `post`, `audio`, `video`, `system`, etc. |
99
+ | `create_time` | Creation time |
100
+ | `sender` | Sender information (includes `name` for user senders) |
101
+ | `content` | Message content |
102
+ | `deleted` | Whether the message has been recalled (always present, `true` = recalled) |
103
+ | `updated` | Whether the message has been edited after sending |
104
+ | `mentions` | Array of @mentions in the message; each item contains `{id, key, name}`. Present only when the message contains @mentions |
105
+ | `thread_id` | Thread ID (`omt_xxx`) if the message has replies in a thread. Present only when replies exist |
106
+
107
+ ## Pagination (`has_more` / `page_token`)
108
+
109
+ `im +chat-messages-list` returns `has_more` and `page_token` when more data is available. Use `--page-token` to continue:
110
+
111
+ ```bash
112
+ lark-cli im +chat-messages-list --chat-id oc_xxx --page-token <PAGE_TOKEN>
113
+ ```
114
+
115
+ You can also fall back to the generic API:
116
+
117
+ ```bash
118
+ lark-cli api GET /open-apis/im/v1/messages \
119
+ --params 'container_id_type=chat&container_id=oc_xxx&page_size=50&page_token=<PAGE_TOKEN>'
120
+ ```
121
+
122
+ ## Common Errors and Troubleshooting
123
+
124
+ | Symptom | Root Cause | Solution |
125
+ |---------|---------|---------|
126
+ | `specify --chat-id <chat_id> or --user-id <open_id>` | Neither `--chat-id` nor `--user-id` was provided | You must provide exactly one |
127
+ | `--chat-id and --user-id cannot be specified together` | Both parameters were provided | Use only one |
128
+ | `--user-id requires user identity (--as user); use --chat-id when calling with bot identity` | `--user-id` was used with bot identity | The p2p resolution endpoint requires user identity. Either pass `--as user` or look up the p2p `chat_id` separately and pass it via `--chat-id` |
129
+ | `P2P chat not found for this user` | `--user-id` was used but no p2p chat exists for the current identity and that user | Confirm the target direct-message relationship exists for the current identity |
130
+ | `--start: invalid time format` | Invalid time format | Use ISO 8601 or date-only format such as `2026-03-10` |
131
+ | Permission denied | Message read permissions are missing | Ensure the app has `im:message:readonly` and `im:chat:read` enabled |
132
+
133
+ ## AI Usage Guidance
134
+
135
+ 1. **Resolving chat_id from a chat name:** When the user refers to a chat by name and you don't have the `chat_id`, use [`+chat-search`](lark-im-chat-search.md) first:
136
+ ```bash
137
+ # Find chat_id by name, then list messages
138
+ lark-cli im +chat-search --query "<chat name keyword>" --format json
139
+ lark-cli im +chat-messages-list --chat-id <chat_id>
140
+ ```
141
+ **Do not use `im chats search` or `+chat-list` — always use the `+chat-search` shortcut.**
142
+ 2. **Prefer `--chat-id` when available:** if the chat_id is already known, use it directly to avoid extra API calls.
143
+ 3. **For direct messages:** use `--user-id` to resolve the p2p chat automatically instead of looking it up manually. This requires user identity (`--as user`); with bot identity, resolve the p2p `chat_id` yourself and pass it via `--chat-id`.
144
+ 4. **For time ranges:** both ISO 8601 and date-only inputs are supported. Date-only is usually simpler.
145
+ 5. **For full content:** table output truncates content. Use `--format json` when you need the complete message body.
146
+ 6. **For sender info:** the command already resolves sender names, so you do not need a separate lookup.
147
+ 7. **Application/bot identity + named group history:** If the user says "使用应用身份/以 bot 身份" and asks to list or read historical messages for a named group, use bot identity for both steps:
148
+ ```bash
149
+ lark-cli im +chat-search --as bot --query "<chat name keyword>" --format json
150
+ lark-cli im +chat-messages-list --as bot --chat-id <chat_id> --page-size 50 --format json
151
+ ```
152
+ Do not use `im +messages-search --as bot`; `+messages-search` is user-only. Continue with `--page-token` if `has_more=true`.
153
+
154
+ ## References
155
+
156
+ - [lark-im](../SKILL.md) - all IM commands
157
+ - [lark-shared](../../lark-shared/SKILL.md) - authentication and global parameters