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,220 @@
1
+ # lark-slides xml_presentation.slide create
2
+
3
+ ## 用途
4
+
5
+ 在指定的 XML 演示文稿中创建新的幻灯片页面,通常用于给 `slides +create` 创建出的空白 PPT 逐页补充内容。
6
+
7
+ ## 命令
8
+
9
+ ```bash
10
+ lark-cli slides xml_presentation.slide create --as user --params '<json_params>' --data '<json_data>'
11
+ ```
12
+
13
+ ## 参数说明
14
+
15
+ | 参数 | 类型 | 必需 | 说明 |
16
+ |------|------|------|------|
17
+ | `--params` | JSON string | 是 | 路径参数与查询参数 |
18
+ | `--data` | JSON string | 是 | 请求体,包含新页面内容 |
19
+
20
+ ### params JSON 结构
21
+
22
+ ```json
23
+ {
24
+ "xml_presentation_id": "slides_example_presentation_id",
25
+ "revision_id": -1,
26
+ "tid": "idMock"
27
+ }
28
+ ```
29
+
30
+ | 字段 | 类型 | 必需 | 说明 |
31
+ |------|------|------|------|
32
+ | `xml_presentation_id` | string | 是 | 目标演示文稿的唯一标识符 |
33
+ | `revision_id` | integer | 否 | 演示文稿版本号,`-1` 表示最新版本 |
34
+ | `tid` | string | 否 | 锁的事务 ID |
35
+
36
+ ### data JSON 结构
37
+
38
+ ```json
39
+ {
40
+ "slide": {
41
+ "slide_id": "slide_example_id",
42
+ "content": "<slide xmlns=\"http://www.larkoffice.com/sml/2.0\">...</slide>"
43
+ },
44
+ "before_slide_id": "slide_before_target"
45
+ }
46
+ ```
47
+
48
+ | 字段 | 类型 | 必需 | 说明 |
49
+ |------|------|------|------|
50
+ | `slide.slide_id` | string | 否 | 幻灯片页面 short ID |
51
+ | `slide.content` | string | 否 | 新幻灯片的 XML 内容 |
52
+ | `before_slide_id` | string | 否 | 插入到指定页面之前 |
53
+
54
+ ## slide XML 结构
55
+
56
+ `slide.content` 是一个完整的 `<slide>` 元素,遵循 SML 2.0 Schema:
57
+
58
+ ```xml
59
+ <slide xmlns="http://www.larkoffice.com/sml/2.0">
60
+ <data>
61
+ <shape type="text" topLeftX="80" topLeftY="80" width="800" height="120">
62
+ <content textType="title">
63
+ <p>标题</p>
64
+ </content>
65
+ </shape>
66
+ </data>
67
+ </slide>
68
+ ```
69
+
70
+ 详细格式请参考 [xml-format-guide.md](xml-format-guide.md) 和 [xml-schema-quick-ref.md](xml-schema-quick-ref.md)。
71
+
72
+ ## 使用示例
73
+
74
+ ### 在末尾添加幻灯片
75
+
76
+ ```bash
77
+ lark-cli slides xml_presentation.slide create --as user --params '{
78
+ "xml_presentation_id": "slides_example_presentation_id"
79
+ }' --data '{
80
+ "slide": {
81
+ "content": "<slide xmlns=\"http://www.larkoffice.com/sml/2.0\"><data><shape type=\"text\" topLeftX=\"80\" topLeftY=\"80\" width=\"800\" height=\"120\"><content textType=\"title\"><p>新页面标题</p></content></shape><shape type=\"text\" topLeftX=\"80\" topLeftY=\"200\" width=\"800\" height=\"180\"><content textType=\"body\"><p>内容文本</p></content></shape></data></slide>"
82
+ }
83
+ }'
84
+ ```
85
+
86
+ ### 在指定页面前插入幻灯片
87
+
88
+ ```bash
89
+ lark-cli slides xml_presentation.slide create --as user --params '{
90
+ "xml_presentation_id": "slides_example_presentation_id"
91
+ }' --data '{
92
+ "slide": {
93
+ "content": "<slide xmlns=\"http://www.larkoffice.com/sml/2.0\"><data><shape type=\"text\" topLeftX=\"80\" topLeftY=\"80\" width=\"800\" height=\"120\"><content textType=\"title\"><p>插入的标题页</p></content></shape></data></slide>"
94
+ },
95
+ "before_slide_id": "slide_before_target"
96
+ }'
97
+ ```
98
+
99
+ ### 带图形元素的幻灯片
100
+
101
+ ```bash
102
+ lark-cli slides xml_presentation.slide create --as user --params '{
103
+ "xml_presentation_id": "slides_example_presentation_id"
104
+ }' --data '{
105
+ "slide": {
106
+ "content": "<slide xmlns=\"http://www.larkoffice.com/sml/2.0\"><data><shape type=\"text\" topLeftX=\"80\" topLeftY=\"80\" width=\"520\" height=\"120\"><content textType=\"title\"><p>数据展示</p></content></shape><shape type=\"rect\" topLeftX=\"700\" topLeftY=\"100\" width=\"200\" height=\"150\"><fill><fillColor color=\"rgb(100, 149, 237)\"/></fill></shape></data></slide>"
107
+ }
108
+ }'
109
+ ```
110
+
111
+ ### 从文件读取 XML
112
+
113
+ ```bash
114
+ # 先创建 slide.xml 文件
115
+ cat > slide.xml << 'EOF'
116
+ <slide xmlns="http://www.larkoffice.com/sml/2.0">
117
+ <data>
118
+ <shape type="text" topLeftX="80" topLeftY="80" width="800" height="120">
119
+ <content textType="title">
120
+ <p>从文件加载</p>
121
+ </content>
122
+ </shape>
123
+ <shape type="text" topLeftX="80" topLeftY="200" width="800" height="180">
124
+ <content textType="body">
125
+ <p>这是从文件读取的幻灯片内容</p>
126
+ </content>
127
+ </shape>
128
+ </data>
129
+ </slide>
130
+ EOF
131
+
132
+ # 然后创建幻灯片
133
+ lark-cli slides xml_presentation.slide create --as user \
134
+ --params '{"xml_presentation_id":"slides_example_presentation_id"}' \
135
+ --data "$(jq -n --arg content "$(cat slide.xml)" '{slide:{content:$content}}')"
136
+ ```
137
+
138
+ ## 返回值
139
+
140
+ 成功时返回创建的幻灯片信息:
141
+
142
+ ```json
143
+ {
144
+ "code": 0,
145
+ "data": {
146
+ "slide_id": "slide_example_id",
147
+ "revision_id": 100
148
+ },
149
+ "msg": "success"
150
+ }
151
+ ```
152
+
153
+ ### 返回字段说明
154
+
155
+ | 字段 | 类型 | 说明 |
156
+ |------|------|------|
157
+ | `data.slide_id` | string | 新幻灯片的唯一标识 |
158
+ | `data.revision_id` | integer | 演示文稿最新版本号 |
159
+
160
+ ## slide 元素可用子元素
161
+
162
+ | 元素 | 说明 |
163
+ |------|------|
164
+ | `<style>` | 页面样式(背景填充) |
165
+ | `<data>` | 图形元素容器(shape、img、table、chart 等) |
166
+ | `<note>` | 演讲者备注 |
167
+
168
+ > [!IMPORTANT]
169
+ > **本地图片必须先上传**:`xml_presentation.slide.create` 不识别 `@./local.png` 占位符(那是 `+create --slides` 的语法糖)。直接调本接口添加带图新页时,必须先用 [`slides +media-upload`](lark-slides-media-upload.md) 拿到 `file_token`,再写进 `<img src="<file_token>">`。
170
+ >
171
+ > 如果是从零开始建带图 PPT,**强烈建议改用 [`slides +create --slides '[...]'`](lark-slides-create.md#本地图片path-占位符)** 一步搞定(自动上传 + 替换 token)。
172
+
173
+ ## 常见错误
174
+
175
+ | 错误码 | 含义 | 解决方案 |
176
+ |--------|------|----------|
177
+ | 404 | 演示文稿不存在 | 检查 `xml_presentation_id` 是否正确 |
178
+ | 400 | XML 格式错误 | 检查 `slide.content` 是否是完整 `<slide>` 元素 |
179
+ | 400 | 请求体结构错误 | 检查是否按 `slide.content` 和 `before_slide_id` 包装 |
180
+ | 403 | 权限不足 | 检查是否拥有 `slides:presentation:update` 或 `slides:presentation:write_only` scope |
181
+ | 3350001 | XML 非 well-formed 或服务端参数校验失败 | 优先检查未转义字符:文本 `Q&A -> Q&amp;A`,文本 `<` / `>` 写成 `&lt;` / `&gt;`,属性 URL `a=1&b=2 -> a=1&amp;b=2` |
182
+
183
+ ## 注意事项
184
+
185
+ 1. **执行前必做**: 使用 `lark-cli schema slides.xml_presentation.slide.create` 查看最新的参数结构
186
+ 2. **slide.content 格式**: 必须是完整的 `<slide>` 元素,不是整个 presentation
187
+ 3. **命名空间建议**: 协议标准写法应带 `xmlns`,例如 `<slide xmlns="http://www.larkoffice.com/sml/2.0">`;当前服务端实现可能兼容不带 `xmlns` 的输入,但不作为协议保证
188
+ 4. **fill / border 写法**: 颜色填充使用 `<fill><fillColor color="..."/></fill>`,边框常用 `<border color="..." width="2"/>`
189
+ 5. **插入位置**: 通过 `before_slide_id` 指定插入目标,而不是用 `position`
190
+ 6. **JSON 转义**: 如果直接内联 XML,需要正确转义双引号
191
+ 7. **建议**: 先使用 `xml_presentations.get` 获取现有结构,再添加新页面
192
+
193
+ ## 批量添加建议
194
+
195
+ 如果需要添加多张幻灯片,建议先明确每一页的 `before_slide_id`,或直接按最终顺序逐页追加:
196
+
197
+ ```bash
198
+ #!/bin/bash
199
+
200
+ PRESENTATION_ID="slides_example_presentation_id"
201
+
202
+ declare -a slides=(
203
+ '<slide xmlns="http://www.larkoffice.com/sml/2.0"><data><shape type="text" topLeftX="80" topLeftY="80" width="800" height="120"><content textType="title"><p>页面 1</p></content></shape></data></slide>'
204
+ '<slide xmlns="http://www.larkoffice.com/sml/2.0"><data><shape type="text" topLeftX="80" topLeftY="80" width="800" height="120"><content textType="title"><p>页面 2</p></content></shape></data></slide>'
205
+ '<slide xmlns="http://www.larkoffice.com/sml/2.0"><data><shape type="text" topLeftX="80" topLeftY="80" width="800" height="120"><content textType="title"><p>页面 3</p></content></shape></data></slide>'
206
+ )
207
+
208
+ for slide_xml in "${slides[@]}"; do
209
+ payload=$(jq -n --arg content "$slide_xml" '{slide:{content:$content}}')
210
+ lark-cli slides xml_presentation.slide create --as user --params "{\"xml_presentation_id\":\"$PRESENTATION_ID\"}" --data "$payload"
211
+ done
212
+ ```
213
+
214
+ ## 相关命令
215
+
216
+ - [slides +create](lark-slides-create.md) - 创建空白 PPT
217
+ - [xml_presentations get](lark-slides-xml-presentations-get.md) - 读取 PPT 内容
218
+ - [xml_presentation.slide delete](lark-slides-xml-presentation-slide-delete.md) - 删除幻灯片页面
219
+ - [xml-format-guide.md](xml-format-guide.md) - XML 格式详细规范
220
+ - [xml-schema-quick-ref.md](xml-schema-quick-ref.md) - Schema 快速参考
@@ -0,0 +1,123 @@
1
+ # lark-slides xml_presentation.slide delete
2
+
3
+ ## 用途
4
+
5
+ 删除指定 XML 演示文稿中的幻灯片页面。
6
+
7
+ ## 命令
8
+
9
+ ```bash
10
+ lark-cli slides xml_presentation.slide delete --as user --params '<json_params>'
11
+ ```
12
+
13
+ ## 参数说明
14
+
15
+ | 参数 | 类型 | 必需 | 说明 |
16
+ |------|------|------|------|
17
+ | `--params` | JSON string | 是 | 路径参数与查询参数 |
18
+
19
+ ### params JSON 结构
20
+
21
+ ```json
22
+ {
23
+ "xml_presentation_id": "slides_example_presentation_id",
24
+ "slide_id": "slide_example_id",
25
+ "revision_id": -1,
26
+ "tid": "idMock"
27
+ }
28
+ ```
29
+
30
+ | 字段 | 类型 | 必需 | 说明 |
31
+ |------|------|------|------|
32
+ | `xml_presentation_id` | string | 是 | 演示文稿的唯一标识符 |
33
+ | `slide_id` | string | 是 | 要删除的幻灯片唯一标识符 |
34
+ | `revision_id` | integer | 否 | 演示文稿版本号,`-1` 表示最新版本 |
35
+ | `tid` | string | 否 | 锁的事务 ID |
36
+
37
+ ## 使用示例
38
+
39
+ ### 删除指定幻灯片
40
+
41
+ ```bash
42
+ lark-cli slides xml_presentation.slide delete --as user --params '{
43
+ "xml_presentation_id": "slides_example_presentation_id",
44
+ "slide_id": "slide_example_id"
45
+ }'
46
+ ```
47
+
48
+ ### 结合查询删除(使用 jq)
49
+
50
+ ```bash
51
+ # 先读取 XML 内容,确认待删除页面
52
+ lark-cli slides xml_presentations get --as user --params '{"xml_presentation_id":"slides_example_presentation_id"}' | jq -r '.data.xml_presentation.content'
53
+
54
+ # 然后按已知 slide_id 删除
55
+ lark-cli slides xml_presentation.slide delete --as user --params '{"xml_presentation_id":"slides_example_presentation_id","slide_id":"slide_example_id"}'
56
+ ```
57
+
58
+ ## 返回值
59
+
60
+ 成功时返回删除确认信息:
61
+
62
+ ```json
63
+ {
64
+ "code": 0,
65
+ "data": {
66
+ "revision_id": 100
67
+ },
68
+ "msg": "success"
69
+ }
70
+ ```
71
+
72
+ ### 返回字段说明
73
+
74
+ | 字段 | 类型 | 说明 |
75
+ |------|------|------|
76
+ | `data.revision_id` | integer | 删除后的最新版本号 |
77
+
78
+ ## 常见错误
79
+
80
+ | 错误码 | 含义 | 解决方案 |
81
+ |--------|------|----------|
82
+ | 404 | 演示文稿不存在 | 检查 `xml_presentation_id` 是否正确 |
83
+ | 404 | 幻灯片不存在 | 检查 `slide_id` 是否正确,或该幻灯片已被删除 |
84
+ | 400 | 无法删除唯一幻灯片 | 演示文稿至少保留一页幻灯片 |
85
+ | 403 | 权限不足 | 检查是否拥有 `slides:presentation:update` 或 `slides:presentation:write_only` scope |
86
+
87
+ ## 注意事项
88
+
89
+ 1. **执行前必做**: 使用 `lark-cli schema slides.xml_presentation.slide.delete` 查看最新的参数结构
90
+ 2. **删除不可逆**: 删除操作无法撤销,请确保已备份重要内容
91
+ 3. **至少保留一页**: 演示文稿必须至少保留一页幻灯片,删除最后一页会报错
92
+ 4. **版本控制**: 如果依赖版本号并发控制,删除前先确认 `revision_id`
93
+ 5. **获取 slide_id**: 创建幻灯片时请保存返回值;仅靠 `get` 返回的 XML 无法直接推导服务端 short ID
94
+
95
+ ## 如何获取 slide_id
96
+
97
+ ### 方法 1: 创建时保存
98
+
99
+ ```bash
100
+ lark-cli slides xml_presentation.slide create --as user --params '{"xml_presentation_id":"slides_example_presentation_id"}' --data '{
101
+ "slide": {
102
+ "content": "<slide xmlns=\"http://www.larkoffice.com/sml/2.0\"><data><shape type=\"text\" topLeftX=\"80\" topLeftY=\"80\" width=\"800\" height=\"120\"><content textType=\"title\"><p>新页面</p></content></shape></data></slide>"
103
+ }
104
+ }'
105
+ ```
106
+
107
+ 返回结果中的 `slide_id` 就是后续删除所需的值。
108
+
109
+ ## 批量删除建议
110
+
111
+ 如果需要删除多张幻灯片,建议先整理好待删 `slide_id` 列表,再逐个删除:
112
+
113
+ ```bash
114
+ for slide_id in sld_a sld_b sld_c; do
115
+ lark-cli slides xml_presentation.slide delete --as user --params "{\"xml_presentation_id\":\"slides_example_presentation_id\",\"slide_id\":\"$slide_id\"}"
116
+ done
117
+ ```
118
+
119
+ ## 相关命令
120
+
121
+ - [slides +create](lark-slides-create.md) - 创建空白 PPT
122
+ - [xml_presentations get](lark-slides-xml-presentations-get.md) - 读取 PPT 内容
123
+ - [xml_presentation.slide create](lark-slides-xml-presentation-slide-create.md) - 添加幻灯片页面
@@ -0,0 +1,110 @@
1
+ # lark-slides xml_presentation.slide get
2
+
3
+ ## 用途
4
+
5
+ 按 `slide_id` 拉取指定演示文稿单页的 XML 内容(可指定历史版本)。常用于"读-改-写"编辑闭环的第一步。
6
+
7
+ ## 命令
8
+
9
+ ```bash
10
+ lark-cli slides xml_presentation.slide get --as user --params '<json_params>'
11
+ ```
12
+
13
+ ## 参数说明
14
+
15
+ | 参数 | 类型 | 必需 | 说明 |
16
+ |------|------|------|------|
17
+ | `--params` | JSON string | 是 | 路径参数与查询参数 |
18
+
19
+ ### params JSON 结构
20
+
21
+ ```json
22
+ {
23
+ "xml_presentation_id": "slides_example_presentation_id",
24
+ "slide_id": "slide_example_id",
25
+ "revision_id": -1
26
+ }
27
+ ```
28
+
29
+ | 字段 | 类型 | 必需 | 说明 |
30
+ |------|------|------|------|
31
+ | `xml_presentation_id` | string | 是 | 目标演示文稿唯一标识 |
32
+ | `slide_id` | string | 是 | 目标页面唯一标识 |
33
+ | `revision_id` | integer | 否 | 版本号,`-1` 表示最新版(默认)|
34
+
35
+ ## 使用示例
36
+
37
+ ### 读最新版本
38
+
39
+ ```bash
40
+ lark-cli slides xml_presentation.slide get --as user --params '{
41
+ "xml_presentation_id": "slides_example_presentation_id",
42
+ "slide_id": "slide_example_id"
43
+ }'
44
+ ```
45
+
46
+ ### 只提取 XML 内容
47
+
48
+ ```bash
49
+ lark-cli slides xml_presentation.slide get --as user \
50
+ --params '{"xml_presentation_id":"slides_example_presentation_id","slide_id":"slide_example_id"}' \
51
+ | jq -r '.data.slide.content'
52
+ ```
53
+
54
+ ### 读指定历史版本
55
+
56
+ ```bash
57
+ lark-cli slides xml_presentation.slide get --as user --params '{
58
+ "xml_presentation_id": "slides_example_presentation_id",
59
+ "slide_id": "slide_example_id",
60
+ "revision_id": 42
61
+ }'
62
+ ```
63
+
64
+ ## 返回值
65
+
66
+ ```json
67
+ {
68
+ "code": 0,
69
+ "data": {
70
+ "slide": {
71
+ "slide_id": "slide_example_id",
72
+ "content": "<slide id=\"slide_example_id\"><style/><data>...</data></slide>"
73
+ },
74
+ "revision_id": 100
75
+ },
76
+ "msg": "success"
77
+ }
78
+ ```
79
+
80
+ | 字段 | 类型 | 说明 |
81
+ |------|------|------|
82
+ | `data.slide.slide_id` | string | 页面唯一标识 |
83
+ | `data.slide.content` | string | 页面完整 XML(`<slide>` 根节点,不含 xmlns)|
84
+ | `data.revision_id` | integer | 此次读到的版本号,可用于后续 replace 的乐观锁 |
85
+
86
+ ## 常见错误
87
+
88
+ | 错误码 | 含义 | 解决方案 |
89
+ |--------|------|----------|
90
+ | 404 | 演示文稿或页面不存在 | 检查 `xml_presentation_id` / `slide_id` |
91
+ | 403 | 权限不足 | 需要 `slides:presentation:read` scope,并对该 PPT 有访问权限 |
92
+ | 400 | `revision_id` 不存在 | 传了无效版本号,用 `-1` 或真实存在的版本号 |
93
+
94
+ ## 注意事项
95
+
96
+ 1. **执行前必做**:`lark-cli schema slides.xml_presentation.slide.get` 查看最新参数结构
97
+ 2. **block_id 提取**:返回 XML 里每个顶层块(shape、img、table 等)的 `id` 属性即为 `block_id`,通常是 3 字符短码,例如 `<shape id="bUn" ...>`。用以下命令列出当前页所有 block_id:
98
+
99
+ ```bash
100
+ lark-cli slides xml_presentation.slide get --as user \
101
+ --params "{\"xml_presentation_id\":\"$PID\",\"slide_id\":\"$SID\"}" \
102
+ | jq -r '.data.slide.content' | grep -oE 'id="[^"]+"' | sed 's/id="//;s/"//'
103
+ ```
104
+
105
+ ## 相关命令
106
+
107
+ - [slides +replace-slide](lark-slides-replace-slide.md) — 块级替换 shortcut(推荐)
108
+ - [xml_presentation.slide replace](lark-slides-xml-presentation-slide-replace.md) — 底层 replace API 参考
109
+ - [xml_presentations get](lark-slides-xml-presentations-get.md) — 读整个 PPT
110
+ - [lark-slides-edit-workflows.md](lark-slides-edit-workflows.md) — 读-改-写闭环
@@ -0,0 +1,186 @@
1
+ # lark-slides xml_presentation.slide replace
2
+
3
+ ## 用途
4
+
5
+ 对单页做**块级局部替换**:不覆盖整页,按 patch 列表做 `block_replace`(整块替换)或 `block_insert`(整块插入)。适合"只想加 / 换一个元素、不动其他元素"的场景。
6
+
7
+ > **推荐**:优先使用 [`+replace-slide`](lark-slides-replace-slide.md) Shortcut——它会自动注入 `id` 和 `<content/>`,直接调本 API 需自己处理这两个约束(见注意事项 5、6)。
8
+
9
+ ## 命令
10
+
11
+ ```bash
12
+ lark-cli slides xml_presentation.slide replace --as user --params '<json_params>' --data '<json_data>'
13
+ ```
14
+
15
+ ## 参数说明
16
+
17
+ | 参数 | 类型 | 必需 | 说明 |
18
+ |------|------|------|------|
19
+ | `--params` | JSON string | 是 | 路径参数与查询参数 |
20
+ | `--data` | JSON string | 是 | patch 列表 |
21
+
22
+ ### params JSON 结构
23
+
24
+ ```json
25
+ {
26
+ "xml_presentation_id": "slides_example_presentation_id",
27
+ "slide_id": "slide_example_id",
28
+ "revision_id": -1,
29
+ "tid": "idMock"
30
+ }
31
+ ```
32
+
33
+ | 字段 | 类型 | 必需 | 说明 |
34
+ |------|------|------|------|
35
+ | `xml_presentation_id` | string | 是 | 演示文稿唯一标识 |
36
+ | `slide_id` | string | 是 | 页面唯一标识 |
37
+ | `revision_id` | integer | 否 | 默认 `-1`(以最新版为基准);传具体版本号做乐观锁 |
38
+ | `tid` | string | 否 | 事务 ID,一般留空 |
39
+
40
+ ### data JSON 结构
41
+
42
+ ```json
43
+ {
44
+ "parts": [
45
+ { "action": "block_replace", "block_id": "bab", "replacement": "<shape .../>" },
46
+ { "action": "block_insert", "insertion": "<img .../>", "insert_before_block_id": "baa" }
47
+ ]
48
+ }
49
+ ```
50
+
51
+ | 字段 | 类型 | 必需 | 说明 |
52
+ |------|------|------|------|
53
+ | `parts` | array | 是 | patch 列表,长度 1~200,顺序执行 |
54
+
55
+ ### parts[] 字段(按 action 不同)
56
+
57
+ 本期 CLI 文档化两种 action:
58
+
59
+ #### action = "block_replace" — 整块替换
60
+
61
+ | 字段 | 必填 | 说明 |
62
+ |------|------|------|
63
+ | `action` | 是 | 固定 `block_replace` |
64
+ | `block_id` | 是 | 目标块的 3 位 short element ID(从 `slide.get` 返回的 XML 里读到) |
65
+ | `replacement` | 是 | 新 XML 片段,替换整个目标块 |
66
+
67
+ #### action = "block_insert" — 整块插入
68
+
69
+ | 字段 | 必填 | 说明 |
70
+ |------|------|------|
71
+ | `action` | 是 | 固定 `block_insert` |
72
+ | `insertion` | 是 | 要插入的完整 XML 片段 |
73
+ | `insert_before_block_id` | 否 | 插到这个块之前;省略则追加到页面末尾 |
74
+
75
+ ## 使用示例
76
+
77
+ ### block_replace:换一个 shape 的整体内容
78
+
79
+ ```bash
80
+ lark-cli slides xml_presentation.slide replace --as user --params '{
81
+ "xml_presentation_id": "slides_example_presentation_id",
82
+ "slide_id": "slide_example_id"
83
+ }' --data '{
84
+ "parts": [
85
+ {
86
+ "action": "block_replace",
87
+ "block_id": "bab",
88
+ "replacement": "<shape type=\"text\" topLeftX=\"80\" topLeftY=\"80\" width=\"800\" height=\"120\"><content textType=\"title\"><p>新标题</p></content></shape>"
89
+ }
90
+ ]
91
+ }'
92
+ ```
93
+
94
+ ### block_insert:在已有页上加一张图
95
+
96
+ ```bash
97
+ # 先拿 file_token
98
+ TOKEN=$(lark-cli slides +media-upload --file ./pic.png --presentation "$PID" --as user | jq -r '.data.file_token')
99
+
100
+ lark-cli slides xml_presentation.slide replace --as user --params "{
101
+ \"xml_presentation_id\": \"$PID\",
102
+ \"slide_id\": \"$SID\"
103
+ }" --data "$(jq -n --arg token "$TOKEN" '{
104
+ parts: [
105
+ {
106
+ action: "block_insert",
107
+ insertion: ("<img src=\"" + $token + "\" topLeftX=\"500\" topLeftY=\"100\" width=\"200\" height=\"150\"/>")
108
+ }
109
+ ]
110
+ }')"
111
+ ```
112
+
113
+ ### 多条 parts 原子执行
114
+
115
+ ```bash
116
+ lark-cli slides xml_presentation.slide replace --as user --params '{
117
+ "xml_presentation_id": "slides_example_presentation_id",
118
+ "slide_id": "slide_example_id"
119
+ }' --data '{
120
+ "parts": [
121
+ {"action":"block_replace","block_id":"bab","replacement":"<shape type=\"text\" topLeftX=\"80\" topLeftY=\"80\" width=\"800\" height=\"120\"><content textType=\"title\"><p>新标题</p></content></shape>"},
122
+ {"action":"block_insert","insertion":"<img src=\"<file_token>\" topLeftX=\"700\" topLeftY=\"400\" width=\"180\" height=\"100\"/>"}
123
+ ]
124
+ }'
125
+ ```
126
+
127
+ ## 返回值
128
+
129
+ ### 成功
130
+
131
+ ```json
132
+ {
133
+ "code": 0,
134
+ "data": {
135
+ "revision_id": 105
136
+ },
137
+ "msg": "success"
138
+ }
139
+ ```
140
+
141
+ ### 失败(任一 part 失败,整批不生效)
142
+
143
+ 失败时返回非零错误码(如 3350001)。若后端能定位失败的 part,`data` 中可能附带:
144
+
145
+ ```json
146
+ {
147
+ "code": 3350001,
148
+ "data": {
149
+ "failed_part_index": 0,
150
+ "failed_reason": "block not found"
151
+ }
152
+ }
153
+ ```
154
+
155
+ | 字段 | 类型 | 说明 |
156
+ |------|------|------|
157
+ | `data.revision_id` | integer | 成功时返回更新后最新版本号 |
158
+ | `data.failed_part_index` | integer | 失败的 part 在 `parts` 数组中的索引(从 0 起) |
159
+ | `data.failed_reason` | string | 失败原因 |
160
+
161
+ ## 常见错误
162
+
163
+ | 错误码 | 含义 | 解决方案 |
164
+ |--------|------|----------|
165
+ | 3350001 | `block_id` 在当前页不存在,或 XML 格式 / 结构错误 | 重新 `slide.get` 拿最新 XML,确认 `block_id` 存在;检查 `replacement` / `insertion` 是否合法 XML |
166
+ | 400 | `parts` 长度超过 200 | 拆多次调用 |
167
+ | 3350002 | `revision_id` 不存在(超过当前版本号) | 用 `-1` 或实际存在的 `revision_id` |
168
+ | 400 | XML 格式错误 | `replacement` / `insertion` 必须为合法的 XML 片段,标签闭合 + 属性引号 |
169
+ | 403 | 权限不足 | 需要 `slides:presentation:update` 或 `slides:presentation:write_only` |
170
+
171
+ ## 注意事项
172
+
173
+ 1. **parts 原子事务**:任一条失败整批回滚,不会出现"前几条成功、后几条失败"的中间态。
174
+ 2. **block_id 的获取**:`slide.get` 返回的 XML 里每个块(shape、img、table、chart 等)会带 3 位 short element ID,用这个值填 `block_id` / `insert_before_block_id`。
175
+ 3. **`<img>` 必须用 file_token**:不能用外链 URL——先 [`slides +media-upload`](lark-slides-media-upload.md) 拿 token。
176
+ 4. **不能字段级 patch**:要改一个块的某个属性(比如只改 `topLeftX`),得写整块新 XML 走 `block_replace`;API 不支持"只改一个字段"。
177
+ 5. **`block_replace` 要求 `replacement` 根元素带 `id="<block_id>"`**:底层 API 的硬约束,缺失会返回 3350001。推荐走 shortcut [`+replace-slide`](lark-slides-replace-slide.md)——它会自动把 `id` 注入到 `replacement` 根元素上,用户写 XML 时不用自己加。
178
+ 6. **`<shape>` 必须有 `<content/>` 子元素**:SML 2.0 schema 要求,缺失同样触发 3350001。shortcut [`+replace-slide`](lark-slides-replace-slide.md) 会自动注入 `<content/>`,直接调底层 API 需要自己加。
179
+ 7. **执行前必做**:`lark-cli schema slides.xml_presentation.slide.replace` 查看最新参数结构。
180
+
181
+ ## 相关命令
182
+
183
+ - [slides +replace-slide](lark-slides-replace-slide.md) — 块级替换 shortcut(推荐,自动注入 id)
184
+ - [xml_presentation.slide get](lark-slides-xml-presentation-slide-get.md) — 读原页拿 block short ID
185
+ - [slides +media-upload](lark-slides-media-upload.md) — 上传图片拿 file_token
186
+ - [lark-slides-edit-workflows.md](lark-slides-edit-workflows.md) — 读-改-写闭环 + 决策树