@wagemule/daemon 0.1.2 → 0.1.3

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 (341) hide show
  1. package/README.md +9 -1
  2. package/dist/main.cjs +91 -32
  3. package/dist/main.cjs.map +2 -2
  4. package/dist/skills/larksuite/lark-approval/SKILL.md +56 -0
  5. package/dist/skills/larksuite/lark-attendance/SKILL.md +57 -0
  6. package/dist/skills/larksuite/lark-base/SKILL.md +349 -0
  7. package/dist/skills/larksuite/lark-base/references/dashboard-block-data-config.md +350 -0
  8. package/dist/skills/larksuite/lark-base/references/examples.md +140 -0
  9. package/dist/skills/larksuite/lark-base/references/formula-field-guide.md +735 -0
  10. package/dist/skills/larksuite/lark-base/references/lark-base-advperm-disable.md +83 -0
  11. package/dist/skills/larksuite/lark-base/references/lark-base-advperm-enable.md +80 -0
  12. package/dist/skills/larksuite/lark-base/references/lark-base-base-copy.md +74 -0
  13. package/dist/skills/larksuite/lark-base/references/lark-base-base-create.md +68 -0
  14. package/dist/skills/larksuite/lark-base/references/lark-base-base-get.md +39 -0
  15. package/dist/skills/larksuite/lark-base/references/lark-base-cell-value.md +151 -0
  16. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-arrange.md +83 -0
  17. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-create.md +108 -0
  18. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-delete.md +46 -0
  19. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-get.md +57 -0
  20. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-list.md +53 -0
  21. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-update.md +84 -0
  22. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-create.md +73 -0
  23. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-delete.md +44 -0
  24. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-get.md +59 -0
  25. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-list.md +52 -0
  26. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-update.md +69 -0
  27. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard.md +240 -0
  28. package/dist/skills/larksuite/lark-base/references/lark-base-data-analysis-sop.md +88 -0
  29. package/dist/skills/larksuite/lark-base/references/lark-base-data-query.md +451 -0
  30. package/dist/skills/larksuite/lark-base/references/lark-base-field-create.md +104 -0
  31. package/dist/skills/larksuite/lark-base/references/lark-base-field-delete.md +51 -0
  32. package/dist/skills/larksuite/lark-base/references/lark-base-field-get.md +42 -0
  33. package/dist/skills/larksuite/lark-base/references/lark-base-field-list.md +44 -0
  34. package/dist/skills/larksuite/lark-base/references/lark-base-field-search-options.md +48 -0
  35. package/dist/skills/larksuite/lark-base/references/lark-base-field-update.md +166 -0
  36. package/dist/skills/larksuite/lark-base/references/lark-base-field.md +23 -0
  37. package/dist/skills/larksuite/lark-base/references/lark-base-form-create.md +87 -0
  38. package/dist/skills/larksuite/lark-base/references/lark-base-form-delete.md +64 -0
  39. package/dist/skills/larksuite/lark-base/references/lark-base-form-get.md +68 -0
  40. package/dist/skills/larksuite/lark-base/references/lark-base-form-list.md +73 -0
  41. package/dist/skills/larksuite/lark-base/references/lark-base-form-questions-create.md +118 -0
  42. package/dist/skills/larksuite/lark-base/references/lark-base-form-questions-delete.md +68 -0
  43. package/dist/skills/larksuite/lark-base/references/lark-base-form-questions-list.md +84 -0
  44. package/dist/skills/larksuite/lark-base/references/lark-base-form-questions-update.md +92 -0
  45. package/dist/skills/larksuite/lark-base/references/lark-base-form-questions.md +23 -0
  46. package/dist/skills/larksuite/lark-base/references/lark-base-form-update.md +82 -0
  47. package/dist/skills/larksuite/lark-base/references/lark-base-form.md +24 -0
  48. package/dist/skills/larksuite/lark-base/references/lark-base-history.md +16 -0
  49. package/dist/skills/larksuite/lark-base/references/lark-base-record-batch-create.md +58 -0
  50. package/dist/skills/larksuite/lark-base/references/lark-base-record-batch-update.md +53 -0
  51. package/dist/skills/larksuite/lark-base/references/lark-base-record-delete.md +62 -0
  52. package/dist/skills/larksuite/lark-base/references/lark-base-record-history-list.md +86 -0
  53. package/dist/skills/larksuite/lark-base/references/lark-base-record-share-link-create.md +72 -0
  54. package/dist/skills/larksuite/lark-base/references/lark-base-record-upload-attachment.md +50 -0
  55. package/dist/skills/larksuite/lark-base/references/lark-base-record-upsert.md +64 -0
  56. package/dist/skills/larksuite/lark-base/references/lark-base-record.md +29 -0
  57. package/dist/skills/larksuite/lark-base/references/lark-base-role-create.md +89 -0
  58. package/dist/skills/larksuite/lark-base/references/lark-base-role-delete.md +83 -0
  59. package/dist/skills/larksuite/lark-base/references/lark-base-role-get.md +87 -0
  60. package/dist/skills/larksuite/lark-base/references/lark-base-role-list.md +81 -0
  61. package/dist/skills/larksuite/lark-base/references/lark-base-role-update.md +94 -0
  62. package/dist/skills/larksuite/lark-base/references/lark-base-shortcut-field-properties.md +481 -0
  63. package/dist/skills/larksuite/lark-base/references/lark-base-table-create.md +62 -0
  64. package/dist/skills/larksuite/lark-base/references/lark-base-table-delete.md +51 -0
  65. package/dist/skills/larksuite/lark-base/references/lark-base-table-get.md +46 -0
  66. package/dist/skills/larksuite/lark-base/references/lark-base-table-list.md +43 -0
  67. package/dist/skills/larksuite/lark-base/references/lark-base-table-update.md +49 -0
  68. package/dist/skills/larksuite/lark-base/references/lark-base-table.md +20 -0
  69. package/dist/skills/larksuite/lark-base/references/lark-base-view-create.md +50 -0
  70. package/dist/skills/larksuite/lark-base/references/lark-base-view-delete.md +48 -0
  71. package/dist/skills/larksuite/lark-base/references/lark-base-view-get-card.md +38 -0
  72. package/dist/skills/larksuite/lark-base/references/lark-base-view-get-filter.md +38 -0
  73. package/dist/skills/larksuite/lark-base/references/lark-base-view-get-group.md +38 -0
  74. package/dist/skills/larksuite/lark-base/references/lark-base-view-get-sort.md +38 -0
  75. package/dist/skills/larksuite/lark-base/references/lark-base-view-get-timebar.md +38 -0
  76. package/dist/skills/larksuite/lark-base/references/lark-base-view-get-visible-fields.md +28 -0
  77. package/dist/skills/larksuite/lark-base/references/lark-base-view-get.md +38 -0
  78. package/dist/skills/larksuite/lark-base/references/lark-base-view-list.md +44 -0
  79. package/dist/skills/larksuite/lark-base/references/lark-base-view-rename.md +44 -0
  80. package/dist/skills/larksuite/lark-base/references/lark-base-view-set-card.md +55 -0
  81. package/dist/skills/larksuite/lark-base/references/lark-base-view-set-filter.md +181 -0
  82. package/dist/skills/larksuite/lark-base/references/lark-base-view-set-group.md +65 -0
  83. package/dist/skills/larksuite/lark-base/references/lark-base-view-set-sort.md +63 -0
  84. package/dist/skills/larksuite/lark-base/references/lark-base-view-set-timebar.md +51 -0
  85. package/dist/skills/larksuite/lark-base/references/lark-base-view-set-visible-fields.md +46 -0
  86. package/dist/skills/larksuite/lark-base/references/lark-base-view.md +44 -0
  87. package/dist/skills/larksuite/lark-base/references/lark-base-workflow-create.md +180 -0
  88. package/dist/skills/larksuite/lark-base/references/lark-base-workflow-disable.md +94 -0
  89. package/dist/skills/larksuite/lark-base/references/lark-base-workflow-enable.md +94 -0
  90. package/dist/skills/larksuite/lark-base/references/lark-base-workflow-get.md +147 -0
  91. package/dist/skills/larksuite/lark-base/references/lark-base-workflow-guide.md +718 -0
  92. package/dist/skills/larksuite/lark-base/references/lark-base-workflow-list.md +124 -0
  93. package/dist/skills/larksuite/lark-base/references/lark-base-workflow-schema.md +935 -0
  94. package/dist/skills/larksuite/lark-base/references/lark-base-workflow-update.md +167 -0
  95. package/dist/skills/larksuite/lark-base/references/lark-base-workflow.md +23 -0
  96. package/dist/skills/larksuite/lark-base/references/lark-base-workspace.md +18 -0
  97. package/dist/skills/larksuite/lark-base/references/lookup-field-guide.md +510 -0
  98. package/dist/skills/larksuite/lark-base/references/role-config.md +539 -0
  99. package/dist/skills/larksuite/lark-calendar/SKILL.md +154 -0
  100. package/dist/skills/larksuite/lark-calendar/references/lark-calendar-agenda.md +78 -0
  101. package/dist/skills/larksuite/lark-calendar/references/lark-calendar-create.md +109 -0
  102. package/dist/skills/larksuite/lark-calendar/references/lark-calendar-freebusy.md +124 -0
  103. package/dist/skills/larksuite/lark-calendar/references/lark-calendar-room-find.md +113 -0
  104. package/dist/skills/larksuite/lark-calendar/references/lark-calendar-rsvp.md +42 -0
  105. package/dist/skills/larksuite/lark-calendar/references/lark-calendar-schedule-meeting.md +265 -0
  106. package/dist/skills/larksuite/lark-calendar/references/lark-calendar-suggestion.md +125 -0
  107. package/dist/skills/larksuite/lark-calendar/references/lark-calendar-update.md +105 -0
  108. package/dist/skills/larksuite/lark-contact/SKILL.md +45 -0
  109. package/dist/skills/larksuite/lark-contact/references/lark-contact-get-user.md +19 -0
  110. package/dist/skills/larksuite/lark-contact/references/lark-contact-search-user.md +124 -0
  111. package/dist/skills/larksuite/lark-doc/SKILL.md +69 -0
  112. package/dist/skills/larksuite/lark-doc/references/lark-doc-create.md +89 -0
  113. package/dist/skills/larksuite/lark-doc/references/lark-doc-fetch.md +141 -0
  114. package/dist/skills/larksuite/lark-doc/references/lark-doc-md.md +71 -0
  115. package/dist/skills/larksuite/lark-doc/references/lark-doc-media-download.md +50 -0
  116. package/dist/skills/larksuite/lark-doc/references/lark-doc-media-insert.md +114 -0
  117. package/dist/skills/larksuite/lark-doc/references/lark-doc-media-preview.md +41 -0
  118. package/dist/skills/larksuite/lark-doc/references/lark-doc-search.md +217 -0
  119. package/dist/skills/larksuite/lark-doc/references/lark-doc-update.md +252 -0
  120. package/dist/skills/larksuite/lark-doc/references/lark-doc-whiteboard.md +100 -0
  121. package/dist/skills/larksuite/lark-doc/references/lark-doc-xml.md +169 -0
  122. package/dist/skills/larksuite/lark-doc/references/style/lark-doc-create-workflow.md +56 -0
  123. package/dist/skills/larksuite/lark-doc/references/style/lark-doc-style.md +106 -0
  124. package/dist/skills/larksuite/lark-doc/references/style/lark-doc-update-workflow.md +54 -0
  125. package/dist/skills/larksuite/lark-drive/SKILL.md +343 -0
  126. package/dist/skills/larksuite/lark-drive/references/lark-drive-add-comment.md +169 -0
  127. package/dist/skills/larksuite/lark-drive/references/lark-drive-apply-permission.md +77 -0
  128. package/dist/skills/larksuite/lark-drive/references/lark-drive-create-folder.md +73 -0
  129. package/dist/skills/larksuite/lark-drive/references/lark-drive-create-shortcut.md +103 -0
  130. package/dist/skills/larksuite/lark-drive/references/lark-drive-delete.md +79 -0
  131. package/dist/skills/larksuite/lark-drive/references/lark-drive-download.md +31 -0
  132. package/dist/skills/larksuite/lark-drive/references/lark-drive-export-download.md +50 -0
  133. package/dist/skills/larksuite/lark-drive/references/lark-drive-export.md +119 -0
  134. package/dist/skills/larksuite/lark-drive/references/lark-drive-import.md +154 -0
  135. package/dist/skills/larksuite/lark-drive/references/lark-drive-move.md +120 -0
  136. package/dist/skills/larksuite/lark-drive/references/lark-drive-pull.md +137 -0
  137. package/dist/skills/larksuite/lark-drive/references/lark-drive-push.md +162 -0
  138. package/dist/skills/larksuite/lark-drive/references/lark-drive-reactions.md +113 -0
  139. package/dist/skills/larksuite/lark-drive/references/lark-drive-search.md +239 -0
  140. package/dist/skills/larksuite/lark-drive/references/lark-drive-status.md +137 -0
  141. package/dist/skills/larksuite/lark-drive/references/lark-drive-task-result.md +302 -0
  142. package/dist/skills/larksuite/lark-drive/references/lark-drive-upload.md +101 -0
  143. package/dist/skills/larksuite/lark-event/SKILL.md +145 -0
  144. package/dist/skills/larksuite/lark-event/references/lark-event-im.md +86 -0
  145. package/dist/skills/larksuite/lark-im/SKILL.md +162 -0
  146. package/dist/skills/larksuite/lark-im/references/lark-im-chat-create.md +162 -0
  147. package/dist/skills/larksuite/lark-im/references/lark-im-chat-identity.md +55 -0
  148. package/dist/skills/larksuite/lark-im/references/lark-im-chat-list.md +113 -0
  149. package/dist/skills/larksuite/lark-im/references/lark-im-chat-messages-list.md +142 -0
  150. package/dist/skills/larksuite/lark-im/references/lark-im-chat-search.md +136 -0
  151. package/dist/skills/larksuite/lark-im/references/lark-im-chat-update.md +84 -0
  152. package/dist/skills/larksuite/lark-im/references/lark-im-flag-cancel.md +67 -0
  153. package/dist/skills/larksuite/lark-im/references/lark-im-flag-create.md +67 -0
  154. package/dist/skills/larksuite/lark-im/references/lark-im-flag-list.md +100 -0
  155. package/dist/skills/larksuite/lark-im/references/lark-im-messages-mget.md +95 -0
  156. package/dist/skills/larksuite/lark-im/references/lark-im-messages-reply.md +222 -0
  157. package/dist/skills/larksuite/lark-im/references/lark-im-messages-resources-download.md +94 -0
  158. package/dist/skills/larksuite/lark-im/references/lark-im-messages-search.md +217 -0
  159. package/dist/skills/larksuite/lark-im/references/lark-im-messages-send.md +223 -0
  160. package/dist/skills/larksuite/lark-im/references/lark-im-reactions.md +297 -0
  161. package/dist/skills/larksuite/lark-im/references/lark-im-threads-messages-list.md +111 -0
  162. package/dist/skills/larksuite/lark-mail/SKILL.md +648 -0
  163. package/dist/skills/larksuite/lark-mail/references/lark-mail-decline-receipt.md +115 -0
  164. package/dist/skills/larksuite/lark-mail/references/lark-mail-draft-create.md +123 -0
  165. package/dist/skills/larksuite/lark-mail/references/lark-mail-draft-edit.md +400 -0
  166. package/dist/skills/larksuite/lark-mail/references/lark-mail-forward.md +232 -0
  167. package/dist/skills/larksuite/lark-mail/references/lark-mail-message.md +230 -0
  168. package/dist/skills/larksuite/lark-mail/references/lark-mail-messages.md +108 -0
  169. package/dist/skills/larksuite/lark-mail/references/lark-mail-reply-all.md +206 -0
  170. package/dist/skills/larksuite/lark-mail/references/lark-mail-reply.md +242 -0
  171. package/dist/skills/larksuite/lark-mail/references/lark-mail-send-receipt.md +120 -0
  172. package/dist/skills/larksuite/lark-mail/references/lark-mail-send.md +216 -0
  173. package/dist/skills/larksuite/lark-mail/references/lark-mail-share-to-chat.md +87 -0
  174. package/dist/skills/larksuite/lark-mail/references/lark-mail-signature.md +98 -0
  175. package/dist/skills/larksuite/lark-mail/references/lark-mail-template-create.md +129 -0
  176. package/dist/skills/larksuite/lark-mail/references/lark-mail-template-update.md +150 -0
  177. package/dist/skills/larksuite/lark-mail/references/lark-mail-thread.md +111 -0
  178. package/dist/skills/larksuite/lark-mail/references/lark-mail-triage.md +122 -0
  179. package/dist/skills/larksuite/lark-mail/references/lark-mail-watch.md +94 -0
  180. package/dist/skills/larksuite/lark-markdown/SKILL.md +46 -0
  181. package/dist/skills/larksuite/lark-markdown/references/lark-markdown-create.md +86 -0
  182. package/dist/skills/larksuite/lark-markdown/references/lark-markdown-fetch.md +79 -0
  183. package/dist/skills/larksuite/lark-markdown/references/lark-markdown-overwrite.md +85 -0
  184. package/dist/skills/larksuite/lark-minutes/SKILL.md +139 -0
  185. package/dist/skills/larksuite/lark-minutes/references/lark-minutes-download.md +137 -0
  186. package/dist/skills/larksuite/lark-minutes/references/lark-minutes-search.md +206 -0
  187. package/dist/skills/larksuite/lark-minutes/references/lark-minutes-upload.md +104 -0
  188. package/dist/skills/larksuite/lark-okr/SKILL.md +133 -0
  189. package/dist/skills/larksuite/lark-okr/references/lark-okr-contentblock.md +359 -0
  190. package/dist/skills/larksuite/lark-okr/references/lark-okr-cycle-detail.md +84 -0
  191. package/dist/skills/larksuite/lark-okr/references/lark-okr-cycle-list.md +90 -0
  192. package/dist/skills/larksuite/lark-okr/references/lark-okr-entities.md +329 -0
  193. package/dist/skills/larksuite/lark-okr/references/lark-okr-image-upload.md +116 -0
  194. package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-create.md +81 -0
  195. package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-delete.md +47 -0
  196. package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-get.md +62 -0
  197. package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-list.md +80 -0
  198. package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-update.md +81 -0
  199. package/dist/skills/larksuite/lark-openapi-explorer/SKILL.md +153 -0
  200. package/dist/skills/larksuite/lark-shared/SKILL.md +138 -0
  201. package/dist/skills/larksuite/lark-sheets/SKILL.md +345 -0
  202. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-cell-data.md +197 -0
  203. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-cell-images.md +59 -0
  204. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-cell-style-and-merge.md +141 -0
  205. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-dropdown.md +133 -0
  206. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-filter-views.md +193 -0
  207. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-float-images.md +125 -0
  208. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-formula.md +88 -0
  209. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-row-column-management.md +151 -0
  210. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-sheet-management.md +164 -0
  211. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-spreadsheet-management.md +134 -0
  212. package/dist/skills/larksuite/lark-skill-maker/SKILL.md +85 -0
  213. package/dist/skills/larksuite/lark-slides/SKILL.md +525 -0
  214. package/dist/skills/larksuite/lark-slides/assets/templates/administration--all_hands_meeting.xml +1999 -0
  215. package/dist/skills/larksuite/lark-slides/assets/templates/administration--annual_gala.xml +1160 -0
  216. package/dist/skills/larksuite/lark-slides/assets/templates/administration--company_intro.xml +1376 -0
  217. package/dist/skills/larksuite/lark-slides/assets/templates/administration--corporate_culture.xml +1765 -0
  218. package/dist/skills/larksuite/lark-slides/assets/templates/hr--employee_training.xml +912 -0
  219. package/dist/skills/larksuite/lark-slides/assets/templates/hr--employee_training_workshop.xml +1504 -0
  220. package/dist/skills/larksuite/lark-slides/assets/templates/hr--onboarding.xml +933 -0
  221. package/dist/skills/larksuite/lark-slides/assets/templates/marketing--brand_communication.xml +1367 -0
  222. package/dist/skills/larksuite/lark-slides/assets/templates/marketing--brand_logo_design.xml +1347 -0
  223. package/dist/skills/larksuite/lark-slides/assets/templates/marketing--brand_operations_plan.xml +1309 -0
  224. package/dist/skills/larksuite/lark-slides/assets/templates/marketing--business_plan.xml +1646 -0
  225. package/dist/skills/larksuite/lark-slides/assets/templates/marketing--marketing_plan.xml +1469 -0
  226. package/dist/skills/larksuite/lark-slides/assets/templates/marketing--marketing_strategy.xml +1484 -0
  227. package/dist/skills/larksuite/lark-slides/assets/templates/marketing--product_whitepaper.xml +1455 -0
  228. package/dist/skills/larksuite/lark-slides/assets/templates/marketing--roadshow_business_plan.xml +1506 -0
  229. package/dist/skills/larksuite/lark-slides/assets/templates/misc--book_sharing.xml +1338 -0
  230. package/dist/skills/larksuite/lark-slides/assets/templates/misc--club_event_plan.xml +4885 -0
  231. package/dist/skills/larksuite/lark-slides/assets/templates/misc--student_career_plan.xml +1854 -0
  232. package/dist/skills/larksuite/lark-slides/assets/templates/office--dark_general.xml +3763 -0
  233. package/dist/skills/larksuite/lark-slides/assets/templates/office--dept_annual_report.xml +1192 -0
  234. package/dist/skills/larksuite/lark-slides/assets/templates/office--light_general.xml +3378 -0
  235. package/dist/skills/larksuite/lark-slides/assets/templates/office--project_kickoff.xml +3152 -0
  236. package/dist/skills/larksuite/lark-slides/assets/templates/office--quarterly_review.xml +1253 -0
  237. package/dist/skills/larksuite/lark-slides/assets/templates/office--work_report.xml +1099 -0
  238. package/dist/skills/larksuite/lark-slides/assets/templates/office--work_summary.xml +4420 -0
  239. package/dist/skills/larksuite/lark-slides/assets/templates/office--work_summary_report.xml +1523 -0
  240. package/dist/skills/larksuite/lark-slides/assets/templates/operations--brand_logo_design.xml +1347 -0
  241. package/dist/skills/larksuite/lark-slides/assets/templates/operations--brand_operations_plan.xml +1309 -0
  242. package/dist/skills/larksuite/lark-slides/assets/templates/operations--marketing_plan.xml +1469 -0
  243. package/dist/skills/larksuite/lark-slides/assets/templates/operations--product_promotion.xml +687 -0
  244. package/dist/skills/larksuite/lark-slides/assets/templates/personal--experience_sharing.xml +2242 -0
  245. package/dist/skills/larksuite/lark-slides/assets/templates/personal--personal_resume.xml +2047 -0
  246. package/dist/skills/larksuite/lark-slides/assets/templates/personal--promotion_defense.xml +1099 -0
  247. package/dist/skills/larksuite/lark-slides/assets/templates/personal--promotion_report.xml +1039 -0
  248. package/dist/skills/larksuite/lark-slides/assets/templates/personal--self_intro.xml +696 -0
  249. package/dist/skills/larksuite/lark-slides/assets/templates/personal--teaching_sharing.xml +3013 -0
  250. package/dist/skills/larksuite/lark-slides/assets/templates/product--business_case_analysis.xml +1341 -0
  251. package/dist/skills/larksuite/lark-slides/assets/templates/product--market_analysis.xml +898 -0
  252. package/dist/skills/larksuite/lark-slides/assets/templates/product--product_analysis.xml +1537 -0
  253. package/dist/skills/larksuite/lark-slides/assets/templates/product--product_intro.xml +2838 -0
  254. package/dist/skills/larksuite/lark-slides/assets/templates/product--product_promotion.xml +687 -0
  255. package/dist/skills/larksuite/lark-slides/assets/templates/product--product_promotion_2.xml +687 -0
  256. package/dist/skills/larksuite/lark-slides/references/examples.md +261 -0
  257. package/dist/skills/larksuite/lark-slides/references/lark-slides-create.md +137 -0
  258. package/dist/skills/larksuite/lark-slides/references/lark-slides-edit-workflows.md +142 -0
  259. package/dist/skills/larksuite/lark-slides/references/lark-slides-media-upload.md +128 -0
  260. package/dist/skills/larksuite/lark-slides/references/lark-slides-replace-slide.md +239 -0
  261. package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentation-slide-create.md +221 -0
  262. package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +123 -0
  263. package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentation-slide-get.md +110 -0
  264. package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +186 -0
  265. package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentations-get.md +98 -0
  266. package/dist/skills/larksuite/lark-slides/references/slide-templates.md +201 -0
  267. package/dist/skills/larksuite/lark-slides/references/slides_demo.xml +226 -0
  268. package/dist/skills/larksuite/lark-slides/references/slides_xml_schema_definition.xml +3004 -0
  269. package/dist/skills/larksuite/lark-slides/references/template-catalog.md +464 -0
  270. package/dist/skills/larksuite/lark-slides/references/template-index.json +1853 -0
  271. package/dist/skills/larksuite/lark-slides/references/xml-format-guide.md +369 -0
  272. package/dist/skills/larksuite/lark-slides/references/xml-schema-quick-ref.md +215 -0
  273. package/dist/skills/larksuite/lark-slides/scripts/layout_lint.py +349 -0
  274. package/dist/skills/larksuite/lark-slides/scripts/layout_lint_test.py +159 -0
  275. package/dist/skills/larksuite/lark-slides/scripts/template_tool.py +970 -0
  276. package/dist/skills/larksuite/lark-slides/scripts/template_tool_test.py +177 -0
  277. package/dist/skills/larksuite/lark-task/SKILL.md +165 -0
  278. package/dist/skills/larksuite/lark-task/references/lark-task-assign.md +38 -0
  279. package/dist/skills/larksuite/lark-task/references/lark-task-comment.md +28 -0
  280. package/dist/skills/larksuite/lark-task/references/lark-task-complete.md +27 -0
  281. package/dist/skills/larksuite/lark-task/references/lark-task-create.md +57 -0
  282. package/dist/skills/larksuite/lark-task/references/lark-task-followers.md +35 -0
  283. package/dist/skills/larksuite/lark-task/references/lark-task-get-my-tasks.md +55 -0
  284. package/dist/skills/larksuite/lark-task/references/lark-task-get-related-tasks.md +53 -0
  285. package/dist/skills/larksuite/lark-task/references/lark-task-reminder.md +36 -0
  286. package/dist/skills/larksuite/lark-task/references/lark-task-reopen.md +27 -0
  287. package/dist/skills/larksuite/lark-task/references/lark-task-search.md +41 -0
  288. package/dist/skills/larksuite/lark-task/references/lark-task-set-ancestor.md +32 -0
  289. package/dist/skills/larksuite/lark-task/references/lark-task-subscribe-event.md +86 -0
  290. package/dist/skills/larksuite/lark-task/references/lark-task-tasklist-create.md +35 -0
  291. package/dist/skills/larksuite/lark-task/references/lark-task-tasklist-members.md +36 -0
  292. package/dist/skills/larksuite/lark-task/references/lark-task-tasklist-search.md +38 -0
  293. package/dist/skills/larksuite/lark-task/references/lark-task-tasklist-task-add.md +38 -0
  294. package/dist/skills/larksuite/lark-task/references/lark-task-update.md +37 -0
  295. package/dist/skills/larksuite/lark-task/references/lark-task-upload-attachment.md +59 -0
  296. package/dist/skills/larksuite/lark-vc/SKILL.md +168 -0
  297. package/dist/skills/larksuite/lark-vc/references/lark-vc-notes.md +126 -0
  298. package/dist/skills/larksuite/lark-vc/references/lark-vc-recording.md +153 -0
  299. package/dist/skills/larksuite/lark-vc/references/lark-vc-search.md +176 -0
  300. package/dist/skills/larksuite/lark-vc-agent/SKILL.md +121 -0
  301. package/dist/skills/larksuite/lark-vc-agent/references/lark-vc-agent-meeting-events.md +247 -0
  302. package/dist/skills/larksuite/lark-vc-agent/references/lark-vc-agent-meeting-join.md +133 -0
  303. package/dist/skills/larksuite/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +111 -0
  304. package/dist/skills/larksuite/lark-whiteboard/SKILL.md +144 -0
  305. package/dist/skills/larksuite/lark-whiteboard/references/connectors.md +102 -0
  306. package/dist/skills/larksuite/lark-whiteboard/references/content.md +40 -0
  307. package/dist/skills/larksuite/lark-whiteboard/references/image.md +80 -0
  308. package/dist/skills/larksuite/lark-whiteboard/references/lark-whiteboard-query.md +49 -0
  309. package/dist/skills/larksuite/lark-whiteboard/references/lark-whiteboard-update.md +100 -0
  310. package/dist/skills/larksuite/lark-whiteboard/references/layout.md +374 -0
  311. package/dist/skills/larksuite/lark-whiteboard/references/schema.md +357 -0
  312. package/dist/skills/larksuite/lark-whiteboard/references/style.md +318 -0
  313. package/dist/skills/larksuite/lark-whiteboard/references/typography.md +73 -0
  314. package/dist/skills/larksuite/lark-whiteboard/routes/dsl.md +107 -0
  315. package/dist/skills/larksuite/lark-whiteboard/routes/mermaid.md +27 -0
  316. package/dist/skills/larksuite/lark-whiteboard/routes/svg.md +54 -0
  317. package/dist/skills/larksuite/lark-whiteboard/scenes/architecture.md +433 -0
  318. package/dist/skills/larksuite/lark-whiteboard/scenes/bar-chart.md +187 -0
  319. package/dist/skills/larksuite/lark-whiteboard/scenes/comparison.md +135 -0
  320. package/dist/skills/larksuite/lark-whiteboard/scenes/fishbone.md +238 -0
  321. package/dist/skills/larksuite/lark-whiteboard/scenes/flowchart.md +185 -0
  322. package/dist/skills/larksuite/lark-whiteboard/scenes/flywheel.md +195 -0
  323. package/dist/skills/larksuite/lark-whiteboard/scenes/funnel.md +101 -0
  324. package/dist/skills/larksuite/lark-whiteboard/scenes/line-chart.md +214 -0
  325. package/dist/skills/larksuite/lark-whiteboard/scenes/mermaid.md +130 -0
  326. package/dist/skills/larksuite/lark-whiteboard/scenes/milestone.md +139 -0
  327. package/dist/skills/larksuite/lark-whiteboard/scenes/organization.md +173 -0
  328. package/dist/skills/larksuite/lark-whiteboard/scenes/photo-showcase.md +126 -0
  329. package/dist/skills/larksuite/lark-whiteboard/scenes/pyramid.md +99 -0
  330. package/dist/skills/larksuite/lark-whiteboard/scenes/swimlane.md +371 -0
  331. package/dist/skills/larksuite/lark-whiteboard/scenes/treemap.md +216 -0
  332. package/dist/skills/larksuite/lark-wiki/SKILL.md +111 -0
  333. package/dist/skills/larksuite/lark-wiki/references/lark-wiki-delete-space.md +205 -0
  334. package/dist/skills/larksuite/lark-wiki/references/lark-wiki-move.md +183 -0
  335. package/dist/skills/larksuite/lark-wiki/references/lark-wiki-node-copy.md +72 -0
  336. package/dist/skills/larksuite/lark-wiki/references/lark-wiki-node-create.md +127 -0
  337. package/dist/skills/larksuite/lark-wiki/references/lark-wiki-node-list.md +88 -0
  338. package/dist/skills/larksuite/lark-wiki/references/lark-wiki-space-list.md +68 -0
  339. package/dist/skills/larksuite/lark-workflow-meeting-summary/SKILL.md +104 -0
  340. package/dist/skills/larksuite/lark-workflow-standup-report/SKILL.md +120 -0
  341. package/package.json +2 -1
@@ -0,0 +1,222 @@
1
+ # im +messages-reply
2
+
3
+ > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
+
5
+ Reply to a specific message. Supports both user identity (`--as user`) and bot identity (`--as bot`). Also supports thread replies.
6
+
7
+ This skill maps to the shortcut: `lark-cli im +messages-reply` (internally calls `POST /open-apis/im/v1/messages/:message_id/reply`).
8
+
9
+ ## Safety Constraints
10
+
11
+ Replies sent by this tool are visible to other people. Before calling it, you **must** confirm with the user:
12
+
13
+ 1. Which message to reply to
14
+ 2. The reply content
15
+ 3. Which identity to use (user or bot)
16
+
17
+ **Do not** send a reply without explicit user approval.
18
+
19
+ When using `--as bot`, the reply 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 reply 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
+ | Need | Recommended flag | Why |
26
+ |------|------|------|
27
+ | Reply with plain text exactly as written | `--text` | Wrapped directly to `{"text":"..."}` |
28
+ | Reply with simple Markdown and accept conversion | `--markdown` | Automatically converted to `post` JSON |
29
+ | Precisely control the reply payload | `--content` | You provide the exact JSON |
30
+ | Reply with media | `--image` / `--file` / `--video` / `--audio` | Shortcut uploads local files automatically |
31
+
32
+ ### `--text` vs `--markdown`
33
+
34
+ - Use `--text` when the reply should remain plain text and you want exact control over line breaks, spacing, indentation, code samples, or literal Markdown characters.
35
+ - Use `--markdown` when you want a lightweight formatted reply and you accept that the shortcut will normalize and rewrite parts of the content before sending.
36
+ - Use `--content` when you need exact `post` JSON, a card, a title, multiple locales, or any structure that `--markdown` cannot express reliably.
37
+
38
+ ## What `--markdown` Really Does
39
+
40
+ `--markdown` does **not** send arbitrary raw Markdown to the API.
41
+
42
+ The shortcut:
43
+
44
+ 1. Forces `msg_type=post`
45
+ 2. Resolves remote Markdown images like `![x](https://...)`
46
+ 3. Normalizes the Markdown for Feishu post rendering
47
+ 4. Wraps the final content as:
48
+
49
+ ```json
50
+ {"zh_cn":{"content":[[{"tag":"md","text":"..."}]]}}
51
+ ```
52
+
53
+ So `--markdown` is a convenience mode, not a full Markdown compatibility layer.
54
+
55
+ ### Current Markdown Caveats
56
+
57
+ - It does **not** promise full CommonMark / GitHub Flavored Markdown support.
58
+ - It always becomes a `post` payload with a single `zh_cn` locale.
59
+ - It does **not** let you set a `post` title.
60
+ - Headings are rewritten:
61
+ - `# Title` becomes `#### Title`
62
+ - `##` to `######` are normalized to `#####` when the content contains H1-H3
63
+ - Consecutive headings are separated with blank lines after heading normalization.
64
+ - Block spacing and line breaks may be normalized during conversion.
65
+ - Code blocks are preserved as code blocks.
66
+ - Excess blank lines are compressed.
67
+ - Only remote `http://...`, `https://...`, or already-uploaded `img_xxx` Markdown images are kept reliably.
68
+ - Local paths in Markdown image syntax like `![x](./a.png)` are **not** auto-uploaded by `--markdown`.
69
+ - If remote Markdown image handling fails, that image is removed with a warning.
70
+
71
+ If you need exact output, use `--msg-type post --content ...` instead of `--markdown`.
72
+
73
+ ## Preserving Formatting
74
+
75
+ If the reply contains multiple lines, code blocks, indentation, tabs, or a lot of escaping, prefer `$'...'`.
76
+
77
+ ### When formatting must be preserved
78
+
79
+ Use `--text` plus `$'...'`:
80
+
81
+ ```bash
82
+ lark-cli im +messages-reply --message-id om_xxx --text $'Received\nI will check this today.\nOwner: alice'
83
+ ```
84
+
85
+ ```bash
86
+ lark-cli im +messages-reply --message-id om_xxx --text $'```sql\nselect * from jobs;\n```'
87
+ ```
88
+
89
+ This keeps the reply as plain text instead of converting it to a `post`.
90
+
91
+ ### When formatting does not need exact preservation
92
+
93
+ Use `--markdown`:
94
+
95
+ ```bash
96
+ lark-cli im +messages-reply --message-id om_xxx --markdown $'## Follow-up\n\n- I reproduced it\n- I am fixing it'
97
+ ```
98
+
99
+ This is better for quick readable formatting, but the final payload may still differ from the source text because headings and spacing are normalized before sending.
100
+
101
+ ## Commands
102
+
103
+ ```bash
104
+ # Reply to a message (plain text, --text is recommended for normal replies)
105
+ lark-cli im +messages-reply --message-id om_xxx --text "Received"
106
+
107
+ # Equivalent manual JSON
108
+ lark-cli im +messages-reply --message-id om_xxx --content '{"text":"Received"}'
109
+
110
+ # Reply as a bot
111
+ lark-cli im +messages-reply --message-id om_xxx --text "bot reply" --as bot
112
+
113
+ # Reply with preserved multi-line text
114
+ lark-cli im +messages-reply --message-id om_xxx --text $'Line 1\nLine 2\n indented line'
115
+
116
+ # Reply inside the thread (message appears in the target thread)
117
+ lark-cli im +messages-reply --message-id om_xxx --text "Let's discuss this" --reply-in-thread
118
+
119
+ # Reply with basic Markdown (will be converted to post JSON)
120
+ lark-cli im +messages-reply --message-id om_xxx --markdown $'## Reply\n\n- item 1\n- item 2'
121
+
122
+ # If you need exact post structure, send JSON directly
123
+ lark-cli im +messages-reply --message-id om_xxx --msg-type post --content '{"zh_cn":{"title":"Reply","content":[[{"tag":"text","text":"Detailed content"}]]}}'
124
+
125
+ # Reply with a local image (uploaded automatically before sending)
126
+ lark-cli im +messages-reply --message-id om_xxx --image ./photo.png
127
+
128
+ # Reply with a local file (uploaded automatically before sending)
129
+ lark-cli im +messages-reply --message-id om_xxx --file ./report.pdf
130
+
131
+ # Reply with a local video (--video-cover is required as the video cover)
132
+ lark-cli im +messages-reply --message-id om_xxx --video ./demo.mp4 --video-cover ./cover.png
133
+
134
+ # With an idempotency key
135
+ lark-cli im +messages-reply --message-id om_xxx --text "Received" --idempotency-key my-unique-id
136
+
137
+ # Preview the request without executing it
138
+ lark-cli im +messages-reply --message-id om_xxx --markdown $'## Test\n\nhello' --dry-run
139
+ ```
140
+
141
+ ## Parameters
142
+
143
+ | Parameter | Required | Description |
144
+ |------|------|------|
145
+ | `--message-id <id>` | Yes | ID of the message being replied to (`om_xxx`) |
146
+ | `--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 |
147
+ | `--content <json>` | One content option | Exact reply content as JSON. The JSON must match the effective `--msg-type` |
148
+ | `--text <string>` | One content option | Plain text reply. Best default when you need exact text and formatting preservation |
149
+ | `--markdown <string>` | One content option | Convenience Markdown input. Internally converted to `post` JSON with Feishu-specific normalization |
150
+ | `--image <path\|key>` | One content option | Local image path or `image_key` (`img_xxx`) |
151
+ | `--file <path\|key>` | One content option | Local file path or `file_key` (`file_xxx`) |
152
+ | `--video <path\|key>` | One content option | Local video path or `file_key`; **must be used together with `--video-cover`** |
153
+ | `--video-cover <path\|key>` | **Required with `--video`** | Video cover image path or `image_key` (`img_xxx`) |
154
+ | `--audio <path\|key>` | One content option | Local audio path or `file_key` |
155
+ | `--reply-in-thread` | No | Reply inside the thread. The reply appears in the target message's thread instead of the main chat stream |
156
+ | `--idempotency-key <key>` | No | Idempotency key; the same key sends only one reply within 1 hour |
157
+ | `--as <identity>` | No | Identity type: `bot` or `user` (default `bot`) |
158
+ | `--dry-run` | No | Print the request only, do not execute it |
159
+
160
+ > **Mutual exclusivity rule:** `--text`, `--markdown`, `--content`, and `--image`/`--file`/`--video`/`--audio` cannot be used together. Media flags are also mutually exclusive with each other.
161
+ >
162
+ > **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`.
163
+
164
+ ## Common Mistakes
165
+
166
+ - Choosing `--markdown` when you actually need exact plain text. If exact line breaks and spacing matter, use `--text`, usually with `$'...'`.
167
+ - Assuming `--markdown` supports all Markdown features. It does not; it is converted into a Feishu `post` payload and rewritten first.
168
+ - Putting local image paths inside Markdown like `![x](./a.png)`. `--markdown` does not auto-upload those paths.
169
+ - Using `--content` without making the JSON match the effective `--msg-type`.
170
+ - Explicitly setting `--msg-type` to something that conflicts with `--text`, `--markdown`, or media flags.
171
+ - Mixing `--text`, `--markdown`, or `--content` with media flags in one command.
172
+
173
+ ## Return Value
174
+
175
+ ```json
176
+ {
177
+ "message_id": "om_xxx",
178
+ "chat_id": "oc_xxx",
179
+ "create_time": "1234567890"
180
+ }
181
+ ```
182
+
183
+ ## Usage Scenarios
184
+
185
+ ### Scenario 1: Reply in the main chat stream
186
+
187
+ ```bash
188
+ lark-cli im +messages-reply --message-id om_xxx --text "OK, I will handle it"
189
+ ```
190
+
191
+ The reply appears in the main chat stream and references the target message.
192
+
193
+ ### Scenario 2: Reply inside a thread
194
+
195
+ ```bash
196
+ lark-cli im +messages-reply --message-id om_xxx --text "Let me take a look at this" --reply-in-thread
197
+ ```
198
+
199
+ The reply appears in the target message's thread and does not show up in the main chat stream.
200
+
201
+ ## @Mention Format (text / post)
202
+
203
+ - Recommended format: `<at user_id="ou_xxx">name</at>`
204
+ - @all: `<at user_id="all"></at>`
205
+ - The shortcut normalizes common variants like `<at id=...>` and `<at open_id=...>` into `user_id`, but `user_id` remains the recommended documented form
206
+
207
+ ## Notes
208
+
209
+ - `--message-id` must be a valid message ID in `om_xxx` format
210
+ - `--content` must be valid JSON
211
+ - When using `--content`, you are responsible for making the JSON structure match the effective `msg_type`
212
+ - `--reply-in-thread` adds `reply_in_thread=true` to the API request
213
+ - `--reply-in-thread` is mainly meaningful in chats that support thread replies
214
+ - `--image`/`--file`/`--video`/`--audio`/`--video-cover` support local file paths; the shortcut uploads first and then sends the reply; both the upload and send steps use the same identity (UAT when `--as user`, TAT when `--as bot`)
215
+ - If the provided media value starts with `img_` or `file_`, it is treated as an existing key and used directly
216
+ - `--markdown` always sends `msg_type=post`
217
+ - If you explicitly set `--msg-type` and it conflicts with the chosen content flag, validation fails
218
+ - When using `--video`, `--video-cover` is required as the video cover
219
+ - `--dry-run` uses placeholder image keys for remote Markdown images and placeholder media keys for local uploads
220
+ - Failures return error codes and messages
221
+ - `--as user` uses a user access token (UAT) and requires the `im:message.send_as_user` and `im:message` scopes; the reply is sent as the authorized end user
222
+ - `--as bot` uses a tenant access token (TAT), and requires the `im:message:send_as_bot` scope
@@ -0,0 +1,94 @@
1
+ # im +messages-resources-download
2
+
3
+ > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
+
5
+ Download image or file resources from a message. Supports **automatic chunked download for large files** using HTTP Range requests. Resources are identified by the combination of `message_id` + `file_key`, both of which come directly from message content returned by `im +chat-messages-list`.
6
+
7
+ > **Note:** read-only message commands render resource keys in message content, but they do not download binaries automatically. Use this command whenever you need to fetch the actual image/file bytes or save them to a specific path.
8
+
9
+ This skill maps to the shortcut: `lark-cli im +messages-resources-download` (internally calls `GET /open-apis/im/v1/messages/{message_id}/resources/{file_key}`).
10
+
11
+ ## Commands
12
+
13
+ ```bash
14
+ # Download an image (save to the current directory)
15
+ lark-cli im +messages-resources-download --message-id om_xxx --file-key img_v3_xxx --type image
16
+
17
+ # Download a file
18
+ lark-cli im +messages-resources-download --message-id om_xxx --file-key file_v3_xxx --type file
19
+
20
+ # Specify the output path
21
+ lark-cli im +messages-resources-download --message-id om_xxx --file-key img_v3_xxx --type image --output ./photo.png
22
+
23
+ # Download as a bot
24
+ lark-cli im +messages-resources-download --message-id om_xxx --file-key img_v3_xxx --type image --as bot
25
+
26
+ # Preview the request without executing it
27
+ lark-cli im +messages-resources-download --message-id om_xxx --file-key img_v3_xxx --type image --dry-run
28
+ ```
29
+
30
+ ## Parameters
31
+
32
+ | Parameter | Required | Description |
33
+ |------|------|------|
34
+ | `--message-id <id>` | Yes | Message ID (`om_xxx` format) |
35
+ | `--file-key <key>` | Yes | Resource key (`img_xxx` or `file_xxx`) |
36
+ | `--type <type>` | Yes | Resource type: `image` or `file` |
37
+ | `--output <path>` | No | Output path (relative paths only; `..` traversal is not allowed). When omitted, the server's original filename from `Content-Disposition` is used if available; otherwise defaults to `file_key`. File extension is automatically inferred from `Content-Disposition` or `Content-Type` if not provided |
38
+ | `--as <identity>` | No | Identity type: `user` (default) or `bot` |
39
+ | `--dry-run` | No | Print the request only, do not execute it |
40
+
41
+ ## Large File Download (Auto Chunking)
42
+
43
+ When downloading large files, the command automatically uses **HTTP Range requests** for reliable chunked downloading:
44
+
45
+ | Behavior | Details |
46
+ |----------|---------|
47
+ | Probe chunk | First 128 KB to detect file size and Content-Type |
48
+ | Chunk size | 8 MB per subsequent request |
49
+ | Workers | Single-threaded sequential download (ensures reliability) |
50
+ | Retries | Up to 2 retries for transient request failures, with exponential backoff |
51
+
52
+ **Benefits:**
53
+ - Reduces the impact of transient request failures during large downloads
54
+ - Preserves the server's original filename via `Content-Disposition` (supports RFC 5987 UTF-8 encoding); falls back to `Content-Type`-based extension inference
55
+ - Validates file size integrity after download completion
56
+
57
+ ## `file_key` Sources
58
+
59
+ Different resource markers in message content correspond to different `file_key` and `type` values:
60
+
61
+ | Message Type | Marker in Content | `file_key` Format | `--type` |
62
+ |---------|-------------|---------------|--------|
63
+ | Image | `img_xxx` | `img_xxx` | `image` |
64
+ | File | `file_xxx` | `file_xxx` | `file` |
65
+ | Audio | `file_xxx` | `file_xxx` | `file` |
66
+ | Video | `file_xxx` | `file_xxx` | `file` |
67
+
68
+ ## Usage Scenario
69
+
70
+ ### Scenario: Extract and download an image from a message
71
+
72
+ ```bash
73
+ # Step 1: Fetch messages and find one containing an image
74
+ lark-cli im +chat-messages-list --chat-id oc_xxx
75
+ # In the response you see: { "msg_type": "image", "content": "{\"image_key\":\"img_v3_xxx\"}" }
76
+
77
+ # Step 2: Download the image
78
+ lark-cli im +messages-resources-download --message-id om_xxx --file-key img_v3_xxx --type image
79
+ ```
80
+
81
+ ## Common Errors and Troubleshooting
82
+
83
+ | Symptom | Root Cause | Solution |
84
+ |---------|---------|---------|
85
+ | Download failed | `file_key` does not match the `message_id` | Make sure the `file_key` came from that message's content |
86
+ | Hit error code 234002 or 14005 | No permission, **not** missing API scope | no access to this chat or file was deleted — do not retry, return the error to the user |
87
+ | Permission denied | `im:message:readonly` is not authorized | Run `auth login --scope "im:message:readonly"` |
88
+ | File size mismatch | Chunked download integrity check failed | Network instability during download; retry the command |
89
+ | Content-Range error | Server returned invalid range header | Transient API issue; retry the command |
90
+
91
+ ## References
92
+
93
+ - [lark-im](../SKILL.md) - all message-related commands
94
+ - [lark-shared](../../lark-shared/SKILL.md) - authentication and global parameters
@@ -0,0 +1,217 @@
1
+ # im +messages-search
2
+
3
+ > **Prerequisite:** Read [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) first to understand authentication, global parameters, and safety rules.
4
+
5
+ Search Feishu messages across conversations. This shortcut automatically performs a multi-step workflow: search for message IDs, batch fetch message details, then enrich the results with chat context.
6
+
7
+ > **User identity only** (`--as user`). Bot identity is not supported.
8
+
9
+ This skill maps to the shortcut: `lark-cli im +messages-search` (internally calls `POST /open-apis/im/v1/messages/search` + batched `GET /open-apis/im/v1/messages/mget`, then batch-fetches chat context).
10
+
11
+ ## Commands
12
+
13
+ ```bash
14
+ # Search by keyword
15
+ lark-cli im +messages-search --query "project progress"
16
+
17
+ # Restrict search to a specific group chat
18
+ lark-cli im +messages-search --query "weekly report" --chat-id oc_xxx
19
+
20
+ # Filter by sender (comma-separated)
21
+ lark-cli im +messages-search --query "requirement" --sender ou_xxx,ou_yyy
22
+
23
+ # Filter by attachment type
24
+ lark-cli im +messages-search --query "report" --include-attachment-type file
25
+
26
+ # Filter by chat type (group / p2p)
27
+ lark-cli im +messages-search --query "progress" --chat-type group
28
+
29
+ # Filter by sender type (user / bot)
30
+ lark-cli im +messages-search --query "reminder" --sender-type bot
31
+
32
+ # Exclude bot senders
33
+ lark-cli im +messages-search --query "reminder" --exclude-sender-type bot
34
+
35
+ # Only messages that @me
36
+ lark-cli im +messages-search --query "announcement" --is-at-me
37
+
38
+ # Only messages that @mention specific users (results also include messages that @all)
39
+ lark-cli im +messages-search --query "release" --at-chatter-ids ou_xxx,ou_yyy
40
+
41
+ # Combined filters + time range
42
+ lark-cli im +messages-search --query "meeting" --sender ou_xxx --chat-type group --start "2026-03-13T00:00:00+08:00" --end "2026-03-20T23:59:59+08:00"
43
+
44
+ # Specific time range (ISO 8601)
45
+ lark-cli im +messages-search --query "release" --start "2026-03-01T00:00:00+08:00" --end "2026-03-10T00:00:00+08:00"
46
+
47
+ # Output format options
48
+ lark-cli im +messages-search --query "test" --format pretty
49
+ lark-cli im +messages-search --query "test" --format table
50
+ lark-cli im +messages-search --query "test" --format csv
51
+
52
+ # Pagination
53
+ lark-cli im +messages-search --query "test" --page-token <PAGE_TOKEN>
54
+
55
+ # Auto-pagination across multiple pages
56
+ lark-cli im +messages-search --query "test" --page-all --format json
57
+
58
+ # Auto-pagination with an explicit page cap
59
+ lark-cli im +messages-search --query "test" --page-limit 5 --format json
60
+
61
+ # Preview the request without executing it
62
+ lark-cli im +messages-search --query "test" --dry-run
63
+ ```
64
+
65
+ ## Parameters
66
+
67
+ | Parameter | Required | Description |
68
+ |------|------|------|
69
+ | `--query <text>` | No | Search keyword (may be empty when used with other filters) |
70
+ | `--chat-id <id>` | No | Restrict to chat IDs, comma-separated (`oc_xxx,oc_yyy`) |
71
+ | `--sender <ids>` | No | Sender open_ids, comma-separated (`ou_xxx`) |
72
+ | `--include-attachment-type <type>` | No | Attachment filter: `file` / `image` / `video` / `link` |
73
+ | `--chat-type <type>` | No | Chat type: `group` / `p2p` |
74
+ | `--sender-type <type>` | No | Sender type: `user` / `bot` |
75
+ | `--exclude-sender-type <type>` | No | Exclude messages from `user` or `bot` senders |
76
+ | `--is-at-me` | No | Only return messages that mention `@me` |
77
+ | `--at-chatter-ids <ids>` | No | Filter by @mentioned user open_ids, comma-separated (`ou_xxx,ou_yyy`). Matched results also include messages that `@all` |
78
+ | `--start <time>` | No | Start time with local timezone offset required (e.g. `2026-03-24T00:00:00+08:00`) |
79
+ | `--end <time>` | No | End time with local timezone offset required (e.g. `2026-03-25T23:59:59+08:00`) |
80
+ | `--page-size <n>` | No | Page size (default 20, range 1-50) |
81
+ | `--page-token <token>` | No | Pagination token for the next page |
82
+ | `--page-all` | No | Automatically paginate through all result pages (up to 40 pages) |
83
+ | `--page-limit <n>` | No | Max pages to fetch when auto-pagination is enabled (default 20, max 40). Setting it explicitly also enables auto-pagination |
84
+ | `--format <fmt>` | No | Output format: `json` (default) / `pretty` / `table` / `ndjson` / `csv` |
85
+ | `--as <identity>` | No | Identity type (defaults to and only supports `user`) |
86
+ | `--dry-run` | No | Print the request only, do not execute it |
87
+
88
+ ## Core Constraints
89
+
90
+ ### 1. Provide at least one filter whenever possible
91
+
92
+ All parameters are optional, but you should usually provide at least one filter (`--query`, `--sender`, `--chat-id`, etc.). Otherwise the search scope may be too broad and return low-signal results.
93
+
94
+ ### 2. Two-step orchestration is automatic
95
+
96
+ The shortcut automatically performs:
97
+
98
+ 1. The **search API** returns matching `message_id` values
99
+ 2. The **mget API** fetches full message content for those message IDs in batch
100
+ 3. Chat context lookup is fetched in batch and attached to each message
101
+
102
+ The user does not need to manage the orchestration manually. When search results span multiple pages, the shortcut can also paginate automatically with `--page-all` or `--page-limit`.
103
+
104
+ ### 3. Conversation context is enriched automatically
105
+
106
+ In JSON output, each message automatically includes conversation context:
107
+
108
+ | Field | Description |
109
+ |------|------|
110
+ | `chat_type` | Conversation type: `p2p` / `group` |
111
+ | `chat_name` | Group name (for groups) or the other participant's name (for p2p chats) |
112
+ | `chat_partner` | For p2p only: the other participant's `open_id` and `name` |
113
+
114
+ In pretty output, the `chat` column shows the chat name for groups, or `"p2p"` for direct messages.
115
+
116
+ Each message in JSON output contains:
117
+
118
+ | Field | Description |
119
+ |------|------|
120
+ | `message_id` | Message ID |
121
+ | `msg_type` | Message type: `text`, `image`, `file`, `interactive`, `post`, `audio`, `video`, `system`, etc. |
122
+ | `create_time` | Creation time |
123
+ | `sender` | Sender information (includes `name` for user senders) |
124
+ | `content` | Message content |
125
+ | `chat_id` | ID of the conversation the message belongs to |
126
+ | `deleted` | Whether the message has been recalled (`true` = recalled) |
127
+ | `updated` | Whether the message has been edited after sending |
128
+ | `mentions` | Array of @mentions in the message; each item contains `{id, key, name}`. Present only when the message contains @mentions |
129
+ | `thread_id` | Thread ID (`omt_xxx`) if the message has replies in a thread. Present only when replies exist |
130
+
131
+ ### 4. Pagination behavior
132
+
133
+ - Default behavior is still **single-page**.
134
+ - `--page-token` is the manual continuation mechanism when you already have a token from a previous response.
135
+ - `--page-all` enables auto-pagination and uses a default cap of **40 pages**.
136
+ - `--page-limit <n>` enables auto-pagination with an explicit cap. If you pass `--page-limit` without `--page-all`, auto-pagination is still enabled.
137
+ - When auto-pagination stops because of the configured page cap, the response still includes the last `has_more` / `page_token` so you can continue manually.
138
+
139
+ ### 5. Search results contain follow-up clues
140
+
141
+ In JSON output, each message includes `chat_id` and `thread_id` (when present). Use them with other shortcuts for deeper inspection:
142
+
143
+ ```bash
144
+ # View the full message stream for the conversation that contains the search result
145
+ lark-cli im +chat-messages-list --chat-id <chat_id>
146
+
147
+ # View replies in the thread that contains the search result
148
+ lark-cli im +threads-messages-list --thread <thread_id>
149
+ ```
150
+
151
+ ## Resource Rendering
152
+
153
+ Search results reuse the same content formatter as other read commands. Image messages are rendered as placeholders such as `[Image: img_xxx]`; resource binaries are **not** downloaded automatically.
154
+
155
+ Use `im +messages-resources-download` if you need to fetch the underlying image or file bytes from a specific message.
156
+
157
+ ## AI Usage Guidance
158
+
159
+ ### Resolving chat_id from a chat name
160
+
161
+ When the user refers to a chat by name and you need its `chat_id` for the `--chat-id` filter, use [`+chat-search`](lark-im-chat-search.md) first:
162
+
163
+ ```bash
164
+ # Step 1: Find the chat_id by name
165
+ lark-cli im +chat-search --query "<chat name keyword>" --format json
166
+
167
+ # Step 2: Use the chat_id to narrow down message search
168
+ lark-cli im +messages-search --query "keyword" --chat-id <chat_id>
169
+ ```
170
+
171
+ **Do not use `im chats search` or `+chat-list` — always use the `+chat-search` shortcut.**
172
+
173
+ ## Work Summary / Report Generation
174
+
175
+ When the user asks you to summarize work, generate a weekly report, or compile activity from chat messages, you should **paginate through all available results** to get a complete picture. A single page is rarely enough for thorough summarization.
176
+
177
+ ### Strategy
178
+
179
+ 1. **Start with targeted filters** — use `--chat-id`, `--sender`, `--start`, `--end` to narrow the scope as much as possible before paginating.
180
+ 2. **Prefer auto-pagination** — for report and summary tasks, use `--page-all --format json` by default. If you need a bounded run, use `--page-limit <n> --format json`.
181
+ 3. **Accumulate before summarizing** — collect all pages of messages first, then analyze and summarize. Do not summarize after the first page alone — you will miss important context.
182
+ 4. **Fall back to `--page-token` when resuming** — if auto-pagination hits the configured page cap and the response still has `has_more=true`, continue from the returned `page_token`.
183
+ 5. **Use `--format json`** — JSON output includes `has_more` and `page_token` fields needed for pagination. `pretty` and `table` formats are useful for reading but not for resuming pagination reliably.
184
+
185
+ ### Example: Weekly work summary from a project chat
186
+
187
+ ```bash
188
+ # Preferred: fetch automatically
189
+ lark-cli im +messages-search --query "" --chat-id oc_xxx --sender ou_me --start "2026-03-18T00:00:00+08:00" --end "2026-03-25T23:59:59+08:00" --page-size 50 --page-all --format json
190
+
191
+ # If you need to cap the run explicitly
192
+ lark-cli im +messages-search --query "" --chat-id oc_xxx --sender ou_me --start "2026-03-18T00:00:00+08:00" --end "2026-03-25T23:59:59+08:00" --page-size 50 --page-limit 5 --format json
193
+
194
+ # If the bounded run still returns has_more=true, continue manually
195
+ lark-cli im +messages-search --query "" --chat-id oc_xxx --sender ou_me --start "2026-03-18T00:00:00+08:00" --end "2026-03-25T23:59:59+08:00" --page-size 50 --page-token <token_from_previous_run> --format json
196
+ ```
197
+
198
+ ### Key points
199
+
200
+ - **Always paginate exhaustively** for summary tasks. A single page of 20-50 messages is usually insufficient for a meaningful work summary.
201
+ - Prefer `--page-all`; use `--page-limit` only when you need to bound runtime or output volume.
202
+ - If the user does not specify a time range, default to the current week (Monday to today) for weekly reports, or ask for clarification.
203
+ - When summarizing, group messages by topic/thread rather than by chronological order for better readability.
204
+
205
+ ## Common Errors and Troubleshooting
206
+
207
+ | Symptom | Root Cause | Solution |
208
+ |---------|---------|---------|
209
+ | Too few results | The time range is too narrow or the keyword is too specific | Expand the time range and try broader keywords |
210
+ | No results | Missing permission or no match | Confirm `search:message` is authorized and relax the filters |
211
+ | Permission denied | Search scope not authorized | Run `auth login --scope "search:message"` |
212
+
213
+ ## References
214
+
215
+ - [lark-im](../SKILL.md) - all message-related commands
216
+ - [lark-im-threads-messages-list](lark-im-threads-messages-list.md) - inspect thread replies
217
+ - [lark-shared](../../lark-shared/SKILL.md) - authentication and global parameters