@yandy0725/pi-lark 0.1.0

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 (392) hide show
  1. package/README.md +30 -0
  2. package/README.zh.md +30 -0
  3. package/package.json +36 -0
  4. package/skills/lark-approval/SKILL.md +56 -0
  5. package/skills/lark-approval/references/lark-approval-initiate.md +196 -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-apps/SKILL.md +78 -0
  9. package/skills/lark-apps/references/lark-apps-access-scope-get.md +28 -0
  10. package/skills/lark-apps/references/lark-apps-access-scope-set.md +40 -0
  11. package/skills/lark-apps/references/lark-apps-cloud-dev.md +120 -0
  12. package/skills/lark-apps/references/lark-apps-create.md +40 -0
  13. package/skills/lark-apps/references/lark-apps-db-env-create.md +31 -0
  14. package/skills/lark-apps/references/lark-apps-db-execute.md +40 -0
  15. package/skills/lark-apps/references/lark-apps-db-table-get.md +29 -0
  16. package/skills/lark-apps/references/lark-apps-db-table-list.md +31 -0
  17. package/skills/lark-apps/references/lark-apps-env-pull.md +35 -0
  18. package/skills/lark-apps/references/lark-apps-git-credential.md +37 -0
  19. package/skills/lark-apps/references/lark-apps-html-publish.md +57 -0
  20. package/skills/lark-apps/references/lark-apps-init.md +37 -0
  21. package/skills/lark-apps/references/lark-apps-list.md +37 -0
  22. package/skills/lark-apps/references/lark-apps-local-dev.md +76 -0
  23. package/skills/lark-apps/references/lark-apps-release-create.md +30 -0
  24. package/skills/lark-apps/references/lark-apps-release-get.md +28 -0
  25. package/skills/lark-apps/references/lark-apps-release-list.md +31 -0
  26. package/skills/lark-apps/references/lark-apps-session-messages-list.md +53 -0
  27. package/skills/lark-apps/references/lark-apps-update.md +30 -0
  28. package/skills/lark-attendance/SKILL.md +57 -0
  29. package/skills/lark-base/SKILL.md +157 -0
  30. package/skills/lark-base/references/dashboard-block-data-config.md +350 -0
  31. package/skills/lark-base/references/formula-field-guide.md +737 -0
  32. package/skills/lark-base/references/lark-base-cell-value.md +153 -0
  33. package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +717 -0
  34. package/skills/lark-base/references/lark-base-dashboard.md +238 -0
  35. package/skills/lark-base/references/lark-base-data-analysis-sop.md +210 -0
  36. package/skills/lark-base/references/lark-base-data-query-guide.md +61 -0
  37. package/skills/lark-base/references/lark-base-data-query.md +452 -0
  38. package/skills/lark-base/references/lark-base-field-create.md +103 -0
  39. package/skills/lark-base/references/lark-base-field-json.md +489 -0
  40. package/skills/lark-base/references/lark-base-field-update.md +171 -0
  41. package/skills/lark-base/references/lark-base-form-detail.md +71 -0
  42. package/skills/lark-base/references/lark-base-form-questions-create.md +118 -0
  43. package/skills/lark-base/references/lark-base-form-questions-update.md +92 -0
  44. package/skills/lark-base/references/lark-base-form-submit.md +170 -0
  45. package/skills/lark-base/references/lark-base-record-batch-create.md +57 -0
  46. package/skills/lark-base/references/lark-base-record-batch-update.md +52 -0
  47. package/skills/lark-base/references/lark-base-record-history-list.md +43 -0
  48. package/skills/lark-base/references/lark-base-record-upsert.md +63 -0
  49. package/skills/lark-base/references/lark-base-role-guide.md +65 -0
  50. package/skills/lark-base/references/lark-base-view-set-filter.md +189 -0
  51. package/skills/lark-base/references/lark-base-workflow-guide.md +830 -0
  52. package/skills/lark-base/references/lark-base-workflow-schema.md +1071 -0
  53. package/skills/lark-base/references/lookup-field-guide.md +512 -0
  54. package/skills/lark-base/references/role-config.md +549 -0
  55. package/skills/lark-calendar/SKILL.md +137 -0
  56. package/skills/lark-calendar/references/lark-calendar-agenda.md +78 -0
  57. package/skills/lark-calendar/references/lark-calendar-create.md +106 -0
  58. package/skills/lark-calendar/references/lark-calendar-freebusy.md +124 -0
  59. package/skills/lark-calendar/references/lark-calendar-meeting.md +40 -0
  60. package/skills/lark-calendar/references/lark-calendar-room-find.md +113 -0
  61. package/skills/lark-calendar/references/lark-calendar-rsvp.md +42 -0
  62. package/skills/lark-calendar/references/lark-calendar-schedule-meeting.md +265 -0
  63. package/skills/lark-calendar/references/lark-calendar-search-event.md +29 -0
  64. package/skills/lark-calendar/references/lark-calendar-suggestion.md +125 -0
  65. package/skills/lark-calendar/references/lark-calendar-update.md +105 -0
  66. package/skills/lark-contact/SKILL.md +59 -0
  67. package/skills/lark-contact/references/lark-contact-get-user.md +19 -0
  68. package/skills/lark-contact/references/lark-contact-search-user.md +124 -0
  69. package/skills/lark-doc/SKILL.md +79 -0
  70. package/skills/lark-doc/references/lark-doc-create.md +79 -0
  71. package/skills/lark-doc/references/lark-doc-fetch.md +138 -0
  72. package/skills/lark-doc/references/lark-doc-md.md +76 -0
  73. package/skills/lark-doc/references/lark-doc-media-download.md +50 -0
  74. package/skills/lark-doc/references/lark-doc-media-insert.md +114 -0
  75. package/skills/lark-doc/references/lark-doc-media-preview.md +41 -0
  76. package/skills/lark-doc/references/lark-doc-resource-cover.md +70 -0
  77. package/skills/lark-doc/references/lark-doc-update.md +259 -0
  78. package/skills/lark-doc/references/lark-doc-whiteboard.md +154 -0
  79. package/skills/lark-doc/references/lark-doc-xml.md +181 -0
  80. package/skills/lark-doc/references/style/lark-doc-create-workflow.md +59 -0
  81. package/skills/lark-doc/references/style/lark-doc-style.md +86 -0
  82. package/skills/lark-doc/references/style/lark-doc-update-workflow.md +55 -0
  83. package/skills/lark-drive/SKILL.md +215 -0
  84. package/skills/lark-drive/references/lark-drive-add-comment.md +193 -0
  85. package/skills/lark-drive/references/lark-drive-apply-permission.md +77 -0
  86. package/skills/lark-drive/references/lark-drive-comment-location.md +193 -0
  87. package/skills/lark-drive/references/lark-drive-comments-guide.md +72 -0
  88. package/skills/lark-drive/references/lark-drive-cover.md +79 -0
  89. package/skills/lark-drive/references/lark-drive-create-folder.md +73 -0
  90. package/skills/lark-drive/references/lark-drive-create-shortcut.md +103 -0
  91. package/skills/lark-drive/references/lark-drive-delete.md +79 -0
  92. package/skills/lark-drive/references/lark-drive-download.md +31 -0
  93. package/skills/lark-drive/references/lark-drive-export-download.md +50 -0
  94. package/skills/lark-drive/references/lark-drive-export.md +145 -0
  95. package/skills/lark-drive/references/lark-drive-files-list.md +158 -0
  96. package/skills/lark-drive/references/lark-drive-import.md +170 -0
  97. package/skills/lark-drive/references/lark-drive-inspect.md +50 -0
  98. package/skills/lark-drive/references/lark-drive-member-add.md +66 -0
  99. package/skills/lark-drive/references/lark-drive-move.md +120 -0
  100. package/skills/lark-drive/references/lark-drive-permission-guide.md +41 -0
  101. package/skills/lark-drive/references/lark-drive-preview.md +87 -0
  102. package/skills/lark-drive/references/lark-drive-pull.md +137 -0
  103. package/skills/lark-drive/references/lark-drive-push.md +162 -0
  104. package/skills/lark-drive/references/lark-drive-reactions.md +113 -0
  105. package/skills/lark-drive/references/lark-drive-search.md +269 -0
  106. package/skills/lark-drive/references/lark-drive-secure-label.md +52 -0
  107. package/skills/lark-drive/references/lark-drive-status.md +137 -0
  108. package/skills/lark-drive/references/lark-drive-task-result.md +302 -0
  109. package/skills/lark-drive/references/lark-drive-upload.md +101 -0
  110. package/skills/lark-drive/references/lark-drive-version-delete.md +38 -0
  111. package/skills/lark-drive/references/lark-drive-version-get.md +71 -0
  112. package/skills/lark-drive/references/lark-drive-version-history.md +73 -0
  113. package/skills/lark-drive/references/lark-drive-version-revert.md +35 -0
  114. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-analysis.md +249 -0
  115. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-discovery.md +253 -0
  116. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-execution.md +200 -0
  117. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-planning.md +336 -0
  118. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize-rollback.md +308 -0
  119. package/skills/lark-drive/references/lark-drive-workflow-knowledge-organize.md +226 -0
  120. package/skills/lark-drive/references/lark-drive-workflow-permission-governance-commands.md +168 -0
  121. package/skills/lark-drive/references/lark-drive-workflow-permission-governance-outputs.md +424 -0
  122. package/skills/lark-drive/references/lark-drive-workflow-permission-governance.md +207 -0
  123. package/skills/lark-drive/references/lark-drive-workflow.md +130 -0
  124. package/skills/lark-event/SKILL.md +154 -0
  125. package/skills/lark-event/references/lark-event-im.md +87 -0
  126. package/skills/lark-event/references/lark-event-minutes.md +54 -0
  127. package/skills/lark-event/references/lark-event-task.md +78 -0
  128. package/skills/lark-event/references/lark-event-vc.md +94 -0
  129. package/skills/lark-event/references/lark-event-whiteboard.md +67 -0
  130. package/skills/lark-im/SKILL.md +247 -0
  131. package/skills/lark-im/references/lark-im-card-action-reply.md +175 -0
  132. package/skills/lark-im/references/lark-im-chat-create.md +162 -0
  133. package/skills/lark-im/references/lark-im-chat-identity.md +55 -0
  134. package/skills/lark-im/references/lark-im-chat-list.md +166 -0
  135. package/skills/lark-im/references/lark-im-chat-messages-list.md +157 -0
  136. package/skills/lark-im/references/lark-im-chat-search.md +142 -0
  137. package/skills/lark-im/references/lark-im-chat-update.md +84 -0
  138. package/skills/lark-im/references/lark-im-feed-group-list-item.md +68 -0
  139. package/skills/lark-im/references/lark-im-feed-group-list.md +65 -0
  140. package/skills/lark-im/references/lark-im-feed-group-query-item.md +44 -0
  141. package/skills/lark-im/references/lark-im-feed-groups.md +452 -0
  142. package/skills/lark-im/references/lark-im-feed-shortcut-create.md +97 -0
  143. package/skills/lark-im/references/lark-im-feed-shortcut-list.md +103 -0
  144. package/skills/lark-im/references/lark-im-feed-shortcut-remove.md +48 -0
  145. package/skills/lark-im/references/lark-im-flag-cancel.md +67 -0
  146. package/skills/lark-im/references/lark-im-flag-create.md +67 -0
  147. package/skills/lark-im/references/lark-im-flag-list.md +100 -0
  148. package/skills/lark-im/references/lark-im-message-enrichment.md +54 -0
  149. package/skills/lark-im/references/lark-im-messages-mget.md +99 -0
  150. package/skills/lark-im/references/lark-im-messages-reply.md +267 -0
  151. package/skills/lark-im/references/lark-im-messages-resources-download.md +94 -0
  152. package/skills/lark-im/references/lark-im-messages-search.md +234 -0
  153. package/skills/lark-im/references/lark-im-messages-send.md +267 -0
  154. package/skills/lark-im/references/lark-im-reactions.md +299 -0
  155. package/skills/lark-im/references/lark-im-threads-messages-list.md +115 -0
  156. package/skills/lark-mail/SKILL.md +287 -0
  157. package/skills/lark-mail/assets/templates/job-application--resume.html +33 -0
  158. package/skills/lark-mail/assets/templates/newsletter--weekly-brief.html +50 -0
  159. package/skills/lark-mail/assets/templates/research--market-report.html +256 -0
  160. package/skills/lark-mail/assets/templates/weekly--personal-report.html +43 -0
  161. package/skills/lark-mail/assets/templates/weekly--team-report.html +9 -0
  162. package/skills/lark-mail/references/lark-mail-calendar-invite.md +36 -0
  163. package/skills/lark-mail/references/lark-mail-decline-receipt.md +115 -0
  164. package/skills/lark-mail/references/lark-mail-draft-create.md +127 -0
  165. package/skills/lark-mail/references/lark-mail-draft-edit.md +404 -0
  166. package/skills/lark-mail/references/lark-mail-forward.md +239 -0
  167. package/skills/lark-mail/references/lark-mail-html.md +333 -0
  168. package/skills/lark-mail/references/lark-mail-lint-html.md +243 -0
  169. package/skills/lark-mail/references/lark-mail-message.md +233 -0
  170. package/skills/lark-mail/references/lark-mail-messages.md +108 -0
  171. package/skills/lark-mail/references/lark-mail-recall.md +66 -0
  172. package/skills/lark-mail/references/lark-mail-recipient-search.md +59 -0
  173. package/skills/lark-mail/references/lark-mail-reply-all.md +213 -0
  174. package/skills/lark-mail/references/lark-mail-reply.md +249 -0
  175. package/skills/lark-mail/references/lark-mail-rules.md +31 -0
  176. package/skills/lark-mail/references/lark-mail-send-as.md +44 -0
  177. package/skills/lark-mail/references/lark-mail-send-receipt.md +120 -0
  178. package/skills/lark-mail/references/lark-mail-send-status.md +46 -0
  179. package/skills/lark-mail/references/lark-mail-send.md +222 -0
  180. package/skills/lark-mail/references/lark-mail-share-to-chat.md +87 -0
  181. package/skills/lark-mail/references/lark-mail-signature.md +98 -0
  182. package/skills/lark-mail/references/lark-mail-template-create.md +129 -0
  183. package/skills/lark-mail/references/lark-mail-template-update.md +150 -0
  184. package/skills/lark-mail/references/lark-mail-template.md +54 -0
  185. package/skills/lark-mail/references/lark-mail-thread.md +111 -0
  186. package/skills/lark-mail/references/lark-mail-triage.md +131 -0
  187. package/skills/lark-mail/references/lark-mail-watch.md +94 -0
  188. package/skills/lark-markdown/SKILL.md +69 -0
  189. package/skills/lark-markdown/references/lark-markdown-create.md +94 -0
  190. package/skills/lark-markdown/references/lark-markdown-diff.md +156 -0
  191. package/skills/lark-markdown/references/lark-markdown-fetch.md +79 -0
  192. package/skills/lark-markdown/references/lark-markdown-overwrite.md +85 -0
  193. package/skills/lark-markdown/references/lark-markdown-patch.md +160 -0
  194. package/skills/lark-minutes/SKILL.md +192 -0
  195. package/skills/lark-minutes/references/lark-minutes-detail.md +62 -0
  196. package/skills/lark-minutes/references/lark-minutes-download.md +137 -0
  197. package/skills/lark-minutes/references/lark-minutes-search.md +204 -0
  198. package/skills/lark-minutes/references/lark-minutes-speaker-replace.md +107 -0
  199. package/skills/lark-minutes/references/lark-minutes-summary.md +122 -0
  200. package/skills/lark-minutes/references/lark-minutes-todo.md +138 -0
  201. package/skills/lark-minutes/references/lark-minutes-update.md +41 -0
  202. package/skills/lark-minutes/references/lark-minutes-upload.md +104 -0
  203. package/skills/lark-note/SKILL.md +94 -0
  204. package/skills/lark-note/references/lark-note-detail.md +26 -0
  205. package/skills/lark-note/references/lark-note-transcript.md +23 -0
  206. package/skills/lark-okr/SKILL.md +115 -0
  207. package/skills/lark-okr/references/lark-okr-batch-create.md +106 -0
  208. package/skills/lark-okr/references/lark-okr-contentblock.md +359 -0
  209. package/skills/lark-okr/references/lark-okr-cycle-detail.md +84 -0
  210. package/skills/lark-okr/references/lark-okr-cycle-list.md +90 -0
  211. package/skills/lark-okr/references/lark-okr-entities.md +329 -0
  212. package/skills/lark-okr/references/lark-okr-image-upload.md +116 -0
  213. package/skills/lark-okr/references/lark-okr-indicator-update.md +80 -0
  214. package/skills/lark-okr/references/lark-okr-progress-create.md +81 -0
  215. package/skills/lark-okr/references/lark-okr-progress-delete.md +47 -0
  216. package/skills/lark-okr/references/lark-okr-progress-get.md +62 -0
  217. package/skills/lark-okr/references/lark-okr-progress-list.md +80 -0
  218. package/skills/lark-okr/references/lark-okr-progress-update.md +81 -0
  219. package/skills/lark-okr/references/lark-okr-reorder.md +81 -0
  220. package/skills/lark-okr/references/lark-okr-weight.md +96 -0
  221. package/skills/lark-openapi-explorer/SKILL.md +153 -0
  222. package/skills/lark-shared/SKILL.md +168 -0
  223. package/skills/lark-shared/references/lark-wiki-token-routing.md +42 -0
  224. package/skills/lark-sheets/SKILL.md +165 -0
  225. package/skills/lark-sheets/references/lark-sheets-batch-update.md +191 -0
  226. package/skills/lark-sheets/references/lark-sheets-chart.md +330 -0
  227. package/skills/lark-sheets/references/lark-sheets-conditional-format.md +179 -0
  228. package/skills/lark-sheets/references/lark-sheets-core-operations.md +103 -0
  229. package/skills/lark-sheets/references/lark-sheets-filter-view.md +137 -0
  230. package/skills/lark-sheets/references/lark-sheets-filter.md +130 -0
  231. package/skills/lark-sheets/references/lark-sheets-float-image.md +159 -0
  232. package/skills/lark-sheets/references/lark-sheets-formula-translation.md +267 -0
  233. package/skills/lark-sheets/references/lark-sheets-pivot-table.md +166 -0
  234. package/skills/lark-sheets/references/lark-sheets-range-operations.md +267 -0
  235. package/skills/lark-sheets/references/lark-sheets-read-data.md +235 -0
  236. package/skills/lark-sheets/references/lark-sheets-search-replace.md +111 -0
  237. package/skills/lark-sheets/references/lark-sheets-sheet-structure.md +212 -0
  238. package/skills/lark-sheets/references/lark-sheets-sparkline.md +149 -0
  239. package/skills/lark-sheets/references/lark-sheets-visual-standards.md +205 -0
  240. package/skills/lark-sheets/references/lark-sheets-workbook.md +395 -0
  241. package/skills/lark-sheets/references/lark-sheets-write-cells.md +565 -0
  242. package/skills/lark-sheets/scripts/sheets_df.py +32 -0
  243. package/skills/lark-skill-maker/SKILL.md +85 -0
  244. package/skills/lark-slides/SKILL.md +293 -0
  245. package/skills/lark-slides/assets/templates/administration--all_hands_meeting.xml +1999 -0
  246. package/skills/lark-slides/assets/templates/administration--annual_gala.xml +1160 -0
  247. package/skills/lark-slides/assets/templates/administration--company_intro.xml +1376 -0
  248. package/skills/lark-slides/assets/templates/administration--corporate_culture.xml +1765 -0
  249. package/skills/lark-slides/assets/templates/hr--employee_training.xml +912 -0
  250. package/skills/lark-slides/assets/templates/hr--employee_training_workshop.xml +1504 -0
  251. package/skills/lark-slides/assets/templates/hr--onboarding.xml +933 -0
  252. package/skills/lark-slides/assets/templates/marketing--brand_communication.xml +1367 -0
  253. package/skills/lark-slides/assets/templates/marketing--brand_logo_design.xml +1347 -0
  254. package/skills/lark-slides/assets/templates/marketing--brand_operations_plan.xml +1309 -0
  255. package/skills/lark-slides/assets/templates/marketing--business_plan.xml +1646 -0
  256. package/skills/lark-slides/assets/templates/marketing--marketing_plan.xml +1469 -0
  257. package/skills/lark-slides/assets/templates/marketing--marketing_strategy.xml +1484 -0
  258. package/skills/lark-slides/assets/templates/marketing--product_whitepaper.xml +1455 -0
  259. package/skills/lark-slides/assets/templates/marketing--roadshow_business_plan.xml +1506 -0
  260. package/skills/lark-slides/assets/templates/misc--book_sharing.xml +1338 -0
  261. package/skills/lark-slides/assets/templates/misc--club_event_plan.xml +4885 -0
  262. package/skills/lark-slides/assets/templates/misc--student_career_plan.xml +1854 -0
  263. package/skills/lark-slides/assets/templates/office--dark_general.xml +3763 -0
  264. package/skills/lark-slides/assets/templates/office--dept_annual_report.xml +1192 -0
  265. package/skills/lark-slides/assets/templates/office--light_general.xml +3378 -0
  266. package/skills/lark-slides/assets/templates/office--project_kickoff.xml +3152 -0
  267. package/skills/lark-slides/assets/templates/office--quarterly_review.xml +1253 -0
  268. package/skills/lark-slides/assets/templates/office--work_report.xml +1099 -0
  269. package/skills/lark-slides/assets/templates/office--work_summary.xml +4420 -0
  270. package/skills/lark-slides/assets/templates/office--work_summary_report.xml +1523 -0
  271. package/skills/lark-slides/assets/templates/operations--brand_logo_design.xml +1347 -0
  272. package/skills/lark-slides/assets/templates/operations--brand_operations_plan.xml +1309 -0
  273. package/skills/lark-slides/assets/templates/operations--marketing_plan.xml +1469 -0
  274. package/skills/lark-slides/assets/templates/operations--product_promotion.xml +687 -0
  275. package/skills/lark-slides/assets/templates/personal--experience_sharing.xml +2242 -0
  276. package/skills/lark-slides/assets/templates/personal--personal_resume.xml +2047 -0
  277. package/skills/lark-slides/assets/templates/personal--promotion_defense.xml +1099 -0
  278. package/skills/lark-slides/assets/templates/personal--promotion_report.xml +1039 -0
  279. package/skills/lark-slides/assets/templates/personal--self_intro.xml +696 -0
  280. package/skills/lark-slides/assets/templates/personal--teaching_sharing.xml +3013 -0
  281. package/skills/lark-slides/assets/templates/product--business_case_analysis.xml +1341 -0
  282. package/skills/lark-slides/assets/templates/product--market_analysis.xml +898 -0
  283. package/skills/lark-slides/assets/templates/product--product_analysis.xml +1537 -0
  284. package/skills/lark-slides/assets/templates/product--product_intro.xml +2838 -0
  285. package/skills/lark-slides/assets/templates/product--product_promotion.xml +687 -0
  286. package/skills/lark-slides/assets/templates/product--product_promotion_2.xml +687 -0
  287. package/skills/lark-slides/references/asset-planning.md +124 -0
  288. package/skills/lark-slides/references/examples.md +261 -0
  289. package/skills/lark-slides/references/iconpark-index.json +41901 -0
  290. package/skills/lark-slides/references/iconpark.md +46 -0
  291. package/skills/lark-slides/references/lark-slides-create.md +137 -0
  292. package/skills/lark-slides/references/lark-slides-edit-workflows.md +144 -0
  293. package/skills/lark-slides/references/lark-slides-media-upload.md +128 -0
  294. package/skills/lark-slides/references/lark-slides-replace-pages.md +95 -0
  295. package/skills/lark-slides/references/lark-slides-replace-slide.md +240 -0
  296. package/skills/lark-slides/references/lark-slides-screenshot.md +94 -0
  297. package/skills/lark-slides/references/lark-slides-whiteboard.md +330 -0
  298. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-create.md +220 -0
  299. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +123 -0
  300. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +110 -0
  301. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +187 -0
  302. package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +98 -0
  303. package/skills/lark-slides/references/planning-layer.md +219 -0
  304. package/skills/lark-slides/references/slide-templates.md +201 -0
  305. package/skills/lark-slides/references/slides_demo.xml +226 -0
  306. package/skills/lark-slides/references/slides_xml_schema_definition.xml +3049 -0
  307. package/skills/lark-slides/references/template-catalog.md +463 -0
  308. package/skills/lark-slides/references/template-index.json +1853 -0
  309. package/skills/lark-slides/references/troubleshooting.md +63 -0
  310. package/skills/lark-slides/references/validation-checklist.md +110 -0
  311. package/skills/lark-slides/references/visual-planning.md +254 -0
  312. package/skills/lark-slides/references/xml-format-guide.md +369 -0
  313. package/skills/lark-slides/references/xml-schema-quick-ref.md +245 -0
  314. package/skills/lark-slides/scripts/iconpark_tool.py +362 -0
  315. package/skills/lark-slides/scripts/iconpark_tool_test.py +177 -0
  316. package/skills/lark-slides/scripts/template_tool.py +970 -0
  317. package/skills/lark-slides/scripts/template_tool_test.py +177 -0
  318. package/skills/lark-slides/scripts/xml_text_overlap_lint.py +367 -0
  319. package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +263 -0
  320. package/skills/lark-task/SKILL.md +167 -0
  321. package/skills/lark-task/references/lark-task-assign.md +38 -0
  322. package/skills/lark-task/references/lark-task-comment.md +28 -0
  323. package/skills/lark-task/references/lark-task-complete.md +27 -0
  324. package/skills/lark-task/references/lark-task-create.md +57 -0
  325. package/skills/lark-task/references/lark-task-followers.md +35 -0
  326. package/skills/lark-task/references/lark-task-get-my-tasks.md +61 -0
  327. package/skills/lark-task/references/lark-task-get-related-tasks.md +53 -0
  328. package/skills/lark-task/references/lark-task-reminder.md +36 -0
  329. package/skills/lark-task/references/lark-task-reopen.md +27 -0
  330. package/skills/lark-task/references/lark-task-search.md +41 -0
  331. package/skills/lark-task/references/lark-task-set-ancestor.md +32 -0
  332. package/skills/lark-task/references/lark-task-tasklist-create.md +35 -0
  333. package/skills/lark-task/references/lark-task-tasklist-members.md +36 -0
  334. package/skills/lark-task/references/lark-task-tasklist-search.md +38 -0
  335. package/skills/lark-task/references/lark-task-tasklist-task-add.md +38 -0
  336. package/skills/lark-task/references/lark-task-update.md +37 -0
  337. package/skills/lark-task/references/lark-task-upload-attachment.md +59 -0
  338. package/skills/lark-vc/SKILL.md +202 -0
  339. package/skills/lark-vc/references/lark-vc-detail.md +44 -0
  340. package/skills/lark-vc/references/lark-vc-recording.md +154 -0
  341. package/skills/lark-vc/references/lark-vc-search.md +163 -0
  342. package/skills/lark-vc/references/vc-domain-boundaries.md +188 -0
  343. package/skills/lark-vc-agent/SKILL.md +169 -0
  344. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md +287 -0
  345. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-join.md +141 -0
  346. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +105 -0
  347. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-list-active.md +91 -0
  348. package/skills/lark-whiteboard/SKILL.md +47 -0
  349. package/skills/lark-whiteboard/elements/connectors.md +102 -0
  350. package/skills/lark-whiteboard/elements/content.md +40 -0
  351. package/skills/lark-whiteboard/elements/image.md +80 -0
  352. package/skills/lark-whiteboard/elements/layout.md +374 -0
  353. package/skills/lark-whiteboard/elements/schema.md +357 -0
  354. package/skills/lark-whiteboard/elements/style.md +318 -0
  355. package/skills/lark-whiteboard/elements/typography.md +73 -0
  356. package/skills/lark-whiteboard/references/lark-whiteboard-query.md +60 -0
  357. package/skills/lark-whiteboard/references/lark-whiteboard-update.md +122 -0
  358. package/skills/lark-whiteboard/references/lark-whiteboard-workflow.md +94 -0
  359. package/skills/lark-whiteboard/routes/dsl.md +107 -0
  360. package/skills/lark-whiteboard/routes/mermaid.md +27 -0
  361. package/skills/lark-whiteboard/routes/svg-edit.md +85 -0
  362. package/skills/lark-whiteboard/routes/svg.md +54 -0
  363. package/skills/lark-whiteboard/scenes/architecture.md +433 -0
  364. package/skills/lark-whiteboard/scenes/bar-chart.md +187 -0
  365. package/skills/lark-whiteboard/scenes/comparison.md +135 -0
  366. package/skills/lark-whiteboard/scenes/fishbone.md +238 -0
  367. package/skills/lark-whiteboard/scenes/flowchart.md +185 -0
  368. package/skills/lark-whiteboard/scenes/flywheel.md +195 -0
  369. package/skills/lark-whiteboard/scenes/funnel.md +101 -0
  370. package/skills/lark-whiteboard/scenes/line-chart.md +214 -0
  371. package/skills/lark-whiteboard/scenes/mermaid.md +130 -0
  372. package/skills/lark-whiteboard/scenes/milestone.md +139 -0
  373. package/skills/lark-whiteboard/scenes/organization.md +173 -0
  374. package/skills/lark-whiteboard/scenes/photo-showcase.md +126 -0
  375. package/skills/lark-whiteboard/scenes/pyramid.md +99 -0
  376. package/skills/lark-whiteboard/scenes/swimlane.md +371 -0
  377. package/skills/lark-whiteboard/scenes/treemap.md +216 -0
  378. package/skills/lark-wiki/SKILL.md +110 -0
  379. package/skills/lark-wiki/references/lark-wiki-delete-space.md +205 -0
  380. package/skills/lark-wiki/references/lark-wiki-member-add.md +67 -0
  381. package/skills/lark-wiki/references/lark-wiki-member-list.md +76 -0
  382. package/skills/lark-wiki/references/lark-wiki-member-remove.md +61 -0
  383. package/skills/lark-wiki/references/lark-wiki-move.md +183 -0
  384. package/skills/lark-wiki/references/lark-wiki-node-copy.md +72 -0
  385. package/skills/lark-wiki/references/lark-wiki-node-create.md +127 -0
  386. package/skills/lark-wiki/references/lark-wiki-node-delete.md +62 -0
  387. package/skills/lark-wiki/references/lark-wiki-node-get.md +57 -0
  388. package/skills/lark-wiki/references/lark-wiki-node-list.md +88 -0
  389. package/skills/lark-wiki/references/lark-wiki-space-create.md +46 -0
  390. package/skills/lark-wiki/references/lark-wiki-space-list.md +68 -0
  391. package/skills/lark-workflow-meeting-summary/SKILL.md +122 -0
  392. package/skills/lark-workflow-standup-report/SKILL.md +122 -0
@@ -0,0 +1,267 @@
1
+ # im +messages-send
2
+
3
+ > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
+
5
+ Send a message to a group chat or a direct message conversation. Supports both user identity (`--as user`) and bot identity (`--as bot`).
6
+
7
+ This skill maps to the shortcut: `lark-cli im +messages-send` (internally calls `POST /open-apis/im/v1/messages`).
8
+
9
+ ## Safety Constraints
10
+
11
+ Messages sent by this tool are visible to other people. Before calling it, you **must** confirm with the user:
12
+
13
+ 1. The recipient (which person or which group)
14
+ 2. The message content
15
+ 3. The sending identity (user or bot)
16
+
17
+ **Do not** send messages without explicit user approval.
18
+
19
+ When using `--as bot`, the message is sent in the app's name, so make sure the app has already been added to the target chat.
20
+
21
+ When using `--as user`, the message is sent as the authorized end user and requires the `im:message.send_as_user` and `im:message` scopes.
22
+
23
+ ## Choose The Right Content Flag
24
+
25
+ ### Default Selection Rule For Agents
26
+
27
+ - Prefer `--markdown` for headings, lists, links, summaries, reports, or Markdown-looking content.
28
+ - Use `--text` for exact plain text: logs, code, indentation-sensitive text, or literal Markdown.
29
+ - Use `--content` for exact `post` JSON, titles, multiple locales, cards, or unsupported structures.
30
+
31
+ | Need | Recommended flag | Why |
32
+ |------|------|------|
33
+ | Send headings, lists, links, summaries, or reports | `--markdown` | Best default for lightweight formatting; converted to Feishu `post` JSON |
34
+ | Send plain text exactly as written | `--text` | Preserves literal text; no Markdown conversion |
35
+ | Precisely control the final payload | `--content` | You provide the exact JSON for `text` / `post` / `interactive` / `share_*` / media payloads |
36
+ | Send image / file / video / audio | `--image` / `--file` / `--video` / `--audio` | Shortcut uploads URLs, or cwd-relative local files automatically |
37
+
38
+ ### `--text` vs `--markdown`
39
+
40
+ - Use `--markdown` for lightweight formatted messages.
41
+ - Use `--text` for exact plain text, especially logs, code, indentation, or Markdown characters that should **not** render.
42
+ - Use `--content` when `--markdown` is not enough, especially if you need exact `post` JSON, a title, multiple locales, cards, or unsupported rich structures.
43
+
44
+ ## What `--markdown` Really Does
45
+
46
+ `--markdown` accepts Markdown-like input and converts it to the Feishu `post` payload required by the message API.
47
+
48
+ The shortcut does all of the following before sending:
49
+
50
+ 1. Forces `msg_type=post`
51
+ 2. Resolves remote Markdown images like `![x](https://...)` by downloading and uploading them first
52
+ 3. Normalizes the Markdown for Feishu post rendering
53
+ 4. Wraps the result as:
54
+
55
+ ```json
56
+ {"zh_cn":{"content":[[{"tag":"md","text":"..."}]]}}
57
+ ```
58
+
59
+ This makes `--markdown` the simplest path for lightweight formatted messages.
60
+
61
+ ### Markdown Boundaries
62
+
63
+ - It does **not** promise full CommonMark / GitHub Flavored Markdown support.
64
+ - It always becomes a `post` payload with a single `zh_cn` locale.
65
+ - It does **not** let you set a `post` title. If you need a title, use `--msg-type post --content ...`.
66
+ - Headings are rewritten:
67
+ - `# Title` becomes `#### Title`
68
+ - `##` to `######` are normalized to `#####` when the content contains H1-H3
69
+ - Consecutive headings are separated with blank lines after heading normalization.
70
+ - Block spacing and line breaks may be normalized during conversion.
71
+ - Code blocks are preserved as code blocks.
72
+ - Excess blank lines are compressed.
73
+ - Already-uploaded `img_xxx` image keys are the most reliable Markdown image input.
74
+ - Local paths in Markdown image syntax like `![x](./a.png)` are **not** supported and will not be auto-uploaded.
75
+ - Remote URLs (`https://...`) will be auto-downloaded and uploaded at runtime; if the download or upload fails, the image is removed with a warning.
76
+
77
+ If you need a title, multiple locales, cards, unsupported rich structures, or byte-for-byte post JSON control, use `--content` and provide the final JSON yourself.
78
+
79
+ ### Image Constraint for `--markdown`
80
+
81
+ When using `--markdown` with images, prefer pre-uploading via `images.create` and referencing `![alt](img_xxx)` for predictable results. Remote URLs may work but are not guaranteed.
82
+
83
+ **Steps:**
84
+
85
+ ```bash
86
+ # 1. Upload image to get image_key
87
+ lark-cli im images create --data '{"image_type":"message"}' --file ./diagram.png
88
+ # Returns: {"image_key":"img_v3_xxxx"}
89
+
90
+ # 2. Use image_key in --markdown
91
+ lark-cli im +messages-send --chat-id oc_xxx --markdown $'## Report\n\n![diagram](img_v3_xxxx)\n\nSee above for details.'
92
+ ```
93
+
94
+ ## Preserving Formatting
95
+
96
+ If the message has multiple lines, indentation, code blocks, tabs, or many quotes/backslashes, prefer shell ANSI-C quoting with `$'...'` for either `--markdown` or `--text`.
97
+
98
+ This is especially useful in `zsh` / `bash` because it lets you write `\n` explicitly instead of relying on the shell to preserve literal newlines.
99
+
100
+ ### When formatting must be preserved
101
+
102
+ Use `--text` plus `$'...'`:
103
+
104
+ ```bash
105
+ lark-cli im +messages-send --chat-id oc_xxx --text $'Build failed\nBranch: feature/im-docs\nAction: please check logs'
106
+ ```
107
+
108
+ ```bash
109
+ lark-cli im +messages-send --chat-id oc_xxx --text $'```bash\nmake test\nmake lint\n```'
110
+ ```
111
+
112
+ Use this path when you want the receiver to see the text exactly as entered, not a converted Markdown post.
113
+
114
+ ## Commands
115
+
116
+ ```bash
117
+ # Send a formatted update
118
+ lark-cli im +messages-send --chat-id oc_xxx --markdown $'## Update\n\n- item 1\n- item 2'
119
+
120
+ # Send a plain one-line message
121
+ lark-cli im +messages-send --chat-id oc_xxx --text "Hello"
122
+
123
+ # Equivalent manual JSON
124
+ lark-cli im +messages-send --chat-id oc_xxx --content '{"text":"Hello"}'
125
+
126
+ # Send to a direct message (pass open_id)
127
+ lark-cli im +messages-send --user-id ou_xxx --text "Hello"
128
+
129
+ # Send multi-line text while preserving formatting
130
+ lark-cli im +messages-send --chat-id oc_xxx --text $'Line 1\nLine 2\n indented line'
131
+
132
+ # Send Markdown with an image (must pre-upload via images.create)
133
+ lark-cli im images create --data '{"image_type":"message"}' --file ./screenshot.png
134
+ # Use the returned image_key in the markdown content
135
+ lark-cli im +messages-send --chat-id oc_xxx --markdown $'## Status\n\n![screenshot](img_v3_xxxx)\n\nDone.'
136
+
137
+ # If you need exact post structure, send JSON directly
138
+ lark-cli im +messages-send --chat-id oc_xxx --msg-type post --content '{"zh_cn":{"title":"Title","content":[[{"tag":"text","text":"Body"}]]}}'
139
+
140
+ # Send a local image (uploaded automatically before sending)
141
+ lark-cli im +messages-send --chat-id oc_xxx --image ./photo.png
142
+
143
+ # Or send directly with an existing image_key
144
+ lark-cli im +messages-send --chat-id oc_xxx --image img_xxx
145
+
146
+ # Send a local file (uploaded automatically before sending)
147
+ lark-cli im +messages-send --chat-id oc_xxx --file ./report.pdf
148
+
149
+ # Send a video (--video-cover is required as the cover)
150
+ lark-cli im +messages-send --chat-id oc_xxx --video ./demo.mp4 --video-cover ./cover.png
151
+ lark-cli im +messages-send --chat-id oc_xxx --video ./demo.mp4 --video-cover img_xxx
152
+
153
+ # Send a voice message
154
+ lark-cli im +messages-send --chat-id oc_xxx --audio ./voice.opus
155
+
156
+ # Use an idempotency key (same key sends only once within 1 hour)
157
+ lark-cli im +messages-send --chat-id oc_xxx --text "Hello" --idempotency-key my-unique-id
158
+
159
+ # Preview the request without executing it
160
+ lark-cli im +messages-send --chat-id oc_xxx --markdown $'## Test\n\nhello' --dry-run
161
+ ```
162
+
163
+ ## Media Input Rules
164
+
165
+ - Media flags accept an existing key (`img_xxx` / `file_xxx`), an `http://` or `https://` URL, or a local file path.
166
+ - Local paths must be relative to the current working directory and stay within it after resolving `..` and symlinks.
167
+ - Absolute paths such as `/tmp/photo.png` are rejected. Run the command from the file's directory and pass `./photo.png`, or copy the file into the current directory first.
168
+ - `--audio` sends a voice message and accepts only Opus audio (`.opus` or Ogg Opus `.ogg`) for local paths and URLs. For `mp3`, `wav`, or other non-Opus audio, convert to `.opus` before using `--audio`, or use `--file` to send the original audio as an attachment.
169
+
170
+ ## Parameters
171
+
172
+ | Parameter | Required | Description |
173
+ |------|------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
174
+ | `--chat-id <id>` | One of two | Group chat ID (`oc_xxx`) |
175
+ | `--user-id <id>` | One of two | User open_id (`ou_xxx`) for direct messages |
176
+ | `--text <string>` | One content option | Plain text message. Use when exact text and formatting preservation matter. Automatically wrapped as `{"text":"..."}` |
177
+ | `--markdown <string>` | One content option | Best default for lightweight formatted messages such as headings, lists, links, summaries, and reports. Internally converted to `post` JSON with Feishu-specific normalization |
178
+ | `--content <json>` | One content option | Exact message content JSON string; use this when you need full control over `msg_type` and payload. The JSON must match the effective `--msg-type` |
179
+ | `--image <path\|url\|key>` | One content option | Cwd-relative local image path, URL, or `image_key` (`img_xxx`). Local paths and URLs are uploaded automatically |
180
+ | `--file <path\|url\|key>` | One content option | Cwd-relative local file path, URL, or `file_key` (`file_xxx`). Local paths and URLs are uploaded automatically |
181
+ | `--video <path\|url\|key>` | One content option | Cwd-relative local video path, URL, or `file_key` (`file_xxx`). Local paths and URLs are uploaded automatically. **Must be paired with `--video-cover`** |
182
+ | `--video-cover <path\|url\|key>` | **Required with `--video`** | Cwd-relative local cover image path, URL, or `image_key` (`img_xxx`). Local paths and URLs are uploaded automatically |
183
+ | `--audio <path\|url\|key>` | One content option | Voice-message audio key, URL, or cwd-relative local path. Local paths and URLs must be Opus (`.opus` or Ogg Opus `.ogg`) |
184
+ | `--msg-type <type>` | No | Message type (default `text`). If you use `--text` / `--markdown` / media flags, the effective type is inferred automatically. Explicitly setting a conflicting `--msg-type` fails validation |
185
+ | `--idempotency-key <key>` | No | Idempotency key; the same key sends only one message within 1 hour |
186
+ | `--as <identity>` | No | Identity type: `bot` or `user` (default `bot`) |
187
+ | `--dry-run` | No | Print the request only, do not execute it |
188
+
189
+ > **Mutual exclusivity rule:** `--text`, `--markdown`, `--content`, and `--image`/`--file`/`--video`/`--audio` cannot be used together. Media flags are also mutually exclusive with each other.
190
+ >
191
+ > **Video cover rule:** `--video` **must** be accompanied by `--video-cover`. Omitting `--video-cover` when using `--video` will fail validation. `--video-cover` cannot be used without `--video`.
192
+
193
+ ## Common Mistakes
194
+
195
+ - Choosing `--text` for headings, lists, links, summaries, or reports. Use `--markdown`.
196
+ - Choosing `--markdown` when you actually need exact plain text. If exact line breaks, spacing, logs, code, or literal Markdown characters matter, use `--text`, usually with `$'...'`.
197
+ - Assuming `--markdown` supports every Markdown feature. It is converted into a Feishu `post` payload and normalized first.
198
+ - Putting local image paths inside Markdown like `![x](./a.png)`. `--markdown` does not auto-upload those paths.
199
+ - **Using local file paths inside Markdown image syntax** (e.g. `![x](./a.png)`) with `--markdown`. Local paths are not auto-uploaded and will not render as an image. Pre-upload via `images.create` to get an `image_key` instead.
200
+ - Using `--content` without making the JSON match the effective `--msg-type`.
201
+ - Explicitly setting `--msg-type` to something that conflicts with `--text`, `--markdown`, or media flags.
202
+ - Mixing `--text`, `--markdown`, or `--content` with media flags in one command.
203
+
204
+ ## `content` Format Reference
205
+
206
+ | `msg_type` | Example `content` |
207
+ |----------|-------------|
208
+ | `text` | `{"text":"Hello <at user_id=\"ou_xxx\">name</at>"}` |
209
+ | `post` | `{"zh_cn":{"title":"Title","content":[[{"tag":"text","text":"Body"}]]}}` |
210
+ | `image` | `{"image_key":"img_xxx"}` |
211
+ | `file` | `{"file_key":"file_xxx"}` |
212
+ | `audio` | `{"file_key":"file_xxx"}` |
213
+ | `media` | `{"file_key":"file_xxx","image_key":"img_xxx"}` (video; `image_key` is the cover from `--video-cover` — **required**) |
214
+ | `share_chat` | `{"chat_id":"oc_xxx"}` |
215
+ | `share_user` | `{"user_id":"ou_xxx"}` |
216
+ | `interactive` | Card JSON (see Feishu interactive card documentation) |
217
+
218
+ `interactive` cards support callback events (`card.action.trigger`) — see [`lark-im-card-action-reply.md`](lark-im-card-action-reply.md).
219
+
220
+ ## Return Value
221
+
222
+ ```json
223
+ {
224
+ "message_id": "om_xxx",
225
+ "chat_id": "oc_xxx",
226
+ "create_time": "1234567890"
227
+ }
228
+ ```
229
+
230
+ ## @Mention Format
231
+
232
+ The `<at>` syntax differs by message type. The shortcut only normalizes mentions for `text` and `post`; `interactive` card content is passed through verbatim, so cards must use the card-native syntax below.
233
+
234
+ ### `text`
235
+
236
+ - `<at user_id="ou_xxx">name</at>` — the inner text is the mentioned user's display name and is optional (`<at user_id="ou_xxx"></at>` also works)
237
+ - @all: `<at user_id="all"></at>`
238
+
239
+ ### `post`
240
+
241
+ - Inside a `text` or `md` element, the same inline form as `text` works: `<at user_id="ou_xxx">name</at>`
242
+ - Or use a dedicated `at` element node: `{"tag":"at","user_id":"ou_xxx"}` (use `"all"` to mention everyone)
243
+
244
+ ### `interactive` (card)
245
+
246
+ Card content is **not** normalized — use the card-native `<at>` syntax inside a `lark_md` / `markdown` element:
247
+
248
+ - single user by open_id: `<at id=ou_xxx></at>`
249
+ - multiple users: `<at ids=ou_xxx1,ou_xxx2></at>`
250
+ - by email: `<at email=user@example.com></at>`
251
+
252
+ ## Notes
253
+
254
+ - `--chat-id` and `--user-id` are mutually exclusive; you must provide exactly one
255
+ - `--content` must be valid JSON
256
+ - When using `--content`, you are responsible for making the JSON structure match the effective `msg_type`
257
+ - `--image`/`--file`/`--video`/`--audio` support existing keys, URLs, and cwd-relative local file paths; the shortcut uploads local paths and URLs first, then sends the message; both the upload and send steps use the same identity (UAT when `--as user`, TAT when `--as bot`)
258
+ - If the provided media value starts with `img_` or `file_`, it is treated as an existing key and used directly
259
+ - `--markdown` always sends `msg_type=post`, even if you do not explicitly set `--msg-type post`
260
+ - If you explicitly set `--msg-type` and it conflicts with the chosen content flag, validation fails
261
+ - When using `--video`, `--video-cover` is required as the video cover
262
+ - `--dry-run` uses placeholder image keys for remote Markdown images and placeholder media keys for local uploads
263
+ - Failures return an error code and message
264
+ - `--as user` uses a user access token (UAT) and requires the `im:message.send_as_user` and `im:message` scopes; the message is sent as the authorized end user
265
+ - `--as bot` uses a tenant access token (TAT) and requires the `im:message:send_as_bot` scope
266
+ - When sending as a bot, the app must already be in the target group or already have a direct-message relationship with the target user
267
+ - When using `--markdown` with images, pre-uploading via `images.create` to obtain an `image_key` is recommended for reliability; remote URLs may be auto-resolved at runtime, but if download/upload fails the image is removed with a warning; local paths are not supported
@@ -0,0 +1,299 @@
1
+ # im reactions
2
+
3
+ > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
+
5
+ > **Heads-up — don't reach for `batch_query` by default.** The four message-pulling shortcuts (`+messages-mget`, `+chat-messages-list`, `+messages-search`, `+threads-messages-list`) already call `im.reactions.batch_query` automatically and attach the result as a `reactions` block on each message (replies inside `thread_replies` included). Use those shortcuts for any "read reactions of messages I'm already pulling" task. Reach for the raw `batch_query` API only when you have a standalone `message_id` outside that pull flow. See the main [message enrichment](lark-im-message-enrichment.md) for the contract.
6
+
7
+ This reference is the shared annotation target for the IM reaction APIs:
8
+
9
+ - `im.reactions.create`
10
+ - `im.reactions.list`
11
+ - `im.reactions.delete`
12
+ - `im.reactions.batch_query`
13
+
14
+ It focuses on:
15
+
16
+ - What each reaction method does
17
+ - The request/response shape you need when calling the raw API commands
18
+ - The complete `emoji_type` list used in reaction payloads and filters
19
+
20
+ > **Important:** These raw API commands accept structured input through `--params '<json>'` and `--data '<json>'`. They do not expose typed flags such as `--message-id` or `--reaction-type` directly.
21
+
22
+ ## Command Overview
23
+
24
+ | Method | HTTP | Path | Purpose |
25
+ |---|---|---|---|
26
+ | `im.reactions.create` | `POST` | `/open-apis/im/v1/messages/{message_id}/reactions` | Add a reaction to one message |
27
+ | `im.reactions.list` | `GET` | `/open-apis/im/v1/messages/{message_id}/reactions` | List reaction records on one message |
28
+ | `im.reactions.delete` | `DELETE` | `/open-apis/im/v1/messages/{message_id}/reactions/{reaction_id}` | Delete one specific reaction record |
29
+ | `im.reactions.batch_query` | `POST` | `/open-apis/im/v1/messages/reactions/batch_query` | Query reactions for multiple messages in one request |
30
+
31
+ ## Common Notes
32
+
33
+ - `message_id` is always an IM message ID such as `om_xxx`
34
+ - `reaction_id` is the unique record ID returned after a reaction is added
35
+ - `reaction_type.emoji_type` is the enum-like emoji identifier used by both write and read APIs
36
+ - Reaction APIs return **reaction records**, not only aggregated counts
37
+ - When the operator is a human user, the returned ID type may depend on `user_id_type`
38
+
39
+ ## Inspect Schema
40
+
41
+ ```bash
42
+ lark-cli schema im.reactions
43
+ lark-cli schema im.reactions.create --format pretty
44
+ lark-cli schema im.reactions.list --format pretty
45
+ lark-cli schema im.reactions.delete --format pretty
46
+ ```
47
+
48
+ If your local build has already exposed the batch API in `schema`, also check:
49
+
50
+ ```bash
51
+ lark-cli schema im.reactions.batch_query --format pretty
52
+ ```
53
+
54
+ ## create
55
+
56
+ Add a reaction to one message.
57
+
58
+ ```bash
59
+ lark-cli im reactions create \
60
+ --params '{"message_id":"om_xxx"}' \
61
+ --data '{"reaction_type":{"emoji_type":"SMILE"}}'
62
+ ```
63
+
64
+ ### Request
65
+
66
+ - `--params.message_id`: required message ID
67
+ - `--data.reaction_type.emoji_type`: required emoji type
68
+
69
+ ### Response
70
+
71
+ ```json
72
+ {
73
+ "reaction_id": "ZCaCIjUBVVWSrm5L-3ZTw_xxx",
74
+ "operator": {
75
+ "operator_id": "ou_xxx",
76
+ "operator_type": "user"
77
+ },
78
+ "action_time": "1663054162546",
79
+ "reaction_type": {
80
+ "emoji_type": "SMILE"
81
+ }
82
+ }
83
+ ```
84
+
85
+ ## list
86
+
87
+ List reaction records on one message.
88
+
89
+ ```bash
90
+ lark-cli im reactions list --params '{"message_id":"om_xxx"}'
91
+ lark-cli im reactions list --params '{"message_id":"om_xxx","reaction_type":"SMILE"}'
92
+ lark-cli im reactions list --params '{"message_id":"om_xxx","page_size":50}'
93
+ lark-cli im reactions list --params '{"message_id":"om_xxx","page_token":"<PAGE_TOKEN>"}'
94
+ lark-cli im reactions list --params '{"message_id":"om_xxx","user_id_type":"open_id"}'
95
+ ```
96
+
97
+ ### Request Parameters (`--params`)
98
+
99
+ | Parameter | Required | Description |
100
+ |---|---|---|
101
+ | `message_id` | Yes | Message ID (`om_xxx`) |
102
+ | `reaction_type` | No | Filter by one emoji type such as `SMILE` or `LAUGH` |
103
+ | `page_size` | No | Number of records per page. Default is 20 |
104
+ | `page_token` | No | Pagination token from the previous page |
105
+ | `user_id_type` | No | Returned operator ID type when `operator_type=user`: `open_id`, `union_id`, or `user_id` |
106
+
107
+ ### Response Shape
108
+
109
+ ```json
110
+ {
111
+ "items": [
112
+ {
113
+ "reaction_id": "ZCaCIjUBVVWSrm5L-3ZTw_xxx",
114
+ "operator": {
115
+ "operator_id": "ou_xxx",
116
+ "operator_type": "user"
117
+ },
118
+ "action_time": "1663054162546",
119
+ "reaction_type": {
120
+ "emoji_type": "SMILE"
121
+ }
122
+ }
123
+ ],
124
+ "has_more": true,
125
+ "page_token": "YhljsPiGfUgnVAg9urvRFd-BvSqRLxxxx"
126
+ }
127
+ ```
128
+
129
+ ### Top-Level Fields
130
+
131
+ | Field | Type | Meaning |
132
+ |---|---|---|
133
+ | `items` | `array<object>` | Reaction records for the current page |
134
+ | `has_more` | `boolean` | Whether more pages are available |
135
+ | `page_token` | `string` | Token for the next page when `has_more=true` |
136
+
137
+ ### `items[]` Fields
138
+
139
+ | Field | Type | Meaning |
140
+ |---|---|---|
141
+ | `reaction_id` | `string` | Unique ID of this reaction record |
142
+ | `operator` | `object` | Identity of the user or app that added the reaction |
143
+ | `action_time` | `string` | Unix timestamp in milliseconds |
144
+ | `reaction_type` | `object` | Reaction payload. The key field is `emoji_type` |
145
+
146
+ ### `operator` Fields
147
+
148
+ | Field | Type | Meaning |
149
+ |---|---|---|
150
+ | `operator.operator_id` | `string` | Operator ID. If `operator_type=user`, the returned ID type follows `user_id_type`; if `operator_type=app`, this is the app ID |
151
+ | `operator.operator_type` | `string` | `user` or `app` |
152
+
153
+ ## delete
154
+
155
+ Delete one specific reaction record from one message.
156
+
157
+ ```bash
158
+ lark-cli im reactions delete \
159
+ --params '{"message_id":"om_xxx","reaction_id":"ZCaCIjUBVVWSrm5L-3ZTw_xxx"}'
160
+ ```
161
+
162
+ ### Request
163
+
164
+ - `--params.message_id`: required message ID
165
+ - `--params.reaction_id`: required reaction record ID
166
+
167
+ ### Response
168
+
169
+ The response shape is similar to `create`, and usually echoes:
170
+
171
+ - `reaction_id`
172
+ - `operator`
173
+ - `action_time`
174
+ - `reaction_type.emoji_type`
175
+
176
+ ## batch_query
177
+
178
+ Query reactions for multiple messages in one request.
179
+
180
+ ```bash
181
+ lark-cli im reactions batch_query \
182
+ --params '{"user_id_type":"open_id"}' \
183
+ --data '{
184
+ "queries":[
185
+ {"message_id":"om_xxx"},
186
+ {"message_id":"om_yyy","page_token":"<PAGE_TOKEN>"}
187
+ ],
188
+ "page_size_per_message":10,
189
+ "reaction_type":"LAUGH"
190
+ }'
191
+ ```
192
+
193
+ ### Request
194
+
195
+ #### `--params`
196
+
197
+ | Parameter | Required | Description |
198
+ |---|---|---|
199
+ | `user_id_type` | No | Returned user ID type in operator info: `open_id`, `union_id`, or `user_id` |
200
+
201
+ #### `--data`
202
+
203
+ | Field | Required | Description |
204
+ |---|---|---|
205
+ | `queries` | Yes | Array of target messages |
206
+ | `queries[].message_id` | No | Message ID to query |
207
+ | `queries[].page_token` | No | Continuation token for that message |
208
+ | `page_size_per_message` | No | Max reactions returned per message |
209
+ | `reaction_type` | No | Filter by one emoji type |
210
+
211
+ ### Response
212
+
213
+ The meta definition contains three top-level result groups:
214
+
215
+ | Field | Meaning |
216
+ |---|---|
217
+ | `success_msg_reaction_details` | Per-message reaction detail records |
218
+ | `success_msg_reaction_counts` | Per-message aggregated reaction counts |
219
+ | `fail_msg_reaction_details` | Query failures for individual messages |
220
+
221
+ #### `success_msg_reaction_details`
222
+
223
+ Each `message_reaction_items[]` element includes:
224
+
225
+ - `reaction_id`
226
+ - `operator`
227
+ - `action_time`
228
+ - `emoji_type`
229
+
230
+ #### `success_msg_reaction_counts`
231
+
232
+ Each aggregated count record includes:
233
+
234
+ - `message_id`
235
+ - `reaction_count[].reaction_type`
236
+ - `reaction_count[].count`
237
+
238
+ #### `fail_msg_reaction_details`
239
+
240
+ Each failed message record includes:
241
+
242
+ - `message_id`
243
+ - `fail_reason`
244
+
245
+ Supported `fail_reason` values from meta:
246
+
247
+ - `invalid`
248
+ - `invalid_page_token`
249
+ - `no_permission`
250
+
251
+ ## `emoji_type` Field
252
+
253
+ Reaction emoji identifiers are used in slightly different field names across the APIs:
254
+
255
+ - `im.reactions.create`: request and response use `reaction_type.emoji_type`
256
+ - `im.reactions.list`: request filter uses `reaction_type`, response uses `reaction_type.emoji_type`
257
+ - `im.reactions.delete`: response uses `reaction_type.emoji_type`
258
+ - `im.reactions.batch_query`: request filter uses top-level `reaction_type`, detail results use `message_reaction_items[].emoji_type`, aggregated results use `reaction_count[].reaction_type`
259
+
260
+ ## Complete `emoji_type` List
261
+
262
+ The following list is synchronized from the official Feishu reaction emoji documentation:
263
+
264
+ - Source page: `https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-reaction/emojis-introduce`
265
+ - Markdown source: `https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-reaction/emojis-introduce.md`
266
+
267
+ Current count in the fetched source: `185`.
268
+
269
+ ```text
270
+ OK, THUMBSUP, THANKS, MUSCLE, FINGERHEART, APPLAUSE, FISTBUMP, JIAYI
271
+ DONE, SMILE, BLUSH, LAUGH, SMIRK, LOL, FACEPALM, LOVE
272
+ WINK, PROUD, WITTY, SMART, SCOWL, THINKING, SOB, CRY
273
+ ERROR, NOSEPICK, HAUGHTY, SLAP, SPITBLOOD, TOASTED, GLANCE, DULL
274
+ INNOCENTSMILE, JOYFUL, WOW, TRICK, YEAH, ENOUGH, TEARS, EMBARRASSED
275
+ KISS, SMOOCH, DROOL, OBSESSED, MONEY, TEASE, SHOWOFF, COMFORT
276
+ CLAP, PRAISE, STRIVE, XBLUSH, SILENT, WAVE, WHAT, FROWN
277
+ SHY, DIZZY, LOOKDOWN, CHUCKLE, WAIL, CRAZY, WHIMPER, HUG
278
+ BLUBBER, WRONGED, HUSKY, SHHH, SMUG, ANGRY, HAMMER, SHOCKED
279
+ TERROR, PETRIFIED, SKULL, SWEAT, SPEECHLESS, SLEEP, DROWSY, YAWN
280
+ SICK, PUKE, BETRAYED, HEADSET, EatingFood, MeMeMe, Sigh, Typing
281
+ Lemon, Get, LGTM, OnIt, OneSecond, VRHeadset, YouAreTheBest, SALUTE
282
+ SHAKE, HIGHFIVE, UPPERLEFT, ThumbsDown, SLIGHT, TONGUE, EYESCLOSED, RoarForYou
283
+ CALF, BEAR, BULL, RAINBOWPUKE, ROSE, HEART, PARTY, LIPS
284
+ BEER, CAKE, GIFT, CUCUMBER, Drumstick, Pepper, CANDIEDHAWS, BubbleTea
285
+ Coffee, Yes, No, OKR, CheckMark, CrossMark, MinusOne, Hundred
286
+ AWESOMEN, Pin, Alarm, Loudspeaker, Trophy, Fire, BOMB, Music
287
+ XmasTree, Snowman, XmasHat, FIREWORKS, 2022, REDPACKET, FORTUNE, LUCK
288
+ FIRECRACKER, StickyRiceBalls, HEARTBROKEN, POOP, StatusFlashOfInspiration, 18X, CLEAVER, Soccer
289
+ Basketball, GeneralDoNotDisturb, Status_PrivateMessage, GeneralInMeetingBusy, StatusReading, StatusInFlight, GeneralBusinessTrip, GeneralWorkFromHome
290
+ StatusEnjoyLife, GeneralTravellingCar, StatusBus, GeneralSun, GeneralMoonRest, MoonRabbit, Mooncake, JubilantRabbit
291
+ TV, Movie, Pumpkin, BeamingFace, Delighted, ColdSweat, FullMoonFace, Partying
292
+ GoGoGo, ThanksFace, SaluteFace, Shrug, ClownFace, HappyDragon
293
+ ```
294
+
295
+ ## References
296
+
297
+ - [lark-im](../SKILL.md) - all IM commands
298
+ - [lark-shared](../../lark-shared/SKILL.md) - authentication and global parameters
299
+ - Official emoji doc: `https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-reaction/emojis-introduce`