@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,935 @@
1
+ # Workflow 数据结构参考
2
+
3
+ 本文档定义 Workflow 的完整数据结构,适用于:
4
+ - **查询场景**:理解 `+workflow-get` 返回的 `steps` 结构
5
+ - **创建/修改场景**:构造 `+workflow-create` / `+workflow-update` 的 `--json` body
6
+ > 💡 **本文档是纯字段参考**。如需**创建/修改**工作流的完整示例,请阅读 [workflow-guide.md](lark-base-workflow-guide.md)。
7
+ ---
8
+ ## 📖 快速导航
9
+
10
+ 根据你的需求跳转到对应章节:
11
+
12
+ | 需求 | 章节 |
13
+ |------|------|
14
+ | 了解 Step 基础结构 | [WorkflowStep 基础结构](#workflowstep-基础结构) |
15
+ | 查询 Trigger 类型及 data 字段 | [Trigger data](#trigger-data-详细结构) |
16
+ | 查询 Action 类型及 data 字段 | [Action data](#action-data-详细结构) |
17
+ | 查询 Branch/Loop 结构 | [Branch data](#branch-data-详细结构) / [System data](#system-data-详细结构) |
18
+ | 查询 ValueInfo/Condition 等公共类型 | [公共类型](#公共类型) |
19
+
20
+ ---
21
+
22
+ ## WorkflowStep 基础结构
23
+
24
+ 每个步骤(Trigger / Action / Branch / System)共享以下字段:
25
+
26
+ ```json
27
+ {
28
+ "id": "step_xxx",
29
+ "type": "AddRecordTrigger",
30
+ "title": "监控新订单",
31
+ "next": "step_yyy",
32
+ "data": {}
33
+ }
34
+ ```
35
+
36
+ | 字段 | 类型 | 必填 | 说明 |
37
+ |------|------|------|------|
38
+ | `id` | string | 是 | 步骤唯一 ID(用户自定义,被 `next` 和 `children.links[].to` 引用) |
39
+ | `type` | string | 是 | 步骤类型,见下方枚举 |
40
+ | `title` | string | 否 | 步骤标题 |
41
+ | `children` | StepChildren | 否 | 子关系边,承担所有分支/循环 |
42
+ | `next` | string | null | 否 | 线性后继节点 ID;`null` 表示流程结束 |
43
+ | `data` | object | 是 | 步骤详细配置,按 `type` 区分,见后续各节 |
44
+
45
+ > **总原则**:连线写 `children`,扩展标识写 `meta`,输入参数写 `data`。
46
+
47
+ ---
48
+
49
+ ## StepChildren 与 ChildLink
50
+
51
+ ### StepChildren
52
+
53
+ ```json
54
+ {
55
+ "links": [ /* ChildLink[] */ ]
56
+ }
57
+ ```
58
+
59
+ | 字段 | 类型 | 说明 |
60
+ |------|------|------|
61
+ | `links` | ChildLink[] | 子关系边列表;无子关系时为空数组 `[]` |
62
+
63
+ ### ChildLink
64
+
65
+ 每条关系边描述从当前节点到目标节点的有向连线:
66
+
67
+ ```json
68
+ { "kind": "if_true", "to": "step_4", "label": "branch_1", "desc": "金额大于1000" }
69
+ ```
70
+
71
+ | 字段 | 类型 | 必填 | 说明 |
72
+ |------|------|------|------|
73
+ | `kind` | string | 是 | 关系类型:`if_true` / `if_false` / `case` / `loop_start` / `slot` |
74
+ | `to` | string | 是 | 目标节点 ID |
75
+ | `label` | string | 否 | 可选标签(如 `branch_1`、`tool`、`llm`、`memory`) |
76
+ | `desc` | string | 否 | 可选语义说明(如"销售部门"、"积极情绪") |
77
+
78
+ `kind` 使用场景:
79
+
80
+ | kind | 使用节点 | 说明 |
81
+ |------|---------|------|
82
+ | `if_true` | IfElseBranch | 条件为真时跳转 |
83
+ | `if_false` | IfElseBranch | 条件为假时跳转 |
84
+ | `case` | SwitchBranch / AIClassificationBranch | 多路分支,`label` 建议用 `branch_1` 等中性标签,`desc` 写语义 |
85
+ | `loop_start` | Loop | 循环体入口 |
86
+ | `slot` | AIAgentAction | 挂载 LLM / 工具 / 记忆子节点,`label` 为 `llm` / `tool` / `memory` |
87
+
88
+ ---
89
+
90
+ ## StepType 枚举
91
+
92
+ ### Trigger 类型
93
+
94
+ | type | 说明 |
95
+ |------|------|
96
+ | `AddRecordTrigger` | 新增记录时触发 |
97
+ | `SetRecordTrigger` | 记录被修改时触发 |
98
+ | `ChangeRecordTrigger` | 记录满足条件时触发 |
99
+ | `TimerTrigger` | 定时触发 |
100
+ | `ReminderTrigger` | 日期提醒触发 |
101
+ | `LarkMessageTrigger` | 接收飞书消息触发 |
102
+
103
+ > 所有 Trigger 节点**请勿设置** `children` ,通过 `next` 串联后继。
104
+
105
+ ### 触发器选型指南
106
+
107
+ | 需求描述 | 触发器 |
108
+ |---------|--------|
109
+ | 新增记录时 | `AddRecordTrigger` |
110
+ | 字段变为特定值时(**仅修改**) | `SetRecordTrigger` |
111
+ | **新增或修改**都触发 | `ChangeRecordTrigger` |
112
+ | 拿不准用哪个 | `ChangeRecordTrigger` |
113
+
114
+ > ⚠️ `SetRecordTrigger` 仅监听修改,`ChangeRecordTrigger` 同时监听新增 + 修改。
115
+
116
+ ### Action 类型
117
+
118
+ | type | 说明 |
119
+ |------|------|
120
+ | `AddRecordAction` | 新增记录 |
121
+ | `SetRecordAction` | 更新记录 |
122
+ | `FindRecordAction` | 查找记录 |
123
+ | `Delay` | 延迟 |
124
+ | `LarkMessageAction` | 发送飞书消息 |
125
+ | `GenerateAiTextAction` | AI 生成文本 |
126
+
127
+ > 所有 Action 节点**请勿设置** `children` ,通过 `next` 串联后继。
128
+
129
+ ### Branch 类型
130
+
131
+ | type | 说明 |
132
+ |------|------|
133
+ | `IfElseBranch` | 条件分支,`children.links` 含 `if_true` 和 `if_false` |
134
+ | `SwitchBranch` | 多路分支,`children.links` 含多个 `case` |
135
+
136
+ ### System 类型
137
+
138
+ | type | 说明 |
139
+ |------|------|
140
+ | `Loop` | 循环,`children.links` 含 `loop_start` 指向循环体入口 |
141
+
142
+ ---
143
+
144
+ ## Trigger data 详细结构
145
+
146
+
147
+ ### AddRecordTrigger
148
+
149
+ ```json
150
+ {
151
+ "table_name": "订单表",
152
+ "watched_field_name": "状态",
153
+ "trigger_control_list": ["pasteUpdate", "automationBatchUpdate"],
154
+ "condition_list": [] /* AndCondition 数组 */
155
+ }
156
+ ```
157
+
158
+ | 字段 | 必填 | 说明 |
159
+ |------|------|------|
160
+ | `table_name` | 是 | 监控的数据表名 |
161
+ | `watched_field_name` | 是 | 监控的字段名 |
162
+ | `trigger_control_list` | 否 | 触发控制,可选值:`pasteUpdate` / `automationBatchUpdate` / `syncUpdate` / `appendImport` / `openAPIBatchUpdate` |
163
+ | `condition_list` | 否 | 过滤条件数组,数组中每个元素为 AndCondition 结构,多个 AndCondition 之间为 OR 关系 |
164
+
165
+ ### ChangeRecordTrigger
166
+
167
+ ```json
168
+ {
169
+ "table_name": "任务表",
170
+ "trigger_control_list": [],
171
+ "condition": null
172
+ }
173
+ ```
174
+
175
+ | 字段 | 必填 | 说明 |
176
+ |------|------|------|
177
+ | `table_name` | 是 | 监控的数据表名 |
178
+ | `trigger_control_list` | 否 | 触发控制,可选值:`pasteUpdate` / `automationBatchUpdate` / `syncUpdate` / `appendImport` |
179
+ | `condition_list` | 否 | 过滤条件数组,数组中每个元素为 AndCondition 结构,多个 AndCondition 之间为 OR 关系 |
180
+
181
+ ### SetRecordTrigger
182
+
183
+ ```json
184
+ {
185
+ "table_name": "订单表",
186
+ "record_watch_conjunction": "and",
187
+ "record_watch_info": [ /* FieldCondition[] */ ],
188
+ "field_watch_info": [
189
+ { "field_name": "状态", "operator": "is", "value": [{ "value_type": "text", "value": "已发货" }] }
190
+ ],
191
+ "trigger_control_list": [],
192
+ "condition_list": null
193
+ }
194
+ ```
195
+
196
+ | 字段 | 必填 | 说明 |
197
+ |------|----|------|
198
+ | `table_name` | 是 | 监控的数据表名 |
199
+ | `record_watch_conjunction` | 否 | 记录筛选组合方式:`and` / `or`,默认 `and` |
200
+ | `record_watch_info` | 否 | 记录级过滤条件(修改前值匹配),为空则监听全部 |
201
+ | `field_watch_info` | 是 | 字段级监控条件列表,至少一个 |
202
+ | `trigger_control_list` | 否 | 触发控制,可选值:`pasteUpdate` / `automationBatchUpdate` / `syncUpdate` / `appendImport` |
203
+ | `condition_list` | 否 | 过滤条件数组,数组中每个元素为 AndCondition 结构,多个 AndCondition 之间为 OR 关系 |
204
+
205
+ `FieldWatchItem`:
206
+
207
+ | 字段 | 类型 | 说明 |
208
+ |------|------|------|
209
+ | `field_name` | string | 监听字段名称 |
210
+ | `operator` | string | 操作符(仅明确要求字段满足条件时填) |
211
+ | `value` | ValueInfo[] | 触发值 |
212
+
213
+ ### TimerTrigger
214
+
215
+ ```json
216
+ {
217
+ "rule": "WEEKLY",
218
+ "start_time": "2025-01-01 09:00",
219
+ "sub_unit": [1, 3, 5],
220
+ "is_never_end": true
221
+ }
222
+ ```
223
+
224
+ | 字段 | 必填 | 说明 |
225
+ |------|------|------|
226
+ | `rule` | 是 | `NO_REPEAT` / `DAILY` / `WEEKLY` / `MONTHLY` / `YEARLY` / `WORKDAY` / `CUSTOM` |
227
+ | `start_time` | 否 | 开始时间,格式 `yyyy-MM-dd HH:mm` |
228
+ | `interval` | 否 | 自定义间隔 [1,30](仅 CUSTOM) |
229
+ | `unit` | 否 | 自定义单位:`SECOND` / `MINUTE` / `HOUR` / `DAY` / `WEEK` / `MONTH` / `YEAR` |
230
+ | `sub_unit` | 否 | 子单位(`WEEKLY` 时为星期几数组 0-6,`MONTHLY` 时为几号数组 1-31) |
231
+ | `end_time` | 否 | 结束时间 |
232
+ | `is_never_end` | 否 | 是否永不结束 |
233
+
234
+ ### ReminderTrigger
235
+
236
+ ```json
237
+ {
238
+ "table_name": "项目表",
239
+ "field_name": "截止日期",
240
+ "offset": 1,
241
+ "unit": "DAY",
242
+ "hour": 9,
243
+ "minute": 0,
244
+ "condition_list": null
245
+ }
246
+ ```
247
+
248
+ | 字段 | 必填 | 说明 |
249
+ |------|------|------|
250
+ | `table_name` | 是 | 数据表名 |
251
+ | `field_name` | 是 | 日期字段名(必须为 `datetime` / `created_at` / `formula` / `lookup` 类型) |
252
+ | `unit` | 是 | 偏移单位:`MINUTE` / `HOUR` / `DAY` / `WEEK` / `MONTH` |
253
+ | `offset` | 是 | 提前/延后的偏移量(正数=提前,负数=延后;范围由 `unit` 决定):`MINUTE` ∈ {0, 5, 15, 30, -5, -15, -30};`HOUR` ∈ [-6, -1] ∪ [1, 6];`DAY` ∈ [-7, 7];`WEEK` ∈ [-7, -1] ∪ [1, 7];`MONTH` ∈ [-7, -1] ∪ [1, 7] |
254
+ | `hour` | 是 | 触发小时 (0-23),默认 9 |
255
+ | `minute` | 是 | 触发分钟 (0-59),默认 0 |
256
+ | `condition_list` | 否 | 过滤条件数组,数组中每个元素为 AndCondition 结构,多个 AndCondition 之间为 OR 关系 |
257
+
258
+
259
+ ### LarkMessageTrigger
260
+
261
+ ```json
262
+ {
263
+ "receive_scene": "group",
264
+ "receiver": [{ "value_type": "group", "value": {"id": "oc_xxxx", "name": "测试群"} }],
265
+ "scope": "all",
266
+ "filter": {
267
+ "conjunction": "and",
268
+ "content_contains": ["关键词"],
269
+ "sender_contains": [{ "value_type": "user", "value": {"id": "ou_xxxx", "name": ""} }],
270
+ "is_new_message": true,
271
+ "is_message_contain_attachment": false
272
+ }
273
+ }
274
+ ```
275
+
276
+ | 字段 | 必填 | 说明|
277
+ |------|------|---|
278
+ | `receive_scene` | 是 | 接收场景:`group`(群聊)/ `chat`(单聊)|
279
+ | `receiver` | 是 | 触发来源,支持 `user` / `group` / `ref`。在单聊场景下,该字段指“可以和机器人单聊的用户”;在群聊场景下,该字段指“接收信息的群组”|
280
+ | `scope` | 是 | 触发范围:`at`(@提及)/ `all`(所有消息)。该参数仅在群聊场景有效,单聊场景请勿指定该参数|
281
+ | `filter` | 是 | MessageFilter 消息过滤条件|
282
+
283
+ `MessageFilter`:
284
+
285
+ | 字段 | 类型 | 说明 |
286
+ |------|------|----|
287
+ | `conjunction` | string | `and` 满足所有条件 / `or` 任一条件|
288
+ | `content_contains` | string[] | 关键词列表|
289
+ | `sender_contains` | ValueInfo[] | 筛选发送人(仅群聊+群组来源时生效,单聊场景请勿指定该参数)|
290
+ | `is_new_message` | boolean | 仅新话题消息(仅群聊时有效,单聊场景请勿指定该参数)|
291
+ | `is_message_contain_attachment` | boolean | 是否仅附件消息触发|
292
+
293
+ ## Action data 详细结构
294
+
295
+ ### AddRecordAction
296
+
297
+ ```json
298
+ {
299
+ "table_name": "订单表",
300
+ "field_values": [
301
+ { "field_name": "客户名称", "value": [{ "value_type": "text", "value": "张三" }] },
302
+ { "field_name": "金额", "value": [{ "value_type": "number", "value": 100 }] },
303
+ { "field_name": "创建人", "value": [{ "value_type": "ref", "value": "$.trigger_1.fieldIdxxx" }] }
304
+ ]
305
+ }
306
+ ```
307
+
308
+ | 字段 | 必填 | 说明 |
309
+ |------|------|------|
310
+ | `table_name` | 是 | 目标数据表名 |
311
+ | `field_values` | 是 | RecordFieldValue[] |
312
+
313
+ ### SetRecordAction
314
+
315
+ ```json
316
+ {
317
+ "table_name": "订单表",
318
+ "max_set_record_num": 10,
319
+ "field_values": [
320
+ { "field_name": "状态", "value": [{ "value_type": "option", "value": { "id": "opt1", "name": "已完成" } }] }
321
+ ],
322
+ "filter_info": { /* RecordFilterInfo */ },
323
+ "ref_info": { "step_id": "step_trigger" }
324
+ }
325
+ ```
326
+
327
+ | 字段 | 必填 | 说明 |
328
+ |------|------|------|
329
+ | `table_name` | 是 | 目标数据表名 |
330
+ | `max_set_record_num` | 否 | 最大更新记录数,默认 100,范围 1-15000 |
331
+ | `field_values` | 是 | RecordFieldValue[] |
332
+ | `filter_info` | 否* | RecordFilterInfo 过滤条件(与 `ref_info` 互斥) |
333
+ | `ref_info` | 否* | RefInfo 引用前置步骤的记录(与 `filter_info` 互斥) |
334
+
335
+ ### FindRecordAction
336
+
337
+ ```json
338
+ {
339
+ "table_name": "客户表",
340
+ "field_names": ["客户名称", "联系方式", "等级"],
341
+ "should_proceed_when_no_results": true,
342
+ "filter_info": { /* RecordFilterInfo */ }
343
+ }
344
+ ```
345
+
346
+ | 字段 | 必填 | 说明 |
347
+ |------|------|------|
348
+ | `table_name` | 是 | 目标数据表名 |
349
+ | `field_names` | 是 | 要检索的字段名列表,至少一个 |
350
+ | `should_proceed_when_no_results` | 否 | 无结果时是否继续后续步骤,默认 `true` |
351
+ | `filter_info` | 否* | RecordFilterInfo(与 `ref_info` 互斥) |
352
+ | `ref_info` | 否* | RefInfo(与 `filter_info` 互斥) |
353
+
354
+ ### Delay
355
+
356
+ ```json
357
+ { "duration": 30 }
358
+ ```
359
+
360
+ | 字段 | 必填 | 说明 |
361
+ |------|------|------|
362
+ | `duration` | 是 | 延迟时长(分钟),范围 [1, 120] |
363
+
364
+ ### LarkMessageAction
365
+
366
+ ```json
367
+ {
368
+ "receiver": [{ "value_type": "user", "value": {"id": "ou_xxxx"} }],
369
+ "send_to_everyone": false,
370
+ "title": [{ "value_type": "text", "value": "新订单通知" }],
371
+ "content": [
372
+ { "value_type": "text", "value": "客户 " },
373
+ { "value_type": "ref", "value": "$.trigger_1.fldCustomerName" },
374
+ { "value_type": "text", "value": " 创建了新订单" }
375
+ ],
376
+ "btn_list": [
377
+ { "text": "查看详情", "btn_action": "openLink", "link": [{ "value_type": "text", "value": "https://example.com" }] }
378
+ ]
379
+ }
380
+ ```
381
+
382
+ | 字段 | 必填 | 说明 |
383
+ |------|------|------|
384
+ | `receiver` | 是 | ValueInfo[] |
385
+ | `send_to_everyone` | 是 | 是否发送给所有人 |
386
+ | `title` | 否 | TextRefItem[] 消息标题 |
387
+ | `content` | 是 | TextRefItem[] 消息内容 |
388
+ | `btn_list` | 是 | 按钮列表,不需要时为空数组 |
389
+
390
+ `ButtonConfig`:
391
+
392
+ | 字段 | 类型 | 说明 |
393
+ |------|------|------|
394
+ | `text` | string | 按钮文字 |
395
+ | `btn_action` | string | `addRecord` / `setRecord` / `openLink` |
396
+ | `link` | ValueInfo[] | 跳转链接(`openLink` 时使用) |
397
+ | `table_name` | string | 操作表名(`addRecord` 时使用) |
398
+ | `record_values` | RecordFieldValue[] | 记录赋值(`addRecord` / `setRecord` 时使用) |
399
+
400
+ ### GenerateAiTextAction
401
+
402
+ ```json
403
+ {
404
+ "prompt": [
405
+ { "value_type": "text", "value": "请总结以下内容:" },
406
+ { "value_type": "ref", "value": "$.step_1.fieldxxx" }
407
+ ]
408
+ }
409
+ ```
410
+
411
+ | 字段 | 必填 | 说明 |
412
+ |------|------|------|
413
+ | `prompt` | 是 | TextRefItem[] 提示词,支持 `text` / `ref` |
414
+
415
+
416
+ ## Branch data 详细结构
417
+
418
+ ### IfElseBranch
419
+
420
+ `children.links` 包含 `if_true` 和 `if_false` 两条边,`next` 指向两个分支汇合后的后继节点。
421
+
422
+ **如果涉及到复杂的多分支场景(分支数目 >= 3时),你应该采用 SwitchBranch,而不是嵌套的 IfElseBranch**
423
+
424
+ ```json
425
+ {
426
+ "condition": {
427
+ "conjunction": "or",
428
+ "conditions": [
429
+ {
430
+ "conjunction": "and",
431
+ "conditions": [
432
+ {
433
+ "left_value": { "value_type": "ref", "value": "$.step_1.fieldxxx" },
434
+ "operator": "isGreater",
435
+ "right_value": [{ "value_type": "number", "value": 1000 }]
436
+ }
437
+ ]
438
+ }
439
+ ]
440
+ }
441
+ }
442
+ ```
443
+
444
+ | 字段 | 必填 | 说明 |
445
+ |------|------|------|
446
+ | `condition` | 是 | OrGroup 判断条件,结构为 `(A and B) or (C and D)` |
447
+
448
+ ### SwitchBranch
449
+
450
+ `children.links` 包含多个 `case` 边(`label` 建议用 `branch_1`、`branch_2`,语义写在 `desc`)。
451
+
452
+ ```json
453
+ {
454
+ "mode": "exclusive",
455
+ "no_match_action": "classifyToOther",
456
+ "child_branch_list": [
457
+ {
458
+ "name": "高优先级",
459
+ "condition": {
460
+ "conjunction": "or",
461
+ "conditions": [
462
+ {
463
+ "conjunction": "and",
464
+ "conditions": [
465
+ {
466
+ "left_value": { "value_type": "ref", "value": "$.step_1.fieldxxx" },
467
+ "operator": "is",
468
+ "right_value": [{ "value_type": "text", "value": "P0" }]
469
+ }
470
+ ]
471
+ }
472
+ ]
473
+ }
474
+ }
475
+ ]
476
+ }
477
+ ```
478
+
479
+ | 字段 | 必填 | 说明 |
480
+ |------|------|------|
481
+ | `mode` | 否 | 分支模式。`exclusive`:排他模式,仅执行一个满足条件的子分支;`parallel`:并行模式,执行所有满足条件的子分支。默认 `exclusive` |
482
+ | `no_match_action` | 否 | `mode=exclusive` 时使用,无匹配时的处理策略。`classifyToOther`:归类到其他分支;`fail`:报错终止。默认 `classifyToOther` |
483
+ | `fail_mode` | 否 | `mode=parallel` 时使用,部分分支出错时策略。`partialSuccess`:部分成功即继续;`fail`:任一失败即终止。默认 `partialSuccess` |
484
+ | `match_mode` | 否 | `mode=parallel` 时使用,所有分支不满足时策略。`noneMatchSkip`:跳过继续;`noneMatchFail`:报错终止。默认 `noneMatchSkip` |
485
+ | `child_branch_list` | 是 | BranchItem[],1-10 个条件分支 |
486
+
487
+ `BranchItem`:
488
+
489
+ | 字段 | 类型 | 说明 |
490
+ |------|------|------|
491
+ | `name` | string | 分支名称 |
492
+ | `condition` | OrGroup | 分支条件 |
493
+
494
+
495
+ ## System data 详细结构
496
+
497
+ ### Loop
498
+
499
+ `children.links` 包含 `loop_start` 边指向循环体入口,`next` 指向循环结束后的后继节点。
500
+
501
+ ```json
502
+ {
503
+ "loop_mode": "continue",
504
+ "max_loop_times": 100,
505
+ "data": [{ "value_type": "ref", "value": "$.find_record_stepIdxxx.fieldRecords" }]
506
+ }
507
+ ```
508
+
509
+ | 字段 | 必填 | 说明 |
510
+ |------|------|------|
511
+ | `data` | 是 | ValueInfo[](仅支持 `ref` 类型),循环数据源,只能填一个 |
512
+ | `loop_mode` | 否 | 单次错误时是否继续:`end`(终止)/ `continue`(继续) |
513
+ | `max_loop_times` | 否 | 最大循环次数 |
514
+
515
+ ---
516
+
517
+
518
+ ## 公共类型
519
+
520
+ ### ValueInfo
521
+
522
+ 所有值的基础类型,通过 `value_type` 区分:
523
+
524
+ | value_type | value 类型 | 说明 | 示例 |
525
+ |------------|-----------|------|------|
526
+ | `text` | string | 文本 | `"张三"` |
527
+ | `number` | number | 数字 | `100` |
528
+ | `boolean` | boolean | 布尔值 | `true` |
529
+ | `date` | string | 日期,可以是具体时间字符串,或者相对时间值 | `"2025/01/01"`、`"2025/01/01 11:00"`、`"now"`、`"now 11:00"`、`"today"`、`"today 11:00"`、`"yesterday"`、`"yesterday 11:00"`、`"lastWeek"`、`"currentMonth"`、`"lastMonth"`、`"theLastWeek"`、`"theNextWeek"`、`"theLastMonth"`、`"theNextMonth"` |
530
+ | `option` | `{ id, name }` | 选项 | `{ "id": "opt1", "name": "已完成" }` |
531
+ | `link` | `{ text, link }` | 链接(含文字和 URL), 文字和 URL 的格式可以是 ValueInfo 中的 text/ref 类型 | `{ "text": [{ "value_type": "text", "value": "查看详情" }], "link": [{ "value_type": "text", "value": "https://example.com" }] }`、`{ "text": [{ "value_type": "text", "value": "查看详情" }], "link": [{ "value_type": "ref", "value": "$.step_1.fldXXX" }] }` |
532
+ | `user` | `{ id, name }` | 用户 OpenID、名字 | `{ "id": "ou_xxxx", "name": "张三" }` |
533
+ | `group` | `{ id, name }` | 群 Chat ID、名字 | `{ "id": "oc_xxx", "name": "测试群" }` |
534
+ | `ref` | `string` | 引用前置节点输出的路径 | 参考 ref 引用变量详解 章节 |
535
+
536
+ > ⚠️ **所有涉及用户的 value 中的 id 统一使用 OpenID(`ou_xxxx` 格式)**,由 CLI 层来完成转换
537
+ > ⚠️ **所有涉及群的 value 中的 id 统一使用 ChatID(`oc_xxxx` 格式)**,由 CLI 层来完成转换
538
+
539
+ ### ref 引用变量详解
540
+
541
+ `ref` 类型是工作流中节点间数据传递的核心机制。当 `value_type` 为 `ref` 时,`value` 指向前置节点的某个输出变量。本节详细描述每个节点可供引用的输出变量定义。
542
+
543
+ #### 引用路径格式
544
+
545
+ ```
546
+ $.{stepId}
547
+ $.{stepId}.{pathId}
548
+ $.{stepId}.{pathId}.{childPathId}
549
+ $.{stepId}.{pathId}.{childPathId}.{grandChildPathId}
550
+ ```
551
+
552
+ - `{stepId}`:前置节点的 `id`(即 WorkflowStep 中的 `id` 字段)
553
+ - `{pathId}`:节点输出的路径标识符
554
+ - 支持多层下钻,如引用字段的属性:`$.step_1.fldXXX.name`
555
+
556
+ ---
557
+
558
+ #### 触发器节点输出
559
+
560
+ ##### 记录触发器(AddRecordTrigger / ChangeRecordTrigger / SetRecordTrigger / ReminderTrigger)
561
+
562
+ 这 4 个触发器的输出结构完全一致:
563
+
564
+ | pathId | 说明 | 引用示例 |
565
+ |--------|------|----------|
566
+ | `{fieldId}` | 字段id,从配置表的所有字段或者指定字段id生成,可下钻字段属性 | `$.{stepId}.{fieldId}` |
567
+ | `{fieldId}.fieldId` | 字段id属性 | `$.{stepId}.{fieldId}.fieldId}` |
568
+ | `{fieldId}.fieldName` | 字段名属性 | `$.{stepId}.{fieldId}.fieldName}` |
569
+ | `startTime` | 触发时间戳 | `$.{stepId}.startTime` |
570
+ | `recordId` | 记录 ID | `$.{stepId}.recordId` |
571
+ | `recordLink` | 记录链接 | `$.{stepId}.recordLink` |
572
+ | `recordCreatedUser` | 记录创建者 | `$.{stepId}.recordCreatedUser` |
573
+ | `recordCreatedTime` | 记录创建时间 | `$.{stepId}.recordCreatedTime` |
574
+ | `recordModifiedUser` | 最后修改者 | `$.{stepId}.recordModifiedUser` |
575
+ | `recordModifiedTime` | 最后修改时间 | `$.{stepId}.recordModifiedTime` |
576
+
577
+ **动态字段输出规则**:
578
+
579
+ - 读取触发器所配置的数据表的所有字段
580
+ - 每个字段生成一条输出:`pathId` = fieldId
581
+ - 若字段为关联字段,children 为关联表所有字段(单层下钻,不再递归)
582
+ - 每个字段可下钻特定的字段属性(见「字段属性下钻」)
583
+
584
+ **recordLink 的 children**:如果配置了数据表,则为该表所有视图的列表,每个视图 `{ pathId: viewId, pathName: viewName, pathType: 'string' }`。引用示例:`$.{stepId}.recordLink.{viewId}`。
585
+
586
+ ##### TimerTrigger(定时触发器)
587
+
588
+ | pathId | 说明 | 引用示例 |
589
+ |--------|------|----------|
590
+ | `scheduleTime` | 定时触发时间 | `$.{stepId}.scheduleTime` |
591
+
592
+ ##### LarkMessageTrigger(飞书消息触发器)
593
+
594
+ | pathId | 说明 | 引用示例 |
595
+ |--------|------|----------|
596
+ | `Sender` | 消息发送者 | `$.{stepId}.Sender` |
597
+ | `AtUser` | 消息中被@的用户 | `$.{stepId}.AtUser` |
598
+ | `SenderGroup` | 消息所在群(仅群聊场景) | `$.{stepId}.SenderGroup` |
599
+ | `MessageSendTime` | 消息发送时间 | `$.{stepId}.MessageSendTime` |
600
+ | `MessageContent` | 消息正文 | `$.{stepId}.MessageContent` |
601
+ | `MessageType` | 消息类型标识 | `$.{stepId}.MessageType` |
602
+ | `MessageID` | 消息唯一标识 | `$.{stepId}.MessageID` |
603
+ | `MessageLink` | 消息链接(仅群聊场景) | `$.{stepId}.MessageLink` |
604
+ | `ParentID` | 回复的消息 ID | `$.{stepId}.ParentID` |
605
+ | `ThreadID` | 所在话题消息 ID | `$.{stepId}.ThreadID` |
606
+ | `Attachments` | 消息中的附件 | `$.{stepId}.Attachments` |
607
+
608
+ 条件限制:
609
+
610
+ - 若场景为单聊(`receive_scene = "Chat"`),则 `SenderGroup` 和 `MessageLink` 不可用
611
+
612
+ ---
613
+
614
+ #### 操作节点输出
615
+
616
+ ##### FindRecordAction(查找记录)
617
+
618
+ | pathId | 说明 | 引用示例|
619
+ |--------|------|-------|
620
+ | `fieldRecords` | 所有找到的记录的引用(可用于 Loop 遍历) | `$.{stepId}.fieldRecords`|
621
+ | `firstfieldsRecord` | 第一条匹配记录 | `$.{stepId}.firstfieldsRecord`|
622
+ | `firstfieldsRecord.{fieldId}` | 首条记录的字段值,可下钻字段属性 | `$.{stepId}.firstfieldsRecord.{fieldId}`|
623
+ | `firstfieldsRecord.recordId` | 记录 ID 数组 | `$.{stepId}.firstfieldsRecord.recordId`|
624
+ | `fields` | 查找到的所有记录某列值 | 不支持引用|
625
+ | `fields.{fieldId}` | 用户选择的字段 | `$.{stepId}.fields.{fieldId}`|
626
+ | `fields.{fieldId}.fieldId` | 用户选择的字段id数组 | `$.{stepId}.fields.{fieldId}.fieldId`|
627
+ | `fields.{fieldId}.fieldName` | 用户选择的字段名数组 | `$.{stepId}.fields.{fieldId}.fieldName`|
628
+ | `fields.recordId` | 记录 ID 数组 | `$.{stepId}.fields.recordId`|
629
+ | `recordNum` | 找到记录总数 | `$.{stepId}.recordNum`|
630
+
631
+ ##### AddRecordAction(新增记录)
632
+
633
+ | pathId | 说明 | 引用示例 |
634
+ |--------|------|----------|
635
+ | `{fieldId}` | 用户配置的字段值,可下钻字段属性 | `$.{stepId}.{fieldId}` |
636
+ | `{fieldId}.fieldId` | 用户配置的字段id | `$.{stepId}.{fieldId}.fieldId}` |
637
+ | `{fieldId}.fieldName` | 用户配置的字段名 | `$.{stepId}.{fieldId}.fieldName}` |
638
+ | `recordId` | 新增的记录 ID | `$.{stepId}.recordId` |
639
+ | `recordLink` | 新增的记录 URL | `$.{stepId}.recordLink` |
640
+
641
+ ##### SetRecordAction(更新记录)
642
+
643
+ | pathId | 说明 | 引用示例 |
644
+ |--------|------|----------|
645
+ | `{fieldId}` | 用户配置的字段值,可下钻字段属性 | `$.{stepId}.{fieldId}` |
646
+ | `{fieldId}.fieldId` | 用户配置的字段id | `$.{stepId}.{fieldId}.fieldId}` |
647
+ | `{fieldId}.fieldName` | 用户配置的字段名 | `$.{stepId}.{fieldId}.fieldName}` |
648
+ | `recordId` | 记录 ID 数组(因可能更新多条记录) | `$.{stepId}.recordId` |
649
+
650
+ ##### GenerateAiTextAction(AI 生成文本)
651
+
652
+ | pathId | 说明 | 引用示例 |
653
+ |--------|------|----------|
654
+ | (整体出参) | AI 生成的文本内容(不支持下钻,只能引用 `$.{stepId}`) | `$.{stepId}` |
655
+
656
+ ##### 无输出的操作节点
657
+
658
+ 以下节点不产生任何可引用的输出数据:
659
+
660
+ - **Delay**(延时等待)
661
+ - **LarkMessageAction**(发送飞书消息)
662
+
663
+ ---
664
+
665
+ #### 分支节点输出
666
+
667
+ 以下分支节点均不产生任何可引用的输出数据:
668
+
669
+ - **IfElseBranch**(条件分支)
670
+ - **SwitchBranch**(多条件分支)
671
+
672
+ ---
673
+
674
+ #### 系统节点输出
675
+
676
+ ##### Loop(循环)
677
+
678
+ | pathId | 说明 | 引用示例 |
679
+ |--------|------|----------|
680
+ | `item` | 当前循环元素 | `$.{stepId}.item` |
681
+ | `index` | 从 0 开始的循环索引 | `$.{stepId}.index` |
682
+
683
+ **`item` 的类型推断规则**(由循环数据源决定):
684
+
685
+ **场景一:遍历组合记录** — 数据源为 `record` 类型时(如 FindRecordAction 的 `fieldRecords`),`item` 类型为 `record`,可向下选择具体字段:
686
+
687
+ | 说明 | 引用示例 |
688
+ |------|----------|
689
+ | 当前遍历的记录(record) | `$.{loopStepId}.item` |
690
+ | 记录的具体字段 | `$.{loopStepId}.item.{fieldId}` |
691
+ | 从 0 开始的索引(number) | `$.{loopStepId}.index` |
692
+
693
+ **场景二:遍历字段** — 数据源为某个多值类型字段时,比如附件字段、人员字段,`item` 继承该字段的类型并可继续下钻字段属性:
694
+
695
+ | 说明 | 引用示例 |
696
+ |------|----------|
697
+ | 当前遍历的元素(类型继承数据源字段类型,例如人员字段) | `$.{loopStepId}.item` |
698
+ | 用户姓名 | `$.{loopStepId}.item.name` |
699
+ | 从 0 开始的索引(number) | `$.{loopStepId}.index` |
700
+
701
+ ---
702
+
703
+ #### 字段属性下钻
704
+
705
+ 每个字段变量都可以进一步下钻选择字段的属性。所有字段至少支持 `fieldId` 和 `fieldName` 两个基础属性,部分字段还支持额外属性:
706
+
707
+ | 字段类型 | 属性名称 | 属性 pathId | 属性 pathType | 说明 |
708
+ |----------|---------|-------------|--------------|------|
709
+ | **所有字段(基础)** | 字段 ID | `fieldId` | `string` | 字段的唯一标识 |
710
+ | | 字段名称 | `fieldName` | `string` | 字段的显示名称 |
711
+ | **人员字段**(`user` / `created_by` / `updated_by`) | 姓名 | `name` | `string` | 用户姓名 |
712
+ | **日期字段**(`datetime` / `created_at` / `updated_at`) | 时间戳 | `timestamp` | `number` | 时间戳数值 |
713
+ | **附件字段**(`attachment`) | 文件名 | `fileName` | `string` | 附件文件名 |
714
+ | | 文件类型 | `fileType` | `string` | MIME 类型 |
715
+ | | 文件大小 | `size` | `number` | 文件字节数 |
716
+ | | 文件 Token | `fileToken` | `string` | 附件 token |
717
+ | **超链接文本字段**(`text` 且 `style.type=url`) | 文本 | `text` | `string` | 链接文本部分 |
718
+ | | 链接 | `link` | `string` | 链接 URL 部分 |
719
+ | **自动编号字段**(`auto_number`) | 序号 | `sequence` | `number` | 编号的纯数字序号 |
720
+ | **关联字段**(`link`) | 字段下钻 | `{fieldId}` | - | 可下钻到关联表的字段 |
721
+
722
+ > 其他字段类型(如 `text`、`number`、`checkbox`、`select`、`location`、`formula`、`lookup` 等)仅支持 `fieldId` 和 `fieldName` 两个基础属性。
723
+
724
+ 下钻引用示例:
725
+
726
+ ```
727
+ $.{stepId}.{fieldId} → 字段值本身
728
+ $.{stepId}.{fieldId}.fieldId → 字段 ID(string)
729
+ $.{stepId}.{fieldId}.fieldName → 字段名称(string)
730
+ $.{stepId}.{fieldId}.name → 人员姓名列表(array<string>,仅人员字段)
731
+ $.{stepId}.{fieldId}.unionId → 人员 unionId 列表(array<string>,仅人员字段)
732
+ $.{stepId}.{fieldId}.timestamp → 时间戳(array<number>,仅日期字段)
733
+ $.{stepId}.{fieldId}.fileName → 文件名列表(array<string>,仅附件字段)
734
+ $.{stepId}.{fieldId}.fileToken → 文件 Token 列表(array<string>,仅附件字段)
735
+ ```
736
+
737
+ ---
738
+
739
+ #### 节点输出能力总览
740
+
741
+ | 节点 | 类型 | 有输出 | 输出特性 |
742
+ |------|------|--------|---------|
743
+ | AddRecordTrigger | 触发器 | ✅ | 动态(表字段 + 记录属性) |
744
+ | ChangeRecordTrigger | 触发器 | ✅ | 动态(表字段 + 记录属性) |
745
+ | SetRecordTrigger | 触发器 | ✅ | 动态(表字段 + 记录属性) |
746
+ | ReminderTrigger | 触发器 | ✅ | 动态(表字段 + 记录属性) |
747
+ | TimerTrigger | 触发器 | ✅ | 静态(仅 scheduleTime) |
748
+ | LarkMessageTrigger | 触发器 | ✅ | 静态(消息属性列表) |
749
+ | FindRecordAction | 动作 | ✅ | 动态(用户选择的字段) |
750
+ | AddRecordAction | 动作 | ✅ | 动态(用户配置的字段) |
751
+ | SetRecordAction | 动作 | ✅ | 动态(用户配置的字段) |
752
+ | GenerateAiTextAction | 动作 | ✅ | 静态(单 string) |
753
+ | Delay | 动作 | ❌ | 无输出 |
754
+ | LarkMessageAction | 动作 | ❌ | 无输出 |
755
+ | IfElseBranch | 分支 | ❌ | 无输出 |
756
+ | SwitchBranch | 分支 | ❌ | 无输出 |
757
+ | Loop | 系统 | ✅ | 动态(取决于数据源) |
758
+
759
+ ---
760
+
761
+ ### TextRefItem
762
+
763
+ 文本与引用混排,用于消息内容等动态拼接场景:
764
+
765
+ ```json
766
+ [
767
+ { "value_type": "text", "value": "客户 " },
768
+ { "value_type": "ref", "value": "$.step_1.fieldxxx" },
769
+ { "value_type": "text", "value": " 创建了新订单" }
770
+ ]
771
+ ```
772
+
773
+ ### RecordFieldValue
774
+
775
+ ```json
776
+ { "field_name": "客户名称", "value": [{ "value_type": "text", "value": "张三" }] }
777
+ ```
778
+
779
+ ### AndCondition(Trigger 过滤条件)
780
+
781
+ ```json
782
+ {
783
+ "conjunction": "and",
784
+ "conditions": [
785
+ { "field_name": "状态", "operator": "is", "value": [{ "value_type": "text", "value": "进行中" }] }
786
+ ]
787
+ }
788
+ ```
789
+
790
+ ### OrGroup(Branch 分支条件)
791
+
792
+ ```json
793
+ {
794
+ "conjunction": "or",
795
+ "conditions": [
796
+ {
797
+ "conjunction": "and",
798
+ "conditions": [
799
+ {
800
+ "left_value": { "value_type": "ref", "value": "$.step_1.fieldxxx" },
801
+ "operator": "isGreater",
802
+ "right_value": [{ "value_type": "number", "value": 1000 }]
803
+ }
804
+ ]
805
+ }
806
+ ]
807
+ }
808
+ ```
809
+
810
+ **operator 可选值:** `is` / `isNot` / `containsAny` / `doesNotContainAny` / /`containsAll`/ `isEmpty` / `isNotEmpty` / `isGreater` / `isGreaterEqual` / `isLess` / `isLessEqual`
811
+
812
+ ### RecordFilterInfo
813
+ ** 由于 conjunction 只支持 and,若需要实现 字段X 等于 A 或 B,你可以使用 containsAny
814
+ ```json
815
+ {
816
+ "conjunction": "and",
817
+ "conditions": [
818
+ { "field_name": "状态", "operator": "is", "value": [{ "value_type": "text", "value": "进行中" }] }
819
+ ]
820
+ }
821
+ ```
822
+
823
+ ### `select` 字段多值匹配
824
+
825
+ | 操作 | operator | 正确写法 |
826
+ |------|---------|---------|
827
+ | 等于单个值 | `is` | `[{"value_type": "option", "value": {"name": "L2"}}]` |
828
+ | 匹配多个值(L2 或 L3) | `containsAny` | `[{"value_type": "option", "value": {"name": "L2"}}, {"value_type": "option", "value": {"name": "L3"}}]` |
829
+
830
+ > ⚠️ 不要用多个 `is` 条件(会被当作 OR,无法实现 AND)。推荐使用 `containsAny` 操作符匹配多个值。
831
+
832
+ > ⚠️ **Select 字段条件**:`value_type` 必须为 `option`,`value` 对象可只传 `name`(如 `{"name": "L2"}`),无需提供选项 ID。
833
+
834
+ ### RefInfo
835
+
836
+ ```json
837
+ { "step_id": "step_trigger" }
838
+ ```
839
+
840
+ ---
841
+
842
+ ## 完整示例:条件分支 + 发送消息
843
+
844
+ ```json
845
+ {
846
+ "title": "新订单自动通知",
847
+ "steps": [
848
+ {
849
+ "id": "step_1",
850
+ "type": "AddRecordTrigger",
851
+ "title": "当「订单表」新增记录时触发",
852
+ "next": "step_2",
853
+ "data": {
854
+ "table_name": "订单表",
855
+ "watched_field_name": "订单编号"
856
+ }
857
+ },
858
+ {
859
+ "id": "step_2",
860
+ "type": "IfElseBranch",
861
+ "title": "判断订单金额是否大于 1000",
862
+ "children": {
863
+ "links": [
864
+ { "kind": "if_true", "to": "step_3" },
865
+ { "kind": "if_false", "to": "step_4" }
866
+ ]
867
+ },
868
+ "next": "step_5",
869
+ "data": {
870
+ "condition": {
871
+ "conjunction": "or",
872
+ "conditions": [{
873
+ "conjunction": "and",
874
+ "conditions": [{
875
+ "left_value": { "value_type": "ref", "value": "$.step_1.fieldxxx" },
876
+ "operator": "isGreater",
877
+ "right_value": [{ "value_type": "number", "value": 1000 }]
878
+ }]
879
+ }]
880
+ }
881
+ }
882
+ },
883
+ {
884
+ "id": "step_3",
885
+ "type": "LarkMessageAction",
886
+ "title": "通知主管审批大额订单",
887
+ "next": null,
888
+ "data": {
889
+ "receiver": [{ "value_type": "ref", "value": "$.step_1.fieldxxx" }],
890
+ "send_to_everyone": false,
891
+ "title": [{ "value_type": "text", "value": "大额订单提醒" }],
892
+ "content": [
893
+ { "value_type": "text", "value": "新订单金额为:" },
894
+ { "value_type": "ref", "value": "$.step_1.fieldxxx" },
895
+ { "value_type": "text", "value": "元,请及时审批。" }
896
+ ],
897
+ "btn_list": []
898
+ }
899
+ },
900
+ {
901
+ "id": "step_4",
902
+ "type": "SetRecordAction",
903
+ "title": "自动标记小额订单为已通过",
904
+ "next": null,
905
+ "data": {
906
+ "table_name": "订单表",
907
+ "ref_info": { "step_id": "step_1" },
908
+ "field_values": [
909
+ { "field_name": "审批状态", "value": [{ "value_type": "text", "value": "已通过" }] }
910
+ ]
911
+ }
912
+ },
913
+ {
914
+ "id": "step_5",
915
+ "type": "GenerateAiTextAction",
916
+ "title": "AI 生成订单处理日报",
917
+ "next": null,
918
+ "data": {
919
+ "prompt": [
920
+ { "value_type": "text", "value": "请根据以下订单信息生成一份简要的处理日报:" },
921
+ { "value_type": "ref", "value": "$.step_1.fieldxxx" }
922
+ ]
923
+ }
924
+ }
925
+ ]
926
+ }
927
+ ```
928
+
929
+ ---
930
+
931
+ ## 参考
932
+
933
+ - [lark-base-workflow-create](lark-base-workflow-create.md) — 创建工作流命令
934
+ - [lark-base-workflow-update](lark-base-workflow-update.md) — 更新工作流命令
935
+ - [lark-base-workflow-list](lark-base-workflow-list.md) — 列出工作流命令