@wagemule/daemon 0.1.0 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/README.md +9 -2
  2. package/dist/main.cjs +270 -101
  3. package/dist/main.cjs.map +3 -3
  4. package/dist/skills/larksuite/lark-approval/SKILL.md +56 -0
  5. package/dist/skills/larksuite/lark-attendance/SKILL.md +57 -0
  6. package/dist/skills/larksuite/lark-base/SKILL.md +349 -0
  7. package/dist/skills/larksuite/lark-base/references/dashboard-block-data-config.md +350 -0
  8. package/dist/skills/larksuite/lark-base/references/examples.md +140 -0
  9. package/dist/skills/larksuite/lark-base/references/formula-field-guide.md +735 -0
  10. package/dist/skills/larksuite/lark-base/references/lark-base-advperm-disable.md +83 -0
  11. package/dist/skills/larksuite/lark-base/references/lark-base-advperm-enable.md +80 -0
  12. package/dist/skills/larksuite/lark-base/references/lark-base-base-copy.md +74 -0
  13. package/dist/skills/larksuite/lark-base/references/lark-base-base-create.md +68 -0
  14. package/dist/skills/larksuite/lark-base/references/lark-base-base-get.md +39 -0
  15. package/dist/skills/larksuite/lark-base/references/lark-base-cell-value.md +151 -0
  16. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-arrange.md +83 -0
  17. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-create.md +108 -0
  18. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-delete.md +46 -0
  19. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-get.md +57 -0
  20. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-list.md +53 -0
  21. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-block-update.md +84 -0
  22. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-create.md +73 -0
  23. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-delete.md +44 -0
  24. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-get.md +59 -0
  25. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-list.md +52 -0
  26. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard-update.md +69 -0
  27. package/dist/skills/larksuite/lark-base/references/lark-base-dashboard.md +240 -0
  28. package/dist/skills/larksuite/lark-base/references/lark-base-data-analysis-sop.md +88 -0
  29. package/dist/skills/larksuite/lark-base/references/lark-base-data-query.md +451 -0
  30. package/dist/skills/larksuite/lark-base/references/lark-base-field-create.md +104 -0
  31. package/dist/skills/larksuite/lark-base/references/lark-base-field-delete.md +51 -0
  32. package/dist/skills/larksuite/lark-base/references/lark-base-field-get.md +42 -0
  33. package/dist/skills/larksuite/lark-base/references/lark-base-field-list.md +44 -0
  34. package/dist/skills/larksuite/lark-base/references/lark-base-field-search-options.md +48 -0
  35. package/dist/skills/larksuite/lark-base/references/lark-base-field-update.md +166 -0
  36. package/dist/skills/larksuite/lark-base/references/lark-base-field.md +23 -0
  37. package/dist/skills/larksuite/lark-base/references/lark-base-form-create.md +87 -0
  38. package/dist/skills/larksuite/lark-base/references/lark-base-form-delete.md +64 -0
  39. package/dist/skills/larksuite/lark-base/references/lark-base-form-get.md +68 -0
  40. package/dist/skills/larksuite/lark-base/references/lark-base-form-list.md +73 -0
  41. package/dist/skills/larksuite/lark-base/references/lark-base-form-questions-create.md +118 -0
  42. package/dist/skills/larksuite/lark-base/references/lark-base-form-questions-delete.md +68 -0
  43. package/dist/skills/larksuite/lark-base/references/lark-base-form-questions-list.md +84 -0
  44. package/dist/skills/larksuite/lark-base/references/lark-base-form-questions-update.md +92 -0
  45. package/dist/skills/larksuite/lark-base/references/lark-base-form-questions.md +23 -0
  46. package/dist/skills/larksuite/lark-base/references/lark-base-form-update.md +82 -0
  47. package/dist/skills/larksuite/lark-base/references/lark-base-form.md +24 -0
  48. package/dist/skills/larksuite/lark-base/references/lark-base-history.md +16 -0
  49. package/dist/skills/larksuite/lark-base/references/lark-base-record-batch-create.md +58 -0
  50. package/dist/skills/larksuite/lark-base/references/lark-base-record-batch-update.md +53 -0
  51. package/dist/skills/larksuite/lark-base/references/lark-base-record-delete.md +62 -0
  52. package/dist/skills/larksuite/lark-base/references/lark-base-record-history-list.md +86 -0
  53. package/dist/skills/larksuite/lark-base/references/lark-base-record-share-link-create.md +72 -0
  54. package/dist/skills/larksuite/lark-base/references/lark-base-record-upload-attachment.md +50 -0
  55. package/dist/skills/larksuite/lark-base/references/lark-base-record-upsert.md +64 -0
  56. package/dist/skills/larksuite/lark-base/references/lark-base-record.md +29 -0
  57. package/dist/skills/larksuite/lark-base/references/lark-base-role-create.md +89 -0
  58. package/dist/skills/larksuite/lark-base/references/lark-base-role-delete.md +83 -0
  59. package/dist/skills/larksuite/lark-base/references/lark-base-role-get.md +87 -0
  60. package/dist/skills/larksuite/lark-base/references/lark-base-role-list.md +81 -0
  61. package/dist/skills/larksuite/lark-base/references/lark-base-role-update.md +94 -0
  62. package/dist/skills/larksuite/lark-base/references/lark-base-shortcut-field-properties.md +481 -0
  63. package/dist/skills/larksuite/lark-base/references/lark-base-table-create.md +62 -0
  64. package/dist/skills/larksuite/lark-base/references/lark-base-table-delete.md +51 -0
  65. package/dist/skills/larksuite/lark-base/references/lark-base-table-get.md +46 -0
  66. package/dist/skills/larksuite/lark-base/references/lark-base-table-list.md +43 -0
  67. package/dist/skills/larksuite/lark-base/references/lark-base-table-update.md +49 -0
  68. package/dist/skills/larksuite/lark-base/references/lark-base-table.md +20 -0
  69. package/dist/skills/larksuite/lark-base/references/lark-base-view-create.md +50 -0
  70. package/dist/skills/larksuite/lark-base/references/lark-base-view-delete.md +48 -0
  71. package/dist/skills/larksuite/lark-base/references/lark-base-view-get-card.md +38 -0
  72. package/dist/skills/larksuite/lark-base/references/lark-base-view-get-filter.md +38 -0
  73. package/dist/skills/larksuite/lark-base/references/lark-base-view-get-group.md +38 -0
  74. package/dist/skills/larksuite/lark-base/references/lark-base-view-get-sort.md +38 -0
  75. package/dist/skills/larksuite/lark-base/references/lark-base-view-get-timebar.md +38 -0
  76. package/dist/skills/larksuite/lark-base/references/lark-base-view-get-visible-fields.md +28 -0
  77. package/dist/skills/larksuite/lark-base/references/lark-base-view-get.md +38 -0
  78. package/dist/skills/larksuite/lark-base/references/lark-base-view-list.md +44 -0
  79. package/dist/skills/larksuite/lark-base/references/lark-base-view-rename.md +44 -0
  80. package/dist/skills/larksuite/lark-base/references/lark-base-view-set-card.md +55 -0
  81. package/dist/skills/larksuite/lark-base/references/lark-base-view-set-filter.md +181 -0
  82. package/dist/skills/larksuite/lark-base/references/lark-base-view-set-group.md +65 -0
  83. package/dist/skills/larksuite/lark-base/references/lark-base-view-set-sort.md +63 -0
  84. package/dist/skills/larksuite/lark-base/references/lark-base-view-set-timebar.md +51 -0
  85. package/dist/skills/larksuite/lark-base/references/lark-base-view-set-visible-fields.md +46 -0
  86. package/dist/skills/larksuite/lark-base/references/lark-base-view.md +44 -0
  87. package/dist/skills/larksuite/lark-base/references/lark-base-workflow-create.md +180 -0
  88. package/dist/skills/larksuite/lark-base/references/lark-base-workflow-disable.md +94 -0
  89. package/dist/skills/larksuite/lark-base/references/lark-base-workflow-enable.md +94 -0
  90. package/dist/skills/larksuite/lark-base/references/lark-base-workflow-get.md +147 -0
  91. package/dist/skills/larksuite/lark-base/references/lark-base-workflow-guide.md +718 -0
  92. package/dist/skills/larksuite/lark-base/references/lark-base-workflow-list.md +124 -0
  93. package/dist/skills/larksuite/lark-base/references/lark-base-workflow-schema.md +935 -0
  94. package/dist/skills/larksuite/lark-base/references/lark-base-workflow-update.md +167 -0
  95. package/dist/skills/larksuite/lark-base/references/lark-base-workflow.md +23 -0
  96. package/dist/skills/larksuite/lark-base/references/lark-base-workspace.md +18 -0
  97. package/dist/skills/larksuite/lark-base/references/lookup-field-guide.md +510 -0
  98. package/dist/skills/larksuite/lark-base/references/role-config.md +539 -0
  99. package/dist/skills/larksuite/lark-calendar/SKILL.md +154 -0
  100. package/dist/skills/larksuite/lark-calendar/references/lark-calendar-agenda.md +78 -0
  101. package/dist/skills/larksuite/lark-calendar/references/lark-calendar-create.md +109 -0
  102. package/dist/skills/larksuite/lark-calendar/references/lark-calendar-freebusy.md +124 -0
  103. package/dist/skills/larksuite/lark-calendar/references/lark-calendar-room-find.md +113 -0
  104. package/dist/skills/larksuite/lark-calendar/references/lark-calendar-rsvp.md +42 -0
  105. package/dist/skills/larksuite/lark-calendar/references/lark-calendar-schedule-meeting.md +265 -0
  106. package/dist/skills/larksuite/lark-calendar/references/lark-calendar-suggestion.md +125 -0
  107. package/dist/skills/larksuite/lark-calendar/references/lark-calendar-update.md +105 -0
  108. package/dist/skills/larksuite/lark-contact/SKILL.md +45 -0
  109. package/dist/skills/larksuite/lark-contact/references/lark-contact-get-user.md +19 -0
  110. package/dist/skills/larksuite/lark-contact/references/lark-contact-search-user.md +124 -0
  111. package/dist/skills/larksuite/lark-doc/SKILL.md +69 -0
  112. package/dist/skills/larksuite/lark-doc/references/lark-doc-create.md +89 -0
  113. package/dist/skills/larksuite/lark-doc/references/lark-doc-fetch.md +141 -0
  114. package/dist/skills/larksuite/lark-doc/references/lark-doc-md.md +71 -0
  115. package/dist/skills/larksuite/lark-doc/references/lark-doc-media-download.md +50 -0
  116. package/dist/skills/larksuite/lark-doc/references/lark-doc-media-insert.md +114 -0
  117. package/dist/skills/larksuite/lark-doc/references/lark-doc-media-preview.md +41 -0
  118. package/dist/skills/larksuite/lark-doc/references/lark-doc-search.md +217 -0
  119. package/dist/skills/larksuite/lark-doc/references/lark-doc-update.md +252 -0
  120. package/dist/skills/larksuite/lark-doc/references/lark-doc-whiteboard.md +100 -0
  121. package/dist/skills/larksuite/lark-doc/references/lark-doc-xml.md +169 -0
  122. package/dist/skills/larksuite/lark-doc/references/style/lark-doc-create-workflow.md +56 -0
  123. package/dist/skills/larksuite/lark-doc/references/style/lark-doc-style.md +106 -0
  124. package/dist/skills/larksuite/lark-doc/references/style/lark-doc-update-workflow.md +54 -0
  125. package/dist/skills/larksuite/lark-drive/SKILL.md +343 -0
  126. package/dist/skills/larksuite/lark-drive/references/lark-drive-add-comment.md +169 -0
  127. package/dist/skills/larksuite/lark-drive/references/lark-drive-apply-permission.md +77 -0
  128. package/dist/skills/larksuite/lark-drive/references/lark-drive-create-folder.md +73 -0
  129. package/dist/skills/larksuite/lark-drive/references/lark-drive-create-shortcut.md +103 -0
  130. package/dist/skills/larksuite/lark-drive/references/lark-drive-delete.md +79 -0
  131. package/dist/skills/larksuite/lark-drive/references/lark-drive-download.md +31 -0
  132. package/dist/skills/larksuite/lark-drive/references/lark-drive-export-download.md +50 -0
  133. package/dist/skills/larksuite/lark-drive/references/lark-drive-export.md +119 -0
  134. package/dist/skills/larksuite/lark-drive/references/lark-drive-import.md +154 -0
  135. package/dist/skills/larksuite/lark-drive/references/lark-drive-move.md +120 -0
  136. package/dist/skills/larksuite/lark-drive/references/lark-drive-pull.md +137 -0
  137. package/dist/skills/larksuite/lark-drive/references/lark-drive-push.md +162 -0
  138. package/dist/skills/larksuite/lark-drive/references/lark-drive-reactions.md +113 -0
  139. package/dist/skills/larksuite/lark-drive/references/lark-drive-search.md +239 -0
  140. package/dist/skills/larksuite/lark-drive/references/lark-drive-status.md +137 -0
  141. package/dist/skills/larksuite/lark-drive/references/lark-drive-task-result.md +302 -0
  142. package/dist/skills/larksuite/lark-drive/references/lark-drive-upload.md +101 -0
  143. package/dist/skills/larksuite/lark-event/SKILL.md +145 -0
  144. package/dist/skills/larksuite/lark-event/references/lark-event-im.md +86 -0
  145. package/dist/skills/larksuite/lark-im/SKILL.md +162 -0
  146. package/dist/skills/larksuite/lark-im/references/lark-im-chat-create.md +162 -0
  147. package/dist/skills/larksuite/lark-im/references/lark-im-chat-identity.md +55 -0
  148. package/dist/skills/larksuite/lark-im/references/lark-im-chat-list.md +113 -0
  149. package/dist/skills/larksuite/lark-im/references/lark-im-chat-messages-list.md +142 -0
  150. package/dist/skills/larksuite/lark-im/references/lark-im-chat-search.md +136 -0
  151. package/dist/skills/larksuite/lark-im/references/lark-im-chat-update.md +84 -0
  152. package/dist/skills/larksuite/lark-im/references/lark-im-flag-cancel.md +67 -0
  153. package/dist/skills/larksuite/lark-im/references/lark-im-flag-create.md +67 -0
  154. package/dist/skills/larksuite/lark-im/references/lark-im-flag-list.md +100 -0
  155. package/dist/skills/larksuite/lark-im/references/lark-im-messages-mget.md +95 -0
  156. package/dist/skills/larksuite/lark-im/references/lark-im-messages-reply.md +222 -0
  157. package/dist/skills/larksuite/lark-im/references/lark-im-messages-resources-download.md +94 -0
  158. package/dist/skills/larksuite/lark-im/references/lark-im-messages-search.md +217 -0
  159. package/dist/skills/larksuite/lark-im/references/lark-im-messages-send.md +223 -0
  160. package/dist/skills/larksuite/lark-im/references/lark-im-reactions.md +297 -0
  161. package/dist/skills/larksuite/lark-im/references/lark-im-threads-messages-list.md +111 -0
  162. package/dist/skills/larksuite/lark-mail/SKILL.md +648 -0
  163. package/dist/skills/larksuite/lark-mail/references/lark-mail-decline-receipt.md +115 -0
  164. package/dist/skills/larksuite/lark-mail/references/lark-mail-draft-create.md +123 -0
  165. package/dist/skills/larksuite/lark-mail/references/lark-mail-draft-edit.md +400 -0
  166. package/dist/skills/larksuite/lark-mail/references/lark-mail-forward.md +232 -0
  167. package/dist/skills/larksuite/lark-mail/references/lark-mail-message.md +230 -0
  168. package/dist/skills/larksuite/lark-mail/references/lark-mail-messages.md +108 -0
  169. package/dist/skills/larksuite/lark-mail/references/lark-mail-reply-all.md +206 -0
  170. package/dist/skills/larksuite/lark-mail/references/lark-mail-reply.md +242 -0
  171. package/dist/skills/larksuite/lark-mail/references/lark-mail-send-receipt.md +120 -0
  172. package/dist/skills/larksuite/lark-mail/references/lark-mail-send.md +216 -0
  173. package/dist/skills/larksuite/lark-mail/references/lark-mail-share-to-chat.md +87 -0
  174. package/dist/skills/larksuite/lark-mail/references/lark-mail-signature.md +98 -0
  175. package/dist/skills/larksuite/lark-mail/references/lark-mail-template-create.md +129 -0
  176. package/dist/skills/larksuite/lark-mail/references/lark-mail-template-update.md +150 -0
  177. package/dist/skills/larksuite/lark-mail/references/lark-mail-thread.md +111 -0
  178. package/dist/skills/larksuite/lark-mail/references/lark-mail-triage.md +122 -0
  179. package/dist/skills/larksuite/lark-mail/references/lark-mail-watch.md +94 -0
  180. package/dist/skills/larksuite/lark-markdown/SKILL.md +46 -0
  181. package/dist/skills/larksuite/lark-markdown/references/lark-markdown-create.md +86 -0
  182. package/dist/skills/larksuite/lark-markdown/references/lark-markdown-fetch.md +79 -0
  183. package/dist/skills/larksuite/lark-markdown/references/lark-markdown-overwrite.md +85 -0
  184. package/dist/skills/larksuite/lark-minutes/SKILL.md +139 -0
  185. package/dist/skills/larksuite/lark-minutes/references/lark-minutes-download.md +137 -0
  186. package/dist/skills/larksuite/lark-minutes/references/lark-minutes-search.md +206 -0
  187. package/dist/skills/larksuite/lark-minutes/references/lark-minutes-upload.md +104 -0
  188. package/dist/skills/larksuite/lark-okr/SKILL.md +133 -0
  189. package/dist/skills/larksuite/lark-okr/references/lark-okr-contentblock.md +359 -0
  190. package/dist/skills/larksuite/lark-okr/references/lark-okr-cycle-detail.md +84 -0
  191. package/dist/skills/larksuite/lark-okr/references/lark-okr-cycle-list.md +90 -0
  192. package/dist/skills/larksuite/lark-okr/references/lark-okr-entities.md +329 -0
  193. package/dist/skills/larksuite/lark-okr/references/lark-okr-image-upload.md +116 -0
  194. package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-create.md +81 -0
  195. package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-delete.md +47 -0
  196. package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-get.md +62 -0
  197. package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-list.md +80 -0
  198. package/dist/skills/larksuite/lark-okr/references/lark-okr-progress-update.md +81 -0
  199. package/dist/skills/larksuite/lark-openapi-explorer/SKILL.md +153 -0
  200. package/dist/skills/larksuite/lark-shared/SKILL.md +138 -0
  201. package/dist/skills/larksuite/lark-sheets/SKILL.md +345 -0
  202. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-cell-data.md +197 -0
  203. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-cell-images.md +59 -0
  204. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-cell-style-and-merge.md +141 -0
  205. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-dropdown.md +133 -0
  206. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-filter-views.md +193 -0
  207. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-float-images.md +125 -0
  208. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-formula.md +88 -0
  209. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-row-column-management.md +151 -0
  210. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-sheet-management.md +164 -0
  211. package/dist/skills/larksuite/lark-sheets/references/lark-sheets-spreadsheet-management.md +134 -0
  212. package/dist/skills/larksuite/lark-skill-maker/SKILL.md +85 -0
  213. package/dist/skills/larksuite/lark-slides/SKILL.md +525 -0
  214. package/dist/skills/larksuite/lark-slides/assets/templates/administration--all_hands_meeting.xml +1999 -0
  215. package/dist/skills/larksuite/lark-slides/assets/templates/administration--annual_gala.xml +1160 -0
  216. package/dist/skills/larksuite/lark-slides/assets/templates/administration--company_intro.xml +1376 -0
  217. package/dist/skills/larksuite/lark-slides/assets/templates/administration--corporate_culture.xml +1765 -0
  218. package/dist/skills/larksuite/lark-slides/assets/templates/hr--employee_training.xml +912 -0
  219. package/dist/skills/larksuite/lark-slides/assets/templates/hr--employee_training_workshop.xml +1504 -0
  220. package/dist/skills/larksuite/lark-slides/assets/templates/hr--onboarding.xml +933 -0
  221. package/dist/skills/larksuite/lark-slides/assets/templates/marketing--brand_communication.xml +1367 -0
  222. package/dist/skills/larksuite/lark-slides/assets/templates/marketing--brand_logo_design.xml +1347 -0
  223. package/dist/skills/larksuite/lark-slides/assets/templates/marketing--brand_operations_plan.xml +1309 -0
  224. package/dist/skills/larksuite/lark-slides/assets/templates/marketing--business_plan.xml +1646 -0
  225. package/dist/skills/larksuite/lark-slides/assets/templates/marketing--marketing_plan.xml +1469 -0
  226. package/dist/skills/larksuite/lark-slides/assets/templates/marketing--marketing_strategy.xml +1484 -0
  227. package/dist/skills/larksuite/lark-slides/assets/templates/marketing--product_whitepaper.xml +1455 -0
  228. package/dist/skills/larksuite/lark-slides/assets/templates/marketing--roadshow_business_plan.xml +1506 -0
  229. package/dist/skills/larksuite/lark-slides/assets/templates/misc--book_sharing.xml +1338 -0
  230. package/dist/skills/larksuite/lark-slides/assets/templates/misc--club_event_plan.xml +4885 -0
  231. package/dist/skills/larksuite/lark-slides/assets/templates/misc--student_career_plan.xml +1854 -0
  232. package/dist/skills/larksuite/lark-slides/assets/templates/office--dark_general.xml +3763 -0
  233. package/dist/skills/larksuite/lark-slides/assets/templates/office--dept_annual_report.xml +1192 -0
  234. package/dist/skills/larksuite/lark-slides/assets/templates/office--light_general.xml +3378 -0
  235. package/dist/skills/larksuite/lark-slides/assets/templates/office--project_kickoff.xml +3152 -0
  236. package/dist/skills/larksuite/lark-slides/assets/templates/office--quarterly_review.xml +1253 -0
  237. package/dist/skills/larksuite/lark-slides/assets/templates/office--work_report.xml +1099 -0
  238. package/dist/skills/larksuite/lark-slides/assets/templates/office--work_summary.xml +4420 -0
  239. package/dist/skills/larksuite/lark-slides/assets/templates/office--work_summary_report.xml +1523 -0
  240. package/dist/skills/larksuite/lark-slides/assets/templates/operations--brand_logo_design.xml +1347 -0
  241. package/dist/skills/larksuite/lark-slides/assets/templates/operations--brand_operations_plan.xml +1309 -0
  242. package/dist/skills/larksuite/lark-slides/assets/templates/operations--marketing_plan.xml +1469 -0
  243. package/dist/skills/larksuite/lark-slides/assets/templates/operations--product_promotion.xml +687 -0
  244. package/dist/skills/larksuite/lark-slides/assets/templates/personal--experience_sharing.xml +2242 -0
  245. package/dist/skills/larksuite/lark-slides/assets/templates/personal--personal_resume.xml +2047 -0
  246. package/dist/skills/larksuite/lark-slides/assets/templates/personal--promotion_defense.xml +1099 -0
  247. package/dist/skills/larksuite/lark-slides/assets/templates/personal--promotion_report.xml +1039 -0
  248. package/dist/skills/larksuite/lark-slides/assets/templates/personal--self_intro.xml +696 -0
  249. package/dist/skills/larksuite/lark-slides/assets/templates/personal--teaching_sharing.xml +3013 -0
  250. package/dist/skills/larksuite/lark-slides/assets/templates/product--business_case_analysis.xml +1341 -0
  251. package/dist/skills/larksuite/lark-slides/assets/templates/product--market_analysis.xml +898 -0
  252. package/dist/skills/larksuite/lark-slides/assets/templates/product--product_analysis.xml +1537 -0
  253. package/dist/skills/larksuite/lark-slides/assets/templates/product--product_intro.xml +2838 -0
  254. package/dist/skills/larksuite/lark-slides/assets/templates/product--product_promotion.xml +687 -0
  255. package/dist/skills/larksuite/lark-slides/assets/templates/product--product_promotion_2.xml +687 -0
  256. package/dist/skills/larksuite/lark-slides/references/examples.md +261 -0
  257. package/dist/skills/larksuite/lark-slides/references/lark-slides-create.md +137 -0
  258. package/dist/skills/larksuite/lark-slides/references/lark-slides-edit-workflows.md +142 -0
  259. package/dist/skills/larksuite/lark-slides/references/lark-slides-media-upload.md +128 -0
  260. package/dist/skills/larksuite/lark-slides/references/lark-slides-replace-slide.md +239 -0
  261. package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentation-slide-create.md +221 -0
  262. package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentation-slide-delete.md +123 -0
  263. package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentation-slide-get.md +110 -0
  264. package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +186 -0
  265. package/dist/skills/larksuite/lark-slides/references/lark-slides-xml-presentations-get.md +98 -0
  266. package/dist/skills/larksuite/lark-slides/references/slide-templates.md +201 -0
  267. package/dist/skills/larksuite/lark-slides/references/slides_demo.xml +226 -0
  268. package/dist/skills/larksuite/lark-slides/references/slides_xml_schema_definition.xml +3004 -0
  269. package/dist/skills/larksuite/lark-slides/references/template-catalog.md +464 -0
  270. package/dist/skills/larksuite/lark-slides/references/template-index.json +1853 -0
  271. package/dist/skills/larksuite/lark-slides/references/xml-format-guide.md +369 -0
  272. package/dist/skills/larksuite/lark-slides/references/xml-schema-quick-ref.md +215 -0
  273. package/dist/skills/larksuite/lark-slides/scripts/layout_lint.py +349 -0
  274. package/dist/skills/larksuite/lark-slides/scripts/layout_lint_test.py +159 -0
  275. package/dist/skills/larksuite/lark-slides/scripts/template_tool.py +970 -0
  276. package/dist/skills/larksuite/lark-slides/scripts/template_tool_test.py +177 -0
  277. package/dist/skills/larksuite/lark-task/SKILL.md +165 -0
  278. package/dist/skills/larksuite/lark-task/references/lark-task-assign.md +38 -0
  279. package/dist/skills/larksuite/lark-task/references/lark-task-comment.md +28 -0
  280. package/dist/skills/larksuite/lark-task/references/lark-task-complete.md +27 -0
  281. package/dist/skills/larksuite/lark-task/references/lark-task-create.md +57 -0
  282. package/dist/skills/larksuite/lark-task/references/lark-task-followers.md +35 -0
  283. package/dist/skills/larksuite/lark-task/references/lark-task-get-my-tasks.md +55 -0
  284. package/dist/skills/larksuite/lark-task/references/lark-task-get-related-tasks.md +53 -0
  285. package/dist/skills/larksuite/lark-task/references/lark-task-reminder.md +36 -0
  286. package/dist/skills/larksuite/lark-task/references/lark-task-reopen.md +27 -0
  287. package/dist/skills/larksuite/lark-task/references/lark-task-search.md +41 -0
  288. package/dist/skills/larksuite/lark-task/references/lark-task-set-ancestor.md +32 -0
  289. package/dist/skills/larksuite/lark-task/references/lark-task-subscribe-event.md +86 -0
  290. package/dist/skills/larksuite/lark-task/references/lark-task-tasklist-create.md +35 -0
  291. package/dist/skills/larksuite/lark-task/references/lark-task-tasklist-members.md +36 -0
  292. package/dist/skills/larksuite/lark-task/references/lark-task-tasklist-search.md +38 -0
  293. package/dist/skills/larksuite/lark-task/references/lark-task-tasklist-task-add.md +38 -0
  294. package/dist/skills/larksuite/lark-task/references/lark-task-update.md +37 -0
  295. package/dist/skills/larksuite/lark-task/references/lark-task-upload-attachment.md +59 -0
  296. package/dist/skills/larksuite/lark-vc/SKILL.md +168 -0
  297. package/dist/skills/larksuite/lark-vc/references/lark-vc-notes.md +126 -0
  298. package/dist/skills/larksuite/lark-vc/references/lark-vc-recording.md +153 -0
  299. package/dist/skills/larksuite/lark-vc/references/lark-vc-search.md +176 -0
  300. package/dist/skills/larksuite/lark-vc-agent/SKILL.md +121 -0
  301. package/dist/skills/larksuite/lark-vc-agent/references/lark-vc-agent-meeting-events.md +247 -0
  302. package/dist/skills/larksuite/lark-vc-agent/references/lark-vc-agent-meeting-join.md +133 -0
  303. package/dist/skills/larksuite/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +111 -0
  304. package/dist/skills/larksuite/lark-whiteboard/SKILL.md +144 -0
  305. package/dist/skills/larksuite/lark-whiteboard/references/connectors.md +102 -0
  306. package/dist/skills/larksuite/lark-whiteboard/references/content.md +40 -0
  307. package/dist/skills/larksuite/lark-whiteboard/references/image.md +80 -0
  308. package/dist/skills/larksuite/lark-whiteboard/references/lark-whiteboard-query.md +49 -0
  309. package/dist/skills/larksuite/lark-whiteboard/references/lark-whiteboard-update.md +100 -0
  310. package/dist/skills/larksuite/lark-whiteboard/references/layout.md +374 -0
  311. package/dist/skills/larksuite/lark-whiteboard/references/schema.md +357 -0
  312. package/dist/skills/larksuite/lark-whiteboard/references/style.md +318 -0
  313. package/dist/skills/larksuite/lark-whiteboard/references/typography.md +73 -0
  314. package/dist/skills/larksuite/lark-whiteboard/routes/dsl.md +107 -0
  315. package/dist/skills/larksuite/lark-whiteboard/routes/mermaid.md +27 -0
  316. package/dist/skills/larksuite/lark-whiteboard/routes/svg.md +54 -0
  317. package/dist/skills/larksuite/lark-whiteboard/scenes/architecture.md +433 -0
  318. package/dist/skills/larksuite/lark-whiteboard/scenes/bar-chart.md +187 -0
  319. package/dist/skills/larksuite/lark-whiteboard/scenes/comparison.md +135 -0
  320. package/dist/skills/larksuite/lark-whiteboard/scenes/fishbone.md +238 -0
  321. package/dist/skills/larksuite/lark-whiteboard/scenes/flowchart.md +185 -0
  322. package/dist/skills/larksuite/lark-whiteboard/scenes/flywheel.md +195 -0
  323. package/dist/skills/larksuite/lark-whiteboard/scenes/funnel.md +101 -0
  324. package/dist/skills/larksuite/lark-whiteboard/scenes/line-chart.md +214 -0
  325. package/dist/skills/larksuite/lark-whiteboard/scenes/mermaid.md +130 -0
  326. package/dist/skills/larksuite/lark-whiteboard/scenes/milestone.md +139 -0
  327. package/dist/skills/larksuite/lark-whiteboard/scenes/organization.md +173 -0
  328. package/dist/skills/larksuite/lark-whiteboard/scenes/photo-showcase.md +126 -0
  329. package/dist/skills/larksuite/lark-whiteboard/scenes/pyramid.md +99 -0
  330. package/dist/skills/larksuite/lark-whiteboard/scenes/swimlane.md +371 -0
  331. package/dist/skills/larksuite/lark-whiteboard/scenes/treemap.md +216 -0
  332. package/dist/skills/larksuite/lark-wiki/SKILL.md +111 -0
  333. package/dist/skills/larksuite/lark-wiki/references/lark-wiki-delete-space.md +205 -0
  334. package/dist/skills/larksuite/lark-wiki/references/lark-wiki-move.md +183 -0
  335. package/dist/skills/larksuite/lark-wiki/references/lark-wiki-node-copy.md +72 -0
  336. package/dist/skills/larksuite/lark-wiki/references/lark-wiki-node-create.md +127 -0
  337. package/dist/skills/larksuite/lark-wiki/references/lark-wiki-node-list.md +88 -0
  338. package/dist/skills/larksuite/lark-wiki/references/lark-wiki-space-list.md +68 -0
  339. package/dist/skills/larksuite/lark-workflow-meeting-summary/SKILL.md +104 -0
  340. package/dist/skills/larksuite/lark-workflow-standup-report/SKILL.md +120 -0
  341. package/package.json +2 -1
@@ -0,0 +1,195 @@
1
+ # 增长飞轮图 (Flywheel)
2
+
3
+ > **必须写脚本生成 JSON。** 飞轮图需要极坐标计算阶段标签位置和 SVG 圆环切割,直接手写 JSON 无法正确实现同心圆环结构。请用下方脚本模板。
4
+
5
+ ## Content 约束
6
+
7
+ - 阶段 4-6 个,每阶段短标签(title + 可选 subtitle/desc)
8
+ - 中心放置飞轮主题标题
9
+
10
+ ## Layout 选型
11
+
12
+ - **脚本生成坐标**(必须):用 .cjs 脚本极坐标计算阶段标签位置、SVG 圆环切割,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.11` 渲染
13
+
14
+ ## Layout 规则
15
+
16
+ - 同心圆遮挡法构建圆环:大圆(底色)+ 小圆(白色遮罩)+ 中心文字
17
+ - nodes 数组顺序决定 z-index:先大圆 -> 小圆 -> 中心文字 -> SVG 切割 -> 外围卡片
18
+ - 阶段标签均匀分布在圆环外围,每个标签到圆心距离相等
19
+ - SVG polyline 切割圆环形成分段 + 箭头方向感
20
+ - 阶段数多时需动态放大半径、缩小箭头折角、收紧文字容器
21
+
22
+ ### 同心圆遮挡法详解
23
+
24
+ 画一个大圆(作为飞轮的底层颜色),然后在它正中心画一个小圆(填充为白色 `#FFFFFF`)。大圆和小圆都设置 `borderWidth: 0`,通过叠加遮挡形成圆环。
25
+
26
+ nodes 数组中的图层顺序(必须严格遵守):
27
+
28
+ 1. **底层大圆** (`type: 'ellipse'`, 填色, `borderWidth: 0`)
29
+ 2. **遮罩小圆** (`type: 'ellipse'`, 白色填色, `borderWidth: 0`)
30
+ 3. **中心文字** — 必须在两个圆之后添加,否则被白色小圆盖住
31
+ 4. **SVG 切割箭头** — 覆盖在圆环上,用白色粗线 polyline 切出分段
32
+ 5. **外围阶段卡片** — 极坐标计算位置
33
+
34
+ ### SVG 箭头线切割分段
35
+
36
+ 通过插入一个铺满大圆区域的 `svg` 节点,利用极坐标计算每个分段交界处的坐标,使用 `<polyline>` 画与背景色相同的粗线条(白色、20px+ 宽度)。线条从内圆边缘穿过大圆边缘,并在穿过时产生一定角度的偏转(`da` 参数),在视觉上"切断"圆环并形成箭头方向感。
37
+
38
+ ### 外围文字环绕布局
39
+
40
+ - 利用极坐标 `x = cx + R * cos(θ)` 计算每个分段的中心角度
41
+ - 在计算出的坐标点放置 `frame` 容器(`layout: 'vertical'`)
42
+ - 外围文字容器内部的 `text` 节点不能用 `width: 'fill-container'`,必须指定固定 width 配合 `height: 'fit-content'`
43
+
44
+ ### 动态缩放优化(阶段数 >= 8 时必须)
45
+
46
+ 当阶段数量较多(8 个、12 个或 16 个以上)时,必须动态调整:
47
+
48
+ - **放大画布与圆环半径**:节点越多,需要越长的圆周容纳外围文字。适当调大 `rOut` 和 `rIn`(如 16 阶段时 `rOut` 可设为 400+),同步放大 `cx`/`cy` 避免超出边界
49
+ - **缩小箭头切割角度**:段数增多时每段夹角变小,保持默认折角会导致缝隙过大。应减小 `da`(如 `da = 4`)
50
+ - **收紧外围文字容器**:缩窄 `boxWidth`,减小文字字号,确保相邻文本框不互相覆盖
51
+
52
+ ## 骨架示例
53
+
54
+ 此场景必须用 .cjs 脚本生成。Agent 使用时只需修改 `stages` 数组和 `centerTitle`/`centerSubtitle`,其余坐标全自动计算。
55
+
56
+ ```javascript
57
+ const { writeFileSync } = require('fs');
58
+
59
+ // ══════════════════════════════════════════════════════════════
60
+ // 只需修改这里 -- 填入用户要求的阶段数据和中心标题
61
+ // ══════════════════════════════════════════════════════════════
62
+
63
+ const centerTitle = '{{CENTER_TITLE}}';
64
+ const centerSubtitle = '{{CENTER_SUBTITLE}}'; // 可选,不需要就留空字符串
65
+
66
+ const stages = [
67
+ { title: '{{STAGE_1}}', subtitle: '{{SUB_1}}', desc: '{{DESC_1}}' },
68
+ { title: '{{STAGE_2}}', subtitle: '{{SUB_2}}', desc: '{{DESC_2}}' },
69
+ { title: '{{STAGE_3}}', subtitle: '{{SUB_3}}', desc: '{{DESC_3}}' },
70
+ { title: '{{STAGE_4}}', subtitle: '{{SUB_4}}', desc: '{{DESC_4}}' },
71
+ ];
72
+
73
+ // ══════════════════════════════════════════════════════════════
74
+ // 以下是自动计算逻辑,不需要修改
75
+ // ══════════════════════════════════════════════════════════════
76
+
77
+ // --- 布局参数 ---
78
+ const numSegments = stages.length;
79
+ const cx = 600, cy = 450; // 画布中心
80
+ const rOut = 240, rIn = 160; // 内外圆半径
81
+ const textDist = rOut + 40; // 文字离圆心距离
82
+ const boxWidth = 220; // 外围文字卡片宽度
83
+ const boxHeight = 80; // 估算高度(用于偏移计算)
84
+ const da = 8; // 箭头折角
85
+
86
+ const nodes = [];
87
+
88
+ // --- 图层 1:底层大圆(圆环底色) ---
89
+ nodes.push({
90
+ type: 'ellipse',
91
+ x: cx - rOut, y: cy - rOut,
92
+ width: rOut * 2, height: rOut * 2,
93
+ borderWidth: 0,
94
+ });
95
+
96
+ // --- 图层 2:遮罩小圆(白色) ---
97
+ nodes.push({
98
+ type: 'ellipse',
99
+ x: cx - rIn, y: cy - rIn,
100
+ width: rIn * 2, height: rIn * 2,
101
+ borderWidth: 0,
102
+ });
103
+
104
+ // --- 图层 3:中心文字(必须在两个圆之后) ---
105
+ nodes.push({
106
+ type: 'text',
107
+ x: cx - rIn, y: cy - (centerSubtitle ? 30 : 20),
108
+ width: rIn * 2, height: 'fit-content',
109
+ text: [{ content: centerTitle, bold: true, fontSize: 32 }],
110
+ textAlign: 'center',
111
+ });
112
+ if (centerSubtitle) {
113
+ nodes.push({
114
+ type: 'text',
115
+ x: cx - rIn, y: cy + 20,
116
+ width: rIn * 2, height: 'fit-content',
117
+ text: [{ content: centerSubtitle, fontSize: 18 }],
118
+ textAlign: 'center',
119
+ });
120
+ }
121
+
122
+ // --- 图层 4:SVG 切割箭头 ---
123
+ let svg = `<svg viewBox="0 0 ${rOut * 2} ${rOut * 2}" xmlns="http://www.w3.org/2000/svg">`;
124
+ for (let i = 0; i < numSegments; i++) {
125
+ const a = -90 + i * (360 / numSegments);
126
+ const rad = (a * Math.PI) / 180;
127
+ const radMid = ((a + da) * Math.PI) / 180;
128
+ const R1 = rIn - 5, R2 = rOut + 5, Rm = (rIn + rOut) / 2;
129
+ const x1 = rOut + R1 * Math.cos(rad), y1 = rOut + R1 * Math.sin(rad);
130
+ const x2 = rOut + Rm * Math.cos(radMid), y2 = rOut + Rm * Math.sin(radMid);
131
+ const x3 = rOut + R2 * Math.cos(rad), y3 = rOut + R2 * Math.sin(rad);
132
+ svg += `<polyline points="${x1},${y1} ${x2},${y2} ${x3},${y3}" stroke="#FFFFFF" stroke-width="20" fill="none" stroke-linejoin="round" stroke-linecap="round" />`;
133
+ }
134
+ svg += `</svg>`;
135
+ nodes.push({
136
+ type: 'svg',
137
+ x: cx - rOut, y: cy - rOut,
138
+ width: rOut * 2, height: rOut * 2,
139
+ svg: { code: svg },
140
+ });
141
+
142
+ // --- 图层 5:外围阶段卡片(极坐标计算位置) ---
143
+ for (let i = 0; i < numSegments; i++) {
144
+ const stage = stages[i];
145
+ const a = -90 + (360 / numSegments) / 2 + i * (360 / numSegments);
146
+ const rad = (a * Math.PI) / 180;
147
+ const tx = cx + textDist * Math.cos(rad);
148
+ const ty = cy + textDist * Math.sin(rad);
149
+
150
+ // 动态偏移:根据角度将文本框向外推
151
+ let offsetX = 0, offsetY = 0;
152
+ if (Math.cos(rad) > 0.1) offsetX = 0;
153
+ else if (Math.cos(rad) < -0.1) offsetX = -boxWidth;
154
+ else offsetX = -boxWidth / 2;
155
+ if (Math.sin(rad) > 0.1) offsetY = 0;
156
+ else if (Math.sin(rad) < -0.1) offsetY = -boxHeight;
157
+ else offsetY = -boxHeight / 2;
158
+
159
+ const textW = boxWidth - 24; // 卡片 padding 12 * 2
160
+ nodes.push({
161
+ type: 'frame',
162
+ x: tx + offsetX, y: ty + offsetY,
163
+ width: boxWidth, height: 'fit-content',
164
+ layout: 'vertical', gap: 8, padding: 12,
165
+ alignItems: 'start',
166
+ borderWidth: 2, borderRadius: 8,
167
+ children: [
168
+ { type: 'text', width: textW, height: 'fit-content',
169
+ text: [{ content: stage.title, bold: true, fontSize: 18 }], textAlign: 'left' },
170
+ { type: 'text', width: textW, height: 'fit-content',
171
+ text: [{ content: stage.subtitle, fontSize: 14 }], textAlign: 'left' },
172
+ { type: 'text', width: textW, height: 'fit-content',
173
+ text: [{ content: stage.desc, fontSize: 12 }], textAlign: 'left' },
174
+ ],
175
+ });
176
+ }
177
+
178
+ // --- 图表标题 ---
179
+ nodes.push({
180
+ type: 'text',
181
+ x: cx - rOut - 100, y: 30,
182
+ width: (rOut + 100) * 2, height: 'fit-content',
183
+ text: [{ content: centerTitle, bold: true, fontSize: 24 }],
184
+ textAlign: 'center',
185
+ });
186
+
187
+ writeFileSync('diagram.json', JSON.stringify({ version: 2, nodes }, null, 2));
188
+ ```
189
+
190
+ ## 陷阱
191
+
192
+ - **中心文字被 SVG 遮挡**:中心文字节点必须在大圆和小圆之后、SVG 之前添加,确保 z-index 正确
193
+ - **缺方向指示箭头**:SVG polyline 切割线必须带角度偏转(da 参数),形成顺时针/逆时针箭头感
194
+ - **标签位置不对称**:外围卡片必须用极坐标公式 `x = cx + R * cos(θ)` 均匀分布,不可手动摆放
195
+ - **外围文字容器死锁**:`layout: 'vertical'` 的 frame 内部 text 节点不能用 `width: 'fill-container'`,必须指定固定 width
@@ -0,0 +1,101 @@
1
+ # 漏斗图 (Funnel)
2
+
3
+ ## Content 约束
4
+
5
+ - 阶段 3-6 个
6
+ - 每阶段一行标签 + 数值(如 "{{STAGE_NAME}} ({{PERCENTAGE}})")
7
+ - 文案尽量简短;长文案外置到漏斗旁边,图形内仅保留核心短文案
8
+
9
+ ## Layout 选型
10
+
11
+ 绝对定位。用 `trapezoid` / `triangle` 节点从宽到窄排列,height 用 `fit-content`。
12
+
13
+ ## Layout 规则
14
+
15
+ - 外层 frame 使用 `layout: "vertical"` + `alignItems: "center"` 居中对齐
16
+ - 所有层必须使用脚本计算宽度,以保证**绝对完美的等斜率(直线边缘)**。切勿手写拍脑袋的宽度!
17
+ - 每层间 gap 0-8px(紧密堆叠视觉效果好),从上到下宽度递减。注意 children 数组第一个元素是最顶层(最宽)
18
+ - 所有图形节点必须设置 `"vFlip": false`(引擎默认朝上翻转,漏斗需要朝下)
19
+ - 注意:因为 `vFlip: false` 且是倒金字塔结构,所以 `topWidth` 实际控制的是漏斗各层的**底部较窄边缘**。底层可用 `triangle`(`topWidth: 0`)收窄为尖角,或继续用 `trapezoid` 保持平底。
20
+
21
+ > **严格的斜率算法(必须在脚本中实现)**:
22
+ > 要让漏斗的侧边形成一条完美的直线,**宽度的递减必须与高度和 gap 严格挂钩**。
23
+ > 1. 设定整体宽度收缩系数 `angleK`(建议值 1.5 到 2.5,表示高度每增加1px,总宽度减少的像素数)。
24
+ > 2. 因为从上往下变窄,所以公式是减法:`bottomWidth(即 topWidth 属性) = currentWidth - (height * angleK)`
25
+ > 3. 下一层的顶宽公式(必须考虑 gap 带来的额外内收):`nextLayerWidth = bottomWidth - (gap * angleK)`
26
+
27
+ ## 脚本构建模板
28
+
29
+ 此场景必须用 .cjs 脚本生成。
30
+
31
+ ```javascript
32
+ const fs = require('fs');
33
+
34
+ // 1. 配置基础参数
35
+ const GAP = 4;
36
+ const ANGLE_K = 2; // 斜率系数:高度每下降1px,宽度减少2px
37
+ const LAYER_HEIGHT = 80;
38
+
39
+ const data = [
40
+ { text: "展现 (100%)", fillColor: "#F0F4FC", textColor: "#1F2329" },
41
+ { text: "点击 (50%)", fillColor: "#EAE2FE", textColor: "#1F2329" },
42
+ { text: "加购 (20%)", fillColor: "#DFF5E5", textColor: "#1F2329" },
43
+ { text: "成交 (5%)", fillColor: "#1F2329", textColor: "#FFFFFF" }
44
+ ];
45
+
46
+ // 计算第一层的初始宽度 (保证最底层缩到0或平底)
47
+ // 倒推公式:startWidth = 最后一层底宽 + 所有高度消耗 + 所有gap消耗
48
+ const totalHeightLoss = data.length * LAYER_HEIGHT * ANGLE_K;
49
+ const totalGapLoss = (data.length - 1) * GAP * ANGLE_K;
50
+ // 设定最底层为一个尖角 (底宽为0)
51
+ let currentWidth = 0 + totalHeightLoss + totalGapLoss;
52
+
53
+ const children = data.map((layer, index) => {
54
+ // 2. 根据公式计算当前层的底宽 (对应节点的 topWidth 属性)
55
+ const currentBottomWidth = currentWidth - (LAYER_HEIGHT * ANGLE_K);
56
+
57
+ const node = {
58
+ type: currentBottomWidth <= 0 ? "triangle" : "trapezoid",
59
+ width: currentWidth,
60
+ // 注意:漏斗中 topWidth 表示的是下方的窄边!如果 <=0 就用 triangle
61
+ topWidth: Math.max(0, currentBottomWidth),
62
+ height: LAYER_HEIGHT,
63
+ vFlip: false, // 必须为 false
64
+ text: layer.text,
65
+ textAlign: "center",
66
+ fillColor: layer.fillColor,
67
+ borderColor: layer.fillColor,
68
+ borderWidth: 2,
69
+ fontSize: 16,
70
+ textColor: layer.textColor
71
+ };
72
+
73
+ // 3. 关键:计算下一层的顶宽。必须减去 gap 的向内收缩量!
74
+ currentWidth = currentBottomWidth - (GAP * ANGLE_K);
75
+
76
+ return node;
77
+ });
78
+
79
+ const output = {
80
+ version: 2,
81
+ nodes: [
82
+ {
83
+ type: "frame",
84
+ layout: "vertical",
85
+ alignItems: "center",
86
+ gap: GAP,
87
+ padding: 40,
88
+ children: children
89
+ }
90
+ ]
91
+ };
92
+
93
+ fs.writeFileSync('diagram.json', JSON.stringify(output, null, 2));
94
+ ```
95
+
96
+ ## 陷阱
97
+
98
+ - **不要手写随意递减的宽度**:这会导致漏斗侧边变成折线,不直。必须严格使用上述 `angleK` 公式计算。
99
+ - **忘记计算 gap 带来的收缩**:如果下一层的 `width` 只是简单等于上一层的 `topWidth`,在有 gap 的情况下,衔接处会产生锯齿折角。必须减去 `gap * angleK`。
100
+ - **vFlip 未设置**:忘记 `"vFlip": false` 会导致梯形朝上翻转,漏斗形状错误
101
+ - **文字溢出底层**:底层越窄空间越小,短文案用 `\n` 换行,长文案外置到漏斗旁边(外层套 `layout: "horizontal"` 的 frame,漏斗一侧,说明文字另一侧)
@@ -0,0 +1,214 @@
1
+ # 折线图
2
+
3
+ ## Content 约束
4
+
5
+ - 数据点 ≤ 15
6
+ - Y 轴必须有单位标注(如 "万元"、"%")
7
+ - 折线系列 ≤ 3(超过太密看不清)
8
+
9
+ ## Layout 选型
10
+
11
+ - **脚本生成坐标**(推荐):用 .cjs 脚本计算数据点坐标和折线路径,脚本输出 JSON 文件后调用 `npx -y @larksuite/whiteboard-cli@^0.2.11` 渲染
12
+
13
+ ## Layout 规则
14
+
15
+ - 白板坐标系 Y 轴向下为正,图表"底部原点"拥有最大 Y 值,数据点向上分布时 Y 减小
16
+ - 数据点用小 ellipse 标记(width: 12, height: 12)
17
+ - 折线用 connector straight 连接相邻数据点,endArrow: "none"
18
+ - 坐标轴用 connector 直线,末端带箭头(endArrow: "arrow")
19
+ - 格线用虚线 connector(lineStyle: "dashed",endArrow: "none")
20
+ - 刻度线短横线 connector(endArrow: "none")
21
+ - 数值标注放在数据点上方
22
+ - 类别标签放在 X 轴下方,居中对齐数据点
23
+
24
+ ## 坐标与尺寸计算指南
25
+
26
+ 白板坐标系中,**X 轴向右为正,Y 轴向下为正**。图表的"底部原点"拥有最大的 Y 坐标,数据点向上分布时 Y 坐标减小。
27
+
28
+ 1. **确定图表区域**:
29
+ - 设定图表区高度 `chartHeight` 和宽度 `chartWidth`
30
+ - 设定左下角坐标原点 `(originX, originY)`
31
+ - 示例:originX=80, originY=480, chartWidth=900, chartHeight=400
32
+ 2. **Y 轴范围自适应**:
33
+ - 找出数据最小值 `dataMin` 和最大值 `dataMax`
34
+ - yMin 不一定为 0:若数据集中在 80-120,Y 轴从 0 开始会让折线挤在顶部一小段区域
35
+ - 推荐:yMin = 向下取整到合适刻度(如 dataMin=82 → yMin=80),yMax = 向上取整(如 dataMax=118 → yMax=120)
36
+ - 当数据波动极小时(如 98-102),适当扩大范围避免折线过于平坦
37
+ 3. **数据点坐标计算**:
38
+ - X 坐标:在可用宽度内均匀分布。`pointX = originX + (i / (pointCount - 1)) * chartWidth`
39
+ - Y 坐标:按比例映射到高度。`pointY = originY - ((value - yMin) / (yMax - yMin)) * chartHeight`
40
+ - ellipse 定位:`ellipseX = pointX - 6, ellipseY = pointY - 6`(圆心对齐数据点)
41
+ 4. **连线逻辑**:
42
+ - 用 connector straight 将相邻数据点连接
43
+ - `from` = 点[i] 的 (pointX, pointY),`to` = 点[i+1] 的 (pointX, pointY)
44
+ - startArrow: "none", endArrow: "none"
45
+ 5. **Y 轴刻度计算**:
46
+ - 将 yMin 到 yMax 等分为 4-5 个刻度
47
+ - 每个刻度的 Y 坐标:`gridY = originY - ((tickValue - yMin) / (yMax - yMin)) * chartHeight`
48
+
49
+ ## 完整 JSON 示例
50
+
51
+ 以下示例:4 个数据点,数据 [120, 200, 150, 180],yMin=100, yMax=220,originX=80, originY=480, chartWidth=900, chartHeight=400。
52
+
53
+ - 刻度:100, 130, 160, 190, 220(每 30 一格)
54
+ - 点0 (120): pointX=80, pointY=480-((120-100)/120)*400=480-66.7=413
55
+ - 点1 (200): pointX=80+300=380, pointY=480-((200-100)/120)*400=480-333.3=147
56
+ - 点2 (150): pointX=80+600=680, pointY=480-((150-100)/120)*400=480-166.7=313
57
+ - 点3 (180): pointX=80+900=980, pointY=480-((180-100)/120)*400=480-266.7=213
58
+
59
+ ```json
60
+ {
61
+ "version": 2,
62
+ "nodes": [
63
+ { "type": "rect", "x": 0, "y": 0, "width": 1100, "height": 580 },
64
+
65
+ { "type": "text", "x": 80, "y": 10, "width": 900, "height": "fit-content",
66
+ "text": "季度销售额趋势", "fontSize": 24, "textAlign": "center" },
67
+
68
+ { "type": "text", "x": 10, "y": 40, "width": 60, "height": "fit-content",
69
+ "text": "万元", "fontSize": 12, "textAlign": "center" },
70
+
71
+ { "type": "connector", "connector": {
72
+ "from": { "x": 80, "y": 480 }, "to": { "x": 80, "y": 55 },
73
+ "lineShape": "straight", "lineWidth": 2, "endArrow": "arrow"
74
+ }},
75
+ { "type": "connector", "connector": {
76
+ "from": { "x": 80, "y": 480 }, "to": { "x": 1000, "y": 480 },
77
+ "lineShape": "straight", "lineWidth": 2, "endArrow": "arrow"
78
+ }},
79
+
80
+ { "type": "connector", "connector": {
81
+ "from": { "x": 70, "y": 480 }, "to": { "x": 80, "y": 480 },
82
+ "lineShape": "straight", "lineWidth": 1,
83
+ "startArrow": "none", "endArrow": "none"
84
+ }},
85
+ { "type": "text", "x": 20, "y": 470, "width": 50, "height": 20,
86
+ "text": "100", "fontSize": 12, "textAlign": "right" },
87
+
88
+ { "type": "connector", "connector": {
89
+ "from": { "x": 70, "y": 380 }, "to": { "x": 80, "y": 380 },
90
+ "lineShape": "straight", "lineWidth": 1,
91
+ "startArrow": "none", "endArrow": "none"
92
+ }},
93
+ { "type": "text", "x": 20, "y": 370, "width": 50, "height": 20,
94
+ "text": "130", "fontSize": 12, "textAlign": "right" },
95
+ { "type": "connector", "connector": {
96
+ "from": { "x": 80, "y": 380 }, "to": { "x": 980, "y": 380 },
97
+ "lineShape": "straight", "lineWidth": 1, "lineStyle": "dashed",
98
+ "startArrow": "none", "endArrow": "none"
99
+ }},
100
+
101
+ { "type": "connector", "connector": {
102
+ "from": { "x": 70, "y": 280 }, "to": { "x": 80, "y": 280 },
103
+ "lineShape": "straight", "lineWidth": 1,
104
+ "startArrow": "none", "endArrow": "none"
105
+ }},
106
+ { "type": "text", "x": 20, "y": 270, "width": 50, "height": 20,
107
+ "text": "160", "fontSize": 12, "textAlign": "right" },
108
+ { "type": "connector", "connector": {
109
+ "from": { "x": 80, "y": 280 }, "to": { "x": 980, "y": 280 },
110
+ "lineShape": "straight", "lineWidth": 1, "lineStyle": "dashed",
111
+ "startArrow": "none", "endArrow": "none"
112
+ }},
113
+
114
+ { "type": "connector", "connector": {
115
+ "from": { "x": 70, "y": 180 }, "to": { "x": 80, "y": 180 },
116
+ "lineShape": "straight", "lineWidth": 1,
117
+ "startArrow": "none", "endArrow": "none"
118
+ }},
119
+ { "type": "text", "x": 20, "y": 170, "width": 50, "height": 20,
120
+ "text": "190", "fontSize": 12, "textAlign": "right" },
121
+ { "type": "connector", "connector": {
122
+ "from": { "x": 80, "y": 180 }, "to": { "x": 980, "y": 180 },
123
+ "lineShape": "straight", "lineWidth": 1, "lineStyle": "dashed",
124
+ "startArrow": "none", "endArrow": "none"
125
+ }},
126
+
127
+ { "type": "connector", "connector": {
128
+ "from": { "x": 70, "y": 80 }, "to": { "x": 80, "y": 80 },
129
+ "lineShape": "straight", "lineWidth": 1,
130
+ "startArrow": "none", "endArrow": "none"
131
+ }},
132
+ { "type": "text", "x": 20, "y": 70, "width": 50, "height": 20,
133
+ "text": "220", "fontSize": 12, "textAlign": "right" },
134
+ { "type": "connector", "connector": {
135
+ "from": { "x": 80, "y": 80 }, "to": { "x": 980, "y": 80 },
136
+ "lineShape": "straight", "lineWidth": 1, "lineStyle": "dashed",
137
+ "startArrow": "none", "endArrow": "none"
138
+ }},
139
+
140
+ { "type": "connector", "connector": {
141
+ "from": { "x": 80, "y": 413 }, "to": { "x": 380, "y": 147 },
142
+ "lineShape": "straight", "lineWidth": 3,
143
+ "startArrow": "none", "endArrow": "none"
144
+ }},
145
+ { "type": "connector", "connector": {
146
+ "from": { "x": 380, "y": 147 }, "to": { "x": 680, "y": 313 },
147
+ "lineShape": "straight", "lineWidth": 3,
148
+ "startArrow": "none", "endArrow": "none"
149
+ }},
150
+ { "type": "connector", "connector": {
151
+ "from": { "x": 680, "y": 313 }, "to": { "x": 980, "y": 213 },
152
+ "lineShape": "straight", "lineWidth": 3,
153
+ "startArrow": "none", "endArrow": "none"
154
+ }},
155
+
156
+ { "type": "ellipse", "id": "pt-0", "x": 74, "y": 407,
157
+ "width": 12, "height": 12 },
158
+ { "type": "text", "x": 55, "y": 383,
159
+ "width": 50, "height": 20,
160
+ "text": "120", "fontSize": 14, "textAlign": "center" },
161
+ { "type": "text", "x": 50, "y": 490,
162
+ "width": 60, "height": 30,
163
+ "text": "Q1", "fontSize": 14, "textAlign": "center" },
164
+
165
+ { "type": "ellipse", "id": "pt-1", "x": 374, "y": 141,
166
+ "width": 12, "height": 12 },
167
+ { "type": "text", "x": 355, "y": 117,
168
+ "width": 50, "height": 20,
169
+ "text": "200", "fontSize": 14, "textAlign": "center" },
170
+ { "type": "text", "x": 350, "y": 490,
171
+ "width": 60, "height": 30,
172
+ "text": "Q2", "fontSize": 14, "textAlign": "center" },
173
+
174
+ { "type": "ellipse", "id": "pt-2", "x": 674, "y": 307,
175
+ "width": 12, "height": 12 },
176
+ { "type": "text", "x": 655, "y": 283,
177
+ "width": 50, "height": 20,
178
+ "text": "150", "fontSize": 14, "textAlign": "center" },
179
+ { "type": "text", "x": 650, "y": 490,
180
+ "width": 60, "height": 30,
181
+ "text": "Q3", "fontSize": 14, "textAlign": "center" },
182
+
183
+ { "type": "ellipse", "id": "pt-3", "x": 974, "y": 207,
184
+ "width": 12, "height": 12 },
185
+ { "type": "text", "x": 955, "y": 183,
186
+ "width": 50, "height": 20,
187
+ "text": "180", "fontSize": 14, "textAlign": "center" },
188
+ { "type": "text", "x": 950, "y": 490,
189
+ "width": 60, "height": 30,
190
+ "text": "Q4", "fontSize": 14, "textAlign": "center" }
191
+ ]
192
+ }
193
+ ```
194
+
195
+ 坐标推导验证:
196
+ - 点0 (Q1, 120): pointX = 80 + (0/3)*900 = 80, pointY = 480 - ((120-100)/120)*400 = 413
197
+ - 点1 (Q2, 200): pointX = 80 + (1/3)*900 = 380, pointY = 480 - ((200-100)/120)*400 = 147
198
+ - 点2 (Q3, 150): pointX = 80 + (2/3)*900 = 680, pointY = 480 - ((150-100)/120)*400 = 313
199
+ - 点3 (Q4, 180): pointX = 80 + (3/3)*900 = 980, pointY = 480 - ((180-100)/120)*400 = 213
200
+ - ellipse 定位:ellipseX = pointX - 6, ellipseY = pointY - 6
201
+
202
+ ## 陷阱
203
+
204
+ - Y 轴范围不合理:若数据集中在 80-120,Y 轴从 0 到 120 会让折线挤在顶部一小段区域,应设 yMin 接近数据最小值
205
+ - 缺 Y 轴单位标注,读者无法理解数值含义
206
+ - 数据点太密时标注互相遮挡(超过 10 个点考虑隔一个标注一次)
207
+ - 折线段忘记设 endArrow: "none",默认带箭头
208
+ - 多系列时折线颜色相近难以区分,应使用对比度高的不同色系
209
+
210
+ 此场景必须用 .cjs 脚本生成。Agent 使用时只需修改 `data` 数组,其余坐标与折线生成全自动计算。
211
+
212
+ ```javascript
213
+ const { writeFileSync } = require('fs');
214
+ ```
@@ -0,0 +1,130 @@
1
+ # Mermaid 图表路径
2
+
3
+ 本场景与 DSL 路径互斥。
4
+
5
+ | | DSL 路径 | Mermaid 路径 |
6
+ |---|---|---|
7
+ | 中间格式 | JSON(WBDocument) | Mermaid 文本(.mmd 文件) |
8
+ | 布局控制 | 精确控制(x/y 坐标、Flex) | 由 parser-kit 自动布局 |
9
+ | 视觉定制 | 完全可控(颜色、字号、圆角等) | 有限(Mermaid 语法) |
10
+ | 参考模块 | references/ + 对应 scene | 仅本文件 |
11
+
12
+ ## 适用条件
13
+
14
+ 满足以下任一条件时使用:
15
+ - 用户明确要求 "用 Mermaid" 或 "输出 Mermaid"
16
+ - 用户直接粘贴了 Mermaid 语法文本
17
+ - 图表类型为思维导图、时序图、类图、饼图(自动路由)
18
+
19
+ ## 思维导图 (Mindmap)
20
+
21
+ ```mermaid
22
+ mindmap
23
+ root((主题))
24
+ 分支A
25
+ 子项A1
26
+ 子项A2
27
+ 分支B
28
+ 子项B1
29
+ 分支C
30
+ ```
31
+
32
+ ## 时序图 (Sequence Diagram)
33
+
34
+ ```mermaid
35
+ sequenceDiagram
36
+ participant A as 浏览器
37
+ participant B as 服务器
38
+ participant C as 数据库
39
+ A->>B: 请求数据
40
+ B->>C: 查询
41
+ C-->>B: 返回结果
42
+ B-->>A: 响应数据
43
+ ```
44
+
45
+ 消息类型:
46
+ - `->>` 实线箭头(同步请求)
47
+ - `-->>` 虚线箭头(响应/异步)
48
+ - `-x` 带 x 箭头(失败)
49
+
50
+ ## 类图 (Class Diagram)
51
+
52
+ ```mermaid
53
+ classDiagram
54
+ class Animal {
55
+ +String name
56
+ +int age
57
+ +makeSound()
58
+ }
59
+ class Dog {
60
+ +fetch()
61
+ }
62
+ Animal <|-- Dog
63
+ ```
64
+
65
+ ## 饼图 (Pie Chart)
66
+
67
+ ```mermaid
68
+ pie title 分布
69
+ "类别A" : 40
70
+ "类别B" : 30
71
+ "类别C" : 20
72
+ "类别D" : 10
73
+ ```
74
+
75
+ ## 流程图 (Flowchart)
76
+
77
+ > [!WARNING]
78
+ > **流程图不推荐使用 Mermaid 路径!**
79
+ > 带复杂分支、复合节点、高保真卡片样式的流程图应优先走 **DSL 路径**(参见 `scenes/flowchart.md`)。只有用户明确给出 Mermaid 代码,或场景本身就是极简文字流程时,才走此路径。
80
+
81
+ 适用于:极简的文字节点判断业务流。
82
+
83
+ ```mermaid
84
+ flowchart TD
85
+ A([开始]) --> B{条件判断}
86
+ B -->|是| C[处理步骤]
87
+ B -->|否| D[另一步骤]
88
+ C --> E([结束])
89
+ D --> E
90
+ ```
91
+
92
+ ### 约束与规范
93
+
94
+ - **节点文字 ≤ 8 字**(超过必须缩写,必要时加图例说明)
95
+ - 判断节点(菱形)只写条件关键词,不写长描述
96
+ - 步骤数 ≤ 12(超过需合并步骤或拆分为子流程)
97
+ - 遵循标准流程图符号:开始/结束用体育场形状或圆形 `A([开始])`,判断用菱形 `B{判断}`,步骤用矩形 `C[步骤]`
98
+
99
+ ### 语法参考
100
+
101
+ 方向:`TD`(上到下)、`LR`(左到右)、`BT`(下到上)、`RL`(右到左)
102
+
103
+ 节点形状:`A[矩形]`、`A(圆角)`、`A{菱形}`、`A((圆形))`、`A([体育场])`、`A[[子程序]]`
104
+
105
+ 连线:`-->`(实线)、`-.->`(虚线)、`==>`(粗线)、`-->|标签|`(带标签)
106
+
107
+ ## State Diagram
108
+
109
+ ```mermaid
110
+ stateDiagram-v2
111
+ [*] --> Idle
112
+ Idle --> Processing : 收到请求
113
+ Processing --> Success : 处理成功
114
+ Processing --> Failed : 处理失败
115
+ Success --> [*]
116
+ Failed --> Idle : 重试
117
+ ```
118
+
119
+ ## 其他支持的图表类型
120
+
121
+ - **甘特图**:`gantt`
122
+ - **ER 图**:`erDiagram`
123
+ - **Git 分支图**:`gitGraph`
124
+
125
+ ## 注意事项
126
+
127
+ - 输出纯 Mermaid 文本,不是 JSON,不要混用 DSL
128
+ - 节点文字含特殊字符时用双引号包裹:`A["包含(括号)的文字"]`
129
+ - `subgraph` 用于逻辑分组
130
+ - Mermaid 的流程图样式较基础,也无法在节点内部嵌套复杂排版;复杂流程优先走 DSL(见 `scenes/flowchart.md`),极简文字流程或用户显式给 Mermaid 代码时再使用 Mermaid。