pi-feishu-cli 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 (407) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +111 -0
  3. package/dist/src/bot.d.ts +29 -0
  4. package/dist/src/bot.js +75 -0
  5. package/dist/src/cards.d.ts +6 -0
  6. package/dist/src/cards.js +87 -0
  7. package/dist/src/config.d.ts +3 -0
  8. package/dist/src/config.js +28 -0
  9. package/dist/src/daemon.d.ts +2 -0
  10. package/dist/src/daemon.js +151 -0
  11. package/dist/src/extension.d.ts +2 -0
  12. package/dist/src/extension.js +124 -0
  13. package/dist/src/poller.d.ts +33 -0
  14. package/dist/src/poller.js +94 -0
  15. package/dist/src/renderer.d.ts +8 -0
  16. package/dist/src/renderer.js +31 -0
  17. package/dist/src/session-registry.d.ts +15 -0
  18. package/dist/src/session-registry.js +82 -0
  19. package/dist/src/types.d.ts +25 -0
  20. package/dist/src/types.js +1 -0
  21. package/dist/tests/bot.test.d.ts +1 -0
  22. package/dist/tests/bot.test.js +89 -0
  23. package/dist/tests/cards.test.d.ts +1 -0
  24. package/dist/tests/cards.test.js +39 -0
  25. package/dist/tests/config.test.d.ts +1 -0
  26. package/dist/tests/config.test.js +59 -0
  27. package/dist/tests/renderer.test.d.ts +1 -0
  28. package/dist/tests/renderer.test.js +61 -0
  29. package/dist/tests/session-registry.test.d.ts +1 -0
  30. package/dist/tests/session-registry.test.js +92 -0
  31. package/dist/tests/types.test.d.ts +1 -0
  32. package/dist/tests/types.test.js +30 -0
  33. package/package.json +35 -0
  34. package/skills/lark-approval/SKILL.md +56 -0
  35. package/skills/lark-apps/SKILL.md +92 -0
  36. package/skills/lark-apps/references/lark-apps-access-scope-get.md +104 -0
  37. package/skills/lark-apps/references/lark-apps-access-scope-set.md +126 -0
  38. package/skills/lark-apps/references/lark-apps-create.md +112 -0
  39. package/skills/lark-apps/references/lark-apps-html-publish.md +151 -0
  40. package/skills/lark-apps/references/lark-apps-list.md +95 -0
  41. package/skills/lark-apps/references/lark-apps-update.md +86 -0
  42. package/skills/lark-attendance/SKILL.md +57 -0
  43. package/skills/lark-base/SKILL.md +359 -0
  44. package/skills/lark-base/references/dashboard-block-data-config.md +350 -0
  45. package/skills/lark-base/references/examples.md +140 -0
  46. package/skills/lark-base/references/formula-field-guide.md +737 -0
  47. package/skills/lark-base/references/lark-base-advperm-disable.md +83 -0
  48. package/skills/lark-base/references/lark-base-advperm-enable.md +80 -0
  49. package/skills/lark-base/references/lark-base-base-copy.md +74 -0
  50. package/skills/lark-base/references/lark-base-base-create.md +68 -0
  51. package/skills/lark-base/references/lark-base-base-get.md +39 -0
  52. package/skills/lark-base/references/lark-base-cell-value.md +151 -0
  53. package/skills/lark-base/references/lark-base-dashboard-arrange.md +83 -0
  54. package/skills/lark-base/references/lark-base-dashboard-block-create.md +108 -0
  55. package/skills/lark-base/references/lark-base-dashboard-block-delete.md +46 -0
  56. package/skills/lark-base/references/lark-base-dashboard-block-get.md +57 -0
  57. package/skills/lark-base/references/lark-base-dashboard-block-list.md +53 -0
  58. package/skills/lark-base/references/lark-base-dashboard-block-update.md +84 -0
  59. package/skills/lark-base/references/lark-base-dashboard-create.md +73 -0
  60. package/skills/lark-base/references/lark-base-dashboard-delete.md +44 -0
  61. package/skills/lark-base/references/lark-base-dashboard-get.md +59 -0
  62. package/skills/lark-base/references/lark-base-dashboard-list.md +52 -0
  63. package/skills/lark-base/references/lark-base-dashboard-update.md +69 -0
  64. package/skills/lark-base/references/lark-base-dashboard.md +240 -0
  65. package/skills/lark-base/references/lark-base-data-analysis-sop.md +88 -0
  66. package/skills/lark-base/references/lark-base-data-query.md +375 -0
  67. package/skills/lark-base/references/lark-base-field-create.md +104 -0
  68. package/skills/lark-base/references/lark-base-field-delete.md +51 -0
  69. package/skills/lark-base/references/lark-base-field-get.md +42 -0
  70. package/skills/lark-base/references/lark-base-field-list.md +44 -0
  71. package/skills/lark-base/references/lark-base-field-search-options.md +48 -0
  72. package/skills/lark-base/references/lark-base-field-update.md +97 -0
  73. package/skills/lark-base/references/lark-base-field.md +22 -0
  74. package/skills/lark-base/references/lark-base-form-create.md +87 -0
  75. package/skills/lark-base/references/lark-base-form-delete.md +64 -0
  76. package/skills/lark-base/references/lark-base-form-detail.md +198 -0
  77. package/skills/lark-base/references/lark-base-form-get.md +68 -0
  78. package/skills/lark-base/references/lark-base-form-list.md +73 -0
  79. package/skills/lark-base/references/lark-base-form-questions-create.md +118 -0
  80. package/skills/lark-base/references/lark-base-form-questions-delete.md +68 -0
  81. package/skills/lark-base/references/lark-base-form-questions-list.md +84 -0
  82. package/skills/lark-base/references/lark-base-form-questions-update.md +92 -0
  83. package/skills/lark-base/references/lark-base-form-questions.md +23 -0
  84. package/skills/lark-base/references/lark-base-form-submit.md +171 -0
  85. package/skills/lark-base/references/lark-base-form-update.md +82 -0
  86. package/skills/lark-base/references/lark-base-form.md +25 -0
  87. package/skills/lark-base/references/lark-base-history.md +16 -0
  88. package/skills/lark-base/references/lark-base-record-batch-create.md +58 -0
  89. package/skills/lark-base/references/lark-base-record-batch-update.md +53 -0
  90. package/skills/lark-base/references/lark-base-record-delete.md +62 -0
  91. package/skills/lark-base/references/lark-base-record-history-list.md +86 -0
  92. package/skills/lark-base/references/lark-base-record-share-link-create.md +72 -0
  93. package/skills/lark-base/references/lark-base-record-upsert.md +64 -0
  94. package/skills/lark-base/references/lark-base-record.md +31 -0
  95. package/skills/lark-base/references/lark-base-role-create.md +89 -0
  96. package/skills/lark-base/references/lark-base-role-delete.md +83 -0
  97. package/skills/lark-base/references/lark-base-role-get.md +87 -0
  98. package/skills/lark-base/references/lark-base-role-list.md +81 -0
  99. package/skills/lark-base/references/lark-base-role-update.md +94 -0
  100. package/skills/lark-base/references/lark-base-shortcut-field-properties.md +481 -0
  101. package/skills/lark-base/references/lark-base-table-create.md +62 -0
  102. package/skills/lark-base/references/lark-base-table-delete.md +51 -0
  103. package/skills/lark-base/references/lark-base-table-get.md +46 -0
  104. package/skills/lark-base/references/lark-base-table-list.md +43 -0
  105. package/skills/lark-base/references/lark-base-table-update.md +49 -0
  106. package/skills/lark-base/references/lark-base-table.md +20 -0
  107. package/skills/lark-base/references/lark-base-view-create.md +50 -0
  108. package/skills/lark-base/references/lark-base-view-delete.md +48 -0
  109. package/skills/lark-base/references/lark-base-view-get-card.md +38 -0
  110. package/skills/lark-base/references/lark-base-view-get-filter.md +38 -0
  111. package/skills/lark-base/references/lark-base-view-get-group.md +38 -0
  112. package/skills/lark-base/references/lark-base-view-get-sort.md +38 -0
  113. package/skills/lark-base/references/lark-base-view-get-timebar.md +38 -0
  114. package/skills/lark-base/references/lark-base-view-get-visible-fields.md +28 -0
  115. package/skills/lark-base/references/lark-base-view-get.md +38 -0
  116. package/skills/lark-base/references/lark-base-view-list.md +44 -0
  117. package/skills/lark-base/references/lark-base-view-rename.md +44 -0
  118. package/skills/lark-base/references/lark-base-view-set-card.md +55 -0
  119. package/skills/lark-base/references/lark-base-view-set-filter.md +181 -0
  120. package/skills/lark-base/references/lark-base-view-set-group.md +65 -0
  121. package/skills/lark-base/references/lark-base-view-set-sort.md +63 -0
  122. package/skills/lark-base/references/lark-base-view-set-timebar.md +51 -0
  123. package/skills/lark-base/references/lark-base-view-set-visible-fields.md +46 -0
  124. package/skills/lark-base/references/lark-base-view.md +44 -0
  125. package/skills/lark-base/references/lark-base-workflow-create.md +180 -0
  126. package/skills/lark-base/references/lark-base-workflow-disable.md +94 -0
  127. package/skills/lark-base/references/lark-base-workflow-enable.md +94 -0
  128. package/skills/lark-base/references/lark-base-workflow-get.md +147 -0
  129. package/skills/lark-base/references/lark-base-workflow-guide.md +718 -0
  130. package/skills/lark-base/references/lark-base-workflow-list.md +124 -0
  131. package/skills/lark-base/references/lark-base-workflow-schema.md +935 -0
  132. package/skills/lark-base/references/lark-base-workflow-update.md +167 -0
  133. package/skills/lark-base/references/lark-base-workflow.md +23 -0
  134. package/skills/lark-base/references/lark-base-workspace.md +18 -0
  135. package/skills/lark-base/references/lookup-field-guide.md +512 -0
  136. package/skills/lark-base/references/role-config.md +539 -0
  137. package/skills/lark-calendar/SKILL.md +154 -0
  138. package/skills/lark-calendar/references/lark-calendar-agenda.md +78 -0
  139. package/skills/lark-calendar/references/lark-calendar-create.md +109 -0
  140. package/skills/lark-calendar/references/lark-calendar-freebusy.md +124 -0
  141. package/skills/lark-calendar/references/lark-calendar-room-find.md +113 -0
  142. package/skills/lark-calendar/references/lark-calendar-rsvp.md +42 -0
  143. package/skills/lark-calendar/references/lark-calendar-schedule-meeting.md +265 -0
  144. package/skills/lark-calendar/references/lark-calendar-suggestion.md +125 -0
  145. package/skills/lark-calendar/references/lark-calendar-update.md +105 -0
  146. package/skills/lark-contact/SKILL.md +45 -0
  147. package/skills/lark-contact/references/lark-contact-get-user.md +19 -0
  148. package/skills/lark-contact/references/lark-contact-search-user.md +124 -0
  149. package/skills/lark-doc/SKILL.md +65 -0
  150. package/skills/lark-doc/references/lark-doc-create.md +89 -0
  151. package/skills/lark-doc/references/lark-doc-fetch.md +141 -0
  152. package/skills/lark-doc/references/lark-doc-md.md +71 -0
  153. package/skills/lark-doc/references/lark-doc-media-download.md +50 -0
  154. package/skills/lark-doc/references/lark-doc-media-insert.md +114 -0
  155. package/skills/lark-doc/references/lark-doc-media-preview.md +41 -0
  156. package/skills/lark-doc/references/lark-doc-update.md +252 -0
  157. package/skills/lark-doc/references/lark-doc-whiteboard.md +100 -0
  158. package/skills/lark-doc/references/lark-doc-xml.md +169 -0
  159. package/skills/lark-doc/references/style/lark-doc-create-workflow.md +56 -0
  160. package/skills/lark-doc/references/style/lark-doc-style.md +106 -0
  161. package/skills/lark-doc/references/style/lark-doc-update-workflow.md +54 -0
  162. package/skills/lark-drive/SKILL.md +369 -0
  163. package/skills/lark-drive/references/lark-drive-add-comment.md +182 -0
  164. package/skills/lark-drive/references/lark-drive-apply-permission.md +77 -0
  165. package/skills/lark-drive/references/lark-drive-create-folder.md +73 -0
  166. package/skills/lark-drive/references/lark-drive-create-shortcut.md +103 -0
  167. package/skills/lark-drive/references/lark-drive-delete.md +79 -0
  168. package/skills/lark-drive/references/lark-drive-download.md +31 -0
  169. package/skills/lark-drive/references/lark-drive-export-download.md +50 -0
  170. package/skills/lark-drive/references/lark-drive-export.md +119 -0
  171. package/skills/lark-drive/references/lark-drive-import.md +159 -0
  172. package/skills/lark-drive/references/lark-drive-inspect.md +50 -0
  173. package/skills/lark-drive/references/lark-drive-move.md +120 -0
  174. package/skills/lark-drive/references/lark-drive-pull.md +137 -0
  175. package/skills/lark-drive/references/lark-drive-push.md +162 -0
  176. package/skills/lark-drive/references/lark-drive-reactions.md +113 -0
  177. package/skills/lark-drive/references/lark-drive-search.md +266 -0
  178. package/skills/lark-drive/references/lark-drive-status.md +198 -0
  179. package/skills/lark-drive/references/lark-drive-task-result.md +302 -0
  180. package/skills/lark-drive/references/lark-drive-upload.md +67 -0
  181. package/skills/lark-drive/references/lark-drive-version-delete.md +38 -0
  182. package/skills/lark-drive/references/lark-drive-version-get.md +71 -0
  183. package/skills/lark-drive/references/lark-drive-version-history.md +73 -0
  184. package/skills/lark-drive/references/lark-drive-version-revert.md +198 -0
  185. package/skills/lark-event/SKILL.md +145 -0
  186. package/skills/lark-event/references/lark-event-im.md +86 -0
  187. package/skills/lark-im/SKILL.md +162 -0
  188. package/skills/lark-im/references/lark-im-chat-create.md +162 -0
  189. package/skills/lark-im/references/lark-im-chat-identity.md +55 -0
  190. package/skills/lark-im/references/lark-im-chat-list.md +198 -0
  191. package/skills/lark-im/references/lark-im-chat-messages-list.md +148 -0
  192. package/skills/lark-im/references/lark-im-chat-search.md +136 -0
  193. package/skills/lark-im/references/lark-im-chat-update.md +84 -0
  194. package/skills/lark-im/references/lark-im-flag-cancel.md +198 -0
  195. package/skills/lark-im/references/lark-im-flag-create.md +67 -0
  196. package/skills/lark-im/references/lark-im-flag-list.md +100 -0
  197. package/skills/lark-im/references/lark-im-messages-mget.md +95 -0
  198. package/skills/lark-im/references/lark-im-messages-reply.md +228 -0
  199. package/skills/lark-im/references/lark-im-messages-resources-download.md +94 -0
  200. package/skills/lark-im/references/lark-im-messages-search.md +232 -0
  201. package/skills/lark-im/references/lark-im-messages-send.md +229 -0
  202. package/skills/lark-im/references/lark-im-reactions.md +297 -0
  203. package/skills/lark-im/references/lark-im-threads-messages-list.md +111 -0
  204. package/skills/lark-mail/SKILL.md +648 -0
  205. package/skills/lark-mail/references/lark-mail-decline-receipt.md +115 -0
  206. package/skills/lark-mail/references/lark-mail-draft-create.md +123 -0
  207. package/skills/lark-mail/references/lark-mail-draft-edit.md +400 -0
  208. package/skills/lark-mail/references/lark-mail-forward.md +173 -0
  209. package/skills/lark-mail/references/lark-mail-message.md +230 -0
  210. package/skills/lark-mail/references/lark-mail-messages.md +108 -0
  211. package/skills/lark-mail/references/lark-mail-reply-all.md +206 -0
  212. package/skills/lark-mail/references/lark-mail-reply.md +242 -0
  213. package/skills/lark-mail/references/lark-mail-send-receipt.md +198 -0
  214. package/skills/lark-mail/references/lark-mail-send.md +216 -0
  215. package/skills/lark-mail/references/lark-mail-share-to-chat.md +198 -0
  216. package/skills/lark-mail/references/lark-mail-signature.md +98 -0
  217. package/skills/lark-mail/references/lark-mail-template-create.md +129 -0
  218. package/skills/lark-mail/references/lark-mail-template-update.md +198 -0
  219. package/skills/lark-mail/references/lark-mail-thread.md +111 -0
  220. package/skills/lark-mail/references/lark-mail-triage.md +122 -0
  221. package/skills/lark-mail/references/lark-mail-watch.md +94 -0
  222. package/skills/lark-minutes/SKILL.md +139 -0
  223. package/skills/lark-minutes/references/lark-minutes-download.md +137 -0
  224. package/skills/lark-minutes/references/lark-minutes-search.md +206 -0
  225. package/skills/lark-minutes/references/lark-minutes-upload.md +104 -0
  226. package/skills/lark-okr/SKILL.md +133 -0
  227. package/skills/lark-okr/references/lark-okr-contentblock.md +359 -0
  228. package/skills/lark-okr/references/lark-okr-cycle-detail.md +84 -0
  229. package/skills/lark-okr/references/lark-okr-cycle-list.md +90 -0
  230. package/skills/lark-okr/references/lark-okr-entities.md +329 -0
  231. package/skills/lark-okr/references/lark-okr-image-upload.md +116 -0
  232. package/skills/lark-okr/references/lark-okr-progress-create.md +81 -0
  233. package/skills/lark-okr/references/lark-okr-progress-delete.md +47 -0
  234. package/skills/lark-okr/references/lark-okr-progress-get.md +62 -0
  235. package/skills/lark-okr/references/lark-okr-progress-list.md +80 -0
  236. package/skills/lark-okr/references/lark-okr-progress-update.md +81 -0
  237. package/skills/lark-openapi-explorer/SKILL.md +153 -0
  238. package/skills/lark-shared/SKILL.md +144 -0
  239. package/skills/lark-sheets/SKILL.md +343 -0
  240. package/skills/lark-sheets/references/lark-sheets-cell-data.md +197 -0
  241. package/skills/lark-sheets/references/lark-sheets-cell-images.md +59 -0
  242. package/skills/lark-sheets/references/lark-sheets-cell-style-and-merge.md +141 -0
  243. package/skills/lark-sheets/references/lark-sheets-dropdown.md +133 -0
  244. package/skills/lark-sheets/references/lark-sheets-filter-views.md +193 -0
  245. package/skills/lark-sheets/references/lark-sheets-float-images.md +125 -0
  246. package/skills/lark-sheets/references/lark-sheets-formula.md +88 -0
  247. package/skills/lark-sheets/references/lark-sheets-row-column-management.md +151 -0
  248. package/skills/lark-sheets/references/lark-sheets-sheet-management.md +164 -0
  249. package/skills/lark-sheets/references/lark-sheets-spreadsheet-management.md +140 -0
  250. package/skills/lark-skill-maker/SKILL.md +85 -0
  251. package/skills/lark-slides/SKILL.md +296 -0
  252. package/skills/lark-slides/assets/templates/administration--all_hands_meeting.xml +1999 -0
  253. package/skills/lark-slides/assets/templates/administration--annual_gala.xml +1160 -0
  254. package/skills/lark-slides/assets/templates/administration--company_intro.xml +1376 -0
  255. package/skills/lark-slides/assets/templates/administration--corporate_culture.xml +1765 -0
  256. package/skills/lark-slides/assets/templates/hr--employee_training.xml +912 -0
  257. package/skills/lark-slides/assets/templates/hr--employee_training_workshop.xml +1504 -0
  258. package/skills/lark-slides/assets/templates/hr--onboarding.xml +933 -0
  259. package/skills/lark-slides/assets/templates/marketing--brand_communication.xml +1367 -0
  260. package/skills/lark-slides/assets/templates/marketing--brand_logo_design.xml +1347 -0
  261. package/skills/lark-slides/assets/templates/marketing--brand_operations_plan.xml +1309 -0
  262. package/skills/lark-slides/assets/templates/marketing--business_plan.xml +1646 -0
  263. package/skills/lark-slides/assets/templates/marketing--marketing_plan.xml +198 -0
  264. package/skills/lark-slides/assets/templates/marketing--marketing_strategy.xml +1484 -0
  265. package/skills/lark-slides/assets/templates/marketing--product_whitepaper.xml +198 -0
  266. package/skills/lark-slides/assets/templates/marketing--roadshow_business_plan.xml +1506 -0
  267. package/skills/lark-slides/assets/templates/misc--book_sharing.xml +198 -0
  268. package/skills/lark-slides/assets/templates/misc--club_event_plan.xml +4885 -0
  269. package/skills/lark-slides/assets/templates/misc--student_career_plan.xml +1854 -0
  270. package/skills/lark-slides/assets/templates/office--dark_general.xml +3763 -0
  271. package/skills/lark-slides/assets/templates/office--dept_annual_report.xml +1192 -0
  272. package/skills/lark-slides/assets/templates/office--light_general.xml +3378 -0
  273. package/skills/lark-slides/assets/templates/office--project_kickoff.xml +3152 -0
  274. package/skills/lark-slides/assets/templates/office--quarterly_review.xml +1253 -0
  275. package/skills/lark-slides/assets/templates/office--work_report.xml +1099 -0
  276. package/skills/lark-slides/assets/templates/office--work_summary.xml +4420 -0
  277. package/skills/lark-slides/assets/templates/office--work_summary_report.xml +1523 -0
  278. package/skills/lark-slides/assets/templates/operations--brand_logo_design.xml +1347 -0
  279. package/skills/lark-slides/assets/templates/operations--brand_operations_plan.xml +1309 -0
  280. package/skills/lark-slides/assets/templates/operations--marketing_plan.xml +1469 -0
  281. package/skills/lark-slides/assets/templates/operations--product_promotion.xml +687 -0
  282. package/skills/lark-slides/assets/templates/personal--experience_sharing.xml +2242 -0
  283. package/skills/lark-slides/assets/templates/personal--personal_resume.xml +2047 -0
  284. package/skills/lark-slides/assets/templates/personal--promotion_defense.xml +1099 -0
  285. package/skills/lark-slides/assets/templates/personal--promotion_report.xml +1039 -0
  286. package/skills/lark-slides/assets/templates/personal--self_intro.xml +696 -0
  287. package/skills/lark-slides/assets/templates/personal--teaching_sharing.xml +3013 -0
  288. package/skills/lark-slides/assets/templates/product--business_case_analysis.xml +1341 -0
  289. package/skills/lark-slides/assets/templates/product--market_analysis.xml +898 -0
  290. package/skills/lark-slides/assets/templates/product--product_analysis.xml +1537 -0
  291. package/skills/lark-slides/assets/templates/product--product_intro.xml +2838 -0
  292. package/skills/lark-slides/assets/templates/product--product_promotion.xml +687 -0
  293. package/skills/lark-slides/assets/templates/product--product_promotion_2.xml +198 -0
  294. package/skills/lark-slides/references/asset-planning.md +124 -0
  295. package/skills/lark-slides/references/examples.md +261 -0
  296. package/skills/lark-slides/references/lark-slides-create.md +137 -0
  297. package/skills/lark-slides/references/lark-slides-edit-workflows.md +142 -0
  298. package/skills/lark-slides/references/lark-slides-media-upload.md +128 -0
  299. package/skills/lark-slides/references/lark-slides-replace-slide.md +239 -0
  300. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-create.md +220 -0
  301. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +123 -0
  302. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +110 -0
  303. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +186 -0
  304. package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +98 -0
  305. package/skills/lark-slides/references/planning-layer.md +219 -0
  306. package/skills/lark-slides/references/slide-templates.md +201 -0
  307. package/skills/lark-slides/references/slides_demo.xml +226 -0
  308. package/skills/lark-slides/references/slides_xml_schema_definition.xml +3004 -0
  309. package/skills/lark-slides/references/template-catalog.md +463 -0
  310. package/skills/lark-slides/references/template-index.json +198 -0
  311. package/skills/lark-slides/references/troubleshooting.md +198 -0
  312. package/skills/lark-slides/references/validation-checklist.md +102 -0
  313. package/skills/lark-slides/references/visual-planning.md +250 -0
  314. package/skills/lark-slides/references/xml-format-guide.md +369 -0
  315. package/skills/lark-slides/references/xml-schema-quick-ref.md +215 -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 +165 -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 +55 -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-subscribe-event.md +86 -0
  333. package/skills/lark-task/references/lark-task-tasklist-create.md +35 -0
  334. package/skills/lark-task/references/lark-task-tasklist-members.md +36 -0
  335. package/skills/lark-task/references/lark-task-tasklist-search.md +38 -0
  336. package/skills/lark-task/references/lark-task-tasklist-task-add.md +38 -0
  337. package/skills/lark-task/references/lark-task-update.md +37 -0
  338. package/skills/lark-task/references/lark-task-upload-attachment.md +59 -0
  339. package/skills/lark-vc/SKILL.md +168 -0
  340. package/skills/lark-vc/references/lark-vc-notes.md +126 -0
  341. package/skills/lark-vc/references/lark-vc-recording.md +153 -0
  342. package/skills/lark-vc/references/lark-vc-search.md +193 -0
  343. package/skills/lark-vc-agent/SKILL.md +121 -0
  344. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-events.md +247 -0
  345. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-join.md +133 -0
  346. package/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +111 -0
  347. package/skills/lark-whiteboard/SKILL.md +144 -0
  348. package/skills/lark-whiteboard/references/connectors.md +102 -0
  349. package/skills/lark-whiteboard/references/content.md +40 -0
  350. package/skills/lark-whiteboard/references/image.md +80 -0
  351. package/skills/lark-whiteboard/references/lark-whiteboard-query.md +49 -0
  352. package/skills/lark-whiteboard/references/lark-whiteboard-update.md +100 -0
  353. package/skills/lark-whiteboard/references/layout.md +374 -0
  354. package/skills/lark-whiteboard/references/schema.md +357 -0
  355. package/skills/lark-whiteboard/references/style.md +318 -0
  356. package/skills/lark-whiteboard/references/typography.md +73 -0
  357. package/skills/lark-whiteboard/routes/dsl.md +107 -0
  358. package/skills/lark-whiteboard/routes/mermaid.md +27 -0
  359. package/skills/lark-whiteboard/routes/svg.md +54 -0
  360. package/skills/lark-whiteboard/scenes/architecture.md +433 -0
  361. package/skills/lark-whiteboard/scenes/bar-chart.md +187 -0
  362. package/skills/lark-whiteboard/scenes/comparison.md +135 -0
  363. package/skills/lark-whiteboard/scenes/fishbone.md +238 -0
  364. package/skills/lark-whiteboard/scenes/flowchart.md +198 -0
  365. package/skills/lark-whiteboard/scenes/flywheel.md +195 -0
  366. package/skills/lark-whiteboard/scenes/funnel.md +198 -0
  367. package/skills/lark-whiteboard/scenes/line-chart.md +214 -0
  368. package/skills/lark-whiteboard/scenes/mermaid.md +130 -0
  369. package/skills/lark-whiteboard/scenes/milestone.md +139 -0
  370. package/skills/lark-whiteboard/scenes/organization.md +173 -0
  371. package/skills/lark-whiteboard/scenes/photo-showcase.md +198 -0
  372. package/skills/lark-whiteboard/scenes/pyramid.md +99 -0
  373. package/skills/lark-whiteboard/scenes/swimlane.md +371 -0
  374. package/skills/lark-whiteboard/scenes/treemap.md +198 -0
  375. package/skills/lark-wiki/SKILL.md +119 -0
  376. package/skills/lark-wiki/references/lark-wiki-delete-space.md +205 -0
  377. package/skills/lark-wiki/references/lark-wiki-member-add.md +66 -0
  378. package/skills/lark-wiki/references/lark-wiki-member-list.md +76 -0
  379. package/skills/lark-wiki/references/lark-wiki-member-remove.md +61 -0
  380. package/skills/lark-wiki/references/lark-wiki-move.md +183 -0
  381. package/skills/lark-wiki/references/lark-wiki-node-copy.md +72 -0
  382. package/skills/lark-wiki/references/lark-wiki-node-create.md +127 -0
  383. package/skills/lark-wiki/references/lark-wiki-node-delete.md +62 -0
  384. package/skills/lark-wiki/references/lark-wiki-node-get.md +56 -0
  385. package/skills/lark-wiki/references/lark-wiki-node-list.md +198 -0
  386. package/skills/lark-wiki/references/lark-wiki-space-create.md +46 -0
  387. package/skills/lark-wiki/references/lark-wiki-space-list.md +198 -0
  388. package/skills/lark-workflow-meeting-summary/SKILL.md +104 -0
  389. package/skills/lark-workflow-standup-report/SKILL.md +120 -0
  390. package/skills/mmx-cli/SKILL.md +440 -0
  391. package/src/bot.ts +109 -0
  392. package/src/cards.ts +105 -0
  393. package/src/config.ts +33 -0
  394. package/src/daemon.ts +217 -0
  395. package/src/extension.ts +132 -0
  396. package/src/poller.ts +135 -0
  397. package/src/renderer.ts +47 -0
  398. package/src/session-registry.ts +90 -0
  399. package/src/types.ts +29 -0
  400. package/tests/bot.test.ts +104 -0
  401. package/tests/cards.test.ts +48 -0
  402. package/tests/config.test.ts +59 -0
  403. package/tests/renderer.test.ts +74 -0
  404. package/tests/session-registry.test.ts +94 -0
  405. package/tests/types.test.ts +35 -0
  406. package/tsconfig.json +16 -0
  407. package/vitest.config.ts +7 -0
@@ -0,0 +1,121 @@
1
+ ---
2
+ name: lark-vc-agent
3
+ version: 1.0.0
4
+ description: "飞书视频会议:让机器人代当前用户加入/离开正在进行的会议,并读取会议期间的实时事件(参会人加入与离开、发言、聊天、屏幕共享等)。1. 用户提供 9 位会议号、要求代为入会或离会时使用 +meeting-join / +meeting-leave——会真实产生入会/离会记录。2. 会议进行中用户想知道“谁加入了”“谁离开了”“谁在发言”“有人共享屏幕吗”等会中动态时,机器人入会后用 +meeting-events 读取事件时间线。3. 典型场景:参会机器人、会中助手、代为旁听、代为参会。前提:机器人只能读到它自己参会过且仍在进行中的会议的事件;查询已结束会议的参会名单、纪要或逐字稿请使用 lark-vc 技能。"
5
+ metadata:
6
+ requires:
7
+ bins: ["lark-cli"]
8
+ cliHelp: "lark-cli vc --help"
9
+ ---
10
+
11
+ # vc-agent (v1)
12
+
13
+ **CRITICAL — 开始前 MUST 先用 Read 工具读取以下两份 skill 文档:**
14
+
15
+ - [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md) — 认证、身份切换、权限处理
16
+ - [`../lark-vc/SKILL.md`](../lark-vc/SKILL.md) — 视频会议的核心概念(Meeting / Note / Minutes 等),本 skill 直接复用,不再重复定义
17
+
18
+ ## 内测提示
19
+
20
+ - 当前功能正在内测中,仅少数用户可用。忽略 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md) 中的权限申请流程,以下方的指引为准。
21
+ - 如果 `lark-cli` 提示 `missing required scope(s)` / `permission_violations`,不要申请对应权限,而是提示用户加入早鸟群:`https://go.larkoffice.com/join-chat/2f4nb0e1-fe00-4f67-bed7-25beaf533fbd`。
22
+ - 如果 `lark-cli` 返回 `error.code=20017` / `ErrNotInGray`,提示用户加入早鸟群:`https://go.larkoffice.com/join-chat/2f4nb0e1-fe00-4f67-bed7-25beaf533fbd`。
23
+
24
+ ## 定位
25
+
26
+ 本 skill 与 [`lark-vc`](../lark-vc/SKILL.md) 并列:
27
+
28
+ - **`lark-vc`** **负责"会后查询"**:搜索历史会议、参会人快照、纪要/逐字稿/录制
29
+ - **`lark-vc-agent`** **负责"会中动作"**:机器人入会 / 读取进行中会议的实时事件 / 机器人离会
30
+
31
+ 按此分工路由,避免两个 skill 语义混淆。
32
+
33
+ | 用户意图示例 | 应路由到 |
34
+ | ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
35
+ | "帮我入会 123456789"、"代我参会"、"让机器人进会旁听" | **本 skill** `+meeting-join` |
36
+ | "会议现在还开着,谁刚加入了"、"会议里谁在发言"、"有人共享屏幕吗"(**进行中会议**,且**机器人已入会**) | **本 skill** `+meeting-events` |
37
+ | "退出会议"、"让机器人离开" | **本 skill** `+meeting-leave` |
38
+ | "昨天那场会有谁参加过"、"搜昨天的会"、"查纪要/逐字稿/录制" | [`lark-vc`](../lark-vc/SKILL.md) |
39
+ | "帮我参会,结束后把纪要发到群" 等跨阶段场景 | 按序编排:本 skill(入会 → 读事件 → 离会)→ [`lark-vc`](../lark-vc/SKILL.md) / [`lark-minutes`](../lark-minutes/SKILL.md)(拉纪要)→ [`lark-im`](../lark-im/SKILL.md)(发群) |
40
+
41
+ ## 核心场景
42
+
43
+ ### 1. 加入正在进行的会议(写操作)
44
+
45
+ 1. 只有用户明确表达"让 Agent **真实入会**"(参会机器人、会中助手、代为旁听、代参会)时才用 `+meeting-join`。只是查数据不要入会。
46
+ 2. `+meeting-join --meeting-number` 只接受 **9 位纯数字**会议号,不是会议链接整串、也不是 `meeting_id`。
47
+ 3. 返回体中的 `meeting.id` **必须立刻记录**——后续 `+meeting-events` / `+meeting-leave` 都靠它,**不能用 9 位会议号替代**。
48
+ 4. 入会对所有参会人可见,执行前核实 9 位会议号来源,避免误入错会。
49
+ 5. 仅支持 `user` 身份,需提前 `lark-cli auth login`。
50
+ 6. 若入会失败,优先查看 `+meeting-join` reference 的错误排查段落,重点确认会议号、密码、会议状态、等候室 / 审批以及会议是否禁止当前身份加入。
51
+
52
+ ### 2. 感知会中事件(读操作)
53
+
54
+ 1. 用户要看"会议里正在发生什么"(参会人加入/离开、聊天、转写、屏幕共享)时,用 `+meeting-events`。
55
+ 2. 输入是 **`meeting_id`**(长数字 ID),不是 9 位会议号。
56
+ 3. Bot 必须**真实参会过**(先 `+meeting-join`),否则事件流通常不可见。具体的状态边界、结束后宽限窗口与错误码(如 `10005 / 20001 / 20002`)请查看 `+meeting-events` reference。
57
+ 4. **不能做会后复盘**,**不能替代参会人快照查询**。如果会议已结束:
58
+ - 想拿纪要文档或逐字稿文档 token:用 `lark-cli vc +notes --meeting-ids <meeting.id>`
59
+ - 想拿 AI 产物(summary / todos / chapters)或导出逐字稿文件:先用 `lark-cli vc +recording --meeting-ids <meeting.id>` 拿 `minute_token`,再用 `lark-cli vc +notes --minute-tokens <minute_token>`
60
+ - 想看参会人快照:用 `vc meeting get --with-participants`(见 [`lark-vc`](../lark-vc/SKILL.md))
61
+ 5. **默认必须使用** **`--page-all`**,除非用户明确要求“只查一页”,或确实需要控制返回体大小。
62
+ 6. 输出格式默认优先 `--format pretty`(时间线更易读);只有在需要完整保留原始消息流与结构化字段时,才使用 `--format json`。
63
+ 7. **必须识别分页信号**:只要响应里出现 `has_more=true`、pretty 里的 `more available`,或返回了非空 `page_token`,就不能把当前结果当作完整事件流;默认应继续分页,或明确告诉用户当前只是部分结果。
64
+ 8. 保留响应里的 `page_token`,下次增量拉取直接续,不要从头再拉。
65
+ 9. **只要你是基于** **`+meeting-events`** **来回答一场正在进行中的会议内容,就不能直接复用旧结果。** 无论用户是在问“现在/刚刚/最新”的状态,还是让你“总结一下这个会议讲什么”,都必须先重新拉一次当前事件流,确认拿到的是最新信息,再基于最新结果回答。只有在用户明确要求基于某次历史快照继续分析时,才可以复用旧结果。
66
+
67
+ ### 3. 离开会议(写操作)
68
+
69
+ 1. 任务完成、或用户要求结束时,用 `+meeting-leave --meeting-id <从 +meeting-join 拿到的 meeting.id>`。
70
+ 2. `--meeting-id` **必须**是 `+meeting-join` 返回的长数字 `meeting.id`,**不接受 9 位会议号**。
71
+ 3. 离会**立即生效**,机器人从会议的参会人列表中消失,对其他参会人可见;若需要重新入会,再跑一次 `+meeting-join` 即可(非真正"不可逆")。
72
+ 4. 仅支持 `user` 身份。
73
+
74
+ ### 4. Agent 参会最小闭环示范
75
+
76
+ ```bash
77
+ # 1. 入会,捕获 meeting.id
78
+ JOIN=$(lark-cli vc +meeting-join --meeting-number 123456789 --format json)
79
+ MID=$(echo "$JOIN" | jq -r '.data.meeting.id')
80
+
81
+ # 2. 会中轮询事件
82
+ # 默认用 --page-all 拉全当前可见事件;下次增量优先复用 page_token
83
+ # 典型间隔 10-30 秒
84
+ lark-cli vc +meeting-events --meeting-id "$MID" --page-all --format pretty
85
+
86
+ # 3. 任务完成或用户要求结束时离会
87
+ lark-cli vc +meeting-leave --meeting-id "$MID"
88
+
89
+ # 4. 会后可选:取纪要 / 逐字稿(跨到 lark-vc)
90
+ lark-cli vc +notes --meeting-ids "$MID"
91
+ ```
92
+
93
+ ## Shortcuts
94
+
95
+ Shortcut 是对常用操作的高级封装(`lark-cli vc +<verb> [flags]`)。
96
+
97
+ | Shortcut | 类型 | 说明 |
98
+ | --------------------------------------------------------------- | -- | -------------------------------------------------------------------------- |
99
+ | [`+meeting-join`](references/lark-vc-agent-meeting-join.md) | 写 | Join an in-progress meeting by 9-digit meeting number |
100
+ | [`+meeting-events`](references/lark-vc-agent-meeting-events.md) | 读 | List bot meeting events (participant joined/left, transcript, chat, share) |
101
+ | [`+meeting-leave`](references/lark-vc-agent-meeting-leave.md) | 写 | Leave a meeting by meeting\_id |
102
+
103
+ - 使用 `+meeting-join` 前**必须**阅读 [references/lark-vc-agent-meeting-join.md](references/lark-vc-agent-meeting-join.md),了解入参格式与写操作可见性风险。
104
+ - 使用 `+meeting-events` 前**必须**阅读 [references/lark-vc-agent-meeting-events.md](references/lark-vc-agent-meeting-events.md),了解 `meeting_id` 来源、分页、错误码(10005 / 20001 / 20002)与 "bot 仍在会中" 硬约束。
105
+ - 使用 `+meeting-leave` 前**必须**阅读 [references/lark-vc-agent-meeting-leave.md](references/lark-vc-agent-meeting-leave.md),了解 `meeting_id` 的来源与写操作可见性。
106
+
107
+ ## 权限表
108
+
109
+ | Shortcut | 所需 scope |
110
+ | ----------------- | ------------------------------ |
111
+ | `+meeting-join` | `vc:meeting.bot.join:write` |
112
+ | `+meeting-events` | `vc:meeting.meetingevent:read` |
113
+ | `+meeting-leave` | `vc:meeting.bot.join:write` |
114
+
115
+ ## 延伸
116
+
117
+ - 查已结束会议、参会人快照、搜索历史会议 → [`lark-vc`](../lark-vc/SKILL.md)
118
+ - 会议纪要、逐字稿 → [`lark-vc`](../lark-vc/SKILL.md) 的 `+notes`
119
+ - 妙记产物(AI 总结 / 转写 / 章节)→ [`lark-minutes`](../lark-minutes/SKILL.md)
120
+ - 会后把产物发到群 / 私聊 → [`lark-im`](../lark-im/SKILL.md)
121
+ - 认证、身份切换、scope 管理 → [`lark-shared`](../lark-shared/SKILL.md)
@@ -0,0 +1,247 @@
1
+
2
+ # vc +meeting-events
3
+
4
+ > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
+
6
+ 查询当前 bot 在一场正在进行的视频会议中收到的会中事件列表。该命令是**读操作**。对进行中会议,要求 bot 当前仍在会中;对已结束会议,存在一个**结束后 5 分钟内的宽限窗口**,只要 bot 曾经在这场会里出现过,仍可继续拉取事件。
7
+
8
+ 本 skill 对应 shortcut:`lark-cli vc +meeting-events`(调用 `GET /open-apis/vc/v1/bots/events`)。
9
+
10
+ ## 命令
11
+
12
+ ```bash
13
+ # 默认用法:全量拉取当前可见事件
14
+ lark-cli vc +meeting-events --meeting-id 69xxxxxxxxxxxxx28 --page-all --format pretty
15
+
16
+ # 指定时间范围,并拉全该时间窗内当前可见事件
17
+ lark-cli vc +meeting-events --meeting-id 69xxxxxxxxxxxxx28 --start 2026-04-17T15:00:00+08:00 --end 2026-04-17T16:00:00+08:00 --page-all --format pretty
18
+
19
+ # 基于上一次保存的 page_token 继续查新增事件
20
+ lark-cli vc +meeting-events --meeting-id 69xxxxxxxxxxxxx28 --page-token <last_page_token> --page-all --format pretty
21
+
22
+ # 调试或控制返回体大小时,显式只查一页
23
+ lark-cli vc +meeting-events --meeting-id 69xxxxxxxxxxxxx28 --page-size 20 --format json
24
+
25
+ # 预览 API 调用(不实际请求)
26
+ lark-cli vc +meeting-events --meeting-id 69xxxxxxxxxxxxx28 --dry-run
27
+ ```
28
+
29
+ ## 参数
30
+
31
+ | 参数 | 必填 | 说明 |
32
+ |------|------|------|
33
+ | `--meeting-id <id>` | 是 | 会议 ID(长数字 ID,不是 9 位会议号) |
34
+ | `--start <time>` | 否 | 起始时间,支持 ISO 8601 / `YYYY-MM-DD` / Unix 秒 |
35
+ | `--end <time>` | 否 | 结束时间,支持 ISO 8601 / `YYYY-MM-DD` / Unix 秒 |
36
+ | `--page-token <token>` | 否 | 从指定分页游标继续拉取下一页 |
37
+ | `--page-size <n>` | 否 | 单页模式每页大小。CLI 会自动夹紧到 `20-100`;传 `--page-all` 时固定使用 `100` |
38
+ | `--page-all` | 否 | 自动分页,直到没有更多页面为止(内部有安全上限) |
39
+ | `--format <fmt>` | 否 | 输出格式:json (CLI 默认) / pretty(本 skill 推荐默认) / table / ndjson / csv |
40
+ | `--dry-run` | 否 | 预览 API 调用,不执行 |
41
+
42
+ ## 核心约束
43
+
44
+ ### 1. 输入必须是 meeting_id,不是 9 位会议号
45
+
46
+ `--meeting-id` 必须是会议的长数字 ID。它通常来自:
47
+ - `+meeting-join` 返回体中的 `meeting.id`
48
+ - `+search` 结果中的 `id`
49
+
50
+ **不要**把 9 位会议号(`--meeting-number`)传给这个命令。
51
+
52
+ ### 2. 仅支持 user 身份
53
+
54
+ 该命令仅支持 `user` 身份。
55
+
56
+ ### 3. bot 必须在会中,或在会议结束后的 5 分钟宽限窗口内曾经在会中
57
+
58
+ 这是查询“bot 在会中观察到的事件”的接口。若 bot 已离会、未入会、或会议已经无法再判断 bot 身份,后端通常会报:
59
+ - `bot is not in meeting, no permission`
60
+
61
+ 因此,最稳妥的调用顺序通常是:
62
+
63
+ ```bash
64
+ # 先入会
65
+ lark-cli vc +meeting-join --meeting-number 123456789
66
+
67
+ # 记录返回的 meeting.id
68
+
69
+ # 再查询事件
70
+ lark-cli vc +meeting-events --meeting-id <meeting.id>
71
+ ```
72
+
73
+ 更精确地说,后端当前的判断规则是:
74
+
75
+ - **会议进行中**:要求 bot **当前仍在会中**
76
+ - **会议已结束后的 5 分钟内**:只要 bot **曾经在这场会中出现过**,仍可拉取事件
77
+ - **会议结束超过 5 分钟**:按会议结束处理,通常不再返回事件流
78
+ - **bot 从未真实入会过**:即使会议仍在进行或刚结束,也会返回 `10005 bot is not in meeting`
79
+
80
+ ### 4. 自动分页规则
81
+
82
+ - **先分清两层默认值**:
83
+ - shortcut 本身:不传 `--page-all` 时,只查 1 页。
84
+ - 本 skill 的默认策略:除非用户明确要求只看一页,或你确实需要控制返回体大小,否则默认**必须主动带 `--page-all`**,把当前可见事件尽量一次拉全。
85
+ - 传 `--page-all`:开启自动分页,直到没有更多页面为止。
86
+ - `--page-all` 时,CLI 固定使用最大 `page_size=100`。
87
+
88
+ 执行准则:
89
+
90
+ - **默认命令模板**:`lark-cli vc +meeting-events --meeting-id <meeting.id> --page-all --format pretty`
91
+ - 如果你发现自己执行成了不带 `--page-all` 的单页查询,而响应里又出现 `has_more=true` / `more available` / 非空 `page_token`,应立刻意识到这只是部分结果。
92
+ - 遇到上述情况,默认补救方式是继续使用返回的 `page_token` 续拉,例如:`lark-cli vc +meeting-events --meeting-id <meeting.id> --page-token <returned_page_token> --page-all --format pretty`
93
+ - 只有在用户明确要求“就看第一页”“先不要翻页”时,才不要默认带 `--page-all`
94
+ - 只要你是基于 `+meeting-events` 来回答一场**正在进行中的会议内容**,就不能直接复用上一次查询结果。无论用户是在问“现在是谁在说话”“刚刚发生了什么”“最新事件有哪些”,还是让你“总结一下这个会议讲什么”,都必须先重新执行一次 `+meeting-events`,确认拿到的是最新事件流,再回答用户。只有在用户明确要求基于某次历史快照继续分析时,才可以复用旧结果。
95
+
96
+ ### 5. pretty / json 输出差异
97
+
98
+ - `--format pretty`:输出会议主题、会议时间和逐条时间线,适合快速理解“发生了什么”,也是本 skill 的默认推荐格式。
99
+ - `--format json`:保留完整原始 `events[]` 结构——参会人 open_id、聊天原文、share_doc、分页字段都在原始响应里,适合提取字段、联动其他命令或做进一步程序处理。
100
+
101
+ **选型原则**:只要目标是告诉用户“发生了什么”,默认就用 `--page-all --format pretty`;只有在需要完整原始消息流和结构化字段时,才改用 `json`。
102
+
103
+ > **注意**:pretty 输出中的正文文本会做单行转义,真实换行会显示为 `\n`,避免打乱时间线布局。
104
+
105
+ ### 6. 内容理解模式:共享文档不能只看标题
106
+
107
+ 当用户意图是:
108
+
109
+ - “总结这个会议”
110
+ - “这个会议讲了什么”
111
+ - “有哪些结论 / 待办 / 关键讨论”
112
+ - “共享文档里在讲什么”
113
+
114
+ 不要只基于事件时间线直接回答。此时 `+meeting-events` 只是**线索发现器**,不是最终信息源。
115
+
116
+ 执行准则:
117
+
118
+ - 这类问题默认先用 `lark-cli vc +meeting-events --meeting-id <meeting.id> --page-all --format json` 拉取最新事件流。
119
+ - 如果事件中出现共享文档线索,例如:
120
+ - `magic_share_started`
121
+ - `share_doc.title`
122
+ - `share_doc.url`
123
+ - 必须继续读取共享文档内容,再生成总结,不能只根据“开始共享了某文档”这条事件和文档标题来概括会议内容。
124
+ - 若存在多个共享文档,优先读取**最近一次共享**的文档。
125
+ - 若文档读取失败,必须明确说明“以下总结仅基于会中事件流,未成功读取共享文档内容”。
126
+
127
+ ### 7. 关于 `page_token` 的返回与续拉
128
+
129
+ - 不管这次是只查 1 页,还是通过 `--page-all` 已经把当前可见事件都拿完,都应把最后拿到的 `page_token` 一并保留下来并返回给用户。
130
+ - 只要响应里出现 `has_more=true`、pretty 里出现 `more available`,或返回了非空 `page_token`,就必须先判断当前结果是否完整;默认情况下,这意味着你还需要继续分页。
131
+ - 如果没有使用 `--page-all`,但出现了上述分页信号,默认应继续用返回的 `page_token` 拉下一页,而不是直接结束。只有在用户明确不要继续翻页时,才可以停止并明确说明当前结果不完整。
132
+ - 下次继续“查新增事件”时,应优先复用上一次保存的 `page_token`,而不是从头全量再拉一次。
133
+ - 只有在用户明确要求“从头回放全部事件”时,才忽略历史 `page_token`,重新从第一页开始。
134
+ - 但如果用户要你回答的是**当前这场会正在讲什么**,而不是“上一次之后新增了什么”,也要先做一次新的事件查询,再决定是否需要基于旧 `page_token` 继续补拉。
135
+
136
+ ## 返回结构
137
+
138
+ 常见顶层字段:
139
+
140
+ | 字段 | 说明 |
141
+ |------|------|
142
+ | `events` | 事件列表 |
143
+ | `has_more` | 是否还有下一页 |
144
+ | `page_token` | 下一页游标 |
145
+
146
+ 事件 `event_type` 常见类型:
147
+
148
+ | event_type | 含义 |
149
+ |-----------|------|
150
+ | `participant_joined` | 有参会人加入会议 |
151
+ | `participant_left` | 有参会人离开会议 |
152
+ | `chat_received` | 收到会中聊天消息 |
153
+ | `transcript_received` | 收到转写文本 |
154
+ | `magic_share_started` | 开始共享内容 / 文档 |
155
+ | `magic_share_ended` | 结束共享 |
156
+
157
+ ## pretty 输出示例
158
+
159
+ ```text
160
+ 会议主题:张三的视频会议
161
+ 会议时间:2026-04-17 15:28:52(进行中)
162
+
163
+ [00:00:33] 明日之虾BOE(ou_xxx) 加入了会议
164
+ [00:00:41] 张三(ou_xxx): [text] 6666
165
+ [00:00:44] 张三(ou_xxx) 开始共享《智能纪要:飞书20251022-140223 2026年3月9日》
166
+ URL: https://...
167
+ [00:01:32] 张三(ou_xxx): [reaction] JIAYI
168
+ ```
169
+
170
+ ## 如何获取输入参数
171
+
172
+ | 输入参数 | 获取方式 |
173
+ |---------|---------|
174
+ | `meeting-id` | `+meeting-join` 返回的 `meeting.id`;或 `+search` 结果中的 `id` |
175
+ | `start` / `end` | 用户给出的时间范围;如未给出则默认取全量可见事件 |
176
+ | `page-token` | 上一页或上一次查询结果中保存的 `page_token`;建议持久化保存,便于下次继续拉取新增事件 |
177
+
178
+ ## Agent 组合场景
179
+
180
+ ### 场景 1:入会后查看会中发生了什么
181
+
182
+ ```bash
183
+ # 第 1 步:加入会议,记录返回的 meeting.id
184
+ lark-cli vc +meeting-join --meeting-number 123456789
185
+
186
+ # 第 2 步:查询事件流
187
+ lark-cli vc +meeting-events --meeting-id <meeting.id> --page-all --format pretty
188
+ ```
189
+
190
+ ### 场景 2:过滤某段时间内的事件
191
+
192
+ ```bash
193
+ lark-cli vc +meeting-events \
194
+ --meeting-id <meeting.id> \
195
+ --start 2026-04-17T15:00:00+08:00 \
196
+ --end 2026-04-17T16:00:00+08:00 \
197
+ --page-all \
198
+ --format pretty
199
+ ```
200
+
201
+ ### 场景 3:基于上一次的 `page_token` 继续查新增事件
202
+
203
+ ```bash
204
+ # 上一次查询结束后,保留最后返回的 page_token
205
+ # 这次直接从该游标继续拉新增事件
206
+ lark-cli vc +meeting-events \
207
+ --meeting-id <meeting.id> \
208
+ --page-token <last_page_token> \
209
+ --page-all \
210
+ --format pretty
211
+ ```
212
+
213
+ 适用规则:
214
+
215
+ - 当用户说“继续看新事件”“看上次之后新增了什么”时,优先使用上一次保存的 `page_token`。
216
+ - 如果这次返回里仍有 `has_more=true`、pretty 里出现 `more available`,或又返回了新的 `page_token`,说明新增事件还没拉完,应继续分页,而不是把当前页误当成完整增量结果。
217
+ - 只有在用户明确要求“从头回放全部事件”时,才忽略已有 `page_token`,重新从第一页开始。
218
+
219
+ ## 常见错误与排查
220
+
221
+ | 错误现象 | 根本原因 | 解决方案 |
222
+ |---------|---------|---------|
223
+ | `--meeting-id is required` | 未传入 `--meeting-id` | 传入长数字 `meeting.id` |
224
+ | `10005 bot is not in meeting` | bot 从未真实入会该会议;或会议已结束但 bot 从未在会中出现过 | 先 `+meeting-join --meeting-number <9位号>` 真实入会再查;如果会议已经结束且当时 bot 没进过会,本接口也拉不到数据。**如果只是想看参会人快照,改用 `lark-cli vc meeting get --params '{"meeting_id":"<meeting.id>"}' --with-participants`**(不依赖 bot 身份参会) |
225
+ | `20001 meeting_status_MEETING_END` | 会议已结束且已超出后端允许的 5 分钟宽限窗口 | 本接口不再适合继续拉取事件。若要拿纪要文档或逐字稿 token,用 `lark-cli vc +notes --meeting-ids <meeting.id>`;若要拿 AI 产物(summary / todos / chapters)或导出逐字稿文件,先用 `lark-cli vc +recording --meeting-ids <meeting.id>` 拿 `minute_token`,再用 `lark-cli vc +notes --minute-tokens <minute_token>`;参会人请用 `lark-cli vc meeting get --params '{"meeting_id":"<meeting.id>"}' --with-participants` |
226
+ | `20002 meeting not exist` | `meeting_id` 错误,或会议实例当前已不可获取(常见于把 9 位会议号当 meeting_id 传) | 确认传入的是长数字 `meeting_id`,不是 9 位会议号 |
227
+ | `HTTP 404` / `HTTP 500` | 服务端当前无法找到或处理该会议实例 | 换一个正在进行且 bot 可见的 meeting_id,或排查后端问题 |
228
+
229
+ ## 提示
230
+
231
+ - 这是**会中事件流**查询,不适合拿来搜历史会议记录;搜历史会议请用 `+search`。
232
+ - 如果会议已经结束,不要卡在 `+meeting-events`:
233
+ - 想拿纪要文档或逐字稿 token:用 `lark-cli vc +notes --meeting-ids <meeting.id>`
234
+ - 想拿 AI 产物(summary / todos / chapters)或导出逐字稿文件:先用 `lark-cli vc +recording --meeting-ids <meeting.id>` 拿 `minute_token`,再用 `lark-cli vc +notes --minute-tokens <minute_token>`
235
+ - 事件列表是否完整,取决于 bot 何时入会、何时离会,以及后端当前可见的会中事件范围。对于已结束会议,通常只在**结束后 5 分钟内**、且 bot **曾经在会中**时还能继续拉到事件。
236
+ - 查询"谁参加过某会议"请用 `vc meeting get --params '{"meeting_id":"<id>","with_participants":true}'`——这是参会人**快照** API,不依赖 bot 是否参会,对已结束会议也可查;**不要** 用 `+meeting-events` 做参会人查询。
237
+
238
+ ## 参考
239
+
240
+ - [lark-vc-agent-meeting-join](lark-vc-agent-meeting-join.md) — 先真实入会
241
+ - [lark-vc-agent-meeting-leave](lark-vc-agent-meeting-leave.md) — 完成任务后离会
242
+ - [lark-vc-search](../../lark-vc/references/lark-vc-search.md) — 搜索历史会议(获取 meeting_id)
243
+ - [lark-vc-recording](../../lark-vc/references/lark-vc-recording.md) — 查询 minute_token
244
+ - [lark-vc-notes](../../lark-vc/references/lark-vc-notes.md) — 获取会议纪要
245
+ - [lark-vc-agent](../SKILL.md) — Agent 参会能力(本 skill)
246
+ - [lark-vc](../../lark-vc/SKILL.md) — 视频会议原子域(Meeting / Note 等核心概念)
247
+ - [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数
@@ -0,0 +1,133 @@
1
+
2
+ # vc +meeting-join
3
+
4
+ > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
+
6
+ 通过 9 位会议号加入一场正在进行的视频会议(bot join)。这是一次**写操作**,会实际让当前身份加入会议。
7
+
8
+ 本 skill 对应 shortcut:`lark-cli vc +meeting-join`(调用 `POST /open-apis/vc/v1/bots/join`)。
9
+
10
+ ## 命令
11
+
12
+ ```bash
13
+ # 仅指定会议号(无密码)
14
+ lark-cli vc +meeting-join --meeting-number 123456789
15
+
16
+ # 指定会议号 + 密码
17
+ lark-cli vc +meeting-join --meeting-number 123456789 --password 8888
18
+
19
+ # 输出格式
20
+ lark-cli vc +meeting-join --meeting-number 123456789 --format json
21
+
22
+ # 预览 API 调用(不实际加入会议)
23
+ lark-cli vc +meeting-join --meeting-number 123456789 --dry-run
24
+ ```
25
+
26
+ ## 参数
27
+
28
+ | 参数 | 必填 | 说明 |
29
+ |------|------|------|
30
+ | `--meeting-number <no>` | 是 | 会议号,必须为 **9 位纯数字** |
31
+ | `--password <pw>` | 否 | 会议密码,仅在该会议设置了入会密码时传入 |
32
+ | `--format <fmt>` | 否 | 输出格式:json (默认) / pretty / table / ndjson / csv |
33
+ | `--dry-run` | 否 | 预览 API 调用,不执行 |
34
+
35
+ ## 核心约束
36
+
37
+ ### 1. 仅支持 user 身份
38
+
39
+ 该命令仅支持 `user` 身份。
40
+
41
+ ### 2. 会议号格式严格校验
42
+
43
+ `--meeting-number` 必须是 9 位纯数字,否则本地校验直接报错:
44
+ `--meeting-number must be exactly 9 digits`。
45
+
46
+ 常见错误来源:
47
+ - 把会议链接整条粘进来(应仅取尾部的 9 位数字)
48
+ - 把 `meeting_id`(长数字 ID)当成会议号传入(两者不是同一个东西)
49
+
50
+ ### 3. 会议必须已开始且允许入会
51
+
52
+ - 会议必须处于**进行中**状态,bot 无法加入尚未开始或已结束的会议。
53
+ - 若会议设置了**等候室 / 入会审批**,bot 可能需要主持人放行后才真正入会。
54
+ - 若返回 `HTTP 403: no permission`(错误码 `121003`),不要只理解成“账号没权限”。这类报错更常见的原因是:会议参数或会控配置当前不满足入会条件,例如会议号填错、密码未传或错误、会议尚未开始、等候室 / 入会审批未放行、会议禁止外部/特定身份加入等。应先确认这些配置项,再重试。
55
+
56
+ ### 4. 机器人入会后对其他参会人可见
57
+
58
+ 这是一次真实入会操作,机器人会立即出现在参会人列表中,其他参会人可见,并产生会议日志。误入错会的社交成本高于技术成本——执行前优先确认 9 位会议号的来源(用户输入 / 会议链接末尾),不要臆造。参数格式有疑问时可用 `--dry-run` 预览请求体。
59
+
60
+ ## 输出结果
61
+
62
+ 接口返回会议基本信息,字段视具体响应而定,常见字段:
63
+
64
+ | 字段 | 说明 |
65
+ |------|------|
66
+ | `meeting.id` | 会议 ID(可后续传给 `+meeting-leave --meeting-id`) |
67
+ | `meeting.meeting_no` | 会议号(与入参一致) |
68
+ | `meeting.topic` | 会议主题 |
69
+ | `meeting.start_time` | 会议开始时间 |
70
+
71
+ > **重要**:拿到 `meeting.id` 后务必保留,退出会议(`+meeting-leave`)需要使用它,而不是会议号。
72
+
73
+ ## 如何获取输入参数
74
+
75
+ | 输入参数 | 获取方式 |
76
+ |---------|---------|
77
+ | `meeting-number` | 会议号由主持人分享;也可从会议链接尾部解析 9 位数字 |
78
+ | `password` | 若会议设置了入会密码,由主持人提供 |
79
+
80
+ ## Agent 组合场景
81
+
82
+ ### 场景 1:加入会议 → 离开会议(最小闭环)
83
+
84
+ ```bash
85
+ # 第 1 步:加入会议,记录返回的 meeting.id
86
+ lark-cli vc +meeting-join --meeting-number 123456789
87
+
88
+ # 第 2 步:完成任务后,使用上一步返回的 meeting.id 离开会议
89
+ lark-cli vc +meeting-leave --meeting-id <meeting.id>
90
+ ```
91
+
92
+ ### 场景 2:加入会议 → 会后拉取纪要 / 录制
93
+
94
+ ```bash
95
+ # 第 1 步:加入并参会
96
+ lark-cli vc +meeting-join --meeting-number 123456789
97
+
98
+ # 第 2 步:离会
99
+ lark-cli vc +meeting-leave --meeting-id <meeting.id>
100
+
101
+ # 第 3 步:会议结束后,查询录制(拿到 minute_token)
102
+ lark-cli vc +recording --meeting-ids <meeting.id>
103
+
104
+ # 第 4 步:查询会议纪要(总结 / 待办 / 章节 / 逐字稿)
105
+ lark-cli vc +notes --meeting-ids <meeting.id>
106
+ ```
107
+
108
+ ## 常见错误与排查
109
+
110
+ | 错误现象 | 根本原因 | 解决方案 |
111
+ |---------|---------|---------|
112
+ | `--meeting-number must be exactly 9 digits` | 会议号不是 9 位纯数字 | 检查是否误传了会议链接或 meeting_id |
113
+ | 会议密码错误 | `--password` 错误或未提供 | 向主持人确认会议密码 |
114
+ | 会议不存在 / 已结束 | 会议号错误或会议未进行中 | 确认会议正在进行中 |
115
+ | `HTTP 403: no permission` / `121003` | 入会前置条件不满足,通常不是单纯 scope 问题 | 依次确认:1)会议允许智能体加入;2)会议号正确;3)如有密码,已正确传入 `--password`;4)会议已开始;5)等候室 / 入会审批已放行;6)会议未禁止当前身份加入(如限制外部、限制 bot、仅特定成员可入会);确认后重试 |
116
+ | 入会被拒绝 | 等候室 / 入会审批 / 限制外部入会 | 联系主持人放行或调整会议设置 |
117
+
118
+ ## 提示
119
+
120
+ - 仅在 Agent 需要**真实加入**会议(例如参会机器人、会中助手)时使用;只拉取会议数据不需要入会。
121
+ - 入会会让机器人立即出现在参会列表;若要回退,直接 `+meeting-leave` 即可。参数格式不确定时可选 `--dry-run` 预览,但不是必经步骤。
122
+ - 执行成功后,立即记录返回的 `meeting.id`,用于后续 `+meeting-leave` / `+meeting-events`。
123
+
124
+ ## 参考
125
+
126
+ - [lark-vc-agent-meeting-leave](lark-vc-agent-meeting-leave.md) — 对应的离会命令
127
+ - [lark-vc-agent-meeting-events](lark-vc-agent-meeting-events.md) — 会中事件流
128
+ - [lark-vc-search](../../lark-vc/references/lark-vc-search.md) — 搜索历史会议记录
129
+ - [lark-vc-recording](../../lark-vc/references/lark-vc-recording.md) — 查询 minute_token
130
+ - [lark-vc-notes](../../lark-vc/references/lark-vc-notes.md) — 获取会议纪要
131
+ - [lark-vc-agent](../SKILL.md) — Agent 参会能力(本 skill)
132
+ - [lark-vc](../../lark-vc/SKILL.md) — 视频会议原子域(Meeting / Note 等核心概念)
133
+ - [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数
@@ -0,0 +1,111 @@
1
+
2
+ # vc +meeting-leave
3
+
4
+ > **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
5
+
6
+ 通过 `meeting_id` 离开当前身份所在的视频会议(bot leave)。这是一次**写操作**,会实际把当前身份从会议中移出。
7
+
8
+ 本 skill 对应 shortcut:`lark-cli vc +meeting-leave`(调用 `POST /open-apis/vc/v1/bots/leave`)。
9
+
10
+ ## 命令
11
+
12
+ ```bash
13
+ # 通过 meeting_id 离会
14
+ lark-cli vc +meeting-leave --meeting-id 69xxxxxxxxxxxxx28
15
+
16
+ # 输出格式
17
+ lark-cli vc +meeting-leave --meeting-id 69xxxxxxxxxxxxx28 --format json
18
+
19
+ # 预览 API 调用(不实际离会)
20
+ lark-cli vc +meeting-leave --meeting-id 69xxxxxxxxxxxxx28 --dry-run
21
+ ```
22
+
23
+ ## 参数
24
+
25
+ | 参数 | 必填 | 说明 |
26
+ |------|------|------|
27
+ | `--meeting-id <id>` | 是 | 会议 ID(**不是 9 位会议号**) |
28
+ | `--format <fmt>` | 否 | 输出格式:json (默认) / pretty / table / ndjson / csv |
29
+ | `--dry-run` | 否 | 预览 API 调用,不执行 |
30
+
31
+ ## 核心约束
32
+
33
+ ### 1. 入参是 meeting_id,不是会议号
34
+
35
+ `--meeting-id` 必须是会议的长数字 ID,通常由 `+meeting-join` 返回体中的 `meeting.id` 提供,也可从 `+search` 结果中的 `id` 字段获取。**传 9 位会议号会失败**。
36
+
37
+ ### 2. 仅支持 user 身份
38
+
39
+ 该命令仅支持 `user` 身份。只能让当前身份自己离会,无法强制移出其他参会人。
40
+
41
+ ### 3. 当前身份必须在会议中
42
+
43
+ 必须先通过 `+meeting-join` 或其他方式在该会议中,否则接口会报错。
44
+
45
+ ### 4. 离会立即生效,对其他参会人可见
46
+
47
+ 机器人会立刻从参会列表消失;若会议启用了录制/纪要,bot 的参会时段到此截止。确认任务完成再调用;如需要重新入会,再跑 `+meeting-join` 即可(非真正"不可逆")。
48
+
49
+ ## 输出结果
50
+
51
+ 接口成功返回时,默认输出:`Left meeting <meeting-id> successfully.`。
52
+ `--format json` 返回 API 原始响应体。
53
+
54
+ ## 如何获取输入参数
55
+
56
+ | 输入参数 | 获取方式 |
57
+ |---------|---------|
58
+ | `meeting-id` | `+meeting-join` 返回的 `meeting.id`;或 `+search` 结果中的 `id` 字段 |
59
+
60
+ ## Agent 组合场景
61
+
62
+ ### 场景 1:加入 → 完成任务 → 离开(最小闭环)
63
+
64
+ ```bash
65
+ # 第 1 步:加入会议,记录 meeting.id
66
+ lark-cli vc +meeting-join --meeting-number 123456789
67
+
68
+ # 第 2 步:在会中完成任务(如监听发言、记录信息等)
69
+ # ...
70
+
71
+ # 第 3 步:使用上一步记录的 meeting.id 离会
72
+ lark-cli vc +meeting-leave --meeting-id <meeting.id>
73
+ ```
74
+
75
+ ### 场景 2:会后补拉产物
76
+
77
+ ```bash
78
+ # 第 1 步:离会后会议仍在进行或已结束
79
+ lark-cli vc +meeting-leave --meeting-id <meeting.id>
80
+
81
+ # 第 2 步:会议结束后查询录制
82
+ lark-cli vc +recording --meeting-ids <meeting.id>
83
+
84
+ # 第 3 步:查询会议纪要
85
+ lark-cli vc +notes --meeting-ids <meeting.id>
86
+ ```
87
+
88
+ ## 常见错误与排查
89
+
90
+ | 错误现象 | 根本原因 | 解决方案 |
91
+ |---------|---------|---------|
92
+ | `--meeting-id is required` | 未传入 `--meeting-id` | 传入从 `+meeting-join` 得到的 `meeting.id` |
93
+ | `meeting not found` / `invalid meeting_id` | 误传了 9 位会议号 | 必须使用 `meeting.id`,不是会议号 |
94
+ | `not in meeting` | 当前身份并不在该会议中 | 确认先 `+meeting-join` 成功 |
95
+
96
+ ## 提示
97
+
98
+ - 离会会让机器人从参会列表消失,对其他参会人可见;若需要重新入会直接再 `+meeting-join`,不是真正的"不可逆"。参数格式不确定时可选 `--dry-run` 预览。
99
+ - 与 `+meeting-join` 成对使用:能 join 的身份才能 leave。
100
+ - `meeting_id` 必须来自 `+meeting-join` 的返回值,不要用 9 位会议号。
101
+
102
+ ## 参考
103
+
104
+ - [lark-vc-agent-meeting-join](lark-vc-agent-meeting-join.md) — 对应的入会命令
105
+ - [lark-vc-agent-meeting-events](lark-vc-agent-meeting-events.md) — 会中事件流
106
+ - [lark-vc-search](../../lark-vc/references/lark-vc-search.md) — 搜索历史会议(获取 meeting_id)
107
+ - [lark-vc-recording](../../lark-vc/references/lark-vc-recording.md) — 查询 minute_token
108
+ - [lark-vc-notes](../../lark-vc/references/lark-vc-notes.md) — 获取会议纪要
109
+ - [lark-vc-agent](../SKILL.md) — Agent 参会能力(本 skill)
110
+ - [lark-vc](../../lark-vc/SKILL.md) — 视频会议原子域(Meeting / Note 等核心概念)
111
+ - [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数