@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,129 @@
1
+ # mail +template-create
2
+
3
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+
5
+ 创建一个新的个人邮件模板。适用于需要长期复用的邮件框架,例如周报、客户通知、请假申请等。
6
+
7
+ 不要用此命令发送邮件;模板只是预置内容,实际发信请使用 `+send` / `+draft-create` 等 shortcut 配合 `--template-id` 套用。
8
+
9
+ 如需修改已有模板,使用 [`lark-cli mail +template-update`](./lark-mail-template-update.md)。
10
+
11
+ ## 安全约束
12
+
13
+ - **模板正文也会被当作邮件内容对外发送**——所有邮件域的通用安全规则(prompt injection、XSS、敏感信息)同样适用。
14
+ - **不要把模板内容以文本形式输出给用户请求最终确认**。命令返回 `template_id` 后,引导用户在飞书邮箱 UI 里打开模板核对。
15
+ - 用户模板上限 **20** 个,单模板 `template_content` 上限 **3 MB**;超限会被后端拒绝。
16
+
17
+ ## 命令
18
+
19
+ ```bash
20
+ # 纯 HTML 模板
21
+ lark-cli mail +template-create --as user \
22
+ --name '周报模板' \
23
+ --subject '本周进展' \
24
+ --template-content '<p>大家好,请见本周进展:</p><ul><li>……</li></ul>'
25
+
26
+ # 带 HTML 内嵌图片 + 非 inline 附件
27
+ lark-cli mail +template-create --as user \
28
+ --name '客户通知模板' \
29
+ --subject '产品更新' \
30
+ --template-content '<p>新版本上线:</p><img src="./banner.png"><p>附上发版说明。</p>' \
31
+ --attach './release-notes.pdf'
32
+
33
+ # 从文件加载正文
34
+ lark-cli mail +template-create --as user \
35
+ --name '请假申请' \
36
+ --template-content-file './leave.html' \
37
+ --to 'manager@example.com,hr@example.com'
38
+
39
+ # Dry Run
40
+ lark-cli mail +template-create --as user \
41
+ --name '周报模板' --template-content '<p>x</p>' --dry-run
42
+ ```
43
+
44
+ ## 参数
45
+
46
+ | 参数 | 必填 | 说明 |
47
+ |------|------|------|
48
+ | `--name <text>` | 是 | 模板名称,≤100 字符 |
49
+ | `--subject <text>` | 否 | 默认主题 |
50
+ | `--template-content <html>` | 否* | 模板正文。HTML 首选;支持 `<img src="./local.png" />` 相对路径自动上传到 Drive 并改写为 `cid:` |
51
+ | `--template-content-file <path>` | 否* | 从文件加载正文内容;与 `--template-content` 互斥 |
52
+ | `--plain-text` | 否 | 标记为纯文本模式(`is_plain_text_mode=true`)。仍可带内嵌图片,但 `+send --template-id` 套用时会走 plain-text 正文拼接 |
53
+ | `--to <emails>` | 否 | 默认收件人列表,逗号分隔,支持 `Name <email>` 格式 |
54
+ | `--cc <emails>` | 否 | 默认抄送 |
55
+ | `--bcc <emails>` | 否 | 默认密送 |
56
+ | `--attach <paths>` | 否 | 非 inline 附件路径,逗号分隔。每个文件按 `--attach` 书写顺序上传到 Drive |
57
+ | `--mailbox <email>` | 否 | 所属邮箱,默认 `me`(当前用户主邮箱) |
58
+ | `--dry-run` | 否 | 仅打印计划中的 API 调用链,不真实执行 |
59
+
60
+ \* `--template-content` / `--template-content-file` 二选一;两者都留空则模板正文为空(用户之后可通过 `+template-update` 补充)。
61
+
62
+ ## HTML 内嵌图片自动上传
63
+
64
+ 正文中所有不带 URI scheme 的 `<img src="./local.png">`(相对路径)会被:
65
+
66
+ 1. 上传到 Drive(≤20 MB 走 `medias/upload_all`;>20 MB 走 `upload_prepare + upload_part + upload_finish`)
67
+ 2. 生成 UUIDv4 CID
68
+ 3. HTML 改写为 `<img src="cid:<uuid>">`
69
+ 4. 在 `attachments[]` 追加 `{id: <file_key>, cid, is_inline: true, filename, attachment_type}`
70
+
71
+ 带 URI scheme 的 `<img src="https://...">` 或 `<img src="cid:...">` 跳过上传。
72
+
73
+ ## SMALL vs LARGE 附件
74
+
75
+ 附件分为 SMALL(`attachment_type=1`,内嵌到 EML)和 LARGE(`attachment_type=2`,由服务端渲染成下载链接)。切换阈值:
76
+
77
+ - **本地单文件大小**:≤20 MB 用 `upload_all`,>20 MB 分块上传(与 SMALL/LARGE 无关,只影响 Drive 上传路径)。
78
+ - **累计 EML 投影**:`subject + to + cc + bcc + template_content + base64 附件体积`;同批次累计超过 **25 MB** 后,剩余的非 inline 附件标 `LARGE`,inline 图片不能切换到 LARGE(HTML `cid:` 引用要求 MIME part 存在)。
79
+
80
+ 两套判定相互独立。
81
+
82
+ ## 顺序约束
83
+
84
+ - inline 图片按正文中 `<img>` 出现顺序处理
85
+ - 非 inline 按 `--attach` 书写顺序处理;重复路径不会去重
86
+
87
+ ## 返回值
88
+
89
+ 成功返回:
90
+
91
+ ```json
92
+ {
93
+ "template": {
94
+ "template_id": "712345",
95
+ "name": "周报模板",
96
+ "subject": "本周进展",
97
+ "template_content": "<p>...</p>",
98
+ "is_plain_text_mode": false,
99
+ "tos": [{"mail_address": "alice@example.com"}],
100
+ "attachments": [...],
101
+ "create_time": "1714000000000"
102
+ }
103
+ }
104
+ ```
105
+
106
+ - `template_id` 为十进制字符串。后续套用模板时 `--template-id <template_id>`。
107
+
108
+ ## 错误码速查
109
+
110
+ | errno | HTTP | 触发 |
111
+ |-------|------|------|
112
+ | `15080201 InvalidTemplateName` | 400 | `name` 为空或超 100 字符 |
113
+ | `15080202 TemplateNumberLimit` | 400 | 已达 20 模板上限 |
114
+ | `15080203 TemplateContentSizeLimit` | 400 | 单模板 > 3 MB |
115
+ | `15080206 TemplateTotalSizeLimit` | 400 | 所有模板总大小 > 50 MB |
116
+ | `15080207 InvalidTemplateParam` | 400 | 其他参数错误 |
117
+
118
+ ## 所需 scope
119
+
120
+ `mail:user_mailbox.message:modify`
121
+
122
+ ## 相关
123
+
124
+ - 更新模板:[`+template-update`](./lark-mail-template-update.md)
125
+ - 套用模板发信:在 `+send` / `+draft-create` / `+reply` / `+reply-all` / `+forward` 中使用 `--template-id`
126
+ - 原生 API:
127
+ - `lark-cli mail user_mailbox.templates list --params '{"user_mailbox_id":"me"}'` — 列出模板
128
+ - `lark-cli mail user_mailbox.templates get --params '{"user_mailbox_id":"me","template_id":"<id>"}'` — 获取完整模板
129
+ - `lark-cli mail user_mailbox.templates delete --params '{"user_mailbox_id":"me","template_id":"<id>"}'` — 删除
@@ -0,0 +1,150 @@
1
+ # mail +template-update
2
+
3
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+
5
+ 更新已有的个人邮件模板(全量替换式更新)。支持 `--inspect` 只读 projection、`--print-patch-template` 打印 patch 骨架、`--patch-file` 结构化 patch、以及扁平的 `--set-*` flag。
6
+
7
+ > **⚠️ 后端无乐观锁 → last-write-wins**。并发更新可能丢失最近的改动;CLI 在每次成功更新时会在 stderr 打印一条 warning 提示。
8
+
9
+ 如需创建新模板,使用 [`lark-cli mail +template-create`](./lark-mail-template-create.md)。
10
+
11
+ ## 工作模式
12
+
13
+ | 入口 | 行为 | 是否写库 |
14
+ |------|------|---------|
15
+ | `--print-patch-template` | 打印 `--patch-file` 的 JSON 骨架 | 否(纯本地) |
16
+ | `--inspect` | 返回当前模板完整 projection | 否(只 GET) |
17
+ | `--set-*` / `--attach` | 扁平 flag 合并后 PUT | 是 |
18
+ | `--patch-file` | 结构化 patch + 扁平 flag 合并后 PUT | 是 |
19
+
20
+ ## 命令
21
+
22
+ ```bash
23
+ # 查看当前状态(不修改)
24
+ lark-cli mail +template-update --as user --template-id 712345 --inspect
25
+
26
+ # 打印 patch 骨架并保存
27
+ lark-cli mail +template-update --as user --print-patch-template > /tmp/tpl-patch.json
28
+
29
+ # 用扁平 flag 改 subject + cc
30
+ lark-cli mail +template-update --as user --template-id 712345 \
31
+ --set-subject '每周五发布' \
32
+ --set-cc 'manager@example.com'
33
+
34
+ # 用 patch 文件做结构化更新(支持 is_plain_text_mode 翻回 false 等 tri-state 场景)
35
+ lark-cli mail +template-update --as user --template-id 712345 \
36
+ --patch-file /tmp/tpl-patch.json
37
+
38
+ # 追加新附件
39
+ lark-cli mail +template-update --as user --template-id 712345 \
40
+ --attach './appendix.pdf'
41
+ ```
42
+
43
+ ## 参数
44
+
45
+ ### 定位
46
+
47
+ | 参数 | 必填 | 说明 |
48
+ |------|------|------|
49
+ | `--template-id <id>` | 是* | 模板 ID,十进制整数字符串 |
50
+ | `--mailbox <email>` | 否 | 所属邮箱,默认 `me` |
51
+
52
+ \* `--print-patch-template` 场景下可省略。
53
+
54
+ ### 只读 / 输出
55
+
56
+ | 参数 | 说明 |
57
+ |------|------|
58
+ | `--inspect` | 只 GET,不修改;返回完整模板 projection |
59
+ | `--print-patch-template` | 打印 patch 骨架(不访问网络),保存后作为 `--patch-file` 的起点 |
60
+
61
+ ### 扁平 set-* flag(直接指定新值)
62
+
63
+ | 参数 | 说明 |
64
+ |------|------|
65
+ | `--set-name <text>` | 替换名称,≤100 字符 |
66
+ | `--set-subject <text>` | 替换默认主题 |
67
+ | `--set-template-content <html>` | 替换正文。支持 `<img src="./local.png" />` 相对路径自动上传并改写 |
68
+ | `--set-template-content-file <path>` | 从文件加载替换正文;与 `--set-template-content` 互斥 |
69
+ | `--set-plain-text` | 标为纯文本模式(置 true)。**不提供不会置 false**;要把 HTML 模板翻回 false,请用 `--patch-file` 的 `{"is_plain_text_mode": false}` |
70
+ | `--set-to <emails>` | 替换默认收件人列表 |
71
+ | `--set-cc <emails>` | 替换默认抄送 |
72
+ | `--set-bcc <emails>` | 替换默认密送 |
73
+ | `--attach <paths>` | 追加非 inline 附件(按书写顺序),不替换已有附件 |
74
+
75
+ ### 结构化 patch
76
+
77
+ | 参数 | 说明 |
78
+ |------|------|
79
+ | `--patch-file <path>` | JSON patch 文件。结构同 `--print-patch-template` 输出;任何 **非空字段**覆盖当前模板对应字段 |
80
+
81
+ patch-file 字段(全部可选,未提供的字段保持当前模板原值):
82
+
83
+ ```json
84
+ {
85
+ "name": "string (≤100 chars, optional)",
86
+ "subject": "string (optional)",
87
+ "template_content": "string (HTML 或纯文本;本地 <img src> 会自动上传)",
88
+ "is_plain_text_mode": "bool (optional) — 显式 true/false 都生效",
89
+ "tos": [{"mail_address": "...", "name": "..."}],
90
+ "ccs": [{"mail_address": "...", "name": "..."}],
91
+ "bccs": [{"mail_address": "...", "name": "..."}]
92
+ }
93
+ ```
94
+
95
+ ## 合并策略
96
+
97
+ 1. `GET` 当前模板完整内容
98
+ 2. 先应用扁平 `--set-*` flag(非空即覆盖)
99
+ 3. 再应用 `--patch-file`(非空字段覆盖)——patch-file 优先级高于扁平 flag
100
+ 4. 重新扫描新正文中的 `<img>` 本地路径,上传到 Drive 并改写为 `cid:`
101
+ 5. `--attach` 追加的新附件以新的 `emlProjectedSize` 独立计算 SMALL/LARGE
102
+ 6. 附件按 `(id, cid)` 去重后 `PUT` 整个模板
103
+
104
+ > **所有原有附件保留**:只追加 `--attach` 新附件;如需删除已有附件,目前只能通过 `--patch-file` 的 `template_content` 改写正文去除相应 `<img>` 引用,或使用原生 API 整块重写。
105
+
106
+ ## DryRun 行为
107
+
108
+ - 默认:打印 `GET /user_mailboxes/:id/templates/:tid` + Drive 上传步骤(如有 `<img>` 或 `--attach`)+ `PUT` 步骤。
109
+ - `--inspect`:只打印 `GET`。
110
+ - `--print-patch-template`:打印骨架,不走任何 API。
111
+
112
+ ## 返回值
113
+
114
+ 成功返回:
115
+
116
+ ```json
117
+ {
118
+ "template": {
119
+ "template_id": "712345",
120
+ "name": "周报模板",
121
+ "subject": "每周五发布",
122
+ "template_content": "...",
123
+ "is_plain_text_mode": false,
124
+ "tos": [...],
125
+ "attachments": [...],
126
+ "create_time": "1714000000000"
127
+ }
128
+ }
129
+ ```
130
+
131
+ `--inspect` 返回同样结构;`--print-patch-template` 返回 patch JSON 骨架。
132
+
133
+ ## 错误码速查
134
+
135
+ | errno | HTTP | 触发 |
136
+ |-------|------|------|
137
+ | `15080201 InvalidTemplateName` | 400 | `--set-name` 为空或超 100 字符 |
138
+ | `15080203 TemplateContentSizeLimit` | 400 | 更新后 `template_content` > 3 MB |
139
+ | `15080204 InvalidTemplateID` | 404 | `template_id` 不存在或不属于当前用户 |
140
+ | `15080207 InvalidTemplateParam` | 400 | 其他参数错误(含 `template_id` 无法 parseInt) |
141
+
142
+ ## 所需 scope
143
+
144
+ `mail:user_mailbox.message:modify`, `mail:user_mailbox:readonly`
145
+
146
+ ## 相关
147
+
148
+ - 创建模板:[`+template-create`](./lark-mail-template-create.md)
149
+ - 套用模板发信:在 `+send` / `+draft-create` / `+reply` / `+reply-all` / `+forward` 中使用 `--template-id`
150
+ - 删除模板(原生 API):`lark-cli mail user_mailbox.templates delete --params '{"user_mailbox_id":"me","template_id":"<id>"}'`
@@ -0,0 +1,54 @@
1
+ # mail templates
2
+
3
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+
5
+ 邮件模板指飞书 OAPI 的个人邮件模板系统(用户邮箱里的"我的模板"),可在飞书客户端管理。它不同于仓库 [`../assets/templates/`](../assets/templates/) 下的静态 HTML 模板库;静态 HTML 模板只是在写单封邮件时可复制参考的本地素材。
6
+
7
+ ## 何时使用
8
+
9
+ - 创建 / 更新长期复用的邮件框架:用 `+template-create` / `+template-update`。
10
+ - 使用已有模板发信:在 `+send` / `+draft-create` / `+reply` / `+reply-all` / `+forward` 中传 `--template-id <id>`。
11
+ - 列表 / 获取 / 删除个人模板:走原生 API `user_mailbox.templates {list|get|delete}`。
12
+
13
+ ## 管理模板
14
+
15
+ - [`+template-create`](lark-mail-template-create.md) — 创建新模板。`--name` 必填;正文通过 `--template-content` 或 `--template-content-file` 二选一;支持 HTML 内嵌图片自动上传到 Drive。
16
+ - [`+template-update`](lark-mail-template-update.md) — 全量替换式更新(**后端无乐观锁,last-write-wins**)。支持 `--inspect`(只读 projection)/ `--print-patch-template`(patch 骨架)/ `--patch-file`(结构化 patch)/ 扁平 `--set-*` flag。
17
+
18
+ ## 套用模板
19
+
20
+ `+send` / `+draft-create` / `+reply` / `+reply-all` / `+forward` 均支持 `--template-id <id>`。`--template-id` 必须是**十进制整数字符串**。
21
+
22
+ ### 创建模板后立即发信 checklist
23
+
24
+ 1. `+template-create --as user --name <name> --subject <subject> --template-content <html>`,捕获真实 `template_id`。
25
+ 2. 用户要求发送时不要停在模板或草稿:`+send --as user --to <email> --template-id <template_id> --confirm-send`;只有需要覆盖模板主题时再传 `--subject`。
26
+ 3. 返回 `message_id` 后调用 `user_mailbox.messages send_status` 汇报投递状态。
27
+
28
+ ## 合并规则
29
+
30
+ | # | 场景 | 合并策略 |
31
+ |---|------|----------|
32
+ | Q1 to/cc/bcc | 全部 5 个 shortcut | 用户 `--to/--cc/--bcc` 先覆盖草稿原有值,再与模板 tos/ccs/bccs **无去重追加** |
33
+ | Q2 subject | `+send` / `+draft-create` | 用户 `--subject` > 草稿 subject > 模板 subject |
34
+ | | `+reply` / `+reply-all` / `+forward` | 用户 `--subject` 覆盖自动 Re:/Fw:;否则保持 Re:/Fw: + 原邮件 subject。**模板 subject 被忽略**(保留会话线索) |
35
+ | Q3 body | `+send` / `+draft-create` | 空草稿 body → 用模板;非空 HTML → `draftBody + <br><br> + tplContent`;非空 plain-text → `\n\n` 拼接 |
36
+ | | `+reply` / `+reply-all` / `+forward` | 模板内容注入 `<blockquote>` 之前;无 blockquote 则追加;plain-text 模板走 emlbuilder plain-text 追加 |
37
+ | Q4 附件 | 全部 5 个 shortcut | 模板 inline(SMALL)由 CLI 走 `user_mailbox.template.attachments.download_url` 下载后以 MIME part 注入;SMALL 非 inline 同样注入;LARGE(`attachment_type=2`)不下载,只把 `file_key` 放到 `X-Lms-Large-Attachment-Ids` header 让服务端渲染下载卡片 |
38
+ | Q5 cid 冲突 | inline 图片 | cid 由 UUID v4 生成(碰撞概率 ~ 2^-122),不显式检测 |
39
+
40
+ **Warning**:`+reply` / `+reply-all` + 模板且模板自带 tos/ccs/bccs 时,CLI 在 stderr 打印:`warning: template to/cc/bcc are appended without de-duplication; you may see repeated recipients. Use --to/--cc/--bcc to override, or run +template-update to clear template addresses.`
41
+
42
+ ## Size 约束
43
+
44
+ - 单模板 `template_content` <= 3 MB。
45
+ - `body + inline + SMALL` 累计 <= 25 MB。
46
+ - 超过 25 MB 后,该批次剩余非 inline 附件切换为 LARGE;inline 不能切换。
47
+
48
+ ## 原生 API
49
+
50
+ ```bash
51
+ lark-cli mail user_mailbox.templates list --params '{"user_mailbox_id":"me"}'
52
+ lark-cli mail user_mailbox.templates get --params '{"user_mailbox_id":"me","template_id":"<id>"}'
53
+ lark-cli mail user_mailbox.templates delete --params '{"user_mailbox_id":"me","template_id":"<id>"}'
54
+ ```
@@ -0,0 +1,111 @@
1
+ # mail +thread
2
+
3
+ > **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4
+
5
+ 读取指定会话中的所有邮件,按发送时间升序排列。每条邮件结构与 `+message` 相同。
6
+
7
+ 在实现上,每个 `messages[]` 项与 `mail +message` 的构建方式一致:安全元数据字段直接透传,正文/附件辅助字段由 shortcut 派生。每条邮件使用统一的 `attachments[]` 列表,涵盖普通附件和内嵌图片。
8
+
9
+ 本 skill 对应 shortcut `lark-cli mail +thread`,内部调用:
10
+ - `GET /open-apis/mail/v1/user_mailboxes/{mailbox}/threads/{thread_id}` — 获取会话中所有邮件的完整内容
11
+
12
+ ## 命令
13
+
14
+ ```bash
15
+ # 读取完整会话
16
+ lark-cli mail +thread --thread-id <thread-id>
17
+
18
+ # 仅纯文本正文(更小的负载,适合 AI 处理)
19
+ lark-cli mail +thread --thread-id <thread-id> --html=false
20
+
21
+ # 指定邮箱
22
+ lark-cli mail +thread --mailbox user@example.com --thread-id <thread-id>
23
+
24
+ # JSON 输出
25
+ lark-cli mail +thread --thread-id <thread-id> --format json
26
+
27
+ # Dry Run
28
+ lark-cli mail +thread --thread-id <thread-id> --dry-run
29
+ ```
30
+
31
+ ## 参数
32
+
33
+ | 参数 | 必填 | 默认值 | 说明 |
34
+ |------|------|--------|------|
35
+ | `--thread-id <id>` | 是 | — | 会话 ID(`thread_id`) |
36
+ | `--mailbox <email>` | 否 | 当前用户 | 邮箱地址(`user_mailbox_id`) |
37
+ | `--html` | 否 | true | 是否返回 HTML 正文(`false` 仅返回纯文本,减少带宽) |
38
+ | `--format <mode>` | 否 | json | 输出格式:`json`(默认)/ `pretty` / `table` / `ndjson` / `csv` |
39
+ | `--dry-run` | 否 | — | 仅打印请求,不执行 |
40
+
41
+ ## 返回值
42
+
43
+ 成功时返回 `{"ok": true, "data": ...}` 结构,`data` 字段包含:
44
+
45
+ ```json
46
+ {
47
+ "thread_id": "会话 ID",
48
+ "message_count": 2,
49
+ "messages": [
50
+ { "...与 +message 输出结构相同(最早的在前)..." },
51
+ { "......" }
52
+ ]
53
+ }
54
+ ```
55
+
56
+ 顶层字段:
57
+
58
+ | 字段 | 说明 |
59
+ |------|------|
60
+ | `thread_id` | `--thread-id` 请求的会话 ID |
61
+ | `message_count` | 成功获取的邮件数量 |
62
+ | `messages` | 按 `internal_date` 升序排列的邮件列表(最早的在前) |
63
+
64
+ 每个 `messages[]` 项使用与 [`mail +message`](./lark-mail-message.md#返回值) 相同的结构。完整字段列表参见 [`+message` 字段说明](./lark-mail-message.md#字段说明) 和 [`+message` security_level](./lark-mail-message.md#security_level)。
65
+
66
+ > 注意:使用 `--format json` 获取结构化输出。所有 JSON 输出统一包裹在 `{"ok": true, "data": ...}` 结构中。
67
+
68
+ ## 注意事项
69
+
70
+ - **JSON 输出可直接使用**,可直接读取,无需额外编码转换。
71
+ - JSON 输出中 `messages[].body_html` 里的 `<` / `>` 可能显示为 `\u003c` / `\u003e`(JSON 安全转义,内容不变,`jq -r` 可还原)。
72
+ - `mail +thread` 不再在读取会话时获取附件/图片下载 URL。如后续步骤需要 URL,请针对特定的 `message_id` 和 `attachment_ids` 调用原生附件 URL API。
73
+ - 与 `+message` 一样,普通附件和内嵌图片都出现在 `messages[].attachments[]` 中,使用同一个 `user_mailbox.message.attachments download_url` API。
74
+ - 查看某条邮件的原始 HTML:
75
+
76
+ ```bash
77
+ lark-cli mail +thread --thread-id <thread_id> --format json | jq -r '.data.messages[0].body_html'
78
+ ```
79
+
80
+ ## 典型场景
81
+
82
+ ### 查看会话时间线 → 生成摘要
83
+
84
+ ```bash
85
+ # 1. 从某封邮件获取 thread_id
86
+ lark-cli mail +message --message-id <id> --html=false --format json | jq '.data.thread_id'
87
+
88
+ # 2. 读取完整会话(仅纯文本)
89
+ lark-cli mail +thread --thread-id <thread_id> --html=false --format json
90
+
91
+ # 3. 让 LLM 分析 messages[].body_plain_text 并生成会话摘要
92
+ ```
93
+
94
+ ### 回复会话中最新一封邮件
95
+
96
+ ```bash
97
+ # 获取最新一封邮件的 message_id
98
+ lark-cli mail +thread --thread-id <thread_id> --html=false --format json | \
99
+ jq '.data.messages[-1].message_id'
100
+
101
+ # 回复
102
+ lark-cli mail +reply --message-id <last_message_id> --body "..."
103
+ ```
104
+
105
+ ## 相关命令
106
+
107
+ - `lark-cli mail +message` — 读取单封邮件
108
+ - `lark-cli mail +reply` — 回复邮件
109
+ - `lark-cli mail +forward` — 转发邮件
110
+ - `lark-cli mail user_mailbox.message.attachments download_url` — 按需获取邮件附件/图片下载 URL
111
+ - `lark-cli mail user_mailbox.messages list` — 列出收件箱邮件(获取 `thread_id`)
@@ -0,0 +1,131 @@
1
+
2
+ # mail +triage
3
+
4
+ > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
+
6
+ 查看收件箱邮件摘要(date / from / subject / message_id),用于快速浏览和决定读哪封邮件。
7
+
8
+ ## 用法
9
+
10
+ ```bash
11
+ # 默认:收件箱邮件(默认 20 条,默认table 格式)
12
+ lark-cli mail +triage
13
+
14
+ # 查看收件箱未读
15
+ lark-cli mail +triage --filter '{"folder":"inbox","is_unread":true}'
16
+
17
+ # 全文搜索
18
+ lark-cli mail +triage --query "合同审批"
19
+
20
+ # 按发件人 / 主题搜索
21
+ lark-cli mail +triage --filter '{"from":["boss@example.com"],"subject":"季度报告"}'
22
+
23
+ # 按时间范围搜索(如"上周的邮件")
24
+ lark-cli mail +triage --query "项目评审" --filter '{"time_range":{"start_time":"2026-03-16T00:00:00+08:00","end_time":"2026-03-22T23:59:59+08:00"}}'
25
+
26
+ # 指定文件夹
27
+ lark-cli mail +triage --filter '{"folder":"sent"}'
28
+
29
+ # 系统标签(可通过 folder 或 label 传入,搜索时自动转为 folder)
30
+ lark-cli mail +triage --filter '{"folder":"flagged"}'
31
+ lark-cli mail +triage --filter '{"label":"important"}'
32
+ lark-cli mail +triage --filter '{"label":"重要邮件"}'
33
+
34
+ # json/data 格式可配合 jq 处理
35
+ lark-cli mail +triage --format json | jq '.messages[].subject'
36
+
37
+ # 分页:先取 10 条,再用 page_token 翻页
38
+ lark-cli mail +triage --max 10 --format json
39
+ # 输出中包含 page_token,传入下一次请求
40
+ lark-cli mail +triage --page-token 'list:FfccvoqPd...' --max 10 --format json
41
+
42
+ # --page-size 是 --max 的别名
43
+ lark-cli mail +triage --page-size 10
44
+ ```
45
+
46
+ ## 参数
47
+
48
+ | 参数 | 默认 | 说明 |
49
+ |------|------|------|
50
+ | `--filter <json>` | — | 筛选条件(见下方字段说明) |
51
+ | `--query <text>` | — | 全文搜索关键词 |
52
+ | `--format <mode>` | `table` | `table` / `json` / `data`(`json` 和 `data` 均输出含分页信息的对象) |
53
+ | `--max <n>` | `20` | 最大返回条数(1-400),内部自动分页拉取 |
54
+ | `--page-size <n>` | — | `--max` 的别名,两者含义相同;同时指定时 `--page-size` 优先 |
55
+ | `--page-token <token>` | — | 上一次响应返回的分页令牌,传入后从该位置继续拉取。令牌带 `search:` 或 `list:` 前缀,标识来源路径,不可混用 |
56
+ | `--labels` | — | table 格式时额外显示 labels 列 |
57
+ | `--mailbox <id>` | `me` | 邮箱地址 |
58
+
59
+ ### `--filter` 支持的字段
60
+
61
+ | 字段 | 类型 | 说明 |
62
+ |------|------|------|
63
+ | `folder` | string | 文件夹名称筛选。系统文件夹固定值:`inbox`/`sent`/`draft`/`trash`/`spam`/`archive`/`priority`/`flagged`/`other`/`scheduled`,也支持自定义文件夹名称。子文件夹需用 `parent_name/child_name` 格式,可通过 folder list 接口查看 |
64
+ | `folder_id` | string | 文件夹 ID,优先级高于 `folder`。系统值:`INBOX`/`SENT`/`DRAFT`/`TRASH`/`SPAM`/`ARCHIVED`,自定义文件夹为数字 ID |
65
+ | `label` | string | 自定义标签名称筛选。子标签需用 `parent_name/child_name` 格式,可通过 label list 接口查看 |
66
+ | `label_id` | string | 标签 ID,优先级高于 `label`。自定义标签为数字 ID |
67
+ | `is_unread` | boolean | 是否未读 |
68
+ | `from` | string[] | 发件人 |
69
+ | `to` | string[] | 收件人 |
70
+ | `subject` | string | 主题关键词 |
71
+ | `has_attachment` | boolean | 是否有附件 |
72
+ | `time_range` | object | 时间范围 `{"start_time":"2026-01-01T00:00:00+08:00","end_time":"..."}` |
73
+
74
+ > **系统标签说明**:`IMPORTANT`/`FLAGGED`/`OTHER` 可通过 `folder` 或 `label` 传入(也支持中文别名 `重要邮件`/`已加旗标`/`其他邮件`、搜索名 `priority`/`flagged`/`other`)。搜索时自动转为 folder 字段,列表时自动转为 label_id。label list 接口不返回这三个系统标签。
75
+ >
76
+ > **⚠️ 注意**:查询未读请用 `"is_unread":true`。
77
+ 可运行 `mail +triage --print-filter-schema` 查看完整字段说明。
78
+
79
+ ## 输出
80
+
81
+ ### `--format json` / `--format data`
82
+
83
+ 两者输出格式相同,均为含分页信息的对象:
84
+
85
+ ```json
86
+ {
87
+ "messages": [
88
+ {
89
+ "message_id": "SEU2...",
90
+ "mailbox_id": "me",
91
+ "date": "Fri, 21 Mar 2026 11:40:00 +0800",
92
+ "from": "Alice <alice@example.com>",
93
+ "subject": "Weekly update",
94
+ "labels": "INBOX,UNREAD"
95
+ }
96
+ ],
97
+ "mailbox_id": "me",
98
+ "count": 20,
99
+ "has_more": true,
100
+ "page_token": "list:FfccvoqPd_loLhtcRx8cx..."
101
+ }
102
+ ```
103
+
104
+ - `mailbox_id`:当前邮箱标识,用于传递给 `mail +message --mailbox` 以保持公共邮箱上下文
105
+ - `has_more`:是否还有下一页
106
+ - `page_token`:传入 `--page-token` 可获取下一页;为空字符串表示已到末尾
107
+ - token 前缀 `search:` / `list:` 标识来源 API 路径,不可混用
108
+
109
+ ### `table` 格式
110
+
111
+ `page_token` 信息输出在 stderr,自动携带 `--query`/`--filter`/`--mailbox` 参数方便续页:
112
+ ```text
113
+ 15 message(s)
114
+ next page: mail +triage --query '合同审批' --page-token 'search:abc123...'
115
+ tip: read full content: single message use mail +message --message-id <id>; multiple messages use mail +messages --message-ids <id1>,<id2>,<id3>
116
+ ```
117
+
118
+ 公共邮箱场景下,`--mailbox` 会自动出现在续页和 tip 中:
119
+ ```text
120
+ next page: mail +triage --mailbox 'shared@example.com' --query '合同审批' --page-token 'search:abc123...'
121
+ tip: read full content: single message use mail +message --mailbox 'shared@example.com' --message-id <id>; multiple messages use mail +messages --mailbox 'shared@example.com' --message-ids <id1>,<id2>,<id3>
122
+ ```
123
+
124
+ ### 搜索分页注意事项
125
+
126
+ 搜索路径(使用 `--query` 或 `from`/`to`/`subject` 等 filter)的分页结果在**同一翻页链内**保持一致(无重复、无丢失)。但不同 `--max` 值发起的独立搜索可能返回不同排序,这是搜索 API 的固有行为。列表路径(仅 `folder`/`label` 筛选)无此限制。
127
+
128
+ ## 参考
129
+
130
+ - [lark-mail](../SKILL.md) — 邮箱域总览
131
+ - [lark-mail-watch](lark-mail-watch.md) — 实时监听新邮件
@@ -0,0 +1,94 @@
1
+
2
+ # mail +watch
3
+
4
+ > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
+
6
+ 实时监听新邮件事件(`mail.user_mailbox.event.message_received_v1`)。
7
+
8
+ **权限要求:** 应用需要 `mail:event`、`mail:user_mailbox.message:readonly` 权限,以及字段权限 `mail:user_mailbox.message.address:read`、`mail:user_mailbox.message.subject:read`、`mail:user_mailbox.message.body:read`,且机器人需订阅事件 `mail.user_mailbox.event.message_received_v1`。按需权限(缺失时会提示申请):使用 `--folders` / `--folder-ids` 筛选自定义文件夹时需要 `mail:user_mailbox.folder:read`;使用 `--labels` / `--label-ids` 筛选自定义标签时需要 `mail:user_mailbox.message:modify`。
9
+
10
+ ## 命令
11
+
12
+ ```bash
13
+ # 默认:表格输出 message 元数据
14
+ lark-cli mail +watch
15
+
16
+ # 仅输出 message 数据(jq 友好)
17
+ lark-cli mail +watch --msg-format metadata --format data
18
+
19
+ # 输出精简元数据(message_id / thread_id / folder_id / label_ids / internal_date / message_state)
20
+ lark-cli mail +watch --msg-format minimal --format data
21
+
22
+ # 输出纯文本全文
23
+ lark-cli mail +watch --msg-format plain_text_full --format data
24
+
25
+ # 输出完整 message(含正文相关字段)
26
+ lark-cli mail +watch --msg-format full --format data
27
+
28
+ # 输出原始事件体
29
+ lark-cli mail +watch --msg-format event --format data
30
+
31
+ # 监听指定邮箱
32
+ lark-cli mail +watch --mailbox alice@company.com
33
+
34
+ # 按文件夹/标签过滤(客户端过滤,支持名称或 ID)
35
+ lark-cli mail +watch --folders '["收件箱项目"]' --label-ids '["FLAGGED"]'
36
+
37
+ # 写入文件
38
+ lark-cli mail +watch --msg-format metadata --output-dir ./mail-events
39
+
40
+ # 查看各 --msg-format 的输出字段说明(解析前先运行)
41
+ lark-cli mail +watch --print-output-schema
42
+ ```
43
+
44
+ ## 参数
45
+
46
+ | 参数 | 默认 | 说明 |
47
+ |------|------|------|
48
+ | `--mailbox <id>` | `me` | 订阅目标邮箱 |
49
+ | `--msg-format <mode>` | `metadata` | 输出模式:`metadata` / `minimal` / `plain_text_full` / `full` / `event` |
50
+ | `--format <mode>` | `table` | 输出样式:`table` / `json` / `data` |
51
+ | `--folder-ids <json-array>` | — | 文件夹 ID 过滤,如 `["INBOX","SENT"]` |
52
+ | `--folders <json-array>` | — | 文件夹名称过滤(与 `--folder-ids` 取并集) |
53
+ | `--label-ids <json-array>` | — | 标签 ID 过滤,如 `["FLAGGED","IMPORTANT"]` |
54
+ | `--labels <json-array>` | — | 标签名称过滤(与 `--label-ids` 取并集) |
55
+
56
+ > **过滤逻辑:** `--folder-ids`/`--folders` 与 `--label-ids`/`--labels` 之间是 **AND** 关系,即邮件必须**同时**匹配指定的文件夹和标签才会输出。同类参数内部是 **OR** 关系(匹配其中任一即可)。新收到的邮件通常只有系统标签(如 `UNREAD`、`IMPORTANT`),不会自动带有自定义标签。
57
+ | `--output-dir <dir>` | — | 每条事件写入单独 JSON 文件 |
58
+ | `--print-output-schema` | — | 打印各 `--msg-format` 的输出字段说明(解析输出前先运行此命令) |
59
+ | `--dry-run` | — | 仅预览订阅请求,不实际连接 |
60
+
61
+ ## --msg-format 输出结构(--format json)
62
+
63
+ 每条事件输出为一行 NDJSON。
64
+
65
+ **`metadata`**(默认,适合分拣/通知)
66
+ ```json
67
+ {"ok":true,"data":{"message":{"message_id":"...","thread_id":"...","subject":"...","head_from":{"name":"Alice","mail_address":"alice@example.com"},"to":[{"name":"Bob","mail_address":"bob@example.com"}],"folder_id":"INBOX","label_ids":["IMPORTANT"],"internal_date":"1742800000000","message_state":1,"body_preview":"Please find attached..."}}}
68
+ ```
69
+
70
+ **`minimal`**(仅 ID 和状态,适合追踪已读/文件夹变更)
71
+ ```json
72
+ {"ok":true,"data":{"message":{"message_id":"...","thread_id":"...","folder_id":"INBOX","label_ids":["IMPORTANT"],"internal_date":"1742800000000","message_state":1}}}
73
+ ```
74
+
75
+ **`plain_text_full`**(metadata 全部字段 + 完整纯文本正文)
76
+ ```json
77
+ {"ok":true,"data":{"message":{"message_id":"...","subject":"...","head_from":{...},"folder_id":"INBOX","label_ids":[...],"body_preview":"...","body_plain_text":"<base64url>"}}}
78
+ ```
79
+
80
+ **`event`**(原始 WebSocket 事件,不发起 API 请求,适合调试)
81
+ ```json
82
+ {"ok":true,"data":{"header":{"event_id":"abc123","event_type":"mail.user_mailbox.event.message_received_v1","create_time":"1742800000000"},"event":{"message_id":"...","mail_address":"user@example.com"}}}
83
+ ```
84
+
85
+ **`full`**(全部字段,含 HTML 正文和附件)
86
+ ```json
87
+ {"ok":true,"data":{"message":{"message_id":"...","subject":"...","head_from":{...},"body_preview":"...","body_plain_text":"<base64url>","body_html":"<base64url>","attachments":[{"name":"report.pdf","size":102400}]}}}
88
+ ```
89
+
90
+ ## 参考
91
+
92
+ - [lark-mail](../SKILL.md) — 邮箱域总览
93
+ - [lark-mail-triage](lark-mail-triage.md) — 邮件摘要列表
94
+ - [lark-event-subscribe](../../lark-event/references/lark-event-subscribe.md) — 通用事件订阅